New to Lithium: Part 1
I enjoy writing prose more than writing code, though I must say that the two writing environments seem to reinforce each other. I come to understand complexity by distilling it to its most basic logic, and putting programming concepts into prose serves to sharpen my coding skills. So as an exercise in bringing together code and prose, I’ve put together a draft of a tutorial for newcomers to the Lithium framework.
The tutorial is available as “New to Lithium” and is the first installment in what I hope can be a series of articles working with Lithium at the most basic levels through more moderate and advanced concepts. Be advised that this is only a draft. I’m making it available in the hopes that it generates feedback and serves the Lithium community in some constructive way. Feel free to provide critical feedback in the comments here or shoot me a line on Scribd where the document is currently published.
Read the first part of “New to Lithium” on Scribd
Running Authorize.net Transactions in Lithium
Here’s a class I built for running transactions in Lithium. More information is available on the GitHub page. Be sure to check it out. It’s meant for use in Lithium, but with some minor tweaking, could be used in almost any PHP script. Just delete the namespace line and references to the parent class, and it should still work fine.
Lithium for Newbies
I have a special place in my heart for newbies, mostly because at one level or another I’m always a newbie to something out there. Technology and computing just has a way of always keeping us on our toes, always learning and relearning things, which I take as an excellent sign that legitimate improvements have occurred in our respective platforms and fields. It has now been over a year that I’ve been working with Lithium and while the documentation effort for this framework has grown and improved significantly, I keep finding folks asking about how newcomers to the framework can get their feet wet. It seems there is still demand for a set of docs geared toward the absolute newbie, or perhaps the expert in one area of web development but a novice at Lithium’s unique (and fabulous) combination of aspect-oriented, object-oriented, MVC, and structured storage (NoSQL) paradigms.
I should apologize: this post isn’t about actually providing these docs or explaining Lithium to newbies. Rather, it is an invitation for the Lithium community to join me in remembering the freshman class of our larger professional network. Strange as it may seem, my day job is actually in academics: I’m wrapping up a PhD in religious studies at Claremont Graduate University and have worked as a professor in teaching the more abstracted and secular approach to understanding religion and religious movements. And if there’s one thing I’ve learned in this field, it’s that the life blood of any social movement is the youths in the crowd, the converts, the rising generation. Those movements that lead these new initiates by the hand endure better than those that stand on the sideline while people transition.
I believe a key opportunity to capture more interest and users to the Lithium platform just surfaced: with the release of Lithium 0.10, MySQL and model associations are now supported to enough of a degree that a far wider net of PHP developers can transition over to what is more importantly concepts and structures Lithium provides that other frameworks don’t, or maybe don’t do very well. The time for a robust entrée to Lithium for this wider constituency of developers is now.
Billionaire entrepreneurs have made a mantra of the three most important aspects of a successful business plan: “Location, location, location.” If I were to translate this clichéd mantra for developer communities, it’d be “documentation, documentation, documentation.” (Sorry, Steve Ballmer, but it’s not developers that count: you don’t have developers without docs.)
I would like to try my hand at writing newbie docs, but I will make one confession: I already know that these will have to be rough drafts because of my own learning curve at play. But the real strength of open source communities is their collective writing process. So I’ll be forking the Lithium manual on GitHub and re-posting any updates I make to it here for your editorial comments. Screencasts are an especially effective medium for teaching processes and concepts; maybe I’ll be able to put some together as well. And last, but not least, I’d like to err on the side of trying when offering solutions in forums, chat rooms, and Q&A sites. If there’s a more elegant way to accomplish something, I’ll invite your critique. It’d be a tragedy if we held back in giving advice and in sharing solutions for fear of being called out or corrected in public view. When there’s such a fabulous tool coming out of a group of developers, I have to believe there’s something more to the community at work. I like to think that something includes a genuine camaraderie that anyone new to anything would appreciate, from one developer to another.

