Friday, November 23, 2007

Turducken: Slaughter with Laughter

It's been a while. I switched from public education to a private company back in March and haven't had the time to write. I've gone through some life changes recently, and in short I will have more time to write for Free Software Magazine, compose technical articles on PHP development, and much more. I will back-date some content, mostly photography related. Thank you for sticking around, I appreciate it.

Turducken

I made a short, twisted video about what, why and how my family made a Turducken, a turkey stuffed with duck stuffed with chicken. A veritable avian Matryoshka tsunami of culinary urban legend, few have attempted to create this carnage loaf.

Monday, March 19, 2007

Syracuse St. Patrick's Day Photos

Photography

On Saturday, March 17th, I attended the St. Patrick's Day Parade in Syracuse. I was experimenting with the Nikon N70, and I did my best to put it to good use.

You can also view the set of 60 photos as a slideshow.

Consolidation

My apologies for my SAMPP entry; it was way, way too long. I've consolidated it on my web host using the dojo toolkit to make tabs. You can view the amended version at theconfluence.org/projects/sampp .

Thursday, March 8, 2007

Compiled SAMPP build instructions

I was recently asked to do create and document a containerless configuration of a Solaris 10 web server with Apache 2.2.4, MySQL 5.0.33, PHP 5.2.1, and Perl 5.8.7. Apache, MySQL, and PHP have complete compilation instructions. I will include the necessary configuration files (Apache in particular; built from scratch) or modification instructions.

Notes:

  1. This instructions assume that Solaris 10 is already installed and configured.
  2. These instructions assume you're root.
  3. Apache includes a self-signed SSL certificate, user directories, mod_perl, authnz-ldap, server-status and daily log rotation.
  4. I was requested to consolidate everything web related into /web for ease of administration and backup.
  5. This is not a fully optimized build, as there is no universal configuration that will work equally well for everyone. Therefore, read the manual and tweak where necessary (especially Apache).
  6. Additional Applications
    1. AWStats 6.6 with automatic log analysis
    2. phpMyAdmin 2.9.2 for MySQL administration

These instructions are culled and edited from my notes. Please let me know if I got something out of order or left something out.

Notes

LDAP .htaccess files (you'll have to tweak the LDAP URL for your environment)

AuthName "Password"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPURL ldap://ldap:389/ou=people?uid
AuthzLDAPAuthoritative off 
require ldap-user "username"

Link

theconfluence.org - Compiled SAMPP build instructions

Wednesday, March 7, 2007

Jon's best practices for servers

This is a consolidation of general best practices for servers I've learned and developed over the years. Feel free to share some of your own as well!

  1. Never use telnet or ftp - use ssh or sftp instead.
  2. Never use HTTP with anything that could compromise the integrity of your system.
  3. Never login as root.
  4. If you install it, keep it up to date.
  5. If you don't use it, remove it.
  6. Always check the changelog before updating.

Host Naming Conventions

There are different philosophies for hostname conventions. In my experience, using a common theme and context adds logic to a potentially complicated network.

At home, I use spells from old Infocom interactive fiction games as my naming convention. While it may seem silly, my home network is small enough that I can remember the purpose of machines, and I've got a large corpus of potential names. I've also seen others use names of characters from television, movies or books. Use your imagination!

At work or in a shared environment, I use more descriptive names, such as web-dev-01 for a development web server. Security through obscurity causes more headaches than it's worth as it makes it more difficult for others to understand the layout, and the illusion of security that comes from giving a machine a wacky name will not protect you from malicious users.

Either way, once you've developed a schema, stick with it; mixing naming conventions just makes things more difficult.

Sunday, February 18, 2007

Crazy Costume Race 2007 Video

On Saturday, February 3rd, YP Voice of Oswego hosted its second annual Crazy Costume Race, part of the Warm Up Oswego Festival. I filmed the event and edited the video. Three teams, three sleds, one block. Who will win?

Monday, February 12, 2007

Making PDFs with free software and Wii are on the way

Making PDFs with free software

Recently, Adobe announced that it intends to release the Portable Document Format (PDF) 1.7 specification for publication by the International Organization for Standardization (ISO). Also, the editorial in Issue 16 of Free Software Magazine Paper is dead - has PDF followed suit? makes a case about the perceived decline of the PDF format. In my opinion, PDF isn't dead, so this week I've compiled several techniques for making PDF files with free software.

My intention for the postscript was to emphasize content and not the delivery mechanism, and is in subtle defense of FSM dropping their PDF version of their issues. I feel that the medium doesn't matter as much as the message, but one still should take care in selecting the proper delivery method. The Making PDF files entry has done well on digg.com - 851 diggs so far, which I appreciate.

Wii are on the way

My brother, who lives on the west coast, has sent a belated Christmas present after insisting that I shouldn't give him anything this year... a check for a Nintendo Wii. I'm floored; it's an incredible gift, and I really, really appreciate it. So far, no store has any Wiis in stock (but they do have several PS3s collecting dust), but I'll keep trying. Alex, thank you! This really means a lot to me. I will be driving out sometime this summer to visit.

HDR Chernobyl Photos

I highly recommend reading Trey Ratcliff's entry Nuclear Winter in Chernobyl, a description and HDR photo tour of the reactor and Pripyat. It features beautiful, high resolution and haunting imagery of the abandoned power plant, ferris wheel, apartment buildings and playgrounds. If you just want to see the slideshow, they're hosted on flickr.

Monday, February 5, 2007

Unlocking your iPod's potential and building life skills with free software

Managing your iPod with free software

In the end of December of 2006, I wrote my first article for Free Software Magazine. It was accepted, and it was published today in Issue 16.

While iTunes is a powerful application, it does have its limitations, mostly stemming from both Digital Rights Management (DRM) restrictions and the Recording Industry Association of America’s (RIAA) interest in preventing unauthorized copying of music, regardless of fair use and personal flexibility. The free software community believes that the ability to freely copy content you own between your iPod and a computer is a right, not a privilege. I discuss how to fully manage the content on your iPod using completely free software in Managing your iPod without iTunes.

Using free software to build professional and life skills

I've found that many of the skills I've developed using free software and just plain "doing it myself" has been useful in my professional endeavors. This week at FSM, I considered some of the more abstract fringe benefits of using free software in Using free software to build professional and life skills.

Pikmin 2

I've been looking for good games for the GameCube, and this week I've discovered that Pikmin 2 is a joy to play. You play as two tiny aliens followed by a a crowd of eager-to-please creatures that look and act like friendly carrots. You're on Earth, trying to search out objects that can be used to pay back a loan and save your company. As your company is trying to market the objects, they come up with marketing names, such as "Sunseed Berry" for a strawberry, "Director of Destiny" for a compass, and "Quenching Emblem" for a 7-up bottle cap. The difficulty and learning curve ramp up very appropriately, and overall it's just fun.

Now, if I can wrap my head around Killer 7...

Monday, January 29, 2007

Critiquing the Ubuntu Installer for Windows, Autism

Critiquing the Ubuntu Installer for Windows

My latest entry at FSM is about the Ubuntu Installer for Windows, install.exe. In short, it’s a way to install Ubuntu onto the same file system as Microsoft Windows without repartitioning your drive. Justifications include minimizing the risk of data loss during repartitioning, a more user-friendly installation process, and eliminating the need of burning a CD to install. I analyze the need and justification in Do we need an Ubuntu installer for Windows? This is my most popular FSM entry to date; it made the Digg front page and currently has nearly eleven thousand views.

Short Film about Autism

I highly recommend watching In My Language, a beautifully crafted 8'35" video by an autistic that challenges your perspective and prejudices. It's one of the most powerful pieces of film making I've seen in a very long time, and I applaud the author both for their bravery and for the excellent presentation and editing.

Nine Inch Nails - Beside You in Time DVD

After missing a concert last year due to a scheduling conflict, I've been awaiting the Nine Inch Nails - Beside You in Time DVD, which Amazon has for $13.99 pre-order. That's an excellent deal for live concert footage of the [with_teeth] tour.

Wednesday, January 24, 2007

tagverse launch, State of the Union analysis

I've cleaned up, formalized and published my application that I used to analyze Bush's speech on Iraq.

Ever needed to analyze a document and visualize the most important terms? Enter a plain text document with at least three paragraphs, and tagverse will generate a tag cloud from extracted key terms.

I will be making the source code available in the near future.

State of the Union analysis

I provided tagverse with the text of Bush's 2007 State of the Union address.

Compare this result to the Iraq speech; note the inclusion of "diplomacy", and the avoidance of "sectarian" and "nuclear weapons". While this analysis is purely algorithmic and arbitrary, you can use it to see trends, especially in this sort of context.

Monday, January 22, 2007

Vanishing Knights - an adrenaline-filled orgy of muscle car and guitar rock

I've been listening to British rock band Muse's Black Holes and Revelations (2006) on my commute, and it's gotten stuck in my head. The final song, Knights of Cydonia is a grandiose, bombastic and triumphant progressive-rock cacophony. Bellamy croons, “No one's gonna take me alive... the time has come to make things right... you and I must fight for our rights... you and I must fight to survive.”

I really enjoyed the official video, which was done in the style of a post-apocalyptic old spaghetti western film. The over-the-top, bigger than life stylish combination of that song and visuals reminded me of Vanishing Point (1971); a film whose success derived mostly from its visceral feel and powerful sounds.

Vanishing Point is the ultimate car chase movie, starring Barry Newman and a 1970 Dodge Challenger R/T. Kowalski, a car delivery driver at the end of his rope, decides to drive at high speed from Denver to San Fransisco. Filmed in the desert, mountains and small towns throughout Colorado, Utah, and Nevada, the film features beautiful landscapes and powerful imagery. Kowalski continually evades the law to the delight of the public in the form of the last American hero.

I've been working on editing together a mashup over the last two weeks, maintaining the story line and themes of the film and closely following the song. I'm very pleased with the result; it's an exciting, six-and-a-half minute adrenaline-filled orgy of muscle car and guitar rock. I make no claims to the content; I merely edited things together.

EDIT: The audio was disabled by YouTube / lawyers, so despite my opinion that it was fair use, I have removed the video entirely.

Friday, January 19, 2007

Free desktop revolution, new domain and using ezSQL

Inspired by a recent experience, my latest entry at FSM offers my perspective on the question, has the free desktop revolution arrived? My wife's computer had hardware issues, so as a stop-gap I gave her an account on my Ubuntu desktop, then asked her about her experience.

I registered a new domain through DreamHost. They have very reasonable plans, starting at $7.95 a month, and I've used their services for several other sites that I've administered and had a positive experience working with them. My new site, the confluence is intended to be a collection of web applications that I've written and released to the public. Most programs will be released as GPL, as I believe fully in contributing to the community.

I'm working finishing a few applications; the tag cloud generator (name pending), eManiuplator (email address extraction, validation and list operations), eBrother (visualizes server usage), an email newsletter generator (name pending), and a service inspired by the old lowbrow.com site. The first three work, but need to be secured and cleaned up. The last two are in development.

I've discovered a new database class that assists in rapid application development; ezSQL v2.00. In their words, "ezSQL is a class that makes it ridiculously easy to use mySQL, Oracle8, SQLite (PHP), within your PHP script." It's got automatic query caching, built-in debugging functions, and works with Smarty. I really, really like the way it returns responses and the built-in functions are very useful. I suggest you give it a try.

Thursday, January 11, 2007

Finding Linux replacements for Windows software, developing with phpMyEdit

When discussing ways to switch to GNU/Linux, one of the biggest difficulties I've found is finding answers to the question, "What can I replace this program with?" It's completely understandable; people don't want to lose functionality. However, Googling for answers can easily lead to confusion and frustration if you don't have the background or knowledge to be able to differentiate between the wheat and the chaff. In my new entry for FSM, I discuss resources that can be used for Finding GNU/Linux replacements for Windows software.

Good news; the article that I wrote for Free Software Magazine has been accepted! Once it's published, I'll link to it here. I'm proud; it's my first real published article, not just an opinion, letter or article in a student publication.

Today, I've been going through my notes, snippets and ideas from the past few weeks and tried to catch up on some back entries (my apologies to the feed subscribers). I've posted everything chronologically, so if you look at the blog itself, it should sense.

Yesterday, I tried using phpMyEdit to develop a forms based front-end to a MySQL database. I've found it to be simultaneously useful, simple, complex, flexible, and limited. It allows for rapid development of CRUD (Create, Read, Update and Destroy) forms, which greatly reduces development time. However, when you want to use an advanced MySQL join or contextual input, you start to find a bit of roughness.

The documentation does a decent, but not thorough job of listing all the functionality. I'm particularly annoyed by the comment, "Note that the above example contains additional features..." yet there are no instructions on how to use the new functionality anywhere else in the manual.

Another issue I have with the documentation is the inclusion of code examples that only apply to "future development" and not the current version... this sort of thing should be in the bug tracker, not the production documentation.

I've asked a question on how to do contextual input on their support forums, and if I get a response, I'll publish it here. Overall, I think phpMyEdit is a good free tool for PHP development.

Wednesday, January 10, 2007

Analyzing President Bush's Speech on Iraq with a Tag Cloud

In the build-up to President Bush's speech on Iraq, I've heard a lot of speculation on what the emphasis of the speech was going to be about, and how the content was going to be less rhetoric and catch phrases and more of a persuasive argument. Out of curiosity and inspired by the US Presidential Speeches Tag Cloud, I used an application I wrote using free tools and scripts that extracts key phrases and words from a document and represents the results as a tag cloud (weighted list). Here are the results of the tag cloud analysis of the transcript of the speech.

Background

One of my tasks as a programmer was to find a way to process a large body of text (committee suggestions), pick out key phrases or words that occurred more often, and display them in an easily understood format. However, if I just did a word count, then I'd get high occurrences of out-of-context nouns, adverbs and verbs, which wouldn't be useful.

Term Extraction

The Yahoo! Developer Network offers a very useful tool as part of their Content Analysis Web Services - Term Extraction. The service "provides a list of significant words or phrases extracted from a larger content." To use the service, you'll need a free Yahoo! Application ID. The only limit on the service is 5,000 queries per IP address per day, which for most users is more than sufficient. To get around some hosting limitations, I used the HTTP POST from PHP without cURL script from netevil.org

As the service provides a unique terms, I couldn't just submit the whole body of text, which would have resulted in a few key words and phrases occurring only once. I had to split the source text into individual paragraphs, submit each paragraph separately, and push each resulting term into an array.

Tag Clouds

A fairly recent innovation in web development has been the use of tag clouds. A tag cloud is an alphabetized way of visually representing the frequency of a word or phrase using font sizes that correspond to precedence, or some other similar emphasis. If a word or phrase occurs more often, it'll be displayed larger than the other members of the list. For more information and the history of tag clouds, read the wikipedia entry.

I combined the Term Extraction with a modified version of the excellent free PHP tag cloud generator from 15tags. The script just counts the occurrences of strings within an array and displays the top few items that occurred the most often in a tag cloud. You can adjust the number of items in the tag cloud; while I've displayed over 100 items, it works best with around 25-30.

Results

I took the committee suggestions, pasted them into the tool, pasted the result into a word processor, added a little formatting, and gave the printed document to my supervisor. She found the results useful and visually interesting; it a good tool for arbitrary analysis, and the resulting tag cloud could be used as the basis of a cover for the report. I think tag clouds are a useful method of visually representing the importance of a term, tag, or key words.

For fun, I also ran the application on some erotic literature and IRC logs. I won't share the results in public, but believe me, it's a hoot.

Monday, January 8, 2007

Protecting intellectual property

An unfortunate side effect of the "Wii-diculous" video is that it's become viral. Not in the way I'd like it to be, mind you... some individuals have downloaded the movie from either YouTube or GameTrailers, transcoded it, and uploaded the result to different sites. In the process, the content I authored loses the proper description and the link to my blog, gains watermarks, and is presented as someone else's content without credit. I find it particularly amusing that it's gone full circle; I found at least four different copies of the video with the same title on YouTube, which I had removed through their admirably fast and painless copyright infringement contact.

Now, I'm not trying to make money off of this. I'm just trying to make sure that the people who deserve credit for their work are acknowledged; myself, Ed, and Chris, along with the others named in the credits and my blog entry. I don't understand why people don't even check if a video is already there before uploading it themselves.

There's a difference between sharing content you've found and branding it as your own and implying ownership.

I've been contemplating a mash-up of a particular Muse song and a 1970's movie that I really enjoy. Trust me, there's a lot of bad mash-ups, and I don't want to make one more. I've planned it out in my head; following both the story line of the movie and the lyrics in a sequential manner, with the climax of each matching. Even the rough cut is making me giddy... but now I'm second guessing myself. Would it be hypocrisy if I published it on YouTube? I wouldn't be taking credit for the content, just the editing.

In a perfect world, I'd request the permission of both the movie studio and the record label, and they'd undoubtedly say no or ask for so much money that I couldn't afford it. However, there are thousands of mash-ups that survive without getting take-down notices. I could just post it and run the risk of having it removed... absolute worst case scenario, I'm fined, even if I was using it in a non-commercial context.

This is not an easy question... fair use vs. intellectual property vs. corporate interest.

Thursday, January 4, 2007

Usability, a wii-diculously large response, and GameCube modding

Happy New Year! Sleep is for the weak, so let's get back to business.

Have you ever found a new piece of software that sounds like it's the perfect match for your needs, only to get bogged down by bad documentation or a horrendous interface? Many people will quickly discard programs out of frustration caused by avoidable usability issues. Read about ways software developers can avoid disenfranchising potential users in my Free Software Magazine entry How usability inhibits good software.

The Wii-diculous video has gotten frighteningly popular; over 300,000 views on YouTube so far! I figured I'd get a few thousand hits... Ed, Chris and I are very pleasantly surprised by its success. We're currently planning a follow-up...

Reading over the comments on my entry about learning Ruby on Rails and using generated CRUD forms, I found a nice suggestion; phpMyEdit. It's an "instant MySQL Table Editor and PHP code generator." Thanks to Niraj for pointing it out! I'll take a look at it in the coming weeks.

I've been researching ways to mod my used GameCube... ultimately, I'd like to replicate the functionality that I have with my modded Xbox w/ XBMC; the ability to use home brew (network media player, emulators, Linux) and to play backups.

It looks to me like the easiest solution is to use a XenoGC 2.0 modchip ($15), buy a Gamebit screwdriver (about $8), and a replacement case (around $30) or top (around $20) so I can use full-size DVDs. Also, I should get a GameCube Broadband Adapter, which runs about $20 off eBay (unless I can find it locally).

I've learned a few things... Full-size DVDs apparently reduce the lifespan of the optical drive motor, but the exact amount is up in the air. Also, you can "make" your own Gamebit screwdriver by melting a pen for each screw, but I'd rather just buy the right tool rather than ruining a bunch of pens. Playback of backups is affected by the type of media; adjusting the potentiometer may resolve some skipping issues. Finally, while it's theoretically possible to hack an IDE hard drive into a GC, it's a square peg in a round hole.

However, the more I look at the GameCube homebrew scene, the more I'm second guessing whether or not I should do this. My GameCube is working just fine as a game playing device, and I don't mind having both a GameCube and an Xbox. I can't afford to replace it if I screw up. Oh well...