VPS? Yes, Please!

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!

Know Your Skills - You Can Be Dangerous In Bad Ways Too

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.

Media_httpimgzemantac_ethzm

New Tools Don't Always Mean Better Productivity

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.

Media_httpimgzemantac_uecqs

New Host + Blog Rekindling

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.

Retrospection

Some people really enjoy the work they do, and while generally that is true for me, I find that there are times where the grass definitely seems greener somewhere else.  Especially when I see things like job postings from Microsoft.

Don't get me wrong, PHP has served me well over many years but there's the major issues I have with it that really causes me to yearn for something better.  If that means learning .Net in my current job position (or on the side, which looks likely), then I seriously need to get to it.  I should also point out that I was forced to learn PHP as a job requirement 5 years ago, just like I was forced to learn Java for a programming class in college I barely squeaked by in.  I should note that I never felt forced to learn C++ as I fell in love with it as I got high A's, and even VB6 was a joy at times.

It seems for all my love of the programming style of Microsoft's languages, I've been forced into other areas - specifically this PHP one.  My first real programming gig was PHP / MySQL on Apache on Xserves.  My second programming gig was initially PHP / MySQL on Apache on Xserves, and has migrated to PHP / MySQL on Apache on Server 2008.  If I can migrate to at least ASP.net / C# / MySQL on IIS on Server 2008, I'll have made lots of progress.

But one thing I've never truly done well is being steadfast in pushing forward in one area when feeling comfortable in another.  Sure, we migrated from Apple Xserv's to Windows Server 2008, but that's because it was my only chance to throw myself a bone, as we needed to get some sort of managed hosting.

PHP works and I'm comfortable, why change?  There's so many reasons why I still use PHP instead of ASP.net / C#. For one, because I feel like starting a rewrite of our current web application is something that can never be completed.  I am only one man (and there is nobody else) and with my current implementation plans on the PHP side of things, I feel like having to redevelop these items plus re-implement the system from scratch could cause.  For two, I'm having a bugger of a time getting .Net 3.5 setup properly on our machines.

Learning new stuff shouldn't be an issue, but it is.  And it's not like I don't have the tools - I have digital copies of C# 2008 and Learning ASP.Net 3.5 with C#. I've gotten into the BizSpark program so I have access to all the developer tools I could ever need, including Visual Studio 2008 (and the soon-to-be-released 2010).  I even have access to some great hosting I hardly utilize over at Reliablesite.net, and to top it all off, we've even migrated to Windows Server 2008 for our production web servers that are utilizing Apache for PHP and MySQL.

Instead of taking charge and leading the way, I've felt small and unimportant in my role at work.  I'm currently struggling with a module implementation that I keep wanting to put off.  The economy hasn't helped as I have tons of responsibilities that have been added during my tenure yet I've gotten only one raise and only when it was a mission critical moment (when my CTO was let go and I assumed many of his responsibilities). And when I'm at work, I'm fully secluded (which is great) but I make up the IT team nearly 100%, so there are no programmer or even techie co-workers anywhere close to where I am relegated to exist.

I guess, in short, it feels like I have been a passenger on this journey, just along for the ride, allowed to offer advice for directions at time, but never fully in control.  I think it's time for me to take the wheel.

Busy Week? Yes, Please!

So this week was action-packed, and it looks like next week is going to be even more so.

I've almost gotten the entire test server setup, with a few issues I'm looking into.  I will say that when running a site where small to large files (3mb to 30mb) are being served, a 100mbps uplink speed makes a difference worth paying for.  Especially if you plan to have more than a couple users utilizing files at the same time.

I ended up using the Apache, MySQL & PHP stack on Windows Server 2008 instead of IIS.  Why?  Because of our deadline and because when I start working with .Net I want to interrupt our primary web server as little as possible.  I'm sure I could do that now, but like I said, deadline.

Next week I get to dig into the production server and don't foresee many issues there.  Considering the speed of the machine, I expect a faster setup process than test.

Oh, that's right, our specs:

Our test server is a single cpu, Intel Xeon 3230-Quad Core [2.6GHz] with 4GB of DDR2 and 2 250GB sata drives in non-raid configuration.

Our production server is a dual cpu, Intel Xeon-Nehalem 5520-Quadcore [2.2GHz] with 12GB of DDR3 and 2 300GB SA-SCSI 15K RPM drives in raid1 configuration.

I can't wait for next week!

Media_httpimgzemantac_zzgyu

This Week Looks Great

So we finally got off our duffs and ordered 2 dedicated servers from Softlayer last week.  After some initial toying with them, I can't wait to see how they perform when we finally migrate to them here in the next couple of weeks.

As we are now officially moving to Windows Server 2008, I've had to make the call to use Apache 2.2 as part of the migration process instead of IIS.  As much as I want to use IIS right now, since I'm not overly familiar with it, I'm opting for the easiest migration path.  Our only real hurdles are new SSL certificates, setting up SMTP servers so mailing from PHP works, and any code updates that might be necessary for newer plugins.

All in all, it looks to be a great week!

Sails = Lots O' Wind

Well, if you want to know how to put wind back in the sails of a PHP programmer longing to write some ASP.net, well, here's a tip: let him find out that the web servers he's looking at replacing with dedicated ones?  Well, they can run windows server 2008, which runs PHP 5.3... oh, and ASP.net.

That's what I got the joy of finding out this week.  I spent a good part of Thurs & Friday setting up a local server 2008 system using a trial version, and so far, it's been great.  IIS7 is a dream to work with when compared to apache, and I'm loving every minute of it.

Sure, there are pros and cons, but in the end, what works best for the company is what matters.  Oh, and I really don't think I could handle attempting to re-write our current web app in PHP - it's getting long in the tooth and needs a major refresh - I think we're going to push a major version update out for the start of next year with a great re-tooling in ASP.net... and I can't wait!