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

<channel>
	<title>7fff &#187; Technology</title>
	<atom:link href="http://7fff.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://7fff.com</link>
	<description></description>
	<lastBuildDate>Fri, 30 Dec 2011 21:03:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Technology resolutions for the New Year</title>
		<link>http://7fff.com/2011/12/30/technology-resolutions-for-the-new-year/</link>
		<comments>http://7fff.com/2011/12/30/technology-resolutions-for-the-new-year/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 21:03:10 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=692</guid>
		<description><![CDATA[I know most people make resolutions to lose weight, to have a sunnier disposition, to not kill kittens, etc., but I think this year some technology resolutions are appropriate.
To wit . . . in no particular order. My goal is to accomplish 5 after the first one (which is mandatory!).

Do my part to ensure the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I know most people make resolutions to lose weight, to have a sunnier disposition, to not kill kittens, etc., but I think this year some technology resolutions are appropriate.</p>
<p>To wit . . . in no particular order. My goal is to accomplish 5 after the first one (which is mandatory!).</p>
<ul>
<li>Do my part to ensure the ongoing awesomeness of <a href="http://www.iorahealth.com/">Iora Health</a>&#8217;s technology!</li>
</ul>
<ol>
<li>Attend at least one European technology conference, and/or a medical technology conference.</li>
<li>Don&#8217;t do any non-Iora contracting or proprietary development for friends or former colleagues, no matter how interesting the project is; only open source, which should emerge from Iora. I&#8217;ll allow a couple of projects to be grandfathered-in to a small extent, but that&#8217;s it.</li>
<li>Freshen at least one legacy project with guidance from <a href="http://www.amazon.com/gp/product/0131177052/ref=as_li_ss_tl?ie=UTF8&#038;tag=ce1-20">Working Effectively with Legacy Code</a>.</li>
<li>Present at a Ruby conference.</li>
<li>Don&#8217;t let myself or others build in excess of the story.</li>
<li>Be more persuasive in opposition when I observe myself or others using APIs and/or techniques that are costly (in time or money) or inappropriate. I went down the rabbit hole a bit this year with Google Calendar integration, against my better judgement.</li>
<li>Tighten up my Linux/OS/X and vim dotfiles. I&#8217;ve never used a pre-fab dotfiles and have my own, but it&#8217;s time to look over what&#8217;s out there and integrate some new features. Bonus: Stop using the arrow keys in vim. Use standard vim movement bindings instead.</li>
<li>Sharpen up my Scheme. Be able to write the major combinators without consulting an authority.</li>
<li>Cover more &#8220;hard cases&#8221; for BDD. I allowed too many specs to be more shallow than I know is proper.</li>
<li>Think about how I can productively contribute to hacktivism and/or &#8220;digital humanities&#8221; &#8212; I have a lot of latent knowledge and experience in this area, and it&#8217;s time to revive it. Why should the kids have all the fun?</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2011/12/30/technology-resolutions-for-the-new-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ZOMG! Windows!</title>
		<link>http://7fff.com/2011/12/17/zomg-windows/</link>
		<comments>http://7fff.com/2011/12/17/zomg-windows/#comments</comments>
		<pubDate>Sun, 18 Dec 2011 02:30:56 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=690</guid>
		<description><![CDATA[I haven&#8217;t touched a Windows computer in many years. OK, I have a virtual machine with XP installed, but it&#8217;s a clean install with no cruft and I basically only use it to verify browser stuff.
My dad, though, has two Windows computers, a laptop and a desktop, both running XP from, oh, six years ago. [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I haven&#8217;t touched a Windows computer in many years. OK, I have a virtual machine with XP installed, but it&#8217;s a clean install with no cruft and I basically only use it to verify browser stuff.</p>
<p>My dad, though, has two Windows computers, a laptop and a desktop, both running XP from, oh, six years ago. It is like the dark ages. In our house he needs to use wifi. That means that for his desktop, he needs to use a wireless USB adapter.</p>
<p>Among other things, you can&#8217;t just plug it in and expect it to work: You have to install with a CDROM. That&#8217;s WORNG #1.</p>
<p>Then you get this funky configuration screen just for that adapter, and it supplants your normal Windows settings. WORNG #2.</p>
<p>Then it belabors everything. The scan for SSID&#8217;s is amazingly slow. Then when you pick your network, it wants to show you every damn setting, and exposes the fact that it&#8217;s WPA, etc. A nightmare. WORNG #3.</p>
<p>Then it is so to get itself established after a reboot. WORNG #4.</p>
<p>So it&#8217;s just garbage. I guess I should count my blessings that I could but a device &#8220;Certified for Windows 7&#8243; and see that it works on XP.</p>
<p>Meanwhile . . . email. Outlook Express, ZOMG!!</p>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2011/12/17/zomg-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASUS AiGuru SV1T Skype VideoPhone &#8211; Worst consumer electronics product of 2011 (and 2010 and maybe 2009)</title>
		<link>http://7fff.com/2011/12/14/asus-aiguru-sv1t-skype-videophone-worst-consumer-electronics-product-of-2011-and-2010-and-maybe-2009/</link>
		<comments>http://7fff.com/2011/12/14/asus-aiguru-sv1t-skype-videophone-worst-consumer-electronics-product-of-2011-and-2010-and-maybe-2009/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 14:04:50 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=675</guid>
		<description><![CDATA[

But it seemed like such a good idea at the time,
such a very very good idea at the time.

&#8211; The Darkness





I&#8217;ve used a lot of awful consumer electronics products, but the ASUS AiGuru SV1T wins the &#8220;Worst Consumer Electronics Product of 2011&#8243; Award. Oh, wait, you could buy one in 2010; maybe even in 2009. [...]]]></description>
			<content:encoded><![CDATA[<p></p><div style="float: right;">
<div width="200" style="float: left;">
But it seemed like such a good idea at the time,<br />
such a very very good idea at the time.</p>
<div style="float: right">
&#8211; The Darkness
</div>
</div>
</div>
<div style="clear: both;"></div>
<p><br/></p>
<p>I&#8217;ve used a lot of awful consumer electronics products, but the ASUS AiGuru SV1T wins the &#8220;Worst Consumer Electronics Product of 2011&#8243; Award. Oh, wait, you could buy one in 2010; maybe even in 2009. So it sweeps the award for three years running.</p>
<p>This is supposed to be an &#8220;appliance&#8221; Skype VideoPhone that makes it easy to make a call. We were told in the movie 2001 that this would be implemented in payphones by now. So payphones are obsolete, but we&#8217;re still waiting for a no-brainer video phone that your grandma can use.</p>
<p><img src="http://7fff.com/wp-content/uploads/2011/12/touch-aiguru-sv1t.jpg" alt="touch-aiguru-sv1t" title="touch-aiguru-sv1t" width="554" height="329" class="aligncenter size-full wp-image-683" /></p>
<p>We acquired this for office use, and found it lacking. I took it home and tried to dump it on Craig&#8217;s List &#8211; no takers. Then it languished in my home office, and just recently I decided to give it another assessment. It still sucks.</p>
<p>Before I begin, let me say that this is a prime example of a product that should be a one-button interface: Call my favorite number. Would that be asking too much?</p>
<p>But everything about this product is wrong.</p>
<p>When I tap the green &#8220;phone&#8221; icon, it does what? Suggests that I enter a phone number. Hello! I want to use Skype! Remember? Phone numbers are great, but secondary. Please let me just browse my Skype contacts. To be sure, I can tap the right arrow to get to my contacts, but then I have to select that user, then tap &#8220;Video call.&#8221; Tap tap tap. This is wrong.</p>
<p>Call quality: Terrible. The video is always grainy and the updates are slow. Additionally, I have this thing plugged in with an Ethernet cable to avoid the vagaries of wireless. It constantly (really: always) tells me that the network connection is lost and/or that the network connection has &#8220;changed&#8221; (no it hasn&#8217;t), and I lose my call or have to interact with the machine.</p>
<p>There are no options in the &#8220;Advanced&#8221; settings to probe connection quality, insist that the Ethernet connection be favored over wireless (or used alone).</p>
<p>Finally: The greatest sin: Some of these issues could be fixed with updated software. As of this writing (14-Dec-2011) I have the latest software, dated . . . well, I&#8217;d like to tell you, but to do that, the phone has to connect, and as of right now it&#8217;s &#8220;attempting&#8221; to connect. But not succeeding. Sheesh. Anyway, the date of last update was October, 2010. There is nothing I can find at ASUS Support with guidelines for troubleshooting, etc.</p>
<p>It is hard for me to imagine how ASUS screwed this up as badly as it did. All this thing is, is a repackaged laptop. The user interface gaffes I can forgive if the performance was great. But it isn&#8217;t.</p>
<p>Do not buy this product.</p>
<p>Meanwhile, someone should introduce an awesome Skype VideoPhone. I am sure you are saying: Use an iPad. But there are great use cases for a dedicated device, the chief one being that you want to <strong><em>use</em></strong> your iPad while on a call, or you want to <strong><em>share</em></strong> the call with others. Perhaps you&#8217;ll tell me just to buy a 2nd iPad. Yeah, I could do that, but where&#8217;s my &#8220;call my most frequently used number&#8221; button? And so on.</p>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2011/12/14/asus-aiguru-sv1t-skype-videophone-worst-consumer-electronics-product-of-2011-and-2010-and-maybe-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comcast drives me nuts</title>
		<link>http://7fff.com/2011/09/28/comcast-drives-me-nuts/</link>
		<comments>http://7fff.com/2011/09/28/comcast-drives-me-nuts/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 12:49:08 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Annoyance]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=643</guid>
		<description><![CDATA[At the beginning of the summer, I had numerous reboots of my cable modem. Typically this would happen when I was making heavy use of the network. It could happen 5 times an hour. Of course I called Comcast. They had a lot of suggestions: Let&#8217;s re-flash your modem; upgrade the software on your router; [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>At the beginning of the summer, I had numerous reboots of my cable modem. Typically this would happen when I was making heavy use of the network. It could happen 5 times an hour. Of course I called Comcast. They had a lot of suggestions: Let&#8217;s re-flash your modem; upgrade the software on your router; try a different router. I suggested: Maybe it&#8217;s the link from my house to upstream? Comcast: No, we&#8217;ve checked that. They were responsive (good response from one of their Twitter helpers) . . . but couldn&#8217;t make it work.</p>
<p>Then about 3 weeks ago (unbidden from me), Comcast told me that I wouldn&#8217;t have service for a couple of days. They did something.</p>
<p>Now? The network runs like a charm. I had switched routers somewhere back in there, so, cautiously, I put my fastest router back on, and it&#8217;s worked like a charm. The reboot after Sept. 20 was from a manual reboot.</p>
<p><img src="http://7fff.com/wp-content/uploads/2011/09/Untitled.png" alt="Untitled" title="Untitled" width="600" /></p>
<p>Comcast! What is wrong with you? Why is it always like this?</p>
<p>You&#8217;re going to get disintermediated, Comcast!</p>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2011/09/28/comcast-drives-me-nuts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another reason to dislike the Ruby 1.9 Hash syntax</title>
		<link>http://7fff.com/2011/07/09/another-reason-to-dislike-the-ruby-1-9-hash-syntax/</link>
		<comments>http://7fff.com/2011/07/09/another-reason-to-dislike-the-ruby-1-9-hash-syntax/#comments</comments>
		<pubDate>Sat, 09 Jul 2011 16:07:31 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=611</guid>
		<description><![CDATA[I&#8217;m not religious about the old or new Ruby Hash syntax, but it is interesting that if you inspect a Hash in 1.9, you get the old syntax:


ruby-1.9.2-p180 :001 &#62; { foo: 'bar' }
 =&#62; {:foo=&#62;&#34;bar&#34;} 

If the new syntax is so ding-dang good, then I think inspect should use it, when it can.
]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;m not religious about the old or new Ruby Hash syntax, but it is interesting that if you inspect a Hash in 1.9, you get the old syntax:</p>
<pre name="code" class="ruby">

ruby-1.9.2-p180 :001 &gt; { foo: 'bar' }
 =&gt; {:foo=&gt;&quot;bar&quot;} 
</pre>
<p>If the new syntax is so ding-dang good, then I think inspect should use it, when it can.</p>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2011/07/09/another-reason-to-dislike-the-ruby-1-9-hash-syntax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Russ Olsen&#8217;s Eloquent Ruby, and the teaching of Ruby</title>
		<link>http://7fff.com/2011/03/05/russ-olsens-eloquent-ruby-and-the-teaching-of-ruby/</link>
		<comments>http://7fff.com/2011/03/05/russ-olsens-eloquent-ruby-and-the-teaching-of-ruby/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 23:35:26 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Reading]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=586</guid>
		<description><![CDATA[Russ Olsen has just come out with a wonderful book on Ruby called Eloquent Ruby. If you&#8217;re a Rubyist, you should get it. What&#8217;s great about it is that it combines a breezy, even sometimes funny, style that is &#8220;teacherly&#8221; but also accurate in matter of detail.

There are a couple of things that really make [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Russ Olsen has just come out with a wonderful book on Ruby called <a href="http://www.amazon.com/gp/product/0321584104?ie=UTF8&#038;tag=ce1-20">Eloquent Ruby</a>. If you&#8217;re a Rubyist, you should get it. What&#8217;s great about it is that it combines a breezy, even sometimes funny, style that is &#8220;teacherly&#8221; but also accurate in matter of detail.</p>
<p><center><iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=ce1-20&#038;o=1&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;asins=0321584104" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></center></p>
<p>There are a couple of things that really make the book work. First, there&#8217;s a nice little <code>Document</code> class that Olsen bends this way and that, using it as the vehicle for explaining subclassing, modules, mixins, and metaprogramming. My first impression was that it was a little lame, but by the end of the book I was very impressed with the range of examples. Indeed, the use of a Document class reminded me of some of the class examples from the Gang of Four book.</p>
<p>A second fine feature is that there are many sections devoted to a particular topic &#8220;In the Wild.&#8221; We have needed this in Ruby books for a long time &#8212; a coupling between Ruby as we know it in a textbook, and Ruby in the real world. These are really quite different &#8220;Rubies,&#8221; but Olsen is adept at showing through sometimes-simplified examples that the occasionally imponderable real-world Ruby really does share an idea of code with what learners start with.</p>
<p>I also like the chapter near the end of the book on the various Ruby interpreters, and how you can get something out of reading the code, be it in C, Java, or Ruby.</p>
<p>Now, about teaching Ruby.</p>
<p>Ruby is a tough teach. Students plateau at an average level of competence quickly, but the real power of Ruby comes after a stiff hike up the mountain to enlightenment.</p>
<p>I used to think that one could use the <a href="http://www.amazon.com/gp/product/1934356085?ie=UTF8&#038;tag=ce1-20">Programming Ruby</a> book alone, and this would do the job. But it&#8217;s long, and in its new edition somewhat hobbled by not discussing Ruby 1.8.x. In a number of places there is discussion that seems aimed at Java developers (see how easy it is in Ruby!) that feels out-of-date to me now.</p>
<p>But having read Olsen&#8217;s book, I&#8217;m now thinking that a better sequence is to pair Cooper&#8217;s <a href="http://www.amazon.com/gp/product/1430223634?ie=UTF8&#038;tag=ce1-20">Beginning Ruby</a> with <em>Eloquent Ruby</em>, supplemented, perhaps, with the Flanagan/Matz <a href="http://www.amazon.com/gp/product/0596516177?ie=UTF8&#038;tag=ce1-20">The Ruby Programming Language</a>. This way, you get to be effective and productive quickly (via Cooper), wade into the depths and improve your style (Olsen), and get the final word on syntax and semantics (Flanagan/Matz). A place where I think <em>Programming Ruby</em> may still have the edge is in some of the metaprogramming discussion, but here I think the best resource out there is Thomas&#8217;s <a href="http://www.pragprog.com/screencasts/v-dtrubyom/the-ruby-object-model-and-metaprogramming">video series</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2011/03/05/russ-olsens-eloquent-ruby-and-the-teaching-of-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rapid software development with my 8-year-old</title>
		<link>http://7fff.com/2011/02/28/rapid-software-development-with-my-8-year-old/</link>
		<comments>http://7fff.com/2011/02/28/rapid-software-development-with-my-8-year-old/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 15:03:40 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=579</guid>
		<description><![CDATA[So my 8-year-old daughter has been increasingly interested in what computers can do, and how to make them do things. We&#8217;ve done some Scratch (http://scratch.mit.edu/) together, and we&#8217;ve done some Lego/software integration with MIT&#8217;s kit (not Mindstorms &#8212; we used the earlier kit MIT made that doesn&#8217;t have Lego branding and so forth). That was [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>So my 8-year-old daughter has been increasingly interested in what computers can do, and how to make them do things. We&#8217;ve done some Scratch (<a href="http://scratch.mit.edu/">http://scratch.mit.edu/</a>) together, and we&#8217;ve done some Lego/software integration with MIT&#8217;s kit (not Mindstorms &#8212; we used the earlier kit MIT made that doesn&#8217;t have Lego branding and so forth). That was pretty fun.</p>
<p>But what she really wanted was a multiplication drill-and-practice program. I said to her: &#8220;Are you sure?&#8221; (because I personally find drill-and-practice dead boring). Well that&#8217;s what she wanted. So we did it.</p>
<p>We did it in Ruby for my convenience. I decided that the hassles would be worth it. For instance, we talked a lot about what it means to convert a string typed by the human into an integer for the computer&#8217;s math. I wrote the code, and explained each and every line to her. The program would show a random multiplication (e.g., &#8220;7 x 8 = &#8220;), and she would have to type in the answer.</p>
<p>Here are the iterations we went through, and my observations regarding kids&#8217; games based on this single case:</p>
<ol>
<li>Report the number correct in a row. She likes the idea of breaking her longest streak of correct answers. <em>Kids like self-created goals.</em> I had introduced the idea of a variable to her earlier, but now we talked about it at greater length, since the counter had to be updated only under certain conditions.</li>
<li>Every 5 correct in a row, pop up a funny image. We used some lolcat images from icanhascheezburger.com. <em>My observation here is that kids like frequent rewards. But not too frequent!</em> We allowed that launching the browser to show an image would just be &#8220;magic.&#8221;
</li>
<li>She got interested in the basic stats: Number correct, number wrong, percent correct. We talked a lot about percentages, which is a bit ahead of where she is in math. I noticed shortly afterwards that she could correctly predict that if she got the next one right, she&#8217;d have 75% correct. <em>To me, this suggests that there are a lot of possibilities for passive learning; she started to &#8220;get&#8221; percentages without a lot of direction from me.</em> Some of this coding I just did without a lot of explanation: In particular, rounding for the percentages seemed to be too hard for her at this point.</li>
<li>As she was doing this, she told me that her goal was to get 100 in a row. At 90, she got one &#8220;wrong&#8221; because she just pressed return instead of entering a number (a case we hadn&#8217;t thought of). We had to stop the program to fix it, but that broke her streak. She suggested that there be some means to go backwards. So we introduced a cheat: If she types &#8220;cheat&#8221; the most recent answer would be forgotten. <em>This suggests to me that kids love to &#8220;win&#8221; but at the same time they can become very unhappy if there is a glitch that seems &#8220;wrong&#8221; to them.</em> Providing a means to get past a &#8220;mistake&#8221; seems to be very appealing. I am not sure that the availability of &#8220;cheats&#8221; is a good lesson to teach; it might set up the wrong expectations about the real world. On the other hand, it&#8217;s called a &#8220;cheat&#8221; for good reason, so I encouraged her to feel guilty about using the cheat. We decided to report on the number of cheats used over the course of a game. That way, if she never uses a cheat, she can brag about it (&#8221;I got 20 in a row, and didn&#8217;t use a cheat!&#8221;).</li>
<li>Finally, she wanted a bigger payoff at the end. She asked if she could enter her goal (20 in a row), and, if achieved, get a big fat message. So we did that. Now when you get to your goal, it prints out &#8220;You Win!&#8221; with a lot of asterisks around it. <em>To a kid, a &#8220;big&#8221; reward is something that is different from the rest of game flow (there are no asterisks elsewhere in the experience).</em></li>
</ol>
<p>So that was fun. The quality of the technology &#8212; the bells and whistles for the platform &#8212; seemed to matter a lot less than iterating through the game design, and thinking about the right rewards and punishments to encourage sticking to the activity.</p>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2011/02/28/rapid-software-development-with-my-8-year-old/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Page numbers for the Kindle &#8211; Thank god</title>
		<link>http://7fff.com/2011/02/13/page-numbers-for-the-kindle-thank-god/</link>
		<comments>http://7fff.com/2011/02/13/page-numbers-for-the-kindle-thank-god/#comments</comments>
		<pubDate>Sun, 13 Feb 2011 19:03:12 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Reading]]></category>
		<category><![CDATA[Teaching]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=576</guid>
		<description><![CDATA[Finally, page numbers are coming to the Kindle. 
I expressed concern about this in March of 2010. I can&#8217;t imagine how you&#8217;d teach with an electronic reader without being able to coordinate students to the same position in the text (the Kindle locations are subject to font size).
]]></description>
			<content:encoded><![CDATA[<p></p><p>Finally, <a href="http://voices.washingtonpost.com/fasterforward/2011/02/kindle_adds_real_page_numbers.html">page numbers are coming to the Kindle</a>. </p>
<p><a href="http://7fff.com/2010/03/10/the-ipad-and-the-classroom/">I expressed concern about this in March of 2010.</a> I can&#8217;t imagine how you&#8217;d teach with an electronic reader without being able to coordinate students to the same position in the text (the Kindle locations are subject to font size).</p>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2011/02/13/page-numbers-for-the-kindle-thank-god/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Application delivery on mobile devices: App Store/Native vs. Browser/HTML5</title>
		<link>http://7fff.com/2011/02/03/application-delivery-on-mobile-devices-app-storenative-vs-browserhtml5/</link>
		<comments>http://7fff.com/2011/02/03/application-delivery-on-mobile-devices-app-storenative-vs-browserhtml5/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 14:36:20 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=560</guid>
		<description><![CDATA[I was noting to an entrepreneur friend Facebook&#8217;s recent decision to deliver their mobile apps via HTML5 (http://blogs.wsj.com/venturecapital/2011/01/25/with-plenty-of-cash-facebook-targets-growing-mobile-market/):

“Mobile is the primary focus for our platform this year,” [CTO Bret Taylor] said, noting that 200 million people are currently accessing Facebook on mobile devices. Not only is that group twice as active as their desktop counterparts, [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I was noting to an entrepreneur friend Facebook&#8217;s recent decision to deliver their mobile apps via HTML5 (<a href="http://blogs.wsj.com/venturecapital/2011/01/25/with-plenty-of-cash-facebook-targets-growing-mobile-market/">http://blogs.wsj.com/venturecapital/2011/01/25/with-plenty-of-cash-facebook-targets-growing-mobile-market/</a>):</p>
<blockquote><p>
“Mobile is the primary focus for our platform this year,” [CTO Bret Taylor] said, noting that 200 million people are currently accessing Facebook on mobile devices. Not only is that group twice as active as their desktop counterparts, that user segment is growing faster than any other, he said.</p>
<p>That growth, combined with what Taylor called the “inherent engineering challenge” of mobile today, represents a major headache for him and the tech team he leads at Facebook.</p>
<p>Namely, whenever they update a feature on the site, they have to do seven versions, so it can run on the iPhone, Android and other platforms now in use.</p>
<p>“HTML5 is the future platform,” he said. “That’s where we’re putting a huge amount of our resources.”
</p></blockquote>
<p>By developing for the browser, they don&#8217;t have to create separate versions for iOS, Android, Symbian, Blackberry, etc.</p>
<p>My friend said: But the user experience is unpleasant where you have to bookmark a link and save it to the desktop (so that it will look like a &#8220;normal&#8221; app). And he noted that since connectivity is so spotty in North America (and, I would add, in certain buildings and on the subway, etc.), web delivery is problematic. Finally, he said: &#8220;Yes, it takes more work to make an app, and to maintain it. But wouldn&#8217;t you rather have more usage?&#8221;</p>
<p>To which I said:</p>
<p>I think most of your points have solid rebuttals. I should probably go through them, because I have been asked by a number of developers and entrepreneurs whether they should be developing native or HTML5 apps . . .</p>
<ol>
<li>
Delivering an app &#8212; any app &#8212; on these mobile devices already requires connectivity. So whether it&#8217;s the app store or via HTTP, you still need a connection. Indeed, the Apple App Store requires a wifi connection (same for Android? I can&#8217;t remember; I sure hope not). You can&#8217;t install or update an app on iOS via 3G. A web-based app can be delivered by 3G or wifi. So I think connectivity as a differentiator for delivery per se is a red herring.
</li>
<li> The whole &#8220;bookmark to desktop&#8221; mechanism is something that could be overcome (by Apple). It&#8217;s a detail that is probably there just to make the experience harder so developers and consumers will favor the app store which makes Apple more money. Plus, if Facebook goes HTML5, that may teach everyone how to do it anyway. Meanwhile, my experience with the Apple App Store has been that it&#8217;s buggy and peculiar. Just today I was asked to sign off on the latest licensing/terms and it was a bizarre back-asswards experience.
</li>
<li>
You can cache an HTML5 app so that successive runs don&#8217;t require the network to start up. I don&#8217;t do it (yet) for a product I&#8217;m working on for a lot of reasons. HTML5 provides for on-board databases, etc., so access to the network while running can be mitigated (i.e., data can be downloaded  for later offline use). There are HTML5 apps that people think are native apps &#8212; the best are probably the ones Google has created.
</li>
<li>
What are these apps we&#8217;re using that <em>don&#8217;t</em> require connectivity? I was looking over my apps and I could find only one that doesn&#8217;t require connectivity while it is running (a game). It could probably be implemented in HTML5. I know this particular company has a web-based version of the game already; I&#8217;m sure they did it as an app so as to sell it through the app store and make some money that way.
</li>
<li>
I was just using the new much-ballyhooed &#8220;Daily&#8221; app, and was shocked at how terrible its performance is. Why? Because it tries to use a lot of UI gewgaws that it would probably skip were it delivered in HTML5. It&#8217;s appalling. It has a rotating kiosk for news that is just plain slow and jumpy. Another really interesting user experience case is the iPad NY Times app. Have you used it? There isn&#8217;t as much news as the web site! I was kind of shocked. It&#8217;s somewhat &#8220;curated,&#8221; which is a weird approach to take for the paper of record. Why? I wish I knew.</p>
<p>Just speaking for myself, the browser experience of the NY Times on the iPad is much better than the app. And the Times has browser-based apps that are awesome (example: <a href="http://www.nytimes.com/skimmer/">http://www.nytimes.com/skimmer/</a> &#8212; not sure why the Times hasn&#8217;t flogged this more), but don&#8217;t yet work very well on the iPad. If they did . . .</p>
<p>A really interesting case is the New Yorker. This is currently being delivered whereby each separate issue comes down as a separate app. I would bet that the motivation is connectivity (besides greed &#8212; each issue is $5), so the whole content of each issue is downloaded. But no one&#8217;s buying it, either economically or conceptually.
</li>
<li>
If I can get more usage by writing one app that can be delivered to Apple, Android, Blackberry, Symbian, etc., etc., don&#8217;t I get more users that way?
</li>
<li>
Then there&#8217;s the question of getting access to the &#8220;bare metal&#8221; for speed or services. Android apps are written in Java, so you don&#8217;t get that anyway (well, it&#8217;s awesome, but it&#8217;s still not right down there at the metal). There are apps on the Apple mobile infrastructure that are hard to imagine without being written in Objective C, so I&#8217;ll grant that there&#8217;s a class of applications that would be hard to do in HTML5.
</li>
<p>What am I missing? I think mainly, and obviously, the economic model of the app store. It&#8217;s great to sell your product via Apple or Android&#8217;s marketplace. But if your app is free, as is Facebook&#8217;s, I&#8217;m just not seeing it. Games, audio and video apps: These I can see the need for native delivery and the money mechanism of the app store. Indeed, the top-downloaded and top-grossing paid apps on the app store are all games or audio:</p>
<p><img src="http://7fff.com/wp-content/uploads/2011/02/photo.jpg" alt="photo" title="photo" width="320" height="480" class="aligncenter size-full wp-image-570" /></p>
<p>But for business-oriented apps . . . I&#8217;m just not seeing much of a downside to HTML5.</p>
<p>Thoughts?</p>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2011/02/03/application-delivery-on-mobile-devices-app-storenative-vs-browserhtml5/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Forced password changes</title>
		<link>http://7fff.com/2010/12/29/forced-password-changes/</link>
		<comments>http://7fff.com/2010/12/29/forced-password-changes/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 17:38:03 +0000</pubDate>
		<dc:creator>john</dc:creator>
				<category><![CDATA[Annoyance]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://7fff.com/?p=534</guid>
		<description><![CDATA[Dear Online Services,
Do not force me to change my password. Ever. I use very long passwords that are generated for me that would take a long time (more than 10 minutes) to crack; and I know that you have software to disable the account after some number of attempts. Yes, LinkedIn, not all of your [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Dear Online Services,</p>
<p>Do <em>not</em> force me to change my password. Ever. I use <em>very long</em> passwords that are generated for me that would take a long time (more than 10 minutes) to crack; and I know that you have software to disable the account after some number of attempts. Yes, LinkedIn, not all of your users are so stupid as to have the same password on Gawker as on LinkedIn. Lay off my data! That password is <em>mine</em>, not yours!</p>
<p>Because I generate the passwords with a master password and create a hash based on that password and your site, they are quasi-random. If you force me to change your stupid password, then I have <em>one</em> account for which my master doesn&#8217;t work. That really sucks. When you have tens if not hundreds of passwords, one or two exceptions creates a lot of pain.</p>
<p>And while we&#8217;re at it, usbank.com (yes, you): If you&#8217;re going to have a maximum length for a password, and allow it at login but not when you change your password, how about mentioning that on your awful site?</p>
<p>John</p>
]]></content:encoded>
			<wfw:commentRss>http://7fff.com/2010/12/29/forced-password-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

