#hugo would approve this level of contrast
Explore tagged Tumblr posts
samesanegirl · 5 years ago
Text
The Weasley-Potter Clan
Teddy Lupin: 
The most loved and admired member of the Weasley-Potter clan
Has a special bond with every single one of his cousins
Whenever there is a Quidditch match in the clan, everyone fights for Teddy to be in their team
Pansexual king
Is totally into rock and punk music
Loves Victoire more than life itself
Social butterfly due to his charm and caring nature
Listens to The Weird Sisters non stop
He constantly changes his hair colour. However, he always keeps a pink and brown streak for his parents
Uses his Metamorphous powers to cheer others up
Hufflepuff beater - has taken the pleasure of training the Weasley-Potter children in Quidditch
Underneath his gleeful attitude, he often mourns over his parents and never forgets them
Victoire Weasley: 
Adores children, which explains why Hugo and Lily Luna love her
Other than Teddy, she would be best friends with Molly II due to their close age.
Charming, witty and drop-dead gorgeous
Has a very elegant presence and she is very feminine
Unashamedly girly and does not believe femininity makes her ‘weak’
Others assumed she was dumb, despite that she was sorted into Ravenclaw. This pushed Victoire to work harder
Ended up being Head Girl, graduating at the top of her class and becoming a Healer.
Unlike her cousins, Victoire didn’t play Quidditch 
Instead, she loves swimming as she grew up on Shell Cottage
Head-over-heels in love with Teddy Lupin.
Willingly helps others and loves giving advice
Critical about certain things and has opinionated & blunt nature
James Sirius Potter: 
Makes boring situations fun, no matter what
Chanels the spirit of the marauders
Quidditch fanatic
His free-spirited personality is contrasted against his competitive and serious attitude when playing Quidditch
Gryffindor Keeper
Whenever he wins a match, he throws the loudest parties ever seen in Hogwarts
Is the literal embodiment of Gryffindor
Has the craziest stories to tell
Loves to think himself as the ladies’ man. Unfortunately, Louis snatched that title once he hit puberty
Often takes the blame when everything goes wrong
When a girl captures his heart, he is romantic and cheesy as fuck
Fred Weasley: 
He grew up witnessing his father cope with grief. Thus, he has learned to not take anyone for granted
His obsession with Quidditch is on the same level with James
He and James can’t live without each other
Soul-brothers with James
Gryffindor Chaser alongside Dominique and Rose. They are unbeatable when united together
Very sweet and protective around her female cousins
Inherits Weasley’s Wizard Wheezes
Keeps a cool head whenever he, James and Dominique get into trouble
Gets drunk extremely easily
Girls fawn over his charming personality and looks
Willingly accepts any challenge, no matter how wild and crazy it is, he finds a way to complete it
Dominique Weasley: 
While Victoire is graceful and lady-like, Dominique is loud and rebellious
Considerably smart but never tries in Hogwarts
Complete wisecrack and smartass
Prank trio with James Sirius and Fred II
Dyes her hair different colours three times a year
Gryffindor Chaser
Uses her Veela powers to get what she wants
Flirty, confident and hilarious
Will get into a literal fist fight if you insult her loved ones
Loves road trips, parties, festivals and Quidditch
Suggests the wildest challenges and games to her cousins
A social butterfly and life of the party
Roxanne Weasley: 
Extremely loyal to those who win her approval
Fanatic of The Weird Sisters - something that her and Teddy obsess over
Has no mercy on the Quidditch pitch
Underneath her toughness, she is sensitive and sweet
Ferocious Gryffindor Beater
Badass as fuck and she knows it
Believes in female empowerment and is very accepting towards others
Has no time for bullshit or small talk
Lesbian and proud of it
Aspires to become a rock musician in the Wizarding World
Always has your back, no matter what
Does not give a shit about what you think or say about her
But if you insult her cousins, she will make your life a misery
Hugo Weasley: 
On the autism spectrum, but is fucking intelligent
Surprisingly, Hugo is smarter than his sister
Has a crush on Lysander Scamander
Equally obsessed with the Chudley Cannons like his father
The best chess player in the family
Always hangs out with Lily Luna and Roxanne
Ravenclaw Keeper, but switches to Beater position when playing Quidditch with his cousins
Fascinated by Magical Creatures and studies them
Is socially awkward and can be insensitive and blunt when he is stressed
Has a kind heart and a strong moral compass
Is passionate about activism and calling out injustices
Can be bossy and is fearful of breaking the rules
Has random knowledge about the most obscure things
Believes that house elves deserve their freedom and are not slaves
Louis Weasley: 
Once he hit puberty, the girls could not leave him alone
Fluent in French and English
Sweet temperament and an absolute gentleman
Interested in French and British culture
Obsessed with film and the Muggle World
Loves to travel to other countries and visit famous landmarks
Hufflepuff beater
Can be a little naive at times but is emotionally mature
Calm demeanour but lives for adventure 
People pleaser and can sometimes be a push-over
Genuinely wants the best for you
People come to him for comfort or support and to flirt in the process 
Molly Weasley: 
Loveable, warm, kind-hearted
Loves physical affection and always hugs her cousins for no reason
Makes the people she loves feel special and likes doing surprise parties or sleepovers
Loves to cook and bake different things
Obsessed with English Literature
Headgirl in her last year at Hogwarts
Whilst she is intelligent and hard-worker, she was nowhere near as competitive or ambitious as Percy
Does not play for the Gryffindor Quidditch team either, although she likes to watch it
Hopeless romantic and ships absolutely everything
Everyone is naturally drawn to her optimism
Lucy Weasley: 
Gets teased for being a nerd and for liking Muggle things, but she proudly admits it
Has a small blue streak on her hair
Does not play for the Ravenclaw Quidditch team. However, she plays as Chaser in the Weasley Annual Quidditch matches
Not academically competitive like Percy but manages to ace her exams anyway
Introverted and painfully awkward, but is loud around her best friends
People make assumptions around her asexuality and she hates it
Lucy has a close friendship with all her female cousins, whether they like the same things or not
Obsessed with comic books and Marvel films
Sarcastic humour and amazing comebacks
Fascinated with Muggle pop culture
Lily Luna Potter: 
The youngest in the family
Is in love with love and is an intense shipper of the relationships that her cousins are in
Mostly calm under stressful circumstances
Inherited her father’s sass and her mother’s humour
Daydreams 24/7
Super talkative - could start a conversation in an empty room
Has a very kind and lively nature
Intuitive, trusting and sensitive
Social butterfly and gets along with everyone she meets
Gryffindor Seeker - just as good as Albus Potter
Stands up for what is right and never hesitates to defend others
Dreams to be a journalist
Whenever Rita Skeeter makes rumours about her cousins, she jumps to their defence and roasts her
Rose Weasley: 
Perfectionist and very demanding of herself
Nothing can ever stop her from accomplishing her goals
Feels the pressures of being the daughter of two war heroes and tries to succeed in everything to please them and herself
Gryffindor Chaser
Her love for Quidditch matches James and Fred’s
Loyal to the Chudley Cannons, no matter how many times they lose
Vivacious and funny around her friends but is dead-serious when confronted with challenges
Competitive as fuck, whether it is Quidditch, academics or on a bet
Loving, caring and overprotective
Outspoken about her views and hates injustices
If you hurt her loved ones, she will Sectusembra your ass
Fiery temper and not to be messed with
Breaks the rules at school and manages to fool Hogwarts professors with her flawless grades 
Bonds with Scorpius over their shared neediness and love of books
Albus Severus Potter: 
Talented at Potions, which is his best subject as well
Very intelligent but is silent about it
Hates being centre of attention
Slytherin Seeker - and a supremely talented one
Hates his middle name after having a deep conversation with Professor Longbottom
Is confused why his dad didn't name him after Hagrid
Sarcastic as fuck
Would take the Killing Curse for Rose and Scorpius
Secretly listens to emo music
Is a pro at escaping trouble and is great at creating loopholes by thinking on the spot
Slightly awkward upon first introductions but he is very kind and caring
Avoids the Wizarding press as much as possible
Scorpius Malfoy: 
Strong moral compass and hates injustices
Generally reserved and quiet around those he does not know very well
Once you win his loyalty, he will move the earth just for you
Is a great judge of character and is an expert on body language
An absolute gentleman
Whenever his friends are stuck in trouble, he is a master at acting innocent and naive in order to help them
Quietly determined and ambitious
His kind nature is often mistaken for weakness
But Scorpius Hyperion Malfoy is the strongest person ever
He knows how to defend himself and does not tolerate bullshit
When Molly gave him a Weasley sweater for Christmas, he was in tears
Fascinated with the Muggle world and loves spending it there with Al and Rose
Incredibly intelligent and nerdy
Slytherin keeper
Is in love with Muggle literature, museums, architecture and art
243 notes · View notes
ralafferty · 4 years ago
Text
84. Seven Story Dream
One of Lafferty’s better-known mystery stories, thanks to its inclusion in Does Anyone Else Have Something Further to Add?—actually, the only one of his mysteries to feature in any of his major-press collections. It’s a mordant tale of striking confidence; one can see why a platform as big as Alfred Hitchcock Mystery Magazine went for it. And yet, without the efforts of Virginia Kidd, it probably would’ve been just another unpublished manuscript in the Lafferty archives.
Lafferty submitted the story to A.L. Fierst soon after writing it, in November 1961; the agent apparently didn’t reject it, as he did many of Ray’s SF stories, but he did not succeed in selling it—and likely did not try to. Unlike several other of the mystery stories which Fierst failed to sell, such as “Enfants Terribles” or “Almost Perfect,” Lafferty did not continue to shop this one on his own; instead, it would sit in his file boxes for almost a decade, when Virginia Kidd asked him which of his older stories might be worth a look.
It might not be quite the coup of “Enfants Terribles,” which Kidd succeeded in selling to the undisputed top-tier mystery mag, Ellery Queen’s, despite Lafferty trying that same market and many others years before, but landing an abandoned story in the market’s #2 magazine is no mean feat. Hitchcock Mystery had started back in the ’50s, piggybacking on the success of the Alfred Hitchcock Presents TV anthology series. The magazine kept their namesake’s famous silhouette and predilection for suspenseful tales, but otherwise operated completely independently—although on occasion the show would adapt stories from the print outlet; it’s sort of a shame that Presents was no longer running when Lafferty’s story did, as it would have made a fine episode.
Kidd’s other intervention with the story was a little more understated. It wasn’t her practice (with Lafferty, anyway, or with any of her other clients I’ve researched) to make changes directly to manuscripts; instead she would make the case that the material needed changes, and leave the author to provide them, or not. But in this one case, Kidd—who, though best known for her efforts representing SF/F writers, had a fondness for mysteries and a very keen eye for plotting and characterization—did the touch-up work herself, and only then mailed Lafferty for his approval. Sadly, the letter in which she initially proposed the change seems to have been lost (as opposed to the one where she acknowledged his acceptance), but we can recover the shifts by comparing his manuscript draft with the version as published:
Manuscript: The machine played now in the compelling voice of Gilford Gadberry, as it had often played to George Handle in his sleep till he had learned it: “I killed Minnie Jo Merry. I killed Minnie Jo Merry. Strangled her and threw her out the window. I killed—”
Published story: The machine played now in the compelling voice of Gilford Gadberry, as it had night after night played to George Handle, in his sleep, till he had learned to answer on cue; and the cue, of course, was the question: “Who killed Minnie Jo Merry?” “Pretty uninspired,” Gadberry had to admit, “but I had to assume uninspired questioners, to whom the cliché would come naturally.”
(As a side note here, what is Lafferty playing at by calling a character George Handle? I can’t find any connection to the composer, but it tantalizes nonetheless.)
There’s actually quite a few red herrings in the story, not so much at the basic level of whodunit—the identity of the real killer is never in any serious doubt—as it is about why he did it, and how he set up someone else to take the fall. As ever with Lafferty, these elements reflect on the meta level of the story’s composition.
Much of the story seems to revolve around sleep-learning, or hypnopedia. To educate himself, Handle listens to recordings, some of which he paid Gadberry to make, while he sleeps; Gadberry takes the opportunity to have Handle hypnotize himself into admitting he was the killer.  In pondering where Lafferty would’ve encountered this practice, we could turn to his self-education in science fiction, where it’s been a favorite trope since Hugo Gernsback himself put it into Ralph 124C41+, and Aldous Huxley put it at the heart of his Brave New World. But there’s a more immediate reason it might’ve been on Lafferty’s mind on or just before November 25, 1961, the day he finished the story: on November 16, an episode of popular sitcom My Three Sons revolved around sleep-learning—in this case, learning Spanish, which lifelong language-learner Lafferty might’ve taken particular interest in. Furthermore, the plot of the show involves the recordings being changed out surreptitiously, though for the purpose of a moral to be learned, rather than a murder to be covered up.
In the show they use a home record player; I went down a rabbit-hole trying to figure out exactly what sort of audio equipment Lafferty would’ve had in mind here; thanks to his engineering training and his job selling electronics parts, he was fascinated by consumer electronics and media technology generally, but he’s maddeningly imprecise in his descriptions here, with mention made of “the tapes, the wires, the records” crowding Handle’s apartment. In 1973, when the story was published, it clearly would’ve been standard-issue cassette tapes, which had been available for a decade. But in 1961, when he was writing this, cassette systems were much larger, and the bulk as well as the cost scared many consumers away from getting what seemed then like a novelty.
Ultimately it doesn’t much matter (he said, setting aside huge amounts of media theory dealing with modernism, hypnotism, sound reproduction, and death)—what matters is that the murder itself is getting displaced by a question of technology. As we discover, the reason for that murder is primarily aesthetic: the murdered woman was more aesthetically pleasing dead than alive. But this is the basis for essentially every murder mystery, nearly all of which require at least one corpse to fulfill their own aesthetic—something which Northrop Frye identified in assigning the genre not to the realm of moralism or any romantic restoration of society, but to the realm of sadism and ironic comedy. The exact identity of the character who made the corpse is ultimately irrelevant; it might be the person repeating “I killed Minnie Jo Merry. I killed Minnie Jo Merry…” or they might be ventriloquizing those words at the impetus of another, but in the end it’s the author who’s responsible: theirs is the aesthetic judgment that necessitated the killing. In making a mostly aesthetic decision to carry out a murder, Gadberry reflects also on the morality of the author as artist, even to the point of staging the opening scene for maximum sensory effect (in the process “savagely striking down” a lone white flower—again, subtlety not really the point of this piece). He cites as his motives “jealousy, frustration, curiosity,” but the first two are clearly deprecated to the third, which he shares with any author who creates a character for the sole purpose of killing them off.
This is a grim promontory on which to find oneself, philosophically speaking, and I wonder if it isn’t that which led Lafferty to shelve the tale for so long. There’s a further inquiry to be had over the degree to which this tale deviates from the spirit of oft-cited inspiration G.K. Chesterton, whose Father Brown treats murder less as a crime against morality than as one against rationality: there is evil in the world, and no amount of detection will make that wholly right again, but so long as such crimes can be made comprehensible within the wider moral universe then the logical coherence of that universe remains unshaken. By contrast, Lafferty’s Gadberry acts according to his own morality, in which the aesthetic is prime above all—a true Decadent.
Curiously, it’s Kidd’s edit that steers things back toward a more Chestertonian morality, by bringing in the notion of the cliché. In the original version of the ending, Gadberry’s deception is solely for the purpose of maximizing the aesthetic purity of his world, in which murdering a woman and framing another man is perfectly justifiable in the quest for artistic experience. The idea, however, that he is phrasing his hypnotic direction in such a way that it would be triggered by “uninspired questioners” shows that he is aware of the competing moral framework; moreover, that he is perfectly willing to betray his own artistic vision when doing so more effectively panders to the anaesthetic or the artless, thus undercutting any claim his competing moral universe might have to internal coherency. By pulling the story back from the madness of decadence, Kidd made it into a serviceable detective tale—one that critiques the genre and its clichés, without consigning the whole thing to oblivion on the basis of a single core flaw.
Completed November 1961. Published in Alfred Hitchcock’s Mystery Magazine, ed. Ernest M. Hutter, July 1973. Collected in Does Anyone Else Have Something Further to Add?, New York: Scribners, 1974.
Next entry: three centuries of history in a single afternoon, in “Among the Hairy Earthmen”
0 notes
dorothydelgadillo · 6 years ago
Text
A Detailed Comparison Between WordPress And October CMS
A Detailed Comparison Between WordPress And October CMS
Leonardo Losoviz
2019-03-18T12:00:28+01:002019-03-18T11:37:39+00:00
Three months ago, WordPress finally released React-powered Gutenberg to power its default content editing experience, triggering many people who are not happy with this change to look for alternatives. Some folks decided to fork and release pre-Gutenberg WordPress, however, for me this doesn’t make much sense since it still carries 15 years worth of technical debt. If I were to find an alternative to WordPress, I would try to avoid being stuck in the past, and aim for a clean cut through some mature platform built on modern foundations.
This article compares WordPress to the arguably similar yet more modern October CMS on a wide arrange of both technical and non-technical topics. The goal of the article is not to convince people to stick to WordPress or to switch to October CMS, but simply to demonstrate what aspects must be taken into account before concluding the move to a different platform. The same comparison could (and should) also be done with other platforms before making a sensible decision.
Why October CMS
I found out about October CMS when it won an award, after which I went into research mode and spent a good deal of time digging deep into this CMS — from the perspective of both a user and a developer. As I gained knowledge on this CMS, I felt confident that I could provide an objective evaluation of its features as contrasted to WordPress. I chose this CMS for the comparison over alternative options such as Grav, Statamic, ButterCMS, Joomla, Drupal, Jekyll, Hugo, and others, for the following reasons:
I know how this CMS works (unlike Grav);
It is free and open source (unlike Statamic and ButterCMS);
At five years, it is “relatively” new (unlike Joomla and Drupal);
It is a dynamic (not static) content generator and based in PHP (unlike Jekyll and Hugo).
I believe that October CMS is a good candidate because it is based on Laravel which is a framework used for building modern applications. After seven years of existence, it has received positive approval from developers (as evidenced by its sizeable community and ecosystem), and marks a distinct contrast over coding in WordPress, i.e. WordPress is mostly procedural programming while Laravel is decidedly object-oriented programming.
What’s The Difference Between The Two?
Below I will compare WordPress and October CMS on different categories and highlight what, I believe, is good and not so good about them. However, I will not pick a winner, since that’s not the objective of the article and, in any case, there is no “best” or even “better” CMS: each CMS has its own set of strengths and weaknesses that will make it more or less suitable for each task, project, company, team, and anything else. Moreover, a project may benefit from using more than one CMS, such as using some CMS to manage and provide data, and another CMS to render the view. To decide which of the dozens of CMSs out there is most suitable for your own needs is entirely up to you.
In addition, this article could never draw definitive conclusions since it is only concerned with a subset of all possibilities. For instance, we can also find online comparisons such as “WordPress vs Drupal vs Joomla”, “WordPress vs Static Site Generators” and even “WordPress vs Medium”. Because none of these articles sees the full picture, then none of these comparisons can ever be conclusive, and should not be treated as such.
Let’s start with the comparison.
Philosophy And Target Group
It is no coincidence that WordPress powers nearly 1 in 3 websites. Ever since its inception, it has strived to be extremely user-friendly and has done so successfully, removing friction for technical and non-technical users alike as well as for people from all backgrounds — irrespective of their education and economic levels. WordPress’ founder Matt Mullenweg expressed that WordPress’ motto of “Democratize Publishing” for the current era meant the following:
“People of all backgrounds, interests, and abilities should be able to access Free-as-in-speech software that empowers them to express themselves on the open web and to own their content.”
WordPress is easy to use for everyone and its inclusivity is evidenced on the development side too: It’s not uncommon to find people without a programming background (such as marketers, designers, bloggers, sales people, and others) tinkering with their WordPress installations, designing their own themes and successfully launching their own websites. WordPress is user-centric, and the needs of the users trump those of the developers. In WordPress, the user is king (or queen).
In contrast, October CMS is more geared towards the developer, as explicity established from its very first release:
“October makes one bold but obvious assumption: clients don’t build websites, developers do. The role of a client is to manage the website and convey their business requirements. The web developer, and the industry itself, revolves around mediating these factors.”
In the words of its founders, the CMS’ mission is to “prove that making websites is not rocket science.” Being based on Laravel, October CMS can claim to have strong foundations of reusable, modular code that can produce properly-architected applications, maintainable in the long term and fully customizable without requiring hacks — the type which attracts serious programmers. October CMS can also provide a great user experience, however, it is not as simple or frictionless as that provided by WordPress. Users may need to be explained how to use certain functionality before being able to use it. For instance, embedding a form from some plugin has a lengthy explanation on how to do it, which is more cumbersome than the self-evident, drag-and-drop functionality provided by several form plugins in WordPress.
Installation
WordPress is famous for its 5-minute installation, even though many people point out that (taking into consideration all the plugins that must be installed) a typical installation requires 15 minutes or more. In addition, WordPress also offers the Multisite feature, which allows us to create a network of multiple virtual sites under a single installation. This feature makes it easy for an agency to administer the sites of multiple clients — among other user cases.
Installing October CMS is also very smooth: The Wizard installation itself takes even less than five minutes, and if you install it through the Console installation, it is even faster. You can do the latter by simply navigating to the target directory and then executing curl -s https://octobercms.com/api/installer | php (after which we need to input the database configuration, otherwise it behaves as a flat-file CMS). Once the installation has been completed, we will have a fully functioning website, but still quite bare (if you add the time needed to install and configure the required plugins, you can expect it to take at least 15 minutes).
Tumblr media
Installing October CMS with the Wizard is a breeze. (Large preview)
Security
WordPress has been accused of being insecure due to the high amount of vulnerabilities that are constantly found. This forces users to have the software for the CMS and all installed plugins always up to date to avoid security exploits. Among the main issues is WordPress’ support for older versions of PHP which are not supported by the PHP development community anymore (WordPress currently supports PHP 5.2.4, while the latest fully supported PHP version is 5.6). However, this problem should be resolved in April 2019 when WordPress will officially start supporting PHP versions 5.6 and upwards.
Otherwise, WordPress is not necessarily insecure because of itself, but because of its high popularity, which makes it a primal target for hackers. However, this plays both ways: WordPress ubiquity means that its security team must really take their job seriously by constantly looking for exploits and fixing them as soon as possible, otherwise up to a third of the web is at risk. The stakes are just too high.
October CMS, on the other hand, doesn’t have a reputation of being insecure. However, since there are roughly 27,000 live sites that use October as compared with WordPress’ millions, we can’t judge the two of them on the same terms. Nevertheless, the team behind October CMS does take security seriously, as evidenced by the Wizard installation’s prompt to input the CMS backend URL, set as /backend by default but changeable to anything else, as to make it more difficult for hackers to target the site. In contrast, changing WordPress’ login and backend URLs from /wp-login.php and /wp-admin respectively to something else must be done through a plugin. In addition, October CMS can function as a flat-file CMS (i.e. without a database) and avoid database-related vulnerabilities such as SQL injection.
Technology Stack
Both WordPress and October CMS run on the traditional LAMP stack: Linux, Apache, MySQL, and PHP. (However, only PHP is fixed: we can also use Windows, Nginx, MariaDB, and others.) October CMS can also behave as a flat-file CMS, meaning that it can do without a database, however, at the cost of forgoing many functionalities (such as blog posts and users) the only functionality that is guaranteed is pages, which is considered to be the basic unit for the creation and publishing of content and shipped as a core feature.
Concerning the language stack, sites built with both WordPress and October CMS are based on HTML, CSS, and JavaScript (note that PHP is used to generate the HTML). October CMS also makes it easy to use LESS and SASS files.
Programming Paradigm
WordPress follows a functional programming paradigm, based on calculating computations by calling functions devoid of application state. Even though WordPress developers do not need to stick to functional programming (for instance, for coding their themes and plugins), the WordPress core code inherits this paradigm from 15 years of preserving backwards compatibility, which has been one of the pillars to WordPress’ success but which has the unintended consequence of accumulating technical debt.
On the other side, October CMS follows an imperative programming paradigm, based on calculating computations by manipulating objects’ state. October CMS sits on top of Laravel, a web framework fully founded on Object-Oriented Programming principles that enable the production of modular applications based on concepts such as the Model-View-Controller to decouple the user interface from the application data, Dependency Injection to configure class dependencies, and the Interface Segregation Principle to define the core services provided by the framework, among many others.
Hooks/Events
Programming in WordPress could be characterized as HDD which stands for “Hook-Driven Development”. A hook is a mechanism that allows changing a default behavior or value and allowing other code to execute related functionality. Hooks are triggered through “actions” which allow executing extra functionality, and “filters” that allow modifying values.
Hooks, which are widespread across the WordPress codebase, are one of the concepts that I most like from coding in WordPress. They allow plugins to interact with other plugins (or with a core or theme) in a clean way, providing some basic support of Aspect-Oriented Programming.
Good news is that Laravel (and in consequence October CMS) also supports the concept of hooks, which is called “events”. Events provide a simple observer implementation, enabling code to subscribe and listen for events that occur in the application and react as needed. Events make it possible to split a complex functionality into components, which can be installed independently yet collaborate with each other, thus enabling the creation of modular applications.
Dependence on JavaScript Libraries
The latest version of WordPress incorporates React-powered Gutenberg for its default content creation experience. Hence, WordPress development now relies by and large on JavaScript (predominantly through React), even though it is also possible to use other frameworks or libraries (as evidenced by Elementor Blocks for Gutenberg which is based on Marionette). In addition, WordPress still relies on Backbone.js (for the Media Manager) and jQuery (legacy code), however, we can expect the dependence on these libraries to wither away as Gutenberg is consolidated as the new norm.
October CMS depends on jQuery, which it uses to implement its optional AJAX framework to load data from the server without a browser page refresh.
Pages, Themes and Plugins
Both WordPress and October CMS treat a page as the basic unit for creating and publishing content (in WordPress case, in addition to the post), support changing the site’s look and feel through themes, and allow to install and extend the site’s functionalities through plugins. Even though the concepts are the same in both CMSs, there are a few differences in implementation that produce somewhat different behavior.
In WordPress, pages are defined as content and stored in the database. As a result, page content can be created through the CMS only (e.g. in the dashboard area), and switching from one theme to another doesn’t make an existing page become unavailable. This produces an overall frictionless experience.
In October CMS, on the other hand, pages are static files stored under the theme directory. On the positive side from this architectural decision, page content can be created from an external application, such as text editors like Sublime or Visual Studio Code. On the negative side, when switching from one theme to another, it is required to manually recreate or copy the pages from the current to the new theme, or otherwise, they will disappear.
Significantly, October CMS resolves routing through pages, hence pages are used not just as containers for content but also for functionality. For instance, a plugin for blogging depends on a page for displaying the list of blog posts under a chosen URL, another page to display a single blog post under another chosen URL, and so on. If any of these pages disappear, the associated functionality from the plugin becomes unavailable, and that URL will produce a 404. Hence, in October CMS themes and plugins are not thoroughly decoupled, and switching themes must be done carefully.
Tumblr media
October CMS enables the creation of content from external applications. (Large preview)
Core vs Plugin Functionality
WordPress attempts to deliver a minimal core functionality which is enhanced through plugins. WordPress relies on the “80⁄20 rule” to decide if to include some functionality in its core experience or not. If it benefits 80% of the users it goes in, otherwise, it belongs to plugin-land. When adding plugins to a site, they can lead to bloat if too many plugins are installed. Plugins may also not work well with one another, or execute similar code or load similar assets, resulting in suboptimal performance. Hence, whereas launching a WordPress site is relatively easy, a bigger challenge is its general maintenance and being able to preserve an optimal and performant state when adding new features.
Tumblr media
The WordPress plugin directory claims to have almost 55,000 plugins. (Large preview)
Likewise, October CMS also attempts to deliver a minimal core functionality, but on steroids: the only guaranteed functionality is the creation and publication of pages, and for everything else we will need to install one plugin or another, which is expressed as:
“Everything you need, and nothing you don't.”
The objective is clear: most simple sites are only composed of pages, with possibly no blog posts, users or login area. So why should the application load resources for these when they are not needed? As a consequence, functionalities for blogging, user management, translation and several others are released through the plugin directory.
Tumblr media
Searching for 'Rainlab' in October’s plugins directory displays plugins created by October CMS' team. (Large preview)
October CMS also includes certain features in its core which (even though they are not always needed) can enhance the application significantly. For instance, it provides out-of-the-box support to upload media files to Amazon S3 and accesses them through the Rackspace CDN. It also includes a Media Manager which is mostly used through plugins, e.g. for adding images into a blog post. (Pages can also use the Media Manager to embed media files, however, the CMS also ships with an Assets section to upload media files for these which seems more suitable.)
I believe that October’s opinionatedness can perfectly enable us to produce an application that is as lean as possible — mostly concerning simple sites. However, it can also backfire and encourage bloat, because the line of what is needed and what is not is an arbitrary one, and it’s difficult to be set in advance by the CMS. This difficulty can be appreciated when considering the concept of a “user”: In WordPress, website users and website admins belong to the same user entity (and through roles and privileges we can make a user become an admin). In October CMS, these two are implemented separately, shipping in core the implementation for the website administrator which can log in to the backend area and modify the settings, and through a plugin the implementation of the website user. These two types of users have a different login process and a different database table for storing their data, thus arguably breaching the DRY (Don’t Repeat Yourself) principle.
This problem arises not only concerning the behavior of an entity but also what data fields it must contain. For instance, should the website user data fields be predefined? Is a telephone field required? What about an Instagram URL field, considering that Instagram got kind of cool only recently? But then, when building a professional website shouldn’t we use a LinkedIn URL field instead? These decisions clearly depend on the application and can’t be decided by either CMS or plugin.
The October CMS plugin called User implements users but without any user field, on top of which plugin User Plus adds several arbitrary user fields, which are possibly not enough, so plugin User Plus+ adds yet other user fields. When, where and how do we stop this process?
Another problem is when there is no room to add new capabilities to an entity, which leads to the creation of another, extremely similar entity, just to support those required capabilities. For instance, October CMS ships with pages, and allows to create “static pages” through a plugin. Their nature is the same: both pages and static pages are saved as static files. The only difference between them (as far as I can tell) is that static pages are edited with a visual editor instead of the HTML editor, and can be added to menus. In my opinion, only structural differences, such as having one entity saved as a static file and the other one stored in the database, could justify creating a second entity for a page (there is a pull request to do this), but for simple features, as is the case currently, it constitutes development bloat.
In summary, a well implemented October CMS application can be very lean and efficient (e.g. by removing the database when not needed), but on the contrary it can also become unnecessarily bloated, forcing developers to implement several solutions for similar entities, and which can be very confusing to use (“Should I use a page or a static page?”). Because neither WordPress or October CMS has found a perfect solution for removing bloat, we must design either application architecture with care to avoid down-the-road pain.
Content Creation
Gutenberg makes two important contributions to WordPress: It uses components as the unit for building sites (which offers several advantages over coding blobs of HTML), and it introduces an entity called a “block” which, once Gutenberg Phase 2 is completed (presumably in 2019), will provide a unified way to incorporate content into the site, thus enabling a simpler user experience as opposed to the more chaotic process of adding content through shortcodes, TinyMCE buttons, menus, widgets, and others.
Tumblr media
Since WordPress 5.0 Gutenberg is the default content creation experience. (Large preview)
Because Gutenberg blocks can produce and save static HTML as part of the blog post, then installing many Gutenberg blocks doesn’t necessarily translate into bloat on the website on the user side, but can be kept restricted to the admin side. Hence, Gutenberg can arguably be considered a good approach to produce websites in a modular way, with a simple yet powerful user experience for creating content. Possibly the biggest drawback is the (unavoidable, but not easily so) requirement to learn React, whose learning curve is rather steep.
If React components are the basic unit for creating content in WordPress, October CMS is based on the premise that knowing good old HTML is enough for building sites. Indeed, when creating a page, we are simply presented an HTML (Markup) editor:
Tumblr media
Creating a page in October CMS. (Large preview)
If the page were solely static HTML, then there would be no need for a CMS. Instead, October CMS pages are written using Twig templates which are compiled to plain optimized PHP code. They can select a layout to include the scaffolding of the page (i.e. repetitive elements, such as the header, footer, and so on), can implement placeholders, which are defined on the layout to allow the page to customize content, and can include partials, which are reusable chunks of code. In addition, pages can include content blocks, which are either text, HTML or Markdown files that can be edited on their own and can attach components which are functionalities implemented through plugins. And finally, for whenever HTML is not enough and we need to produce dynamic code, we can add PHP functions.
The editor is all about HTML. There is no TinyMCE textarea for adding content in a visual manner — at least not through the default experience (this functionality belongs to plugin-land). Hence, having knowledge of HTML could be considered a must for using October CMS. In addition, the several different inputs for creating content (pages, layouts, placeholders, partials, content blocks, components, and PHP functions) may be very effective, however, it is certainly not as simple as through the unified block interface from WordPress. It can even get more complex since other elements can also be added (such as static pages and menus, and snippets), and some of them, such as pages and static pages, seemingly provide the same functionality, making it confusing to decide when to use one or the other.
As a result, I dare say that while pretty much anyone can use a WordPress site from the admin side, October CMS is more developer-friendly than non-technical user-friendly, so programmers may find it a joy to use, but certain other roles (marketers, sales people, and the like) may find it non-intuitive.
Media Manager
Both WordPress and October CMS are shipped with a Media Manager which allows adding media files to the site effortlessly, supporting the addition of multiple files simultaneously through a drag-and-drop interface and displaying the images within the content area. They look and behave similarly; the only notable differences I found are that WordPress’ Media Manager allows to embed image galleries, and October’s Media Manager allows to manually create a folder structure where to place the uploaded files.
Tumblr media
October CMS ships with a powerful Media Manager. (Large preview)
Since the introduction of Gutenberg, though, WordPress’ media capabilities have been enhanced greatly, enabling to embed videos, pictures and photo galleries in place as compared to within a TinyMCE textarea (which only provides a non-accurate version of how it will look like in the site), and unlocking powerful, yet easy-to-use features as shown in this video.
Internationalization
WordPress core uses gettext to enable the translation of themes and plugins. Starting from a .pot file containing all strings to translate, we need to create a .po file containing their translation to the corresponding language/locale, and this file is then compiled to a binary .mo file suitable for fast translation extraction. Tools to perform these tasks include GlotPress (online) and Poedit (downloadable application). Conveniently, this mechanism also works for client-side localization for Gutenberg.
Tumblr media
Poedit allows to translate strings for themes and plugins for WordPress. (Large preview)
WordPress currently doesn’t ship any solution in core to translate content, and will not do so until Phase 4 of Gutenberg (targeted for year 2020+). Until then, this functionality is provided by plugins which offer different strategies for storing and managing the translated content. For example, while plugins such as Polylang and WPML store each translation on its own row from a custom database table (which is clean since it doesn’t mix content together, but slower since it requires an additional INNER JOIN of two tables when querying the database), plugin qTranslate X stores all translations on the same field from the original database table (faster for querying the data, but content mixed all together can produce wreckage on the site if disabling the plugin). Hence, we can shop around and decide the most suitable strategy for our needs.
October CMS doesn’t ship the multilingual functionality through its core, but as a plugin created by the October CMS team that guarantees a faultless integration into the system. From a functional point of view, this plugin delivers what it promises. From a development point of view, it is not quite ideal how this plugin actually works. In WordPress, a page is simply a post with post type “page” and there is a single translation mechanism for them, but in October CMS, there are entities “page”, “static page” and “blog post” and, even though quite similar, they require three different implementations for their translations! Then, the content from a “page” can include message codes (e.g. codes called nav.content, header.title, and so on), each of which contains its translations for all locales as a serialized JSON object in database table rainlab_translate_messages. The content from a “static page” is created into a new static file per locale, however, all translated URLs for all locales are stored not in their corresponding file but instead on the default language’s file. The content for the “blog post” is stored as a serialized JSON object with one row per locale in database table rainlab_translate_attributes and the translated URL is stored with one row per locale in database table rainlab_translate_indexes. I don’t know if this complexity is due to how the plugin was implemented or whether it is due to October CMS’ architecture. Whichever the case, this is another instance of undesired bloat on the development side.
Plugin Management
Both WordPress and October CMS offer a sophisticated plugin manager which allows to search for plugins, install new plugins, and update currently-installed plugins to their latest version — all from within the backend.
Tumblr media
October CMS enables to keep all plugins up-to-date effortlessly. (Large preview)
Dependency Management
October CMS uses Composer as the package manager of choice, enabling plugins to download and install their dependencies when being installed, thus delivering a painless experience.
WordPress, on the opposite side, hasn’t officially adopted Composer (or any PHP dependency manager) because the community can’t agree if WordPress is a site or a site dependency. Hence, if they require Composer for their projects, developers must add it on their own. With the switch to Gutenberg, npm has become the preferred JavaScript dependency manager, with a popular developer toolkit depending on it, and the client-side libraries being steadily released as autonomous packages in the npm registry.
Interaction With The Database
WordPress provides functions to retrieve database data (such as get_posts) and store it (such as wp_insert_post and wp_update_post). When retrieving data, we can pass parameters to filter, limit and order the results, in order to indicate if the result must be passed as an instance of a class or as an array of properties and others. When the function doesn’t fully satisfy our requirements (e.g. when we need to do an INNER JOIN with a custom table) then we can query the database directly through global variable $wpdb. When creating a plugin with a custom post type, the code will most likely be executing custom SQL queries to retrieve and/or save data into custom tables. In summary, WordPress attempts to provide access to the database through generic functions in the first stage, and through low-level access to the database in the second stage.
October CMS employs a different approach: Instead of connecting to the database straight away, the application can use Laravel’s Eloquent ORM to access and manipulate database data through instances of classes called Models, making the interaction with the database also be based on Object-Oriented Programming. It is high-level access; just by following the rules on how to create tables and set-up relationships among entities, a plugin can retrieve and/or save data without writing a line of SQL. For instance, the code below retrieves an object from the database through model Flight, modifies a property, and stores it again:
$flight = Flight::find(1); $flight->name = 'Darwin to Adelaide'; $flight->save();
Upgrading The Data Model
Another reason for WordPress’ success (in addition to not breaking backward compatibility) has been its database architecture, which was engineered to enable applications to grow over time. This objective is accomplished through “meta” properties, i.e. properties that can be loosely added to a database object at any moment. These properties are not stored in a column from the corresponding entity table (either wp_posts, wp_users, wp_comments or wp_terms), but instead as a row in the corresponding “meta” table (wp_postmeta, wp_usermeta, wp_commentmeta or wp_termmeta) and retrieved doing an INNER JOIN. Hence, even though retrieving these meta values is slower, they provide unlimited flexibility, and the application’s data model rarely needs to be re-architected from scratch in order to implement some new functionality.
Tumblr media
WordPress provides unlimited flexibility for upgrading the application’s data model. (Large preview)
October CMS doesn’t use meta properties but instead can store several arbitrary values, which are not directly mapped as columns in the database tables, as a serialized JSON object. Otherwise, when an object needs some new property, we need to add a new column on the corresponding table (which is the reason behind plugins User Plus and User Plus+, mentioned earlier on). To update the application’s database schema, October CMS relies on Laravel’s Migrations, which are sets of instructions to execute against the schema (such as add or drop a column, rename an index, etc) and which are executed when upgrading the software (e.g. when installing a plugin’s new version).
Headless Capabilities
Both WordPress and October CMS can be used as headless, i.e. treating the CMS as a content management system that makes content accessible through APIs, which allows to render the website on the client-side and can power other applications (such as mobile apps). Indeed, WordPress is steadily heading towards headless, since the Gutenberg content editor itself treats WordPress as a headless CMS (and, as a consequence, Gutenberg can also work with any other CMS too, as Drupal Gutenberg demonstrates).
A headless system needs to implement some API to return the data, such as REST and GraphQL. WordPress supports REST through WP REST API (merged in core), exposing endpoints under some predefined route /wp-json/wp/v2/...; October CMS supports REST through plugins RESTful and API Generator, which allow to create custom endpoints and, as a consequence, support versioning as part of the endpoint URL and can offer a better security against bots. Concerning GraphQL, WordPress supports it through WPGraphQL, while October CMS currently has no implementations for it.
Quite importantly, a headless system needs to offer powerful content management capabilities. As mentioned earlier on, WordPress has a very solid database architecture, offering a plethora of data entities (users, posts and custom posts, pages, categories, tags and custom taxonomies, comments) over which the application can be reasonably well modelled, meta properties to extend these data entities (enabling the application to upgrade its data model accordingly and without major changes), and with plugin Advanced Custom Fields filling the gap to construct relationships among the data entities. In addition, plugin VersionPress allows to version control the database content using Git. Hence, WordPress is undoubtedly a good fit for managing content, as demonstrated in several projects in the wild.
On its part, and as mentioned earlier on, October CMS can omit the database and behave as a flat-file system, or it can have a database and behave as a hybrid, storing the content from pages as static files and blog posts (and others) on the database. As a consequence, content is not centralized, and its management involves a different approach. For instance, while we can use Git to version control pages, there is no support to version control the database per se; the solution to this is to populate data into the database through Seeders which, being code, can be put under version control and executed upon deployment. In addition, October CMS doesn’t offer a baked-in database model featuring predefined data entities that can support the needs of most applications. Hence, more likely than not the application will need custom development to implement its data model, which means more work, but also means that it can be more efficient (e.g. accessing a property from a column is faster than from a row in another table through an INNER JOIN, which is the case with WordPress’ meta properties).
CLI Support
Both WordPress and October CMS can be interacted with from the console through a Command Line Interface (CLI): WordPress through WP-CLI and October CMS through Laravel’s Artisan. In addition to Laravel’s commands, October CMS implements several custom commands for updating the system, migrating the database, and others. These tools make it very convenient to access the site from outside a browser, for instance for testing purposes.
Managed Hosting
It is not a problem finding a managed hosting provider for a WordPress site: given WordPress’ market share, there are dozens (if not hundreds) of providers out there vying with each other for the business, constituting a very dynamic market. The only problem is finding the most suitable provider for our specific sites based on all of their offerings, which can vary based on price, quality, type (shared or dedicated services), bandwidth and storage size, customer support, location, frequency of renewal of equipment, and other variables which we can navigate mainly through reviews comparing them (such as this one, this one or this one).
Even though nothing near as many as WordPress, October CMS still enjoys the offering from several hosting providers, which allows for some consideration and selection. Many of them are listed as October Partners, and several others are found DuckDuckGoing, but since I haven’t found any independent review of them or article comparing them, the task of finding out the most suitable one will take some effort.
Marketplace, Ecosystem And Cost
WordPress’ commercial ecosystem is estimated to be USD $10 billion/year, evidencing how many people and companies have managed to make a living by offering WordPress products and services, such as the creation of sites, hosting, theme and plugin development, support, security, and others. Indeed, its size is so big it is even bloated, meaning that it is very common to find different plugins solving the same problem, plugins that underdeliver, underperform or have not been updated for years, and themes which seem to look-alike each other. However, when creating a new site, the size and variety of the ecosystem also means that we will most likely find at least one plugin implementing each of the required functionalities, enabling us to save money by not having to develop the functionality ourselves, and the availability of customizable themes enables to produce a reasonably distinctive-looking site with minimal effort. As a consequence, we can easily create and launch a WordPress site for less than USD $100, making WordPress a sensible option for projects of any budget.
Being relatively new (only five years so far), OctoberCMS certainly doesn’t enjoy anything near WordPress’ marketplace and ecosystem sizes, however, it has been growing steadily so its size is bound to become bigger. Currently, its marketplace boasts 600+ plugins, and only a handful of themes. Concerning plugins, the October CMS team is requesting the community to put their effort into the creation of original plugins, delivering functionality not yet provided by any other plugin.
Hence, even though 600+ plugins doesn’t sound like much, at least these translate into 600+ different functionalities. This way, even though it is not possible to choose among several vendors, at least we can expect to have those basic website features (such as blogging, comments, forum, integration with social media, e-commerce, and others) to be covered. Also, since October’s founders are personally reviewing all submitted plugins and judging them according to quality guidelines, we can expect these plugins to perform as expected. As another plus, October plugins can incorporate elements from Laravel packages (even though not all of them are compatible with October, at least not without some hacks). Concerning themes, the low number of offerings implies we will most likely need to develop our own theme by hiring a developer for the task. In fact, I dare say that the theme in October CMS will most likely be a custom development, since themes and plugins are not thoroughly decoupled (as explained earlier), with the consequence that a market for easily-swappable themes is more difficult to arise. (This is a temporary problem though: once this pull request is resolved, pages will be able to be stored in the database, and swapping themes should not disrupt functionality.)
In my opinion, because of the smaller offerings of themes and plugins, creating a simple site with OctoberCMS will be more expensive than creating a simple WordPress site. For complex sites, however, October’s better architecture (Object-Oriented Programming and Model-View-Controller paradigms) makes the software more maintainable and, as a consequence, potentially cheaper.
Community
Being a part of and having access, WordPress’ community represents one of the most compelling reasons for using WordPress. This is not simply as a matter of size (powering nearly one third of all websites in the world, there are so many stakeholders involved with WordPress, and its community is representatively big) but also as a matter of diversity. The WordPress community involves people from many different professions (developers, marketers, designers, bloggers, sales people, and so on), from all continents and countries, speaking countless languages, from different social, educational and economic backgrounds, with or without disabilities, from corporate, not-for-profit and governmental organizations, and others. Hence, it is quite likely that, for whatever problem we encounter, somebody will be able to help on any of the support forums. And contributing to WordPress is pretty straightforward too: The Make WordPress group congregates stakeholders interested in supporting different projects (accessibility, design, internationalization, and many others) and organizes how and how regularly they communicate — mostly through some dedicated channel on its Slack workspace.
Furthermore, the WordPress community is real and tangible: it doesn’t exist just online, but it gathers offline in WordCamps and meetups all over the world; in 2018, there were a total of 145 WordCamps in 48 countries with over 45,000 tickets sold, and a total of 5,400 meetup events from 687 meetup groups. Hence, it is likely that there is a local chapter nearby which anyone can join to ask for help, learn how to use the platform, keep learning on a regular basis, and teach others as well. In this sense, WordPress is not just a CMS but, more importantly, it’s also people, and considering to leave WordPress should never be done only on its technical merits but on the power of its community, too.
Tumblr media
WordCamp Kuala Lumpur 2017 drew more than 200 attendees, coming from several countries. (Large preview)
October CMS’ community is nothing near in size or diversity as WordPress’, even though it has been growing steadily following the increasing popularity of the software. October provides a support forum to ask for help, however, it is not very active. A Slack workspace exists which is pretty active and where, quite importantly, October’s founders participate regularly, helping make sure that all enquiries are properly addressed. This channel is a great source for learning low-level tips and tricks about the software, however, it is geared towards developers mainly: There are no channels concerning accessibility, design, internationalization, and other topics as in the WordPress community, at least not yet. Currently, there are no conferences concerning October CMS, but there is Laracon, the conference for the Laravel community.
Maintainers And Governance
Can we trust that the software will be maintained in the long term, so that if we decide to start a project today, we will not need to migrate to some other platform down the road? How many people are taking care of developing the software? And who is deciding in what direction the software moves towards?
Powering one-third of all sites in the world, WordPress is not short of stakeholders contributing to the software; hence we need not fear that the software will fall into decay. However, WordPress is going through internal deliberations concerning its governance model, with many members of the community expressing that decisions concerning WordPress’s direction are being taken unilaterally by Automattic, the company running WordPress.com. Center stage of this perception was the decision to launch Gutenberg, which many members disagreed with, and which suffered a lack of proper communication by the project leads during its development and release. As a consequence, many community members are questioning the role of “benign dictator”, which has been historically granted to WordPress’ founder and Automattic’s CEO Matt Mullenweg, and researching different governance models to find a more suitable one for the future of WordPress. It is yet to be seen if this quest produces any result, or if the status quo perseveres.
Decisions concerning October CMS’ direction are mainly taken by founders Alexey Bobkov and Samuel Georges and developer and community manager Luke Towers, which keep the project going strong. October CMS doesn’t have the luxury of having a governance problem yet: Its current concern is how to make the project sustainable by generating income for the core software’s maintainers.
Documentation
WordPress documentation in its own site is not extremely comprehensive, but it does the job reasonably well. However, when taking all of the documentation about WordPress into account from all sources, such as general sites (Smashing Magazine, CSS tricks, and many others), specialized sites (WPShout, WPBeginner, and many others), personal blogs, online courses, and so on, there is practically no aspect of dealing with WordPress that hasn’t already been covered.
October CMS doesn’t enjoy anything near the many third-party courses, tutorials or blog posts about it as much as WordPress does, however, the documentation on its site is reasonably comprehensive and certainly enough to start coding. October founders also regularly add new documentation through tutorials. One aspect that I personally enjoyed is the duplication of Laravel’s documentation into October’s documentation for everything of relevance, so the reader must not fill the gaps by him/herself and having to guess what is October’s domain and what is Laravel’s. However, this is not 100% perfect. October’s documentation uses terms originating from Laravel, such as middleware, service containers, facades and contracts, without adequately explaining what these are. Then, reading Laravel’s documentation in advance can be helpful (luckily, Laravel’s documentation is decidedly comprehensive, and Laravel’s screencasts, Laracasts, are another great source of learning, not just concerning Laravel but web development in general).
Conclusion
I set out to discover what features may be enticing for developers looking for alternatives to WordPress by comparing WordPress to a similar CMS, which I defined as being free and open source, based in PHP and producing dynamic content, and enjoying the support from some community. From the CMSs fulfilling these conditions, I chose October CMS for the comparison because of the knowledge I got about it, and because I appreciated its clean and modular coding approach as provided by Laravel, which could offer a fresh and modern perspective for building sites.
This article did not intend to pick a winner, but simply analyze when it makes sense to choose one or the other CMS, highlighting their strengths and weaknesses. There is no “best” CMS: only the most suitable CMS for a specific situation. Furthermore, anyone looking for a CMS to use on a particular project with a specific team and given a certain budget, should do some research and compare all the offerings out there to find out which one is most suitable for the particular context. It’s important not to limit to a few CMSs as I’ve done here in this article, but instead give a chance to all of them.
On a personal note, as a developer, what I found in October CMS is really appealing to me, mostly its ability to build modular applications as provided through Laravel. I would certainly consider this CMS for a new website. However, in the process of writing this article I also “rediscovered” WordPress. Being so popular, WordPress receives more than its fair share of criticisms, mostly concerning its old codebase and, since recently, the introduction of Gutenberg; however, WordPress also has certain excellent features (such as its super-scalable database model) which are seldom praised but should be taken into account too. And most importantly, WordPress should not be considered on its technical aspects alone: in particular, the size of its community and ecosystem places it a level or two above its alternatives. In a nutshell, some projects may benefit from sticking to WordPress, while others may better rely on October CMS or another platform.
As a final note, I would like to remark that exploring how another CMS works is a very rewarding activity on its own, independent of the decision reached concerning whether to use that particular CMS or not. In my case, I had been working for years on WordPress alone, and delving into October CMS was very refreshing since it taught me many things (such as the existence of PHP Standards Recommendations) which I had not been exposed to through WordPress. I may now decide to switch CMSs, or stick to WordPress knowing how to produce better code.
Further Reading on SmashingMag:
Caching Smartly In The Age Of Gutenberg
Improving WordPress Code With Modern PHP
Lessons Learned While Developing WordPress Plugins
How To Use Heatmaps To Track Clicks On Your WordPress Website
Be Watchful: PHP And WordPress Functions That Can Make Your Site Insecure
Tumblr media
(rb, ra, yk, il)
0 notes
nancydsmithus · 6 years ago
Text
A Detailed Comparison Between WordPress And October CMS
A Detailed Comparison Between WordPress And October CMS
Leonardo Losoviz
2019-03-18T12:00:28+01:002019-03-18T11:37:39+00:00
Three months ago, WordPress finally released React-powered Gutenberg to power its default content editing experience, triggering many people who are not happy with this change to look for alternatives. Some folks decided to fork and release pre-Gutenberg WordPress, however, for me this doesn’t make much sense since it still carries 15 years worth of technical debt. If I were to find an alternative to WordPress, I would try to avoid being stuck in the past, and aim for a clean cut through some mature platform built on modern foundations.
This article compares WordPress to the arguably similar yet more modern October CMS on a wide arrange of both technical and non-technical topics. The goal of the article is not to convince people to stick to WordPress or to switch to October CMS, but simply to demonstrate what aspects must be taken into account before concluding the move to a different platform. The same comparison could (and should) also be done with other platforms before making a sensible decision.
Why October CMS
I found out about October CMS when it won an award, after which I went into research mode and spent a good deal of time digging deep into this CMS — from the perspective of both a user and a developer. As I gained knowledge on this CMS, I felt confident that I could provide an objective evaluation of its features as contrasted to WordPress. I chose this CMS for the comparison over alternative options such as Grav, Statamic, ButterCMS, Joomla, Drupal, Jekyll, Hugo, and others, for the following reasons:
I know how this CMS works (unlike Grav);
It is free and open source (unlike Statamic and ButterCMS);
At five years, it is “relatively” new (unlike Joomla and Drupal);
It is a dynamic (not static) content generator and based in PHP (unlike Jekyll and Hugo).
I believe that October CMS is a good candidate because it is based on Laravel which is a framework used for building modern applications. After seven years of existence, it has received positive approval from developers (as evidenced by its sizeable community and ecosystem), and marks a distinct contrast over coding in WordPress, i.e. WordPress is mostly procedural programming while Laravel is decidedly object-oriented programming.
What’s The Difference Between The Two?
Below I will compare WordPress and October CMS on different categories and highlight what, I believe, is good and not so good about them. However, I will not pick a winner, since that’s not the objective of the article and, in any case, there is no “best” or even “better” CMS: each CMS has its own set of strengths and weaknesses that will make it more or less suitable for each task, project, company, team, and anything else. Moreover, a project may benefit from using more than one CMS, such as using some CMS to manage and provide data, and another CMS to render the view. To decide which of the dozens of CMSs out there is most suitable for your own needs is entirely up to you.
In addition, this article could never draw definitive conclusions since it is only concerned with a subset of all possibilities. For instance, we can also find online comparisons such as “WordPress vs Drupal vs Joomla”, “WordPress vs Static Site Generators” and even “WordPress vs Medium”. Because none of these articles sees the full picture, then none of these comparisons can ever be conclusive, and should not be treated as such.
Let’s start with the comparison.
Philosophy And Target Group
It is no coincidence that WordPress powers nearly 1 in 3 websites. Ever since its inception, it has strived to be extremely user-friendly and has done so successfully, removing friction for technical and non-technical users alike as well as for people from all backgrounds — irrespective of their education and economic levels. WordPress’ founder Matt Mullenweg expressed that WordPress’ motto of “Democratize Publishing” for the current era meant the following:
“People of all backgrounds, interests, and abilities should be able to access Free-as-in-speech software that empowers them to express themselves on the open web and to own their content.”
WordPress is easy to use for everyone and its inclusivity is evidenced on the development side too: It’s not uncommon to find people without a programming background (such as marketers, designers, bloggers, sales people, and others) tinkering with their WordPress installations, designing their own themes and successfully launching their own websites. WordPress is user-centric, and the needs of the users trump those of the developers. In WordPress, the user is king (or queen).
In contrast, October CMS is more geared towards the developer, as explicity established from its very first release:
“October makes one bold but obvious assumption: clients don’t build websites, developers do. The role of a client is to manage the website and convey their business requirements. The web developer, and the industry itself, revolves around mediating these factors.”
In the words of its founders, the CMS’ mission is to “prove that making websites is not rocket science.” Being based on Laravel, October CMS can claim to have strong foundations of reusable, modular code that can produce properly-architected applications, maintainable in the long term and fully customizable without requiring hacks — the type which attracts serious programmers. October CMS can also provide a great user experience, however, it is not as simple or frictionless as that provided by WordPress. Users may need to be explained how to use certain functionality before being able to use it. For instance, embedding a form from some plugin has a lengthy explanation on how to do it, which is more cumbersome than the self-evident, drag-and-drop functionality provided by several form plugins in WordPress.
Installation
WordPress is famous for its 5-minute installation, even though many people point out that (taking into consideration all the plugins that must be installed) a typical installation requires 15 minutes or more. In addition, WordPress also offers the Multisite feature, which allows us to create a network of multiple virtual sites under a single installation. This feature makes it easy for an agency to administer the sites of multiple clients — among other user cases.
Installing October CMS is also very smooth: The Wizard installation itself takes even less than five minutes, and if you install it through the Console installation, it is even faster. You can do the latter by simply navigating to the target directory and then executing curl -s https://octobercms.com/api/installer | php (after which we need to input the database configuration, otherwise it behaves as a flat-file CMS). Once the installation has been completed, we will have a fully functioning website, but still quite bare (if you add the time needed to install and configure the required plugins, you can expect it to take at least 15 minutes).
Tumblr media
Installing October CMS with the Wizard is a breeze. (Large preview)
Security
WordPress has been accused of being insecure due to the high amount of vulnerabilities that are constantly found. This forces users to have the software for the CMS and all installed plugins always up to date to avoid security exploits. Among the main issues is WordPress’ support for older versions of PHP which are not supported by the PHP development community anymore (WordPress currently supports PHP 5.2.4, while the latest fully supported PHP version is 5.6). However, this problem should be resolved in April 2019 when WordPress will officially start supporting PHP versions 5.6 and upwards.
Otherwise, WordPress is not necessarily insecure because of itself, but because of its high popularity, which makes it a primal target for hackers. However, this plays both ways: WordPress ubiquity means that its security team must really take their job seriously by constantly looking for exploits and fixing them as soon as possible, otherwise up to a third of the web is at risk. The stakes are just too high.
October CMS, on the other hand, doesn’t have a reputation of being insecure. However, since there are roughly 27,000 live sites that use October as compared with WordPress’ millions, we can’t judge the two of them on the same terms. Nevertheless, the team behind October CMS does take security seriously, as evidenced by the Wizard installation’s prompt to input the CMS backend URL, set as /backend by default but changeable to anything else, as to make it more difficult for hackers to target the site. In contrast, changing WordPress’ login and backend URLs from /wp-login.php and /wp-admin respectively to something else must be done through a plugin. In addition, October CMS can function as a flat-file CMS (i.e. without a database) and avoid database-related vulnerabilities such as SQL injection.
Technology Stack
Both WordPress and October CMS run on the traditional LAMP stack: Linux, Apache, MySQL, and PHP. (However, only PHP is fixed: we can also use Windows, Nginx, MariaDB, and others.) October CMS can also behave as a flat-file CMS, meaning that it can do without a database, however, at the cost of forgoing many functionalities (such as blog posts and users) the only functionality that is guaranteed is pages, which is considered to be the basic unit for the creation and publishing of content and shipped as a core feature.
Concerning the language stack, sites built with both WordPress and October CMS are based on HTML, CSS, and JavaScript (note that PHP is used to generate the HTML). October CMS also makes it easy to use LESS and SASS files.
Programming Paradigm
WordPress follows a functional programming paradigm, based on calculating computations by calling functions devoid of application state. Even though WordPress developers do not need to stick to functional programming (for instance, for coding their themes and plugins), the WordPress core code inherits this paradigm from 15 years of preserving backwards compatibility, which has been one of the pillars to WordPress’ success but which has the unintended consequence of accumulating technical debt.
On the other side, October CMS follows an imperative programming paradigm, based on calculating computations by manipulating objects’ state. October CMS sits on top of Laravel, a web framework fully founded on Object-Oriented Programming principles that enable the production of modular applications based on concepts such as the Model-View-Controller to decouple the user interface from the application data, Dependency Injection to configure class dependencies, and the Interface Segregation Principle to define the core services provided by the framework, among many others.
Hooks/Events
Programming in WordPress could be characterized as HDD which stands for “Hook-Driven Development”. A hook is a mechanism that allows changing a default behavior or value and allowing other code to execute related functionality. Hooks are triggered through “actions” which allow executing extra functionality, and “filters” that allow modifying values.
Hooks, which are widespread across the WordPress codebase, are one of the concepts that I most like from coding in WordPress. They allow plugins to interact with other plugins (or with a core or theme) in a clean way, providing some basic support of Aspect-Oriented Programming.
Good news is that Laravel (and in consequence October CMS) also supports the concept of hooks, which is called “events”. Events provide a simple observer implementation, enabling code to subscribe and listen for events that occur in the application and react as needed. Events make it possible to split a complex functionality into components, which can be installed independently yet collaborate with each other, thus enabling the creation of modular applications.
Dependence on JavaScript Libraries
The latest version of WordPress incorporates React-powered Gutenberg for its default content creation experience. Hence, WordPress development now relies by and large on JavaScript (predominantly through React), even though it is also possible to use other frameworks or libraries (as evidenced by Elementor Blocks for Gutenberg which is based on Marionette). In addition, WordPress still relies on Backbone.js (for the Media Manager) and jQuery (legacy code), however, we can expect the dependence on these libraries to wither away as Gutenberg is consolidated as the new norm.
October CMS depends on jQuery, which it uses to implement its optional AJAX framework to load data from the server without a browser page refresh.
Pages, Themes and Plugins
Both WordPress and October CMS treat a page as the basic unit for creating and publishing content (in WordPress case, in addition to the post), support changing the site’s look and feel through themes, and allow to install and extend the site’s functionalities through plugins. Even though the concepts are the same in both CMSs, there are a few differences in implementation that produce somewhat different behavior.
In WordPress, pages are defined as content and stored in the database. As a result, page content can be created through the CMS only (e.g. in the dashboard area), and switching from one theme to another doesn’t make an existing page become unavailable. This produces an overall frictionless experience.
In October CMS, on the other hand, pages are static files stored under the theme directory. On the positive side from this architectural decision, page content can be created from an external application, such as text editors like Sublime or Visual Studio Code. On the negative side, when switching from one theme to another, it is required to manually recreate or copy the pages from the current to the new theme, or otherwise, they will disappear.
Significantly, October CMS resolves routing through pages, hence pages are used not just as containers for content but also for functionality. For instance, a plugin for blogging depends on a page for displaying the list of blog posts under a chosen URL, another page to display a single blog post under another chosen URL, and so on. If any of these pages disappear, the associated functionality from the plugin becomes unavailable, and that URL will produce a 404. Hence, in October CMS themes and plugins are not thoroughly decoupled, and switching themes must be done carefully.
Tumblr media
October CMS enables the creation of content from external applications. (Large preview)
Core vs Plugin Functionality
WordPress attempts to deliver a minimal core functionality which is enhanced through plugins. WordPress relies on the “80⁄20 rule” to decide if to include some functionality in its core experience or not. If it benefits 80% of the users it goes in, otherwise, it belongs to plugin-land. When adding plugins to a site, they can lead to bloat if too many plugins are installed. Plugins may also not work well with one another, or execute similar code or load similar assets, resulting in suboptimal performance. Hence, whereas launching a WordPress site is relatively easy, a bigger challenge is its general maintenance and being able to preserve an optimal and performant state when adding new features.
Tumblr media
The WordPress plugin directory claims to have almost 55,000 plugins. (Large preview)
Likewise, October CMS also attempts to deliver a minimal core functionality, but on steroids: the only guaranteed functionality is the creation and publication of pages, and for everything else we will need to install one plugin or another, which is expressed as:
“Everything you need, and nothing you don't.”
The objective is clear: most simple sites are only composed of pages, with possibly no blog posts, users or login area. So why should the application load resources for these when they are not needed? As a consequence, functionalities for blogging, user management, translation and several others are released through the plugin directory.
Tumblr media
Searching for 'Rainlab' in October’s plugins directory displays plugins created by October CMS' team. (Large preview)
October CMS also includes certain features in its core which (even though they are not always needed) can enhance the application significantly. For instance, it provides out-of-the-box support to upload media files to Amazon S3 and accesses them through the Rackspace CDN. It also includes a Media Manager which is mostly used through plugins, e.g. for adding images into a blog post. (Pages can also use the Media Manager to embed media files, however, the CMS also ships with an Assets section to upload media files for these which seems more suitable.)
I believe that October’s opinionatedness can perfectly enable us to produce an application that is as lean as possible — mostly concerning simple sites. However, it can also backfire and encourage bloat, because the line of what is needed and what is not is an arbitrary one, and it’s difficult to be set in advance by the CMS. This difficulty can be appreciated when considering the concept of a “user”: In WordPress, website users and website admins belong to the same user entity (and through roles and privileges we can make a user become an admin). In October CMS, these two are implemented separately, shipping in core the implementation for the website administrator which can log in to the backend area and modify the settings, and through a plugin the implementation of the website user. These two types of users have a different login process and a different database table for storing their data, thus arguably breaching the DRY (Don’t Repeat Yourself) principle.
This problem arises not only concerning the behavior of an entity but also what data fields it must contain. For instance, should the website user data fields be predefined? Is a telephone field required? What about an Instagram URL field, considering that Instagram got kind of cool only recently? But then, when building a professional website shouldn’t we use a LinkedIn URL field instead? These decisions clearly depend on the application and can’t be decided by either CMS or plugin.
The October CMS plugin called User implements users but without any user field, on top of which plugin User Plus adds several arbitrary user fields, which are possibly not enough, so plugin User Plus+ adds yet other user fields. When, where and how do we stop this process?
Another problem is when there is no room to add new capabilities to an entity, which leads to the creation of another, extremely similar entity, just to support those required capabilities. For instance, October CMS ships with pages, and allows to create “static pages” through a plugin. Their nature is the same: both pages and static pages are saved as static files. The only difference between them (as far as I can tell) is that static pages are edited with a visual editor instead of the HTML editor, and can be added to menus. In my opinion, only structural differences, such as having one entity saved as a static file and the other one stored in the database, could justify creating a second entity for a page (there is a pull request to do this), but for simple features, as is the case currently, it constitutes development bloat.
In summary, a well implemented October CMS application can be very lean and efficient (e.g. by removing the database when not needed), but on the contrary it can also become unnecessarily bloated, forcing developers to implement several solutions for similar entities, and which can be very confusing to use (“Should I use a page or a static page?”). Because neither WordPress or October CMS has found a perfect solution for removing bloat, we must design either application architecture with care to avoid down-the-road pain.
Content Creation
Gutenberg makes two important contributions to WordPress: It uses components as the unit for building sites (which offers several advantages over coding blobs of HTML), and it introduces an entity called a “block” which, once Gutenberg Phase 2 is completed (presumably in 2019), will provide a unified way to incorporate content into the site, thus enabling a simpler user experience as opposed to the more chaotic process of adding content through shortcodes, TinyMCE buttons, menus, widgets, and others.
Tumblr media
Since WordPress 5.0 Gutenberg is the default content creation experience. (Large preview)
Because Gutenberg blocks can produce and save static HTML as part of the blog post, then installing many Gutenberg blocks doesn’t necessarily translate into bloat on the website on the user side, but can be kept restricted to the admin side. Hence, Gutenberg can arguably be considered a good approach to produce websites in a modular way, with a simple yet powerful user experience for creating content. Possibly the biggest drawback is the (unavoidable, but not easily so) requirement to learn React, whose learning curve is rather steep.
If React components are the basic unit for creating content in WordPress, October CMS is based on the premise that knowing good old HTML is enough for building sites. Indeed, when creating a page, we are simply presented an HTML (Markup) editor:
Tumblr media
Creating a page in October CMS. (Large preview)
If the page were solely static HTML, then there would be no need for a CMS. Instead, October CMS pages are written using Twig templates which are compiled to plain optimized PHP code. They can select a layout to include the scaffolding of the page (i.e. repetitive elements, such as the header, footer, and so on), can implement placeholders, which are defined on the layout to allow the page to customize content, and can include partials, which are reusable chunks of code. In addition, pages can include content blocks, which are either text, HTML or Markdown files that can be edited on their own and can attach components which are functionalities implemented through plugins. And finally, for whenever HTML is not enough and we need to produce dynamic code, we can add PHP functions.
The editor is all about HTML. There is no TinyMCE textarea for adding content in a visual manner — at least not through the default experience (this functionality belongs to plugin-land). Hence, having knowledge of HTML could be considered a must for using October CMS. In addition, the several different inputs for creating content (pages, layouts, placeholders, partials, content blocks, components, and PHP functions) may be very effective, however, it is certainly not as simple as through the unified block interface from WordPress. It can even get more complex since other elements can also be added (such as static pages and menus, and snippets), and some of them, such as pages and static pages, seemingly provide the same functionality, making it confusing to decide when to use one or the other.
As a result, I dare say that while pretty much anyone can use a WordPress site from the admin side, October CMS is more developer-friendly than non-technical user-friendly, so programmers may find it a joy to use, but certain other roles (marketers, sales people, and the like) may find it non-intuitive.
Media Manager
Both WordPress and October CMS are shipped with a Media Manager which allows adding media files to the site effortlessly, supporting the addition of multiple files simultaneously through a drag-and-drop interface and displaying the images within the content area. They look and behave similarly; the only notable differences I found are that WordPress’ Media Manager allows to embed image galleries, and October’s Media Manager allows to manually create a folder structure where to place the uploaded files.
Tumblr media
October CMS ships with a powerful Media Manager. (Large preview)
Since the introduction of Gutenberg, though, WordPress’ media capabilities have been enhanced greatly, enabling to embed videos, pictures and photo galleries in place as compared to within a TinyMCE textarea (which only provides a non-accurate version of how it will look like in the site), and unlocking powerful, yet easy-to-use features as shown in this video.
Internationalization
WordPress core uses gettext to enable the translation of themes and plugins. Starting from a .pot file containing all strings to translate, we need to create a .po file containing their translation to the corresponding language/locale, and this file is then compiled to a binary .mo file suitable for fast translation extraction. Tools to perform these tasks include GlotPress (online) and Poedit (downloadable application). Conveniently, this mechanism also works for client-side localization for Gutenberg.
Tumblr media
Poedit allows to translate strings for themes and plugins for WordPress. (Large preview)
WordPress currently doesn’t ship any solution in core to translate content, and will not do so until Phase 4 of Gutenberg (targeted for year 2020+). Until then, this functionality is provided by plugins which offer different strategies for storing and managing the translated content. For example, while plugins such as Polylang and WPML store each translation on its own row from a custom database table (which is clean since it doesn’t mix content together, but slower since it requires an additional INNER JOIN of two tables when querying the database), plugin qTranslate X stores all translations on the same field from the original database table (faster for querying the data, but content mixed all together can produce wreckage on the site if disabling the plugin). Hence, we can shop around and decide the most suitable strategy for our needs.
October CMS doesn’t ship the multilingual functionality through its core, but as a plugin created by the October CMS team that guarantees a faultless integration into the system. From a functional point of view, this plugin delivers what it promises. From a development point of view, it is not quite ideal how this plugin actually works. In WordPress, a page is simply a post with post type “page” and there is a single translation mechanism for them, but in October CMS, there are entities “page”, “static page” and “blog post” and, even though quite similar, they require three different implementations for their translations! Then, the content from a “page” can include message codes (e.g. codes called nav.content, header.title, and so on), each of which contains its translations for all locales as a serialized JSON object in database table rainlab_translate_messages. The content from a “static page” is created into a new static file per locale, however, all translated URLs for all locales are stored not in their corresponding file but instead on the default language’s file. The content for the “blog post” is stored as a serialized JSON object with one row per locale in database table rainlab_translate_attributes and the translated URL is stored with one row per locale in database table rainlab_translate_indexes. I don’t know if this complexity is due to how the plugin was implemented or whether it is due to October CMS’ architecture. Whichever the case, this is another instance of undesired bloat on the development side.
Plugin Management
Both WordPress and October CMS offer a sophisticated plugin manager which allows to search for plugins, install new plugins, and update currently-installed plugins to their latest version — all from within the backend.
Tumblr media
October CMS enables to keep all plugins up-to-date effortlessly. (Large preview)
Dependency Management
October CMS uses Composer as the package manager of choice, enabling plugins to download and install their dependencies when being installed, thus delivering a painless experience.
WordPress, on the opposite side, hasn’t officially adopted Composer (or any PHP dependency manager) because the community can’t agree if WordPress is a site or a site dependency. Hence, if they require Composer for their projects, developers must add it on their own. With the switch to Gutenberg, npm has become the preferred JavaScript dependency manager, with a popular developer toolkit depending on it, and the client-side libraries being steadily released as autonomous packages in the npm registry.
Interaction With The Database
WordPress provides functions to retrieve database data (such as get_posts) and store it (such as wp_insert_post and wp_update_post). When retrieving data, we can pass parameters to filter, limit and order the results, in order to indicate if the result must be passed as an instance of a class or as an array of properties and others. When the function doesn’t fully satisfy our requirements (e.g. when we need to do an INNER JOIN with a custom table) then we can query the database directly through global variable $wpdb. When creating a plugin with a custom post type, the code will most likely be executing custom SQL queries to retrieve and/or save data into custom tables. In summary, WordPress attempts to provide access to the database through generic functions in the first stage, and through low-level access to the database in the second stage.
October CMS employs a different approach: Instead of connecting to the database straight away, the application can use Laravel’s Eloquent ORM to access and manipulate database data through instances of classes called Models, making the interaction with the database also be based on Object-Oriented Programming. It is high-level access; just by following the rules on how to create tables and set-up relationships among entities, a plugin can retrieve and/or save data without writing a line of SQL. For instance, the code below retrieves an object from the database through model Flight, modifies a property, and stores it again:
$flight = Flight::find(1); $flight->name = 'Darwin to Adelaide'; $flight->save();
Upgrading The Data Model
Another reason for WordPress’ success (in addition to not breaking backward compatibility) has been its database architecture, which was engineered to enable applications to grow over time. This objective is accomplished through “meta” properties, i.e. properties that can be loosely added to a database object at any moment. These properties are not stored in a column from the corresponding entity table (either wp_posts, wp_users, wp_comments or wp_terms), but instead as a row in the corresponding “meta” table (wp_postmeta, wp_usermeta, wp_commentmeta or wp_termmeta) and retrieved doing an INNER JOIN. Hence, even though retrieving these meta values is slower, they provide unlimited flexibility, and the application’s data model rarely needs to be re-architected from scratch in order to implement some new functionality.
Tumblr media
WordPress provides unlimited flexibility for upgrading the application’s data model. (Large preview)
October CMS doesn’t use meta properties but instead can store several arbitrary values, which are not directly mapped as columns in the database tables, as a serialized JSON object. Otherwise, when an object needs some new property, we need to add a new column on the corresponding table (which is the reason behind plugins User Plus and User Plus+, mentioned earlier on). To update the application’s database schema, October CMS relies on Laravel’s Migrations, which are sets of instructions to execute against the schema (such as add or drop a column, rename an index, etc) and which are executed when upgrading the software (e.g. when installing a plugin’s new version).
Headless Capabilities
Both WordPress and October CMS can be used as headless, i.e. treating the CMS as a content management system that makes content accessible through APIs, which allows to render the website on the client-side and can power other applications (such as mobile apps). Indeed, WordPress is steadily heading towards headless, since the Gutenberg content editor itself treats WordPress as a headless CMS (and, as a consequence, Gutenberg can also work with any other CMS too, as Drupal Gutenberg demonstrates).
A headless system needs to implement some API to return the data, such as REST and GraphQL. WordPress supports REST through WP REST API (merged in core), exposing endpoints under some predefined route /wp-json/wp/v2/...; October CMS supports REST through plugins RESTful and API Generator, which allow to create custom endpoints and, as a consequence, support versioning as part of the endpoint URL and can offer a better security against bots. Concerning GraphQL, WordPress supports it through WPGraphQL, while October CMS currently has no implementations for it.
Quite importantly, a headless system needs to offer powerful content management capabilities. As mentioned earlier on, WordPress has a very solid database architecture, offering a plethora of data entities (users, posts and custom posts, pages, categories, tags and custom taxonomies, comments) over which the application can be reasonably well modelled, meta properties to extend these data entities (enabling the application to upgrade its data model accordingly and without major changes), and with plugin Advanced Custom Fields filling the gap to construct relationships among the data entities. In addition, plugin VersionPress allows to version control the database content using Git. Hence, WordPress is undoubtedly a good fit for managing content, as demonstrated in several projects in the wild.
On its part, and as mentioned earlier on, October CMS can omit the database and behave as a flat-file system, or it can have a database and behave as a hybrid, storing the content from pages as static files and blog posts (and others) on the database. As a consequence, content is not centralized, and its management involves a different approach. For instance, while we can use Git to version control pages, there is no support to version control the database per se; the solution to this is to populate data into the database through Seeders which, being code, can be put under version control and executed upon deployment. In addition, October CMS doesn’t offer a baked-in database model featuring predefined data entities that can support the needs of most applications. Hence, more likely than not the application will need custom development to implement its data model, which means more work, but also means that it can be more efficient (e.g. accessing a property from a column is faster than from a row in another table through an INNER JOIN, which is the case with WordPress’ meta properties).
CLI Support
Both WordPress and October CMS can be interacted with from the console through a Command Line Interface (CLI): WordPress through WP-CLI and October CMS through Laravel’s Artisan. In addition to Laravel’s commands, October CMS implements several custom commands for updating the system, migrating the database, and others. These tools make it very convenient to access the site from outside a browser, for instance for testing purposes.
Managed Hosting
It is not a problem finding a managed hosting provider for a WordPress site: given WordPress’ market share, there are dozens (if not hundreds) of providers out there vying with each other for the business, constituting a very dynamic market. The only problem is finding the most suitable provider for our specific sites based on all of their offerings, which can vary based on price, quality, type (shared or dedicated services), bandwidth and storage size, customer support, location, frequency of renewal of equipment, and other variables which we can navigate mainly through reviews comparing them (such as this one, this one or this one).
Even though nothing near as many as WordPress, October CMS still enjoys the offering from several hosting providers, which allows for some consideration and selection. Many of them are listed as October Partners, and several others are found DuckDuckGoing, but since I haven’t found any independent review of them or article comparing them, the task of finding out the most suitable one will take some effort.
Marketplace, Ecosystem And Cost
WordPress’ commercial ecosystem is estimated to be USD $10 billion/year, evidencing how many people and companies have managed to make a living by offering WordPress products and services, such as the creation of sites, hosting, theme and plugin development, support, security, and others. Indeed, its size is so big it is even bloated, meaning that it is very common to find different plugins solving the same problem, plugins that underdeliver, underperform or have not been updated for years, and themes which seem to look-alike each other. However, when creating a new site, the size and variety of the ecosystem also means that we will most likely find at least one plugin implementing each of the required functionalities, enabling us to save money by not having to develop the functionality ourselves, and the availability of customizable themes enables to produce a reasonably distinctive-looking site with minimal effort. As a consequence, we can easily create and launch a WordPress site for less than USD $100, making WordPress a sensible option for projects of any budget.
Being relatively new (only five years so far), OctoberCMS certainly doesn’t enjoy anything near WordPress’ marketplace and ecosystem sizes, however, it has been growing steadily so its size is bound to become bigger. Currently, its marketplace boasts 600+ plugins, and only a handful of themes. Concerning plugins, the October CMS team is requesting the community to put their effort into the creation of original plugins, delivering functionality not yet provided by any other plugin.
Hence, even though 600+ plugins doesn’t sound like much, at least these translate into 600+ different functionalities. This way, even though it is not possible to choose among several vendors, at least we can expect to have those basic website features (such as blogging, comments, forum, integration with social media, e-commerce, and others) to be covered. Also, since October’s founders are personally reviewing all submitted plugins and judging them according to quality guidelines, we can expect these plugins to perform as expected. As another plus, October plugins can incorporate elements from Laravel packages (even though not all of them are compatible with October, at least not without some hacks). Concerning themes, the low number of offerings implies we will most likely need to develop our own theme by hiring a developer for the task. In fact, I dare say that the theme in October CMS will most likely be a custom development, since themes and plugins are not thoroughly decoupled (as explained earlier), with the consequence that a market for easily-swappable themes is more difficult to arise. (This is a temporary problem though: once this pull request is resolved, pages will be able to be stored in the database, and swapping themes should not disrupt functionality.)
In my opinion, because of the smaller offerings of themes and plugins, creating a simple site with OctoberCMS will be more expensive than creating a simple WordPress site. For complex sites, however, October’s better architecture (Object-Oriented Programming and Model-View-Controller paradigms) makes the software more maintainable and, as a consequence, potentially cheaper.
Community
Being a part of and having access, WordPress’ community represents one of the most compelling reasons for using WordPress. This is not simply as a matter of size (powering nearly one third of all websites in the world, there are so many stakeholders involved with WordPress, and its community is representatively big) but also as a matter of diversity. The WordPress community involves people from many different professions (developers, marketers, designers, bloggers, sales people, and so on), from all continents and countries, speaking countless languages, from different social, educational and economic backgrounds, with or without disabilities, from corporate, not-for-profit and governmental organizations, and others. Hence, it is quite likely that, for whatever problem we encounter, somebody will be able to help on any of the support forums. And contributing to WordPress is pretty straightforward too: The Make WordPress group congregates stakeholders interested in supporting different projects (accessibility, design, internationalization, and many others) and organizes how and how regularly they communicate — mostly through some dedicated channel on its Slack workspace.
Furthermore, the WordPress community is real and tangible: it doesn’t exist just online, but it gathers offline in WordCamps and meetups all over the world; in 2018, there were a total of 145 WordCamps in 48 countries with over 45,000 tickets sold, and a total of 5,400 meetup events from 687 meetup groups. Hence, it is likely that there is a local chapter nearby which anyone can join to ask for help, learn how to use the platform, keep learning on a regular basis, and teach others as well. In this sense, WordPress is not just a CMS but, more importantly, it’s also people, and considering to leave WordPress should never be done only on its technical merits but on the power of its community, too.
Tumblr media
WordCamp Kuala Lumpur 2017 drew more than 200 attendees, coming from several countries. (Large preview)
October CMS’ community is nothing near in size or diversity as WordPress’, even though it has been growing steadily following the increasing popularity of the software. October provides a support forum to ask for help, however, it is not very active. A Slack workspace exists which is pretty active and where, quite importantly, October’s founders participate regularly, helping make sure that all enquiries are properly addressed. This channel is a great source for learning low-level tips and tricks about the software, however, it is geared towards developers mainly: There are no channels concerning accessibility, design, internationalization, and other topics as in the WordPress community, at least not yet. Currently, there are no conferences concerning October CMS, but there is Laracon, the conference for the Laravel community.
Maintainers And Governance
Can we trust that the software will be maintained in the long term, so that if we decide to start a project today, we will not need to migrate to some other platform down the road? How many people are taking care of developing the software? And who is deciding in what direction the software moves towards?
Powering one-third of all sites in the world, WordPress is not short of stakeholders contributing to the software; hence we need not fear that the software will fall into decay. However, WordPress is going through internal deliberations concerning its governance model, with many members of the community expressing that decisions concerning WordPress’s direction are being taken unilaterally by Automattic, the company running WordPress.com. Center stage of this perception was the decision to launch Gutenberg, which many members disagreed with, and which suffered a lack of proper communication by the project leads during its development and release. As a consequence, many community members are questioning the role of “benign dictator”, which has been historically granted to WordPress’ founder and Automattic’s CEO Matt Mullenweg, and researching different governance models to find a more suitable one for the future of WordPress. It is yet to be seen if this quest produces any result, or if the status quo perseveres.
Decisions concerning October CMS’ direction are mainly taken by founders Alexey Bobkov and Samuel Georges and developer and community manager Luke Towers, which keep the project going strong. October CMS doesn’t have the luxury of having a governance problem yet: Its current concern is how to make the project sustainable by generating income for the core software’s maintainers.
Documentation
WordPress documentation in its own site is not extremely comprehensive, but it does the job reasonably well. However, when taking all of the documentation about WordPress into account from all sources, such as general sites (Smashing Magazine, CSS tricks, and many others), specialized sites (WPShout, WPBeginner, and many others), personal blogs, online courses, and so on, there is practically no aspect of dealing with WordPress that hasn’t already been covered.
October CMS doesn’t enjoy anything near the many third-party courses, tutorials or blog posts about it as much as WordPress does, however, the documentation on its site is reasonably comprehensive and certainly enough to start coding. October founders also regularly add new documentation through tutorials. One aspect that I personally enjoyed is the duplication of Laravel’s documentation into October’s documentation for everything of relevance, so the reader must not fill the gaps by him/herself and having to guess what is October’s domain and what is Laravel’s. However, this is not 100% perfect. October’s documentation uses terms originating from Laravel, such as middleware, service containers, facades and contracts, without adequately explaining what these are. Then, reading Laravel’s documentation in advance can be helpful (luckily, Laravel’s documentation is decidedly comprehensive, and Laravel’s screencasts, Laracasts, are another great source of learning, not just concerning Laravel but web development in general).
Conclusion
I set out to discover what features may be enticing for developers looking for alternatives to WordPress by comparing WordPress to a similar CMS, which I defined as being free and open source, based in PHP and producing dynamic content, and enjoying the support from some community. From the CMSs fulfilling these conditions, I chose October CMS for the comparison because of the knowledge I got about it, and because I appreciated its clean and modular coding approach as provided by Laravel, which could offer a fresh and modern perspective for building sites.
This article did not intend to pick a winner, but simply analyze when it makes sense to choose one or the other CMS, highlighting their strengths and weaknesses. There is no “best” CMS: only the most suitable CMS for a specific situation. Furthermore, anyone looking for a CMS to use on a particular project with a specific team and given a certain budget, should do some research and compare all the offerings out there to find out which one is most suitable for the particular context. It’s important not to limit to a few CMSs as I’ve done here in this article, but instead give a chance to all of them.
On a personal note, as a developer, what I found in October CMS is really appealing to me, mostly its ability to build modular applications as provided through Laravel. I would certainly consider this CMS for a new website. However, in the process of writing this article I also “rediscovered” WordPress. Being so popular, WordPress receives more than its fair share of criticisms, mostly concerning its old codebase and, since recently, the introduction of Gutenberg; however, WordPress also has certain excellent features (such as its super-scalable database model) which are seldom praised but should be taken into account too. And most importantly, WordPress should not be considered on its technical aspects alone: in particular, the size of its community and ecosystem places it a level or two above its alternatives. In a nutshell, some projects may benefit from sticking to WordPress, while others may better rely on October CMS or another platform.
As a final note, I would like to remark that exploring how another CMS works is a very rewarding activity on its own, independent of the decision reached concerning whether to use that particular CMS or not. In my case, I had been working for years on WordPress alone, and delving into October CMS was very refreshing since it taught me many things (such as the existence of PHP Standards Recommendations) which I had not been exposed to through WordPress. I may now decide to switch CMSs, or stick to WordPress knowing how to produce better code.
Further Reading on SmashingMag:
Caching Smartly In The Age Of Gutenberg
Improving WordPress Code With Modern PHP
Lessons Learned While Developing WordPress Plugins
How To Use Heatmaps To Track Clicks On Your WordPress Website
Be Watchful: PHP And WordPress Functions That Can Make Your Site Insecure
Tumblr media
(rb, ra, yk, il)
0 notes
archivesdiveronarpg · 8 years ago
Photo
Tumblr media
Congratulations, RONI! You’ve been accepted for the role of CIRCE with the approved faceclaim change to AARON YAN. Roni, what else is there to say except that your applications are always, always inspiring? You grasped Cinead’s voice so perfectly I got chills the more I read of your writing. From their cryptic, coy interview answers to the perfectly pivotal moments you captured in your para sample, you’ve demonstrated that the awe they inspire is, while terrifying at times, subtle in its potency. I especially loved the bit about their hoarding, and that they named their beloved crows! Congratulations - I’m so excited to see Cinead grace our dash! Please read over the checklist and send in your blog within 24 hours.
                                                                             WELCOME TO THE MOB.
Out of Character
Alias | Roni
Age | 21
Preferred Pronouns | she/her
Activity Level | I’m attending uni this year, and it’s not too difficult at the moment. I have a lighter course due to dropping a class, yet the ones remaining are still rigorous. So while I am on Tumblr during my free time, it’s hard to gauge when my free time will be. However, I would probably rate myself a seven out of ten on weekdays and a eight out of ten on most weekends, depending on how many replies I have/the length of my replies.
Timezone | EST
Permission | yes, you have my permission to publish this application!
Added note | I am turning this in with ten minutes to go before the submit closes, so I apologize for any grammatical/spelling errors!
In Character
Character | Circe // Cinead Tsai (with a fc change to aaron yan please?)
What drew you to this character? | like i’ve said before, i love playing neutral characters, as i love the dynamic neutral characters have with everyone. and reading through the witches, i was pulled to each of them, for their demeanors are absolutely wonderful and enticing. yet i kept returning to cinead. there is something so enticing about them, in the contrast they hold among their siblings, and the aura they possess within verona. they and their siblings hold a level of control among a city belonging to such an old feud; essentially, they all can hold their own. and with cinead, they can hold their own with that flare of indifference; mallory is the heat of a flame, hea a cool breeze that comforts and stings, and cinead is the cold chill that never truly leaves your bones. and that chill permeates throughout verona, and gosh, i would love to roleplay that if accepted.
What is a future plot idea you have in mind for the character?
( plan i ) there is something elusive to cinead about both matthias and hugo. they spark their interest unlike so many others, and it doesn’t escape their notice how different they are. of course, if they were similar, perhaps neither would capture his eye. the urge to test them, to push them past their breaking points, is a nagging notion that refuses to release them. oh, there are more important things in their lives that requires their attention —- and yet, their thoughts will drift to one of them more often than not. perhaps they want to see them burn. perhaps they want to touch their lives in ways they will never dream of. not even they know for sure what they truly desire of them. they are willing to discover it, though, and they will push and pull the strings to attain it.
( plan ii ) their siblings are their lifeblood. whatever true happiness they experience, whatever contentment they derive from this life, it all begins and ends with mallory, hea, and themselves. the three of them —- cinead cannot imagine what life would be if one of them disappeared from their lives. and yet, they dance on the edge between gods and mortals, and despite their confidence in the fact that of everyone in verona, they cannot die, there is a sliver of doubt. that inkling that, yes, they are mortals like those who surround them, and they all will die with a soft exhale. cinead does not wish for their bond to each other to break, nor does he wish for any of their deaths —- and yet, what will happen if either were to occur? what would happen if that sliver of doubt turns into the heartbreaking reality? how would verona explode after that?
( plan iii ) what would happen if someone forced their hand, and their reaction essentially caused them to choose a side? whether they wanted to side with any group is beyond the point; the action has marked them. how would that challenge their siblings? how would that impact the world they’ve slowly built? how would that change the stance they’ve all adopted for years? i want their would shaken, completely disturbed, and that could very well be the best way to disrupt what they have held close.
In Depth
What is your favorite place in Verona?
A raised brow, a flicker of a smirk. Humorous, really, that their time is being wasted on questions and words when their answers usually depend on actions. Their mind flits from the room to what the city is like that day. It’s as if their sight is linked to that of their crows —- there, the dark lady, a foreboding place of uneasiness, even for them and their siblings. the cathedral in the distance, tall and grand and antagonizing like always. The Capital Library, where knowledge should be a safe haven for many, and yet, it’s only for a select few. The roads and alleyways, the bodies littering the ground, the desolate wailing as their tears mix with the river —–
They blink. They are in a room, and the person is waiting with bated breath.
“I’ll share a secret with you,” they finally whisper, and, oh, the spark of excitement and wariness is exactly what they wanted to witness. The two of them lean forward at the same time.
This time, the smallest of smiles instead of a flicker. “Sometimes, us witches need an escape. Sometimes, we use our own rooms at the Hotel Emelia. It’s relaxing, quiet, little space for the wars that rage these streets.
“And it is the best place to share secrets. And if any spill from our doors — especially our own, especially mine if I even were to share — the consequences are just as quiet, just as relaxing for some.”
As the being leans back, lips pressed thin, Cinead’s smile grows inch by inch.
What does your typical day look like?
“I’m the one who greets you in the morning, depending on where you are,” they answer, smooth and effortless. “My siblings don’t tend to rise with the sun, but I enjoy sipping coffee as the sun rises. It’s a beautiful masterpiece, just like the ones at our museum.
“Every day I work — on different things than my siblings, of course, though we do share duties from time to time. Have to, if we want anything we touch to run smoothly and successfully. And then, perhaps on a particularly good day, you can find me at the Tempest Lounge.”
A tilt of the head, then, another flicker of a smirk. “Were you wondering, by chance, what my work entails? If it includes anything unusual?”
        ( —- a flock of crows, gold coins slipping through fingers, a soft note of warning —- )
“I assure you, whatever you suspect it is —- well, my work depends on it, don’t you think?”
What are your thoughts on the war between the Capulets and the Montagues?
They cannot help the scoff that escapes. The other is startled, unsure of how to react, and Cinead rolls their eyes. “Their war is suffocating. Their war is damaging. Their war is ruination. And that is what the city needs, in some sense. One cannot know peace without war; that is how we thrive, that is how we remain alive. The thought of something better being so close amidst chaos —- that brings people together.”
A hum burns the back of their throat. The sound is choppy, something unnatural coming from them. “It is true art of the human life, is it not? This devastation, this cry for revenge, this begging for peace. It’s beautiful and entertaining, a brilliant show to witness.”
Their gaze locks with the other, and the other sucks in a harsh breath. Another smile blossoms across their face, and, oh, they feel how absolutely crushing it is. “Are you not entertained yourself?”
In-Character Para Sample: (unfortunately, this isn’t as long as i planned it to be, so hopefully the snippets allow enough insight!)
Imagine a single being, born with eyes closed, and yet saw the world as it was: darkness. Imagine that being opening their eyes to witness light, and yet know they were not led astray. Imagine still how that being grew, with light surrounding them, trying to convince their soul that darkness did not exist, that salvation existed for them and everyone.
Imagine the being seeing a crow in the distance, black as night, existing as truth.
Know it was a call of reckoning; know it was the first curse and blessing bestowed on the earth the being walked.
It is Cinead’s origin; it is Cinead’s truth.
****
They return to the orphanage with less than they left; some of their belongings had burned in the house fire, and some the foster family denied them. Cinead had left the latter matter alone; there was nothing of importance, and they believed the family had suffered enough.
And if they hadn’t, the cycle of fate would. That, of anything, would always remain despite the passage of time.
Mallory and Hea did not notice their return. Thirteen and twelve, they still remained in the corner by themselves, quiet and thriving all at once. It was something Cinead had longed for while away.
Hea is the first to notice their entrance. Their fingers brush Mallory’s, and the youngest whips their head to the door. Both stand, both glide across the floor, and both surround Cinead with silent questions, slow nods as silent answers are given.
Hea’s warmth embraces them, and a beat passes Cinead’s arms wrap around the other. “I’m sorry the foster family did not work,” they say, and their voice lacks the genuine lilt they usually possess.
Cinead nods. “Me too,” they reply, and their tone exposes the lie they do not care to hide.
They are home. And they are not sorry.
****
"Pitiful.”
It is the only word they offer to the air, and neither Mallory or Hea are surprised. They all stand upon the roof of the Hotel, the image of the dead stamped in the back of their minds. The cycle is anew with the arrival of new players, and it was something the two warring families did not expect. Though what is worse, is the three of them could not foresee the change in its entirety.
In the moment, Cinead does not know who the label is directed for.
Still, change is a card one wants on their side; while inevitable, the consequences can be controlled.
A deep breath, a slow exhale. “It seems we are in need of a wider scope.”
Mallory huffs, arms crossed in annoyance. “We are in need of the unexpected, Cinead. Just as these Spades possess.”
“And we will possess it once more, you two. A mere blip is all this is,” Hea says, their voice soft as the breeze kissing their cheeks.
“A mere blip is a beat of a butterfly’s wings, Hea. I do not intend for us to be caught in the impending tornado.” Licking their lips, Cinead takes a step away from the lights and the screams that still echo the night. “Do not lose sight of what is important. Our lives could burn at the same time as theirs.”
This time, Mallory rolls their eyes, their hand trailing up Cinead’s arms to rest on their shoulder. “This eldest sibling act isn’t a good look on you, Cinead. Especially if you begin acting like a toddler who lost a board game.”
“Please, do you see me stomping my foot Mallory?” Cinead says as Hea’s chuckle resounds behind them.
Once silence embraces them once more, Hea whispers, “We will not forget as long you don’t, Cinead.”
They all stare to the bright lights of a city that is truly theirs (for how can this city belong to any meaningless humans?), and Cinead sucks the dark world into their lungs.
“I will not forget.”
Extras:
~ color palette
~ quotes
“you are the one everyone fears: the monster in the closet, the witch at the stake – the devil, falling. all of this is because they cannot understand you. they fear you like they fear death; instinctively. do not mind them, for death is a kind god: the sweetest sleep, the darkness from which life is born.”
“hope is going to kill you and it wont be a pretty death. sorry.”
“it’s quiet and you feel serene you splay your fingers against the water and you sink lower and lower just enough to breathe”
“We learn that the heart is the same size as the fist but we keep forgetting they don’t have the same functions.”
~ headcanons
cinead’s crows are their delight and joy. while many have been seen flying above where they walk ( a true sign of a blessing and a curse ), there have been three by his side for many, many years. once upon a time, the flicker of the thought in naming them after themselves and their siblings highly amused them to the point of almost following through. instead, in order to avoid confusion for the rest of their lives, they settled on different names. tempest, the strong-willed and loudest of the three, one, emelia, the quiet, elusive darling, and twelfth, the one who delivers the most trinkets. creative names, no?
they dabble in makeup, more for the aesthetic than for a true passion. eyeliner designs decorate their eyes, their temples, whatever they decide to settle upon that day. they appear as a run-way model most days; however, if they ever need to blend, they will easily wipe away the designs with no regret.
they tend to hoard items they believe to be interesting, or items that twelfth has brought to their attention. the collection isn’t organized as it should be, and their room is messy because of it. their siblings tease cinead is truly a crow’s counterpart, and they aren’t sure whether they take the remark as a compliment or not.
they take their coffee with one cream and half a sugar cube. they would rather wake in the morning with little bitterness, but not too much sweetness either.
they rather adore the museum; is was their desire to fill the museum with mostly baroque designs, as the era and style enraptures them. though they understand they cannot control those who kiss the statues, they will certainly complain about the marks left behind.
3 notes · View notes
newstfionline · 7 years ago
Text
There is only one gun store in all of Mexico. So why is gun violence soaring?
Kate Linthicum, Los Angeles Times, May 24, 2018
MEXICO CITY--The only gun store in all of Mexico is located behind a fortress-like wall on a heavily guarded military base in Mexico City.
To enter the Directorate of Arms and Munitions Sales, customers must undergo months of background checks--six documents are required--and then be frisked by uniformed soldiers.
The army-run store on the outskirts of Mexico City embodies the country’s cautious approach to firearms, and a visit here illustrates the dramatically different ways two neighboring countries view guns, legally and culturally.
Like the 2nd Amendment in the United States, Mexico’s Constitution guarantees the right to bear arms, but it also stipulates that federal law “will determine the cases, conditions, requirements and places” of gun ownership. For many Mexicans, even those who love guns, the thought of an unfettered right to owning one is perplexing.
Yet on this issue, like so many aspects of life in Mexico, the influence of its powerful neighbor to the north is keenly felt: Each day the army gun store sells on average just 38 firearms to civilians, while an estimated 580 weapons are smuggled into Mexico from the United States.
That paradox is increasingly relevant given Mexico’s unprecedented levels of gun violence, which have claimed more than 100,000 lives over the last decade. Last year was Mexico’s deadliest since the government began releasing homicide statistics in 1997. This year, it is on track to surpass that record.
American firearms are directly driving the violence, although U.S. appetites for drugs and rampant corruption among Mexican officials also play a role. About 70% of guns recovered by Mexican law enforcement officials from 2011 to 2016 were originally purchased from legal gun dealers in the United States, according to the Bureau of Alcohol, Tobacco, Firearms and Explosives.
Mexican leaders have long complained about the phenomenon. In 2012, then-President Felipe Calderon erected a giant billboard in the border city of Juarez that spelled out the phrase “No more weapons.” The letters, formed using crushed firearms seized by authorities, were visible from Texas.
Most trafficked guns are purchased in the U.S. from one of the country’s more than 67,000 licensed gun dealers or at gun shows, which unlike stores often do not require buyers to present identification or submit to background checks.
By contrast, would-be gun owners in Mexico must offer a birth certificate and proof that they are employed, and have no criminal record. The atmosphere at the directorate is more sterile than a U.S. gun store or pawnshop. There are no moose heads on the wall and no promotional specials. Guns stamped with the army’s logo are kept in locked cases and customers aren’t given the chance to heft a rifle to their shoulder to see how it feels.
Buyers spend hours shuffling between different counters to get their paperwork processed, waiting for long stretches under fluorescent lights in uncomfortable chairs. It feels a bit like the Department of Motor Vehicles, until one notices the no-nonsense army colonel running things and the machine-gun-toting soldiers patrolling the aisles.
The store manager, Col. Eduardo Tellez, said he believes gun ownership is a privilege. He sees his job as making sure firearms end up in the hands of “moral and responsible” people only.
Current law allows citizens one handgun and up to nine rifles if they can prove they are members of shooting or hunting clubs. A separate permit that is difficult to obtain is required to carry the guns in public.
Hugo Gallegos Sanchez, 32, a police officer in Mexico City, decided to purchase a handgun at the store for personal use because he was concerned about rising crime.
“You need protection,” Gallegos said.
He spent months waiting for his paperwork to be approved, but said he was happy to wait. Proper screening for gun owners is important, said Gallegos, who said he also supports Mexico’s ban on heavy assault weapons.
“A civilian shouldn’t be able to have the same power as the military,” he said.
Whereas Mexican leaders have long groused about firearms trafficked from the north, U.S. gun control advocates have only recently begun to highlight the impact of lax American gun laws on Mexico and other countries.
“We have such a serious domestic problem that it can be hard to get any oxygen related to international drug trafficking,” said Chelsea Parsons, an expert at the Center for American Progress who recently co-wrote a report detailing the impact of American guns on Mexico. The report found that 66% of Mexico’s homicides were committed with a gun in 2017, up from 15% in 1997.
In recent months, Mexican leaders have again seized on the issue, in part to counter headlines about the country’s spiraling violence and President Trump’s complaints that Mexico isn’t doing enough to stop the northward flow of migrants and drugs.
President Enrique Peña Nieto brought the issue up at a news conference with Trump shortly before the 2016 presidential election, blaming the influx of U.S. firearms for “strengthening the cartels and other criminal organizations that create violence in Mexico.” Candidates vying to replace him in Mexico’s July 1 presidential race are also using it as a rallying cry.
“Instead of threatening walls, instead of threatening to militarize the border, we demand that they stop the flow of arms from the United States to Mexico,” Ricardo Anaya of the National Action Party said recently in the violence-ridden border state of Tamaulipas.
Front-runner Andres Manuel Lopez Obrador of the National Regeneration Movement has demanded a new investigation into the defunct Fast and Furious program, under which U.S. federal agents allowed guns to be purchased illegally in the hope of tracing them to leaders of Mexican drug cartels. Jose Antonio Meade of the governing Institutional Revolutionary Party, has called for construction of a “technological border” that would detect vehicles crossing into Mexico with guns.
Gun control advocates on both sides of the border say Mexican leaders should also push the government to do a better job of ensuring that guns issued to police and soldiers don’t fall into the hands of criminals, which many often do.
They are also concerned about a new Trump administration proposal to deregulate the export of American guns by putting the Commerce Department in charge of the application process instead of the State Department, which advocates say is better suited to weigh the possible risks of firearm sales against any benefits.
The proposed rule change, which is expected to be published in the Federal Register on Thursday, has long been sought by gun companies eager for easier access to international markets, but advocates worry it could put more guns in the hands of corrupt governments.
Back at the gun store in Mexico City, gun enthusiast Fausto Gerard was helping a friend buy a rifle. Gerard works for a Slovakian gun manufacturer, Grand Power, that sells guns to the Mexican military. He is the silent partner in a gun store in the U.S. He is passionate about bringing the sport of target shooting to Mexico.
Still, he thinks limits are OK.
“It’s good to have liberties, but there has to be a mechanism for control,” he said. He said he would support even more restrictions, including screening for mental illness among gun buyers.
But he thinks Mexico could do more to encourage people to buy guns legally. Having just one gun store in the entire country is impractical, he said. It might even encourage people to buy firearms coming in from the United States.
“In Tijuana or Juarez,” he said, “it’s much easier buying a gun on the black market.”
0 notes
cubaverdad · 8 years ago
Text
'Cubazuela' and Castroism's three-fold failure
'Cubazuela' and Castroism's three-fold failure FABIO RAFAEL FIALLO | Ginebra | 5 de Mayo de 2017 - 00:51 CEST. Backed by Fidel Castro, and launched by Hugo Chávez, the project of forging an alliance between the regimes of Cuba and Venezuela, dubbed "Cubazuela" (or "Venecuba"), began amidst much fanfare. The ideological firmness of the former and the oil-based riches of the latter would combine, they believed, to lay the foundations for an indestructible, booming socialism. Petroleum at the service of the "Revolution". For Cuba this project was its only lifeline. After having demolished an economy like Cuba's —which, when Castro took over in 1959, was the third richest in Latin America in terms of per capita GDP— the "Revolution" managed to survive thanks only to the lavish aid provided it by the Soviet Union. After the collapse of the Soviet bloc and, consequently, the end to that vital funding, the Castro regime subjected the Cuban people to the stifling deprivations of the grueling "Special Period," which were not politically sustainable. It was necessary, therefore, to find a new benefactor, and they did, in the form of Hugo Chávez Frías, who exhibited a blind passion for Castroism. At the beginning of the Cubazuela project, its leaders faced a dilemma: whether to carry over to Venezuela the failed Castroist economic model, based on the demonization of private initiative, and nationalization; or, on the contrary, learn lessons from this ill-fated experience and try something different, in line with the imperatives of market laws and, hence, more efficient. The brothers Castro and Hugo Chavez, succeeded by Nicolás Maduro, chose the first option. In this decision a key factor was surely the fact that Venezuela has the largest petroleum reserves in the world, prompting its leaders to conclude that they would be able to fill Venezuela's prisons and cemeteries with impunity, ignore the laws of economic profitability governing a market economy, and assign priority to the consolidation of hardline, orthodox socialism —even though it has never managed to produce progress. Their decision has wrought a colossal fiasco. Venezuela's economy is now as shattered as Cuba's. A shortage of staple products, three-digit inflation, and unsustainable external debt are the main components of an economic collapse that has pushed Venezuela to the brink of a social breakdown and a political and institutional crisis with unpredictable consequences. Castroism is, unquestionably, partly to blame for the Venezuelan debacle. How could it not, when thousands of Cuban "advisers" lurk in Venezuela's ministries and headquarters? It is impossible to conclude, therefore, that the economic approach of the chavista regime, both under Hugo Chávez, and now under Nicolás Maduro, was adopted and maintained without consulting the Castro regime and receiving its approval. Thus, the economic fiasco of the country richest in oil marks a dual failure of Castroism, even more spectacular and humiliating than the collapse of what was once the Americas' third most prosperous economy. To this two-fold economic disaster we must add a third failure of Castroism, of a political nature: having believed that it could reproduce in Venezuela the repressive system that allowed the Cuban regime to survive for more than five decades. This scheme has been upended by the mass demonstrations against the Castro/Maduro regime currently being held in Venezuela. In its eagerness to replicate the repressive model in place in Cuba, castrochavismo miscalculated, overlooking historical and geographical differences, not realizing that conditions in Venezuela today are very different from those prevailing at the time when the Cuban regime managed to shore up its power through repression. At that time Castroism benefitted from the economic and political protection of the Soviet Union. Under these special conditions there was no international pressure or internal economic malaise sufficient to shake the regime in Havana. Castroism could act with impunity, dispense with international legitimacy, flout the most basic principles profitability, turn its back on the financial markets, and even renege on its foreign debt, because it had political protection from the Kremlin and the inexhaustible manna showered on its by the Soviet Union. Such is not the case in Venezuela today, and this is for two reasons. First of all, the capacity for resistance in Venezuela is currently greater than it ever was under the Castros' tyranny in Cuba. Proof of this is the fact that castrochavismo failed to prevent the opposition's overwhelming victory in the parliamentary elections of December 2015. Also demonstrating this capability is the Venezuelan regime's backing down from its intended coup against the National Assembly, now in the hands of the opposition. And, finally, there is the tenacity with which the Venezuelan people have taken to the streets to demand general elections and the liberation of more than 100 political prisoners. Secondly, in contrast to Cuba at the time it received support from the Soviet Union, and later, during the years of soaring international oil prices, which allowed Hugo Chávez to sustain Castroism, Venezuela's economically exhausted regime does not have any benefactor willing to rescue it. It cannot even welch on its financial commitments (like Cuba did), or forego new international loans. In the political failure of Cubazuela's hierarchs, a key role has been played by brave Venezuelans who have concluded that it is better to risk their lives, demanding democracy and freedom, than to slowly die of hunger, repression and uncertainty. In an attempt to quell the growing indignation and mobilization of the Venezuelan people, Maduro and his associates have ratcheted up the repression to appalling levels, triggering widespread repudiation by governments of the region and other key players in the international community. Maduro and his Cuban advisers do not realize that it does them as much damage, or more, in terms of their international image, to quash protests, by means of murder and tear gas, than to allow demonstrations that illustrate the magnitude of popular discontent in the country. The strength and tenacity of the protests, and international pressure, are fracturing el chavismo. Some have reacted with genuine moral repudiation to the repression unleashed by the Venezuelan regime, while others are simply afraid of being declared accessories to crimes against humanity (which do not prescribe). Between the two groups, there will be fewer and fewer chavistas willing to commit to the cadre overseeing them. The convocation, by decree, of a constituent assembly, recently announced by Maduro, for the ostensible purpose of circumventing the National Assembly and preventing free and fair general elections, will only exacerbate the people's repudiation of the regime and elicit criticism, even within the ranks of el chavismo. The Cubazuela project, thus, winds to an inglorious end, doomed to go down as a historical and moral disgrace. Its death comes at a critical time for the Cuban regime. With the economic collapse of Venezuela, and the paltry results obtained by Raúl Castro's "updates" (confirming that Castroism has still learned nothing about Economics), the new generation waiting in the wings of power in Havana will be forced to question the socialist model and —if only to avoid the surge of popular indignation that a new "Special Period" would unleash— accept the economic and political opening up that Martí's noble and suffering are yearning for. Source: 'Cubazuela' and Castroism's three-fold failure | Diario de Cuba - http://ift.tt/2pMgcts via Blogger http://ift.tt/2pkDraI
0 notes
newstfionline · 7 years ago
Text
In Gritty City Outside Caracas, the Story of a Socialist Win
AP, Oct. 21, 2017
GUARENAS, Venezuela--Two years ago voters in Miranda, bewildered by the decay of their once-prosperous nation, delivered a stinging defeat to the ruling socialist party by voting decisively for the opposition in parliamentary elections. But last week the state turned red again.
To Brayand Velasquez’s mind, it’s simple: While the government has provided subsidized homes and bags of food in a nation plagued by economic hardship, opposition politicians not in office or sidelined by the socialists have been mostly absent in resolving daily problems.
“They just give speeches on TV,” said Velasquez, a 30-year-old motorcycle taxi driver in the poor, gritty mountainside city of Guarenas.
Opposition leaders have disputed the surprise result of last Sunday’s elections, in which official election returns show government-backed candidates took 18 of the country’s 23 governorships. But one evident takeaway is that the socialist movement founded by the late President Hugo Chavez can still pull large numbers of voters to the polls.
If the data from the government-friendly National Electoral Council is correct, the opposition received nearly 3 million fewer votes than in 2015, while the ruling party largely maintained the more than 5 million votes it captured two years ago.
Not all that stems from ideological conviction. Some voted for the ruling party out of fear of losing a government job, others not wanting to miss out on a chance to live in one of thousands of new homes President Nicolas Maduro’s government is building for low-income families.
But the turnout for Maduro allies suggests that despite the president’s low approval ratings, crippling inflation and shortages of basic goods, many Venezuelans would still rather cast their ballot for the socialists than for the opposition.
“‘Chavismo’ is still alive,” said David Smilde, a Tulane University professor and expert on Venezuela, using the Spanish word for followers of Chavez’s movement.
Socialist leaders are hoping the unexpected win will boost support going into next year’s presidential election. And there are other factors favoring Chavez’s so-called Bolivarian movement: Deep fractures remain within the opposition camp; emigration by Venezuelans fed up with life under Maduro continues; and low crude prices are forecast to rise in 2018, which could ease the fiscal crisis for this heavily oil-dependent state.
“This election marks a Bolivarian rebirth,” said a triumphant Delcy Rodriguez, a Maduro loyalist and president of a newly installed constitutional assembly that has essentially unchecked powers.
Guarenas, which is home to about 200,000 people east of the nation’s capital, Caracas, is in many ways emblematic of how the government won on Sunday.
Designed as a bedroom community for working- and middle-class families, the city is known as the origin of violent 1989 protests known as the “Caracazo,” which spilled into the capital, left more than 300 people dead and destabilized the government.
After long voting reliably with the socialists, Guarenas went with the opposition two years ago as Venezuela’s crisis deepened. And with long lines still forming daily outside nearly empty supermarkets, polls had favored opposition candidate Carlos Ocariz to win handily Sunday.
But Ocariz garnered just 37,000 votes in Guarenas compared with 57,000 that went for the opposition in 2015. His opponent, Hector Rodriguez, won in the city with nearly 51,000 votes.
A similar trend played out on a statewide level and across much of the nation as opposition candidates were hurt by high abstention rates in their strongholds.
Observers have attributed that to a combination of disillusionment among opposition supporters, contradictory messages from their leaders on whether to vote at all and an overall lack of faith in the country’s electoral system and the possibility of change.
The National Electoral Council’s last-minute decision to relocate dozens of polling places, affecting more than 200,000 voters in Miranda, also may have discouraged opposition voters. Some were moved to sites in rough neighborhoods where groups of armed, pro-government civilians were visibly present.
“There were some people who were driven enough to change the political situation that they risked their lives,” said Yoger Mendez, who volunteered at one of the relocated centers. “But others did not.”
Most polls show no more than 30 percent of Venezuelans identify as “chavista” today, down at least 10 points since Chavez’s death in 2013. Maduro’s own approval rating has dipped as low as 17 percent--a relatively solid number given the country’s dire state, and in the same ballpark as or even better than several Latin American presidents overseeing far healthier economies.
Nicmer Evans, a left-leaning political analyst who is also critical of the government, estimates about half the socialist party vote is the product of coercion while the rest stems from true political conviction.
“The government knows it has profound limitations,” Evans said. “But they also know how to consolidate what they have.”
Opposition leaders so far have presented what they say is evidence of ballot box tampering only in the eastern state of Bolivar. In Miranda and other states, they are pointing to maneuvers such as the voting center relocations and arguing that they depressed opposition turnout. They also accuse the government of using its resources to buoy socialist party candidates, including bringing bags of subsidized food to campaign events and voting centers.
Velasquez, the moto taxi driver in Guarenas, was critical of Miranda’s exiting governor, Henrique Capriles, one of Venezuela’s best known opposition leaders who nearly beat Maduro for the presidency in 2013.
“They called him the ghost governor because he was never around,” Velazquez said. In contrast, he said, he liked the frank way Rodriguez, the socialist candidate, discussed Miranda’s problems and how he planned to solve them.
“He did something important,” Velasquez said. “He listened to the community.”
0 notes