<?xml version="1.0" encoding="UTF-8"?>
<posts type="array">
  <post>
    <body>&lt;p class="normal"&gt;The new home of Madison&amp;#39;s Municipal Government is &lt;a href="http://gov.rosenet.org" target="_blank"&gt;http://gov.rosenet.org&lt;/a&gt;.&lt;/p&gt;&lt;p class="normal"&gt;&lt;img src="../uploads/gov-screenshot.jpg" alt="The new Borough of Madison Municipal Government website!" width="465" height="434" /&gt; &lt;/p&gt;&lt;p class="normal"&gt;Early this year, I started designing a new website for the Borough.&amp;nbsp; Our goal was to create a robust platform using open standards that could be built upon for years.&amp;nbsp; This first phase of the site introduces pages for all Borough Government entities (boards, commissions, departments, offices and committees) and one-page profiles for local businesses.&lt;/p&gt;&lt;p class="normal"&gt;The cornerstone of this platform is a Borough-wide database offering a common Events and Announcements system, as well as content management tools that allow Borough employees and local businesses to maintain their own pages with ease.&amp;nbsp; Collecting this content in a common, open platform will allow for great new features in the future.&lt;/p&gt;&lt;p class="normal"&gt;I hope to soon add XML feeds and integrate with other local websites.&lt;/p&gt;&lt;p class="normal"&gt;Besides the fresh look and feel, the biggest change is the new business directory.&amp;nbsp; While RoseNet continues to offer a business database maintained by volunteers, the new Government site enables local business owners to keep their own profiles up-to-date, while also allowing site administrators to easily monitor the content.&lt;/p&gt;&lt;p class="normal"&gt;This redesign replaces the legacy site, built in 1999, which offered terrific content but relied on proprietary standards that are no longer supported.&amp;nbsp; The first phase of the new platform, replicates all existing content, while adding powerful administrative tools for Borough employees and interactive business listings that will help support Downtown Madison.&amp;nbsp; Borough employees will now be able to maintain their online content in a fraction of time that used to be required.&lt;/p&gt;&lt;p class="normal"&gt;I&amp;#39;ll keep you posted on new features as they roll out.&lt;/p&gt;</body>
    <created-at type="datetime">2009-09-29T03:57:24Z</created-at>
    <id type="integer">6</id>
    <teaser>I'm proud to introduce the redesign of Madison's home page.  The new site focuses on accessibility, open standards, ease of use, and expandability for the future.</teaser>
    <title>Redesign of Borough of Madison Municipal Government Website Launches Today!</title>
    <updated-at type="datetime">2009-09-29T03:57:24Z</updated-at>
  </post>
  <post>
    <body>&lt;p class="normal"&gt;In my &lt;a href="4-iTunes-Playlist-Hacks-on-Windows"&gt;last post&lt;/a&gt; , I demonstrated some tricks to manipulate iTunes playlists by exporting them to text files.&amp;nbsp; It seems Apple has changed their text format in iTunes 8 just enough to break my system.&amp;nbsp; I&amp;#39;m working on a real solution, but in the meantime, here&amp;#39;s a work around to get the playlists back into the older format.&lt;/p&gt;&lt;p class="normal"&gt;First, you&amp;#39;ll need to download and install Notepad++, a free text editor available here:&lt;/p&gt;&lt;p class="normal"&gt;&lt;a href="http://notepad-plus.sourceforge.net/uk/site.htm" target="_blank"&gt;http://notepad-plus.sourceforge.net/uk/site.htm&lt;/a&gt;&lt;/p&gt;&lt;p class="normal"&gt;Next, you&amp;#39;ll need to open the new playlist format in Notepad++ and make some changes using the Find/Replace feature.&amp;nbsp; What&amp;#39;s great about Notepad++ is that you can insert special characters (like line returns) via Find/Replace.&lt;/p&gt;&lt;p class="normal"&gt;The new playlist format is still tab-separated values, but now songs aren&amp;rsquo;t placed on their lines.&amp;nbsp; Therefore, when you open the text file in Excel, you get one row with many, many columns of song information.&amp;nbsp; However, this is easily fixed by replacing &amp;quot;.mp3&amp;quot; with &amp;quot;.mp3\n&amp;quot; (just go to Search | Replace... or press Ctrl+H to bring up the window).&amp;nbsp; Make sure you change &amp;quot;Search mode&amp;quot; to &amp;quot;Extended&amp;quot; to make sure the special characters work.&amp;nbsp; Then just repeat the Find/Replace for every filetype in your playlist.&amp;nbsp; Personally, I only had to do this for .mp3 and .m4a. You&amp;#39;ll have to figure out whether you have any additional formats.&lt;/p&gt;&lt;p class="normal"&gt;&lt;img src="../uploads/notepadpp-findreplace.png" alt="Find/Replace in Notepad++" title="Find/Replace in Notepad++" width="492" height="330" /&gt;&lt;/p&gt;&lt;p class="normal"&gt;In the end you&amp;#39;ll be left with tab-separated values with one song per line.&amp;nbsp; Simply save the file, and suddenly you&amp;rsquo;re back in business with the hacks from my previous post.&lt;/p&gt;&lt;p class="normal"&gt;I&amp;#39;m going to put together a script that will automate some of these hacks.&amp;nbsp; I also did some quick Googling and noticed there are number of tools out there that accomplish similar things.&amp;nbsp; Let me know if you stumble on anything good.&lt;br /&gt;&lt;/p&gt;</body>
    <created-at type="datetime">2009-05-13T04:01:28Z</created-at>
    <id type="integer">5</id>
    <teaser>Here's a quick work around for working with playlists in iTunes 8 exported to text files.</teaser>
    <title>Playlists in iTunes 8</title>
    <updated-at type="datetime">2009-05-13T04:01:28Z</updated-at>
  </post>
  <post>
    <body>&lt;p class="normal"&gt;UPDATE:&amp;nbsp; These techniques no longer work &amp;#39;as is&amp;#39; in iTunes 8. It seems Apple has changed the format of its exported playlists.&amp;nbsp; I have a &lt;a href="../5-Playlists-in-iTunes-8"&gt;work around in my next post&lt;/a&gt; .&lt;/p&gt;&lt;p class="normal"&gt;&lt;em&gt;All these examples will assume you&amp;#39;re running Windows, but they should work just as well on Mac OS with only minor changes.&amp;nbsp; I also must remind you that it is illegal to share copyrighted music and that these techniques will not work if your songs have DRM copy protection (i.e. were purchased through the iTunes store prior to January 6, 2009).&amp;nbsp; Check out this &lt;a href="http://www.apple.com/pr/library/2009/01/06itunes.html"&gt;press release from Apple&lt;/a&gt;  if you don&amp;#39;t know what I&amp;#39;m talking about.&lt;/em&gt;&lt;/p&gt;&lt;p class="heading"&gt;Hack #1: Open Playlists in Excel&lt;/p&gt;&lt;p class="normal"&gt;&lt;img src="../uploads/itunes01.png" alt="Right click the playlist and choose &amp;quot;Export Song List...&amp;quot;" width="393" height="212" /&gt;&lt;/p&gt;&lt;p class="normal"&gt;To export any iTunes playlist, simply right click and choose &amp;quot;Export Song List...&amp;quot;.&amp;nbsp; You can then save a text file containing all your playlist information.&amp;nbsp; If you save this file to your desktop and double click it, you can see its contents in Notepad.&lt;/p&gt;&lt;p class="normal"&gt;&lt;img src="../uploads/itunes02.png" alt="You can view your playlist information in Notepad" width="375" height="173" /&gt; &lt;/p&gt;&lt;p class="normal"&gt;This mess of playlist information isn&amp;#39;t too useful in its current form.&amp;nbsp; iTunes allows you to import playlists from this file format (File &amp;gt; Library &amp;gt; Import Playlist...), but this only works if the filenames (including drive and folder path) are exactly the same.&amp;nbsp; For most situations, you&amp;#39;ll need more flexibility.&lt;/p&gt;&lt;p class="normal"&gt;This file looks confusing, but it&amp;#39;s actually very easy to manipulate.&amp;nbsp; In fact, if you open it in Excel (or another spreadsheet application), the data will be neatly parsed into columns.&amp;nbsp; (For the curious, this works because the file contains &lt;a href="http://en.wikipedia.org/wiki/Delimiter-separated_values"&gt;tab-separated values&lt;/a&gt; .)&amp;nbsp; To open in Excel, make sure you display &amp;quot;All Files&amp;quot; in the Open dialog box (see the highlighted drop-down box in the image below).&amp;nbsp; A wizard will pop up to help you import the file.&amp;nbsp; You can just click Finish since the default options are fine.&lt;/p&gt;&lt;p class="normal"&gt;&lt;img src="../uploads/itunes03.png" alt="1. Open the file in Excel; 2. Remove columns you don&amp;#39;t need" width="459" height="343" /&gt;&lt;/p&gt;&lt;p class="normal"&gt;Once in Excel, it&amp;#39;s easy to strip out the unnecessary information, which for our purposes is everything but the file names.&amp;nbsp; Saving the new file as &amp;quot;Text (Tab delimited)&amp;quot; will let you do some more work in Notepad.&lt;/p&gt;&lt;p class="heading"&gt;Hack #2: Copy Songs to a Folder&lt;/p&gt;&lt;p class="normal"&gt;This is a great trick to copy all song files in a particular playlist to another folder (for instance, on a thumb drive).&amp;nbsp; Again, I&amp;#39;ll remind you that you should only do this with music that isn&amp;#39;t copyrighted.&lt;br /&gt;If you followed the steps above, you&amp;#39;ll be left with a text file containing a list of song filenames with one on each line.&amp;nbsp; You can now use the Replace feature (Ctrl+H) to manipulate the file.&amp;nbsp; Click the Replace All button to quickly make major changes.&lt;/p&gt;&lt;p class="normal"&gt;Find what: C:&lt;br /&gt;Replace with: copy &amp;quot;C:&lt;/p&gt;&lt;p class="normal"&gt;Find what: .mp3&lt;br /&gt;Replace with: .mp3&amp;quot; e:\playlist&lt;/p&gt;&lt;p class="normal"&gt;&lt;img src="../uploads/itunes04.png" alt="Replace All... using Notepad" width="445" height="310" /&gt;&lt;/p&gt;&lt;p class="normal"&gt;You might need to run that second Replace multiple times if some of your files have extensions other than &amp;quot;.mp3&amp;quot; (such as &amp;quot;.aac&amp;quot;).&lt;br /&gt;Now you&amp;#39;re left with a file with a bunch of lines that look something like this: &lt;/p&gt;&lt;p class="normal"&gt;copy &amp;quot;C:\My Music\my-song.mp3&amp;quot; &amp;quot;e:\My New Playlist&amp;quot;&lt;/p&gt;&lt;p class="normal"&gt;Folks who have been around PCs for a long time will recognize this as a DOS command and our new file as a batch file.&amp;nbsp; Simply save this file with a &amp;quot;.bat&amp;quot; extension, double click the file, and Windows will automatically copy each of these files to your new folder.&amp;nbsp; Don&amp;#39;t be afraid of the black command line window that pops up.&lt;/p&gt;&lt;p class="heading"&gt;Hack #3: Transfer Playlists to Your New Computer&lt;/p&gt;&lt;p class="normal"&gt;I recently upgraded to Windows Vista and changed the location of where I store my music.&amp;nbsp; Using Replace in Notepad, it&amp;#39;s possible to update the filenames in your exported playlist.&lt;/p&gt;&lt;p class="normal"&gt;Find what: C:\My Old Location\&lt;br /&gt;Replace with: C:\My New Location\&lt;/p&gt;&lt;p class="normal"&gt;Then you can simply save the file and import the playlist back into iTunes.&amp;nbsp; Just go to File &amp;gt; Library &amp;gt; Import Playlist.&amp;nbsp; This saved me hours of trying to recreate some really long playlists.&lt;/p&gt;</body>
    <created-at type="datetime">2009-01-24T23:28:49Z</created-at>
    <id type="integer">4</id>
    <teaser>These easy tricks will help you import, export, copy, and move playlists around one or more computers.</teaser>
    <title>iTunes Playlist Hacks on Windows</title>
    <updated-at type="datetime">2009-05-13T04:02:28Z</updated-at>
  </post>
  <post>
    <body>&lt;p class="normal"&gt;I cringe every time I hear this done wrong, and it happens all the time on radio advertisements.&amp;nbsp; Let me set the record straight:&lt;/p&gt;&lt;p class="normal"&gt;If you&amp;#39;re reading the URL &amp;quot;nytimes.com/pages/world&amp;quot;, say, &amp;quot;nytimes dot com slash pages slash world&amp;quot;.&amp;nbsp; Never call either of those things a backslash.&amp;nbsp; It&amp;#39;s not only unnecessary, it&amp;#39;s wrong.&lt;/p&gt;&lt;p class="normal"&gt;I suspect the confusion about slashes stems from Microsoft&amp;#39;s use of the backslash in DOS, the popular operating system from the 1990s.&amp;nbsp; In filenames and paths, DOS used a backslash (\) to separate folder names.&amp;nbsp; For instance, a folder name might be &amp;quot;C:\DOS&amp;quot;, or &amp;quot;C colon backslash DOS&amp;quot;.&amp;nbsp; Unix systems didn&amp;#39;t use this convention, and that&amp;#39;s largely what the Internet is based on.&lt;/p&gt;&lt;p class="normal"&gt;Of course, in the DOS days, computers were unforgiving.&amp;nbsp; If you accidentally used a forward slash, things wouldn&amp;#39;t work.&amp;nbsp; Today, if you unnecessarily use a backslash in a web browser, your computer now knows enough to ignore you and do the right thing.&lt;/p&gt;&lt;p class="normal"&gt;Don&amp;#39;t believe me?&lt;/p&gt;&lt;p class="normal"&gt;&lt;a href="http://en.wikipedia.org/wiki/Slash_(punctuation)" target="_blank"&gt;http://en.wikipedia.org/wiki/Slash_(punctuation)&lt;/a&gt; &lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Backslash" target="_blank"&gt;http://en.wikipedia.org/wiki/Backslash&lt;/a&gt; &lt;/p&gt;&lt;p class="normal"&gt;And while I&amp;#39;m on the subject, you never have to say or type &amp;quot;http://&amp;quot;, and you almost never need the &amp;quot;www&amp;quot;.&amp;nbsp; Just say or type, &amp;quot;Google dot com&amp;quot;.&amp;nbsp; In fact, for popular sites, you rarely even need the &amp;quot;dot com&amp;quot;.&lt;br /&gt;&lt;/p&gt;</body>
    <created-at type="datetime">2008-11-12T03:05:17Z</created-at>
    <id type="integer">3</id>
    <teaser>The slash (/) that shares its key with the question mark is not a backslash.  It's a plain old forward slash, and should always simply be called "slash".  This is the same slash that you see in URLs.</teaser>
    <title>It's Not a Backslash</title>
    <updated-at type="datetime">2008-11-12T03:08:53Z</updated-at>
  </post>
  <post>
    <body>&lt;p class="normal"&gt;&amp;nbsp;&lt;br /&gt;&lt;img src="../uploads/002_fortune.jpg" alt="&amp;quot;You have the ability to analyse and solve any problem.&amp;quot;" width="500" height="375" /&gt;&lt;/p&gt;&lt;p class="normal"&gt;Weird.&amp;nbsp; I think I&amp;#39;m done studying.&amp;nbsp;&lt;/p&gt;</body>
    <created-at type="datetime">2008-10-09T05:16:06Z</created-at>
    <id type="integer">2</id>
    <teaser>After a long night of studying for an exam, I cracked open a leftover fortune cookie from last weekend.</teaser>
    <title>Good Fortune</title>
    <updated-at type="datetime">2008-10-09T05:17:40Z</updated-at>
  </post>
  <post>
    <body>&lt;p class="heading"&gt;1. Search Engine Optimization (SEO)&lt;/p&gt;&lt;p class="normal"&gt;Your position on Google is largely related to your PageRank (&lt;a href="http://en.wikipedia.org/wiki/PageRank" target="_blank"&gt;http://en.wikipedia.org/wiki/PageRank&lt;/a&gt;) versus that of your competitors. The only legitimate way to improve PageRank is to get plugs from high-quality sites.&amp;nbsp; While there are no magic web design tricks to send your site to top of search results, there ARE design practices that are sure to push you lower.&amp;nbsp; Therefore, it&amp;#39;s vital that your site adhere to some basic SEO principles that make your content available to Google:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Insist on text-based content and links&lt;/strong&gt;&lt;br /&gt;If you must have text in images for asthetics, try to duplicate the content or links as plaintext elsewhere.&amp;nbsp; At the very least, use ALT tags.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Use Google Webmaster Tools and Site Maps&lt;/strong&gt;&lt;br /&gt;(&lt;a href="http://www.google.com/webmasters/tools/" target="_blank"&gt;http://www.google.com/webmasters/tools/&lt;/a&gt;)&lt;br /&gt;Site Maps are simple XML documents that make it easier for Google&amp;#39;s engine to reach all of your pages.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Effective, Semantic HTML&lt;/strong&gt;&lt;br /&gt;Be sure to relevantly TITLE all of your pages, and take advantage of heading tags rather than using styled P&amp;#39;s.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Use Search-Friendly URLs&lt;/strong&gt;&lt;br /&gt;Google reads your URL.&amp;nbsp; &amp;quot;/article/Title+with+Keywords+Goes+Here&amp;quot; is way better than &amp;quot;article.php?id=342&amp;quot;.&amp;nbsp; If your site follows the Model-View-Controller (MVC) design pattern (through a platform like CakePHP or Ruby on Rails), then you get happy URLs for free.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;No Funny Business&lt;/strong&gt;&lt;br /&gt;Say no to invisible text, multiple entry pages, or questionable keyword loading.&amp;nbsp; Google knows these tricks and will punish you for them.&lt;/li&gt;&lt;/ul&gt;&lt;p class="heading"&gt;2. Open Architecture&lt;/p&gt;&lt;p class="normal"&gt;Not long ago, developers had to do everything from scratch.&amp;nbsp; However, in the last 4 years (specifically, since Ruby on Rails debuted in 2004), development frameworks and languages geared precisely for database-driven web applications have revolutionized the way we build dynamic websites.&amp;nbsp; By insisting your site runs on popular, open platforms, you won&amp;#39;t get locked in to specific product or contractor.&amp;nbsp; Today&amp;#39;s best practices for software design help keep your site flexible for the future, saving you money next time you need to make changes.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;MVC Architecture&lt;br /&gt;&lt;/strong&gt;(&lt;a href="http://en.wikipedia.org/wiki/Model-view-controller" target="_blank"&gt;http://en.wikipedia.org/wiki/Model-view-controller&lt;/a&gt;)&lt;br /&gt;I mentioned another advantage to this above, but I can&amp;#39;t say enough about this modular design approach.&amp;nbsp; MVC allows you to completely redesign the look and feel of your site without touching the code that controls your business flow and database.&amp;nbsp; Plus, since it&amp;#39;s a standard design pattern, other developers will be able to build on an existing site with minimal learning curve.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Open Soruce Software and Platforms&lt;/strong&gt;&lt;br /&gt;Given the options available in the open source world, it&amp;#39;s getting harder to make an argument for building on Microsoft&amp;#39;s ASP.NET, or, worse yet, a Solaris, ColdFusion (does that still exist?), or even Java.&amp;nbsp; Stick to Linux, MySQL (or SQLite for small sites), and Ruby on Rails or PHP with an MVC framework.&lt;/li&gt;&lt;/ul&gt;&lt;p class="heading"&gt;3. Accessibility&lt;/p&gt;&lt;p class="normal"&gt;Can you guess what percentage of your potential audience has an up-to-date browser on a desktop or notebook, a high-resolution display, Flash and Java plug-ins, and perfect vision?&amp;nbsp; You may never get the answer.&amp;nbsp; But why not have a website that&amp;#39;s accessible to a wide array of computers, web-enabled cell phones, the blind and colorblind, and people who have trouble reading tiny text?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Page Dimensions&lt;/strong&gt;&lt;br /&gt;Even though it&amp;#39;s almost 2009, your important content should still fit on a 1024x768 display without scrolling.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Don&amp;#39;t Take Plug-ins for Granted&lt;/strong&gt;&lt;br /&gt;If your visitors don&amp;#39;t have or don&amp;#39;t want Flash or Java, you better offer another way to access your content.&amp;nbsp; Also, remember that iPhones still don&amp;#39;t support Flash, which brings me to my next point...&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Mobile or Mobile-Friendly Versions&lt;/strong&gt;&lt;br /&gt;Try out your site on a web-enabled phone.&amp;nbsp; Is it usable?&amp;nbsp; iPhones, BlackBerrys and other smart phones are gaining popularity at a ridiculous rate, and it&amp;#39;s incredibly frustrating when sites don&amp;#39;t work (or don&amp;#39;t work well) on a mobile device.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Support Visual Impairments&lt;/strong&gt;&lt;br /&gt;All your navigation, titles, and content should ideally be plain old text.&amp;nbsp; If you use images for a logo or button, be sure to include ALT tags for screen readers for the blind.&amp;nbsp; Also, be mindful how you code your font sizes in CSS: specifying size in points will prevent most browsers from resizing the text for people who have trouble reading microprint.&amp;nbsp; Tell your web designer you want font sizes coded as percentages.&lt;/li&gt;&lt;/ul&gt;&lt;p class="heading"&gt;4. Content Management&lt;/p&gt;&lt;p class="normal"&gt;Finally, with the incredible bulk of open source tools available to web developers, there&amp;rsquo;s no reason your site shouldn&amp;rsquo;t include web-based content management.&amp;nbsp; Why?&amp;nbsp; Without an easy way to change content, you&amp;#39;ll have to go through your designer for every change.&amp;nbsp; At a minimum, you should be able to login to your website to make minor text changes.&amp;nbsp; However, for bit more of an investment, you could deploy a fully-featured content management system that supports adding and removing all sorts of content (including pages, images, and files), version control, and multiple users with various levels of access.&amp;nbsp; Of course, with power comes responsibility.&amp;nbsp; Given access to customize your site, you need to make sure you and your team are trained and understand how to modify content without undermining your site&amp;rsquo;s integrity.&amp;nbsp; Just because you can change something, doesn&amp;rsquo;t mean you should. &lt;/p&gt;</body>
    <created-at type="datetime">2008-10-04T14:15:17Z</created-at>
    <id type="integer">1</id>
    <teaser>Make sure your site follows these best practices to avoid wasting money and losing visitors.</teaser>
    <title>4 Things to Demand from Your Web Designer</title>
    <updated-at type="datetime">2008-10-04T14:27:29Z</updated-at>
  </post>
</posts>
