Skip to the content...

Welcome to the David Walsh Blog. I'm a MooTools, Dojo, jQuery, CSS, and PHP Web Developer located in Madison, Wisconsin, United States. Please contact me if I can make your experience on my website better.

Shell Tutorials

Fixing Python’s “Python Eggs” Error

Let me first state this for the record: I am not a server guy. The closest I've ever gotten to compiling my own versions of code is "sudo port install ..." So when I decided to teach myself Python (creating simply database interaction, record listings, etc) and kept getting "500 Internal Server Error" messages, I thought I was doomed. I opened up the Apache error log and saw this:

MooTools Forge / GitHub Plugin Structure Shell Script

One thing I love about the MooTools Forge is that it requires a strict structure for its plugins i.e. requiring a README.md file, Source directory, etc. I've created a shell script that I can run that creates the directory structure and files required to add my plugin to GitHub and then the Forge.

Run PHP Files From the Command Line

I've been brushing up on my shell scripting lately. I just got a MacBook and never felt compelled to spend too much time with Cygwin. I'm learning quite a bit now but there are still some tasks that I'd need to accomplish sooner rather than later. I know how to accomplish the task using PHP so I've got that to my advantage. What's awesome is that I can quickly and easily run my PHP files from the command line.

Automate YouTube Video and MP3 Rips with Bash Shell Scripting

I love listening to music while I code. Listening to music keeps me from getting too frustrated about code that isn't working (yes, it happens) or frustrations brought on by hosting providers, clients, etc. What I'll do is listen to Pandora, hear a song I like, look up the song on YouTube, and save the YouTube link in a text file for later listening. Having to go to YouTube every time sucks so I set out to take YouTube videos linked in a text file and download them to my computer in MP3 format.

Creating Git Aliases

I create shortcuts for everything. I create variables which act as text shortcuts, shortcuts in TextMate to generate CSS/JS/HTML, and bash scripts so I don't have to type in the same commands over and over again. So why should version control software be any different? I commit and push religiously so I create Git aliases to save myself a few keystrokes.

PNGCRUSH a Directory of Images

One easy way of reducing website load time is by optimizing your images. PNG graphics are often more bloated than they need to be so using PNGCRUSH should be a no-brainer. PNGCRUSH's basic usage provides only single-file-crushage but I've created a script that crushes PNGs in directories recursively.

YouTube, FFMPEG, and MP3 Conversion

Yesterday I published a quick post about a basic MPEG -> FLV video conversion method using FFMPEG. Today I want to share another great usage of FFMPEG: stripping a video's audio and creating an MP3. As an added bonus, I'll be ripping the audio from a great YouTube video using youtube-dl, a python script with loads of options for downloading YouTube videos.

Convert Video Formats Using FFMPEG

Getting a video into the format you like can be important when providing media to your users on the web. Unfortunately your customer or video source may not give you media in the desired format. No problem: use the FFMPEG library to quickly and easily convert your media from and to any format you'd like.

Reduce PNG Graphic Size Using PNGCRUSH

Now that I'm knee-deep in MacBook I love working with command line applications. There's a certain beauty in the simplicity of using the console instead of a nice GUI. One task I use the console for often is reducing the size of PNG files using the powerhouse that is PNGCRUSH.

Use FURL to Retrieve Website Headers

It's important to know what headers your website and its files are communicating. For example, if your website is providing a 404 status, you're probably streaking toward your computer to fix the problem. Using the FURL library, you may retrieve website headers from the command line.

Older posts »