Securing Filezilla

As you may or may not know, Filezilla, the extremely popular FTP client, stores all of your FTP passwords in plain text on your hard drive. While I strongly disagree with this practice, I also understand that there are reasons not to do so. It would be really nice to have some sort of option to encrypt the passwords, but I don’t see that happening any time in the near future.

There are actually multiple levels of danger in using Filezilla (and, presumably, many other FTP clients). Unlike a Web browser, where, if you choose not to use the password manager none of your passwords are stored; Filezilla still stores all of the details from your most recent connection in a file called filezilla.xml and all of the details from your 10 most recent connections (at least, the ones you make by typing the information into the Filezilla interface; which is the only way to connect if you are not using the Site Manager) in a file called recentservers.xml, even if you choose not to use the Site Manager. These are plain old XML files with all of the information stored in plain, non-encrypted text. The format of the entries looks similar to the following.

Read More
iCal Files for Single Google Calendar Events

Over the past few months, I have been going round-and-round trying to figure out how to link to individual events in a Google Calendar, allowing visitors to add the event to their own calendars. Google does a nice job of providing functionality to add an event to your own Google calendar, but they don’t seem to offer any functionality to add an event to other calendars.

Google does, however, provide a link to an iCal file for each calendar’s feed; which allows you to add the calendar itself to your own calendar program (Outlook, etc.). The problem with that, obviously, is that, instead of adding a single event (maybe a concert or conference you want to attend, a public meeting, etc.), it adds all of the events from that calendar.

Read More
PHP: Stepping Through Arrays

I’ve posted a few articles about working with arrays in PHP over the past few years. I have posted information about adding and replacing elements in arrays; searching for items in arrays; and even a general post about handy array-related functions in PHP. I’m back again with a few more handy functions.

In PHP, you can obviously loop through arrays pretty easily by using a foreach() loop, but did you know you can actually step through arrays manually? PHP offers a handful of functions to do just that.┬áLet’s take a look at those functions, and how you might be able to use them.

Read More
WordPress: Adding Some Class to Meta Boxes

For WordPress plugin developers, the metabox API generally proves to be invaluable. Meta boxes allow you to organize various bits of information, groups of options and more into nice, attractive, collapsible boxes rather easily. What’s more, these boxes can be dragged around the screen and reorganized without much hassle. However, one thing that you can’t do with meta boxes is to assign additional CSS classes to them.

However, in WordPress 3.2, you will be able to do just that. WordPress 3.2 will introduce a brand new filter that allows you to modify the list of classes that are applied to a meta box. In order to use it, you’ll need to know the slug of the page on which the meta box is being displayed and the ID of the meta box.

Read More
Adding a Bit of Workflow to WordPress

As much as I love WordPress, one of the areas it really lacks is workflow. There are three basic statuses for posts (draft, pending review and published), but there’s very little difference between “draft” status and “pending review.” When a post is saved as “Pending for review”, nothing happens automatically. No email messages are dispatched to any of the site’s editors or administrators, no special, obvious flags fly within the admin area, etc. It might as well just be a “draft” for all intents and purposes. The idea behind creating the “pending review” status was to allow editors and administrators to tell the difference between an in-progress draft and a draft that was ready to be published, but that seems to be about it.

Read More
Listening While Coding

One of my Twitter friends retweeted a link to a post of the “Top 5 Coding Albums Of All Time” earlier (with his own comment that he’s more of an Op Ivy type of guy), and it got me thinking. What would my top 5 coding albums of all time look like? I’m not really sure how to answer that question (I’ve never been very good at creating “top 5″ or “top 10″ lists, because I am never able to shave things down to such a small number), but I do know that none of the five listed on that blog post would be on my list.

Read More
Music Services & Band Names – A UI Nightmare?
Search for Beloved in iTunes

In this image, I’ve used different color outlines to differentiate between the 3 different artists using the name “Beloved”

Recently, as I’ve been using my Zune Pass more and more, I’ve discovered a bit of a quagmire when it comes to usability, user experience (UX) and user interface (UI) design. What should music services like Zune and iTunes do about bands/artists that use the same name? How do you differentiate between very different artists without making the UI and/or UX even less usable than it was before?

The Problem

For instance, if you open up iTunes or Zune and search for the band “Beloved”, you will find results from 3-4 completely different artists that all use that same name (Zune shows albums by 4 different artists; iTunes shows albums by 3 different artists using the artist name “Beloved (U.S.)” instead of just “Beloved”). As a UI/UX designer, how would you propose that these music services differentiate those artists?

Read More
Amazon Fail?

Today, Amazon unleashed a (fame) monster that it seems unable to control. For one day only, Amazon is selling the mp3 version of the new Lady Gaga album (all 14 songs, plus a PDF booklet) for $0.99. The sale seems to have taken the Web by storm, and it’s shown just how fragile Amazon’s download service could be.

Read More
What’s New With HTML5, CSS3 and JavaScript?

Angry Birds Beta for ChromeAlthough we are still a ways away from being able to use HTML5 and CSS3 to their full potential, some really neat things are being done with them right now. In case you missed the news last week, a new, Web-based version of the wildly popular game Angry Birds was unveiled. For the most part, that application is built using HTML5 and JavaScript (relying heavily on the new <canvas> element and all of its power).

There was some minor controversy over the game, after it was discovered that it still requires Flash in order to play the game (to produce the sounds and music for the game rather than using HTML5 audio), but there are some potentially valid reasons for that.

Read More
Comments in HTML5

As we’ve discussed on this blog in the past, HTML5 introduces a lot of new elements that are intended specifically to imply semantic information. One of the elements being introduced is the <article> element.

For the most part, the <article> element is supposed to denote a block of information that can stand on its own (essentially, the main content of the page or post). When developing a blog template. The spec currently describes the <article> element with the following verbiage:

Read More