I hang out with a great group of people on the internet, and the community is just awesome. So, when a fellow member was looking for assistance last year running a charity promo for Child's Play, I committed to helping him.
This year, we're having another annual event, and since my needs over the past few months have changed in regards to what I'm doing with web programming, I figured it was time to move from my basic WinHost account that I wasn't using much to ThrustVPS, where I've been able to get something for around $8/month.
Having spend time re-familiarizing myself with Linux, it's been a great refresher course. Add in the fact that it's $12/month less than Linode or SliceHost, and I'm that much happier. Sure, it's not the fastest VPS in the world, but for what I need it for, it'll do.
Here's to my current PHP projects and my new VPS — huzzah!
It's been a long time since I've really smiled while programming. Fortunately, I've recently had the joy of being able to rewind myself to back when I started programming in 1997.
Let me explain.
At work, we've been looking to hire a PHP programmer that knows their stuff. Since we've just started interviewing candidates and we already settled once for someone that won't be with us in the development area, I felt it was my duty to have some artillery for the interview process. I was able to come up with some simple challenges that address core concepts I expect someone to know if they're going to be able to work on our project (thanks to Jeff Atwood and Steve Yegge).
In the midst of all of this, I came across some badly written C++ code that made me think about the joy I had programming in that language back in college. Now, having access to Visual Studio 2010, you might think I started to work on some simple programs in my long lost love language, but instead I diverted myself and started learning Python. I really recommend grabbing a copy of Invent Your Own Computer Games with Python - Second Edition (available as a free PDF) and spending time just getting re-acquainted with how simple programming can be. Truthfully, it feels like I'm back in high school learning to program with Turbo Pascal all over again.
Application development is a skill that some people are taught, and while others try their best, it's often evident when someone has no experience (or is following bad precedence). I came into the PHP world straight from C++ focused college over 6 years ago, and have been learning that ever since. From the first "a college student started it and now you have to support it" day at my previous commitment to the "business application built against a deadline by people that used a text editor" (I almost wish that was a joke).
So I recently had a module in our web application that I've been tasked with revising, so I took the opportunity to port it to another section of the code where all the other modules reside. Why would I do such a thing? Because it was poorly designed. In a non-object language, I guess it could make sense, but even then, this program was designed during the crux of PHP 4 and there would have been better options than what was chosen.
The way it worked was that it had one main file handle the direction of the script, with many others included to dictate their function. Files like actDeleteItem.php, actUpdateItem.php or even actAddItem.php - all accessed via a large switch statement. When you add in the fact that it was also set apart from the main module of the program and was in an obscure area, it boggled my mind even more.
So I went to task (as I have been doing over the past year for other sections of this web application), and have been working on taking those many pages and compiling them into a properly designed PHP class/module. Now I've got nearly 2000 lines of code that have been re-tuned to fit together properly. Likely not near as clean as I could have written it from scratch, but this being such a huge step and it being production-oriented code, functional equivalence was my goal.
And so far, it's working as it was before. But now it's better put together, out of the abstract area of our system and put with the other classes I've developed over the years. If my predecessors had made the proper decisions, I could have saved a decent amount of time on this module alone. Thankfully, I tend to enjoy a coding challenge, and the best part of this is that the extending that I'm going to be working on tomorrow will now be much easier. Here's hoping the people that will inevitably follow me in this job don't think the same thing about my code as I've thought about what I've been left to take care of.
I've been wanting to work with C# for literally years, and now, I've finally taken some of the initial steps to not only learning it, but more importantly, using it in my day to day work.
Just this past week I had the privilege to finally purchase Visual Studio 2010 Professional for my day job. It may be the lowest on the totem pole of Visual Studio editions, but all things being accounted for, it's a huge step in the right direction for us. As a company whose flagship product is an aging PHP web application that we're continually extending, to say this is a breath of fresh air would be an understatement.
I've been working with PHP now for over 6 years, and for about 5 of them I've been using the Zend Studio IDE. Written in Java, it's gone from Windows to Mac and back to Windows with me, and has been a fantastic tool. The only problem is that I'm still using version 5.5, the last of Zend's non-Eclipse-based editor.
Awhile back, someone at Zend thought it would be a wonderful idea to merge their ideas into Eclipse and push out a newer, different Zend IDE instead of maintain their current path. I guess some folks really like it, but as is the issue with all major development path changes, there are those of us that refuse to conform, either because of stubbornness or, believe it or not, the new tool isn't near as good as the older.
Now occasionally I visit the official support forums and read the cries of many developers pleading that Zend change their course and get back to supporting a lighter, less bulky solution. Some even look to change IDE's when their support subscription is up, but I've not done that because I've yet to find another editor that works so fantastically well (and the support subscription is totally optional). I've tried Netbeans, Komodo, PHP IDE, and countless others, all of which have paled in comparison to Zend Studio 5.5.
Initially, when it came out, I tried Zend Studio 6. I really wanted to like it, and Zend was pushing out the first version of their framework at the time, but overall, I was very unimpressed. You have to remember, my day job is development and support on a rather large, business to business application written with support from PHP 3 to the current PHP 5.3, with the project laid out in a rather non-standard way.
So, I waited. I went back to version 5.5 and forgot about it. When Zend Studio 7 deployed, I jumped in for the obligatory 30-day trial. Again, it was very similar to version 6, and I again was sorely disappointed. I even went through an article Zend put together on transitioning from the aging 5.5 version to the newest, yet still hit many issues that simply weren't an issue before.
Now Zend Studio 8 is in beta, and I'm getting ready to take another look. After two lackluster versions, I'm not hopeful, but I'm willing, and I'll let you know my thoughts.
As a PHP / MySQL developer using .NET and SQL Server, I've moved over to WinHost.com from ReliableSite.net. It's a really solid option for those looking to get the most out of their providers, but be forewarned: there are some things you'll need to get your hands dirty with that you may not be used to (like setting up sub domains via IIS).
Overall, though, for $5 a month, I think having PHP5, a MySQL 5 database, .NET 4 support, as well as a SQL Server 2008 database, is definitely worth the price of admission.
Now my blog is hosted on my own domain, and I've got enough options to make sure that I can explore whatever development paths I desire.