NEWDEV LOG #2
Okay, let's check the big board...
# of Lines Coded Since Last Week: 0
.... huh. Okay, so I haven't coded a damn thing yet. That doesn't bother me particularly; this is my typical m.o. When I climb a mountain, I like to start from a great distance away and consider each angle of ascent. Some people like to charge right in, and that's fine, but I prefer to bide my time.
Smile. Relax. Attack. As the Buddhist said to the hotdog vendor: "Make me one with everything." This is the Zen approach.
(though btw, if you're looking for hot coding action, look no further than yer man Oolong, who has been making subtle improvements to the codebase since the moment he got his buttons. E.g. the nav links at the bottom of Everything User Search... Remember how crazy obtuse they used to be? Have you noticed how nice they are now? Yeah, that was him. If you haven't said "Thanks" to this guy yet, do it.)
Only a simple computer program
Last time, I said that I have a "distinct vision of what makes E2 great & what I'd like E2 to become". I'd like to expound on that vision a little. (Maybe next week.)
But first of all, for clarity, I want to make an important distinction:
"The Everything Development Engine" (or, informally, "ECore") is the piece of software that runs this here website. Everything2.com is an implementation of ECore. The word "E2" though, in my mind, encompasses much more than just this website. E2 is people. If Everything2.com went offline tomorrow, the E2 community would still be around because, as clampe said in the E2 backstory: "This is not a virtual community. It's simply a community."
So, E2 and ECore are really two separate entities. You might wonder, then: Could E2 ditch ECore? Replace it with some other software?
The short answer is: No. The Everything2 name belongs to our benevolent overlords, Blockstackers Intergalactic. BSI still supports E2 because E2 still supports ECore. It's a symbiotic circle. If we were to port E2 to Joomla (or some other content-management system), BSI would have no easily-justifiable reason to support us. They would not allow us to use the Everything2 name or URL. Without the E2 name, we wouldn't be able to port our vast and incredible body of E2 content without expressed consent on a user-by-user basis. We would essentially have to start a brand-new website. Game over, man.
So for better or worse, E2 (the community) is going to be forever married to ECore (the software). In that case: I figure we might as well make ECore awesome.
The nature of the beast
What is ECore, though, exactly? Quoth nate:
"The Everything Web System is Another Dumb Perl-MySQL Web Content-Management System
More specifically, it uses a unified object model rendered in a database and XML to create a set of modular tools for moving around blocks of TEXT and HTML."
So there yah go. It's a CMS. There are many like it-- a quick web search reveals dozens, maybe hundreds of others-- but this one is ours. It's open source and completely free-of-charge. It's written in Perl-- a clever & robust programming language-- in an age when most CMS apps are written in fairly generic PHP.
What I'm trying to say is, ECore is pretty damn cool already. We tend to bag on the software a lot around here, and for good reason: it's a mess. By modern standards, it's archaic. By any standards at all, it's confusingly designed and poorly documented. But it's got a good pedigree, a smart set of basic principles, and a hardcore group of dedicated end-users (that'd be us). There's nothing fundamentally wrong with ECore that I can see.
(Remember, though: There's a lot of ECore that I don't understand. Correct me if I'm wrong.)
Dem bones, dem bones gonna rise again
When Blockstackers first unleashed ECore upon us, it was a small and protean creature. Over the years, the volunteer coding effort has made it bigger and more robust, but its adventures in the wild have also made it rather squirrelly. Feral. Unpredictable.
Here's my basic blueprint on how I intend to capture the beast & tame it:
#1 Get my gear in order. Setup a personal ECore site that I can create & destroy w/ impunity.
#2 Go down the rabbit hole. Learn E2 inside & out.
#3 Create documentation. Map out every function call.
#4 Revise & streamline the codebase. Trim out the brambles. Make it fast and lean.
#5 Package a new build. Release it. Make ECore an active project again.
#6 Code new features to make E2 more functional & sexy. Help others do the same.
Please note that these are not promises. These are just my personal long-term goals. I haven't even set foot on the mountain yet.
But if there's one thing I learned in life: If you're gonna dream, dream big.
Next time... Installing ECore on a Linux OS in the Year 2008 A.D. (spoiler: it's no cakewalk)