<?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>// elrepositorio</title>
	<atom:link href="http://www.elrepositorio.com/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.elrepositorio.com</link>
	<description>the random musings of Jeff Forbes</description>
	<lastBuildDate>Thu, 26 Aug 2010 17:24:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How Fucked is My Database?</title>
		<link>http://www.elrepositorio.com/?p=106</link>
		<comments>http://www.elrepositorio.com/?p=106#comments</comments>
		<pubDate>Thu, 26 Aug 2010 17:21:37 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/?p=106</guid>
		<description><![CDATA[Stumbled across this awesome site: http://howfuckedismydatabase.com/ In my case: MySQL: Probably pretty fucked. sqlite3: Concurrent connections? Yes. Good luck with that. Yep. My favorite is the answer for NoSQL:]]></description>
			<content:encoded><![CDATA[<p>Stumbled across this awesome site:</p>
<p><a href="http://howfuckedismydatabase.com/">http://howfuckedismydatabase.com/</a></p>
<p>In my case:</p>
<ol>
<li>MySQL: Probably pretty fucked.</li>
<li>sqlite3: Concurrent connections? Yes. Good luck with that.</li>
</ol>
<p>Yep. My favorite is the answer for NoSQL:</p>
<p><a href="http://www.elrepositorio.com/shack/fault-tolerance.png"><img alt="" src="http://www.elrepositorio.com/shack/fault-tolerance.png" title="NoSQL" class="alignnone" width="550" height="275" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=106</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Dev Tip #3: Using New Symbols While Preserving Backwards Compatibility</title>
		<link>http://www.elrepositorio.com/?p=100</link>
		<comments>http://www.elrepositorio.com/?p=100#comments</comments>
		<pubDate>Wed, 25 Aug 2010 16:00:46 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/?p=100</guid>
		<description><![CDATA[Recently, I was presented with an issue with backwards compatibility: we want to use the new UILocalNotifications API but still preserve compatibility with 3.x devices. I haven't really had a problem doing this with objects that existed in 3.x (check for respondsToSelector:) but I was presented with a new problem: UILocalNotification doesn't exist in 3.x! [...]]]></description>
			<content:encoded><![CDATA[<p>Recently, I was presented with an issue with backwards compatibility: we want to use the new UILocalNotifications API but still preserve compatibility with 3.x devices. I haven't really had a problem doing this with objects that existed in 3.x (check for respondsToSelector:) but I was presented with a new problem: UILocalNotification doesn't exist in 3.x! When you try to run the app, you get something like this:</p>
<p><code>dyld: Symbol not found: _OBJC_CLASS_$_UILocalNotification<br />
  Referenced from: /var/mobile/Applications/3BB86986-88EB-4AF5-9FCF-12C7040889F5/MyApp.app/MyApp<br />
  Expected in: /System/Library/Frameworks/UIKit.framework/UIKit<br />
 in /var/mobile/Applications/3BB86986-88EB-4AF5-9FCF-12C7040889F5/MyApp.app/MyApp</code></p>
<p>Not too surprising that it didn't work! So how did I fix it? Basically you have to treat it like an id and instantiate it with a Class queried at runtime:</p>
<p><code><br />
id localNotif = [[NSClassFromString(@"UILocalNotification") alloc] init];<br />
</code></p>
<p>You cannot use properties (of course) but you can operate on the notification object just like you would normally. Pretty simple solution to a complex linking problem!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=100</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last.FM is back up and running!</title>
		<link>http://www.elrepositorio.com/?p=88</link>
		<comments>http://www.elrepositorio.com/?p=88#comments</comments>
		<pubDate>Tue, 24 Aug 2010 16:52:46 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/?p=88</guid>
		<description><![CDATA[With Rhapsody, of course. I decided to finish my Rails implementation of the Rhapsody scrobbler. The problem with the OSX RhapsodyX was always that it was running on multiple computers all the time for me (which caused contention with last.fm) and I never added a DB-backed cache to make sure all files are sent to [...]]]></description>
			<content:encoded><![CDATA[<p>With Rhapsody, of course. I decided to finish my Rails implementation of the Rhapsody scrobbler. The problem with the OSX RhapsodyX was always that it was running on multiple computers all the time for me (which caused contention with last.fm) and I never added a DB-backed cache to make sure all files are sent to the server.</p>
<p>So, it's now running on my server as a cron job every 15 minutes and <i>is</i> DB backed! Provided the server doesn't go down it'll be scrobbling everything from playback in the web Rhapsody player to the iPhone version!</p>
<p>Check it out on the right of the main page -- you can follow what I listen to. <img src='http://www.elrepositorio.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=88</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Dev Tip #2: Static Libraries and Categories</title>
		<link>http://www.elrepositorio.com/?p=94</link>
		<comments>http://www.elrepositorio.com/?p=94#comments</comments>
		<pubDate>Mon, 23 Aug 2010 19:00:20 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/?p=94</guid>
		<description><![CDATA[So, you've just finished abstracting a bunch of your code but are getting a bunch of 'does not respond to selector exceptions. Of course, you've gotten no warning of these things, the code compiles fine, and you've done the normal stuff (like add -ObjC) to your linker flags. So what gives? You've done everything right [...]]]></description>
			<content:encoded><![CDATA[<p>So, you've just finished abstracting a bunch of your code but are getting a bunch of 'does not respond to selector exceptions. Of course, you've gotten no warning of these things, the code compiles fine, and you've done the normal stuff (like add <strong>-ObjC</strong>) to your linker flags.</p>
<p>So what gives? You've done everything right up until this point!</p>
<p>It turns out that apple has a problem with the current build of <em>ldd</em>. Therefore, you must do one of two things: add a small object interface and implementation in the same files as your category (this hints the compiler to look at the implementation) or add the <strong>-all_load</strong> flag in your linker flags.</strong></p>
<p>Apple has a technote about this here: <a href="http://developer.apple.com/mac/library/qa/qa2006/qa1490.html">http://developer.apple.com/mac/library/qa/qa2006/qa1490.html</a> And they also indicate that it's fixed in XCode 4 already so if you want to brave the new (buggy) XCode go for it!</p>
<p>This one took me a few hours to figure out so I hope it helps someone out there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=94</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello Youtubes</title>
		<link>http://www.elrepositorio.com/?p=91</link>
		<comments>http://www.elrepositorio.com/?p=91#comments</comments>
		<pubDate>Mon, 23 Aug 2010 02:52:35 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/?p=91</guid>
		<description><![CDATA[I finally decided to put a collection of concert movies online. Most of them were taken with my phone but there are a few that I took with my older camera. All of them are pretty horrible but the audio on a few is nice! One of my favorite performances of Coachella: I have a [...]]]></description>
			<content:encoded><![CDATA[<p>I finally decided to put a collection of concert movies online. Most of them were taken with my phone but there are a few that I took with my older camera. All of them are pretty horrible but the audio on a few is nice!</p>
<p>One of my favorite performances of Coachella:</p>
<p><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/pyt8kt0NV0o?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/pyt8kt0NV0o?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object></p>
<p>I have a handful of videos uploading now, feel free to take a look!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=91</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gallery</title>
		<link>http://www.elrepositorio.com/?p=86</link>
		<comments>http://www.elrepositorio.com/?p=86#comments</comments>
		<pubDate>Sun, 22 Aug 2010 02:30:38 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/?p=86</guid>
		<description><![CDATA[You'll notice there's a 'photos' button up top, once again. Photo gallery's back -- and a lot better than it used to be. All of the photos are hosted on JungleDisk and delivered via a FUSE module... it's plenty fast for that purpose. It's probably 4gb of photos and videos, easily. Thankfully JungleDisk charges pennies [...]]]></description>
			<content:encoded><![CDATA[<p>You'll notice there's a 'photos' button up top, once again. Photo gallery's back -- and a lot better than it used to be. All of the photos are hosted on JungleDisk and delivered via a FUSE module... it's plenty fast for that purpose. It's probably 4gb of photos and videos, easily. Thankfully JungleDisk charges pennies for space so I can host them and not worry about it being ridiculously expensive!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=86</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 3.0.1, nginx, FastCGI, Gallery3, and JungleDisk</title>
		<link>http://www.elrepositorio.com/?p=84</link>
		<comments>http://www.elrepositorio.com/?p=84#comments</comments>
		<pubDate>Sat, 21 Aug 2010 20:12:59 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/?p=84</guid>
		<description><![CDATA[I've been busy with my server lately, trying to get the most out of my SliceHost install. I've moved a bunch of my old files onto JungleDisk, which is mounted as a FUSE volume and is accessible through the web through some symlinks. My paltry 10gb of disk space through SliceHost doesn't really matter now! [...]]]></description>
			<content:encoded><![CDATA[<p>I've been busy with my server lately, trying to get the most out of my SliceHost install. I've moved a bunch of my old files onto JungleDisk, which is mounted as a FUSE volume and is accessible through the web through some symlinks. My paltry 10gb of disk space through SliceHost doesn't really matter now!</p>
<p>The only problem is if the data is not cached, it takes 2x the bandwidth to serve content. It's not the end of the world since I never get close at all to hitting that amount. Additionally, it's impossible to serve large files from it because the file must be copied to disk locally before it can be served. Even with a 4-5mb/sec connection that I have here it will take a minute or so to serve a 1gb file. However, for things like music and photos and random things it works great!</p>
<p>I'm moving all my pictures online now, and hopefully will get a nice gallery up for all of the random pictures I have. Finally, I'm going to try to make a commitment to post something every few days so I can get some of the stuff swimming in my head out into the void. We'll see what happens!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=84</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I upgraded WordPress!</title>
		<link>http://www.elrepositorio.com/?p=79</link>
		<comments>http://www.elrepositorio.com/?p=79#comments</comments>
		<pubDate>Mon, 22 Mar 2010 06:19:49 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/?p=79</guid>
		<description><![CDATA[Among other things. I've actually been pretty busy on my server lately... it's really nice to have something that you can experiment on. Now I'm running nginx instead of apache2, mod_rails, php5-fcgi for WP, and a bunch of other goodies. The best part is I am still under 256mb used total in a real world [...]]]></description>
			<content:encoded><![CDATA[<p>Among other things. I've actually been pretty busy on my server lately... it's really nice to have something that you can experiment on. Now I'm running nginx instead of apache2, mod_rails, php5-fcgi for WP, and a bunch of other goodies.</p>
<p>The best part is I am still <strong>under 256mb used total in a real world scenario.</strong> I had to make a couple of sacrifices to keep the usage low but for my small server I'm sure it won't matter and/or no one will notice anyway. Despite that, I'm pretty happy with the way it came out! I did a bunch of speed tests vs. memory usage with apache2 vs. nginx... I was pretty satisfied with the results but I'll write about the hard data later.</p>
<p>Until then most likely all that will be here is this blog post! I'm going to have to make good on my late New Year's resolution of trying to keep interesting things in this blog... I have a few posts to write!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=79</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Simple Code Sample</title>
		<link>http://www.elrepositorio.com/?p=76</link>
		<comments>http://www.elrepositorio.com/?p=76#comments</comments>
		<pubDate>Mon, 21 Sep 2009 01:15:40 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[iPhone Tips]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/?p=76</guid>
		<description><![CDATA[First thing's first, my company is hiring iPhone developers. If you are an experienced iPhone/Cocoa developer, please contact me. Please. Recently, we have been getting a decent amount of resumes to apply for a position at 9mmedia. One of them was interesting in that the potential candidate sent in a test that another company was [...]]]></description>
			<content:encoded><![CDATA[<p>First thing's first, <b>my company is hiring iPhone developers.</b> If you are an experienced iPhone/Cocoa developer, please contact me. Please.</p>
<p>Recently, we have been getting a decent amount of resumes to apply for a position at 9mmedia. One of them was interesting in that the potential candidate sent in a test that another company was sending out to weed out people: <a href="http://www.elrepositorio.com/blog/DevCompetition.pdf">PDF Link</a>
</p>
<p><span id="more-76"></span></p>
<p>Basically the requirements for the 'long' test was to write and display a plist of any type and length. This means a number of things: you have to support every single plist type, it could be of arbitrary depth (which makes for some curious display decisions) and your reader most certainly needs to be recursive. It's a somewhat interesting question in that it somewhat encapsulates what most people would ask a candidate in an interview situation.</p>
<p>Of course I think that this wouldn't be the be-all-end-all of interview questions as the algorithm is quite simple. As long as it is recursive and pops out views you're all set to go. The display approaches are more interesting -- most people would either go with some sort of UITableView/UINavigationController based approach with what I would expect would be GroupedViews or views with headers to encapsulate a NSArray, for example.</p>
<p>Since I was interested in how long a relatively experienced iPhone developer would take doing this kind of question I took the test myself. The version that I have posted to my github (link below) took me about 85-90 minutes to finish, and I am sure if I hadn't been working all day it would have been a lot faster. I am surprised that the PDF indicates 'no more than <b>four hours</b>. I don't think I would hire someone who would take so long on a problem like this!</p>
<p>I decided to take the approach of a UIScrollView with text only -- I thought a UITableView/NavController would be too many taps usability wise and would doubtlessly take actually more time. I set up the scrollview to scroll horizontally so if the output goes outside the bounds of the screen you will able to see the results as well. Finally, for a small visual touch I gradient the first 5 levels so they are easy to read. I wasn't particularly interested in finding the max depth first and decided to just assume that most plists don't go very deep.</p>
<p>Anyway, the source is located here: <a href="http://github.com/yanks/randomcrap/tree/master/MutualMobileChallenge/">GitHub - Random Crap</a>. Let me know what you would do differently with this problem!</p>
<p>PS: We didn't hire the person who sent his challenge code. Didn't even run. You'd think people would test this stuff first!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=76</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making things work again.</title>
		<link>http://www.elrepositorio.com/?p=65</link>
		<comments>http://www.elrepositorio.com/?p=65#comments</comments>
		<pubDate>Mon, 14 Sep 2009 01:31:47 +0000</pubDate>
		<dc:creator>jeff</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.elrepositorio.com/blog/?p=65</guid>
		<description><![CDATA[After a few subsequent hacking attempts (and some successes!) I had to nuke this website completely. I managed to save most of the important things, but in the meantime I'm going to go with a generic template until I get everything working again. I am now using Google Apps as my email provider which is [...]]]></description>
			<content:encoded><![CDATA[<p>After a few subsequent hacking attempts (and some successes!) I had to nuke this website completely. I managed to save most of the important things, but in the meantime I'm going to go with a generic template until I get everything working again.</p>
<p>I am now using Google Apps as my email provider which is giving me a ton of piece of mind, along with Ubuntu Hardy on the server as opposed to Gentoo. It seems as though that was a good choice to make -- I am up and running with all the services I had before in less time than it would take to emerge a base system! I feel really good with how the system appears to be working now. Hopefully it's a bit more secure too. I am running less services as a whole and am using a couple of security tools to keep people out. I am already seeing results of the SSHD blocking script that I am using to prevent password guess attacks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.elrepositorio.com/?feed=rss2&amp;p=65</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
