<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>&#9733; bcdef.org &#9733;</title>
	<atom:link href="http://bcdef.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://bcdef.org</link>
	<description>a blog about flash and the web</description>
	<lastBuildDate>Sun, 30 Jan 2011 01:45:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>iTunes Multi-Genre Tagger now on Github</title>
		<link>http://bcdef.org/2011/01/29/itunes-multi-genre-tagger-now-on-github/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=itunes-multi-genre-tagger-now-on-github</link>
		<comments>http://bcdef.org/2011/01/29/itunes-multi-genre-tagger-now-on-github/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 01:44:59 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Miscellany]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=107</guid>
		<description><![CDATA[Just a quick note to announce that iTunes Multi-Genre Tagger&#8217;s source is now on Github. In case any of you would like to fork and solve my Gem.use_paths conundrum I&#8217;d be much obliged!
]]></description>
			<content:encoded><![CDATA[<p>Just a quick note to announce that iTunes Multi-Genre Tagger&#8217;s source is <a href="https://github.com/bdefore/iTunes-Multi-Genre-Tagger">now on Github</a>. In case any of you would like to fork and solve my Gem.use_paths conundrum I&#8217;d be much obliged!</p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2011/01/29/itunes-multi-genre-tagger-now-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OGG in Flash? Yes you can. Now how about WMA?</title>
		<link>http://bcdef.org/2009/05/13/ogg-in-flash-yes-you-can-now-how-about-wma/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=ogg-in-flash-yes-you-can-now-how-about-wma</link>
		<comments>http://bcdef.org/2009/05/13/ogg-in-flash-yes-you-can-now-how-about-wma/#comments</comments>
		<pubDate>Thu, 14 May 2009 03:16:50 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Alchemy]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[OGG]]></category>
		<category><![CDATA[WMA]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=79</guid>
		<description><![CDATA[Working with audio can be pretty limiting in the Flash Player. There&#8217;s a multitude of audio formats out there, but heretofore the only native support is for MP3 and AAC (the latter arriving only as recently as the beta releases of Flash Player 9, so long as the file has been encoded in the correct [...]]]></description>
			<content:encoded><![CDATA[<p>Working with audio can be pretty limiting in the Flash Player. There&#8217;s a multitude of audio formats out there, but heretofore the only native support is for MP3 and AAC (the latter arriving only as recently as the beta releases of Flash Player 9, so long as the file has been encoded in the correct fashion.)</p>
<p>This leaves out a number of still-popular formats, particularly OGG, WMA, and Real. WMA is a common format for those who encode audio with Windows Media Player (as well as many streaming online radio stations). While Real is fading from view, OGG continues to grow in popularity, particularly due to the fact that it is open-source and requires no licensing fees to broadcast.</p>
<p>Fortunately we can add another format to the list. Adobe&#8217;s labs release of <a href="http://labs.adobe.com/technologies/alchemy/">Alchemy</a> allows us to compile C/C++ code, with a bit of tweaking, into a precompiled SWC file that can then be accessed from ActionScript. The sample library includes an OGG codec, which you can use either directly or within a wrapper class <a href="http://mauft.com/2009/627/alchemys-ogg-decoder-for-actionscript-3">recently published by Maurice Zarzycki</a>. This makes playing back OGG files as simple as:<br />
<pre><code>
oggDecoder = new OggRadio(yourUrl);
oggDecoder.play();
</code></pre><br />
While playing OGG files does appear to be more CPU intensive than MP3, I&#8217;m impressed for its stability; I&#8217;ve yet to find an OGG file it couldn&#8217;t handle.</p>
<p>This opens the debate as to what other C++ libraries might be of use in SWF or AIR. Along the lines of audio, there is still the <a href="http://en.wikipedia.org/wiki/Windows_Media_Audio">WMA format</a>, which though propriety technology of Microsoft, has an open-source codec, libwma, developed by <a href="http://www.ffmpeg.org/">FFmpeg</a> and further reworked into <a href="http://www.rockbox.org/twiki/bin/view/Main/SoundCodecWMA">SoundCodecWMA</a> by the <a href="www.rockbox.org">Rockbox</a> team. How difficult it would be to translate this into Flash Player functionality using Alchemy to build a SWC?</p>
<p>Any takers?</p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2009/05/13/ogg-in-flash-yes-you-can-now-how-about-wma/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>How to link SWC files to a TextMate Flex project</title>
		<link>http://bcdef.org/2009/05/13/how-to-link-swc-files-to-a-textmate-flex-project/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-to-link-swc-files-to-a-textmate-flex-project</link>
		<comments>http://bcdef.org/2009/05/13/how-to-link-swc-files-to-a-textmate-flex-project/#comments</comments>
		<pubDate>Wed, 13 May 2009 19:55:02 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Miscellany]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=72</guid>
		<description><![CDATA[I was recently asked how to compile using TextMate when you have precompiled SWC dependencies. This is a very common workflow but it&#8217;s unfortunately not as automatic as dropping them in your &#8217;src&#8217; directory. This is how to resolve the issue if you&#8217;re working with a folder structure built with TextMate&#8217;s Flex bundle (via File [...]]]></description>
			<content:encoded><![CDATA[<p>I was recently asked how to compile using TextMate when you have precompiled SWC dependencies. This is a very common workflow but it&#8217;s unfortunately not as automatic as dropping them in your &#8217;src&#8217; directory. This is how to resolve the issue if you&#8217;re working with a folder structure built with TextMate&#8217;s Flex bundle (via File &gt; New From Template &gt; Flex &gt; Project)</p>
<p>There&#8217;s a few ways to handle this. The quick way is to ensure that any SWC&#8217;s you use on any project are in your SDK&#8217;s frameworks/libs directory and that when mxmlc is run from the command line it runs from this SDK directory.</p>
<p>There&#8217;s two drawbacks to this method, however. One is that if you ever update your SDK you&#8217;ll have to migrate the SWC&#8217;s over manually (when it can often be unapparent which SWC&#8217;s are third-party and which are part of the SDK). You&#8217;d also need to have a redundant copy of SWC&#8217;s in each SDK you use (say you&#8217;re trying out both Flex 3 and Flex 4). Secondly, if you work with source control then there are code dependencies which reside outside the project folder, which is not ideal for anyone else that&#8217;s trying to collaborate with you, nor yourself if you&#8217;re trying to work on another machine. You could include your SDK in the source control, but this is not as compact a solution as sync&#8217;ing with the project folder itself.</p>
<p>So say we want to put all dependent SWC files in a &#8216;libs&#8217; directory parallel our &#8217;src&#8217; directory, how do we do it?</p>
<p>To solve this, and potentially other future dilemmas, you really should familiarize yourself with the TextMate Bundle Editor (Bundles &gt; Bundle Editor &gt; Show Bundle Editor). Notice how there is no &#8216;Build&#8217; option in the Flex bundle? This is because the Flex bundle also uses elements from the ActionScript 3 bundle. For example, if in the ActionScript 3 bundle you remove the keyboard shortcut for &#8216;Build&#8217; and then change the &#8216;Build (mxmlc)&#8217; keyboard shortcut to Cmd-B then you&#8217;ll remove a keystroke from your build process even in Flex projects. This is something I&#8217;ve personally done as I use mxmlc rather than the default Ant script to build. Remember to Bundles &gt; Bundle Editor &gt; Reload Bundles after making any changes.</p>
<p>But back to the issue at hand, open up Flex &gt; Project &gt; Project-config.xml. You&#8217;ll notice this is the schematic of a file which is created automatically when you create an Flex 3 project. Unfortunately, the Project-config.xml schematic in the Flex bundle lacks these two sample nodes that are in the ActionScript 3 bundle. These are:</p>
<p><pre><code>
&lt;!-- Example library linkage --&gt;

&lt;!-- for swc&#039;s
&nbsp;&nbsp;&lt;library-path append=&quot;true&quot;&gt;
&lt;path-element&gt;../lib/bin/&lt;/path-element&gt; &lt;/library-path&gt; --&gt;

&lt;!-- for src
&lt;source-path append=&quot;true&quot;&gt;
&lt;path-element&gt;../lib/src/&lt;/path-element&gt; &lt;/source-path&gt;
--&gt;
</code></pre></p>
<p>This file acts as a project-level override to the general configuration file found in the SDK directory. Close the bundle editor. You&#8217;ll want to add the following to your project&#8217;s configuration xml which lives in &#8217;src&#8217;:</p>
<p><pre><code>
&lt;library-path append=&quot;true&quot;&gt;
&nbsp;&nbsp;&lt;path-element&gt;../libs/&lt;/path-element&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/library-path&gt;
</code></pre></p>
<p>Now you can create a new directory named &#8216;libs&#8217; parallel to &#8217;src&#8217; and drop into here all SWC files that your project depends on. Save the configuration file and you should be able to build. Now anyone with the Flex SDK will be able to save your project directory locally and jump right into compiling</p>
<p>You can also add any other project-specific compiler instructions in here.  More information on your compiler switches options are <a href="http://flexstuff.googlepages.com/FlexCompilerOptions.html">here</a>. For example, during a recent project I had a lot of unimportant warnings being fired with each compile so I was able to silence them with:<br />
<pre><code>
false
</code></pre></p>
<p>HTH.</p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2009/05/13/how-to-link-swc-files-to-a-textmate-flex-project/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Euro2008.com Python Image Scraper</title>
		<link>http://bcdef.org/2009/04/21/euro2008com-python-image-scraper/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=euro2008com-python-image-scraper</link>
		<comments>http://bcdef.org/2009/04/21/euro2008com-python-image-scraper/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 23:15:36 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Data Mining]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=49</guid>
		<description><![CDATA[Mind the cobwebs. So while cleaning house to better organize my code library today, I stumbled across a project I&#8217;d taken on during a day between jobs last year. I think I had some grand idea of writing up something more elaborate on it, but that never happened. Regardless, it might be of use to [...]]]></description>
			<content:encoded><![CDATA[<p>Mind the cobwebs. So while cleaning house to better organize my code library today, I stumbled across a project I&#8217;d taken on during a day between jobs last year. I think I had some grand idea of writing up something more elaborate on it, but that never happened. Regardless, it might be of use to someone so I thought I&#8217;d post here.</p>
<p>The basic tenet was that the euro2008 website carried some engaging caricatures of the major players for the football tournament, and I had the urge to download them all.</p>
<p><a href="http://bcdef.org/blog/wp-content/ned_johnheitinga.jpg"><img title="ned_johnheitinga" src="http://bcdef.org/blog/wp-content/ned_johnheitinga.jpg" alt="" width="237" height="325" /></a><a href="http://bcdef.org/blog/wp-content/fra_claudemakelele.jpg"><img title="fra_claudemakelele" src="http://bcdef.org/blog/wp-content/fra_claudemakelele.jpg" alt="" width="237" height="325" /></a></p>
<p>Rather than try to save them all manually, I figured it&#8217;d be instructive to learn how to build a Python script to do it for me. In short time I found a few libraries that eased the process.Â The code ended up being nice and tight. There might be some dependencies &#8211; I think you&#8217;ll need <a href="http://www.crummy.com/software/BeautifulSoup/">Beautiful Soup</a> at the least &#8211; but I just checked it again and it still works here on Python 2.5.1.</p>
<p>You could tweak it toward any number of ends, not just saving images off the web but for also data mining or other purposes.Â Or you could just run it locally and get lots of swank portraits.</p>
<p>As you will, then:  <a href="/downloads/retrievecaricatures.py">retrievecaricatures.py</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2009/04/21/euro2008com-python-image-scraper/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Algorithmic crows (and the like)</title>
		<link>http://bcdef.org/2008/09/10/algorithmic-crows-and-the-like/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=algorithmic-crows-and-the-like</link>
		<comments>http://bcdef.org/2008/09/10/algorithmic-crows-and-the-like/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 03:39:49 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Miscellany]]></category>
		<category><![CDATA[Processing]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=31</guid>
		<description><![CDATA[It&#8217;s a shame I&#8217;m only coming across this now, but better late than never. This recording, from FITC &#8216;08 Toronto, is a really inspiring take on how Robert Hodgin has used Processing to create some really amazing visual displays. He takes much of his inspirations from Perlin Noise, algorithmic repetition, and user-interactivity. If you&#8217;ve updated [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a shame I&#8217;m only coming across this now, but better late than never. This recording, from FITC &#8216;08 Toronto, is a really inspiring take on how <a href="http://www.flight404.com/blog/">Robert Hodgin</a> has used Processing to create some really amazing visual displays. He takes much of his inspirations from Perlin Noise, algorithmic repetition, and user-interactivity. If you&#8217;ve updated to the newest iTunes 8.0, you&#8217;ll see his work in the vastly improved visualizer.</p>
<p>EDIT: Unfortunately, it&#8217;s using an autoplaying video. For the sake of sanity, I&#8217;ve taken the embed out but you can click <a href="http://www.barbariangroup.com/posts/843-robert_spoke_at_fitc_about_processing">here</a> to see it.</p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2008/09/10/algorithmic-crows-and-the-like/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setting up TextMate for SWF compiling and Terminal trace output</title>
		<link>http://bcdef.org/2008/05/30/setting-up-textmate-for-swf-compiling-and-terminal-trace-output/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=setting-up-textmate-for-swf-compiling-and-terminal-trace-output</link>
		<comments>http://bcdef.org/2008/05/30/setting-up-textmate-for-swf-compiling-and-terminal-trace-output/#comments</comments>
		<pubDate>Fri, 30 May 2008 22:54:12 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Miscellany]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=30</guid>
		<description><![CDATA[If you&#8217;re an OS X developer, chances are high that Eclipse really cramps your style. But don&#8217;t feel married to Flex Builder just because you want to export SWF files. My preferred IDE for the last year has been to use TextMate in combination with the Terminal for trace outputs. Long overdue, here&#8217;s my dangerously [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re an OS X developer, chances are high that Eclipse really cramps your style. But don&#8217;t feel married to Flex Builder just because you want to export SWF files. My preferred IDE for the last year has been to use TextMate in combination with the Terminal for trace outputs. Long overdue, here&#8217;s my dangerously concise checklist of how to set this up for yourself:</p>
<ul>
<li>Download the <a href="http://www.adobe.com/support/flashplayer/downloads.html">debug version of the Flash Player</a> (you should see &#8216;Debugger&#8217; in the context menu of any SWF you right click upon if you have the debug player). Note as of this writing there is no publicly available Flash Player 10 debug player yet &#8211; you&#8217;ll need to stick with FP9 for now.</li>
<li>Download and install <a href="http://www.macromates.com">TextMate</a>.</li>
<li>To setup command-line compiling, install the <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3">Flex SDK</a>, or if you already have Flex Builder installed just set up your .bash_profile&#8217;s PATH to include &#8216;/Applications/Adobe\ Flex\ Builder\ 3/sdks/3.0.0/bin&#8217;. If all&#8217;s in order, you should get a positive response typing &#8216;mxmlc -help&#8217; from the command line. If you&#8217;re not familiar with how to set up your .bash_profile, there&#8217;s plenty of sites with <a href="http://www.macdevcenter.com/pub/a/mac/2004/02/24/bash.html">a little background on bash and how to do this</a>.</li>
<li>In order to trace debug and exceptions to your Terminal, you&#8217;ll need to grant access to the player. This process is obscure and esoteric, but do it once you&#8217;ll be set. If not already there, create a text file named &#8216;mm.cfg&#8217; in /Library/Application Support/Macromedia/ and enter the following:<br />
<pre><pre>
ErrorReportingEnable=1
TraceOutputFileEnable=1
</pre></pre><br />
Remember to quit all browsers and restart after making this change.</li>
<li>Now we&#8217;ll equip TextMate to be AS/MXML savvy. Leopard has Subversion pre-installed, which we&#8217;ll use to download the newest bundles from Macromates. Copy/paste the following into Terminal:
<p><pre><pre>
cd ~/Desktop
svn co http://macromates.com/svn/Bundles/trunk/Review/Bundles/ActionScript%203.tmbundle/
</pre></pre></p>
<p>After this has completed, you may as well do one more.</p>
<p><pre><pre>
svn co http://macromates.com/svn/Bundles/trunk/Review/Bundles/Flex.tmbundle/
</pre></pre></li>
<li>One last Terminal line. This will convert your Terminal into a trace output window for testing SWF files. You&#8217;ll need to do this every time you start Terminal up.<br />
<pre><pre>
tail -f ~/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt
</pre></pre></li>
<li>OK. Go to your Desktop and double click the bundle files that have just been created.</li>
<li>Now from within TextMate, go to File / New From Template / ActionScript 3 / Project. (Fn-Cmd-F2 gives you keyboard access to the menu bar, if you fancy)</li>
<li>Specify a location for your new SWF project folder, and fill out the main class namespace (defaults to org.domain.AS3Project)</li>
<li>Cmd-Shift-B to initiate a build, hit &#8216;5&#8242; to select MXMLC. You&#8217;ll see the build&#8217;s success or failure in the subsequent pop-up.</li>
<li>Cmd-W to close the pop-up. Cmd-R to open the SWF in its HTML container in your default browser. Note that the default project structure doesn&#8217;t do anything visually, but it does include a trace. So something along the lines of &#8216;AS3ProjectTest::initialize()&#8217; should be output to your Terminal at this point.</li>
</ul>
<p>And you&#8217;re good to go! You&#8217;ll notice right away that TextMate is a very bare-bones editor. But its simplicity obscures its complexity. Snippets and completion are two of its many benefits. You can familiarize yourself at the <a href="http://manual.macromates.com/en/">online manual</a>.</p>
<p>As an added bonus, check out the free utility <a href="http://blacktree.com/">Visor</a> (from the creator of Quicksilver). It&#8217;s a little odd to set up, but once it&#8217;s there, while focused on any other application you can press any specified keyboard shortcut to slide out a terminal window from the top of the screen, giving you an easy glance at what your SWF may be tracing.</p>
<p>Enjoy! Feel free to add your own tips below.</p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2008/05/30/setting-up-textmate-for-swf-compiling-and-terminal-trace-output/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Using Ruby to migrate last.fm tags to iTunes</title>
		<link>http://bcdef.org/2008/05/27/using-ruby-to-migrate-lastfm-tags-to-itunes/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=using-ruby-to-migrate-lastfm-tags-to-itunes</link>
		<comments>http://bcdef.org/2008/05/27/using-ruby-to-migrate-lastfm-tags-to-itunes/#comments</comments>
		<pubDate>Wed, 28 May 2008 01:40:25 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[genres]]></category>
		<category><![CDATA[id3]]></category>
		<category><![CDATA[itunes]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=28</guid>
		<description><![CDATA[Once upon a time, digital audio files didn&#8217;t carry any information about their creators. No artist name, album, track number &#8211; nothing. Naturally, this led to a lot of redundant effort keeping music organized and contextual. In 1996, a little sidecar called ID3 came along, essentially providing a space for textual information about audio that [...]]]></description>
			<content:encoded><![CDATA[<p>Once upon a time, digital audio files didn&#8217;t carry any information about their creators. No artist name, album, track number &#8211; nothing. Naturally, this led to a lot of redundant effort keeping music organized and contextual. In 1996, a little sidecar called <a href="http://en.wikipedia.org/wiki/Id3">ID3</a> came along, essentially providing a space for textual information about audio that hitched a ride within an MP3 file. While it was a victory for the preservation of metadata, it had its limitations, not least of which was a stodgy implementation of a Genre field.</p>
<p>The original sidecar had only 35 bytes of space to work with. Maximizing room for artist, album, and everything textual meant reducing genre to a single category, which was converted to an integer so that it only occupied a single byte in the overall sidecar. The original ID3 implementation only contained <a href="http://www.linuxselfhelp.com/HOWTO/MP3-HOWTO-13.html#ss13.3">80 pre-determined options</a> for the genre field.</p>
<p>Which leads to the dilemma:</p>
<ul>
<li>No song is of a single genre, but rather many. What good is reducing music to a single container anyway?</li>
<li>What is rawk to one listener is britrock to another, is emo to another and is shoegaze nu-wave to another.</li>
</ul>
<p>For this reason, the metadata available in the Genre field is of little use to anyone. You can&#8217;t just listen to Alternative or Electronic and expect to have a consistent listening experience. In a sense this parallels the problems with the RIAA and big label music, but I&#8217;ll leave that tangent for another day&#8230;</p>
<p>We&#8217;re not stuck in that bucket anymore. One of the advantages of having millions of people tagging music through services like <a href="http://last.fm">last.fm</a> is that we now have a much more nuanced voice in describing our music. Let&#8217;s face it, it&#8217;s not very helpful to call <a href="http://www.last.fm/music/Boards+of+Canada">Boards of Canada</a> an electronic group. In fact they are &#8216;electronic ambient idm chillout downtempo trip-hop indie Warp experimental Scottish chill.&#8217; (according the leading tags from last.fm)</p>
<p>Services like last.fm, <a href="http://www.pandora.com">Pandora</a> and <a href="http://www.imeem.com">imeem</a> are popular because they use these tags to create radio streams that, unlike most terrestrial American radio, people enjoy listening to. </p>
<p>A couple years ago, before Pandora was available, I realized that I wasn&#8217;t listening to the majority of the music I owned; when I wanted to listen to music I usually thought of an artist rather than a type of music. In an effort to fix this, I took a day off attempting to create iTunes playlists that suited various musical needs. I tried to create a party mix. I tried to create a mix reminiscent of the 90&#8217;s or the 60&#8217;s. I tried to create an ambient electronic music group that I could listen to while working. Given the size of my library, it was tedious stuff, and never felt a step closer to being finished.</p>
<p>Yesterday I realized there&#8217;s a better solution: last.fm&#8217;s <a href="http://www.audioscrobbler.com">AudioScrobbler</a> data service provides a way of retrieving tags for any given artist. The rest is creating a way of integrating that with my iTunes library. I did some searching and found that Wes Rogers&#8217; <a href="http://www.633k.net/2008/03/we-made-it-to-10.html">Last.fm Tagger</a> accomplishes a great deal of what I was hoping to do. It&#8217;s limitation was that it only took the foremost tag from last.fm and set that into the Genre field. </p>
<p>I&#8217;ve modified his script so that it compiles up to 20 tags, given a popularity threshold, and places them as a string into the Grouping field. Just select whichever files in iTunes you&#8217;d like to add the tags to and run the Ruby script (If you&#8217;ve selected thousands it may take a while!) After that, you activate the Grouping column in iTunes and then search for whatever you&#8217;re in the mood for. You can search for two or more genres to refine your search. And because users also often tag with context other than genre (where the music is from, speed, male/female vocalists) this really expands the boundaries of your search. It&#8217;s a bit like bringing the benefits of online radio to your local music collection.</p>
<p>Here&#8217;s to Wes for the MIT license, last.fm for AudioScrobbler, and the music taggers!</p>
<p><a href="http://www.bcdef.org/downloads/itunes_multigenre_tagger_0.5.zip">Download iTunes Multi-Genre Tagger v0.5</a>.</p>
<p><b>Important Note</b>: This will OVERWRITE whatever information is in the Grouping field of your music files. This field is nearly always empty, but you should check that nothing important is there before running this script. You will need a bit of terminal savvy and Ruby to be installed on your system in order to build the tags.</p>
<p><b>UPDATE</b>: There&#8217;s now a newer version, and I&#8217;ve created a separate <a href="http://bcdef.org/itunes-multi-genre-tagger/">project page</a> for it. As of version 0.6, it&#8217;s now a standalone OS X application (though the Ruby source is included for use on other platforms).</p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2008/05/27/using-ruby-to-migrate-lastfm-tags-to-itunes/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>A gathering of commentary on Flash Player support of AAC/h.264</title>
		<link>http://bcdef.org/2007/09/09/a-gathering-of-commentary-on-flash-player-support-of-aach264/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=a-gathering-of-commentary-on-flash-player-support-of-aach264</link>
		<comments>http://bcdef.org/2007/09/09/a-gathering-of-commentary-on-flash-player-support-of-aach264/#comments</comments>
		<pubDate>Mon, 10 Sep 2007 05:26:29 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Miscellany]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=27</guid>
		<description><![CDATA[Given the tumult of the change in my day job, it&#8217;s been difficult for me to keep up with the fallout of Adobe&#8217;s announcement of rudimentary support of AAC and h.264 codecs in a beta release of Flash Player 9. (For a start, you can read the formal announcement and/or the more technical explanation of [...]]]></description>
			<content:encoded><![CDATA[<p>Given the tumult of the change in my day job, it&#8217;s been difficult for me to keep up with the fallout of Adobe&#8217;s announcement of rudimentary support of AAC and h.264 codecs in a beta release of Flash Player 9. (For a start, you can read the <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200708/082107FlashPlayer.html">formal announcement</a> and/or the more technical explanation of the limitations <a href="http://www.kaourantin.net/2007/08/what-just-happened-to-video-on-web_20.html">from Tinic Uro</a>, an engineer on the Player team.)</p>
<p>In the two weeks hence, there&#8217;s been a lot of talk about the implications. As far as I can gather, no major player in web video has made the beta player a requirement to any public-facing player, but it wouldn&#8217;t surprise me if we see this soon &#8211; YouTube may have name recognition, but undoubtedly the video-on-the-web market is a cutthroat arena with many competitors. Of course, offering h.264 support means a potential migration from the current status quo &#8211; that of On2&#8217;s VP6 codec, supported in Flash Player since version 8. On2 of course isn&#8217;t taking all of this lying down. They&#8217;ve released <a href="http://www.on2.com/company/news-room/h264_faq/">an FAQ</a> that highlights how sticking with their codec is still advantageous in specific scenarios. There&#8217;s even a community that prefers to sidestep the Flash Player entirely in favor of <a href="http://stage6.divx.com/">streaming DivX</a>. Some even <a href="http://weblogs.asp.net/jezell/archive/2007/08/23/silverlight-forcing-macromedia-to-rethink.aspx">see Microsoft&#8217;s impact</a> on the decision. But all said, there&#8217;s little question where the momentum lies given the rabid response to h.264&#8217;s inclusion into the Player.</p>
<p>I&#8217;m excited to see where this goes. There&#8217;s already some interesting <a href="http://www.flashcomguru.com/apps/hd_full/hd.html">demos</a>, write-ups and <a href="http://www.readwriteweb.com/archives/adobe_flash_player_moviestar_h264.php#comments">commentary</a> on the subject and there&#8217;s certainly a lot of dust yet to settle, especially given Adobe&#8217;s <a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200709/090607FMS.html">related announcement</a> of Flash Media Server 3.</p>
<p>For those interested in exploring the new technology, understand that there are some important limitations to the beta release. Most noticeable is that only a subset of h.264 movies are currently playable. A significant number of encoding tools place the index information of an h.264 .mov file at the end of the file &#8211; this needs to be moved to the front in order for the file to be playable in a SWF. Renaun Erickson has <a href="http://renaun.com/blog/2007/08/22/234/">created an AIR application</a> which attempts to do this for you.</p>
<p>For more information, begin with <a href="http://www.kaourantin.net/2007/08/what-just-happened-to-video-on-web_20.html">Tinic&#8217;s article</a>, as well as <a href="http://labs.adobe.com/wiki/index.php/Flash_Player:9:Update:Full-Screen_Mode_HW">an optimization note from Adobe</a>.</p>
<p>Also a note on <a href="http://www.brooksandrus.com/blog/2007/08/29/a-quick-look-at-h264-metadata/">metadata support</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2007/09/09/a-gathering-of-commentary-on-flash-player-support-of-aach264/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FamilyWheel now available as an Apollo download</title>
		<link>http://bcdef.org/2007/04/15/familywheel-now-available-as-an-apollo-download/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=familywheel-now-available-as-an-apollo-download</link>
		<comments>http://bcdef.org/2007/04/15/familywheel-now-available-as-an-apollo-download/#comments</comments>
		<pubDate>Sun, 15 Apr 2007 08:21:33 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Miscellany]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=26</guid>
		<description><![CDATA[Two related dilemmas exist with the browser-based version of FamilyWheel, both not uncommon to rich internet applications:

Local files are off-limits. Importing a user&#8217;s selected GEDCOM file works by uploading the file to the bcdef.org server using a PHP script. This is cumbersome to the user, and introduces unnecessary complexity from a developer standpoint. Additionally, this [...]]]></description>
			<content:encoded><![CDATA[<p>Two related dilemmas exist with the browser-based version of FamilyWheel, both not uncommon to rich internet applications:</p>
<ul>
<li>Local files are off-limits. Importing a user&#8217;s selected GEDCOM file works by uploading the file to the bcdef.org server using a PHP script. This is cumbersome to the user, and introduces unnecessary complexity from a developer standpoint. Additionally, this is unlikely to scale reliably unless all imports are written to the server with unique filenames.</li>
<li>Neither is exporting back to the user&#8217;s machine a trivial affair. Analogous to the import process, the new GEDCOM file could be written to the bcdef.org server and then trigger a browser download. Currently, FamilyWheel sidesteps this issue by asking the user to copy and paste a TextArea into a new file. Hardly a polished user experience.</li>
</ul>
<p>Of course, there is a new alternative in town: <a href="http://labs.adobe.com/technologies/apollo/">Apollo</a>. Converting a browser-based application to an installable application resolves both of these dilemmas. Security restrictions of the browser sandbox no longer apply; the user&#8217;s local files can be modified without resorting to external scripts and server uploads.</p>
<p>And since FamilyWheel is already written in Flex, the conversion to an Apollo application is relatively straightforward. FileReference instances and URLRequest uploads swap out nicely for instances of the File class of the new Apollo API.</p>
<p>Simple enough!</p>
<p><a href="http://bcdef.org/downloads/FamilyWheel.air">Here&#8217;s the AIR package which will allow you to install FamilyWheel locally</a>. Note that you&#8217;ll need to install the alpha of the <a href="http://labs.adobe.com/downloads/apolloruntime.html">Apollo runtime from Adobe labs</a> beforehand.</p>
<p>EDIT: Just to clarify the new functionality, pressing &#8220;Export&#8221; will save an export.ged file to your desktop (overwriting if necessary).</p>
<p>EDIT: This will not work with the public beta of AIR. I will update FamilyWheel to support the next beta release.</p>
<p>EDIT: FamilyWheel is now an AIR Beta 2 installer.</p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2007/04/15/familywheel-now-available-as-an-apollo-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Genealogy Application in AS3: FamilyWheel</title>
		<link>http://bcdef.org/2006/12/19/genealogy-application-in-as3-familywheel/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=genealogy-application-in-as3-familywheel</link>
		<comments>http://bcdef.org/2006/12/19/genealogy-application-in-as3-familywheel/#comments</comments>
		<pubDate>Wed, 20 Dec 2006 06:34:10 +0000</pubDate>
		<dc:creator>bcdef</dc:creator>
				<category><![CDATA[Miscellany]]></category>

		<guid isPermaLink="false">http://bcdef.org/?p=25</guid>
		<description><![CDATA[One of my Christmas gifts to the family this year is to _finally_ go through the drawer full of photos and grandparents&#8217; scratches of relations, and turn it into something more permanent.
There are many applications out there, particularly on Windows, that allow you to do much the same. But I&#8217;ve found them to be a [...]]]></description>
			<content:encoded><![CDATA[<p>One of my Christmas gifts to the family this year is to _finally_ go through the drawer full of photos and grandparents&#8217; scratches of relations, and turn it into something more permanent.</p>
<p>There are many applications out there, particularly on Windows, that allow you to do much the same. But I&#8217;ve found them to be a creaky lot with roughly the visual appeal of Microsoft Access. And on other operating systems the options are scant. So I took the opportunity to familiarize myself more with Flex and AS3 and build my own parser of GEDCOM (the standard genealogical database format).</p>
<p>The greatest challenge may well have been conceiving of a way to present a family tree on a computer screen in a way that wasn&#8217;t a rectangular vastness, the way most family trees appear. With some Scotch tape, lots of paper, and a large enough dining room table, this  information design is bearable, but the same cannot be said for fitting the family tree on the screen of a Macbook.</p>
<p>At one point I was playing with the AS3 drawing API when I realized that a circle could be divided into an infinite amount of parts, dividing each arc into two parts (representing father and mother) in the subsequent ring. Ultimately, I realized not only was this space conscious, but also more connected to the mental image of a family &#8220;tree&#8221;.</p>
<p align="center"><a href="/genealogy/FamilyWheelSS.jpg"><img width="400" height="255" align="middle" alt="Example Screen Shot" title="Example Screen Shot" src="/genealogy/FamilyWheelSS.jpg" /></a></p>
<p>I&#8217;m sure someone&#8217;s thought of this schematic somewhere, but I didn&#8217;t see anything resembling this structure until I came up with a name for the application, Family Wheel. When searching around for where this phrase may have been used, I found a fascinating <a href="http://www.brasenhill.com/worrilow/wheel.html">circular hand-drawn chart of descendants</a>, about a century old.</p>
<p>The concept was born, and, as many Flex developers have come to expect, the visual part followed quite easily. I&#8217;m amazed at how effectively ActionScript 3.0 averts the roadblocks I would encounter in AS2. If anyone&#8217;s counting, here&#8217;s another convert to doing any and every ActionScript project in AS3.</p>
<p>And I&#8217;ve decided I want to offer this to everyone else too, so Happy Yule to y&#8217;all! Just keep in mind this is a work in progress so don&#8217;t overwrite your GEDCOM files unless you&#8217;re sure the export has functioned correctly.</p>
<p>You can try it out <a href="/genealogy">here</a>. If you&#8217;d like a sample GEDCOM, or to know more details about integration with Flickr as well as other genealogical apps, read up on it at the <a href="/?page_id=19">project page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bcdef.org/2006/12/19/genealogy-application-in-as3-familywheel/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
