<?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: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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>thyncology</title>
	
	<link>http://www.thynctank.com</link>
	<description>The Science of Thynctank.</description>
	<lastBuildDate>Sun, 19 Jun 2011 04:33:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/thyncology" /><feedburner:info uri="thyncology" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>RequireJS, CoffeeScript, Vimperator, and Other Fancy Stuff</title>
		<link>http://feedproxy.google.com/~r/thyncology/~3/1uk_BSaNFLU/</link>
		<comments>http://www.thynctank.com/javascript/2011/06/requirejs-coffeescript-vimperator-and-other-fancy-stuff/#comments</comments>
		<pubDate>Wed, 15 Jun 2011 10:16:10 +0000</pubDate>
		<dc:creator>thynctank</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[coffeescript]]></category>
		<category><![CDATA[funcunit]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[jailbreaking]]></category>
		<category><![CDATA[RequireJS]]></category>
		<category><![CDATA[sass]]></category>
		<category><![CDATA[selenium]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[vimperator]]></category>

		<guid isPermaLink="false">http://www.thynctank.com/?p=289</guid>
		<description><![CDATA[Topics for this post: Lots of JS, Selenium, Jailbreaking, Vimperator. I&#8217;ve begun messing with a number of different technologies all around the same time &#8211; namely, RequireJS, CoffeeScript, and FuncUnit. I&#8217;ve managed to reconcile them with one another for the most part, which is quite fun. RequireJS I&#8217;ve actually been tinkering with to varying degrees [...]]]></description>
			<content:encoded><![CDATA[<p>Topics for this post: Lots of JS, <a href="http://seleniumhq.org">Selenium</a>, <a href="http://lifehacker.com/5771943/the-always-up+to+date-guide-to-jailbreaking-your-ios-device">Jailbreaking</a>, <a href="http://vimperator.org">Vimperator</a>.</p>

<p>I&#8217;ve begun messing with a number of different technologies all around the same time &#8211; namely, <a href="http://requirejs.org">RequireJS</a>, <a href="http://coffeescript.com">CoffeeScript</a>, and <a href="http://funcunit.com">FuncUnit</a>. I&#8217;ve managed to reconcile them with one another for the most part, which is quite fun.</p>

<p>RequireJS I&#8217;ve actually been tinkering with to varying degrees for a few months now, and am finally starting to put into practice across the board at <a href="http://crossloop.com">CrossLoop</a>. I&#8217;ve got a few AMD modules in use, and a number of other scripts which RequireJS loads just as well. I&#8217;m in the process of breaking a lot of complexly-ordered script tag inclusions into neat-and-tidy cascading dependencies via AMD and RequireJS&#8217;s <code>define()</code> and <code>require()</code> functions.</p>

<p>I started work on an article on the topic of RequireJS a couple months ago, and hope to resume writing it in the next couple days. Interestingly, RequireJS has gone through some changes (and the CommonJS list has seen some activity revolving around &#8220;casting out&#8221; RequireJS or unlisting AMD as part of the CommonJS spec/draft/whatever. (some of this revolves around treating AMD as an &#8220;authoring format&#8221; versus as a &#8220;transport format&#8221;, which is an important differentiation to some. The feasibility of the dynamically-generated [with dependencies] transport proposition is questionable&#8230;) There is some feeling the two are irreconcilable. I&#8217;m not of that opinion, but I may not be in a good position to knowingly opine. So I won&#8217;t go into much more detail here than to say I&#8217;m still digging RequireJS, and that it&#8217;s helping me to organize my day job code better.</p>

<p>I&#8217;ve recently tried briefly to rewrite some of our CSS as Sass, and I&#8217;ve come to a stop. I think what would be more productive right now is a complete rewrite/reorg of the CSS as-is to shorten the files from 1000+ lines to something more manageable. We can always @import additional files, and RequireJS can stitch together CSS files once I come up with a proper build/release process and we automate it for production! (right now we&#8217;re entirely manual)</p>

<p>I&#8217;ve also finally gotten round to writing some unit tests for much of the JS code I&#8217;ve written for CrossLoop. I&#8217;ve been using <a href="http://docs.jquery.com/Qunit">QUnit</a> for this, which is handy enough for most basic work. Having previously used <a href="http://jania.pe.kr/aw/moin.cgi/JSSpec">JSSpec</a> thoroughly, I do miss proper setup/teardown across a group of related tests, and nesting these sorts of things would allow me to keep things much DRYer than I&#8217;m ending up doing currently. QUnit has &#8220;modules&#8221; as declared with the <code>module("module name")</code> call, but it doesn&#8217;t really logically group code together, merely bookends code between calls to <code>module()</code>. Meh.</p>

<p>The unit tests I&#8217;ve written thus far have all been written in CoffeeScript and loaded into the page via RequireJS&#8217;s &#8220;cs&#8221; plugin (<code>require(["cs!test1", "cs!test2"], $.noop)</code> for no post-test code, which is what I&#8217;ve been doing) Seems to work well and has given me good practice in writing concise CoffeeScript, as well as discovering gotchas like the &#8220;<code>isnt</code> is not <code>is not</code>&#8221; comment I made after writing more than a few asserts where I wrote something like <code>assert x is not -1</code>. What this actually resolves to is <code>assert(x == !-1)</code> which is the same as asserting x == 1, which it frequently wasn&#8217;t. (you may have guessed I was checking indexOf on strings, etc)</p>

<p>The CoffeeScript plugin for RequireJS is available right <a href="http://requirejs.org/docs/download.html#cs">on the main site</a> and works just like any other plugin; put it in the regular modules dir, no need to load it manually, etc.</p>

<p>I can definitely see myself writing more CoffeeScript going forward, likely it&#8217;ll be the source language for txtwax, a text adventure game library I&#8217;ve been putting off writing for some time now. It may also provide a coffee/node backend for txtwax servers. I really <em>love</em> a number of features in CoffeeScript, such as automatic local variables, array comprehensions, implicit returns, decomposition assignment, multiline strings, string interpolation, heregexes, function syntax, function binding, improved switches, ranges, postfix conditionals&#8230; the list really does go on a bit. Anyone who hasn&#8217;t played with it, you have no reason not to do so, this language is useful right now. Tests are the perfect use case to dip a toe in the coffee (!), since even if you do worry about CS stability or whatever, they&#8217;re not user-facing.</p>

<p>I do appreciate the &#8220;fixture&#8221; in recent versions of QUnit, which allows you to throw arbitrary markup into the DOM temporarily, with the understanding that QUnit will clean it up after you&#8217;re done with it. Now if only there was a way to tester higher-level application-level functionality in JS&#8230; waitaminnit, that&#8217;s what FuncUnit is for!</p>

<p>FuncUnit (a product of <a href="http://jupiterit.com">JupiterIT</a>, the lads behind <a href="http://javascriptmvc.com">JavaScriptMVC</a>) builds on QUnit, incorporating their Syn synthetic events library for typing in fields, tabbing into and out of fields, hovering over and dragging and dropping. Lots of heavyweight event stuff that might otherwise take quite a bit of hacking on your own to figure out. On top of this, FuncUnit adds support for opening pages in separate windows and navigating through the contents of the window via <code>S()</code>, a selector for running Syn methods identical to jQuery&#8217;s self-titled function or <code>$</code>. Like jQuery, FuncUnit uses the Sizzle selector engine for this purpose.</p>

<p>FuncUnit seems great, especially when you add in the ability to record tests via FuncIt, (a Selenium IDE-like recording environment) the ability to play back tests headless, (without a browser &#8211; via Resig&#8217;s env.js to mimic a browser for continuous integration) or the ability to drive Selenium RC for true multi-browser/platform automated testing. I&#8217;ve yet to give it a real run for its money, because I&#8217;ve hit a speed bump I&#8217;ve yet to find a way around, which is transitioning from http pages to https, or vice versa. Many pages, particularly logins, make this jump and I don&#8217;t believe a remote-controlled page using <code>S()</code> can retain control after the page switches protocols. I&#8217;m very happy to hear a workaround, though! (I&#8217;d imagine env.js or Selenium-driving wouldn&#8217;t have this problem, but I&#8217;d like to be able to run the tests raw in the browser as well..)</p>

<p>I also recently started using Vimperator. This software, combined with the speed Firefox 4 brings with it, have me switching back to Firefox as primary browser, both for development and general browsing as a user. Vimperator takes getting used to, for sure, but if you&#8217;re a Vim head like I&#8217;ve become over the last 6 months or so, you may never see browsing the same again. Quick hints allow you to jump to fields/click links/submit forms faster than ever before and without a mouse. Your fingers will fly, taking you from buffer to buffer (tabs), zooming with new ease, and adding macros and mapping arbitrary commands to keys. All of this is retained in a .vimperatorrc file, which feels right at home to a Vim user! Modal browsing is great, and shedding even more of the browser&#8217;s chrome is liberating as well. I occasionally still like to browse with tabs visible (:set gui=tabs) and haven&#8217;t found a handy way of launching Selenium IDE via a keybinding but am otherwise nice and clean with gui=none.</p>

<p>There&#8217;s a knockoff for Chrome called Vimium, which is uh&#8230; fun but not nearly as powerful as Vimperator, due to limitations in Chrome&#8217;s JS plugin architecture, I assume. There&#8217;s a newer version of Vimperator called Pentadactyl, but I haven&#8217;t found a reason to switch and some reasons to stay, such as support for apptabs in Firefox 4 (:set apptab toggles a buffer as one, and app tabs can&#8217;t be accidentally closed via <code>d</code> the way normal tabs can)</p>

<p>Speaking of Vim, I&#8217;m currently trying to find the best TextMate-like &#8220;select some text and wrap it with delimiters&#8221; plugin. This should allow me to select text in visual mode and wrap it with quotes, single or double, parens, curlies, asterisks, underscores, or what have you. Please let me know if you know of one! (would like to be able to edit the delimiters or have them correspond to those recognized by % when jumping to matching delimiters.) I&#8217;m also still really interested in getting CommandT working under Windows (and Linux for that matter) so any tips there are welcome as well.</p>

<p>I also finally jail broke my iPod Touch 2nd or 3rd gen, whatever it is. I&#8217;m almost ready to toss the damned thing, it&#8217;s so slow. jail breaking allows me to lock orientation and enables multitasking, though the device seems to crash under the weight of more than one app in memory at a time. Haven&#8217;t really used Cydia much, but if I do I&#8217;ll surely blog about my experiences with it. I can tell you, however, that the process of jail breaking (I used red sn0w) is needlessly littered with hurdles and makes the user feel silly at best. I&#8217;ve mostly been neglecting my iTouch in favor of my iPad, though.</p>

<p>Really excited to see the TouchPad (and Pre 3!) in person. Also excited about improved notifications in newer iOS, but multitasking in webOS is just so much nicer.</p>
<img src="http://feeds.feedburner.com/~r/thyncology/~4/1uk_BSaNFLU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thynctank.com/javascript/2011/06/requirejs-coffeescript-vimperator-and-other-fancy-stuff/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.thynctank.com/javascript/2011/06/requirejs-coffeescript-vimperator-and-other-fancy-stuff/</feedburner:origLink></item>
		<item>
		<title>Unlocked GSM Pre2 Unlock/Devmode/Appcat Instructions</title>
		<link>http://feedproxy.google.com/~r/thyncology/~3/Pwqb31wuwoU/</link>
		<comments>http://www.thynctank.com/mobile-2/2011/05/unlocked-gsm-pre2-unlockdevmodeappcat-instructions/#comments</comments>
		<pubDate>Sun, 08 May 2011 05:00:47 +0000</pubDate>
		<dc:creator>thynctank</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[app catelog]]></category>
		<category><![CDATA[impostah]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[palm]]></category>
		<category><![CDATA[preware]]></category>
		<category><![CDATA[webOS]]></category>

		<guid isPermaLink="false">http://www.thynctank.com/?p=284</guid>
		<description><![CDATA[For anyone else Palm/HP has deemed worthy of sending a sweet free Pre2, this may be of help. The problem, you see, is that they failed to give any directions on how to get anything done, even getting beyond the activation screens. Are we just supposed to buy a random plan from AT&#38;T or some [...]]]></description>
			<content:encoded><![CDATA[<p>For anyone else Palm/HP has deemed worthy of sending a sweet free Pre2, this may be of help.</p>

<p>The problem, you see, is that <em>they failed to give any directions on how to get anything done</em>, even getting beyond the activation screens. Are we just supposed to buy a random plan from AT&amp;T or some other GSM carrier in hopes that it will work with the device?</p>

<p>Turns out it&#8217;s not at all hard, but it sure <strong>would have been nice if there were instructions packed in the shipping box</strong> with it! Here’s all it takes to get an unlocked GSM Pre in working condition for deploying test apps to and more.</p>

<p>Please note, these instructions work for a US/North American GSM Unlocked Pre2, steps may vary by carrier, <em>YMMV</em>, etc.</p>

<p>First, you will likely want to upgrade to 2.1 (something I sorely wish I could do with my actual day-to-day VZW phone… grumble) and for that you will need two things: the latest webOS Doctor and placing your phone in devmode.</p>

<p>Let’s start with devmode, as there&#8217;s an immediate sense of gratification. Pretty easy, turn the little bastard on and you&#8217;re greeted by a “give me a SIM card, man” screen. Ignore this and instead start typing in the secret code from the keypad. The full code is “#<em>DEVMODE#” as typed on the phone’s dial pad. The problem, of course, is that the dial pad isn&#8217;t accessible yet. So you have to start with the keypad. Enter the “#</em>” bit, and the dial pad should appear. Once it does, enter the rest (“3386633#”) and tap the green “call” button. You should have entered the Developer Mode app, where you can toggle the devmode status. Do so and agree to the follow up “can I restart Pa?” dialog.</p>

<p>Once it restarts, the phone will be in developer mode, which means some ports are open which allow you to shell into the device, push app installs to it, etc. Right now you can play around in webOS for a moment if you never had before, or you can get back to business.</p>

<p>Next up is getting webOS 2.1 on that sucker. Find the direct JAR download for your device from <a href="http://www.webos-internals.org/wiki/Webos_Doctor_Versions">http://www.webos-internals.org/wiki/Webos<em>Doctor</em>Versions</a>, which is quicker than Palm/HP’s own form-based finder thing. Once you&#8217;ve got it, run it and connect your device. Should be pretty easy to kick off the upgrade process, then you can sit back and take a nap or get a coffee or roast a pig or whatever.</p>

<p>Once that finishes, you may have to do the “#*DEVMODE#” thing again, I forget since I just did it once so far and my memory sucks. Anyway now you will have a 2.1 device with fancy features like voice dial and Exhibition and I think there&#8217;s some lawn gnome app or something.</p>

<p>Last cool couple steps on the agenda are getting you access to homebrew and the app cat, which we&#8217;ll accomplish by getting ourselves all SDK’d up (grab and install that from <a href="https://developer.palm.com/content/resources/develop/sdk_pdk_download.html">https://developer.palm.com/content/resources/develop/sdk<em>pdk</em>download.html</a>) then downloading and <code>palm-install</code>ing Preware, which you can do here: <a href="http://get.preware.org/">http://get.preware.org/</a></p>

<p>After adding Preware, install Impostah (you are going to need to setup Wifi on the device somewhere along the line before you can grab apps from Preware) and run through the Activation wizard. If you already have a profile (on another webOS phone, for instance) I would suggest creating a new profile so as to not muck with the existing one.</p>

<p>After that you will have full access to the App Catalog for your region and should be good to go for adding any commercial or homebrew apps, all the goodness that is webOS.</p>

<p>Pretty rad, eh?</p>

<p>Credit goes to Rod Whitby from webOS Internals for so much of this, including the forum post (<a href="http://forums.precentral.net/webos-internals/281075-global-paid-app-catalog-access-new-unlocked-gsm-pre-2-devices-using-impostah.html">http://forums.precentral.net/webos-internals/281075-global-paid-app-catalog-access-new-unlocked-gsm-pre-2-devices-using-impostah.html</a>) that motivated me to run through it all. It was a breeze in the end.</p>
<img src="http://feeds.feedburner.com/~r/thyncology/~4/Pwqb31wuwoU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thynctank.com/mobile-2/2011/05/unlocked-gsm-pre2-unlockdevmodeappcat-instructions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thynctank.com/mobile-2/2011/05/unlocked-gsm-pre2-unlockdevmodeappcat-instructions/</feedburner:origLink></item>
		<item>
		<title>Weirdness in Firebug with XHR 302/JSON</title>
		<link>http://feedproxy.google.com/~r/thyncology/~3/cq70IGJastE/</link>
		<comments>http://www.thynctank.com/javascript/2011/04/weirdness-in-firebug-with-302json/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 21:39:27 +0000</pubDate>
		<dc:creator>thynctank</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[Firebug]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[json]]></category>

		<guid isPermaLink="false">http://www.thynctank.com/?p=271</guid>
		<description><![CDATA[Just discovered a strange bug in Firebug 1.7.1b1. It goes a little something like this: Make an XHR request (in this case a POST) to a service (in this case a Spring authentication URL) that redirects to some other URL which itself provides a JSON body indicating success or failure of login. So again, super [...]]]></description>
			<content:encoded><![CDATA[<p>Just discovered a strange bug in Firebug 1.7.1b1. It goes a little something like this:</p>

<p>Make an <em>XHR</em> request (in this case a POST) to a service (in this case a Spring authentication URL) that redirects to some other URL which itself provides a JSON body indicating success or failure of login.</p>

<p>So again, super simple:</p>

<ol>
<li>POST to URL A. This responds with a 302 to URL B.</li>
<li>Browser auto-GETs URL B, which contains a JSON content body.</li>
</ol>

<p>What Firebug sees, however, is this:</p>

<ol>
<li>POST to URL A. This responds with a 302 to URL B, but <em>also</em> appears to return a JSON body.</li>
<li>Browser auto-GETs URL B, which appears to have no body at all.</li>
</ol>

<p>And here&#8217;s what it looks like:</p>

<p><img src="http://www.thynctank.com/wp/wp-content/uploads/2011/04/2011-04-11_1423.png" alt="Firebug screen shot of strange behavior" /></p>

<p>I wonder why it&#8217;s mixing the responses like this&#8230; has anyone else seen this?</p>
<img src="http://feeds.feedburner.com/~r/thyncology/~4/cq70IGJastE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thynctank.com/javascript/2011/04/weirdness-in-firebug-with-302json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thynctank.com/javascript/2011/04/weirdness-in-firebug-with-302json/</feedburner:origLink></item>
		<item>
		<title>Linkfest I</title>
		<link>http://feedproxy.google.com/~r/thyncology/~3/O79KvaSxZjM/</link>
		<comments>http://www.thynctank.com/web-2/2011/04/linkfest-i/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 10:51:55 +0000</pubDate>
		<dc:creator>thynctank</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[CommonJS]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[dojo]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[Jo]]></category>
		<category><![CDATA[linkfest]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[phonegap]]></category>

		<guid isPermaLink="false">http://www.thynctank.com/?p=269</guid>
		<description><![CDATA[So this is the first Linkfest, but I intend for it to become a regular tradition every few weeks when I&#8217;ve accumulated enough links to justify it. It&#8217;s basically just going to be a collection of recent links I&#8217;ve come across (some may be revisits) along with any commentary. All content will be on-topic for [...]]]></description>
			<content:encoded><![CDATA[<p>So this is the first Linkfest, but I intend for it to become a regular tradition every few weeks when I&#8217;ve accumulated enough links to justify it. It&#8217;s basically just going to be a collection of recent links I&#8217;ve come across (some may be revisits) along with any commentary. All content will be on-topic for the blog.</p>

<p>Without further ado (have recently come across blogs incorrectly using &#8220;adieu&#8221; here in place of &#8220;ado&#8221; and it drove me mad!)&#8230;</p>

<ol>
<li><a href="http://ace.ajax.org/">Ace</a> I didn&#8217;t even realize Bespin was Skywriter before it became Ace! I had heard of Cloud9 via NodeJS Camp, but didn&#8217;t realize it was this far along. Thanks <a href="http://twitter.com/davidmrivers">@davidmrivers</a> for linking off to this or mentioning it or whatever it was. I know you hooked it up. Have to play with this at some point&#8230; anyone who&#8217;s doing so already give a holler and let me know how it&#8217;s going!</li>
<li><a href="http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/">CORS</a> Have started working on mobile stuff at CrossLoop (via <a href="http://build.phonegap.com/">PhoneGap Build</a> and <a href="http://joapp.com/docs/index.html">Jo</a>) and recently started using XHR for login within the app. PhoneGap enables this somehow via CORS (this is my understanding, please correct if wrong) which allows for Cross Origin Resource Sharing through the exchange of headers listing trusted origins etc. Really just got a brief understanding of it out of curiosity.</li>
<li><a href="http://www.campaignmonitor.com/css/">Email CSS</a> More goods from camp <a href="http://twitter.com/davidmrivers">David</a>, this time because I was dealing with weird rendering of images in an email (well in gmail anyway&#8230; bloody HTML email!)</li>
<li><a href="http://snook.ca/archives/accessibility_and_usability/keyboard-accessibility-for-web-apps">Keyboard Accessibility</a> Nice little writeup by Jonathan Snook about keyboard accessibility in general and his work with Yahoo! on their revamped webmail client in specific.</li>
<li><a href="http://unetbootin.sourceforge.net/">UNetBootIn</a> after trying in vain to find a Mac version of this great little tool, I came to the conclusion I must have hallucinated it the last time I installed Easy Peasy to my netbook. I&#8217;ve also been barely using the netbook, after spending a night or so trying to install Mac on it unsuccessfully&#8230; <em>cough</em> waste of space/time/money <em>cough</em> Anyway the real deal Windows-only tool allows you to select from a number of different OSes and versions to easily throw together a bootdisk, be it optical or otherwise.</li>
<li><a href="http://msdn.microsoft.com/en-us/scriptjunkie/gg749824.aspx">Testing with QUnit</a> a good look at where QUnit is now, which is a bit further than last time I was using it. Happy to see the reusable DOM fixture and the test runner UI niceties.</li>
<li><a href="http://docs.phonegap.com/phonegap_network_network.md.html#Network">PhoneGap Network</a> More mobile information, this one is on detecting network availability using PhoneGap. Be wary of the inconsistent platform handling of <code>reachability</code>!</li>
<li><a href="http://dojotoolkit.org/features/1.6/async-modules">Dojo AMD</a> With the release of Dojo 1.6, they&#8217;ve started migrating toward a CommonJS AMD-based module format, and are suggesting using RequireJS or other similar libs for loading them now, but my understanding is they still support (but deprecate) old-style <code>dojo.require()</code> loading for the time being.</li>
<li><a href="http://andyet.net/blog/2010/oct/29/building-a-single-page-app-with-backbonejs-undersc/">Backbone Etc</a> neat little discussion on backbone, underscore and jQuery. Most folks seem to dig on backbone, though others feel it&#8217;s heavy handed. I don&#8217;t know how I feel yet, haven&#8217;t actually used it.</li>
<li><a href="http://funkatron.com/posts/twitters-ecosystem-streamlining-and-what-it-means-for-webos-devs.html">Funkatron on Twitter</a> If you hadn&#8217;t heard, many people feel Twitter recently gave the finger to client developers, and this was Ed Finkler&#8217;s response to the bird-flipping post by Ryan Sarver. I&#8217;m happy Spaz already spirits StatusNet/Identi.ca to some extent on desktop as well as on my phone. It&#8217;s making the possible transition to a freer short-form social network much less painful.</li>
<li><a href="http://appcachefacts.info/">Appcache Facts</a> Haven&#8217;t made use of this yet either, but especially for mobile it&#8217;s going to be important to optimize your web app&#8217;s resources. If you think there&#8217;s a chance you will be working on an offline app in the near future, do yourself a favor and read this.</li>
<li><a href="http://www.w3.org/TR/css3-flexbox/">Flex Box</a> The actual spec for CSS3 flexible box model, which allows for easier grid-based layouts with grid slices that can shrink and grow based on their parent and siblings. Becoming useful because of more-homogenous mobile platforms that tend to use WebKit with these capabilities already available.</li>
<li><a href="http://www.html5rocks.com/tutorials/flexbox/quick/">More Flex Box</a> This one is more readable than the spec</li>
<li><a href="http://nowjs.com/">NowJS</a> Cool stuff for Node though I don&#8217;t fully understand it. Somehow allows for transparent calling of server side code from the client and vice versa. Will probably revisit some day when I&#8217;m actually working with Node.</li>
<li>And finally, <a href="http://replay.waybackmachine.org/20020110170210/http://www.artificialwinter.net/thethynctank/programming.html">Classic Me</a>. This was from a site I had up almost 10 years ago, and for the most part I&#8217;m not embarrassed by it. Fun to see what I was thinking then vs now. Other than experience and broader knowledge, (not to mention a more mature beard and a fuller gut!) I&#8217;d say I feel about the same.</li>
</ol>
<img src="http://feeds.feedburner.com/~r/thyncology/~4/O79KvaSxZjM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thynctank.com/web-2/2011/04/linkfest-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thynctank.com/web-2/2011/04/linkfest-i/</feedburner:origLink></item>
		<item>
		<title>Late night ebooking</title>
		<link>http://feedproxy.google.com/~r/thyncology/~3/5nHkBx-My5I/</link>
		<comments>http://www.thynctank.com/javascript/2011/02/late-night-ebooking-2/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 14:38:33 +0000</pubDate>
		<dc:creator>thynctank</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[CommonJS]]></category>
		<category><![CDATA[ebooks]]></category>
		<category><![CDATA[Jo]]></category>
		<category><![CDATA[RequireJS]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[webOS]]></category>

		<guid isPermaLink="false">http://www.thynctank.com/?p=255</guid>
		<description><![CDATA[After knocking out taxes tonight I read PDFs for a bit. Okay for a couple hours. Finished reading the relevant chapters of Vi and Vim and can safely say that other than scripting, I feel well-versed in vim usage. Finally managed to get pathogen working on my Windows work box (remotely) today, which made me [...]]]></description>
			<content:encoded><![CDATA[<p>After knocking out taxes tonight I read PDFs for a bit. Okay for a couple hours. Finished reading the relevant chapters of <a href="http://www.amazon.com/Learning-Vim-Editors-Arnold-Robbins/dp/059652983X/ref=sr_1_1?ie=UTF8&amp;qid=1297461280&amp;sr=8-1"><em>Vi and Vim</em></a> and can safely say that other than scripting, I feel well-versed in vim usage.</p>

<p>Finally managed to get <a href="https://github.com/tpope/vim-pathogen">pathogen</a> working on my Windows work box (remotely) today, which made me very happy. It was all being held up by a problem resolving https versions of repo URIs, in that all my submodular plugins under <code>bundle/</code> had failed to clone when the first https guy was reached. Be aware of this issue if you&#8217;re gitifying/pathogenizing your vim setup.</p>

<p>I just barely cracked the virtual cover of Stoyan Stefanov&#8217;s <em><a href="http://www.amazon.com/JavaScript-Patterns-Stoyan-Stefanov/dp/0596806752/ref=sr_1_2?ie=UTF8&amp;qid=1297461381&amp;sr=8-2">JavaScript <del datetime="2011-02-11T21:54:24+00:00">Design</del> Patterns</a></em> but am liking the tone quite a bit so far. I&#8217;ve certainly mentioned elsewhere that Stefanov&#8217;s previous book, <em><a href="http://www.amazon.com/Object-Oriented-JavaScript-high-quality-applications-libraries/dp/1847194141/ref=pd_sim_b_3">Object-Oriented JavaScript</a></em>, is my favorite book on the core language, so I have high expectations for this one.</p>

<p>Very excited to see what happens with the <a href="http://www.palm.com/us/products/pads/touchpad/index.html">new webOS stuff</a>, though like many others I&#8217;m a little upset they&#8217;ve pulled the plug on OTA 2.0. Gotta check out Enyo over the weekend. If you&#8217;ve already played with it, please share your opinions in the comments! Anyone heard even a rumbling on carrier rumors?</p>

<p>I also briefly toyed with <a href="http://joapp.com">Jo</a>, a cool [though in-flux] cross-platform mobile JS framework that&#8217;s easy to learn but fairly versatile. Hoping to leverage it (or similar) on a prototype app for CrossLoop Search.</p>

<p>Have used <a href="http://requirejs.org/">RequireJS</a> more at work this past week and am very happy with the ease of use. Next go round I&#8217;ll likely throw together a build file. Right now it&#8217;s just CLI optimizer, and I haven&#8217;t tried the new node-based version yet.</p>

<p>I see a lot of hubbub (some of it bordering on unfriendly) on the CommonJS list, but I&#8217;m glad there&#8217;s more discussion of modules in-browser these days.</p>
<img src="http://feeds.feedburner.com/~r/thyncology/~4/5nHkBx-My5I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.thynctank.com/javascript/2011/02/late-night-ebooking-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.thynctank.com/javascript/2011/02/late-night-ebooking-2/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.422 seconds -->

