Friends Blog Links
-
Clever Blog Name Here
I need to be cleaning right now... Saturday, Jul 5, 2008
-
Jolby
Subtext Show: "Beasts of Burden" Wednesday, Jul 2, 2008
-
It's Not Easy Being Green
Adam's Urban Farm Thursday, Jul 3, 2008
Other Friend Links
Recent Tracks
- Homecoming Misery Signals Friday, Jul 4, 2008
- Reset Misery Signals Friday, Jul 4, 2008
- Ebb and Flow Misery Signals Friday, Jul 4, 2008
- Set In Motion Misery Signals Friday, Jul 4, 2008
- A Certain Death Misery Signals Friday, Jul 4, 2008
- Coma Misery Signals Friday, Jul 4, 2008
Back to all blogs
Showing posts tagged: 'Webdevelopment'
The Ideal Web Development Environment
Monday, March 31, 2008, 12:31am
So begins my first step into blog nerd-dom. For my very first web development topic, I'd like to discuss what I believe to be is the ideal web development environment. I started learning web design on my own about 8 years ago, starting in Dreamweaver 4 and since then, my work environments have changed a number of times, usually depending on new technology and the continued growth of my learning in the field. Once I started at Cuban Council, I was already at a pretty good place, but the guys over here helped me to step it up to a level of comfort and efficiency that I've never had before. If you've ever struggled with your development environment, I hope my example might help you out...
Mac 4 Lyfe
First of all, I develop on a Mac. The Mac operating system comes with a lot of great technologies already built in for web development, making getting off the ground that much easier. I could go on about the countless advantages of using a Mac, but I'll keep it simple for now—it rules.
Sleep at night with Subversion
The first technology I'll discuss is Subversion. Subversion, if you're not familiar with it, is version control software. It is a must-have if you are working on projects with a team of people, and it's even great for a single developer because it can serve as a step-by-step back up of your work. I've gotten to the point where using Subversion has become my security blanket—if I'm not committing every half hour (or more) I start getting a little paranoid. Even as I'm typing this blog, I'm wishing there were a commit button somewhere. (Note to self: add svn commit functionality to blog editor) I also have nerd nightmares of people breaking into my home at night and stealing my laptop knowing that I decided to hold off on committing my work to the remote repository until morning.
Starting with Subversion, however, is not simple—or at least it wasn't for me. I remember first trying to wrap my brain around the concepts of Subversion and it can really blow your mind. And it's one of those things you really have to understand and use correctly without getting into lots and lots of trouble. When I first started at Cuban Council, one of my first projects was refactoring a website. It was the first time I had been required to use Subversion, so, being the inexperienced user that I was, I decided I would develop the entire site, and then do a commit at the end. Very bad choice. If you're using Subversion, commit as often as possible! I ended up having problems with my commit, it gave me problems with some directories or something—yadda, yadda, yadda, basically I ended up using the svn delete --force flag in an unexpected way and deleting about 90% of my work. And no, I couldn't just recover it from the trash can. And yes, I realize (now) that anything with "force" and "delete" in the same command should be handled with caution. With great power comes great responsibility my friends, go forth and commit.
Give FTP the finger with SpringLoops
One of the small hurdles of Subversion is that, in good practice, you are keeping your development code in a completely separate location from your live code. So if you make any changes, you need to: commit, export your code from the repository, and then pick out each and every file that you made changes to and FTP it. F that. We recently started using SpringLoops and it's friggin amazing. They are a Subversion repository hosting service, but they have one amazing feature that makes them rock: Deploy. Basically for every project you host in your account, you can add X amount of deployment servers (depending on what level you pay for), so you stick in your FTP login and you've got yourself a deployment server. It then has an interface where you can select which server you want, which revision number you want to deploy, click deploy, and bam! Your server is updated! The great part is that it figures out which files have been added, modified, or deleted from the existing state of your server and the deployment only concerns itself with those files. They offer a free version of the service but you only get 10MB and a limited amount of deployments per day. The next step up is $9 per month, which is enough to keep me from using it on a personal basis. On to figuring out how they did it and bringing it to my desktop!
MAMP: Web server in a box
I used to install all of my server software like PHP, MySQL, etc., by compiling from source, which was great to learn the CLI but it's the future baby, and we don't have to do it anymore (at least locally). MAMP runs just like any other application and has all of that stuff ready to go. It's great because it's almost all-inclusive but remains flexible, extensible, and customizable. You can activate and deactivate Apache modules and you can even switch between PHP 4 and 5. I recently tried to experiment with Django in it and could not get it to work, but there are folks who have. With web technologies always changing, it's much easier to update a single application than upgrading your various installations.
FTP with Transmit
Although I gave it the finger earlier, FTP is still necessary for the job. It is pretty simple, so I'm not too picky, but Transmit has a very nice, intuitive interface and is simple to work with. Probably the coolest part of Transmit is being able to modify files directly from a remote server. When you're connected, select a file, hit Cmd+J, modify and save the file and it's updated to the server. Sweet.
Rule the (nerd) earth with TextMate
I use TextMate for code editing and it never stops blowing me away! For all of the useful goodies this program is chock full of, you'd think it would chug along, but it runs great. There are tons of nice, intuitive keyboard shortcuts and with the use of Bundles, "code completion" is evolved to a whole new level. There are tons of built-in Bundles that include key combination or tab-triggered code snippets, commands, etc. that make your coding life a breeze, and the great thing is that you can make your own Bundles too! I've made my own for simple stuff like todo notes, etc. The more I explore TextMate, the more easter eggs I find, and the more it rules.
The achilles heel: the MySQL GUI
That's right. If web development were a Trojan War, you would just have to slice me in the MySQL GUI and I would be down for the count. I've been using a combination of CocoaMySQL and Navicat. They make a cute couple, I have to admit, but using 2 apps for one purpose is a little sucky. They both have some great features and they both have their shortcomings. Navicat has a great Data/Structure synchronization tool and a nice, safe table designer that doesn't apply your changes until you click 'Save'. But it hangs and crashes a lot and importing and exporting is not as simple as it is with CocoaMySQL. CocoaMySQL makes it really easy to export exactly what you want, table by table, with data or not. Nerd pet peeve: It include the table's AUTO_INCREMENT value even if you tell it not to export it's data—easily solved, however, with a simple regex search-and-replace in TextMate. And it's also open source so it's development seems to come along slowly. I've also tried SQLGrinder, SQLEditor, and the MySQL Administrator and Query Browser apps, none of which are quite up to far in my opinion. I've actually considered learning a software development language just so I can take a stab at doing it right.
So that's it! I hope I've helped shine some light on some soft spots for some of you, and if anyone knows any solutions for my achilles heel, or has any other suggestions, I've love to hear em.
Tags
Recent Comment (of 2)
"wow, i actually use ONE of the things you use! well, TWO actually, if you count being a M4L-er (..."by Leslie posted May 9th, 13:46
