<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

try {
var pageTracker = _gat._getTracker("UA-10099744-1");
pageTracker._trackPageview();
} catch(err) {}</description><title>jason c. martin</title><generator>Tumblr (3.0; @jasoncmartin)</generator><link>http://jasoncmartin.tumblr.com/</link><item><title>Shift - A Bowtie Theme</title><description>&lt;p&gt;I&amp;#8217;m proud to announce the release of Shift, a special Bowtie theme I worked on for the big Bowtie 1.0 contest. While it may look like just a normal theme at first glance, change the song and watch the smooth cover art animation.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;p&gt;&lt;a href="http://jasoncmartin.github.com/downloads/Shift.zip"&gt;Download&lt;/a&gt;&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/408092964</link><guid>http://jasoncmartin.tumblr.com/post/408092964</guid><pubDate>Tue, 23 Feb 2010 21:03:05 -0500</pubDate></item><item><title>Hackintoshing the ASUS EEE PC 900HA</title><description>&lt;p&gt;I recently purchased an Asus EEE PC 900HA from Amazon, and wanted to hackintosh it for a project I&amp;#8217;m working on. (More info on that later) After scouring the web, I couldn&amp;#8217;t find a guide specifically for the 900HA, so I started playing with different ones to try to get it to work. This is the result of that work.&lt;/p&gt;
&lt;h3&gt;Things you&amp;#8217;ll need:&lt;/h3&gt;
&lt;ol&gt;&lt;li&gt;Asus EEE PC 900HA.&lt;/li&gt;
&lt;li&gt;Retail copy of Mac OS X 10.6 Snow Leopard (NOT an OEM copy that comes with a new Mac, as that would only install on the Mac it came with)&lt;/li&gt;
&lt;li&gt; An 8&amp;#160;GB or bigger USB Flash Drive / External Hard Drive&lt;/li&gt;
&lt;li&gt;A Mac with a working optical drive, which is used to prepare the flash drive&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/netbook-installer/downloads/list"&gt;Netbook BootMaker&lt;/a&gt; (Mac Only application)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.mediafire.com/?zzm0zmyyxnz"&gt;These files&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Alright, let&amp;#8217;s get this thing started. We&amp;#8217;ll start off setting this up like we&amp;#8217;re installing OS X on a Dell Mini 10v, with instructions from &lt;a href="http://gizmodo.com/5389166/how-to-hackintosh-a-dell-mini-10v-into-the-ultimate-snow-leopard-netbook"&gt;Gizmodo&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1. Insert your flash drive and OS X Retail install disk into your computer&lt;/p&gt;
&lt;p&gt;2. Open Disk Utility (searching in Spotlight is the easiest way to find this)&lt;/p&gt;
&lt;p&gt;3. Select your flash drive from the list on the left. Make sure to select the drive itself, not any partitions you may have written to it before.&lt;/p&gt;
&lt;p&gt;4. In the right panel, select the &amp;#8220;Partition&amp;#8221; screen.&lt;/p&gt;
&lt;p&gt;5. From the dropdown menu, select &amp;#8220;1 Partition,&amp;#8221; then click &amp;#8220;Options&amp;#8221; below the partition map.&lt;/p&gt;
&lt;img src="http://farm3.static.flickr.com/2747/4294371640_eae9af0746_o.jpg"/&gt;&lt;p&gt;6. Select &amp;#8220;Master Boot Record.&amp;#8221; This will ensure that your Mini 10v can boot from your flash drive. Select a name for your partition—doesn&amp;#8217;t really matter what—and apply your changes. Keep in mind this will delete anything you have on your flash drive right now, so back it up if need be.&lt;/p&gt;
&lt;p&gt;7. Once this is done, move from the &amp;#8220;Partition&amp;#8221; screen to the &amp;#8220;Restore&amp;#8221; screen in Disk Utility.&lt;/p&gt;
&lt;p&gt;8. For your Restore Source, select (by dragging) the OS X install disk from the left panel. Make sure this is the item called something to the effect of &amp;#8220;Mac OS Install DVD,&amp;#8221; not &amp;#8220;Optiarc DVD&amp;#8221; or some other hardware title. For the destination, drag your newly-prepared partition over. Click restore.&lt;/p&gt;
&lt;img src="http://farm3.static.flickr.com/2703/4294371644_3599d1f080_o.jpg"/&gt;&lt;p&gt;This will take at least an hour, so go have sandwich or something. Or even better, skip ahead make sure your Mini 10v is ready for the install, as outlined in the next section.&lt;/p&gt;
&lt;p&gt;Ok, once that slog is done, it&amp;#8217;s time to let Netbook BootMaker do its magic. And let me be clear: it is magic. What this utility will do is install a special bootloader on your flash drive, which allows your netbook to begin an OS X install. It also throws in a few driver tweaks, to make sure your 10v, y&amp;#8217;know, work.&lt;/p&gt;
&lt;p&gt;9. Running BootMaker is easy—just open the app, select your OS X partition on your newly-minted flash drive, and tell it to GO GO GO.&lt;/p&gt;
&lt;p&gt;Aaaaand that&amp;#8217;s it! You&amp;#8217;re ready to start hackintoshing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;10. Before you plug in your flash drive to start the installation, unzip the files I&amp;#8217;ve provided for you and copy the folder onto the drive. We&amp;#8217;ll need these after installation to fix some things.&lt;/p&gt;
&lt;p&gt;11. Now go ahead a plug in your flash drive to your EEE PC and boot it, hitting the &amp;#8220;ESC&amp;#8221; key as you do so, until a menu pops up, asking you what you want to boot into. The one you want should be prefixed by &amp;#8220;USB:&amp;#8221;, so select that one and hit enter.&lt;/p&gt;
&lt;p&gt;12. Now we&amp;#8217;re booting into your special installer. You&amp;#8217;ll see the Apple logo come up, as well as a spinning gear. Give it time, it&amp;#8217;s thinking and setting up the installation.&lt;/p&gt;
&lt;p&gt;13. The first screen in the installation is going to be the language selection screen. Select your language and move on.&lt;/p&gt;
&lt;p&gt;14. Instead of proceeding with the installation right away, go up to the &amp;#8220;Utilities&amp;#8221; menu item, and select &amp;#8220;Disk Utility.&amp;#8221; We need to setup your hard drive before we can start installing on it.&lt;/p&gt;
&lt;p&gt;15. Once Disk Utility loads, select your internal hard drive (should be called &amp;#8220;160.04&amp;#160;GB ST&amp;#8230;&amp;#8221; or something along those lines.) Click on the &amp;#8220;Partition&amp;#8221; tab. Change the &amp;#8220;Volume Scheme&amp;#8221; so that it is set to &amp;#8220;1 Partition.&amp;#8221; Make sure the &amp;#8220;Format&amp;#8221; is &amp;#8220;Mac OS Extended (Journaled).&amp;#8221; Finally, click &amp;#8220;Options&amp;#8230;&amp;#8221; and make sure that the option that has &amp;#8220;GUID&amp;#8221; in it is selected. Now you can hit &amp;#8220;Apply,&amp;#8221; let it do its thing, and the quit out of the app and back to the installer.&lt;/p&gt;
&lt;p&gt;16. Follow the installer along, until you get to the pane where you see a &amp;#8220;Customize&amp;#8221; button in the bottom left corner. Click that, and deselect things you won&amp;#8217;t need, primarily &amp;#8220;X11&amp;#8221; and &amp;#8220;Additional Languages.&amp;#8221; Save those changes and continue with the install.&lt;/p&gt;
&lt;p&gt;17. Now that we&amp;#8217;re actually installing (you&amp;#8217;ll know because of the progress bar at the bottom, and the word &amp;#8220;Installing&amp;#8221; across the top), go to &amp;#8220;Window&amp;#8221; and open the &amp;#8220;Installer Log.&amp;#8221; Change the drop down from only error messages to all logged information (the last option). We&amp;#8217;re watching for when you get a certain error message:&lt;/p&gt;
&lt;blockquote&gt;./postintall: cp: /Volumes/ramdisk/dsdt/latest_dsdl.dsl: No such file or directory&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://farm5.static.flickr.com/4053/4294384364_b050cb3211.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;18. Once you see that looping through the logs, hold the power button to shut down your computer. Now boot it up, again pressing &amp;#8220;ESC&amp;#8221; to bring up the boot menu. Boot back into your &amp;#8220;USB&amp;#8221; drive. Once the installer pops up, select your language and move on.&lt;/p&gt;
&lt;p&gt;19. Go back to &amp;#8220;Utilities&amp;#8221; in the menubar. Now we launch &amp;#8220;Netbook Installer.&amp;#8221; You&amp;#8217;ll get a warning message that it isn&amp;#8217;t officially supported. Click &amp;#8220;Continue&amp;#8221; and move on.&lt;/p&gt;
&lt;p&gt;20. Select your internal hard drive from the drop down (it goes by actual drive names). Several new items should be checked. All we need checked are &amp;#8220;Install Chameleon&amp;#8221; and &amp;#8220;Install General Extensions.&amp;#8221; Deselect the rest, and then click &amp;#8220;Install.&amp;#8221; Let it do its thing, and then shut down the computer again.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm5.static.flickr.com/4054/4293638837_f0f8e98ae4.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;21. Now you can go ahead and boot up again, this time booting into your internal hard drive (it&amp;#8217;s prefixed by &amp;#8220;HDD&amp;#8221; on the boot menu). Give it time to boot (it&amp;#8217;ll be faster after this first boot).&lt;/p&gt;
&lt;p&gt;22. Hey, look at that! It&amp;#8217;s the welcome video. However, there&amp;#8217;s no sound. We&amp;#8217;ll work on fixing that. Go through setup, generally choosing the default options that pop up. Take note that filling in your personal information is optional if you don&amp;#8217;t want to do that.&lt;/p&gt;
&lt;p&gt;23. Once your desktop comes up, open up your drive, and go to the folder of files that I had you download. Go ahead and run the &amp;#8220;AboutThisMac.pkg&amp;#8221; package. Install the &amp;#8220;VoodooHDA.prefPane&amp;#8221;. (Both actions done by double clicking on them.) Copy the &amp;#8220;VoodooHDA.kext&amp;#8221; to &amp;#8220;/Extra/Extensions/&amp;#8221;, and then run the Update Extra app in /Extra/. After that&amp;#8217;s completed restart.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://farm3.static.flickr.com/2720/4293638843_4b497e174f.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;24. That&amp;#8217;s it! If you now go to &amp;#8220;About This Mac,&amp;#8221; it will display the correct system info. Sound will now be working (except for the keyboard shortcuts, even though the Sleep and Brightness ones work). Sadly, Wifi is not working yet, and I&amp;#8217;m not quite sure how to get it working (every method I&amp;#8217;ve tried doesn&amp;#8217;t work. If you get it to work, let me know.)&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/346674954</link><guid>http://jasoncmartin.tumblr.com/post/346674954</guid><pubDate>Thu, 21 Jan 2010 19:43:00 -0500</pubDate><category>asus</category><category>eeepc 900ha</category><category>hackintosh</category></item><item><title>Version Control Updating Bash Script</title><description>&lt;p&gt;A short while ago, I created a script to go through all my local copies of open source software that I had downloaded from GitHub, Google Code, and other places. The reason behind it being that going through and manually updating each one was a pain in the neck. After looking at Bash scripting, I came up with the following solution. Feel free to use it yourself.

&lt;pre&gt;
#!/bin/bash

function usage() {
	echo " Usage: $0 -h."
	echo " Updates Git, SVN, or Mercurial repositories in a directory."
}

while getopts h o
do

	case $o in
	h) usage &amp;amp;&amp;amp; exit 1;;
	esac

done

for i in $( ls ); do
	cd $i
	
	if [ -e .git ]
	then
		echo -e "\033[1mUpdating $i:\033[0m"
		git pull
	fi
	
	if [ -e .svn ]
	then
		echo -e "\033[1mUpdating $i:\033[0m"
		svn update
	fi
	
	if [ -e .hg ]
	then
		echo -e "\033[1mUpdating $i:\033[0m"
		hg pull -u
	fi
	
	cd ..
done
&lt;/pre&gt;&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/346574924</link><guid>http://jasoncmartin.tumblr.com/post/346574924</guid><pubDate>Thu, 21 Jan 2010 18:24:24 -0500</pubDate></item><item><title>StoreKitUI</title><description>&lt;a href="htyp://tr.im/storekitui"&gt;StoreKitUI&lt;/a&gt;: &lt;p&gt;Just finished up StoreKitUI, an iPhone library to provide a simple front-end user interface to StoreKit. StoreKitUI is open source and available on GitHub.&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/315715418</link><guid>http://jasoncmartin.tumblr.com/post/315715418</guid><pubDate>Sun, 03 Jan 2010 23:12:55 -0500</pubDate></item><item><title>Coding Tips #1: UIBarButtonItem Subclasses, Quick Documentation Access</title><description>&lt;ul&gt;&lt;li&gt;
			&lt;p&gt;Tip: Do not use -init as class initializer when subclassing UIBarButtonItem because it WILL cause an infinite loop. This one took a while for me to debug.&lt;/p&gt;
			&lt;p&gt;I had setup a custom UIButton to serve as the custom view for my UIBarButtonItem subclass, and was calling [super initWithCustomView:]. Turns out that initWithCustomView will call [self init], which I had overwritten, so it would call [super initWithCustomView:], and just start an infinite loop.&lt;/p&gt;
			&lt;p&gt;Point-in-case, do NOT use -init as your class initializer when you subclass UIBarButtonItem. Feel free, however, to create your own class convenience method that does all this work for you and calls -initWithCustomView:&lt;/p&gt;
		&lt;/li&gt;
		&lt;li&gt;Xcode Pro-Tip: Option-double-clicking on a method will bring up a documentation HUD if documentation is available for that method. It&amp;#8217;ll give you a brief description of what the method does, parameters it accepts, sample code related to it, and more.&lt;/li&gt;
	&lt;ul&gt;&lt;/ul&gt;&lt;/ul&gt;</description><link>http://jasoncmartin.tumblr.com/post/313121185</link><guid>http://jasoncmartin.tumblr.com/post/313121185</guid><pubDate>Sat, 02 Jan 2010 12:22:26 -0500</pubDate><category>coding tips</category></item><item><title>handleOpenURL:</title><description>&lt;a href="http://handleopenurl.com/"&gt;handleOpenURL:&lt;/a&gt;: &lt;p&gt;Sweet website detailing a bunch of iPhone Apps’ URL schemes.&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/310008094</link><guid>http://jasoncmartin.tumblr.com/post/310008094</guid><pubDate>Thu, 31 Dec 2009 13:26:46 -0500</pubDate></item><item><title>Crafting Subtle &amp; Realistic User Interfaces — Flyosity: Mac &amp; iPhone Interface Design</title><description>&lt;a href="http://flyosity.com/tutorial/crafting-subtle-realistic-user-interfaces.php"&gt;Crafting Subtle &amp; Realistic User Interfaces — Flyosity: Mac &amp; iPhone Interface Design&lt;/a&gt;: &lt;p&gt;Great article about creating great iPhone user interfaces. I’ve bookmarked it for future reference.&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/309889559</link><guid>http://jasoncmartin.tumblr.com/post/309889559</guid><pubDate>Thu, 31 Dec 2009 11:49:16 -0500</pubDate></item><item><title>Add "DONE" button to iPhone Number Pad</title><description>&lt;a href="http://www.neoos.ch/news/46-development/54-uikeyboardtypenumberpad-and-the-missing-return-key"&gt;Add "DONE" button to iPhone Number Pad&lt;/a&gt;: &lt;p&gt;After looking for this on Google, I finally found it: A way to add a “DONE” button to the iPhone Number Pad so that a user can “dismiss” the keyboard easily, just like how they can dismiss a normal text keyboard. Very handy. If I write my own iPhone framework, this is going in there!&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/297509139</link><guid>http://jasoncmartin.tumblr.com/post/297509139</guid><pubDate>Wed, 23 Dec 2009 18:48:05 -0500</pubDate></item><item><title>IMP Live on the App Store</title><description>&lt;a href="http://is.gd/56eVD"&gt;IMP Live on the App Store&lt;/a&gt;: &lt;p&gt;Very pleased to announce IMP Live is now available on the App Store, free for download. Go check it out!&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/261408617</link><guid>http://jasoncmartin.tumblr.com/post/261408617</guid><pubDate>Sat, 28 Nov 2009 20:40:57 -0500</pubDate></item><item><title>NaNoWriMo - Tools to Help You and Not to Harm You</title><description>&lt;p&gt;If any of you guys pay any attention to my Twitter account (@jasoncmartin, for those that don&amp;#8217;t), you&amp;#8217;ll have seen a few tweets about my participation in NaNoWriMo this year, or, as it is also know as, National Novel Writing Month. The whole purpose is to write a 50,000 word novel in the month of November.&lt;/p&gt;
&lt;p&gt;A couple of great tools I&amp;#8217;ve found in doing this is a a writing app called WriteRoom - a great, simple app that provides a distraction free full screen environment to work in. Once I&amp;#8217;m done writing in WriteRoom, I&amp;#8217;ll pull it into Mariner Write, a more advanced word processor to style it up and give it the look I need.&lt;/p&gt;
&lt;p&gt;A few online tools that have been really helpful are this great &lt;a href="http://www.squid.org/rpg-random-generator"&gt;random name generator&lt;/a&gt;, which has given me many good names for my fantasy novel I&amp;#8217;m writing. One other online tool is a Google Docs spread sheet to help keep track of my current status.&lt;/p&gt;
&lt;p&gt;That does it for now for tools I&amp;#8217;m using. I&amp;#8217;ll be sure to update this in the future to cover any other ones I&amp;#8217;ll be using. Enjoy, and good luck!&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/235612281</link><guid>http://jasoncmartin.tumblr.com/post/235612281</guid><pubDate>Fri, 06 Nov 2009 23:16:28 -0500</pubDate></item><item><title>iTuneConnect - Now Open Source</title><description>&lt;p&gt;So, some of you may have seen my video on iTuneConnect, the server application for iPhone and iPod Touch to be able to remotely control your iPod Library over the network from your Mac.&lt;/p&gt;
&lt;p&gt;And, as of today, I&amp;#8217;ve decided that iTuneConnect will be completely open source, hosted over at &lt;a title="http://github.com/jasoncmartin/iTuneConnect" target="_blank" href="http://github.com/jasoncmartin/iTuneConnect"&gt;GitHub&lt;/a&gt;. Once the application goes live in the App Store, the repository will be updated with the full source code. Just a little precaution to prevent people from stealing it before it&amp;#8217;s ready. ;)&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/221898808</link><guid>http://jasoncmartin.tumblr.com/post/221898808</guid><pubDate>Sat, 24 Oct 2009 12:07:00 -0400</pubDate></item><item><title>iTune Connect Product Demo Sorry about it being dark in the...</title><description>&lt;iframe src="http://player.vimeo.com/video/7236885" width="400" height="300" frameborder="0"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;iTune Connect Product Demo&lt;/b&gt; Sorry about it being dark in the beginning, it was the only way to get my iPod screen to really show up. Still a work in progress, but it’s getting there. :)&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/217763556</link><guid>http://jasoncmartin.tumblr.com/post/217763556</guid><pubDate>Mon, 19 Oct 2009 23:30:00 -0400</pubDate></item><item><title>School is fun</title><description>&lt;p&gt;The whole reason I haven&amp;#8217;t been posting much is because of school. All that Calc homework can really Take a lot of time. What I&amp;#8217;m hoping is, next month, things will settle down enough that I can get into some sort of regular routine if posting blog posts. Along with working on my many projects. Until then&amp;#8230;&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/201464882</link><guid>http://jasoncmartin.tumblr.com/post/201464882</guid><pubDate>Wed, 30 Sep 2009 23:42:41 -0400</pubDate></item><item><title>Hidden Sound Effects in The Hit List</title><description>&lt;p&gt;I&amp;#8217;m a user of The Hit List (good for keeping a list features to be written in software, keeping track of homework assignments and such), and I wondered to myself if there were any hidden preferences. I read on MacOSXHints that you can find these by using the &amp;#8220;strings&amp;#8221; Terminal command on an application&amp;#8217;s binary, so I did that to The Hit List.&lt;/p&gt;
&lt;p&gt;As I was scrolling through the list, I came across the following couple of lines:&lt;/p&gt;
&lt;pre&gt;playSoundEffects&lt;br/&gt;mario1.m4a&lt;br/&gt;(^|\W)([Jj]edi|[Vv]ader|[Ss]tar [Ww]ars|[Ss]kywalker|[Ll]uke|[Ll]eia)(\W|$)&lt;br/&gt;starwars1.m4a&lt;/pre&gt;
&lt;p&gt;On seeing the sound files, I jumped into the app&amp;#8217;s resources to find the sound effects. After previewing them, I realized that they were done in the same style as the &amp;#8220;complete&amp;#8221; sound effect that is played when you complete a task.&lt;/p&gt;
&lt;p&gt;I switched over to The Hit List and created a new task along the lines of &amp;#8220;This is a task having to do with Star Wars.&amp;#8221; I checked the complete check box, and the special Star Wars sound effect played.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;d done it. Sure, I wanted a hidden preference, but this was just as good. Little easter eggs like this are awesome in applications (Like Delicious Library, try scanning in a Star Wars DVD or something).&lt;/p&gt;
&lt;p&gt;You can download The Hit List and try this for yourself over at &lt;a href="http://www.potionfactory.com/thehitlist/"&gt;The Potion Factory&lt;/a&gt;. And is available for Pre-Order (cause it&amp;#8217;s in beta) for $49.95 USD.&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/178280312</link><guid>http://jasoncmartin.tumblr.com/post/178280312</guid><pubDate>Wed, 02 Sep 2009 18:41:00 -0400</pubDate></item><item><title>openStat: A Documentary</title><description>&lt;p&gt;I&amp;#8217;ve practically always been a fan of Django&amp;#8217;s iStat Pro and iStat Menu (at least, every since I discovered their existance.). When they announced iStat for iPhone, I was pretty excited about it. However, seeing a it&amp;#8217;s a paid app, I lost some interest. (Not wanting to pay for a, what, two dollar app? I know, I&amp;#8217;ve got issues. Maybe I&amp;#8217;ll write a blog post about that.).&lt;/p&gt;

&lt;p&gt;Once I saw that someone had written a version of iStat Server for Linux, and released it as open source, I released that I could use that to build my own version if iStat for iPhone (dubbed openStat) as a fun little challenge to see if I could build a client for a piece of software based only on the serve source code and other client screenshots.&lt;/p&gt;

&lt;p&gt;The series of blog posts resulting from this is going to be documenting my journey throught this little challenge, posting about problems I&amp;#8217;m facing, interesting code snippets, etc., and will be showing you, the reader, how to&amp;#8230; ummm&amp;#8230;.. well, do something. I guess it&amp;#8217;s just an attempt to get you to come back and keep reading.&lt;/p&gt;

&lt;p&gt;Anyway, this blog post isn&amp;#8217;t really going to have much, mostly because I&amp;#8217;m posting this from my iPod Touch, which doesn&amp;#8217;t have access to the source code for openStat. Tomorrow, I should hope to have a more fuller (more fuller? What kind of kooky grammar is that?) post with more info then.&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/175186074</link><guid>http://jasoncmartin.tumblr.com/post/175186074</guid><pubDate>Sat, 29 Aug 2009 23:48:05 -0400</pubDate></item><item><title>JMLocalizedString</title><description>&lt;p&gt;And now, a little macro from my code:&lt;/p&gt;
&lt;pre&gt;#define JMLocalizedString(x) [[NSBundle mainBundle] localizedStringForKey:x value:[NSString stringWithFormat:@"NT: %@", x] table:nil]&lt;/pre&gt;
&lt;p&gt;This little bit of code (which goes in a header file) acts just like the normal NSLocalizedString (which basically executes the same code, but without the value variable). We do provide a value variable, which is used in case the program can&amp;#8217;t find a localized string for the key you&amp;#8217;re providing. That value is basically just the key it was trying to use, with &amp;#8220;NT: &amp;#8221; (Not Translated) prepended to it. A good way to see what strings you haven&amp;#8217;t put in your Localizable.strings file yet, but will still translate them.&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/168330386</link><guid>http://jasoncmartin.tumblr.com/post/168330386</guid><pubDate>Fri, 21 Aug 2009 14:44:06 -0400</pubDate></item><item><title>How OAuth Fails on a Mobile Device</title><description>&lt;p&gt;An excerpt from an email I wrote on the Twitter Dev Group:&lt;/p&gt;
&lt;p&gt;&amp;#8220;&lt;i&gt;But the real problem is for mobile devices, especially for devices that don&amp;#8217;t have Copy and Paste functions (like the iPhone, up until recently). Twitter doesn&amp;#8217;t have a login page for OAuth that really is made for mobile phones, so the user has to perform extra actions (zooming, panning, etc.) to be able to login. The PIN method of verification doesn&amp;#8217;t work well for phones that don&amp;#8217;t have Copy and Paste (like pre-3.0 iPhone, if you plan on supporting that), but then neither does the Browser option work, because you can&amp;#8217;t really launch an app from a URL (with the exception of the iPhone, but Twitter doesn&amp;#8217;t allow non-standard URL schemes).&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;OAuth on mobile devices doesn&amp;#8217;t work. Let&amp;#8217;s go back to the iPhone (which I use as an example because I am a developer for it). You can&amp;#8217;t be contaminated with viruses, you can&amp;#8217;t get malware, and you can&amp;#8217;t get spyware. The only way you can get software at all (&amp;#8220;legally&amp;#8221;) is to get it from Apple, through the App Store, and Apple already does filtering, and strips out malicious apps. Since the App Store is the only medium to get apps, you have to want and then go download them. There is no third-party here putting malicious code on your device, and stealing your credentials. There is only the users, who wants to use your app, downloads it, and then is asked if wants to allow this app to access Twitter. If he doesn&amp;#8217;t want to let it access Twitter, why the heck did the user download the app in the first place?&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Sure, I chose the iPhone, but from what I understand, other phones have app stores of their own: Android has their Marketplace, Blackberry has one, Palm will soon get one if they don&amp;#8217;t already have one. People want to use Twitter on these devices, even full clients. But trying to login to OAuth on that tiny screen, with a PIN that you may or may not be able to copy and paste (depending on your device capabilities), is just a big hassle.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;For my Twitter client, I&amp;#8217;ve gone ahead and done all the OAuth authentication behind the scenes. I&amp;#8217;ll ask them for a username and password, and log them into OAuh myself without them having to ever see a web browser. &amp;#8220;Wait! You shouldn&amp;#8217;t do that!&amp;#8221; Whatever! I&amp;#8217;m selling this Twitter client on the App Store for two dollars. If a user doesn&amp;#8217;t want to let my app access Twitter, why is he wasting two bucks to download an app he will not use? It does not make sense!&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;I understand that OAuth is implemented to give the user an extra net of security, but I&amp;#8217;m not sure that the OAuth system is the best one to use. What would be best is a system that can be used on any platform, with any device, mobile or desktop. Modifying the login to do something different for mobile clients, like a different way of authenticating (such as choosing a picture. Show a picture in the web browser, send possible images to the client, then have the user choose the correct picture they saw), would be fantastic! At the very least, mobile versions of OAuth login and authentication should be implemented.&lt;/i&gt;&amp;#8221;&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/164526192</link><guid>http://jasoncmartin.tumblr.com/post/164526192</guid><pubDate>Sun, 16 Aug 2009 22:02:53 -0400</pubDate></item><item><title>Preview of an up and coming iPhone app. Any guesses?</title><description>&lt;img src="http://25.media.tumblr.com/COSFGWw08qtpp077ouZRv7Fuo1_400.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Preview of an up and coming iPhone app. Any guesses?&lt;/p&gt;</description><link>http://jasoncmartin.tumblr.com/post/157512760</link><guid>http://jasoncmartin.tumblr.com/post/157512760</guid><pubDate>Thu, 06 Aug 2009 20:16:46 -0400</pubDate></item><item><title>Giant Waterslide Jump is Today's BIG Thing - AUG 05, 2009</title><description>&lt;a href="http://www.todaysbigthing.com/2009/08/05"&gt;Giant Waterslide Jump is Today's BIG Thing - AUG 05, 2009&lt;/a&gt;</description><link>http://jasoncmartin.tumblr.com/post/157166859</link><guid>http://jasoncmartin.tumblr.com/post/157166859</guid><pubDate>Thu, 06 Aug 2009 09:55:53 -0400</pubDate></item><item><title>Goodies</title><description>&lt;p&gt;A couple of things I&amp;#8217;ve made (freebie applications, Automator actions, and miscellaneous scripts) that you can go ahead and download.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://tr.im/lbsi"&gt;Tweetomator&lt;/a&gt; - Automator action to post text to your Twitter account. Set specific text to tweet or pass text to it as input.&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;For Developers:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://jasoncmartin.tumblr.com/post/168330386/jmlocalizedstring"&gt;JMLocalizedString&lt;/a&gt; - Easy macro to see which strings have not been localized when running your application.&lt;/li&gt;
&lt;/ul&gt;</description><link>http://jasoncmartin.tumblr.com/post/156088698</link><guid>http://jasoncmartin.tumblr.com/post/156088698</guid><pubDate>Tue, 04 Aug 2009 23:14:00 -0400</pubDate><category>page</category></item></channel></rss>
