Countdown to KDE 4
06 Jan, 08
26 Jul, 07
You may or may not know that I’m terribly busy at work at the moment, rewriting a large application that has its roots in PHP3 (oh yeah) and is a crazy mix of HTML and PHP. Things like ‘abstraction’, ‘layers’, or even just ‘separating code and presentation’ are completely alien concepts there.
So I decided to do the rewrite using one of the many PHP frameworks - CodeIgniter, CakePHP, Symfony, etc. - and decided on CakePHP (and, maybe more important, against Symfony). Doing the ‘reading’ parts of the app was simple enough, despite me being a complete newbie to CakePHP and using the 1.2 alpha versions which is mostly undocumented. But the actual data input and saving part, I hit a wall. Hard.
The problem I have is this (models are in bold):
To enter a Venue, you first select a Location. Then you add the Venue data, which is a lot of fields. Then, you add 0..n Images (which you upload just then). Then, 0..n Organs (as in music), either from a list of existing ones, or you can add one on the fly. Then, optionally, Ensembles (dito); and then you finally get to review your data and finalize the Transaction. All this should be on a wizard-like form, with multiple steps/pages.
Editing a venue is pretty much the same, except the data is already there. So the record and all associated records get copied as needed, with a reference to the original.
Then, the admin can either approve your Transaction and merge your changes into the DB, or deny it and delete the Transaction and all associated rows.
The problems start with getting everything wizard-like. There is a FormWizard component, but that seems to randomly overwrite or clear $this->data. I don’t know what to do with my data when I hit the ‘add 0..n images’ step, or when adding organs or ensembles. I have no clue what “the Cake way” would be here, since all examples I can find are rather simplistic with only a few fields, all on one page, and at most one relation (which always fits a select box).
Can any cake baker out there help me get back on track before I lose my mind?
24 Apr, 07
I will be participating in this year’s Summer of Code, working on WordPress internationalization. You can read my full proposal online. Of over 6,000 applications, about 900 were accepted. WordPress could only accept 10 out of about 90 applications. It’s bound to be an interesting summer with working on WordPress and Habari at the same time, plus $work, photography, and ‘real’ life.
The frenzy officially starts on May 28th, but I’ll likely start working on things earlier — as soon as I have some time at $work, that is — since the task is not quite as easy as it might appear. A big part of the trouble stems from the fact that WordPress uses third-party components which are maintained by their respective project groups, and, in the case of TinyMCE, aren’t even PHP, but JavaScript. The other problem is translating basically static texts like the README file, but also plugin and theme descriptions. Obviously, we can’t expect every plugin and theme author to speak several languages, and since metadata is stored in a plaintext blob, we can’t use gettext or similar tools (aside from the fact that we can hardly ship a giant gettext mo containing all translations for all known plugins).
And I haven’t even begun to talk about cultural localization…
23 Apr, 07
Whee, the nice folks over at Watershed Studio have credited me for the stuff I contributed to the Sphere Related Content Plugin. :D
18 Apr, 07
Let’s create a 2.2 branch and start removing the current tagging implementation. I’ll announce on my blog that 2.2 will be delayed.
So, fear not, ye UTW users. There shall be no tagging in 2.2.
The discussion has been lively to say the least.
Update: Demolition!
Update: Official Announcement
10 Apr, 07
**Update:** I forgot to mention that you must hack a core file and adapt your theme, too. See the end of the article.
Upgrading to WordPress 2.2 bleeding edge is an adventure, always. Not necessarily because they introduce new bugs—it’s the new features that are sometimes worrying. When one svn up changed all the feeds from somewhat-valid RSS to invalid Atom, I didn’t complain because, hey, it’s the bleeding edge, and Atom is so much better anyway. I just fixed the bug, and it was good. (In retrospect, I should have sent a patch. I forgot.)
Having tagging functionality in the WordPress core is a good idea, too. In general. Basically. However, if there already exists a widely-deployed tagging plugin—and for WordPress, one very much does exist—it may be a good idea to look at the functionality and semantics of the existing plugin before reinventing the wheel, badly.
UTW has a function named is_tag(). WordPress 2.2 adds a function of the same name. Ergo, things break. Renaming the plugin dir helps, but your tags are gone. Re-activating the plugin shows you the shiny new plugin sandboxing (which, btw, Habari started in January), but doesn’t bring you back your tags.
Some searching might point you to the UTW tags importer (Options > Import > UTW). After a funny message about deleting unwanted tags from the UTW management page (hey, no plugin, no options page, okay?), the import kinda works. The “Did we say 5 steps? We meant 4. Ha ha ha.” joke is getting pretty old pretty fast, though. Then, instead of the UTW_ShowTagsForCurrentPost() function, you use the_tags() in your template. Of course, the semantics of the_tags() are slightly different from those of the_category(), and completely unlike the old UTW functions semantics.
So I decided to get UTW back. Despite claims to the opposite, the changes required are actually pretty simple: open ultimate-tag-warrior.php and search for occurrences of is_tag(. Replace all occurrences with UTW_is_tag(. Activate the plug-in.
Update: Do the same in your theme - where you use is_tag() now, change it to UTW_is_tag(). Then, open wp-includes/rewrite.php, search for the function get_tag_permastruct, and add return false; directly after the opening brace. (This unbreaks /tag/ pages.)
Done.
01 Apr, 07
Okay, seriously. Habari 0.1.1 Developer Release is now available for download and hacking:
The 0.1.1 version includes a fix for the search XSS problem and removes the misleading warning in the installer. I don’t recommend using it on a public site without being aware of the problems! At the very least, you should put your Habari install on a different domain that does not hold any important data.
You’re welcome to drop by on irc.freenode.net #habari and join us in our inspired fork… barbe… hacking!
01 Apr, 07
Hey, don’t worry! We’re just kidding! You’re reading Habari’s April Fools joke.
Update: ForkPress made 20,070,401 downloads already! I can’t believe it!
It started with great promise, great promises, and at an opportune time. Everyone and their mother were starting to get disgruntled with WordPress - it had its share of scandals, its codebase contained a lot of baggage from ye olde times, some of Matt’s decisions didn’t go over so well with people, and some didn’t like the whole dot-com stuff going on.
Habari promised everything - a complete rewrite, using today’s technology, under a truly free license, and with a meritocratic development process. And it had a number of big names behind it.
It was a nice idea while it lasted.
It is now obvious to me that both the meritocratic process as well as truly free licenses absolutely and utterly fail to produce open, free software.
You might think this to be a strange thing to say, considering Habari finally released the Developer Review version today. Well, see for yourselves:
If I appear to be angry, it’s because I am! Scott (skippy) and Owen - both cofounders of Habari - have left the very project they founded in the dust, choosing to pursue commercial interests instead. The best part is that the codebase for their fork is probably Habari, and our choice of license allowed - encouraged - them to just take the code! Considering the timing of this decision, and the polish that went into their new projects already, it seems obvious to me that this move has been planned since quite some time — taking the hard work of volunteers, and going dot-com. And the worst part? They probably won’t hire me either, just like Automattic didn’t! In short: WTF BBQ.
I must say I feel happy about Habari’s Development Review release, but at the same time, I feel utterly betrayed. On the bright side, it is a statement about Habari’s quality, but still…
Skippy, Owen… good luck with your new ventures — ForkPress and bbqPress.
Hire me?
Update: Chris J. Davis also talks about the topic.
01 Apr, 07
I kid, I kid. I have no intention of changing operating systems, at least until Linux finally is ready for the Deskop. Plan 9 still is nice, though!
Much is foul in the state of computing today. Proprietary software is used throughout the industry as well as on the majority of personal computers. The promised Linux Desktop revolution, announced since years, has not happened so far, and people are beginning to doubt it ever will happen.
This madness must end.
No longer can we use proprietary software! Be it the proprietary operating system we use, or closed source drivers, protocols that are neither open nor standardized, or even embedded firmware in devices.
No longer must people get away with “I use Mac OS X because it’s userfriendly”, when large parts of their OS are completely closed and locking them in.
No longer can “Well, I use Windows XP, but it’s ok, I run Cygwin under it!” be tolerated, lest we all lose our GNU-given freedom.
No longer can we just watch the proliferation of patents, software or otherwise, spreading like a cancer and trying to smother our liberty.
We must stand up and fight! We must retake our freedom! We can not stand and watch as the walls grow closer, not wait until they suffocate us!
Today I’m doing the first step towards my personal free software freedom. And this freedom can not, it must not depend only on some license, or development model considerations. Licenses are manmade. The Tao of Operating Systems is bigger than that.
I’m switching to an Operating System that is pure in itself, whose radiant beauty enlightens the galaxy of computing. One which treats all resources equally, in its infinite wisdom. One which uses the only true encoding - UTF-8 - everywhere. One whose name is funny, and not some ego boosting thing (say what, Linus?).
UNIX may be dying. BSD may be dead. But from the ashes of sockets and ioctl rose the phoenix that is Plan 9.
Replacing a tried-and-true installation of Windows XP with an equally able setup of Plan 9 is easy. You just install Plan 9 — there is no need to bother with backups, partitioning, or selecting packages. After an installation procedure taking some twenty minutes, you reboot into a new, blissful existence. Plan 9 is the Tao, and the Tao is Plan 9.
I want to take this opportunity to ask everyone of you, my readers, to get yourself a Plan 9 installation/live CD. In the month of April, set yourself the task of converting at least five computers from a proprietary, egoistically named, or user-friendly Operating System to the salvation that is Plan 9. Do not try to reason with the unbelievers you encounter, for you will encounter them, and they shall not be swayed from the path of darkness. Only through force can you rescue them from this downward spiral, the lefthand path, the path of usable systems and working devices. By the sword you shall spread the righteousness and glory of the path of light. Plan 9 is the Tao, and the Tao is Plan 9.
Go forth, and spread it.
Remember: The open source zealot’s blood is the seed of Freedom’s tree. This is madness, you say? Madness? This is Plan 9!
Screenshots of my new Plan 9 system will follow as soon as I get my screenshot file working.
Plan 9 is the Tao, and the Tao is Plan 9.
24 Jan, 07
As you may or may not know, I’m now part of the core development committee of Habari. Habari is a next generation blogging platform written in object-oriented PHP using the model view controller design pattern. There, enough buzzwords?
Not having to support a huge installed codebase with a lot of legacy, we have a chance to “do things right” with Habari. Using MVC is certainly a good start, as is using PDO (now programming SQL injections takes effort). But the nicest codebase still doesn’t make a good product …
… which is why I’m asking you all:
Please feel free to write lengthy comments, send me mail, etc.
We are currently aiming for a developers preview release at the end of month, but there’s still a lot of work left to do. If you’re interested, have a look at the mailing lists, or just drop by on IRC, in #Habari on irc.freenode.net.