<?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>Jared Alessandroni &#124; Jared Says</title>
	<atom:link href="http://blog.jaredwilliam.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jaredwilliam.com</link>
	<description>Jared Alessandroni Says</description>
	<lastBuildDate>Sun, 27 Jan 2013 00:44:16 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Leap Piano</title>
		<link>http://blog.jaredwilliam.com/2013/01/leap-piano/</link>
		<comments>http://blog.jaredwilliam.com/2013/01/leap-piano/#comments</comments>
		<pubDate>Sat, 26 Jan 2013 05:58:08 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[leap]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=285</guid>
		<description><![CDATA[This is still in-progress, but getting there. My son and his friend came in and tried it &#8211; and they thought it was cool, so it must be somewhat. You can now play piano with the Leap &#8211; or, that is, a virtual keyboard with almost no control. I&#8217;m going to keep working on it, [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.jaredwilliam.com/wp-content/uploads/2013/01/piano.jpg"><img class="alignnone size-full wp-image-286" alt="piano" src="http://blog.jaredwilliam.com/wp-content/uploads/2013/01/piano.jpg" width="685" height="279" /></a></p>
<p>This is still in-progress, but getting there. My son and his friend came in and tried it &#8211; and they thought it was cool, so it must be somewhat. You can now play piano with the Leap &#8211; or, that is, a virtual keyboard with almost no control. I&#8217;m going to keep working on it, but it&#8217;s enough to know that while I&#8217;ll get some more accuracy out of it, the truth is it&#8217;s not going to get much more accurate using the methodology I&#8217;m working with &#8211; which isn&#8217;t to say it&#8217;s out of the realm of the leap to be that accurate &#8211; rather I have to really build some tighter JS to handle the math to do it right.<br />
<span id="more-285"></span><br />
I was really happy to use <a href="https://github.com/mrcoles/javascript-piano" target="blank">Peter Coles&#8217; Excellent JS Piano Script</a>, though sadly, I couldn&#8217;t get it to work on Safari, and I couldn&#8217;t get any Leap stuff to work on Firefox, so I was stuck on Chrome (no disrespect &#8211; I just HATE building things that are just single-browser). Having a piano interface (I just snuck in simulating key-strokes) was easy &#8211; but using it is a bit of a challenge. </p>
<p>To put the math challenge in perspective, it&#8217;s important to understand how the Leap reads vector information. In essence, the vector model for the leap is just a standard XYZ axis-based set of numbers. In it, XYZ go positive towards you and to the right &#8211; that is, imagine if zero were the <b>bottom middle</b> of your screen, and the objects to the right, above, and towards you were +. The go negative away from you (Z), to your left (X) and towards only zero below. This is important to get &#8211; the Y is baseline, rather than being in the middle of the screen. </p>
<p>This part is actually pretty easy for tracking motion &#8211; you just have to compensate for negatives, since most screen and DOM elements will take a 0,0 top-left-corner approach. The folks at leap seem to be 3D model-obsessed, so they think just like a <i>SketchUp</i> team would &#8211; using that XYZ. This is fine until you get to rotations, in which case you find yourself dealing with some slightly trickier math &#8211; math which is in the API, but not in the JS quite yet. </p>
<p>To think about a piano being played, you have to realize that you&#8217;re not just putting your fingers down in space, you&#8217;re curling them downwards. And a piano play often hovers &#8211; their fingers outstretched &#8211; when they&#8217;re not playing a particular note. Not a problem except that when they play the black keys &#8211; the sharps/flats &#8211; they also stretch their fingers a bit. This meant knowing the vector pointer position &#8211; that is, (in <a href="http://leapgamer.com/blog/6/integrate_leap_motion_with_a_jquery_plugin" target="blank">Leap Gamer JQuery plugin notation</a>) </p>
<pre>
x = leapData.pointables[i]["direction"][0];
y = leapData.pointables[i]["direction"][1];
z = leapData.pointables[i]["direction"][2];
</pre>
<p>(where i is the i in a for loop dealing with the pointables)</p>
<p>In order to know where the finger is pointing, you need to know the angle <b>created</b> by the Y and Z coordinates. This is&#8230; exactly the kind of math I haven&#8217;t done since high school. So, I had to look it up. I&#8217;m working on it, and I&#8217;ll have more soon &#8211; but I wanted to give a quick status update and say, hey, <a href="http://jaredwilliam.com/leap/c.html">try my air piano</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2013/01/leap-piano/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>LEAP Proof of Concept II</title>
		<link>http://blog.jaredwilliam.com/2013/01/leap-proof-of-concept-ii/</link>
		<comments>http://blog.jaredwilliam.com/2013/01/leap-proof-of-concept-ii/#comments</comments>
		<pubDate>Wed, 23 Jan 2013 01:30:15 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[leap]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=280</guid>
		<description><![CDATA[Check out my latest proof of concept here. This time, I use Canvas to parse the colors of a file (I&#8217;m putting an uploader in) that you can then practice tracing in the air. The idea being that for kinesthetic and for low-motor-skill developing learnings, this could be a powerful tool. I have gotten canvas [...]]]></description>
				<content:encoded><![CDATA[<p>Check out my latest proof of concept <a href="/leap/b.html">here</a>. This time, I use Canvas to parse the colors of a file (I&#8217;m putting an uploader in) that you can then practice tracing in the air. The idea being that for kinesthetic and for low-motor-skill developing learnings, this could be a powerful tool. I have gotten canvas to show the color at my &#8220;cursor,&#8221; though I still have to work through some alignment issues. Still in-progress!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2013/01/leap-proof-of-concept-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leap Proof of Concept Game</title>
		<link>http://blog.jaredwilliam.com/2013/01/leap-proof-of-concept-game/</link>
		<comments>http://blog.jaredwilliam.com/2013/01/leap-proof-of-concept-game/#comments</comments>
		<pubDate>Fri, 18 Jan 2013 00:24:07 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[leap]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=269</guid>
		<description><![CDATA[It&#8217;s here! I&#8217;ve finished my first proof-of-concept. Check it Out So, to explain&#8230; As you may know, I recently received my Leap Motion controller &#8211; and I&#8217;m really excited. As a web developer, it&#8217;s particularly exciting to see that the Javascript API allows me to use the Leap on a web application. The game is [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.jaredwilliam.com/2013/01/leap-proof-of-concept-game/game/" rel="attachment wp-att-270"><img class="alignnone size-full wp-image-270" alt="game" src="http://blog.jaredwilliam.com/wp-content/uploads/2013/01/game.png" width="635" height="171" /></a></p>
<p>It&#8217;s here! I&#8217;ve finished my first proof-of-concept.</p>
<p><a title="Leap Proof of Concept" href="http://jaredwilliam.com/leap/a.html" target="_blank">Check it Out</a></p>
<p>So, to explain&#8230;<span id="more-269"></span></p>
<p>As you may know, I recently received my Leap Motion controller &#8211; and I&#8217;m really excited. As a web developer, it&#8217;s particularly exciting to see that the Javascript API allows me to use the Leap on a web application.</p>
<p>The game is not much of a game, but that wasn&#8217;t its intent. In this case, I used a very simple variable coming out of the Leap. To understand this, I want to break down &#8211; just a little &#8211; how the Leap sends data.</p>
<pre>if ((typeof(WebSocket) == 'undefined') &amp;&amp;
    (typeof(MozWebSocket) != 'undefined')) {
  WebSocket = MozWebSocket;
}</pre>
<p>First, we need to decide who supports the web socket. <a href="http://stackoverflow.com/questions/1253683/what-browsers-support-html5-websocket-api">Here&#8217;s</a> a good thread on Stack about who supports the socket. Now that we have a web socket layer, we need to initialize it. </p>
<pre>
  ws = new WebSocket("ws://localhost:6437/");
</pre>
<p>This is the most important line in the script, because basically, we have to connect to the local Leap. Note here that that means your Leap is plugged in and the software is running. When you do, much like other custom IO devices, it opens up a local port at 6347 and sends out a bunch of data in a &#8220;Frame.&#8221; A frame is just a frozen moment in time during which the Leap sends out a bunch of data, or a message. The next code that&#8217;s important is the message loop: </p>
<pre>
  ws.onmessage = function(event) {
    var obj = JSON.parse(event.data);
    // obj["hands"][0]["palmPosition"][0];
}
</pre>
<p>In my example, I&#8217;ve taken the X coordinate of the &#8220;palmPosition&#8221; variable of hand one. Note that if you want to see a dump of the whole data set, view the str in:</p>
<pre>
  ws.onmessage = function(event) {
    var obj = JSON.parse(event.data);
    var str = JSON.stringify(obj, undefined, 2);
    // str;
}
</pre>
<p>This will give you a printout of all the data, though I found that putting a little stopper in there so that you could actually read the data was even more helpful. </p>
<p>In any case, take a look, play, and drop me any questions or comments. I&#8217;d love to hear that other Leapers have been able to reach across the web and start using this great device!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2013/01/leap-proof-of-concept-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Warner Cable, NYC</title>
		<link>http://blog.jaredwilliam.com/2013/01/time-warner-cable-nyc/</link>
		<comments>http://blog.jaredwilliam.com/2013/01/time-warner-cable-nyc/#comments</comments>
		<pubDate>Thu, 17 Jan 2013 10:40:58 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=241</guid>
		<description><![CDATA[Looking for Time Warner Cable on Yelp is NSFW &#8211; and for good reason. We hate Time Warner not just for what it is &#8211; terrible service by terrible people &#8211; but for why it is &#8211; the simple fact that there is no other option. It&#8217;s like having only one restaurant in town, no [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.jaredwilliam.com/2013/01/time-warner-cable-nyc/twc-3/" rel="attachment wp-att-248"><img class="alignnone size-full wp-image-248" alt="twc" src="http://blog.jaredwilliam.com/wp-content/uploads/2013/01/twc1.png" width="635" height="188" /></a></p>
<p>Looking for Time Warner Cable on Yelp is NSFW &#8211; and for good reason. We hate Time Warner not just for what it is &#8211; terrible service by terrible people &#8211; but for why it is &#8211; the simple fact that there is no other option. It&#8217;s like having only one restaurant in town, no kitchen, no supermarket, and also the waiters spit on you when you sit down. Of course, that&#8217;s just in general. For the past few nights, my experience has been far worse.</p>
<p><span id="more-241"></span></p>
<p>The nightmare started as any nightmare with TimeWarner must &#8211; my service went down. This time, it was at 10:30 on a Monday night. Of course, there are a lot of items between me and my internet, so it&#8217;s worth noting each. Obviously, there&#8217;s the computers &#8211; but they&#8217;re easy to rule out since none of us had internet. Next is the router &#8211; an Apple Airport Extreme. I must admit, this is a major point of failure &#8211; not just because it&#8217;s not 100% reliable (maybe 95%), but also because the implementation of IPV6 is just confusing and often causes issues just because of setting obscurity. Finally, there&#8217;s the cable modem itself &#8211; an RCA DCM425 (which we are now <a href="http://www.pcworld.com/article/2018585/time-warner-cable-implements-3-95-monthly-cable-modem-fee.html" target="blank">paying for</a>).</p>
<p>We are used to mediocrity, of course, with Time Warner, so when the internet went down, I assumed it was just momentary. Daughter and I went out for a late-night snack and I was earnestly surprised when everything wasn&#8217;t working around 11:30 after a system reset (I keep the whole mess, including the phone system, backup drives, modems and routers etc. on one power strip for this very reason). This was getting serious as I had work to do. So, I made the usual mistake of calling TWC.</p>
<p>One thing that Time Warner should have going for it is a very slick automated technical advisor who not only takes your information, but also has access to their connection database. So, when I called and gave the relevant information, I was able to be told that yes, Time Warner could see I was off-line. This was actually a very helpful idea. I further respect the fact that when you call TWC, you can basically get to a human in two steps &#8211; hit 0 and then, when the automated prompter tries to get your information again, you can hit 0 again and be put straight into the queue.</p>
<p>However, things are not that easy. After the automated system told me I was disconnected (thanks, I guess? Isn&#8217;t that like the doctor telling you you&#8217;re sick?), I was given the usual runaround (automatedly) about restarting and unplugging &#8211; all steps I&#8217;d already taken. To their credit, they did have the option after each suggestion of saying that you had already done that. Finally, they recommended I speak to their help dispatch.</p>
<p>The first warning sign that this might not end well was when I was told to wait while I waited for the <strong>US Help Center</strong>. Hearing that a local service is taking you to a National support site is never comforting. The very pleasant lady I spoke with who, yes, once again took my information, once again verified it, and once again started off with restarting and resetting, finally decided that my modem was kaput. This jibed, actually, with what I thought it might be &#8211; the poor thing was blinking like crazy and every so often it would click indignantly, as though expressing technological angst.</p>
<p>I could have, she said, set up an appointment in a few days (between the hours of noon and five) set up an appointment for a technician to come and replace the box and check my connection. This seemed ludicrous &#8211; I live in a new-construction high-rise in Manhattan &#8211; there were no raccoons eating my wires, and the idea (the idea that no internet user but apparently every internet provider shares) that it would be perfectly reasonable to wait three days for my internet to work was just frustrating. Instead, we agreed that I could go into my local Time Warner and switch out the box.</p>
<p>This I did the next day &#8211; and as usual, being downtown, it was pleasant. They have a great lobby and a friendly security guard who looked at me knowingly when the lady in front of me (who clearly imagines her cats in various human situations) starts ranting about her cable service. I, however, am happy to be empowered to solve my problem. The lady at the desk (station 10) isn&#8217;t quite as nice and seems to be a practitioner of that religion where when you look at someone when you&#8217;re speaking to them, you die immediately. But, she gives me the box and I&#8217;m out of there in ten minutes.</p>
<p>Taking the box home triumphantly (I used to live in the less bougie part of town, and THEIR TWC office is essentially a prison-intake mixed with the DMV plus the ever-present threat of a crime), thinking, nice, TWC. This was only supported when I plugged the boxed in, watched the little robot light show, and then, with nary a curse, my internet was back and, much as is the Hess Truck, bette than ever.</p>
<p>This was particularly gratifying since the next morning I had a Skype interview that was mission-critical, and even in the interview pre-mail, I had been told the importance of a high-speed connection. I was like, well, it&#8217;s a tech job, so&#8230; that&#8217;s a good thing. Of course, now that I had my internet back, everything would be lovely. All I had to do was spend some time updating my website that evening, and then Skype party in the morning.</p>
<p>So, around 10:00 that night, I&#8217;m working on my updated website which I&#8217;m starting to send to prospective clients when the internet stops again. This time, though, it doesn&#8217;t do a full-stop. For instance, if I load three pages in tabs, one might load, and the other two won&#8217;t at all. Or, I&#8217;ll hit reload on a dead page and get the title on top. Then nothing. Emails come in every so often, though I can&#8217;t reply to them. The internet is basically stopped.</p>
<p>I look at my new cable modem (which I had to rip out of my system since I had, in a fit of happy relief, zip-tied into my network box just hours before). It&#8217;s blinking crazy-town again. Everything is wrong! So I restart, fearing that maybe I&#8217;d done something wrong and burned this one out, too. Then I go into crazy mode. By 12:30, I&#8217;d done everything from changing out EVERY wire (coax, ethernet, power) on every device to putting an ice-pack on the router (by now it was 1:30, I was tired, and it did seem hot). This was, by the way after calling TWC twice to ask them to check on the box, send that little, &#8220;Hey, connect to me&#8221; message, etc.</p>
<p>Now it&#8217;s 2:30. I can&#8217;t go to sleep because I can&#8217;t <em>wake up</em> to no internet. I have updated my router 100 times because Apple has 100 different configurations for NAT and tunneling and other words that probably mean something to someone who doesn&#8217;t have a website to finish touching up and an interview. In the middle of the night, tired and frustrated, you start to enter into what I describe as voodoo thinking. This is where you think, well, maybe if the router was on its side. Maybe if I unplug the modem for more than 1 minute. Maybe if I start with the system unplugged and then go in a different order. But the thing is, these are robust machines that have seemingly worked for years &#8211; this thinking is insane.</p>
<p>Finally around 3:00, I am on a very difficult tech chat (this is on my phone, the only only glimmer of internet I have remaining). I&#8217;m asking him what I can do to to get the system back by morning. Is there a way I can get the box replaced by 9? That&#8217;s when he says, well, it won&#8217;t help, since you have an outage in your area.</p>
<p>Wait, what? Ah, when did it start?</p>
<p>Sir, you know you can check the status of outages before contacting us.</p>
<p>So, he directs me to the Time Warner Help site, and tells me to click on Outages.</p>
<p>Cool. No, sorry, I can&#8217;t find the link.</p>
<p>So he gives me the link to the help site.</p>
<p>I&#8217;m there &#8211; I can&#8217;t find the link to outages page&#8230;</p>
<p>&#8220;Just scroll to the bottom and see the link. Click on it.&#8221;</p>
<p>But I can&#8217;t find it?</p>
<p>Ten minutes of this idiocy. Then, with the compunction and wit of a 9-year-old, he says, as if we&#8217;d not just spent ten minutes telling me I was stupid for not seeing the link.</p>
<p>&#8220;Sir, our website no longer has such a link. But I can see that there is an outage in your area.&#8221;</p>
<p>&#8220;So, when did it start.&#8221;</p>
<p>&#8220;Oh, around 10:30.&#8221;</p>
<p>It&#8217;s 3:30AM, I have an interview the next morning that I will end up canceling, work that I will not do. I spend the rest of the day half-asleep and flu-ey. I think of the cat-lady ranting about TWC and realize &#8211; not that that will be me someday. But rather, that she&#8217;s totally right.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2013/01/time-warner-cable-nyc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Third Wave</title>
		<link>http://blog.jaredwilliam.com/2013/01/the-third-wave/</link>
		<comments>http://blog.jaredwilliam.com/2013/01/the-third-wave/#comments</comments>
		<pubDate>Wed, 09 Jan 2013 12:46:43 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[leap]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=261</guid>
		<description><![CDATA[&#160; I think it&#8217;s time to talk about the way we communicate with our computers. To do that, we need to look at the ways we have in the past. Forgetting about punch-cards and switches, I think it&#8217;s fair to look at the technology that most people recognize as input devices. Then, I want to [...]]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.jaredwilliam.com/2013/01/the-third-wave/wave/" rel="attachment wp-att-262"><img class="alignnone size-full wp-image-262" alt="wave" src="http://blog.jaredwilliam.com/wp-content/uploads/2013/01/wave.jpg" width="635" height="308" /></a></p>
<p>&nbsp;</p>
<p>I think it&#8217;s time to talk about the way we communicate with our computers. To do that, we need to look at the ways we have in the past. Forgetting about punch-cards and switches, I think it&#8217;s fair to look at the technology that most people recognize as input devices. Then, I want to look at what&#8217;s next &#8211; how do we interact with a computer in ten years. I believe that this is something that&#8217;s starting to take shape right now &#8211; and I like to call it the Third Wave.</p>
<p><span id="more-261"></span></p>
<p>See what I did there? Wave? I know &#8211; brilliant &#8211; but I&#8217;ll move on. Before I get to the third wave, though, let me outline what I feel define the first two.</p>
<p><strong>The First Wave</strong></p>
<p>The first wave was the device we talked to that was <strong>attached</strong> to the device we wanted to talk to. The first wave encompasses what we once knew as wired devices, though now most of these are wireless. These include keyboards, mice, and other less obvious input devices like scanners, barcode readers, etc. These are external to the thing you&#8217;re working with (the screen, the CPU) and they take data from the outside world and bring it into the computer&#8217;s world, usually with a bit of translation.</p>
<p>The keyboard is sometimes considered indispensable (I&#8217;m sure there are more than a few people over at Blackberry who wish they&#8217;d thought that one out) for a reason that&#8217;s worth exploring. The thing we do, falsely, is treat written language as sacrosanct. There&#8217;s a great comic (which I can&#8217;t find right now) that shows a guy holding a scroll and looking at a pile of books saying <em>Sure, those are great, but people will always use scrolls</em>. The thing is, it might be scary to think of the written word as itself an input device, itself an abstraction, but what is more <em>human</em> &#8211; reading a story or hearing it? What if the written word were not as sacred &#8211; at least when communicating with your computer &#8211; as we thought? What if we saw it for what it really was &#8211; a secondary input that was required by technical limitations?</p>
<p>What if the computer&#8217;s endpoint is a human interaction?</p>
<p>If it is, then just as we don&#8217;t communicate with each other using a keyboard, so would we just talk, gesture, and even emote to our computer. If you can think of the computer that way, you can see all of these peripherals as secondary, dated, and eventually redundant. If you can&#8217;t, then the first wave may never end.</p>
<p><strong>The Second Wave</strong></p>
<p>If you don&#8217;t believe the first wave is doomed to extinction, you might not have been around technology for the last few years. Because the second wave is us talking directly on the device. This is Siri, and the touch-screen, and even the camera. Think of how substantial a difference there is between attaching a flatbed scanner and running it and just taking a picture of a document with your built-in camera. That&#8217;s the second wave.</p>
<p>The most important piece of the second-wave, so far, has been the touch-screen. Want to zoom an object - <em>touch the object</em>. Want to open a program? Tap the image for the program on the screen itself. This is momentous because we have taken away yet another layer that stands between us and the thing we&#8217;re talking to, the computer. Of course, it could be said that the most momentous aspect of the second wave is the voice-automated assistant &#8211; Siri, Vlingo, etc. While not yet pitch-perfect &#8211; and certainly limited by a need to process on major boxes rather than on local devices &#8211; this is a truly human interaction, speech. And even if you truly believe humans will always communicate through written language, you have to admit that when  you want to set your alarm, it&#8217;s easier to ask Siri than it is to open an app, choose the time, and turn the alarm on. In fact, Siri has done something that turns back the clock on technological interaction to the time when you could talk to your butler and just ask them literally to do whatever you want. (Remember that time before Obama destroyed the economy by being elected after it crashed?)</p>
<p>The second wave is here &#8211; just tap your phone or tablet and wait for that little beep&#8230;</p>
<p><strong>The Third Wave</strong></p>
<p>The third wave, however, doesn&#8217;t need a beep. I&#8217;m going to start with an interaction that I&#8217;ve just said is the crown jewel of the second wave &#8211; voice automation. But I&#8217;m going to take away the little beep. I&#8217;m going to take away the tap and maybe even the tablet. The third wave is when you don&#8217;t even need <em>the CPU</em> to talk to the CPU. This is the truest natural state of computing. There may be a screen to express data, just as there may be speakers. But why should you have to interact directly with these objects? We love our tablets and smartphones because they are always with us. But they aren&#8217;t always with us. We have to bring them with us. The things that are always with us are:</p>
<p>1. Our Hands, Arms, Bodies<br />
2. Our Voices<br />
3. Our Thoughts</p>
<p>Let&#8217;s just say it. Someday, we should be able to communicate with our technology using brain-wave-based functionality. It seems somewhat over-the-top, but let&#8217;s not forget, we already have <a href="http://www.wired.co.uk/news/archive/2012-07/16/mind-control-cat-ears">cat ears</a> that we can control with our mind. Until that time, we have to stick with our hands and our voices. The third wave of interaction will be when we can, with no device in our hands and no peripheral at our fingers, communicate with and make demands of our technology.</p>
<p>This leads us to the <a href="https://leapmotion.com">Leap Motion Controller</a>. For those who are looking for a Minority-Report styled screen interaction &#8211; yes. We have that. Now. But not just that &#8211; I believe that the next big thing in computers is ubiquitous control without peripherals, and so a built-in Leap (or Kinect) sensor that can track your gestures throughout a room is essentially all you&#8217;d need to have a computer with no inputs. Sure, you might point out that the Leap is an input &#8211; but it&#8217;s a matter of where you are. Are you sitting at your desk? Sure. Are you walking to the desk? Sure. Are you lying in bed? Sure. The difference is that the computer isn&#8217;t with you. The tablet isn&#8217;t with you.</p>
<p>As a Leap developer, I eagerly await my own third-wave device. But be warned, be enlightened &#8211; you heard it here first. This is the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2013/01/the-third-wave/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LEAPin&#8217; Lizards</title>
		<link>http://blog.jaredwilliam.com/2012/12/leapin-lizards/</link>
		<comments>http://blog.jaredwilliam.com/2012/12/leapin-lizards/#comments</comments>
		<pubDate>Wed, 12 Dec 2012 15:23:41 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[leap]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=254</guid>
		<description><![CDATA[&#160; Yessss! I was accepted into the LEAP developer program. My Leap Motion controller will be here in a few weeks! The Leap controller is really exciting &#8211; it allows you to use 3D interactions with your Mac, PC, or Linux box. I&#8217;m hoping to develop some educational apps for it.]]></description>
				<content:encoded><![CDATA[<p><a href="http://blog.jaredwilliam.com/2012/12/leapin-lizards/leaplogo/" rel="attachment wp-att-255"><img class="alignnone size-full wp-image-255" alt="leaplogo" src="http://blog.jaredwilliam.com/wp-content/uploads/2013/01/leaplogo.png" width="140" height="50" /></a></p>
<p>&nbsp;</p>
<p>Yessss! I was accepted into the LEAP developer program. My Leap Motion controller will be here in a few weeks! The <a href="https://leapmotion.com">Leap</a> controller is really exciting &#8211; it allows you to use 3D interactions with your Mac, PC, or Linux box. I&#8217;m hoping to develop some educational apps for it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2012/12/leapin-lizards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plain-Text</title>
		<link>http://blog.jaredwilliam.com/2012/07/plain-text/</link>
		<comments>http://blog.jaredwilliam.com/2012/07/plain-text/#comments</comments>
		<pubDate>Mon, 16 Jul 2012 15:04:19 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=236</guid>
		<description><![CDATA[One of the things I used to deal with as a data architect was, &#8220;Well, why can&#8217;t we just send them their password?&#8221; And the answer was always long and complex. Now, though, even my most neophyte clients understand the importance of data-level security. They no longer flinch when I say, Even though it has [...]]]></description>
				<content:encoded><![CDATA[<p>One of the things I used to deal with as a data architect was, &#8220;Well, why can&#8217;t we just send them their password?&#8221; And the answer was always long and complex. Now, though, even my most neophyte clients understand the importance of data-level security. They no longer flinch when I say, <i>Even though it has never happened to me ONCE</i> I plan every database and every site as though it were going to be hacked tomorrow. And yes, I still have clients &#8211; or would-be clients &#8211; who say, Well, that&#8217;s not very secure. Well, no, it&#8217;s not. The internet, while not the den of snakes that it&#8217;s often portrayed as, is not very secure. And if you don&#8217;t plan for the worst, you&#8217;re not planning at all.<span id="more-236"></span></p>
<p>That is a lesson that <a href="http://money.cnn.com/2012/07/12/technology/yahoo-hack/index.htm">Yahoo&#8217;s recent data breach</a> can teach all of us &#8211; hopefully even <a href="http://yahoo.com">Yahoo</a>. Yahoo committed sins left and right &#8211; so trying to walk through them now would be like a confessional in Las Vegas, but the thing that stuck out in my mind was that they stored their user passwords in pain-text, and I want to spend just a second explaining what that means.</p>
<p>Plain-text is the same as saying text. In a storage/content sense, it often refers to non-rich text, as in, just words, no formatting. But in a database/password sense it means that the passwords are literally as you typed them. This is, in one sense, the default. Of course a password would be what you saved it as. But it is not even remotely best-practice. That&#8217;s because it means that if anyone ever get their paws on your data, they would now see your passwords clearly. That&#8217;s why any self-respecting data manager ensures that passwords are stored encrypted. That means that you enter your password, then they pass it through an encryption algorithm, and it is stored as some other, more complex and obtuse string.</p>
<p>How does that work? Well, there are two parts. The encryption algorithm is like a machine that mushes your original password around into this new string. What&#8217;s important to know is that that password, however, will always be mushed in the same way. That is, if you enter your password again, it will end up making it through this machine identically, every time. So, if you&#8217;re trying to log into the site and you enter your password, we compare it to the original by looking at how it looks after it&#8217;s been through the encryption algorithm.</p>
<p>Yahoo did not do this. Perhaps they just had some bad people at key places, but more likely with a company like that, they just had a vestigial background database and they hadn&#8217;t updated their security protocols. Whatever the reason, it didn&#8217;t end well for the 44 thousand users who entrusted their data to them. So, if I or some other data architect ever admonishes you, No, we don&#8217;t store user emails in plain text, so we couldn&#8217;t possibly retrieve a user&#8217;s email address, then you smile and say, Of course. And thank your lucky stars that you don&#8217;t use Yahoo mail, because really, who does?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2012/07/plain-text/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Little History</title>
		<link>http://blog.jaredwilliam.com/2012/07/a-little-history/</link>
		<comments>http://blog.jaredwilliam.com/2012/07/a-little-history/#comments</comments>
		<pubDate>Wed, 11 Jul 2012 15:43:41 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Family]]></category>
		<category><![CDATA[poetry]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[son]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=233</guid>
		<description><![CDATA[I heard, in the next room, My son playing Für Elis on the piano. Or piano-forte. But actually, A Casio, which has No hammers or pads &#8211; Just a lonely black cord, Connecting it to The wall socket which runs Copper down 16 floors To a substation on 40th Street Which channels the power, From [...]]]></description>
				<content:encoded><![CDATA[<p>I heard, in the next room,<br />
My son playing Für Elis on the piano.<br />
Or piano-forte. But actually,<br />
A Casio, which has<br />
No hammers or pads &#8211;<br />
Just a lonely black cord,<br />
Connecting it to</p>
<p>The wall socket which runs<br />
Copper down 16 floors<br />
To a substation on 40th Street<br />
Which channels the power,<br />
From Canada,<br />
Like a delta in the Hudson<br />
Drips from the north making it to us. </p>
<p>History is like that,<br />
Some of it even true,<br />
Having flowed downstream<br />
Swimming  with<br />
Rocks and Fish<br />
Until it has a special taste,<br />
An ironic freshness. </p>
<p>I want my son to feel,<br />
Not just know,<br />
The pluck of the harpsichord<br />
Indefinite in dynamic, tinny,<br />
Filling up the hall,<br />
In the Medici court.<br />
Just as Cristofori did. </p>
<p>I want him to be there,<br />
Not just look at a picture,<br />
With the men in the lab,<br />
In the 1920s,<br />
Working with vacuum tubes.<br />
I fear the picture, thinking,<br />
Everyone here is dead now. </p>
<p>From the piano to the tubes<br />
To the Casio,<br />
To the iPad he uses for sheet music,<br />
The scope of history is both<br />
Enormous and claustrophobic.<br />
Our apartment stands in Native soil,<br />
But was once a subterranean volcano. </p>
<p>Where does it end?</p>
<p>It makes me think of my son,<br />
Supposed to be reading or<br />
Playing or something else,<br />
Standing suddenly in front of me<br />
Arms open, ready for a hug.<br />
Here, this is for you. </p>
<p>Someday I will be a picture<br />
And the phrase will again be true.<br />
Everyone in this picture<br />
Is dead now.<br />
As, I shudder at the thought,<br />
Will he be.<br />
And what will it matter?</p>
<p>That I was suddenly<br />
If illogically,<br />
Inspired to take him uptown to<br />
the Met<br />
Where they have an original<br />
Cristofori piano,<br />
Molded by his hands. </p>
<p>Will that memory mean,<br />
Nothing<br />
Or will it mean<br />
A small drop of something,<br />
Hundreds of years on.<br />
What will he<br />
What will I</p>
<p>Have created?<br />
Everyone in this picture<br />
Is dead.<br />
But their ghosts,<br />
Lying there with open arms,<br />
Whisper, Here,<br />
This is for you. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2012/07/a-little-history/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Polar Bears</title>
		<link>http://blog.jaredwilliam.com/2012/06/polar-bears/</link>
		<comments>http://blog.jaredwilliam.com/2012/06/polar-bears/#comments</comments>
		<pubDate>Fri, 15 Jun 2012 10:16:47 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[personal]]></category>
		<category><![CDATA[poetry]]></category>
		<category><![CDATA[random]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=230</guid>
		<description><![CDATA[There are a lot of pictures online Where else? Of polar bears who Tragically unawares, Jumping onto the wrong sheet of ice, Find themselves finally Alone, in the middle of the ocean. We might not remember Or it might not matter That the creates are vicious Bloodthirsty predators Their black eyes and big noses And [...]]]></description>
				<content:encoded><![CDATA[<p>There are a lot of pictures online<br />
Where else?<br />
Of polar bears who<br />
Tragically unawares,<br />
Jumping onto the wrong sheet of ice,<br />
Find themselves finally<br />
Alone, in the middle of the ocean. </p>
<p>We might not remember<br />
Or it might not matter<br />
That the creates are vicious<br />
Bloodthirsty predators<br />
Their black eyes and big noses<br />
And white fur<br />
Make us want to love them. </p>
<p>So seeing them floating<br />
Infinitely abandoned<br />
As their world melts around them<br />
As our world melts around them<br />
Is horrifying<br />
And it reminds us<br />
That we are the predators.</p>
<p>But there was<br />
A last trilobite.<br />
And there was<br />
A last dodo.<br />
And there will be<br />
Most certainly<br />
A last human. </p>
<p>When I am clinging<br />
To the last piece of ice,<br />
I think about the polar bear and the dodo,<br />
And you.<br />
And I am thankful<br />
I have the capacity<br />
To know I am not alone. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2012/06/polar-bears/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Duper</title>
		<link>http://blog.jaredwilliam.com/2012/05/super-duper/</link>
		<comments>http://blog.jaredwilliam.com/2012/05/super-duper/#comments</comments>
		<pubDate>Fri, 18 May 2012 11:45:42 +0000</pubDate>
		<dc:creator>Jared</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.jaredwilliam.com/?p=226</guid>
		<description><![CDATA[As John Cooper said on his FB posting, &#8220;This is one of the coolest &#8220;flash dances&#8221; ever! It&#8217;s 2012 and young people in Moscow have put on a &#8220;flash mob&#8221; happening, dancing to an 83-year-old American song written by a Russian-born American Jew (Irving Berlin).&#8221; I&#8217;d add that all those people holding Korean tablets and [...]]]></description>
				<content:encoded><![CDATA[<p><iframe width="560" height="315" src="http://www.youtube.com/embed/KgoapkOo4vg" frameborder="0" allowfullscreen></iframe></p>
<p>As John Cooper said on his FB posting, &#8220;This is one of the coolest &#8220;flash dances&#8221; ever! It&#8217;s 2012 and young people in Moscow have put on a &#8220;flash mob&#8221; happening, dancing to an 83-year-old American song written by a Russian-born American<br />
Jew (Irving Berlin).&#8221;  I&#8217;d add that all those people holding Korean tablets and wearing Australian boots and using Japanese cameras tell an even bigger story. We live in a small world. A small fucking awesome world. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jaredwilliam.com/2012/05/super-duper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
