New Blog Design

I’ve finally gotten around to putting up my new blog design. It based off the Carrington theme for WordPress. It isn’t 100% complete yet as I have a handful of more tweaks to do. The archive pages aren’t formated correctly, and I’m sure I’ll find some more changes to make. I’m still playing around with the side menu to find a nice balance for all the content there.

Tagged with: , , ,
Posted in General, Web Design

Recursively Add New Files to SVN

One great thing about running Windows is TortoiseSVN. I makes managing my SVN so easy. One of the problems I’ve ran into on other systems was I had been working for several hours. I would have dozens of new files and with TortoiseSVN it would show me a list of all the new files and I could hit “select all” and commit. However, on Mac I haven’t found an SVN client that I like, so I just use the terminal commands. There are also times, like when managing a WordPress installation, that WordPress and its plug-ins could auto update. I wanted to be able to add all the new files on the linux server back into the svn.

I never could figure out how to do it until I read a comment at a blog post:

svn st --ignore-externals | grep ^? | sed 's/\?/svn add/' | sh

Man, shell is just awesome. This is better than the first suggestion of using “svn add –force *” because it would add ignored files as well. Hope this helps someone and makes them happy like I am now!

Tagged with: , , , , ,
Posted in Programming

XAMPP for Mac – My Frustrations & Solutions

xampp-objectdock

These last few days I’ve been trying to get XAMPP to work on my MacBook Pro these last couple of days and it has been frustrating! It seemed I kept running into more and more problems. For those who don’t know, XAMPP is tool for developers to run a LAMP stack (Linux, Apache, MySQL, PHP) on your machine locally. I’ve been running it on my Windows machines for years, and I have been running my production servers on Linux.

Installing just XAMPP and getting it to run with the Control Panel was easy. All my headaches started when I tried to get my vhosts installed and working. The problem I ran into getting XAMPP to run on my MacBook Pro were the following:

  1. XAMPP for Mac is different from XAMPP for Windows
  2. Max OS X comes with a Version of Apache Installed
  3. Mac OS X has additional permissions that are different from Linux

XAMPP for Mac != XAMPP for Windows

My first mistake was that I assumed that XAMPP for Mac is the same as XAMPP for Windows. After digging into it, the file structure and config files are pretty different. The php.ini file is different, and all the binary files are in /xampp/xamppfiles/bin/. On windows the binary files are in their own folders. It took me awhile to figure out where everything was at. This led me into my next problem:

Mac OS X comes with a Version of Apache Installed

When I was trying to debug why stuff wasn’t working, I opened up the terminal and started running commands. There is just one problem, OS X already has a version of Apache installed. So when I cd’d into the bin directory, I would execute this command:

apachectrl -t -D DUMP_VHOSTS

There was just one problem, it was executing the apachectl that was installed by Mac OS X, not the one for XAMPP. So it all my debugging with the config files, etc. wasn’t working. I was going insane. Finally I figured out what was going on and I had to execute this command instead:

./apachectl -t -D DUMP_VHOSTS

It started behaving like I expected! This lead my to my third hang up.

Mac OS X has additional permissions that are different from Linux

This threw me for a loop to. I don’t understand exactly why this was happening, but I kept gettinga  Permission Denied when trying to view the vhost I was trying to setup. The way I used to do it on Windows is I have a partition for all of my development files. I would have a folder at the root of that drive called SVN_Repositories that holds all the SVN Repositories I use for work. So on my MacBook Pro at / I did the same, I had my SVN_Repositories folder. So my vhost would point to a directory like with a name something like this: “/SVN_Repositories/ExampleRepo/trunk/httpdocs/”

So my linux side clicked in and thought “Hrm, it looks like there is something wrong with the permissions. Let me change the folder permissions to 777 just to test.” So I did that and it still didn’t work. This it made me think it still was a vhost configuration issue. So I spent hours testing all sorts of stuff and just getting more frustrating. Then I read somewhere that XAMPP can have problems with OS X’s unique permissions on addition to the FreeBSD stuff it does. It said to host the vhost content in either the Applications folder or Users folder. So I moved my SVN_Repositories folder to my Users folder so it was like this: “/Users/username/SVN_Repositories/ExampleRepo/trunk/httpdocs/”

It finally worked! So the lessons I learned were:

  • Put your vhost content in the Users folder.
  • If you try things from the terminal, make sure you do ./apachectl so you execute the correct binary file.
  • Most of your config files are in the /Applications/xampp/etc/ folder.

As always, hopefully this helps someone. Feel free to leave any questions or comments.

Tagged with: , , , , , , , , ,
Posted in General, Programming, Web Design

Aptana Studio – PHP IDE Alternative to PDT, Zend Studio

aptana-studioThe other day I ran into another option as an IDE for PHP. If you’ve been following my blog, I’ve been a big user of Eclipse PDT (http://www.eclipse.org/pdt/) and Zend Studio (http://www.zend.com/en/products/studio/). There is a third one to add to the list, Aptana Studio. It is built on-top of the Eclipse framework, like PDT and Zend Studio. It has several extensions: Python, Rails, PHP, and others. If you’ve read my post on Consumer Linux, I talk a lot about “Power & Polish.” Here is my definition:

In my mind, the way I visualize computing and usability is by using the two terms power & polish. Power is the raw ability to do something. Polish is the ease doing that something.

Linux is very powerful. If you know your way around the command prompt, you can accomplish just about anything. I hate administering Windows Servers because I lack the power that I have when administering a Linux Server. However, I wouldn’t say [the Linux Desktop] is very polished in comparison to OS X. Apple has placed a huge amount of time, effort, and work into polishing the interface and usability of their operating system. The reason I like the term “polish” is because polishing something doesn’t give you anything new, but just makes something already in existence better. It also requires a great deal of work.

Eclipse PDT is pretty powerful IDE for PHP. It’s code completion, one of my highest important priorities when using an IDE for me. Zend Studio is an additional layer of power on top of Eclipse PDT. It also adds some polish with easier installer and a few other things. I think that Aptana Studio addition to the Eclipse family is a little more Polish. It also focus’s its power on other aspects.

Serious PHP vs HTML/CSS/JavaScript

Eclipse PDT and Zend Studio focus on PHP first, then HTML, CSS, JavaScript etc. Don’t get me wrong, they do each okay. However, the focus is a lot more on PHP. Aptana Studio, in my opinion, has better CSS and HTML support. Example, when I manage CSS files in Zend Studio, its really buggy and slow. I think there are some bugs they have to work out. Aptana Studio, on the other hand, works really well.

The flip side is Code Completion. I’m a big fan of the Code Completion in Zend Studio. It works well and pops-up when I want it to. Aptana on the other hand didn’t have a lot of completion options. I found myself wanting for more from it.

Another note worthy aspect of Aptana Studio is their two versions: Aptana Studio and Aptana Studio Pro. I actually like how they have split the features. I honestly feel like if you need the features of the Pro version, you can easily justify the cost. It is also less expensive than Zend Studio at just $99. I also really like the option for premier support tickets where bug fixes & feature requests of Pro users get a higher priority. One thing I’ve found really disappointing with Zend Studio is how hard it is to get support. Almost everytime I find a forum post on Zend’s forums asking for help on a problem, there usually are 3-4 posts saying “I’m having the same problem, I would really like the answer too” without any answer.

Conclusion

Here is my suggestion. If you work heavily in PHP coding behind the scenes, Eclipse PDT and Zend Studio might be a better fit. However, if you’re a developer who is working in both PHP and do a lot with HTML/CSS, you might find Aptana a better fit. I haven’t had a time to really compare the two, but that is my initial finding with the subject of Aptana Studio PHP vs Eclipse PDT vs Zend Studio. Also, if Zend Studio’s price is too steep ($399), Aptana Studio would probably be a LOT easier to swallow. Aptana Sutdio comes with a 30 day trial of pro features. Give them all a try, they all work on Windows, OS X, and Linux. Let me know what you think, and feel free to drop any questions and/or comments.

Tagged with: , , , , , ,
Posted in Articles, Programming, Technology, Web Design

Software Development With Clients In Mind

Why does it seem so hard to deliver quality products to clients? Sometimes it feels like clientseither don’t appreciate quality, or they have their priorities all mixed up. To help us understand, here is a wonderful sketch from Monty Python called “The Architect’s Sketch.”

I’ve been searching for awhile for a good example for this subject, and when I saw this sketch, I knew this would be perfect. It outlines two large problems with developing solutions for clients: quality & suitability.

In the sketch (transcript avaiable) each architect presented their solution. One was very well designed with high quality in mind. The second solution was well suited for their needs, but obviously has a sub-par quality. Which brings us to the conclusion, which solution did the developers pick? The poorly designed one of course! Why? Suitability, how well somethings fits, comes before quality for consumers and clients.

These seems rather obvious, but in-fact many developers get caught up in quality and then are totally surprised when their clients aren’t happy. Why? Because as developers we notice and respect quality a great deal more than suitability.  However, clients rarely consciously notice quality. Sub-concisely they’ll notice speed, performance, bug-free, etc. However, they don’t really realize it, it is just something they come to expect. If a software solution doesn’t suit their needs as they would like, no matter how high of quality the solution has, clients and consumers will think its poor quality.  So how can we deliver a high quality solution that also is suitable for their needs?

Read more ›

Tagged with: , , , ,
Posted in Programming, Technology, Web Design

WhiteHouse.gov YouTube Channel Hacked?

I’m not sure exactly what this is, but its strange. I wanted to add the whitehouse YouTube channel’s RSS feed to my Google Reader. I might not have voted for Obama, but I think he is using new technologies to communicate with people in a very good way. I’m excited for the precedence that he is setting in the government, and for future leaders, on how to leverage the Internet, video streaming, etc.

When I added the RSS feed to my Google Reader, I saw a weird post titled “MPEG FOUR DOJ” with one view. Not sure how it got there, but I highly doubt it was published by Obama’s office.

whitehouse_hacked

This brings up one point that Obama’s administration is going to have to face. The whitehouse YouTube channel is has become a highly valuable target for people to hijack. So many groups, from the harmless to extreme, would love to have 5 minutes of fame by compromising the account and posting their own videos. There have been issues with Sara Palin’s email account during the election campaigns. It will be interesting to see how things will shake out.

Tagged with: , , , ,
Posted in Technology

Great PHP Article: Leadership in Software Development

I just read a good article on PHP Development by Cal Evans, an active member in the PHP community. Its about managers, developers, and the problems they face in the IT industry. Here is an excerpt:

There are very few professions that combine the creativity involved in good software development and the rigorous deadlines, often imposed from the outside. Hurry up and create! The ideas have to keep flowing, they have to be scheduled, and they have to be completed on time. If you have to go figure something out, go. But make sure you are back after lunch and make sure your schedule doesn’t slip. Developers, especially now as we work in Web years, are under increasing pressure to “Get it out the door fast!”.

The rigorous detail work of quality software development, however, has not changed. It still takes time to develop quality software. (You can have it good, fast, or cheap; please pick two.) To those on the outside, it may sometimes seem that what we do is easy. (Heck, we may feel that what we do is easy!) The ease with which developers manipulate the tools of the trade is often misconstrued as ease with which the task can be completed. Only a developer understands the countless hours it takes to master new tools, new languages, and new concepts. In this age of rapid development, new concepts come at us like a fire hose of knowledge. We are supposed to know how to soak it all up and be able to use it in our next project. This is almost a bearable burden if management understands what we are faced with. The problem is that, having never been there, most managers cannot empathize. (And most don’t even bother to sympathize.)

It brings up a lot of good points on how we can improve the relationship between managers and developers.

Tagged with: , , ,
Posted in Programming

Interesting Poll on PHP Hiring


Posted in General

List of 50 PHP Tools

Found a great article listing popular tools that every PHP developer should be away of. Here is an excerpt:

PHP is one of the most widely used open-source server-side scripting languages that exist today. With over 20 million indexed domains using PHP, including major websites like Facebook, Digg and WordPress, there are good reasons why many Web developers prefer it to other server-side scripting languages, such as Python and Ruby.

PHP is faster (updated), and it is the most used scripting language in practice; it has detailed documentation, a huge community, numerous ready-to-use scripts and well-supported frameworks; and most importantly, it’s much easier to get started with PHP than with other scripting languages (Python, for example). That’s why it makes perfect sense to provide the huge community of PHP developers with an overview of useful tools and resources that can make their development process easier and more effective.

This post presents 50 useful PHP tools that can significantly improve your programming workflow. Among other things, you’ll find a plethora of libraries and classes that aid in debugging, testing, profiling and code-authoring in PHP.

You can read the rest of the article here.

Tagged with: , , ,
Posted in Programming, Web Design

My Honest Attempt With Linux Desktop

After the last uphpu meeting a few of us went to Applebees like always. We were talking about a lot of stuff and one of the big subjects was Linux Desktop. Kevin Carter, the presenter, was sporting off Kubuntu with the new KDE 4.2. This year I’ve made a goal to improve my Linux skills and I thought if I switched to using Linux as my main work enviroment. So Sunday night I started to try to install Kubuntu 8.10. I’m sorry to say, but after 24 hours, I wasn’t able to stick with it.

I was actually really impressed with Kubuntu. Many of the distros have made huge improvements over the last 5 years. The problem was configuring it to work was too much. I ran into problems with my xorg.conf and two graphics cards. Took me several hours to figure out that was problem. Then my sound wan’t working, couldn’t get my USB Headset to work, and I hadn’t even started to get my work stuff setup. The problem was I didn’t have enough time to spend configuring everything. Once it was time for work to start, I had to just give up and boot into Vista.

I also realized there were several programs that I use every day that I couldn’t use. Ventrilo, Jing, Rhapsody, and OneNote were just a few I noticed I missed in just the first few hours. The sad thing is I honestly wanted to make the converstion to a Linux Desktop for my daily work (I’d still dual boot for my ocassional gaming). However, I haven’t given up completely, just that I’ll probably spend the next few months playing around with Linux on a old machine. I just can’t afford to spend the large amount of time to make the switch that quickly (and I’m sure my employeer, and ex-CEO of a Linux Distro, would rather I spent my time getting my work done than trying to get Linux to work for me).

I’ll keep everyone posted over time as I work on getting Linux to work for me, just that the cold-turkey method won’t be working for me. Thanks for everyone in uphpu who helped me figure out my dual graphics card problem.

Tagged with: , ,
Posted in Technology