<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><description>More of a programming nerd than is strictly healthy. See also {nevyn.nu, thirdcog.eu, twitter}</description><title>Overooped</title><generator>Tumblr (3.0; @nevyn)</generator><link>http://overooped.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/overooped" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>GPYOW: Inverted Halo Edition. Because I’ve always wanted...</title><description>&lt;img src="http://8.media.tumblr.com/tumblr_kslw3afLeH1qz4vmko1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;GPYOW: Inverted Halo Edition. Because I’ve always wanted to do a GPYOW.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/_5k4S6QB3Hs" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/_5k4S6QB3Hs/233254419</link><guid isPermaLink="false">http://overooped.com/post/233254419</guid><pubDate>Wed, 04 Nov 2009 23:35:00 +0100</pubDate><category>gpyow</category><feedburner:origLink>http://overooped.com/post/233254419</feedburner:origLink></item><item><title>lucius:

I just redesigned felttip.tumblr.com based on Mac OS...</title><description>&lt;img src="http://13.media.tumblr.com/tumblr_krsvs39j4q1qzz1pao1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://lucius.tumblr.com/post/219768690"&gt;lucius&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;I just redesigned &lt;a href="http://felttip.tumblr.com"&gt;felttip.tumblr.com&lt;/a&gt; based on Mac OS 9.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;That design is AWESOME! You win.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/b6V-EU6Knyc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/b6V-EU6Knyc/219898473</link><guid isPermaLink="false">http://overooped.com/post/219898473</guid><pubDate>Thu, 22 Oct 2009 13:08:53 +0200</pubDate><feedburner:origLink>http://overooped.com/post/219898473</feedburner:origLink></item><item><title>"[PHP is] ‘quick- and-dirty’ elevated to a religion."</title><description>“[PHP is] ‘quick- and-dirty’ elevated to a religion.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt; &lt;a href="http://ursecta.com/wp/2009/09/net-considered-harmful/"&gt;@jmweh&lt;/a&gt;&lt;/em&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/IpRtD8NibgM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/IpRtD8NibgM/218120340</link><guid isPermaLink="false">http://overooped.com/post/218120340</guid><pubDate>Tue, 20 Oct 2009 16:13:19 +0200</pubDate><feedburner:origLink>http://overooped.com/post/218120340</feedburner:origLink></item><item><title>Radiotjänst slösar skattepengar för att få folk att betala tv-innehav fastän de inte behöver</title><description>&lt;p&gt;Skrev just ett argt brev till Radiotjänst, efter mina försök att säga upp tv-innehav.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Ni har en online-tjänst, men det går inte att avanmäla tv-innehav därinne. Ni har en telefontjänst (med det sämsta meny-system jag varit med om). Telefonkön specifikt för att säga upp tv-innehav var *38 väntande lång*. Hur många skattefinansierade anställda har ni egentligen på att ta emot avanmälningar? Hur många hundratusentals skattekronor går till detta, bara för att ni saknar en enda liten knapp inne på webbtjänsten?&lt;/p&gt;

&lt;p&gt;Det gör mig riktigt förbannad. Vänligen åtgärda och sluta slösa pengar.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Inte nog med detta slöseri, de har också börjat ignorera mail från informationsfrihet.se — jag försökte avanmäla via deras formulär, men fick ingen respons från radiotjänst.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/MtyQ7OLxUqU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/MtyQ7OLxUqU/218073028</link><guid isPermaLink="false">http://overooped.com/post/218073028</guid><pubDate>Tue, 20 Oct 2009 14:57:50 +0200</pubDate><feedburner:origLink>http://overooped.com/post/218073028</feedburner:origLink></item><item><title> The write-compile-test cycle is very very tedious when doing...</title><description>&lt;img src="http://19.media.tumblr.com/tumblr_krigxd4t9I1qz4vmko1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt; The write-compile-test cycle is very very tedious when doing iPhone development on the device, because the “compile” step needs to include “install on device”, which can be very, very slow. It can take up to a minute, depending on how many apps you have installed and the current cycle of the moon. Imagine, then, doing tiny interface changes and you want to see how that tiny fix changes the UI (which sometimes you really need to do on the device to get a feel for it) — ten tries changing an animation delay could mean ten minutes of just waiting for installation. If you’re jailbroken, there is a&lt;strike&gt;n easier&lt;/strike&gt; faster way.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In Cydia, install ldid, rsync and ssh&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://blogs.translucentcode.org/mick/archives/000230.html"&gt;Follow this guide to install an ssh key pair&lt;/a&gt; on your iPhone, so that the script can install the app without asking for password.&lt;/li&gt;
&lt;li&gt;Add an additional build target to your app, and call it “Upload” or something.&lt;/li&gt;
&lt;li&gt;Make that build target depend on your real app (as in the picture above)&lt;/li&gt;
&lt;li&gt;Add a “run shell script” build phase, and give it this script:
&lt;pre&gt;&lt;code&gt;export DEVICE_NAME=Mishimazu.local
rsync -avz "${CONFIGURATION_BUILD_DIR}/${PROJECT}.app" root@${DEVICE_NAME}:/Applications/
ssh root@${DEVICE_NAME} ldid -s "/Applications/${PROJECT}.app/${PROJECT}"&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Replace “Mishimazu” with the name of your iPhone.&lt;/li&gt;
&lt;li&gt;Change your active target to “Upload”, and build as usual.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A few notes though.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This script does not launch the app, you’ll have to do that yourself.&lt;/li&gt;
&lt;li&gt;You don’t get the console routed to Xcode. Open up the Console in the Organizer for a workaround (not as good though)&lt;/li&gt;
&lt;li&gt;Xcode debugger won’t work&lt;/li&gt;
&lt;li&gt;File locations might have changed! You no longer have your private uuid bundle with your documents, but rather need to place documents and related things in /var/mobile. It’s possible NSSearchPathForDirectoriesInDomains will figure the right paths out for you, I haven’t tested; just make sure you’re aware of this&lt;/li&gt;
&lt;li&gt;You are no longer sandboxed. This might change assumptions you do in code&lt;/li&gt;


&lt;p&gt;In short, only use this deployment method for simple things, and install as usual when you need to really make sure things still work as they should, before a beta or appstore deploy. Of course, if you’re targeting the Cydia store or similar, that doesn’t apply.&lt;/p&gt; &lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/ZMthkCVqQyY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/ZMthkCVqQyY/212929090</link><guid isPermaLink="false">http://overooped.com/post/212929090</guid><pubDate>Wed, 14 Oct 2009 17:41:00 +0200</pubDate><feedburner:origLink>http://overooped.com/post/212929090</feedburner:origLink></item><item><title>Improved cross-project references in Xcode 3.1.1</title><description>&lt;a href="http://www.cocoabuilder.com/archive/message/xcode/2008/9/13/24608"&gt;Improved cross-project references in Xcode 3.1.1&lt;/a&gt;: &lt;p&gt;This is your new friend when you have sub-projects in Xcode that build frameworks that the parent project needs to link to and find headers for:&lt;/p&gt;

&lt;blockquote&gt;&lt;code&gt;&lt;pre&gt;FRAMEWORK_SEARCH_PATHS = "$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)"&lt;/pre&gt;&lt;/code&gt;&lt;/blockquote&gt;

&lt;p&gt;This is much better than the old framework search path of [name of other project]/build/${CONFIGURATION}/ (since that depended on the subproject building into ‘build’ folder (which isn’t happening when you e g have a system-wide build folder)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/xEcaGZXi7Lk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/xEcaGZXi7Lk/205002442</link><guid isPermaLink="false">http://overooped.com/post/205002442</guid><pubDate>Mon, 05 Oct 2009 14:02:55 +0200</pubDate><feedburner:origLink>http://overooped.com/post/205002442</feedburner:origLink></item><item><title>Warning: When replacing the glass on an iPhone 3G, don't use pdaparts.com's video!</title><description>&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=8fF0DF-mbn4"&gt;Pdaparts.com has a video&lt;/a&gt; showing how to replace the glass on an iPhone 3G. These instructions are INVALID and will risk destroying your LCD. Please look at &lt;a href="http://www.youtube.com/watch?v=4mboB8p-sdw"&gt;leewaterman’s HD video&lt;/a&gt; instead.&lt;/p&gt;

&lt;p&gt;Specifically, what Pdaparts do wrong is they try to remove the LCD from the frame by loosening it from the bottom, breaking it free from the frame. However, the latches holding the LCD in place are placed &lt;em&gt;along the edges&lt;/em&gt;. If you pry too hard along the bottom, you will &lt;em&gt;break the crystals in your LCD&lt;/em&gt;! This will look like slightly colorful ink or oil blots where and near where you applied too much pressure.&lt;/p&gt;

&lt;p&gt;The correct procedure is to unhinge the latches along the edges. &lt;a href="http://www.youtube.com/watch?v=4mboB8p-sdw"&gt;leewaterman’s video&lt;/a&gt; shows exactly how this is done.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/-c-7ahzrdtI" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/-c-7ahzrdtI/201786435</link><guid isPermaLink="false">http://overooped.com/post/201786435</guid><pubDate>Thu, 01 Oct 2009 16:38:00 +0200</pubDate><feedburner:origLink>http://overooped.com/post/201786435</feedburner:origLink></item><item><title>Jag jobbar på argument jag kommer få dra varje dag framöver.</title><description>&lt;p&gt;Jag kommer rösta Pirat om ett år. Det är det enda partiet som förstår, och &lt;b&gt;förstår&lt;/b&gt; konsekvenserna av, att kostnaden av en digital kopia är *noll*. Inte “billigt”, *noll*.&lt;/p&gt;

&lt;p&gt;Tänk er innan telefonen fanns. Det gick nog väldigt bra för Posten; enda sättet att kommunicera på distans var att skicka brev. Så plötsligt kom då telefonen. Postens roll minskar plötsligt till att skicka paket och kanske en tiondel så många brev. Posten blir väldigt arg på denna nya teknologi — hur ska Posten nu överleva?! Det enda sättet för Posten att överleva är att lobbya för att illegalisera telefonen, eller hur? De stackars Posten-arbetarna sliter ju hårt; de förtjänar sin lön och en stabil jobbsituation.&lt;/p&gt;

&lt;p&gt;När en digital kopia är gratis och omöjlig att skilja från originalet, kan en lag säga att det är förbjudet att kopiera information?&lt;/p&gt;

&lt;p&gt;Det är dags för musiklobbyn att bli jäkligt bra på att skicka paket, istället för att försöka illegalisera telefoner.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/J9yw2nPj7Oc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/J9yw2nPj7Oc/187545768</link><guid isPermaLink="false">http://overooped.com/post/187545768</guid><pubDate>Mon, 14 Sep 2009 08:51:12 +0200</pubDate><feedburner:origLink>http://overooped.com/post/187545768</feedburner:origLink></item><item><title>mmoga.com is a scammer</title><description>&lt;p&gt;Or so it seems, anyway; and I can’t say I’m surprised. I bought a Diablo II: Lords of Destruction key from them. The key added fine to my battle.net account, so it seemed legit. However, now that I try to log in a month later, the key is in use by someone else; I assume they resold it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/B5X78wWHbyo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/B5X78wWHbyo/187023948</link><guid isPermaLink="false">http://overooped.com/post/187023948</guid><pubDate>Sun, 13 Sep 2009 19:08:14 +0200</pubDate><feedburner:origLink>http://overooped.com/post/187023948</feedburner:origLink></item><item><title>Seiken Densetsu 3 / Secret of Mana 2 with 3 player hack</title><description>&lt;a href="http://nevyn.nu/files/seiken3-3player.smc"&gt;Seiken Densetsu 3 / Secret of Mana 2 with 3 player hack&lt;/a&gt;: &lt;p&gt;Apparently there’s some sort of taboo to publish a ROM file with a hack applied. This becomes very aggravating when you can’t find the same / similar enough ROM file that the hack maker used.&lt;/p&gt;

&lt;p&gt;Me, Amanda and my brother Bengan played Secret of Mana together (paid for it and all, Virtual Arcade rocks). It’s an amazingly good game; there are so few cooperative RPG games, especially &gt;2 players. After finishing it, we felt we had to have more, and SD3 is the obvious candidate. But, the game was never released in the west! There’s no way that I know of to get it in English and pay for it, so I installed Homebrew Channel and Snes9X. After playing for an hour or two, after finally picking up the third player (me, of course), I pressed start to activate my control. Nothing happened. Turns out they removed the three player option from SD3. Just can’t understand why…&lt;/p&gt;

&lt;p&gt;Anyways, I hunted hacks all over the Internet, but the one everyone linked to was 404’d, and the second one I found seemed broken; I couldn’t apply it, anyhow. Finally, I found &lt;a href="http://www.fantasyanime.com/mana/som2downloads.htm"&gt;FantasyAnime.com and their SD3 page&lt;/a&gt;, and to my great joy they listed the ROM - next to the patch! The patch applied cleanly; tomorrow we play!&lt;/p&gt;

&lt;p&gt;The link above is to the ROM file with the hack applied, if anyone else goes googling for it.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/BBwdVMAnm3g" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/BBwdVMAnm3g/186319515</link><guid isPermaLink="false">http://overooped.com/post/186319515</guid><pubDate>Sat, 12 Sep 2009 21:41:17 +0200</pubDate><feedburner:origLink>http://overooped.com/post/186319515</feedburner:origLink></item><item><title>Alice In Wonderland Syndrome</title><description>&lt;a href="http://en.wikipedia.org/wiki/Alice_in_Wonderland_syndrome"&gt;Alice In Wonderland Syndrome&lt;/a&gt;: &lt;p&gt;&lt;a href="http://bestofwikipedia.tumblr.com/post/182722812/alice-in-wonderland-syndrome"&gt;bestofwikipedia&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;Alice in Wonderland syndrome (AIWS, named after the novel written by Lewis Carroll), also known as Todd’s syndrome, is a disorienting neurological condition which affects human perception. Sufferers may experience micropsia, macropsia, and/or size distortion of other sensory modalities. A temporary condition, it is often associated with migraines, brain tumors, and the use of psychoactive drugs. (via &lt;a href="http://twitter.com/AngryResident" title="@AngryResident"&gt;@AngryResident&lt;/a&gt;)&lt;/blockquote&gt;

&lt;p&gt;Hum, I get this sometimes… Particularly when feverish or very tired. Things will *feel* like they are *very very far away*. My body stretches on for miles and miles; as if if I stood up, I would touch the clouds. If I’m awake and about, the world might distort, my hands by the computer keyboard as if reaching across the city. If sleepy and tired, closing my eyes do nothing to avert the feeling; dreams will take on a fantastic feeling of distance, everything of incredible, incomprehensible size and distance. I might fly, or walk far above the ground, the world a blur around me.&lt;/p&gt;

&lt;p&gt;If I have a really bad fever, I might get a related nightmare: instead of distance, my perception of size crashes; everything in the world is cubes of different sizes. Some are so huge I feel sick to my stomach for just comprehending the size of the thing; it feels so wrong. It is as if I truly *comprehended* the size of the Earth, not just knew it as a number. Then that cube is dwarfed a million times over by its neighbour, and I’ll wake up from the chaotic, extreme feelings of discomfort.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/CgZ8ZbsAfxE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/CgZ8ZbsAfxE/182741970</link><guid isPermaLink="false">http://overooped.com/post/182741970</guid><pubDate>Tue, 08 Sep 2009 12:45:18 +0200</pubDate><feedburner:origLink>http://overooped.com/post/182741970</feedburner:origLink></item><item><title>Canabalt is a very cool atmospheric game/toy with only a single...</title><description>&lt;img src="http://14.media.tumblr.com/tumblr_kpbc6oTisZ1qz4mrco1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;a href="http://adamatomic.com/canabalt/"&gt;Canabalt&lt;/a&gt; is a very cool atmospheric game/toy with only a single control: jump. It is reminiscent of Mirror’s Edge. The visuals are stunning, the music nice and the sound design fantastic. &lt;i&gt;(via  &lt;a href="http://www.davidslog.com/177521091/canabalt-via-caseypugh-jakelodwick-and-travors"&gt;david&lt;/a&gt;&lt;/i&gt;, &lt;a href="http://caseypugh.tumblr.com/post/177409884/canabalt"&gt;&lt;i&gt;caseypugh&lt;/i&gt;&lt;/a&gt;&lt;i&gt;, &lt;/i&gt;&lt;a href="http://jakelodwick.tumblr.com/post/177425263/canabalt-is-beautiful-thrilling-bet-you-cant"&gt;&lt;i&gt;jakelodwick&lt;/i&gt;&lt;/a&gt;&lt;i&gt;, and &lt;/i&gt;&lt;a href="http://travors.com/post/177465792/canabalt-is-beautiful-thrilling-bet-you-cant"&gt;&lt;i&gt;travors&lt;/i&gt;&lt;/a&gt;&lt;i&gt;)&lt;/i&gt;

&lt;p&gt;(btw: &lt;a href="https://dl.getdropbox.com/u/6775/7606m.png"&gt;7606 m&lt;/a&gt;!)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/PEoIAoTYkvA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/PEoIAoTYkvA/178198099</link><guid isPermaLink="false">http://overooped.com/post/178198099</guid><pubDate>Wed, 02 Sep 2009 22:35:00 +0200</pubDate><feedburner:origLink>http://overooped.com/post/178198099</feedburner:origLink></item><item><title>Secret gems in Snow Leopard</title><description>&lt;p&gt;Just got a few so far, but I’m sure Twitter will yield lots more over the coming days, so I’m preparing for a gigantic list ;)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;b&gt;Exposé&lt;/b&gt;&lt;ul&gt;
&lt;li&gt;Press space to make the thumbnail under the cursor full-sized (for quick previews). &lt;a href="http://twitter.com/fraserspeirs/status/3630015024"&gt;@fraserspeirs&lt;/a&gt;
&lt;/li&gt;
    &lt;li&gt;Press command-1 to sort windows by name. &lt;a href="http://twitter.com/mikeysan/status/3630097863"&gt;@mikeysan&lt;/a&gt;
&lt;/li&gt;
    &lt;li&gt;Press command-2 to group by application. &lt;a href="http://twitter.com/mikeysan/status/3630097863"&gt;@mikeysan&lt;/a&gt;
&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;

  &lt;li&gt;
&lt;b&gt;Dock&lt;/b&gt;&lt;ul&gt;
&lt;li&gt;Minimize windows to “the application icon” is a setting on Dock, which will store your minimized windows in Exposé instead of on the right side of the dock. Highly recommended! &lt;a href="http://twitter.com/joar_at_work/status/3640213895"&gt;@joar_at_work&lt;/a&gt;
&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;
  &lt;li&gt;
&lt;b&gt;Other UI&lt;/b&gt;&lt;ul&gt;
&lt;li&gt;Show hidden files and folders in an Open/Save dialog by pressing command-shift-period &lt;a href="http://daringfireball.net/linked/2009/09/18/snow-leopard-hidden-files"&gt;@gruber&lt;/a&gt;
&lt;/li&gt;
  &lt;/ul&gt;
&lt;/li&gt;

  &lt;li&gt;
&lt;b&gt;For devs&lt;/b&gt;&lt;ul&gt;
&lt;li&gt;-[NSArray enumerateObjectsAtIndexes:options:usingBlock:] with NSEnumerationConcurrent. &lt;a href="http://twitter.com/fraserspeirs/status/3625065504"&gt;@fraserspeirs&lt;/a&gt;
&lt;/li&gt;
    &lt;li&gt;/System/Library/Frameworks/JavaScriptCore.framework/Versions/A/Resources/jsc is an interactive Javascript commandline tool. Could be useful? &lt;a href="http://twitter.com/ccgus/status/3811920193"&gt;@ccgus&lt;/a&gt;
&lt;/li&gt;

  &lt;/ul&gt;
&lt;/li&gt;

&lt;/ul&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/ISDdyiBWxNg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/ISDdyiBWxNg/175380423</link><guid isPermaLink="false">http://overooped.com/post/175380423</guid><pubDate>Sun, 30 Aug 2009 11:58:00 +0200</pubDate><feedburner:origLink>http://overooped.com/post/175380423</feedburner:origLink></item><item><title>The One Objective-C Block Memory Management Example You Need To Read</title><description>This is what I wish they would have shown us at WWDC, so that I would have understood &lt;a href="http://thirdcog.eu/pwcblocks/#cblocks-memory"&gt;block memory management&lt;/a&gt; and wouldn’t have felt like I had to &lt;a href="http://thirdcog.eu/pwcblocks/"&gt;write an entire frickin’ guide to help others avoid my confusion&lt;/a&gt;:

&lt;div style="background-color: #005885; border: 1px solid #33799d; padding-left: 1em; margin-top: 1em;"&gt;&lt;pre&gt;&lt;code&gt;typedef void(^BasicBlock)(void);

void doStuff(BOOL cool) {
    BasicBlock block;
    if(cool)
        block = ^ { ... };
    else
        block = ^ { ... };
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;… roughly translates to …&lt;/p&gt;

&lt;div style="background-color: #005885; border: 1px solid #33799d; padding-left: 1em; margin-top: 1em;"&gt;&lt;pre&gt;&lt;code&gt;void doStuff(BOOL cool) {
    BasicBlock block;
    if(cool) {

        struct Block_literal_1 blockStorage1 = ...;
        block = &amp;blockStorage1;

    } // blockStorage1 falls off the stack here

    else 

    {

        struct Block_literal_1 blockStorage2 = ...;
        block = &amp;blockStorage2;

    } // blockStorage2 falls off the stack here


    // and block thus points to non-existing/invalid memory here.
    ...
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;… which is why you need to do this, to move the block to the &lt;em&gt;heap&lt;/em&gt;:&lt;/p&gt;

&lt;div style="background-color: #005885; border: 1px solid #33799d; padding-left: 1em; margin-top: 1em;"&gt;&lt;pre&gt;&lt;code&gt;void doStuff(BOOL cool) {
    BasicBlock block;
    if(cool)
        block = Block_copy(^ { ... });
    else
        block = Block_copy(^ { ... });
    ...
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;(which in Cocoa is &lt;code&gt;block = [[^ { ... } copy] autorelease]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This example applies to returning blocks from functions or methods, storing blocks in collections, storing them in instance variables and other variables on the heap, and so on.&lt;/p&gt;

&lt;p&gt;(Sudden realization and example inspiration brought to you by the &lt;a href="http://clang.llvm.org/docs/BlockImplementation.txt"&gt;Clang Block Implementation Specification&lt;/a&gt;)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/zw4_E3uyxOU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/zw4_E3uyxOU/174960131</link><guid isPermaLink="false">http://overooped.com/post/174960131</guid><pubDate>Sat, 29 Aug 2009 23:34:00 +0200</pubDate><feedburner:origLink>http://overooped.com/post/174960131</feedburner:origLink></item><item><title>Teaching Ruby to High School Girls</title><description>&lt;a href="http://teachingkids.railsbridge.org/2009/08/15/teaching-ruby-to-high-school-girls.html"&gt;Teaching Ruby to High School Girls&lt;/a&gt;: &lt;p&gt;&lt;a href="http://blog.andymatuschak.org/post/172776592/teaching-ruby-to-high-school-girls"&gt;andymatuschak&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;img src="http://andymatuschak.org/files/TumblrImages/TeachingRuby.png"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.sarahmei.com/blog/"&gt;Sarah Mei&lt;/a&gt; bravely stood in front of a class of high school girls and helped them make a pixelly Etch-a-Sketch. The awesome part? They &lt;i&gt;loved&lt;/i&gt; it.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://teachingkids.railsbridge.org/2009/08/15/teaching-ruby-to-high-school-girls.html"&gt;Her detailed transcript of the experience&lt;/a&gt; is enthralling. She has some very clever insights about teaching this stuff:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Ruby purists may protest that I didn’t talk about objects, or classes, but for the ones who keep going with programming, they’ll get that soon enough. In this class, I just wanted them to have fun and see what they could do with code. […]&lt;/p&gt;
&lt;p&gt;I realize now […] that you can’t be too fussy about style. If they want to skip indentation altogether and give all their variables one-letter names, that’s fine, as long as they’re still excited about what they’re doing.&lt;/p&gt;
&lt;p&gt;If they keep going with it, they’ll realize that there’s a reason you indent and give your variables descriptive names, and they’ll start doing it. But […] nothing ensures that they drop it like a hot potato better than harping on them to write maintainable code.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sarah’s totally got it: kids have to be inspired before they’ll care.&lt;/p&gt;
&lt;p&gt;When I was a kid, I got drawn in by the prospect of making games—that’s really common, right?—but games are a tricky inspirational goal because &lt;a href="http://web.archive.org/web/20070610125837/hackety.org/2007/05/07/noWayKidsWillAllMakeGames.html"&gt;they’re really freaking complicated to make&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If it’s just a matter of inspiration, though, a student could start by modding existing games or building them through &lt;a href="http://gamesalad.com/"&gt;drag-and-drop tools&lt;/a&gt;. If the kid is really interested, he’ll outgrow that stuff and find himself with a real hunger for knowledge.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Back in high school, we had to do 50 hours of “CAS” each year (“Creativity, Activity and Service”); S was my favorite, because I could hold courses in stuff I loved, like programming, gnuplot, and other nerdy stuff. It was so great! I ‘tricked’ people who didn’t know computers and never got along with them into learning and successfully using &lt;em&gt;a frickin’ command line unix tool!&lt;/em&gt; Mmm, gnuplot…&lt;/p&gt;

&lt;p&gt;I held one course in QuickBASIC, to teach basic programming, which which I made all my friends attend. QB is fun to experiment with because of the built-in &lt;a href="http://en.wikipedia.org/wiki/Turtle_graphics"&gt;turtle graphics&lt;/a&gt;. My last task I gave them was to spend the entire class drawing a picture. One of them managed to draw a whole scene with colors and animation and everything, which was a very proud moment :)&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/jHi-G_D3Vrg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/jHi-G_D3Vrg/173095722</link><guid isPermaLink="false">http://overooped.com/post/173095722</guid><pubDate>Thu, 27 Aug 2009 19:07:02 +0200</pubDate><feedburner:origLink>http://overooped.com/post/173095722</feedburner:origLink></item><item><title>Neurosonics Audiomedical Laboratory footage
This is is just...</title><description>&lt;object width="400" height="336"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ukZCHX5ffEI&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ukZCHX5ffEI&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="400" height="336" allowFullScreen="true" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;b&gt;Neurosonics Audiomedical Laboratory footage&lt;b&gt;&lt;br/&gt;
This is is just beautiful. Really nice audio design, but the visual stuff is what’ll blow you away.&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/57qemWb4MRU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/57qemWb4MRU/172139897</link><guid isPermaLink="false">http://overooped.com/post/172139897</guid><pubDate>Wed, 26 Aug 2009 16:18:26 +0200</pubDate><feedburner:origLink>http://overooped.com/post/172139897</feedburner:origLink></item><item><title>This certainly goes hand in hand with what I always knew but...</title><description>&lt;object width="400" height="292"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;param name="bgColor" value="#ffffff" /&gt;&lt;param name="flashvars" value="vu=http://video.ted.com/talks/embed/DanielPink_2009G-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DanielPink-2009G.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=618" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" width="400" height="292" allowfullscreen="true" flashvars="vu=http://video.ted.com/talks/embed/DanielPink_2009G-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DanielPink-2009G.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=618"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;This certainly goes hand in hand with what I always knew but didn’t know I knew! How do I know that? Well, just right now I was watching a TED talk instead of writing code for a very well-paid client job, that’s how! And see? Here I’m writing a blog entry instead of writing said code. It’s a conspiracy of the mind! Memes, they eat my brains away.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/LYE1C0_agPQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/LYE1C0_agPQ/170528794</link><guid isPermaLink="false">http://overooped.com/post/170528794</guid><pubDate>Mon, 24 Aug 2009 18:31:00 +0200</pubDate><feedburner:origLink>http://overooped.com/post/170528794</feedburner:origLink></item><item><title>I NEED to make something with this. Gimme the code! Or maybe...</title><description>&lt;object width="400" height="336"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Y9HMn6bd-v8&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Y9HMn6bd-v8&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="400" height="336" allowFullScreen="true" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;I NEED to make something with this. Gimme the code! Or maybe there’s a paper? Need to get my GPGPU on.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/1Oh-3HTBGCQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/1Oh-3HTBGCQ/169108968</link><guid isPermaLink="false">http://overooped.com/post/169108968</guid><pubDate>Sat, 22 Aug 2009 21:17:47 +0200</pubDate><feedburner:origLink>http://overooped.com/post/169108968</feedburner:origLink></item><item><title>Programming with C Blocks on Apple Devices</title><description>&lt;a href="http://thirdcog.eu/pwcblocks/"&gt;Programming with C Blocks on Apple Devices&lt;/a&gt;: &lt;p&gt;I wrote a guide to using the new neat Blocks feature from Snow Leopard. Bonus: You can use them on 10.5 and iPhone too! Read on, and please leave a comment with what you thought of it, especially if you disliked it or something’s amiss.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/8o7tV76TxxY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/8o7tV76TxxY/164305583</link><guid isPermaLink="false">http://overooped.com/post/164305583</guid><pubDate>Sun, 16 Aug 2009 21:08:18 +0200</pubDate><feedburner:origLink>http://overooped.com/post/164305583</feedburner:origLink></item><item><title>The specialized device</title><description>&lt;p&gt;&lt;a href="http://mrgan.tumblr.com/post/162888021/the-specialized-device"&gt;mrgan&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;And one last area where the tablet may create a whole new category: gaming. To my knowledge there’s been no 10”, handheld, touch-input game console. Again, the form factor won’t just mean that now your &lt;a href="http://rolando.ngmoco.com/"&gt;Rolandos&lt;/a&gt; will be four times as big; it will mean whole new kinds of games. I don’t have the imagination to guess what these will be, but the possibilities are enormous, even assuming that Apple doesn’t add any new capabilities (such as a front-facing camera).&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;How about this? (youtube videos below for you dashboarders)&lt;/p&gt;

&lt;div style="position:relative; left: -25px;"&gt;
&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5ohNzHWL7FI&amp;hl=en&amp;fs=1&amp;"&gt;
&lt;param name="allowFullScreen" value="true"&gt;
&lt;param name="allowscriptaccess" value="always"&gt;
&lt;embed src="http://www.youtube.com/v/5ohNzHWL7FI&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;br/&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/2-oArux66gA&amp;hl=en&amp;fs=1&amp;"&gt;
&lt;param name="allowFullScreen" value="true"&gt;
&lt;param name="allowscriptaccess" value="always"&gt;
&lt;embed src="http://www.youtube.com/v/2-oArux66gA&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;

&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/overooped/~4/l_0dxxaSHIo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/overooped/~3/l_0dxxaSHIo/163021397</link><guid isPermaLink="false">http://overooped.com/post/163021397</guid><pubDate>Fri, 14 Aug 2009 22:18:00 +0200</pubDate><feedburner:origLink>http://overooped.com/post/163021397</feedburner:origLink></item></channel></rss>
