[Valid RSS] This is a valid RSS feed.


This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.


  1. <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
  2. xmlns:content=""
  3. xmlns:wfw=""
  4. xmlns:dc=""
  5. xmlns:atom=""
  6. xmlns:sy=""
  7. xmlns:slash=""
  8. xmlns:georss=""
  9. xmlns:geo=""
  10. >
  12. <channel>
  13. <title>Ted Leung on the Air</title>
  14. <atom:link href="" rel="self" type="application/rss+xml" />
  15. <link></link>
  16. <description>Open Source, Modern Programming Languages, OS X, Photography, and ...</description>
  17. <lastBuildDate>Mon, 13 Apr 2020 18:29:25 +0000</lastBuildDate>
  18. <language>en-US</language>
  19. <sy:updatePeriod>
  20. hourly </sy:updatePeriod>
  21. <sy:updateFrequency>
  22. 1 </sy:updateFrequency>
  23. <generator></generator>
  24. <site xmlns="com-wordpress:feed-additions:1">4270386</site> <item>
  25. <title>Solid 2014</title>
  26. <link></link>
  27. <comments></comments>
  28. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  29. <pubDate>Sun, 01 Jun 2014 23:13:09 +0000</pubDate>
  30. <category><![CDATA[misc]]></category>
  31. <category><![CDATA[technology]]></category>
  32. <guid isPermaLink="false"></guid>
  34. <description><![CDATA[Two weeks ago, I had the chance to go to the inaugural O’Reilly Solid conference. Solid was billed as the Software / Hardware / Everywhere conference. The “Internet of Things” is a big buzzword right now, and I am glad that O’Reilly decided not to do an “Internet of Things” conference. There were plenty of [&#8230;]]]></description>
  35. <content:encoded><![CDATA[<p>Two weeks ago, I had the chance to go to the inaugural O’Reilly Solid conference. Solid was billed as the Software / Hardware / Everywhere conference. The “Internet of Things” is a big buzzword right now, and I am glad that O’Reilly decided not to do an “Internet of Things” conference. There were plenty of “Internet of Things” exhibits and talks, to be sure, but the theme of the conference was bigger than that, and I think rightly so.</p>
  36. <p>There is a lot going on in the hardware space, and Renee DiResta from O’Reilly Alphatech Ventures gave a good <a href=";cmp=em-na-na-na-newsltr_solid_20140529_elist">talk</a> on hardware trends. The <a href="">2014 version of Mary Meeker’s Internet Trends report</a> just came out, and I wonder if DiResta’s hardware trends will someday rise to similar stature. One of my favorite quotes from her talk: “software is eating the world, hardware gives it teeth”.</p>
  37. <p><b>Changing the dynamics of working with hardware</b></p>
  38. <p>The most important thing that is happening in hardware is that there is a lot of energy going into making it easy to design and fabricate physical things. This is true for electronic hardware but also for any product that has a physical embodiment.</p>
  39. <p>Nadya Peek from the MIT Center for Bits and Atoms gave a <a href="">talk</a> on machine tools that can build machine tools. This is important because building and setting up machine tools is one of the critical path tasks in manufacturing physical objects. These tools could help cut the cycle time and cost for tooling. Also, in the spirit of the era, the designs for her machines are open source at <a href=""></a></p>
  40. <p>Carl Bass, the CEO of Autodesk <a href="">talked</a> about how Autodesk took a step back and reimagined Autocad in the the modern world, against three principles:</p>
  41. <ol>
  42. <li>“Infinite computing” &#8211; treat computing power as if it were super cheap</li>
  43. <li>“Cloud based” &#8211; for collaboration and for delivery &#8211; you can get Autodesk Fusion 360 for $25/mo</li>
  44. <li>“Computational design” &#8211; put computing power to work to do parallel search / exploration of designs</li>
  45. </ol>
  46. <p>The bottom line here is that anyone with $25/mo can have access to start of the art 3d CAD/CAM tools, based on the AutoCAD platform used by designers and engineers everywhere.</p>
  47. <p>Microsoft did a live coding <a href="">demo</a> where they using an Intel Quark board to build a sound pressure meter. This was coupled with some very nice integration with Visual Studio. I’m not a big Microsoft/Intel fan for this space, but I think that this showed the potential for improving the toolchain and round trip experience for platforms like Arduino.</p>
  48. <p>Julie bought our 11 year old a set of <a href="">Littlebits</a> as a way to get her some knowledge about electronics. She is a very hands on kind of learner and Littlebits seemed like a good vehicle for her. I didn’t do much homework on this because Julie did most of the research. So my impression of Littlebits was that it was sort of aimed at a kids education kind of space. Some of their marketing like “Lego for the iPad generation”, also gives that impression. Ayah Bdeir, the CEO of gave a great <a href="">talk</a> on LIttlebits and the vision of where it is going. The notion of making electronics very accessible, to the point where it can be viewed as just another material in someone’s creative toolbox, really resonated with the theme of Solid, and with our own angle on Littlebits. Littlebits is a great modular hardware platform that makes it easy to prototype electronics very rapidly, and it’s the first step in a longer journey of “materializing” electronics. It was a plus to be able to stop by the Littlebits booth and thank Ayah for Littlebits and the fact that I had to explain PWM to my 11 year old.</p>
  49. <p><b>Vision</b></p>
  50. <p>There were several talks which stood out because they painted a good picture of some things which are further out, but which appear to be obtainable given consistent application of product improvement and sufficient resources.</p>
  51. <p>Neil Gershenfeld, the director of the MIT Center for Bits and Atoms, <a href="">talked</a> about fabrication as digital process. The key idea is that at the moment all the knowledge about fabrication is in the machinery doing the fabrication, not in the material being fabricated. He talked about what becomes possible when physical fabrication become more akin to programming.</p>
  52. <p>Hiroshi Ishii from the MIT Tangible Media group <a href="">talked</a> about Tangible Bits (user interfaces based on direct manipulation of physical embodiments of bits) and Radical Atoms (materials that can change form based on digital information)</p>
  53. <p>Ivan Poupyrev is now at Google but was a part of the Disney Research labs. He <a href="">demonstrated</a> several inventions from his time at Disney. Touche, which can turn lots of ordinary surface into touch sensitive input devices. He demonstrated a way to generate minute amounts of power locally without batteries, via rubbing pieces of paper together (as in turning the pages of a book). His final demo, Aireal, is a way of using puffs of air to create invisible haptic displays. The overall theme for all of these inventions was “How can we make the whole world interactive”?</p>
  54. <p>Beth Comstock is the Chief Marketing Officer at GE. She <a href="">talked</a> about the fact that GE makes a huge range of machines of all kinds, and has experience with all kinds of materials and electronics. GE is looking ahead to taking those machines and enhancing them and the data that they produce via software. GE is a physical first company that is in the process of becoming digital, and leading us into a Brilliant Age. In this age:</p>
  55. <ol>
  56. <li>We’re going to have to learn to speak industrial machine &#8211; we need to be able to deal with the immense amount of data generated by sophisticated machines</li>
  57. <li>The Selfish Machine &#8211; machines will use data to introspect about their own performance and operation and alter their behavior, ask humans for help, or provide input for the design of the next generation</li>
  58. <li>The Selfless Machine &#8211; machines will be able to exchange data with each other to coordinate with other machines</li>
  59. <li>Machine Knock Down that Wall &#8211; machines will impact the process of making machines &#8211; rapid iteration of hardware design, open innovation processes</li>
  60. </ol>
  61. <p><b>Robotics</b></p>
  62. <p>In some ways, robotics is one of the culiminations of the software / hardware / everywhere mantra. There were lots of talks and exhibits on robotics at Solid. Here are 2 that stood out.</p>
  63. <p>Rod Brooks is the founder of Rethink Robotics and a long time professor of robotics at MIT. I did some robotics as a grad student. Rod’s <a href="">talk</a> was a great way to get a small glimpse at the current state of the art. His company is doing some really interesting work in making industrial robots more flexible and easier to work with. One of the interesting points in his talk was that they are now working on ways to build robotic arms out of cheaper materials/hardware by leveraging more sophisticated software to compensate for the flaws of cheaper materials. At the end of his talk, he outlined for challenges for robotics:</p>
  64. <ol>
  65. <li>Visual object recognition on a par with a 2 year old</li>
  66. <li>The language capabilities (not vocabulary) of a 4 year old &#8211; noisy environments, grammer</li>
  67. <li>Dexterity of a 6 year old</li>
  68. <li>The social understanding (model of the world) of an 8 year old.</li>
  69. </ol>
  70. <p>The other <a href="">talk</a> was Carin Meier’s robotic dance party. This one was purely selfish. My 13 year old is interested in space/robotics, so when Carin did a version of this keynote at OSCON, I showed my daughter the video. She ended up doing a school project on drones. As part of the way her school does projects, she needed to get an “expert”, so I gave her Carin’s email. That eventually resulted in some <a href="">tweets</a>. For Solid, Carin expanded the scope of the dancing and added some nice music control via Clojure’s overtone library. It was fun to find her afterwards and thank her in person for helping / inspiring my daughter.</p>
  71. <p><b>Final Thoughts</b></p>
  72. <p>The most motivational thing about Solid was a mix of ideas from Astro Teller’s <a href="">talk</a> about GoogleX, and a quote from Jeff Hammerbacher. Teller said (my paraphrase) “most of the world’s real problems are physical in nature, you can’t just solve them with software”. Hammerbacher is responsible for a quote that went around the internet back in 2011 that goes something like: &#8220;The best minds of my generation are thinking about how to make people click ads”. A lot of bright people have gone into software because the malleability of software and the internet means that you can make something and see the impact of it in a very short time. I’m excited to see progress in making hardware development more accessible and rapid. Perhaps that will lead to more bright minds finding ways to solve important physical world problems.</p>
  73. ]]></content:encoded>
  74. <wfw:commentRss></wfw:commentRss>
  75. <slash:comments>0</slash:comments>
  76. <post-id xmlns="com-wordpress:feed-additions:1">406</post-id> </item>
  77. <item>
  78. <title>Strange Loop 2013</title>
  79. <link></link>
  80. <comments></comments>
  81. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  82. <pubDate>Sat, 21 Sep 2013 18:04:30 +0000</pubDate>
  83. <category><![CDATA[internet]]></category>
  84. <category><![CDATA[programming]]></category>
  85. <category><![CDATA[programming languages]]></category>
  86. <guid isPermaLink="false"></guid>
  88. <description><![CDATA[It&#8217;s been a while since I have written a post, or been to a conference. &#160;&#160; I wish that I had time to write more and that I could write about what I am up to. In lieu of that, here is a report on Strange Loop 2013, which is the only conference that I [&#8230;]]]></description>
  89. <content:encoded><![CDATA[<p>It&#8217;s been a while since I have written a post, or been to a conference. &nbsp;&nbsp; I wish that I had time to write more and that I could write about what I am up to. In lieu of that, here is a report on Strange Loop 2013, which is the only conference that I am attending all year.</p>
  90. <p><b>Emerging Languages Camp</b></p>
  91. <p>One does not attend Strange Loop without attending Emerging Languages Camp (ELC). I view the camp as a kind of roulette. Of course it&#8217;s unlikely that many, or perhaps any of the languages presented in the forum will ever see widespread adoption. That&#8217;s not really the point. The camp is about getting language designers and implementors together, and giving them a forum to exchange ideas. Much of what has happened in languages recently is that we&#8217;ve been taking old ideas and trying to recast them in a modern context, either because computing platforms are now fast enough to bear the inefficiencies of those ideas, or because the computing community as a whole appears to be of a mind to accept them. ELC is also just a place for people who want to experiment with languages. Here was some of what stood out to me:</p>
  92. <ul>
  93. <li><a href="">Gershwin</a> &#8211; an embedding of Forth semantics in Clojure &#8211; apparently this can be helpful when one is using the Clojure threading macros all over the place</li>
  94. <li><a href="">Noether</a> &#8211; a highly stratified approach to language design. Unfortunately this talk dwelt too much on the philosophy and mathematical semantics and ran out of time before covering the details of the actual language. It&#8217;s a shame that we didn&#8217;t get to see the full content.</li>
  95. <li><a href="">Qbrt bytecode</a> &#8211; This was an interesting look at a byte code system for a different design space, where the byte code was representing somewhat high level functionality as opposed to machine level instructions.</li>
  96. <li><a href="">J</a> &#8211; J is cool because it&#8217;s basically APL 2.0. But now we also have R, Julia, and other languages. This is a space that has many contenders but no clear leader. My problem with J is that it looks even more write only than Perl.</li>
  97. <li><a href="">BODOL</a> &#8211; This talk wasn&#8217;t interest so much for the language, which the presenter acknowledged was &#8220;another toy lisp&#8221;, but for the presentation, which involved <a href="">HTML based slides being displayed inside of Emacs.</a> I felt like I was back in <a href="">6.001</a> watching the construction of a lisp, but the presentation quality was really high, which made for a great talk.</li>
  98. </ul>
  99. <p>In addition to the talks I had a number of dinner and hotel lobby discussions around ELC related topics. The ELC attendees are a great bunch.</p>
  100. <p><b>Sessions</b></p>
  101. <p>Jenny Finkel from Prismatic gave a great overview of how they use machine learning in the product. As a user this was a great explanation of how the system really works. Machine learning in keynotes is fough because it&#8217;s not something that everyone has studied so it is hard to get the level right. I definitely enjoyed it. The most useful information in the talk was when she said that coding on an iPad version has begun. I will definitely be using the living daylights out of that when it comes out.</p>
  102. <p>This year there was definitely a theme around making it easier to deal with asynchronous / event-driven systems. I was able to make it to two of the talks &#8211; there were several more. Matthew Podwysocki and Donna Malayeri from Microsoft <a href="">presented</a> on the Rx extensions, which I&#8217;ve written plenty about on this blog already. This time they came with some cool Kinect based demos. Nice to see something other than web systems. The other talk that I saw was Rich Hickey&#8217;s talk on <a href="">core.async</a>. As usual, Rich brought a great mix of theoretical concerns around core.async&#8217;s CSP based model, while melding it with treal world system building. I consider this to be a hallmark of Rich&#8217;s style, and he is one of the very very few people who is really able to fuse theory and practice into a whole. And of course, Clojure is the manifestation of that fusion. I&#8217;ve got a bunch of David Nolen&#8217;s posts on core.async in tabs in my browser, but just haven&#8217;t had the time to sit down and read them. I feel a little more caught up now.</p>
  103. <p>Another talk that I really enjoyed was Martin Odersky&#8217;s keynote on &#8220;<a href="">The Trouble with Types</a>&#8220;. The beginning of the talk was about the usual comparison between static and dynamic typing, and the end of the talk was about his work on Dotty, which is his new work on types based on &#8220;projecting higher kinded functional types onto names in modules&#8221;. He hopes that Dotty will eventually become the foundation for a future version of Scala. The interesting part for me happened in the middle of the talk, because that was the part where he admitted to some of the problems with types. Like needing a debugger for your type system because it had become so computationally powerful. The aha moment for me was around his discussion of how orthongonality in the type system design had contributed to the problems that he saw with Scala&#8217;s type system. It is a tenet among computer scientist that orthogonality is desirable. It was one of the foundational arguments in the CISC vs RISC computer architecture wars, and it is a badge of honor among language designers to have as much orthogonality as possible. However, orthogonality leads to a potentially large surface area of possibilities and interactions, which users need to master and be aware of, and which implementors need to implement completely and efficiently. On reflection, this should be obvious, but the lights went on for me during the talk.</p>
  104. <p>I stopped into to see the latest installment of Friedman and Byrd&#8217;s journey with MiniKanren. I was very interested to see their <a href="">exploration</a> of the Chomsky hierarchy (of computational complexity). As usual, this is related to my interest in Clojure&#8217;s core.logic. They &#8220;cheated&#8221; a little bit in what they showed, but it was still interesting. &nbsp;&nbsp;</p>
  105. <p>Avi Bryant gave a great <a href="">talk</a> on the applicability of abstract algebra, well mostly monoids, to the type of streaming calculations that are needed in many analytics systems. He showed how this provides a foundation for solutions like hyperloglog, min-hash, and count-min sketch. &nbsp;&nbsp;</p>
  106. <p>Crista Lopes gave a talk called <a href="">Exercises in Style</a> which was about styles of programming. She observed that within teams, one can often figure out who wrote a piece of code just by looking at it. Another observation was that in art, students are taught what comprises the various styles and how to produce them. I thought that this was leading to a very promising discussion. She then presented the same program written in 9 different styles that she had observed. The first 3-4 styles (which have numbers and not names yet) were really what I was expecting to see. As we moved to more styles, they started to look like language paradigms, which I think is less interesting. Lopes is working on a book on this topic and has 33 styles that she&#8217;s identified so far. I&#8217;ll be keeping my eye out for that.</p>
  107. <p>Another theme at Strange Loop this year was diversity. You saw it both in the speakers roster and in the session content. I didn&#8217;t get a chance to ask him, but I am pretty sure that Alex Miller made a very concerted effort to invite women speakers, because there was a much higher number of women speakers than last year, and also much higher than any other conference that I can remember. On the content side, there were several sessions. There was a good <a href="">presentation</a> on the history of women in computing. I definitely learned a bunch of things. The focus was on the early history of computing which was great, but I was disappointed that several prominent women in recent history were omitted. That&#8217;s the problem with histories, invariable someone gets left out. Some history is better than no history, especially on this topic. Alex also invited Jen Myers to do one of the <a href="">keynotes</a>. I&#8217;m not sure how to summarize this presentation because there are too many different angles. There was the angle about diversity, there was the angle about boosting education, there was the angle of making something good because we are good as people. So rather than try, I&#8217;ll just insert a Ray Bradbury <a href="">quote</a> that Jen used in her talk. This version is longer than the version in the talk, but it speaks to me.</p>
  108. <blockquote><p>
  109.  I think it’s part of the nature of man to start with romance and build to a reality. There’s hardly a scientist or an astronaut I’ve met who wasn’t beholden to some romantic before him who led him to doing something in life.
  110. </p></blockquote>
  111. <blockquote><p>
  112.  I think it’s so important to be excited about life. In order to get the facts we have to be excited to go out and get them, and there’s only one way to do that — through romance. We need this thing which makes us sit bolt upright when we are nine or ten and say, ‘I want to go out and devour the world, I want to do these things.’ The only way you start like that is with this kind of thing we are talking about today. We may reject it later, we may give it up, but we move on to other romances then. We find, we push the edge of science forward, and I think we romance on beyond that into the universe ever beyond. We’re talking not about Alpha Centauri. We’re talking of light-years. We have sitting here on the stage a person who has made the film* with the greatest metaphor for the coming billion years. That film is going to romance generations to come and will excite the people to do the work so that we can live forever. That’s what it’s all about. So we start with the small romances that turn out to be of no use. We put these tools aside to get another romantic tool. We want to love life, to be excited by the challenge, to life at the top of our enthusiasm. The process enables us to gather more information. Darwin was the kind of romantic who could stand in the middle of a meadow like a statue for eight hours on end and let the bees buzz in and out of his ear. A fantastic statue standing there in the middle of nature, and all the foxes wandering by and wondering what the hell he was doing there, and they sort of looked at each other and examined the wisdom in each other’s eyes. But this is a romantic man — when you think of any scientist in history, he was a romancer of reality.
  113. </p></blockquote>
  114. <p>Alex has historically done a great job of getting great speakers for Strange Loop, and just just recent stars, but pioneers and old timers. This year we had Chuck Moore, Dan Friedman, and Douglas Hofstader. This year&#8217;s <a href="">closing keynote</a> was Hofstader, whose book &#8220;I am a Strange Loop&#8221; was the inspiration for the name of the conference. &nbsp;&nbsp;Hofstader&#8217;s talk was an exploration of that topic, and was everything that you could have hoped for given Hofstader&#8217;s amazing works of literature. What one could not have hoped for, however, was what followed. Alex commissioned David Stutz to do a <a href="">multimedia performance</a> based on Hofstader&#8217;s work. &#8220;Thrown for a Loop: A Carnival of Consciousness&#8221; was a performance that involved theater, a 5 piece brass quintet, Macintosh driven multimedia (including forays into Emacas and Clojure&#8217;s nREPL), and an aerialist. You will have to go and watch the video when it comes out, because I don&#8217;t have the words to describe it.</p>
  115. <p><b>Miscellanea</b></p>
  116. <p>Thursday night of Strange Loop we were treated to a conference party at the <a href="">City Museum</a> in St. Louis, which can only be described as part architectural museum and part playground, or as @petrellic put it &#8220;A habit rail for adults&#8221;. This was one of the most amazing venues that I have ever been to for a conference party. The three hours that we were allotted vanished quickly as we all explored the mysteries of the museums and its paths, trail, tunnels, stairways, and slides.</p>
  117. <p>I&#8217;ve always had a little trouble describing what Strange Loop is to my coworkers and friends. I found a tagline, courtesy of <a href="">@samberan</a>: &#8220;Strange Loop is TED for programmers&#8221;.</p>
  118. <p>Conference organizers take note: Strange Loop has seriously raised the already high bar on you.</p>
  119. ]]></content:encoded>
  120. <wfw:commentRss></wfw:commentRss>
  121. <slash:comments>2</slash:comments>
  122. <post-id xmlns="com-wordpress:feed-additions:1">403</post-id> </item>
  123. <item>
  124. <title>Strange Loop 2012</title>
  125. <link></link>
  126. <comments></comments>
  127. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  128. <pubDate>Fri, 28 Sep 2012 03:15:11 +0000</pubDate>
  129. <category><![CDATA[internet]]></category>
  130. <category><![CDATA[data]]></category>
  131. <category><![CDATA[functional programming]]></category>
  132. <category><![CDATA[languages]]></category>
  133. <guid isPermaLink="false"></guid>
  135. <description><![CDATA[I think that the most ringing endorsement that I can give Strange Loop is that it has been a very long time since I experienced so much agony when trying to pick which talks to go to during any given block. Emerging Languages Camp This year Strange Loop hosted the Emerging Languages Camp (ELC), which [&#8230;]]]></description>
  136. <content:encoded><![CDATA[<p>I think that the most ringing endorsement that I can give Strange Loop is that it has been a very long time since I experienced so much agony when trying to pick which talks to go to during any given block.</p>
  137. <p><b>Emerging Languages Camp</b></p>
  138. <p>This year Strange Loop hosted the Emerging Languages Camp (ELC), which previously had been hosted at OSCON. I liked the fact that it was its own event, not yet another track in the OSCON panoply. That, coupled with a very PLT oriented audience this year, made Strange Loop a much better match for ELC than OSCON.</p>
  139. <p>I definitely went into ELC interested in a particular set of talks. There is a lot of buzz around big data, and some of the problems around big data and data management more generally. Also I did my graduate work around implementing &#8220;database programming languages&#8221;, so there was some academic interest to go along with the practical necessity. There were three talks that fell into that bucket: <a href="">Bandicoot: code reuse for the relational model</a>, <a href="">The Reemergence of Datalog</a>, and <a href="">Julia: A Fast Dynamic Language for Technical Computing</a>.</p>
  140. <p>I found Bandicoot a little disappointing. I think that the mid 90&#8242; work of Buneman&#8217;s group at UPenn on <a href="">Structural Recursion as a Query Language</a> and <a href="">Comprehension Syntax</a> would be a better basis for a modulary and reusable system for programming relations. &nbsp;&nbsp;</p>
  141. <p>Logic Programming may be making a resurgence via the work on core.logic in Clojure and the influence of Datalog on <a href="">Cascalog</a>, <a href="">Datomic</a> and <a href="">Bloom</a>. The Reemergence of Datalog was tutorial on Datalog for those who had never seen it before, as well as a survey of Datalog usage in those modern day systems.</p>
  142. <p>Julia is a language that sits in the same conceptual space as R, SAS, SPSS, and so forth. The problem with most of those systems is that they were designed by statisticians and not programmers. So while they are great for statistical analysis, they are less good for statistical programming. Julia aims to improve on this, while adding support for distributed compuation and a very high performance implementation. There&#8217;s no decisive winner in the technical computing space, and it seems like Julia might have a chance to shine.</p>
  143. <p>There were, of course, some other interesting language talks at ELC. &nbsp;&nbsp;</p>
  144. <p>Dave Herman from Mozilla talked about <a href="">Rust</a> for the first time (at least to a large group). Rust is being developed as a systems programming language. There are some interesting ideas in it, particularly a very Erlang like concurrency model. At the same time, there were some scary things. Part of what Rust is trying to do is achieve performance, and part of how this happens is via explicit specification of memory/variable lifetimes. Syntactically this is accomplished via punctuation prefixes, and I was wondering if the code was going to look very Perl-ish. <a href="">servo</a> is browser engine that is being written in Rust, and looking at the source code of a real application will help me to see whether my Perlishness concern is valid.</p>
  145. <p><a href="">Elixir: Modern Programming for the Erlang VM</a> looks like a very nice way to program atop BEAM (the Erlang VM). Eliminating the prolog inspired syntax goes a long way, and it appears that Elixir also addresses some of the issues around using strings in Erlang. It wasn&#8217;t clear to me that all of the string issues have been addressed, but I was definitely impressed with what I saw.</p>
  146. <p><b>Strange Loop Talks and Unsessions</b></p>
  147. <p>I&#8217;m going to cover these by themes. I&#8217;m not sure these are the actual themes of the conference, but they are the themes that emerged from the talks that I went to.</p>
  148. <p>First, and unsurprisingly, a data theme. The opening keynote, <a href="">In Memory Databases: the Future is Now!</a> was by Mike Stonebraker. It&#8217;s been a long time since I saw Stonebraker speak &#8211; I think that the last time was when I was in graduate school. He was basically making the case that transaction processing (TP) is not going away, and that there might be applications for a new generation of TP systems in some of the places where the various NoSQL systems are now being used. Based on that hypothesis/assumption, he then went on to describe the trends in modern systems and how they would lead to different design, much of which is embodied in VoltDB. This was a very controversial talk, at for some people. I considered the trend/system analysis part to be reasonable in a TP setting. I&#8217;m not sure that I agree with his views on the applicability of TP, but I&#8217;m fairly sure that time will sort all of that out. I think that this is an important point for the NoSQL folks to keep in mind. When the original work on RDBMS was done, it was mocked, called impractical, not useful and so forth. It took many years of research and technology development. I think that we should expect to see something similar with NoSQL, although I have no idea how long that timeline will be.</p>
  149. <p>Nathan Marz&#8217;s talk <a href="">Runaway Complexity in Big Data… and a plan to stop it.</a> was basically making the case for, and explaining the hybrid/combined batch/realtime architecture that he pioneered at BackType, and which is now in production at Twitter. That same architecture led to Cascading and Storm, which are pretty interesting systems. Marz is working on a book with Manning that will go into the details of his approach.</p>
  150. <p>The other interesting data talks revolved around Datomic. Unfortunately, I was unable to attend Rich Hickey&#8217;s <a href="">The Database as a Value</a>, so I didn&#8217;t get to hear him speak directly about Datomic. There are several Datomic related videos floating around, so I&#8217;ll be catching up on those. I was able to attend the evening unsession <a href="">Datomic Q&amp;A / Hackfest</a>. This session was at 9pm, and was standing room only. I didn&#8217;t have quite enough background on Datomic to follow all of what was said, but I was very interested by what I saw: the time model, the immutability of data which leads to interesting scalability, the use of Datalog. I&#8217;m definitely going to be looking into it some more. The one thing that troubles me is that it is not open source. I have no problem with a paid supported version, but it&#8217;s hard to make the argument for proprietary system or infrastructure software nowadays.</p>
  151. <p>Another theme, which carried over from ELC was logic programming. I had already heard Friedman and Byrd speak at last fall&#8217;s Clojure/conj, and I was curious to see where they have taken miniKanren since then. In their talk, <a href="">Relational Programming in miniKanren</a>, they demonstrated some of what they showed previously, and then they ran out of material. So on the fly, they decided to implement a type inferencer for simple lambda terms live on stage. Not only were they able to finish it, but since it was a logic program, they were also able to run it in reverse, which was pretty impressive. I was hoping that they might have some additional work on constraints to talk about, but other than disequality constraints, they didn&#8217;t discuss anything. Afterwards in Twitter, Alex Payne pointed out that there are some usability issues with miniKanren&#8217;s API&#8217;s. I think that this is true, but it&#8217;s also true that this is a research system. You might look at something like Clojure&#8217;s core.logic for a system that&#8217;s being implemented for practitioners.</p>
  152. <p>David Nolen did an unsession <a href="">Core Logic: A Tutorial Reconstruction</a> where he walked the audience through the operation of core.logic, and by extension, miniKanren, since the two systems are closely related. He pointed out that he read parts of &#8220;The Reasoned Schemer&#8221; 8 times until he understood it enough to implement it, and then he found that he didn&#8217;t really understand it until after the implementation was done. There was also a large crowd in this session, and <a href="">Christopher Petrelli</a> made a video recording on his phone, since InfoQ wasn&#8217;t recording the unsessions.</p>
  153. <p>The final talk in the logic programming them was Oleg Kiselyov&#8217;s talk <a href="">Guess lazily! Making a program guess and guess well</a>. Kiselyov has been around for a long time and written or coauthored many important papers related to Scheme and continuations. I&#8217;ve be following (off and on) his work for a long time, but this is the first time I was at a conference where he was speaking. I was shocked to find that the room was packed. His talk was about how to defer making the inevitable choices required by non-determinism, especially in the context of logic type systems. His examples were in OCaml, which I had some trouble following, but after Friedman and Byrd the day before, he apparently felt compelled to write a type inferencer that could be run backwards as well. His code was a bit longer than the miniKanren version.</p>
  154. <p>The next theme is what I&#8217;d call effective use of functional programming. The first talk was Stuart Sierra&#8217;s <a href="">Functional Design Patterns</a>. This was a very worthwhile talk, which I won&#8217;t attempt to summarize since the slides are available. Needless to say, he found a number of examples that could be called design patterns. This was one of the talks where I need to sit down and look at the patterns and think on them for a while. That&#8217;s hard to do during the talk (and the conference, really). Some things require pondering, and this is one of them.</p>
  155. <p>The other talk in this category was <a href="">Graph: composable production systems in Clojure</a>, which described the Prismatic team&#8217;s approach to composing systems in Clojure. What they have is an abstraction that allows them to declaratively specify how the parts of the system are connected. For a while it just looked to me like a way to encode a data flow graph in a Clojure abstraction. The aha moment was when he showed how they use Clojure metadata to annotate the arguments or pipe connectors if you will. The graphs can be compiled in a variety of ways including Clojure lazy maps, which present some interesting possibilities. Unfortunately, I had to leave half way through the talk, so I missed the examples of how the apply this abstraction in their system.</p>
  156. <p>Theme number four was programming environments. I hesitate to use the term IDE, because it connotes a class of tools that is loved by some, reviled by others, and when you throw that term around, it seems to limit people&#8217;s imagination. I contributed to the Kickstarter for Light Table, so I definitely wanted to attend Chris Granger&#8217;s talk <a href="">Behind the Mirror: The birth of Light Table</a>. Chris gave a philosophical preamble before showing off the current version of Light Table. He demonstrated adding support for Git in a short amount of code, and went on to demonstrate a mode for developing games. He said that they are planning to release version 1 sometime in May, and that Light Table will be open source. I also learned that Kickstarter money is counted as revenue, so they have lost a significant amount of the donations to taxes, which is part of the reason that Kodawa participated in Y Combinator, and is trying to raise some money to get a bigger team.</p>
  157. <p>Not long after the Light Table kickstarter, this <a href="">video</a> by Bret Victor made the rounds. It went really well with all the buzz about Light Table, and Alex Miller, the organizer of Strange Loop, went out and persuaded Bret to come and talk. Bret&#8217;s title was <a href="">Taking off the Blindfold</a>, and I found this to be a very well motivated talk. In the talk, Bret talked about the kinds of proerties that our programming tools should have. The talk was vey philosophical despite the appearance of a number of toy demos of environment features.</p>
  158. <p>During both of these talks there was a lot of chatter. Some was harking back to the Smalltalk (but sadly, not the Lisp Machine) environments,while some questioned the value of a more visual style of tools (those emacs and vi graybeards). When I first got into computers I read book called <a href="">&#8220;Interactive Programming Environments&#8221;</a> and ever since i&#8217;ve always been wishing for better tools. &nbsp;&nbsp;I am glad to see some experimentation come back into this space.</p>
  159. <p>Some old friends are busy making hay in the Node.js and Javascript communities, and it probably horrifies theme that I have ClojureScript as a theme, but so be it. I went to two ClojureScript talks. One was David Nolen&#8217;s <a href="">ClojureScript: Better Semantics at Low Prices!</a>, which was really state of the union of ClojureScript. The second was Kevin Lynagh&#8217;s <a href="">Building visual data driven UI&#8217;s with ClojureScript</a>. Visualization is becoming more and more important and ClojureScript&#8217;s C2 library look really appealing.</p>
  160. <p>It&#8217;s fitting that the last them should be Javascript. Well, maybe. I went to two Javascript talks, and both of them were keynotes, so I didn&#8217;t actually choose them. But Javascript is so important these days that it really is a theme. In fact, it&#8217;s so much of a theme, that I&#8217;ve been going to Javascript conferences for the last 2 years. It&#8217;s been several years since I saw Lars Bak speak. His talk on <a href="">Pushing the Limits of Web Browsers</a> was in two parts. Or so I think. I arrived just as he was finishing the first part which seemed like an account of the major things that the V8 team has learned during their amazing journey of speeding up Javascript. The second part of his talk was about Dart. I didn&#8217;t know that Bak was the lead of the Dart project, but that doesn&#8217;t change how I feel about Dart. I see the language, I understand the rationale, and I just can&#8217;t get excited about it. &nbsp;&nbsp;</p>
  161. <p>I&#8217;ve been to enough of those Javascript only talks to hear Brendan Eich talk about <a href="">The State of Javascript</a>. Brendan opened by giving a brief history of how Javascript got to be the way it is, and then launched into a list of the improvement coming in EcmaScript 6 (ES6). That was all well and good, and towards the end, after the ES6 stuff, he threw in some items that were new, like the <a href="">sweet.js</a> hygienic macro project, and the <a href="">lljs</a> typed JavaScript project. It seemed like this was a good update for this audience, who seemed unaware of all the goings on over in JavaScript land. From a PLT point of view, I guess that&#8217;s understandable, but at the same time, JavaScript is too important to ignore.</p>
  162. <p><b>Final Thoughts</b></p>
  163. <p>Strange Loop has grown to over 1000 people, much larger than when I attended in 2010 (I had to miss 2011). I think that Alex Miller is doing a great job of running the conference, and of finding interesting and timely speakers. This was definitely the best conference that I attended this year, and probably the last 2-3 years as well.</p>
  164. <p>If you&#8217;re looking for more information on what happened at Strange Loop 2012:</p>
  165. <p>Slides: <a href=""></a></p>
  166. <p>Other Strange Loop Coverage: <a href=""></a></p>
  167. ]]></content:encoded>
  168. <wfw:commentRss></wfw:commentRss>
  169. <slash:comments>0</slash:comments>
  170. <post-id xmlns="com-wordpress:feed-additions:1">397</post-id> </item>
  171. <item>
  172. <title>JSConf 2012</title>
  173. <link></link>
  174. <comments></comments>
  175. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  176. <pubDate>Sun, 08 Apr 2012 02:53:06 +0000</pubDate>
  177. <category><![CDATA[internet]]></category>
  178. <category><![CDATA[programming]]></category>
  179. <category><![CDATA[dynamic languages]]></category>
  180. <category><![CDATA[javascript]]></category>
  181. <guid isPermaLink="false"></guid>
  183. <description><![CDATA[This year JSConf was in Scottsdale Arizona, which provided some welcome relief from the cold, wet, Seattle winter/spring. News One of the biggest pieces of news was that Mozilla gave all attendees a Nexus S smartphone running a developer version of the Boot to Gecko (B2G) phone operating system. When I say developer, I mean, [&#8230;]]]></description>
  184. <content:encoded><![CDATA[<p>This year JSConf was in Scottsdale Arizona, which provided some welcome relief from the cold, wet, Seattle winter/spring.</p>
  185. <p><b>News</b></p>
  186. <p>One of the biggest pieces of news was that Mozilla gave all attendees a Nexus S smartphone running a developer version of the <a href="">Boot to Gecko</a> (B2G) phone operating system. When I say developer, I mean, camera support was broken, things were crashing, that sort of thing. These phones were a big hit among the attendees. They contributed to knocking the conference wifi out temporarily, and I saw several groups of people who were working on projects for the phone. My experience at Google I/O had soured me on the idea of giving away free devices. In the case of Google I/O, device giveaways have become an expectation, and there is some proportion of people who sign up for that conference based on the hope of getting a free device. Still, Mozilla is going to need all the help that they can get, and people seemed to take the challenge to heart. I did find it interesting that the Mozilla folks were speaking of B2G as a great feature phone software stack. This is a realistic way of climbing up the stairs in the mobile phone market. It&#8217;s hard to imagine a real competitor to iOS and Android, but I&#8217;m glad to see an effort in this direction. There&#8217;s WebOS, Windows Phone 7, and B2G all using some variant of the open web stack. It seems like there ought to be some collaboration between B2G and WebOS&#8217;s <a href="">Enyo</a> framework.</p>
  187. <p><b>Talks</b></p>
  188. <p>There were a bunch of talks on the internals of Javascript Virtual Machines. From a computer science point of view, these talks are interesting. I heard a lot of these kinds of talks at PyCon and during my days at Sun. It seemed that most of the audience appreciated this material, so the selections were good. The part of this that I found disturbing is wrapped up in one of the questions, which was basically, how can we write our code to take advantage of how the VM works. Given the number of VM&#8217;s that Javascript code might execute on, this seems like a path fraught with peril.</p>
  189. <p>Also on the language front, there was more representation from functional programming. There was a talk on <a href="">Roy</a>, and David Nolen gave a talk that was billed as being about <a href="">Clojurescript</a>, but was really more about having a sense of play regarding all this technical work. Closely related to the functional programming was GPU programming. Jarred Nichols talked about implementing a Javascript interpreter in OpenCL. Stephan Herhut from Intel talked about the <a href="">RiverTrail</a> parallel extensions to Javascript which do data parallel computing using operations taken from functional programming. The extensions compile to OpenCL, which I found interesting. I wonder how many more languages we&#8217;ll see compiling to OpenCL or partially compiling to OpenCL.</p>
  190. <p>Paul Irish did a nice <a href="">presentation</a> on tools which gave a great overview of the state of the practice in the various areas related to web application development. There were several tools that I didn&#8217;t know about. The presentation is all HTML5 but has some very nice visuals and animation. I&#8217;d love to know the name of the package that he used.</p>
  191. <p>Ever since Node.js came out, I&#8217;ve been enamored of the idea that you could share/move some amount of code back and forth between the client and the server, much as code used to move back in the days of <a href="">NeWS</a>. Yahoo&#8217;s <a href="">Mojito</a> is an investigation in this space. It relies heavily on YUI, which I haven&#8217;t used. I&#8217;m looking forward to looking into the code and seeing how it all fits together.</p>
  192. <p>The team at Bitovi make a special lunchtime <a href="">presentation</a> about CanJS, which is another MVC framework for Javascript. CanJS is in the same space as backbone, knockout, and so forth. It&#8217;s claims to fame are reduction of certain kinds of memory leaks, size, and speed. From the benchmark slides it seems worth a look.</p>
  193. <p><b>Keynotes</b></p>
  194. <p>Dan Ingalls delivered the closing keynote on the first day. I met Dan briefly when I worked at Sun, and I was familiar with his work on the <a href="">Lively Kernel</a>. The Lively Kernel is the answer to the question &#8220;what if we tried to build Squeak Smalltalk in Javascript&#8221;. It is much more than a language, it is an environment for building programs and simulations. I&#8217;m of two minds about this work. On the one hand, there&#8217;s depression that we still haven&#8217;t managed to catch up to the work that Ingalls and his contemporaries pioneered 30 years ago, and that today&#8217;s practitioners are completely oblivious to this work (a comment on Twitter confused Lively with an advanced version of the NeXT Interface Builder &#8212; the causality is reversed). On the other hand, although the Lively Kernel is written in Javascript and runs in a browser, it&#8217;s not really connected to today&#8217;s world, and so it&#8217;s applicability to solving web problems is limited. Nonetheless, Ingalls received a well deserved standing ovation. He is among the pioneers of our field, and as his generation is starting to pass on, it feels good to be able to personally honor them for their contributions to the field.</p>
  195. <p>I have no idea how Chris Williams convinced <a href="">Rick Falkvinge</a>, the founder of the first (Swedish) Pirate Party to come and speak at JSConf. The topic of his talk was the politics of the net generation. Falkvinge told the story of how he came to found the Pirate party in Sweden, and described the success that the party is having in Europe. He claimed that about every 40 years, we have a new key idea. Apparently the theme for the period which is now ending was sustainability, and the claim is that the theme for the next 40 years will be free speech and openness. He credits this theme with the rise of the various Pirate parties in Europe, pointing to the European protests around ACTA and the US protest around SOPA as additional corroborating evidence. Falkvinge claims that the Pirate party has widened the scope of politics and given young people a way to vote for the issues that they care about. I wish that something similar was happening in American politics.</p>
  196. <p><b>Hallway</b></p>
  197. <p>As always, JSConf had a rich hallway/party track. I had lots of great conversations with people on topics including the Javascript API&#8217;s for Windows 8, the mismatch between many concurrency models and real shared memory hardware, and proper use and optimization of CSS. I think that facilitating the hallway track is one of the areas where JSConf excels. The venues are always nice, and this year there were hallway conversations, in pools, around campfires, as well as the usual hotel lobbies and restaraunts/bars/lounges. I was also happy to be able to introduce Matthew Podwysocki, who has been doing excellent work on <a href="">RX.js</a>, and David Nolen, who has been working on Clojurescript. I think that there can be some nice synergy between these two projects, and I&#8217;m eager to see if they agree.</p>
  198. <p>The best roundup of JSConf coverage appears to be on <a href="">Lanyrd</a>.</p>
  199. ]]></content:encoded>
  200. <wfw:commentRss></wfw:commentRss>
  201. <slash:comments>0</slash:comments>
  202. <post-id xmlns="com-wordpress:feed-additions:1">395</post-id> </item>
  203. <item>
  204. <title>Strata 2012</title>
  205. <link></link>
  206. <comments></comments>
  207. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  208. <pubDate>Mon, 05 Mar 2012 21:29:10 +0000</pubDate>
  209. <category><![CDATA[internet]]></category>
  210. <category><![CDATA[data]]></category>
  211. <guid isPermaLink="false"></guid>
  213. <description><![CDATA[Here&#8217;s a roundup of last week&#8217;s Strata conference. Jumpstart This year, the O&#8217;Reilly team introduced a new tutorial day track, called &#8220;Jumpstart&#8221;. This track was more oriented towards the business side of big data, and I think that the word MBA actually appeared in the marketing. I think that the track was a success, and [&#8230;]]]></description>
  214. <content:encoded><![CDATA[<p>Here&#8217;s a roundup of last week&#8217;s Strata conference.</p>
  215. <p><b>Jumpstart</b></p>
  216. <p>This year, the O&#8217;Reilly team introduced a new tutorial day track, called &#8220;Jumpstart&#8221;. This track was more oriented towards the business side of big data, and I think that the word MBA actually appeared in the marketing. I think that the track was a success, and was very appropriate. The effect of the next generation of data oriented technologies and applications is going to be very significant, and will have a big impact on the way that business operate. It&#8217;s very important that technologists and business people work closely in order to produce the best results.</p>
  217. <p>There were two talks that stood out for me. The first was Avinash Kaushik&#8217;s <a href="">What Marketers can learn from Analysis</a>. Kaushik is a very entertaining and dynamic speaker, and he has had a lot of experience working to help companies use analytics effectively. In his world, processing and storage is 10% of what you need, and analysts &#8211; humans are the other 90%. In other words, technology is not nearly as important as having people who can ask the right questions and verify hypotheses experimentally. And even good analysis is not enough. Organizations must be able to act on the results of analysis. I have been (and will continue to be) interested in the ability to use data as quickly as it is collected. Some people call this a &#8220;real-time&#8221; data capability, although in computer science terms, this is a misnomer. One of the best quotes from Kaushik&#8217;s talk was &#8220;If you do not have the capacity to take real time action, why do we need real time data?&#8221;. Without the ability to act, all the data collection and analysis in the world is fruitless. Kaushik&#8217;s claim was that we must remove all humans from the process in order to achieve this. Back to analysis, Kaushik feels that the three key skills of data analysis are: the scientific method, design of experiments, and statistical analysis.</p>
  218. <p>The second talk was <a href="">3 Skills of a Data Driven CEO</a> by Diego Saenz. I liked his notion that a company&#8217;s data is a raw material, just like any other raw material that might be used by a company. Raw materials must be collected, mined, purifed, and transformed before they can turn into a product, and so with a company&#8217;s data. The most important information that I got out of this talk was the case study that he presented on the Bob McDonald, the CEO of Proctor and Gamble. P&amp;G has built a business wide real time information system called <a href="">Business Sphere</a>. One <a href="">manifestation</a> of Business Sphere is a pair of 8 foot high video screens that sit in the conference room used by the CEO for his regular staff meeting. Real time data on any aspect of the company&#8217;s operations can be displayed on these screens, discussed and acted upon at the CEO staff level. Also of note is that a data analyst attends the CEO staff meeting in order to facilitate discussion and questions about the data. I remember back in the 2000&#8217;s when Cisco <a href="">talked</a> about how they could close their books in a day. Now we have the worlds largest consumer products company with a real time data dashboard in the CEO&#8217;s conference room. The bar is being raised on all companies in all industries.</p>
  219. <p><b>Talks</b></p>
  220. <p>I felt that the talks In the regular conference were weaker than <a href="">last year</a>. Part of that may be due to my talk selection &#8211; there were lots of tracks, and in some cases it was hard to figure out which talks to pick. I tend to seek out unusual content, which means more risk in terms of a &#8220;quality&#8221; talk. The advent of the O&#8217;Reilly all access path has taken some of the risk out, since that pass gives you access to the full video archive of the entire conference. The topic of video archives is probably content for another blog post. I know that there are some talks that I missed that I want to watch the videos for, but apparently, I&#8217;ll need to wait several weeks. It will be interesting to contrast that with this week&#8217;s mostly volunteer run PyCon, which has a great track record of getting all their videos up on the web during the conference, for no fee.</p>
  221. <p>Talks which were easy to remember included Sam Shah&#8217;s <a href="">Collaborative Filtering with MapReduce</a>, which included a description of how to implement collaborative filtering on Hadoop, but more importantly discussed many of the issues around building a production worthy version of such a system. It&#8217;s one thing the implement a core algorithm. It&#8217;s another to have all the rest of the infrastructure so that the algorithm can be used for production tasks.</p>
  222. <p>A large portion of the data the people are interested in analyzing is coming from social networks. I attended Marcel Salathé&#8217;s <a href="">Understanding Social Contagion</a> in the hopes of gaining some greater insight into virality. Salathé works at an infectious disease center and he spent a long time comparing biological contagion with internet virality. I didn&#8217;t find this to be particularly enlightening. However, in the last third of the talk, he started talking about some of the experimental work that his group had done, which was a little more interesting. The code for his system is available on <a href="">github</a>.</p>
  223. <p>I really enjoyed DJ Patil&#8217;s talk <a href="">Data Jujitsu: The Art of Turning Data into Product</a>. According to Patil, data jujitsu is using data elements in an iterative way to solve otherwise impossible data problems. A lot of his advice had to do with starting small and simple, and moving problems to where they were easiest to solve, particularly in conjunction with human input. As an example, he discussed the problem of entity resolution in one of the LinkedIn products, and described how they moved the problem from the server side, where it was hard, to the client side, where it was easy if you asked the user a simple question. The style he discussed was iterative, opportunistic, and &#8220;lazy&#8221;.</p>
  224. <p>Jeremy Howard from Kaggle talked about <a href="">From Predictive Modelling to Optimization: The Next Frontier</a>. Many companies are now building a lifetime value model of a customer, and some companies are even starting to build predictive models. Howard&#8217;s claim was that the next steps in the progression are take these models and use them to build simulations. Once we have simulations, we can then use optimization algorithms on the inputs to the simulation, and optimize the results in the direction</p>
  225. <p><b>Keynotes</b></p>
  226. <p>Last year, I was pretty unhappy with a number of the keynotes, which were basically vendor pitches. This year things were much better, although there were one or two offenders. Microsoft was NOT one of the offenders. Dave Campbell&#8217;s <a href="">Do We Have The Tools We Need To Navigate The New World Of Data?</a> was one of the better Microsoft keynotes that I&#8217;ve seen at an O&#8217;Reilly event (i.e. out of the Microsoft ecosystem). The talk included good non-Microsoft specific discussion of the problems, references to academic papers (each with at least one Microsoft author), and a friendly, collegial, non-patronizing tone. I hope that we&#8217;ll see more of this from Redmond.</p>
  227. <p>Avinash Kaushik had a keynote spot, and one of the most entertaining, but insightful slides was an infamous quote from Donald Rumsfeld</p>
  228. <blockquote>
  229. <p>[T]here are known knowns; there are things we know we know.</p>
  230. <p>We also know there are known unknowns; that is to say we know there are some things we do not know.</p>
  231. <p>But there are also unknown unknowns – there are things we do not know we don&#8217;t know.</p>
  232. </blockquote>
  233. <p>Kaushik was very keen on &#8220;unknown unknowns&#8221;. These are the kind of things that we are looking to find, and which analytics and big data techniques might actually help discover. He demonstrating a way of sorting data which leaves out the extremes, and leaves the rest of the data, which is likely where the unknown unknowns are hiding.</p>
  234. <p>I&#8217;ve been a fan of Hal Varian ever since I read his book <a href="">&#8220;Information Rules: A Strategic Guide to the Network Economy&#8221;</a> back during the dot-com boom. One the one hand, his talk&nbsp;&nbsp;<a href="">Using Google Data for Short-term Economic Forecasting</a>, was basically a commercial for <a href="">Google Insights for Search</a>. On the other hand, the way that he used it and showed how it was pretty decent for economic data was interesting. There were several talks that included the use of Google Insights for Search. It&#8217;s a tool that I&#8217;ve never paid much attention to, but I think that I&#8217;m going to rectify that.</p>
  235. <p><b>The App</b></p>
  236. <p>This is the first O&#8217;Reilly conference I&#8217;ve attended where they had a mobile app. There were iPad, iPhone, and Android versions. I only installed the iPad version, and I really liked it. I used it a lot when I was sitting in sessions to retrieve information about speakers, leave ratings and so forth. I&#8217;d love to see links to supplemental materials appear there. I also liked the fact that the app synced to the O&#8217;Reilly site, so that my personal schedule was reflected there. I didn&#8217;t like the fact that the app synced to the O&#8217;Reilly website because the WiFi at the conference was slow, and I often found myself waiting for those updates to finish before I could use the app. The other interesting thing was that I preferred the daily paper schedule when I was walking the hall between sessions. Part of this was due to having to wait for those updates, but part of it was that there was no view in the app that corresponded to the grid/track view of the paper schedule. More work to do here, but a great start.</p>
  237. <p><b>Final thoughts</b></p>
  238. <p>This year&#8217;s attendance was over 2300, up from 1400 last year, and I saw badges from all sorts of companies. It is apparent to me that the use of data and analytics being discussed at Strata is going to be the new normal for business.</p>
  239. ]]></content:encoded>
  240. <wfw:commentRss></wfw:commentRss>
  241. <slash:comments>0</slash:comments>
  242. <post-id xmlns="com-wordpress:feed-additions:1">392</post-id> </item>
  243. <item>
  244. <title>Blogaversary 2012</title>
  245. <link></link>
  246. <comments></comments>
  247. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  248. <pubDate>Mon, 09 Jan 2012 16:43:02 +0000</pubDate>
  249. <category><![CDATA[blogging]]></category>
  250. <guid isPermaLink="false"></guid>
  252. <description><![CDATA[Twitter, Google Plus, Facebook, Flickr, 500px. pinterest on the horizon. All that&#8217;s missing is a partridge in a pear tree, and sometimes that appears to be there as well. The world of online communication and connection is pretty different that it was nine years ago, when I slapped a bunch of Python scripts onto a [&#8230;]]]></description>
  253. <content:encoded><![CDATA[<p><a href="">Twitter</a>, <a href="">Google Plus</a>, Facebook, <a href="">Flickr</a>, <a href="">500px</a>. pinterest on the horizon. All that&#8217;s missing is a partridge in a pear tree, and sometimes that appears to be there as well. The world of online communication and connection is pretty different that it was nine years ago, when I slapped a bunch of Python scripts onto a server running in a closet in my house. For all the other forms that have emerged, blogging still has a warm place in my heart. I&#8217;ve used this blog to host long (some might say too long) and short form content over the years. I never really mastered the short form content, so it was easy for that to migrate off into Twitter land. Some of the more personal stuff that I used to write has also gone to Twitter, or to a lesser degree Facebook, but there hasn&#8217;t been a lot of time for that, so most of it has gone by the wayside. What remains is the much longer form content. Unfortunately, firing up Ecto and writing a few dozen paragraphs doesn&#8217;t come easily, and getting over some of that inertia is what&#8217;s kept more content from appearing here.</p>
  254. <p>Despite my initial misgivings, I like Google Plus. I like the ability to write short to medium content, as well as really nice picture support. I like how easy it is for conversations to start. I&#8217;m probably going to put a little more energy into being <a href="">there</a>. Will there be a 10th anniversary blog post in January 2013? I&#8217;m not sure. I&#8217;d like there to be, and I plan to keep on posting, but at the same time, there are only so many hours in a day.</p>
  255. ]]></content:encoded>
  256. <wfw:commentRss></wfw:commentRss>
  257. <slash:comments>2</slash:comments>
  258. <post-id xmlns="com-wordpress:feed-additions:1">391</post-id> </item>
  259. <item>
  260. <title>2011 in Photography</title>
  261. <link></link>
  262. <comments></comments>
  263. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  264. <pubDate>Fri, 30 Dec 2011 02:54:17 +0000</pubDate>
  265. <category><![CDATA[photographs]]></category>
  266. <category><![CDATA[photography]]></category>
  267. <guid isPermaLink="false"></guid>
  269. <description><![CDATA[I&#8217;ve been dreading writing the photography roundup post this year, because I haven&#8217;t taken a lot of photographs. I&#8217;ve only a few months worth of photographs on Flickr, which makes a month by month roundup pretty tough to do. &#160;&#160;We&#8217;ve had an enormous amount of stuff going on schedule wise this year, and between all [&#8230;]]]></description>
  270. <content:encoded><![CDATA[<p>I&#8217;ve been dreading writing the photography roundup post this year, because I haven&#8217;t taken a lot of photographs. I&#8217;ve only a few months worth of photographs on Flickr, which makes a month by month roundup pretty tough to do. &nbsp;&nbsp;We&#8217;ve had an enormous amount of stuff going on schedule wise this year, and between all of that activity, and me getting fussier about my pictures, 2011 saw a precipitous decline in the average number of pictures that I made during a given month.</p>
  271. <p>I&#8217;m still doing some dance performance work,</p>
  272. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="333" width="500" alt="OPG Nutcracker 2011" /></a></p>
  273. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="333" width="500" alt="OPG Nutcracker 2011" /></a></p>
  274. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="333" width="500" alt="OPG Nutcracker 2011" /></a></p>
  275. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="333" width="500" alt="OPG Nutcracker 2011" /></a></p>
  276. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="333" width="500" alt="Bainbridge Ballet Recital 2011" /></a></p>
  277. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="333" width="500" alt="Bainbridge Ballet Recital 2011" /></a></p>
  278. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="333" width="500" alt="Bainbridge Ballet Recital 2011" /></a></p>
  279. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="333" width="500" alt="Bainbridge Ballet Recital 2011" /></a></p>
  280. <p>and on the right occasions, I am going to interesting places that yield interesting pictures</p>
  281. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="500" width="375" alt="SXSW Interactive 2011" /></a></p>
  282. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="333" width="500" alt="SXSW Interactive 2011" /></a></p>
  283. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="500" width="333" alt="_SXSW Interactive 2011" /></a></p>
  284. <p>The highlight of the year for me photographically was a <a href="">project</a> that I did with one of the seniors at my daughters&#8217; dance studio</p>
  285. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="500" width="500" alt="Liza" /></a></p>
  286. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="500" width="500" alt="Liza" /></a></p>
  287. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="500" width="500" alt="Liza" /></a></p>
  288. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="500" width="500" alt="Liza" /></a></p>
  289. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="500" width="500" alt="Liza" /></a></p>
  290. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="500" width="500" alt="Liza" /></a></p>
  291. <p style="text-align: center;"><a href=""><img decoding="async" loading="lazy" src="" height="500" width="500" alt="Liza" /></a></p>
  292. <p style="text-align: center;"></p>
  293. <p>I think that the other notable thing for me and photography in 2011 is a move away from Flickr and towards <a href="">Google+</a>, <a href="">Facebook</a>, and <a href="">500px</a>. This is definitely a bittersweet thing for me. Flickr is pretty much responsible for getting me back into photography and putting me on a good track of growth. At the same time, I see Flickr weakening in various ways. I do a limited amount of portrait/dance shooting in my local area. For this kind of work, Facebook is pretty much the place where people might see my work. When Google+ burst onto the scene earlier this year, it was clear that it was really pretty decent for photography, and a lot of professional and advanced amateur photographers have taken to the service. In particular, Google+&#8217;s hangouts feature is great for photography growth. There are amazing photographs and photographers on Flickr, but if you look at 500px, the level of photography being displayed there is pretty amazing. I&#8217;m going to keep using Flickr, I think, but I&#8217;m going to be shifting more of my energy to Google+ and 500px in 2012.</p>
  294. <p>One of the big happenings in 2011 was that we did a remodel of the empty bonus room that&#8217;s over our garage. One of the use cases for the design of that remodel was as a photo studio. Due to time, I haven&#8217;t really been able to get up there much, but I hope to spend some time working there come the new year, so perhaps next year&#8217;s roundup won&#8217;t be so lean.</p>
  295. ]]></content:encoded>
  296. <wfw:commentRss></wfw:commentRss>
  297. <slash:comments>0</slash:comments>
  298. <post-id xmlns="com-wordpress:feed-additions:1">389</post-id> </item>
  299. <item>
  300. <title>Book Review: Head First HTML5 Programming</title>
  301. <link></link>
  302. <comments></comments>
  303. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  304. <pubDate>Mon, 21 Nov 2011 04:54:54 +0000</pubDate>
  305. <category><![CDATA[books]]></category>
  306. <guid isPermaLink="false"></guid>
  308. <description><![CDATA[You can&#8217;t read about modern web development without hearing something about HTML5. It is a term that covers not only the next version of the HTML markup language, but a broad array of facilities exposed as JavaScript API&#8217;s. Eric Freeman and Elisabeth Robson&#8217;s new book Head First HTML5 Programming approaches HTML5 from this point of [&#8230;]]]></description>
  309. <content:encoded><![CDATA[<p>You can&#8217;t read about modern web development without hearing something about HTML5. It is a term that covers not only the next version of the HTML markup language, but a broad array of facilities exposed as JavaScript API&#8217;s. Eric Freeman and Elisabeth Robson&#8217;s new book <a href="">Head First HTML5 Programming</a> approaches HTML5 from this point of view, and uses the friendly, pictorial style of their highly successful <a href="">Head First Design Patterns</a>.</p>
  310. <p>You&#8217;ll need an understanding of HTML and CSS before you dive in. This book assumes that you have those technologies under your belt, and starts right in with JavaScript. The first four chapters of the book are a good introduction to JavaScript, the web browser Document Object Model (DOM), event handling and objects. This ensures that you&#8217;ll have the level of JavaScript knowledge necessary for the chapters to come. And you will need it. In the remaining six chapters, the book covers the use of Geolocation, AJAX with JSON, including JSONP, the Canvas tag, the video tag, the various Web Storage API&#8217;s, and Web Workers. Each chapter teaches you about its subject material by building a decent size application in JavaScript. I think that seeing how an application will use a feature is the best way to really learn about it. &nbsp;&nbsp;</p>
  311. <p>If you&#8217;ve been wondering about the new features in HTML5, this book is a good introduction. The authors have stuck to the parts of HTML5 that are pretty well defined, and stayed away from those parts of the standard that are still changing. The Head First style presents you with the material from many different angles, which helps to make sure that your brain holds onto it.</p>
  312. <p>One of my daughters is interested in web programming. She needs just a little more CSS learning and then she&#8217;ll be ready to step up to dynamic HTML / HTML5. When she is, I&#8217;ll be handing her a copy of this book.</p>
  313. <p><b>Disclosure</b>: Both the authors of Head First HTML5 are friends, and Eric Freeman used to be my boss at Disney.</p>
  314. ]]></content:encoded>
  315. <wfw:commentRss></wfw:commentRss>
  316. <slash:comments>0</slash:comments>
  317. <post-id xmlns="com-wordpress:feed-additions:1">386</post-id> </item>
  318. <item>
  319. <title>Clojure Conj 2011</title>
  320. <link></link>
  321. <comments></comments>
  322. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  323. <pubDate>Tue, 15 Nov 2011 23:51:07 +0000</pubDate>
  324. <category><![CDATA[misc]]></category>
  325. <category><![CDATA[Clojure]]></category>
  326. <category><![CDATA[dynamic languages]]></category>
  327. <category><![CDATA[functional programming]]></category>
  328. <category><![CDATA[javascript]]></category>
  329. <category><![CDATA[languages]]></category>
  330. <guid isPermaLink="false"></guid>
  332. <description><![CDATA[Last week I was in Raleigh, attending the second Clojure/Conj. The last time that I attended a Lisp conference was the 1986 ACM Conference on Lisp and Functional Programming. I am a Lisp guy. I took the famed &#8220;Structure and Interpretation of Computer Programs&#8221; course from Sussman and Abelson. I spent some time doing undergraduate [&#8230;]]]></description>
  333. <content:encoded><![CDATA[<p>Last week I was in Raleigh, attending the second <a href="">Clojure/Conj</a>. The last time that I attended a Lisp conference was the 1986 ACM Conference on Lisp and Functional Programming. I am a Lisp guy. I took the famed &#8220;<a href="">Structure and Interpretation of Computer Programs</a>&#8221; course from Sussman and Abelson. I spent some time doing undergraduate research on Symbolics Lisp Machines. When Apple invested some energy into <a href="">Dylan</a>, I hoped that I&#8217;d be able to use a Lisp on a personal computer. Java pretty much ruined that. Over the years, I pretty much gave up on the idea of being able to use Lisp for my day to day work. So much so, that when I first heard Rich Hickey talk about Clojure, my reaction going in was unenthusiastic. By the end of Rich&#8217;s talk, he had my attention. Clojure has been doing some growing up since then, and I really wanted to attend last year&#8217;s Clojure/Conj, but wasn&#8217;t able to.</p>
  334. <p>Almost all of my conversations at the conference involved the questions, &#8220;Why are you at Clojure/Conj&#8221; and &#8220;How did you get interested in Clojure&#8221;. I&#8217;ve answered the second question in the previous paragraph. The question of &#8220;why&#8221; boils down to three themes: Clojure itself, Data, and Clojurescript. I&#8217;m going to use these threes theme to report on the conference talks.</p>
  335. <p><b>Clojure itself</b><br />
  336. Clojure is a Lisp dialect that runs on the JVM and has great interoperability with existing Java code. It has great support for functional programming, as well as several innovative features for dealing with concurrency.</p>
  337. <p>Stuart Sierra started off with a talk that pointed out areas where people could learn beyond the books and online exercises that are available. In each of those areas, he also proposed projects that people could work on. One of the things that stood out for me was his use of the Clojure reader to deal with Java Resources. I always found Resources to be annoying, and the use of the Reader is a clever way to make them more palatable and useful.</p>
  338. <p><a href="">Clojail</a> is a system for executing Clojure code in a sandbox. The system is quite flexible and the applications aren&#8217;t just limited to security. I can imagine using clojail to implement something like the Sponsors described in the original Actor model. Anthony Grimes, one of the committers for clojail gave the presentation. He is 17 years old.</p>
  339. <p>One thing that made me happy was to see the bridge building between the Scala and Clojure communities. Phil Bagwell, who pioneered many of the persistent data structures in Clojure is now at Typesafe, the Scala company. He came and gave a nice talk about Scala&#8217;s parallel collection classes. Perhaps these classes will one day find their way into Clojure Daniel Spiewak gave a very solid presentation on the computer science behind the persistent data structures in Clojure.</p>
  340. <p>At many conferences a talk like Clojure on Android would be at the higher end. The technical level of the talks at the Conj was high enough to make the task of getting Clojure on Android seem mundane. This is to take nothing away from the very impressive work that has been done. There are some issues remaining like footprint and startup time, but it looks like some effort is going to happen at the Clojure core team level to make some of this possible. The thought of talking to a REPL running on a phone, or tablet is a tasty one.</p>
  341. <p>Rich Hickey&#8217;s keynote reminded me very much of a Guido keynote at PyCon: a discussion of language issues that he was looking at, and a solicitation for discussion. Rich was very careful to say that the stuff he was discussing was not a roadmap, so I&#8217;ll repeat that disclaimer. Here are some of the items that stood out to me. Plans to allow multiple builds of Clojure &#8211; a regular version, a leaner deployment version, a really lean Android version, a super deluxe development/debugging version and so on. There is discussion about allowing the reader to be extensible, in order to allow new data types to be round tripped. I didn&#8217;t follow the history of ClojureScript, so it was useful to see that Rich is pretty committed to this idea, and that bits of technology might even be flowing &#8220;backward&#8221; from the ClojureScript compiler into Clojure on the JVM. I was also very interested on Rich&#8217;s view that the use of a logic system like that in core.logic would be a far better tool than a traditional type system. More on the logic system below.</p>
  342. <p>The last talk of the conference was Sam Aaron&#8217;s talk on <a href="">Overtone</a>, which is a computer music system written in Clojure. The major point was that he used Clojure to define a language for describing computer music, much in the sam way that sheet music describes regular music. There was lots of cool music along the way, including a pretty good simulation of the sound portion of the THX commercial that often plays before movies. The description of that commercial fit in a single projected screen of code.</p>
  343. <p><b>Data</b></p>
  344. <p>One thing that I&#8217;ve been looking at recently is exploratory environments for working with &#8220;federated&#8221; data. I&#8217;ve grown to dislike the term Big Data, because it&#8217;s come to mean almost nothing, however, the ship has already sailed on that one. Most people would be familiar with the idea of sitting down in front of their relational database SQL command prompts, and issuing ad-hoc queries. As the use of varied kinds of storage systems grows, we are losing that kind of interactive relationship with data. Some of the people in the Clojure community have built some interesting data systems, and Clojure is itself amenable to exploratory work with data, between it&#8217;s orientation around functional programming, and a development style oriented around a REPL.</p>
  345. <p>David McNeil talked about Revelytix&#8217;s federated (among RDBMS and RDF triple store) SPARQL query engine. Their system uses s-expressions to represents the nodes in a graph of stream processing nodes. These expressions are then compiled down to a form that can be executed in parallel using the Java Fork/Join framework. The operators in the s-expessions are mirrors of built in Clojure sequence functions, and can use and be used in Clojure expressions. It&#8217;s not hard to imagine extending the set of federatable storage systems.</p>
  346. <p>Heroku&#8217;s Mark McGranaghan talked about viewing logs data. What he really meant was viewing log data as akin to a native data type on Clojure and being able to use Clojure&#8217;s built in functions on log data in a natural way. Heroku has built a system call <a href="">Pulse</a> which takes this view. I particularly liked the small functions that he defined for expressing the intervals for recomputing statistics. It&#8217;s the cleanest formulation of that kind of thing that I&#8217;ve seen, and it&#8217;s enabled by his thesis view and Clojure.</p>
  347. <p>Nathan Marz has been doing some great work at BackType and now Twitter. At StrangeLoop he open sourced <a href="">Storm</a>, a set of general primitives for doing realtime computation. At the Conj, he was talking about <a href="">Cascalog</a>, which is a Clojure DSL for Hadoop. Both Cascalog and Storm are in use at Twitter. Cascalog is inspired by Datalog and targets the same space as Pig. Cascalog has the full power of Clojure available to it, as well as the power of Datalog. It&#8217;s a little unclear to me exactly how much of Datalog is supported, but this is a powerful idea. Imagine combining the best of Cascalog and the Revelytix system. The source code to Marz&#8217;s <a href="">examples</a> is on Github.</p>
  348. <p>Clojure has a logic programming library, <a href="">core.logic</a> which is based on the miniKanren system developed at Indiana University by Daniel Friedman, William Byrd, and Oleg Kiselyov. Ambrose Bonnaire-Sergeant presented an excellent tutorial on logic programming in general, and miniKanren in particular. David Nolen talked about predicate dispatching, a much more general way of doing method dispatch, and talked about his plans to tie that together with core.logic. The surprise highlight in this area was that Dan Friedman and William Byrd came to the conference and did a BOF on miniKanren and their constraint extensions to miniKanren. The BOF was surprisingly well attended (over 60 people), due in part to Ambrose&#8217;s excellent talk earlier that day. A key philosophical point about miniKanren is that there is a straight forward mechanical conversion from a functional program to logical/relational (miniKanren) program. This looks very promising, and it has me thinking about mashups of miniKanren (core.logic) and Datalog (cascalog). Professor Friedman and his students have done some very important work in the Scheme area over the years, and it was a great experience to meet him and spend some time over dinner. After dinner, we were sitting in the hotel lobby, and David Nolen was walking Friedman and Byrd through the implementation of core.logic, which was ported from the Scheme version of miniKanren, and then optimized for Clojure. There was a free flow of ideas back and forth, and it was a great example of a collaboration between academia and practice (it&#8217;s hard to say industry because Nolen and company are doing this in their free time). This is one of the things that I&#8217;ve always hoped for around open source, and it was nice to see such a concrete example. MiniKanren is described in Byrd&#8217;s PhD <a href="">dissertation</a>, and in the book &#8220;<a href=";tid=10663">The Reasoned Schemer</a>&#8220;.</p>
  349. <p><b>ClojureScript</b></p>
  350. <p><a href="">ClojureScript</a> is a Clojure compiler which emits Javascript, which is then run though Google&#8217;s Closure compiler. I&#8217;ve been doing some prototyping work using Node.js and HTML/Javascript, so ClojureScript looks kind of interesting, particularly because it is good at some the data intensive stuff that Javascript is so laborious at. There were three ClojureScript sessions. Chris Houser took us on a deep dive of the compiler, Kevin Lynagh show us some basic applications of ClojureScript in the browser, and David Nolen did a BOF where he showed off the browser connected REPL for Javascript. ClojureScript is still in its infancy, but it&#8217;s interesting nonetheless. Once David gets the constraint version of core.logic working in ClojureScript, it should get a lot more interesting.</p>
  351. <p><b>Community</b></p>
  352. <p>The thing that stood out to me about the Clojure community was the presence of the &#8220;young Jedi&#8221;, Anthony Grimes, and Ambrose Bonnaire-Sergeant. Both of them were able to attend their first Clojure/Conj (Anthony&#8217;s was last year) due to fundraising campaign initiated by Chas Emerick. Anthony is 17, and Ambrose has not yet graduated from college. Both of them are lead developers on highly technical projects within the Clojure community, and both did a great job of speaking in front of 300+ people who were mostly older than them. When I worked at OSAF, I worked with Stuart Parmenter, who started working in open source when he was 14. It&#8217;s great to work with these young, very gifted people, and I love seeing the community welcome and make a space for them.</p>
  353. <p>The flip side of this is that like many open source, programming language oriented conferences, there were very few women in attendance. Perhaps the Clojure community could take a page from the very successful work that my friend Sarah Allen has done on <a href="">RailsBridge</a>.</p>
  354. <p><b>Learning More</b></p>
  355. <p>O&#8217;Reilly has finally recanted and is doing a Lisp book. <a href="">Clojure Programming</a> should be done soon, and Manning has <a href="">Clojure in Action</a> and <a href="">The Joy of Clojure</a>. If you are looking for an interactive way of learning Clojure, there is <a href="">Try Clojure</a>. Those looking to sharpen their Clojure skills can look at the <a href="">Clojure Koans</a> and <a href="">4Clojure</a> .</p>
  356. <p>The speaker <a href="">slides</a> from the Clojure/Conj 2011 are available on GitHub.</p>
  357. <p><b>Update</b>: corrected the name of Indiana University &#8211; thanks to Lindsey Kuper</p>
  358. <p>Update: linked to a more up to date Overtone repository &#8211; thanks to Sam Aaron</p>
  359. <p></p>
  360. ]]></content:encoded>
  361. <wfw:commentRss></wfw:commentRss>
  362. <slash:comments>9</slash:comments>
  363. <post-id xmlns="com-wordpress:feed-additions:1">377</post-id> </item>
  364. <item>
  365. <title>Web 2.0 Summit</title>
  366. <link></link>
  367. <comments></comments>
  368. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  369. <pubDate>Wed, 26 Oct 2011 05:13:36 +0000</pubDate>
  370. <category><![CDATA[internet]]></category>
  371. <guid isPermaLink="false"></guid>
  373. <description><![CDATA[Last week I attended the Web 2.0 Summit in San Francisco. The theme this years was &#8220;The Data Frame&#8221;, an attempt to look at the &#8220;Points of Control Theme&#8221; from last year through the lens of data. &#160;&#160; Data Frame talks Most of the good data frame stuff was in the short &#8220;High Order Bit&#8221; [&#8230;]]]></description>
  374. <content:encoded><![CDATA[<p>Last week I attended the Web 2.0 Summit in San Francisco. The theme this years was &#8220;The Data Frame&#8221;, an attempt to look at the &#8220;Points of Control Theme&#8221; from last year through the lens of data. &nbsp;&nbsp;</p>
  375. <p><b>Data Frame talks</b></p>
  376. <p>Most of the good data frame stuff was in the short &#8220;High Order Bit&#8221; and &#8220;Pivot&#8221; talks. The interviews with big company CEO&#8217;s are generally of little value, because CEO&#8217;s at large companies have been heavily media trained, and it is rare to get them to say anything really interesting.</p>
  377. <p>Genevieve Bell from Intel posed the question &#8220;Who is data and if it were a person what would it be like?&#8221; Her answers included:</p>
  378. <p style="margin-top: 0px; margin-bottom: 0px; font-family: Arial; font-size: medium;">
  379. <ul>
  380. <li>Data keeps it real &#8211; it will resist being digitized</li>
  381. <li>Data loves a good relationships &#8211; what happens when data is intermediated</li>
  382. <li>Data has a country (context is important)</li>
  383. <li>Data is feral (privacy security,etc )</li>
  384. <li>Data has responsibilities</li>
  385. <li>Data wants to look good</li>
  386. <li>Data doesn&#8217;t last forever (and shouldn&#8217;t in some cases)</li>
  387. </ul>
  388. <p>One Kings Lane was one of the startups described by Kleiner Perkins&#8217; Aileen Lee. The interesting thing about their presentation was their realtime dashboard of purchasing activity during one of their flash sales events. You can see the demo at 6:03 in the <a href="">video</a> from the session.</p>
  389. <p>Mary Meeker has moved from Morgan Stanley to Kleiner Perkins, but her <a href="">Internet Trends</a> presentation is still a tour de force of statistics and trends. It&#8217;s interesting to watch how her list of trends is changing over time.</p>
  390. <p>Alyssa Henry from Amazon talked about AWS from the perspective of S3, and her talk was mostly statistics and customer experiences. One of her closing sentences stuck in my mind: &#8220;What would you do if every developer in your organization had access to a supercomputer&#8221;. Hilary Mason has talked about how people in sitting at home in their pajamas now have access to big data crunching capability. Alyssa&#8217;s remark pushes that idea &#8211; pushing the thought that access to supercomputing resources is at the same level as access to a personal computer.</p>
  391. <p>TrialPay is a startup in the online payment space. Their interesting twist is that they will provide payment services free of charge, without a transaction fee. They are willing to do this because they collect the data about the payment, and can then use / sell information about payment behaviors and so on (apparently Visa and Mastercard <a href="">plan</a> to do something similar).</p>
  392. <p>I am not a fan of talks that are product launches or feature launches on existing products, so I was all set to ignore Susan Wojcicki&#8217;s talk on Google Analytics. But then I saw this picture in her slides:</p>
  393. <p><img decoding="async" src="" width="400" /></p>
  394. <p>Edward Tufte has made this diagram famous, <a href="">calling it</a> &#8220;probably the best statistical graphic ever drawn&#8221;. I remember seeing this graphic in one of his seminars and wondering how to bring this type of visualization to a computer. I appreciated the graphic, but I wasn&#8217;t sure how many times one would need to graph death marches. The Google Analytics team found a way to apply this visualization to conversion and visitor falloffs. Sure enough, those visualizations are now in my Google Analytics account. Wojcicki also demonstrated that analytics are now being updated in &#8220;real time&#8221;. Clearly, there&#8217;s no need to view instant feedback from analytics as a future item.</p>
  395. <p>Last year there was a panel on education reform. This year, Salman Khan, the creator of the Khan academy spoke. Philosophically I&#8217;m in agreement with what Khan is trying to do &#8211; provide a way for every student to attain mastery of a topic before moving on. What was more interesting was that he came with some actual data from a whole school pilot of Khan Academy materials. Their data shows that it is possible for children assigned to a remedial math class to jump to the same level as students in an advanced math class. They have a very nice set of analytic tools that work with their videos, which should lead to a more data based discussion of how to help more kids succeed in learning what they need to learn to be successful in life.</p>
  396. <p>Anne Wojcicki (yes, she and Susan are sisters) talked about the work they are doing at 23andMe. She gave an example of a rare form of Parkinson&#8217;s disease, where they were able to assemble a sizable number of people with the genetic predisposition, and present that group to medical researchers who are working on treatments for Parkinsons. It was interesting story of online support groups, gene sequencing, and preventative medicine.</p>
  397. <p>It seems worth pointing out that almost all the talks that I listed in this section were by women.</p>
  398. <p><b>Inspirational Talks</b></p>
  399. <p>There were some talks which didn&#8217;t fit the data frame theme that well, but I found them interesting or inspirational anyway.</p>
  400. <p>Flipboard CEO Mike McCue made an impassioned plea that we learn when to ignore the data, and build products that have emotion in them. He contrasted the Jaguar XJSS and the Honda Insight as products built with emotion and built on data, respectively. He went on to say that tablets are important because the content becomes the interface. He believes that the future of the web is to be more like print, putting content first, because the content has a soul. Great content is about art, art creates emotion, and emotion defies the data. It was a great, thoughtful talk.</p>
  401. <p>Alison Lewis from Coca Cola talked about their new, high tech, internet connected Freestyle soda machine. A number of futuristic internet scenarios seem to involve soda machines, so it was interesting to hear what actual soda companies are doing in this space. The geek in me thinks that the machine is cool, although I rarely drink soft drinks. I went to the Facebook <a href="">page</a> for the machine to see what was up, and discovered that the only places in Seattle that had them were places where I would never go to eat.</p>
  402. <p>IBM&#8217;s David Barnes talked about IBM&#8217;s smart cities initiative, which involves instrumenting the living daylights out of city. Power, water, transportation grid, everything. His main points were:</p>
  403. <ol>
  404. <li>Cities will have a healthier immune systems.&nbsp;&nbsp;The health web</li>
  405. <li>City buildings will sense and respond like living organisms &#8211; water, power, etc systems</li>
  406. <li>Car and city buses will run on empty..</li>
  407. <li>Smarter systems will quench cities thirst and save energy</li>
  408. <li>Cities will respond to a crisis &#8211; even before receiving an emergency call</li>
  409. </ol>
  410. <p>He left us with a challenge to &#8220;Look at the organism that is the city.&nbsp;&nbsp;What can we do to improve and create a smarter city?&#8221;. I have questions about how long it would take to actually build a smart city or worse, retrofit an existing city, but this is a challenge type of long term project. I&#8217;m glad to see that there are companies out there that are still willing to take that big long view.</p>
  411. <p><b>Final Thoughts</b></p>
  412. <p>I really liked the short talk formats that were used this year. It forced many of the speakers to really be crisp and interesting, or at least crisp, and I really liked the volume of what got presented. One thing seems true, that from the engineering audience of Strata to the executive audience at Web 2.0, data and data related topics are at the top of everyone&#8217;s mind.</p>
  413. <p>And there in addition to ponies and unicorns, be dragons.</p>
  414. ]]></content:encoded>
  415. <wfw:commentRss></wfw:commentRss>
  416. <slash:comments>0</slash:comments>
  417. <post-id xmlns="com-wordpress:feed-additions:1">374</post-id> </item>
  418. <item>
  419. <title>Surge 2011</title>
  420. <link></link>
  421. <comments></comments>
  422. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  423. <pubDate>Tue, 04 Oct 2011 05:52:09 +0000</pubDate>
  424. <category><![CDATA[internet]]></category>
  425. <guid isPermaLink="false"></guid>
  427. <description><![CDATA[Last week I was in Baltimore attending OmniTI&#8217;s Surge Conference. I can&#8217;t remember exactly when I first met OmniTI CEO Theo Schlossnagle, but it was at an ApacheCon after he had delivered one of his 3 hour tutorials on Scalable Internet Architectures, back in the early 2000&#8217;s. Theo&#8217;s been at this scalability business for a [&#8230;]]]></description>
  428. <content:encoded><![CDATA[<p>Last week I was in Baltimore attending OmniTI&#8217;s Surge Conference. I can&#8217;t remember exactly when I first met OmniTI CEO Theo Schlossnagle, but it was at an ApacheCon after he had delivered one of his 3 hour tutorials on Scalable Internet Architectures, back in the early 2000&#8217;s. Theo&#8217;s been at this scalability business for a long time, and I was sad to have missed the first Surge, which was held last year.</p>
  429. <p><b>Talks</b></p>
  430. <p>Ben Fried, Google&#8217;s CIO started the conference (and one of the major themes) with a &#8220;disaster porn&#8221; talk. He described a system that he built in a previous life, for a major wall street company. The system had to be very scalable to accommodate the needs of traders. One day, the system started failing, and ended up costing his employer a significant amount of money. In the ensuing effort to get the system working again, he ended up with all the people from the various specializations (development, operations, networking, etc) all stuck in a very large room with a lot of whiteboards. It turned out that no one really understood how the entire system worked, and that issues at the boundaries of the specialties were causing many of the problems. The way that they had scaled up their organization was to specialize, but that specialization caused them to lose an end to end view of the system. Their organization of their people had led to some of the problems they were experiencing, and was impeding their ability to solve the problems. &nbsp;&nbsp;The quote that I most remember was &#8220;specialization is an industrial age notion and needs to be discounted in spaces where we operate at the boundary of the known versus unknown&#8221;. The lessons that Fried learned on that project have influenced the way that Google works (Site Reliability Engineers as an example), and are similar to the ideas being espoused by the &#8220;DevOps&#8221; movement. His description of the solution was to &#8220;reward and recognize generalist skill and end to end knowledge&#8221;. There was a pretty lively Q&amp;A around this notion of generalists.</p>
  431. <p>Mark Imbriaco&#8217;s talk was titled &#8220;Anatomy of a Failure&#8221; in the program, but he actually presented a very detailed account of how Heroku responds to incidents. My background isn&#8217;t in operations, so I found this to be pretty interesting and useful. I particularly liked the idea of playbooks to be followed when incidents occur, and that alert messages actually contain links to the necessary playbooks. The best quote from Mark&#8217;s talk was probably &#8220;Automation is also a great way to distribute failure across an entire system&#8221;.</p>
  432. <p>Raymond Blum presented the third of three Google talks that were shoe horned into a single session. He described the kind of problems involved in doing backups at Google scale. Backup is one of those problems that needs to be solved, but is mostly unglamourous. Unless you are Google, that is. Blum talked about how they actually read their backup tapes to be sure that they work, their strategy of backing up to data centers in different geographies, and clever usage of map reduce to parallelize the backup and restore process. He <a href="">cited</a> the Gmail outage earlier this year as a way of grasping the scale of the problem of backing up a service like GMail, much less all of Google. One way to know if a talk succeeds is if it provokes thoughts. Based on my conversations with other attendees, this one succeeded.</p>
  433. <p>David Pacheco and Bryan Cantrill talked about &#8220;Realtime Cloud Analytics with Node.js&#8221;. This work is an analog of the work that they did on the analytics for the &#8220;Fishworks&#8221;/Sun Storage 7000 products, except instead of measuring a storage appliance, they are doing analytics for Joyent&#8217;s cloud offering. This is basically a system which talks to DTrace on every machine, and then reports the requested metrics to an analytics service once a second. The most interesting part of the talk was listening to two guys who are hard core C programmers / kernel developers walk us through their decision to write the system in Javascript on Node.js instead of using C. They also discussed the areas where they expected there to be performance problems, and were surprised when those problems never appeared. When it came time for the demo, it was quite funny to see one of the inventors of DTrace being publicly nervous about running DTrace on every machine in the Joyent public cloud. &nbsp;&nbsp;&#8220;Automation is also a great way to distribute failure across an entire system&#8221;. But everything was fine, and people were impressed with the analytics.</p>
  434. <p>Fellow ASF member Geir Magnusson&#8217;s talk was named &#8220;When Business Models Attack&#8221;. The title alludes to the two systems that Geir described, both of which are designed specifically to handle extreme numbers of users. Geir was the VP of Platform and Architecture at Gilt Groupe, and one description of their model is that every day at Noon is Black Friday. So the Gilt system has to count on handling peak numbers of users every day at a particular time. Geir&#8217;s new employer, Function(x), also has a business model that depends on large numbers of users. The challenge is to design systems that will handle big usage spikes as a matter of course, not as a rarity. One of architectures that Geir described involved writing data into a Riak cluster in order to absorb the write traffic, and then using a Node.js based process to do a &#8220;write-behind&#8221; of that data into a relational database.</p>
  435. <p><b>Takeaways</b></p>
  436. <p>There were several technology themes that I encountered during the course of the 2 days:</p>
  437. <ul>
  438. <li>Many of the talks that I attended involved the use of some kind of messaging system (most frequently RabbitMQ). Messaging is an important component in connecting systems that are operating a different rates, which is frequently the case in systems operating at high scale.</li>
  439. <li>Many people are using Amazon EC2, and liking it, but there were a lot of jokes about the reliability of EC2.</li>
  440. <li>I was surprised by how many people appear to be using Node.js. This is not a Javascript or dynamic language oriented community. There&#8217;s an inclination towards C, systems programming, and systems administration. Hardly an audience where you&#8217;d expect to see lots of Node usage, but I think that it&#8217;s notable that Node is finding some uptake.</li>
  441. </ul>
  442. <p>One thing that I especially liked about Surge was the focus on learning from failure, otherwise known as a &#8220;fascination with disaster porn&#8221;. Most of the time you only hear about things that worked, but hearing about what didn&#8217;t work is at least as instructive, and in some case more instructive. This is something that (thus far) is unique to Surge.</p>
  443. ]]></content:encoded>
  444. <wfw:commentRss></wfw:commentRss>
  445. <slash:comments>4</slash:comments>
  446. <post-id xmlns="com-wordpress:feed-additions:1">373</post-id> </item>
  447. <item>
  448. <title>W3C Web and TV Workshop</title>
  449. <link></link>
  450. <comments></comments>
  451. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  452. <pubDate>Mon, 26 Sep 2011 21:36:03 +0000</pubDate>
  453. <category><![CDATA[internet]]></category>
  454. <guid isPermaLink="false"></guid>
  456. <description><![CDATA[Last week I attended the Third W3C Web and TV Workshop (disclosure: I was a member of the program committee). This was the third in a series of three workshops that the W3C has organized around the intersection of web technologies and television. The purpose of the workshops is to bring these two communities together [&#8230;]]]></description>
  457. <content:encoded><![CDATA[<p>Last week I attended the <a href="">Third W3C Web and TV Workshop</a> (disclosure: I was a member of the program committee). This was the third in a series of three workshops that the W3C has organized around the intersection of web technologies and television. The purpose of the workshops is to bring these two communities together and help them understand and work with each other. The W3C has formed an <a href="">interest group</a> for member companies who are interested in working on issues related to the web and television.</p>
  458. <p>Some of the topics discussed at the workshop included multi-screen experiences (there were 2.5 sessions on this topic, including some demonstrations), synchronized metadata, codecs (particularly around adaptive bit rate streaming over HTTP), and (inevitably) content protection/DRM. &nbsp;&nbsp;</p>
  459. <p>Given the advent of the iPad and other tablets, it should be no surprise that multi-screen experiences were a big topic. Apple has done some interesting work with AirPlay, but the general technology infrastructure for enabling multi-screen experiences is a mess. There are issues ranging from the &#8220;bottom&#8221;, related to the discovery of the various devices, through the negotiation of which devices have which roles, up to the mechanism for synchronizing content and metadata amongst these devices. There&#8217;s a lot of work to be done here, and some of that will be done in conjunction with other industry groups like DLNA and so forth. I&#8217;m most interested in the upper levels, which should be helping with synchronizing the experience and facilitating inter device/application communication. &nbsp;&nbsp;</p>
  460. <p>There was also significant discussion around synchronized metadata, which is highly relevant to multi-screen experiences, although there was more discussion/demonstration of end experiences as opposed to technologies that could be standardized to facilitate those experiences. Sylvia Pfeiffer gave an interesting demo of WebVTT using the <a href="">Captionator</a> polyfill. One of the best things about this discussion was that one of my colleagues from ESPN later explained to me the details of how captioning is done in their broadcast and internet workflows.</p>
  461. <p>It&#8217;s impossible to talk about television without talking about video, and the two largest topics around video and the web are codecs and content protection. Most of the discussion around codecs revolved around the work at MPEG on <a href="">Dynamic Adaptive Streaming over HTTP</a> (DASH). There are at least three solutions in the market for streaming video via HTTP, all mutually incompatible for dumb reasons. DASH is an attempt to standardize that mechanism, while remaining silent on the question of which codec is used to produce the video file being streamed.</p>
  462. <p>On the content protection front, there was the usual disconnect between the web world and the tv world. For me, the discussion here really centers around the ability to use the HTML5 video tag to deliver &#8220;premium&#8221; content. Today that content is delivered via the object tag and associated browser plugins. The problem is that each plugin works differently, so your web application code has to deal with all the possibilities that it might encounter. There appears to be some interest in standardizing a small and narrow set of API&#8217;s that web applications could use to interact with a content protection mechanism. Unsurprisingly, there was very little interest in standardizing a content protection mechanism for HTML5, especially since there isn&#8217;t agreement on a standard video codec.</p>
  463. <p>Recently the W3C has been working very hard at getting consumer/content side companies to participate in its activities. Because the workshop was open to anyone, not just W3C member companies, there were a lot of attendees who were not from the traditional W3C constituencies. Personally, I think that this is a good thing, and not just in the Web and TV space. It will be interesting to see how much progress can be made &#8211; the Apple and Google native application models, are this generation&#8217;s Flash and Silverlight. I hope that we can find a way to build the next generation of television experiences atop the Open Web technology stack.</p>
  464. ]]></content:encoded>
  465. <wfw:commentRss></wfw:commentRss>
  466. <slash:comments>0</slash:comments>
  467. <post-id xmlns="com-wordpress:feed-additions:1">372</post-id> </item>
  468. <item>
  469. <title>Thanks, Steve</title>
  470. <link></link>
  471. <comments></comments>
  472. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  473. <pubDate>Fri, 26 Aug 2011 04:31:57 +0000</pubDate>
  474. <category><![CDATA[misc]]></category>
  475. <category><![CDATA[Apple]]></category>
  476. <guid isPermaLink="false"></guid>
  478. <description><![CDATA[Yesterday, Steve Jobs resigned as the CEO of Apple. This wasn&#8217;t really a surprise, because Steve has been sick for some time. Nonetheless, it was a shock to me, and judging by Twitter, to many other people. &#160;&#160; My history with computing goes back to the Apple II. The first computer that I ever wrote [&#8230;]]]></description>
  479. <content:encoded><![CDATA[<p>Yesterday, Steve Jobs resigned as the CEO of Apple. This wasn&#8217;t really a surprise, because Steve has been sick for some time. Nonetheless, it was a shock to me, and judging by Twitter, to many other people. &nbsp;&nbsp;</p>
  480. <p>My history with computing goes back to the Apple II. The first computer that I ever wrote a program on was an Apple II, and an Apple II was the first computer I ever owned. It was in the days when nobody really knew if a personal computer was a practical notion at all. It&#8217;s easy to look at the myriad forms of &#8220;personal computers&#8221; that we use today, and forget that. Before I became interested in computers, I was going through serious interests or hobbies at the rate of one a year. I locked onto computers with a passion, one that was undivided until I took up photography several years ago. Apple, more than any other company, inspired me about computing &#8211; what computers might do for people, how they should work. I imbibed the Apple philosophy &#8211; I &#8220;bled six colors&#8221;. &nbsp;&nbsp;</p>
  481. <p>It was one of my childhood dreams to work at Apple, and I was fortunate to work on the Newton for two years. I was at Apple when Apple bought NeXT, and when Steve took over the company from the inside. When the Newton team had meetings with Steve (before he cancelled the project), I was amazed at how much sense he was making. The respect I had developed from afar turned into respect developed from actual experience. I felt that if anyone could fix Apple&#8217;s woes, Steve was the one to do it. I just didn&#8217;t believe that anyone was going to be able to do it, so I left. How glad I am that I was wrong.</p>
  482. <p>For me, Apple has always been more than just a company that makes great products (because in those dark days, some of the products were quite bad). Apple has been the embodiment of a particular vision of how computers should be, and Steve Jobs was the person that drove that vision and inspired many in my generation to get interested in computing. No company or person can be perfect, and both Apple and Steve Jobs have easily identifiable flaws, but the vision that Apple represents has driven dramatic improvements in computing since 1977.</p>
  483. <p>Thank you Steve for being the torch bearer, and for the impact that you&#8217;ve had on my life, and on the world.</p>
  484. ]]></content:encoded>
  485. <wfw:commentRss></wfw:commentRss>
  486. <slash:comments>0</slash:comments>
  487. <post-id xmlns="com-wordpress:feed-additions:1">371</post-id> </item>
  488. <item>
  489. <title>OSCON 2011</title>
  490. <link></link>
  491. <comments></comments>
  492. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  493. <pubDate>Sat, 30 Jul 2011 00:57:58 +0000</pubDate>
  494. <category><![CDATA[open source]]></category>
  495. <guid isPermaLink="false"></guid>
  497. <description><![CDATA[I&#8217;m sitting on an Amtrak train at the end of July, which can only mean that OSCON has just finished up. This year OSCON had something new, a pair of extra conferences, one on Data and one on Java, that overlapped the usual OSCON tutorial days. This year, I&#8217;m going to break the talk coverage [&#8230;]]]></description>
  498. <content:encoded><![CDATA[<p>I&#8217;m sitting on an Amtrak train at the end of July, which can only mean that OSCON has just finished up.</p>
  499. <p>This year OSCON had something new, a pair of extra conferences, one on Data and one on Java, that overlapped the usual OSCON tutorial days. This year, I&#8217;m going to break the talk coverage down by conference.</p>
  500. <p><b>OSCON Data</b></p>
  501. <p>For purely technical content, OSCON Data was the winner for me. There were two talks which stuck out. &nbsp;&nbsp;</p>
  502. <p>The first was Tom Wilkie&#8217;s talk on <a href="">Castle</a>. I first became aware of Castle at South by Southwest, when a persistent Manu Marchal found me on Twitter and arranged a meeting to explain the technology that Acunu was building to accelerate Cassandra and similar types of storage engines. Earlier this year the Acunu team published some papers describing their work. Those papers are still on the desk in my office, so I figured I could get the overview of the paper content by attending the talk. It&#8217;s a pleasure to see a talk focused on fundamental technology work on data structures and algorithms, and Tom&#8217;s talk delivered that. Castle is the open source version of their write optimized in kernel storage system. I&#8217;m looking foward to hearing field reports.</p>
  503. <p>The other stand out talk was Josh Patterson&#8217;s talk <a href="">Lumberyard: Time series indexing at scale</a>, Time series data is growing in importance, and it&#8217;s great to see people working on this problem. Lumberyard uses the <a href="">iSAX</a> work that was done at UC Riverside. In addition to the time series functionality, Josh demonstrated how a number of seeming unrelated problems like image recognition, could be converted into time series problems which could then be solved with something like Lumberyard. I definitely learned something new.</p>
  504. <p><b>OSCON Java</b></p>
  505. <p>I only attended one talk at OSCON Java, and then only briefly. The talks was a keynote on JavaFX. JavaFX was originally positioned as a competitor to Flash/Flex, and then expanded to act as a new GUI framework for desktop Java. In the meantime, the world has moved. The iPad is casting doubts on the value proposition of Flash, which is an established and broadly adopted technology. Microsoft is backing away from Silverlight, and focusing on HTML5. Even if Oracle wins its lawsuit with Google it&#8217;s hard to see how JavaFX would be relevant for the device world. &nbsp;&nbsp;It&#8217;s hard to see how there is any room for JavaFX.</p>
  506. <p><b>OSCON</b></p>
  507. <p>Ariel Waldman was given a keynote slot to talk about <a href="">Hacking Space Exploration</a>. Space exploration is a topic that resonates with many people that come to OSCON, and given the recent end of the U.S. Space Shuttle program, it was encouraging to hear about all the avenues which are available to those who are interested in space exploration. My middle daughter wants to go to Mars someday, and I&#8217;m definitely going to be showing her the video of this talk.</p>
  508. <p>I ended up in Gabe Zicherman&#8217;s talk on <a href="">Gamification</a> by accident. Late last year we sent someone from our group to a gamification workshop and Zicherman was among the speakers. I figured that via summarized analysis I had heard all that I needed to know. Apparently not. The material that was presented was thought provoking, and Zicherman is an effective and entertaining speaker. &nbsp;&nbsp;</p>
  509. <p>Personal information is in my blood, from my time working on Chandler and well before that. &nbsp;&nbsp;When I was at Strata last year, I briefly heard about the Locker project, but I didn&#8217;t really get a good sense of what was going on there. Jeremie Miller partially <a href="">talked</a> about and partially demo&#8217;ed the Locker project, and there was also a hackathon during one of the BOF slots. It is very early days still, but if you are interested in getting involved, bootstrapping instructions are <a href="">here</a>.</p>
  510. <p>Sometimes you find emerging technology in the strangest places. I went to <a href="">Awakening The Maker Ethic in K-12 Students</a> because it was the only talk in that slot that seemed interesting, because I have kids, and because we&#8217;ve pursued an unusual path for their education. In addition to amassing a long reading list on education and technology and education, I learned something interesting about open hardware, Arduino in particular. Arduino has been around for a while, but I&#8217;ve really only heard it mentioned in the context of communities that would be the logical extensions of the model rocketeers, the hams, and the heathkit crowd. During this talk I learned that Arduino has crossed over into communities that are focused more on craft and art. Arduino makes it possible for these people to make smart craft items. Some examples of such items are this <a href="">&#8220;reverse geocache&#8221; wedding gift box</a>, and a bicycling jacket with turn signal lights embedded in it.</p>
  511. <p><b>Hallway</b></p>
  512. <p>I try not to comment on the hallway track, but there&#8217;s one conversation that i had which I think merits an mention. Earlier in the year, some mutual friends introduced me to David Eaves, who has been consulting with Mozilla to develop some metrics to help Mozilla improve the way that it manages its community. In April, David previewed some of his work in a blog <a href="">post</a>. At the ASF various individuals have done small experiments around community metrics, but as far as I can tell David&#8217;s work is defining the state of the art in this area. I would love to see the work that he has been doing duplicated in JIRA and Github. This is the kind of work that should be a talk at OSCON, and it&#8217;s a shame that we&#8217;ll have to wait until next year to hear that talk. In the meantime, read the post, get on the mailing list, and help bring open source community tools into the 21st century.</p>
  513. <p><b>Meta</b></p>
  514. <p>I&#8217;ve been coming to OSCON since 2003 (I did miss one year), and I always look forward to it. This year OSCON was tough for me. I had a very difficult time finding sessions to go to, especially in OSCON proper. Of the four sessions I found blog worthy, two were about open source, and I only ended up in two of them by accident &#8211; I almost went to nothing during those sessions. Ordinarily, that wouldn&#8217;t be a problem, because there&#8217;s always the hallway track. This year a lot of people that I normally expect to see at OSCON were not there. I did have a good hallway track, but not nearly as rich as normal. As an example, some of us went to celebrate Duncan Davidson&#8217;s birthday on Thursday night. In the past, there have been enough people to take over the Vault in Portland. This year, we only needed a single table. For me, that&#8217;s a serious impact because of the way that I approach the technology field. When I was a graduate student, my advisor lamented about a bygone era of DARPA funding in which you would go to DARPA and say, &#8220;I&#8217;m going to do X&#8221;. Sometimes you came back with X, but sometimes you came back with Y, but as along as Y was interesting there wouldn&#8217;t be a problem. During my era, DARPA apparently got much more serious about you doing what you said you would do. In that bygone era, DARPA funded people. In my era, they funded topics. Topics are important to me, but given the choice between topics and people, I will pick the people every time. I always tell people that the value of OSCON is that it&#8217;s the one place where you can get any substantial number of the open source communities together under one roof. I hope that keeps happening.</p>
  515. ]]></content:encoded>
  516. <wfw:commentRss></wfw:commentRss>
  517. <slash:comments>1</slash:comments>
  518. <post-id xmlns="com-wordpress:feed-additions:1">370</post-id> </item>
  519. <item>
  520. <title>Google I/O 2011</title>
  521. <link></link>
  522. <comments></comments>
  523. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  524. <pubDate>Fri, 13 May 2011 00:58:22 +0000</pubDate>
  525. <category><![CDATA[internet]]></category>
  526. <guid isPermaLink="false"></guid>
  528. <description><![CDATA[Google I/O has a different feel than many of the conferences that I attend. Like Apple&#8217;s WWDC, there is a distinctly vendor partisan tone to the entire show &#8212; having the show in the same location as WWDC probably reinforces that. Unlike WWDC, the web focused portion of Google I/O helps to blunt that feeling, [&#8230;]]]></description>
  529. <content:encoded><![CDATA[<p>Google I/O has a different feel than many of the conferences that I attend. Like Apple&#8217;s WWDC, there is a distinctly vendor partisan tone to the entire show &#8212; having the show in the same location as WWDC probably reinforces that. Unlike WWDC, the web focused portion of Google I/O helps to blunt that feeling, and the fact that lots of things are open or being open sourced also helps with the partisan feeling.</p>
  530. <p>I&#8217;m going to split this writeup into two parts, the two keynotes, and the rest of the talks.</p>
  531. <p><b>Android Keynote</b></p>
  532. <p>The first keynote was the Android keynote and opened with a recap of Android&#8217;s marketplace accomplishments over the last year. The tone was decidedly less combative towards Apple than last year. There weren&#8217;t many platform technology announcements. There was the expected discussion of features for the next version of Android, but I didn&#8217;t really see much that was new. There was a very nice head tracking demo that involved front facing cameras and OpenGL &#8211; I believe this will be a platform feature, which is cool. Much was made of Music and Movies, but this is mostly an end user and business development story. The ability to buy/stream without a cable is nice, but as long as devices need to be plugged in to recharge (which in my case is every day), I don&#8217;t find this to be as compelling as those who were clapping loudly. What I did find interesting was the creation of a Council that will specify how quickly devices will be updated to a particular release of Android, and how long a device will be supported. This is pretty much an admission that fragmentation is real and a problem that needs addressing. I hope that it works.</p>
  533. <p>The most interesting announcement during the Android keynote was the open accessories initiative. This is in direct contrast to Apple&#8217;s tight control over the iOS device connector. Google&#8217;s initiative is based on the open source Arduino hardware platform, and they showed some cool integration with an exercise bike, control over a home made labyrinth board, and some very interesting home automation work. As part of the home automation stuff, they showed an NFC enabled CD package being swiped against a home audio device, which then caused the CD to be loaded into the Google music service. This is cool, but I don&#8217;t know if CD&#8217;s will be around long enough for NFC enabled packaging to become pervasive. I&#8217;m very curious to see how the accessories initiative will play out, especially versus the iOS device connector. If this were to take off, Apple could build support for the specs into future iOS devices, although they would have to swallow their pride first. This will be very interesting to watch.</p>
  534. <p><b>Chrome Keynote</b></p>
  535. <p>Day two&#8217;s keynote was about Chrome, and the open web, although the focus was on Google&#8217;s contributions. Adoption of Chrome is going really nicely &#8211; 160M users. There was a demonstration of adding speech input by adding a single attribute to an element (done via the Chrome Developer Tools). Performance got several segments. The obligatory Javascript performance slide when up, showing a 20x improvement since 2008, and the speaker said he hoped to stop showing such slides, claiming that the bottlenecks in the system were now in other parts of the browser. This was a perfect segue to show hardware accelerated CSS transforms as well as hardware accelerated Canvas and WebGL.</p>
  536. <p>I&#8217;ve been curious whether the Chrome web store is really a good idea or not, and we got some statistics to ponder. Apparently people spend twice as much time in applications when they are obtained via the web store, and people perform 2.5x the number of transactions. I wish there were some more information on these stats. Of course this is all before in-app purchasing, which was announced, along with a very small 5% cut for Google. &nbsp;&nbsp;</p>
  537. <p>Of course, no discussion of an app store should be without a killer app, so Google brought Rovio onto the stage to announce that Angry Birds is now available for the web, although it&#8217;s called Angry Birds for Chrome, and has special levels just for Chrome users. Apparently Chrome&#8217;s implementation of Open Web technologies has advanced to the point where doing a no compromises version of Angry Birds is possible. &nbsp;&nbsp;Another indication of how far the Open Web has come is &#8220;<a href="">3D dreams of Black</a>&#8220;, which is a cool interactive media piece that is part film, part 3d virtual world. I&#8217;m keeping a pretty close eye on the whole HTML5 space, but this piece really shows how the next generation of the web is coming together as a medium all its own.</p>
  538. <p>The final portion of the keynote was about ChromeOS and the notebooks or &#8220;Chromebook&#8221;s that run it. A lot of the content in this section was a repeat of content from Google&#8217;s <a href="">Chrome Update</a> event in December, but there were a few new things. Google has been hard at work solving some of the usage problems discovered during the CR-48 beta. This includes the trackpad (which was awful), Movies and Music, local file storage, and offline access. The big news for I/O is that Google has decided that ChromeOS is ready to be installed on laptops which will be sold as &#8220;Chromebooks&#8221;. Samsung and Acer have signed up to manufacture the devices. Google will also rent Chromebooks to businesses ($28/mo per user) and schools ($20/mo per user). This is latest round of the network computer vision, and it&#8217;s going to be interesting to see whether the windows of technology readiness and user mindset are overlapping or not. The Chrome team appears to have the best marketing team at Google, and in their classic style, they&#8217;ve produced a <a href="">video</a> which they hope will persuade people of the Chromebook value proposition.</p>
  539. <p><b>Talks</b></p>
  540. <p>On to the talks.</p>
  541. <p>&#8220;Make the Web Faster&#8221; by Richard Rabbat, Joshua Marantz, and Håkon Wium Lie was a double header talk covering <a href="">mod_pagespeed</a> and WebP. mod_pagespeed is a module for the Apache HTTP server, which speeds up web pages by using filters to rewrite pages and resources before they are delivered to the client. These rewrites are derived from the rules tested by the client side Page Speed tool. The other half of the talk was about WebP which is a new format for images. Microsoft also proposed a new web image format several years ago, but it didn&#8217;t go anywhere. &nbsp;&nbsp;</p>
  542. <p>Nick Pelly and Jeff Hamilton presented &#8220;How to NFC&#8221;. The NFC landscape is complicated and there are lots of options because of hardware types and capabilities. The examples that were shown were reasonably straightforward, but the whole time I found myself thinking that NFC is way more complicated than it should be. Having written device drivers in a previous life, I shouldn&#8217;t be surprised, but I still am. It seems obvious to me that the concept of NFC is a great one. The technical end of thing seems tractable, if annoying. The business model issues are still unclear to me. I hope that it all comes together.</p>
  543. <p>I really enjoyed Eric Bidelman and Arne Roomann-Kurrik&#8217;s <a href="">HTML5 Showcase</a>.&nbsp;&nbsp; They showed some neat demos of things that you can do in HTML5. I particularly liked <a href="">this one</a> using 3D CSS. They also did some entertaining stuff with a command line interface. All of the source code to their demos is available &#8211; the link is in the slides.</p>
  544. <p>I wasn&#8217;t able to get to Paul Irish&#8217;s talk on the Chrome Developer Tools at JSConf &#8211; there was quite a bit of Twitter buzz about it. I wasn&#8217;t too worried because I knew that the talk would be given again at Google I/O. For this version Paul teamed up with Pavel Feldman. There are a lot of really cool features going into the Chrome Developer tools. My favorite new features are the live editing of CSS and Javascript, revisions, saving modified resources, and remote debugging. The <a href="">slide deck</a> has pointers to the rest of the new features. If they go much further, they are going to turn the Developer Tools into an IDE (which they said they didn&#8217;t want to do).</p>
  545. <p>Ray Cromwell and Phillip Rogers did a talk titled &#8220;Kick-ass Game Programming with Google Web Toolkit&#8221;, which was a talk about <a href="">ForPlay</a>, which is a library for writing games that they developed on top of GWT. This is the library that Rovio used to do <a href="">Angry Birds for Chrome</a>. If you implement your game using GWT, ForPlay can compile your game into an HTML5 version, an Android native app version, a Flash version, and a desktop Java version. They also showed a cool feature where you could modify the code of the game in Eclipse, save it, and then switch to a running instance of the Java version of the game, and see the changes reflected instantly. &nbsp;&nbsp;</p>
  546. <p><b>Postscript</b></p>
  547. <p>Google has an undeniably large footprint in the mobile and open web spaces. I/O is a good way to keep abreast of what is happening at the Googleplex.</p>
  548. ]]></content:encoded>
  549. <wfw:commentRss></wfw:commentRss>
  550. <slash:comments>4</slash:comments>
  551. <post-id xmlns="com-wordpress:feed-additions:1">367</post-id> </item>
  552. <item>
  553. <title>NodeConf 2011</title>
  554. <link></link>
  555. <comments></comments>
  556. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  557. <pubDate>Mon, 09 May 2011 16:04:01 +0000</pubDate>
  558. <category><![CDATA[internet]]></category>
  559. <category><![CDATA[open source]]></category>
  560. <category><![CDATA[dynamic languages]]></category>
  561. <category><![CDATA[javascript]]></category>
  562. <guid isPermaLink="false"></guid>
  564. <description><![CDATA[Although I was definitely interested in JSConf (writeup), Nodeconf was the part of the week that I was really looking forward to. I&#8217;ve written a few small prototypes using Node and some networking / web swiss army knife code, so I was really curious to see what people are doing with Node, whether they were [&#8230;]]]></description>
  565. <content:encoded><![CDATA[<p>Although I was definitely interested in JSConf (<a href="">writeup</a>), Nodeconf was the part of the week that I was really looking forward to. I&#8217;ve written a few small prototypes using Node and some networking / web swiss army knife code, so I was really curious to see what people are doing with Node, whether they were running into the same issues that I was, and overall just get a sense of the community.</p>
  566. <p><b>Talks</b></p>
  567. <p>Ryan Dahl&#8217;s keynote covered the plans for the next version of Node. The next release is focused on Windows, and the majority of the time was spent on the details of how one might implement Node on Windows. Since I&#8217;m not a Windows user, that means an entire release with nothing for me (besides bug fixes). At the same time, Ryan acknowledged the need for some kind of multiple Node on a single machine facility, which would appear in a subsequent. I can see the wisdom of making sure that the Windows implementation works well before tackling clustering or whatever it ends up being called. This is the third time I&#8217;ve heard Ryan speak, and this week is the first time I&#8217;ve spent any time talking with him directly. Despite all the hype swirling around Node, Ryan is quiet, humble, and focused on making a really good piece of software.</p>
  568. <p>Guillermo Rauch talked about <a href=""></a>, giving an overview of features and talking about what is coming next. Realtime apps and devices are a big part of my interest in Node, and is providing an important piece of functionality towards that goal.</p>
  569. <p>Henrik Joreteg&#8217;s talk was about Building Realtime Single Page applications, again in the sweet spot of my interest in Node. Henrik has built a framework called <a href="">Capsule</a> which combines and Backbone.js to do real time synchronization of model states between the client and server. I&#8217;m not sure I believe the scalability story as far as the single root model, but there&#8217;s definitely some interesting stuff in there.</p>
  570. <p>Brendan Eich <a href="">talked</a> about Mozilla&#8217;s SpiderNode project, where they&#8217;ve taken Mozilla&#8217;s SpiderMonkey Javascript Engine and implemented V8&#8217;s API around it as a veneer (V8Monkey) and then plugged that into Node. There are lots of reasons why this might be interesting. Brendan listed some of the reasons in his post. For me, it means a chance to see how some proposed JS.Next features might ease some of the pain of writing large programs in a completely callback oriented style. The generator examples Brendan showed are interesting, and I&#8217;d be interested in seeing some larger examples. Pythonistas will rightly claim that the combination of generators and callbacks is a been there / done that idea, but I am happy to see some recognition that callbacks cause pain. There are some other benefits of SpiderMonkey in Node such as access to a new debugging API that is in the works, and (at the moment) the ability to switch runtimes between V8 and SpiderMonkey via a command line switch. I would be fine if Mozilla decided to really take a run at making a &#8220;production quality&#8221; SpiderNode. Things are still early during this cycle of server side JavaScript, and I think we should be encouraging experimentation rather than consolidation.</p>
  571. <p>One of the things that I&#8217;ve enjoyed the most during my brief time with Node is <a href="">npm</a>, the package management system. npm went <a href="">1.0</a> shortly before NodeConf, so Isaac Schleuter, the primary author of npm, described the changes. When I started using Node I knew that big changes were in the works for npm, so I was using a mix of npm managed packages and linking stuff into the Node search path directly. Now I&#8217;m using npm. When I work in Python I&#8217;m always using a virtualenv and pip, but I don&#8217;t like the fact that those two systems are loosely coupled. I find that npm is doing exactly what I want and I&#8217;m both happy and impressed.</p>
  572. <p>I&#8217;ve been using Matt Ranney&#8217;s node_redis in several of my projects, it has been a good piece of code, so I was interested to hear what he had to say about debugging large node clusters. Most of what he described was pretty standard stuff for working in clustered environments. He did present a trick for using the REPL on a remote system to aid in debugging, but this is a trick that other dynamic language communities have been doing for some time.</p>
  573. <p>Felix Geisendorfer&#8217;s talk was titled &#8220;How to test Asynchronous Code&#8221;. Unfortunately his main points were 1. No I/O (which takes out the asynchrony 2. TDD and 3. Discipline. He admitted in his talk that he was really advocating unit testing and mocking. While this is good and useful, it&#8217;s not really serious testing against the asynchronous aspects of the code, and I don&#8217;t really know of any way to do good testing of the non-determinism introduced by asynchrony. Felix released several pieces of code, including a test <a href="">framework</a>, a test <a href="">runner</a>, and some faking/mocking <a href="">code</a>.</p>
  574. <p>Charlie Robbins from Nodejitsu talked about Node.js in production, and described some techniques that Nodejitsu uses to manage their hosted Node environment. Many of these techniques are embodied in <a href="">Haibu</a>, which is the system that Nodejitsu uses to manage their installation. Charlie pushed the button to publish the github repository for Haibu at the end of his talk.</p>
  575. <p><b>Issues with Node</b></p>
  576. <p>The last talk of the day was a panel of various Node committers and relevant folks from the broader Node community depending on the question. There were two of the audience questions that I wanted to cover.</p>
  577. <p>The first was what kind of applications is Node.js not good for. The consensus of the panel was you wouldn&#8217;t want to use Node for applications involving lots of numeric computation, especially decimal or floating point, and that longer running computations were a bad fit as well. Several people also said that databases (as in implementing a database) were a problem space that Node would be bad at. Despite the hype surrounding Node on Twitter and in the blogosphere, I think that the core members of the Node community are pretty realistic about what Node is good for an where it could be usefully applied.</p>
  578. <p>The second issue had to do with Joyent&#8217;s publication of a <a href="">trademark policy</a> for Node. One of the big Node events in the last year was Joyent&#8217;s hiring of Ryan Dahl, and subsequently a few other Node contributors. Joyent is basing its Platform as a Service offering on Node, and is mixing its Node committers with some top notch systems people who used to be at Sun, including some of the founding members of the DTrace team. Joyent has also taken over &#8220;ownership&#8221; of the Node.js codebase from Ryan Dahl, and that, in combination with the trademark policy is causing concern in the broader Node community.</p>
  579. <p>All things being equal, I would prefer to see Node.js in the hands of a foundation. At the same time, I understand Joyent&#8217;s desire to try and make money from Node. I know a number of people at Joyent personally, and I have no reason to suspect their motives. However, with the backdrop of Oracle&#8217;s acquisition of Sun, and the way that Oracle is handling Sun&#8217;s open source projects, I think that it&#8217;s perfectly reasonable to have questions about Joyent or any other company &#8220;owning&#8221; an open source project. Let&#8217;s look at the ways that an open source project is controlled. There&#8217;s 1) licensing 2) intellectual property/patents 3) trademarks 4) governance. Now, taking them one at a time:</p>
  580. <ol>
  581. <li>Licensing &#8211; Node.JS is licensed under the MIT license. There are no viral/reciprocal terms to prevent forking (or taking a fork private). Unfortunately, there are no patent provisions in the MIT license. This applies to #2 below. The MIT license is one of the most liberal licenses around &#8211; it&#8217;s hard to see anything nefarious in its selection, and forking as a nuclear option in the case of bad behavior by Joyent or an acquirer is not a problem. This is the same whether Node is at a foundation or at Joyent.</li>
  582. <li>Intellectual Property &#8211; Code which is contributed to Node is governed by the <a href="">Node Contributor License Agreement</a>, which appears to be partially derived from the Apache Individual and Corporate Contributor license agreements (Joyent&#8217;s provision of an on-line form is something that I wish the ASF would adopt &#8211; we are living in the 21st century after all). Contributed IP is licensed to Node, but the copyright is not assigned as in the case of the FSF. Since all contributors retain their rights to their contributions, the IP should be clean. The only hitch would be if Joyent&#8217;s contributions were not licensed back on these terms as well, but given the use of the MIT license for the entire codebase, I don&#8217; think that&#8217;s the case. As far as I can tell, there isn&#8217;t much difference between having Node at a foundation or having it at Joyent.</li>
  583. <li>Trademark &#8211; Trademark law is misunderstood by lots of people, and the decision to obtain a trademark can be a controversial one for an open source project. Whether or not Node.js should have been trademarked is a separate discussion. Given that there will be a trademark for Node.js, what is the difference between having Node at a foundation or at Joyent? Trademark law says that you have to defend your trademark or risk losing it. That applies to foundations as well as for profit companies. The ASF has sent cease and desist letters to companies which are misusing Apache trademarks. The requirement to defend the mark does not change between a non-profit and a for-profit. Joyent&#8217;s policy is actually more liberal than the <a href="">ASF trademark policy</a>. The only difference between a foundation and a company would be the decision to provide a license for use of the trademark as opposed to disallowing a use altogether. If a company or other organization is misusing the Node.js trademark, they will have to either obtain a license or stop using the mark. That&#8217;s the same regardless of who owns the mark. What may be different is whether or not a license is granted or usage is forbidden. In the event of acquisition by a company unfriendly to the community, the community would lose the trademarks &#8211; see the <a href="">Hudson/Jenkins</a> situation to see what that scenario looks like. &nbsp;&nbsp;</li>
  584. <li>Governance &#8211; Node.js is run on a &#8220;benevolent dictator for life&#8221; model of governance. Python and Perl are examples of community/foundation based open source projects which have this model of governance. The risk here is that Ryan Dahl is an employee of Joyent, and could be instructed to do things a certain way, which I consider unlikely. I suppose that a foundation you could try to write additional policy about removal of the dictator in catastrophic scenarios, but I&#8217;m not aware of any projects that have such a policy. The threat of forking is the other balance to a dictator gone rogue, and aside from the loss of the trademark, there are no substantial roadblocks to a fork if one became necessary.</li>
  585. </ol>
  586. <p>To riff on the 2010 Web 2.0 Summit, these are the four &#8220;points of control&#8221; for open source projects. As I said, my first choice would have been a foundation, and for now I can live with the situation as it is, but I am also not a startup trying to use the Node name to help gain visibility.</p>
  587. <p><b>Final thoughts</b></p>
  588. <p>On the whole, I was really pleased with Nodeconf. I did pick up some useful information, but more importantly I got some sense of the community / ecosystem, which is really important. While the core engine of Node.js is important, it&#8217;s the growth and flourishing of the community and ecosystem that matter the most. As with most things Node, we are still in the early days but thing seem promising.</p>
  589. <p>The best collections of JSConf/NodeConf slides seem to be in gists rather than <a href="">Lanyrd</a>, so here&#8217;s a <a href="">link</a> to the most up to date one that I could find.</p>
  590. <p><b>Update</b>: corrected misspelling of Henrik Joreteg&#8217;s name. And incorrectly calling Matt Ranney Mark.</p>
  591. ]]></content:encoded>
  592. <wfw:commentRss></wfw:commentRss>
  593. <slash:comments>4</slash:comments>
  594. <post-id xmlns="com-wordpress:feed-additions:1">363</post-id> </item>
  595. <item>
  596. <title>JSConf 2011</title>
  597. <link></link>
  598. <comments></comments>
  599. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  600. <pubDate>Fri, 06 May 2011 21:55:16 +0000</pubDate>
  601. <category><![CDATA[internet]]></category>
  602. <category><![CDATA[programming]]></category>
  603. <category><![CDATA[javascript]]></category>
  604. <guid isPermaLink="false"></guid>
  606. <description><![CDATA[Last year when I attended JSConf I had some ideas about the importance of Javascript. I was concerned in a generic way about building &#8220;richer&#8221; applications in the browser and Javascript&#8217;s role in building those applications. Additionally, I was interested in the possibility of using Javascript on the server, and was starting to learn about [&#8230;]]]></description>
  607. <content:encoded><![CDATA[<p><a href="">Last year</a> when I attended JSConf I had some ideas about the importance of Javascript. I was concerned in a generic way about building &#8220;richer&#8221; applications in the browser and Javascript&#8217;s role in building those applications. Additionally, I was interested in the possibility of using Javascript on the server, and was starting to learn about Node.js.</p>
  608. <p>A year later, I have some more refined ideas. The fragmentation of mobile platforms means that open web technologies are the only way to deliver applications across the spectrum of telephones, tables, televisions and what have you, without incurring the pain of multi platform development. The types of applications that are most interesting to me are highly interactive with low latency user interfaces &#8211; note that I am intentionally avoiding the use of the word &#8220;native&#8221;. Demand for these applications is going to raise the bar on the skill sets of web developers. I think that we will see more applications where the bulk of the interface and logic are in the browser, and where the server becomes a REST API endpoint. The architecture of &#8220;New Twitter&#8221; is in this vein. API endpoints have far less of a need for HTML templating and server side MVC frameworks. But those low latency applications are going mean that servers are doing more asynchronous delivery of data, whether that is via existing Comet like techniques or via Websockets (once it finally stabilizes). Backend systems are going to partition into parts that do asynchronous delivery of data, and other parts which run highly computationally intensive jobs.</p>
  609. <p>I&#8217;ll save the discussion of the server parts for my Nodeconf writeup, but now I&#8217;m ready to report on JSConf.</p>
  610. <p><b>Talks</b></p>
  611. <p>Here are some of the talks that I found interesting or entertaining.</p>
  612. <p>Former OSAF colleague Adam Christian talked about <a href="">Jellyfish</a>, which is a tool for executing Javascript in a variety of environments from Node to desktop browsers to mobile browsers. One great application for Jellyfish is testing, and Jellyfish sprang out of the work that Adam and others did on <a href="">Windmill</a>.</p>
  613. <p>It&#8217;s been a while since I looked at Bespin/Skywriter/<a href="">Ace</a>, and I was pleased to see that it seems to be progressing quite nicely. I particularly liked the Github support.</p>
  614. <p>I enjoyed Mary Rose Cook&#8217;s account of how writing a 2D platform game using Javascript cause her to have a falling in love like experience with programming. It&#8217;s nice to be reminded of the sheer fun and art of making something using code.</p>
  615. <p>Unfortunately I missed Andrew Dupont&#8217;s talk on extending built-ins. The talk was widely acclaimed on Twitter, and fortunately the <a href="">slides</a> are available. More on this (perhaps) once I get some time to read the slide deck.</p>
  616. <p>Mark Headd showed some cool telephony apps built using Node.js including simple control of a web browser via cell phone voice commands or text messages. The <a href="">code</a> that he used is available, and uses Asterisk, Tropos, Couchbase, and a few other pieces of technology.</p>
  617. <p>Dethe Elze showed of <a href="">Waterbear</a>, which is a <a href="">Scratch</a>-like environment running in the browser. It&#8217;s not solely targeted at Javascript, which I have mixed feelings about. My girls have done a bunch of Scratch programming, so I am glad to see that environment coming to languages that are more widely used.</p>
  618. <p><b>The big topics</b></p>
  619. <p>There were four talks in the areas that am really concerned about, and I missed one of them, which was Rebecca Murphey&#8217;s <a href="">talk</a> on Modern Javascript, which appeared to be derived from some blog <a href="">posts</a> that she has written on the topic. I think that the problems she is pointing out &#8211; ability to modularize, dependency management, and intentional interoperability are going to be major impediments to building large applications in the browser, never mind on the server.</p>
  620. <p>Dave Herman from Mozilla did a presentation on a module system for the next version of Javascript (which people refer to as The design looks reasonable to me, and you can actually play with it in <a href="">Narcissus</a>, Mozilla&#8217;s meta circular Javascript interpreter, which is a testbed for ideas. One thing that&#8217;s possible with the design is to run different module environments in the same page, which Dave demonstrated by running Javascript, Coffeescript, and Scheme syntaxed code in different parts of a page.</p>
  621. <p>The last two talks of the conference were also focused on the topic of</p>
  622. <p>Jeremy Askenas was scheduled to talk about Coffeescript, but he asked Brendan Eich to join him and talk about some of the new features that have been approved or proposed for Many of these ideas look similar to ideas that are in Coffeescript. Jeremy then went on to try and explain what he&#8217;s trying to do in Coffeescript, and encouraged people to experiment with their own language extensions. He and Brendan are calling programs like the Coffeescript compiler, &#8220;transpilers&#8221; &#8211; compilers which compile into Javascript. I&#8217;ve written some Coffeescript code just to get a feel for it, and parts of the experience reminded me of the days when C++ programs went through CFront, which then translated them into C which was then compiled. I didn&#8217;t care for that experience then, and I didn&#8217;t care for it this time, although the fact that most of what Coffeescript does is pure syntax means that the generated code is easy to associate back to the original Coffeescript. There appears to be considerable angst around Coffeescript, at least in the Javascript community. Summarizing that angst and my own experience with Coffeescript is enough for a separate post. Instead I&#8217;ll just say that I like many of the language ideas in Coffeescript, but I&#8217;d prefer not to see Coffeescript code in libraries used by the general Javascript community. If individuals or organizations choose to adopt Coffeescript, that&#8217;s fine by me, but having Coffeescript go into the wild in library code means that pressure will build to adapt Javascript libraries to be Coffeescript friendly, which will be detrimental to efforts to move to</p>
  623. <p>The last talk was given by Alex Russell, and included a triple head fake where Alex was ostensibly to talk about feature detection, although only after a too long comedic delay involving Dojo project lead Pete Higgins. A few minutes into the content on feature detection, Alex &#8220;threw up his hands&#8221;, and pulled out the real topic of his talk, which is the work that he&#8217;s been doing on <a href="">Traceur</a>, which is Google&#8217;s transpiler for experimenting with features. Alex then left the stage and a member of the Traceur team gave the rest of the talk. I am all in favor of cleverness to make a talk interesting, but I would have to say that the triple head fake didn&#8217;t add anything to the presentation. Instead, it dissipated the energy from the Brendan / Jeremy talk, and used up time that could have been used to better motivate the technical details that were shown. The Traceur talk ended up being less energetic and less focused than the talk before it, which is a shame because the content was important. While improving the syntax of is important, it&#8217;s even more important to fix the problems that prevent large scale code reuse and interoperability. The examples being given in the Traceur talk were those kinds of examples, but they were buried by a lack of energy, and the display of the inner workings of the transpiler.</p>
  624. <p>I am glad to see that the people working on are trying to implement their ideas to the point where they could be used in large Javascript programs. I would much rather that the ECMAScript committee had actual implementation reports to base their decisions on, rather than designing features on paper in a committee (<b>update</b>: I am not meaning to imply that TC39 is designing by committee &#8212; see the comment thread for more on that. ). It is going to be several more years before any of these features get standardized, so in the meantime we&#8217;ll be working with the Javascript that we have, or in some lucky cases, with the recently approved ECMAScript 5.</p>
  625. <p><b>Final Thoughts</b></p>
  626. <p>If your interests are different than mine, here is a <a href="">list</a> of pointers to all the slides (I hope someone will help these links make it onto the Lanyrd <a href="">coverage page</a> for JSConf 2011.</p>
  627. <p>JSConf is very well organized, there are lots of social events, and there are lots of nice touches. I did feel that last year&#8217;s program was stronger than this years. There are lots of reasons for why this might be the case, including what happened in Javascript in 2010/11, who was able to submit a talk, a change in my focus and interests. Chris Williams has a very well reasoned <a href="">description</a> of how he selects speakers for JSConf. In general I really agree with what he&#8217;s trying to do. One thing that might help is to keep all the sessions to 30 minutes, which would allow more speakers, and also reduce the loss if a talk doesn&#8217;t live up to expectations.</p>
  628. <p>On the whole, I definitely got a lot out the conference, and as far as I can tell if you want to know what is happening or about to happen in the Javascript world, JSConf is the place to be.</p>
  629. ]]></content:encoded>
  630. <wfw:commentRss></wfw:commentRss>
  631. <slash:comments>3</slash:comments>
  632. <post-id xmlns="com-wordpress:feed-additions:1">361</post-id> </item>
  633. <item>
  634. <title>South by Southwest Interactive 2011</title>
  635. <link></link>
  636. <comments></comments>
  637. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  638. <pubDate>Wed, 23 Mar 2011 06:28:17 +0000</pubDate>
  639. <category><![CDATA[internet]]></category>
  640. <guid isPermaLink="false"></guid>
  642. <description><![CDATA[Back in 2006, Julie made the trek to Austin for South By Southwest Interactive (SXSWi) because she was organizing a panel. This year, I finally got a chance to go. In recent years, I&#8217;ve been to a lot of conferences. Many of them have been O&#8217;Reilly conferences, and the rest have been conferences organized by [&#8230;]]]></description>
  643. <content:encoded><![CDATA[<p>Back in 2006, Julie made the trek to Austin for South By Southwest Interactive (SXSWi) because she was <a href="">organizing</a> a panel. This year, I finally got a chance to go. In recent years, I&#8217;ve been to a lot of conferences. Many of them have been O&#8217;Reilly conferences, and the rest have been conferences organized by various open source communities. What almost all of them have in common is that they are developer centric. What is intriguing about SXSWi, to use John Gruber&#8217;s words, is that it is a conference where both developers and designers are welcome (As are a whole pile of people working in the social media space). One of the reasons that I decided to go this year was to try to get some perspective from a different population of people. &nbsp;&nbsp;</p>
  644. <p>SXSWi is a very large conference with this year&#8217;s <a href="">attendance</a> at around 14000 people. There are conferences which are bigger (Oracle OpenWorld, JavaOne in its heyday, or ComicCon San Diego), but not many. If you mix in the Film conference, which runs at the same time, you have a lot of people in Austin. Any way you slice it, it&#8217;s a huge conference. According to &#8220;old-timers&#8221; that I spoke to, the scale is new, and I would say it&#8217;s the source of almost all of the problems that I had with the conference.</p>
  645. <p><b>Talks</b></p>
  646. <p>Common wisdom in recent years is that SXSWi is more about the networking than the panel / talk content. I did find a number of interesting talks.</p>
  647. <p>I&#8217;ve been loosely aware of Jane McGonigal&#8217;s work on games for quite some time, but I&#8217;ve never actually been able to hear her speak until now. Gamification is a big topic in some circles right now. I think that Jane&#8217;s approach to gaming is deeper and has much longer term impact than just incorporating some of the types of game mechanics that are currently in vogue. I also really appreciated the scientific evidence that she presented about games. I&#8217;m looking forward to reading her book <a href="">&#8220;Reality Is Broken: Why Games Make Us Better and How They Can Change the World&#8221;</a>.</p>
  648. <p>I had no idea who Felicia Day was when I got to SXSWi. Like all conferences, I did my real planning for each day of SXSWi the night before, doing the usual research on speakers that I was unfamiliar with. Felicia&#8217;s story resonated with me because she was homeschooled (like my daughters), went on to be very successful academically and then went into the entertainment business. She is among the leaders in bringing original video content to the internet instead of going through the traditional channels of broadcast television or movie studios. It&#8217;s a path that seems more and more likely to widen (witness Netflix&#8217;s <a href="">licensing</a> of &#8220;House of Cards&#8221;, or Google&#8217;s <a href="">acquisition</a> of Next New Networks). I learned all of that before I sat in the keynote. By the time that I left the keynote, I found myself charmed by her humility and down to earthness, and impressed by the way that she has built a real relationship with her fans in such a way that she can rally them for support when needed.</p>
  649. <p>For the last year or so I&#8217;ve been seeing reviews for <a href="">&#8220;The Power of Pull: How Small Moves, Smartly Made, Can Set Big Things in Motion&#8221;</a> by John Hagel, John Seely Brown and Lang Davison. It sounded like the authors have found an interesting structuring for some of the changes that I&#8217;ve observed by being in the middle of open source software, blogging, and so forth. I still haven&#8217;t gotten around to reading that book (the stack is tall &#8211; well actually, the directory on the iPad is full), but I was glad for the chance to hear John Hagel talk about shaping strategies, his theory on how to make big changes by leveraging the resources of an entire market or ecosystem rather than taking on all the risk in a solo fashion. His talk was on the last day of the conference, and I was wiped out by then, so I need a refresher and some additional think time on his ideas.</p>
  650. <p>Much to my surprise, there were a number of really interesting talks on the algorithmic side of Data Science/Big Data. Many of these talks were banished to the AT&amp;T Conference center at UT Austin, which was really far from the Austin Convention Center and very inconvenient to get to. I wasn&#8217;t able to make it to many of these talks due to this &#8211; having venues so far away &#8211; the AT&amp;T Center, the Sheraton, and the Hyatt &#8211; pretty much dooms the talks that get assigned to those venues. It&#8217;s not a total loss, since these days it&#8217;s pretty easy to find the speakers of the talks and contact them for more information. But that&#8217;s a much higher friction effort than going to their talk, having a chance to talk to them afterwards or over dinner, and going from there. I did really enjoy the talk <a href="">Machines Trading Stocks on News</a>. I am not a financial services guy, and there was no algorithmic heavy lifting on display, but the talk still provided a really interesting look at the issues around analyzing semistructured data and then acting on it. As usual, the financial guys are quietly doing some seriously sophisticated stuff, while the internet startup guys get all the attention. In a related vein, I also went to <a href="">How to Personalize Without Being Creepy</a> which had a good discussion of the state of the art of integrating personalization into products. There was not statistical machine learning on display, but the product issues around personalization are at least as important as the particulars of personalization technology.</p>
  651. <p>One of the nice things about having such a huge conference is that you get some talks from interesting vectors. Our middle daughter has decided that she wants to go to Mars when she grows up. Now it&#8217;s quite some time between now and then, but just in case, I stopped into the talk on <a href="">Participatory Space Exploration</a> and collected a bunch of references that she can go chase. I was also able to chat with the folks from NASA afterwards and pick up some good age appropriate pointers.</p>
  652. <p>There were some interesting sounding talks that I wasn&#8217;t able to get into because the rooms were full. And as I&#8217;ve mentioned there were also some talks that I wasn&#8217; t able to go to because they were located too far away. As a first time SXSWi attendee but a veteran tech conference attendee and speaker, I&#8217;d say that SXSWi is groaning under its own scale at this point. It&#8217;s affecting the talks, the &#8220;evening track&#8221; and pretty much everything else. This is definitely a case of bigger is not better.</p>
  653. <p><b>Party Scene</b></p>
  654. <p>I am used to conferences with an active &#8220;evening track&#8221;, and of course, this includes parties. SXSWi is like no other event that I&#8217;ve been to. The sheer number of parties, both public and private is staggering. I&#8217;ve never had to wait in line to get into parties before, and there are very few VIP lists, whereas at SXSWi both lines and VIP lists seem to be the order of the day. Part of that is due to the scale, and I&#8217;m sure that part of that is SXSW&#8217;s reputation as a party or euphemistically, networking, conference. The other issue that I had with the parties is that the atmosphere at many of them just wasn&#8217;t conducive to meeting people. I went to several parties where the music was so loud that my ears were ringing within a short time. It&#8217;s great that there was good music (a benefit of SXSW), and lots of free sponsor alcohol, but that isn&#8217;t really my style.</p>
  655. <p>Despite all that, I did have some good party experiences. I accidentally/serendipitously met a group of folks who are responsible for social media presences at big brands in the entertainment sector, so I got some good insight in to the kind of problems that they face and the back channel on business arrangements with some of the bigger social networks. I definitely got some serious schooling on how to use Foursquare. At another party, I got ground&#8217;s eye view on what parts of Microsoft&#8217;s Azure PaaS offering is real, and how much is not. I&#8217;m not planning to be an Azure user any time soon, but it&#8217;s always nice to know what is hype and what is reality. I also really enjoyed the ARM party. It was a great chance to see what people are doing with ARM processors &#8211; these days. This <a href="">video</a> that I saw at the TI table made me realize just how close we are to seeing some pretty cool stuff. Nikon USA and Vimeo sponsored a fun party at an abandoned power plant. The music was really loud, but the light was cool and I made some decent pictures.</p>
  656. <p><b>Other activities</b></p>
  657. <p>There are activities of all kinds going on during SXSW. I wasn&#8217;t able to do a lot of them because they conflicted with sessions, but I was able to go on a pair of photowalks, which was kind of fun. The <a href="">photowalk</a> with Trey Ratcliff was pretty fun. As usual, scale was an issue, because we pretty much clogged up streets and venues wherever we went. I&#8217;ve started to put some of those <a href="">photos</a> up on Flickr, but I decided to finish this post rather than finish the post production on the pictures.</p>
  658. <p><b>App Round Up</b></p>
  659. <p>One of the things that makes SXSWi is that you have a large group of people who are willing to try a new technology or application. It&#8217;s conventional wisdom that SXSWi provided launching pads for Twitter and Foursquare, so now every startup is trying to get you to try their application during the week of the conference. While by no means foolproof or definitive, this is a unique opportunity to observe how people might use a piece of technology.</p>
  660. <p>Before flying down to Austin, I downloaded a bunch of new apps on my iPhone and iPad &#8211; so many that I had to make a SXSW folder. I had no preconceived notions about which of these new apps I was going to use.</p>
  661. <p>There were also two web applications that I ended up using quite a bit: Lanyrd&#8217;s <a href="">SXSW guide</a>, and Plancast. <a href="">Lanyrd</a> launched last year as kind of a directory for conferences, and I&#8217;ve been using it to keep track of my conference schedule for a good number of months. For SXSWi, they created a SXSW specific part of the site that included all the panels, along with useful information like the Twitter handles and bios of the speakers. Although SXSW itself had a web application with the schedule, I found that Lanyrd worked better for the way that I wanted to use the schedule. This is despite the face that SXSW had an iPhone app while Lanyrd&#8217;s app has yet to ship. With Lanryd covering the sessions, I used <a href="">Plancast</a> (and along the way <a href="">Eventbrite</a>) to manage the parties. Plancast had all the parties in their system, including the Alaska direct flight from Seattle to Austin that I was on. Many of the parties were using Eventbrite to limit attendance, and while I had used Eventbrite here and there in the past, this finally got me to actually create an account there and use it. Eventbrite and Plancast integrate in a nice way, and it all worked pretty well for me.</p>
  662. <p>Of all the ballyhooed applications that I downloaded, I really only ended up using two. There were a huge number of group chat/small group broadcast applications competing for attention. The one that I ended up using was <a href="">GroupMe</a>, mostly because the people I wanted to keep up with were using it. Beyond the simple group chat/broadcast functionality, it has some other nice features like voice conference calling that I didn&#8217;t really make use of during SXSW. Oddly enough, I first started using Twitter when I was working with a distributed team, and I always wished that Twitter had some kind of group facility. It&#8217;s nice that GroupMe and its competitors exist, but I also can&#8217;t help feeling like Twitter missed an opportunity here. Facebook&#8217;s acquisition of Beluga suggests as much.</p>
  663. <p>The other application that I ended up using was Hashable. Hashable&#8217;s marketing describes it as &#8220;A fun and useful way to track your relationships&#8221;. I&#8217;d describe my usage of it as a way to exchange business cards moderately quickly using Twitter handles. A lot of my Hashable use centered around using my <a href="">Belkin Mini Surge Protector Dual USB Charger</a> to multiply the power outlets at the back of the ballrooms. I&#8217;ve made a lot of friends with that little device. In any case, I used Hashable as a quick way to swap information with my new power strip friends. While I used it, I&#8217;m ambivalent about it. I like that it can be keyed off of either email address or Twitter handle &#8211; I always used Twitter handle. My official business cards don&#8217;t have a space for the handle, which is annoying here in the 21st century. However, the profile that it records is not that detailed, so any business card information that is going to a new contact isn&#8217;t that detailed. It seems obvious to me that there ought to be some kind of connection to LinkedIn, but there&#8217;s no space for that. So I couldn&#8217;t really use Hashable as a replacement for a business card because all the information isn&#8217;t there. It&#8217;s also more clumsy to take notes about a #justmet on the iPhone keyboard than to write on the back of a card. The difficulty of typing on the iPhone keyboard also makes it time consuming and kind of antisocial to use. In a world where everyone used Hashable, and phones were NFC equipped, you can imagine a more streamlined exchange, but even then, the right app would have to be open on the phone. Long term, that&#8217;s an interface issue that phones are going to run into. Selecting the right functionality at the right time is getting to be harder and harder &#8211; pages of folders of apps means that everything gets on the screen, but it doesn&#8217;t mean that accessing them is fast.</p>
  664. <p>In a similar vein, there were QR codes plastered all over pamphlets, flyers, and posters, but as @larrywright asked me on Twitter, I didn&#8217;t see very many people scanning them. Maybe people were scanning all that literature in their rooms after being out till 2am. There&#8217;s still an interface problem there.</p>
  665. <p>In addition to all the hot new applications, there were the &#8220;old&#8221; standby&#8217;s, Foursquare and Twitter.</p>
  666. <p>I am a purpose driven Foursquare user. I use Foursquare when I want people to know where I am. I&#8217;ve never really been into the gamification aspects of Foursquare, but I figured that SXSWi was the place to give that aspect of Foursquare more of a try. Foursquare rolled out a truckload of badges for SXSWi, and sometimes it seemed like you could check into every individual square foot of the Austin Convention Center and surrounding areas. So I did do a lot more checking in, mostly because there were more places to check in, and secondarily because I was trying to rack up some points. Not that the points ever turned into any tangible value for me. But as has been true at other conferences, the combination of checking on Foursquare and posting those checkins to Twitter did in fact result in some people actually tracking me down and visiting.</p>
  667. <p>If you only allowed me one application, it would still be Twitter. If I wanted to know what was happening, Twitter was the first place I looked. Live commentary on the talks was there. I ended up coordinating several serendipitous meetings with people from Twitter. Twitter clients with push notifications made things both easy and timely. While I&#8217;m very unhappy with Twitter&#8217;s recent decree on new Twitter clients, the service is still without equal for the things that I use it for.</p>
  668. <p>One word on hardware. There were lots of iPad 2&#8217;s floating around. I&#8217;m not going to do a commentary on that product here. For a conference like SXSWi, the iPad is the machine of choice. After the first day, I locked my laptop in the hotel safe. I would be physically much more worn out if I had hauled that laptop around. The iPad did everything that I needed it to do, even when I forgot to charge it one night. &nbsp;&nbsp;</p>
  669. <p><b>Interesting Tech</b></p>
  670. <p>While SXSWi is not a hard core technology conference, I did manage to see some very interesting technology. I&#8217;ve already mentioned the TI OMAP5 product line at the ARM party. I took a tour of the exhibit floor with Julie Steele from O&#8217;Reilly, and one of the interesting things that we saw was an iPhone app called <a href="">Neer</a>. Neer is an application that let&#8217;s you set to-do&#8217;s based on location. This is sort of an interesting idea, but the more interesting point came out after I asked about Neer&#8217;s impact on the phone&#8217;s battery life. I had tried an application called Future Checkin, which would monitor your location and and check you into places on Foursquare, because I was so bad about remembering to check in. It turned out that this destroyed the battery life on my phone, so I stopped using it. When I asked the Neer folks how they dealt with this, they told me that they use the phone&#8217;s accelerometer to detect when the phone is actually moving, and they only ping the GPS when they know you are moving, thus saving a bunch of battery life. This is a clever use of multiple sensors to get the job done, and I suspect that we&#8217;re really only at the beginning of seeing how the various sensors in mobile devices will be put to use. It turns out that the people working on Neer are part of a Qualcomm lab that is focused on driving the usage of mobile devices. I&#8217;d say they are doing their job.</p>
  671. <p>The other thing that Julie and I stumbled upon was <a href="">3taps</a>, which is trying to build a Data Commons. The whole issue of data openness, provenence, governance, and so forth is going to be a big issue in the next several years, and I expect to see lots of attempts to figure this stuff out.</p>
  672. <p>The last interesting piece of technology that I learned about is comes from <a href="">Acunu</a>. The Acunu folks have developed a new low-level data store for NoSQL storage engines, particularly engines like Cassandra. The performance gains are quite impressive. The engine will be open source and should be available in a few months. &nbsp;&nbsp;</p>
  673. <p><b>In conclusion</b></p>
  674. <p>SXSWi is a huge conference and it took a lot out of me, more than any other conference that I&#8217;ve been to. While I definitely got some value out of the conference, I&#8217;m not sure that the value I got corresponded to the amount of energy that I had to put in. Some of that is my own fault. If I were coming back to SXSWi, here are some things that I would do:</p>
  675. <ul>
  676. <li>Work harder at being organized about the schedule and setting up meetings with people prior to the conference</li>
  677. <li>Skip many of the parties and try to organize get togethers with people outside of the parties</li>
  678. <li>Eat reasonably &#8211; SXSW has no official lunch or dinner breaks &#8211; this makes it to easy to go too long without eating which leads to problems.</li>
  679. <li>Always sit at the back of the room and make friends over the power outlets</li>
  680. </ul>
  681. <p>Lanyrd is collecting various types of <a href="">coverage</a> of the conference whether that is slide decks, writeups, or audio recordings. &nbsp;&nbsp;</p>
  682. <p>I like the idea of SXSWi, and I like the niche that it occupies, but I think that scale has overtaken the conference and is detracting from the value of it. Long time attendees told me that repeatedly when I asked. I would love to see some alternatives to SXSWi, so that we don&#8217;t have to put our eggs all in one basket.</p>
  683. ]]></content:encoded>
  684. <wfw:commentRss></wfw:commentRss>
  685. <slash:comments>0</slash:comments>
  686. <post-id xmlns="com-wordpress:feed-additions:1">359</post-id> </item>
  687. <item>
  688. <title>Strata 2011</title>
  689. <link></link>
  690. <comments></comments>
  691. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  692. <pubDate>Mon, 07 Feb 2011 08:38:06 +0000</pubDate>
  693. <category><![CDATA[internet]]></category>
  694. <category><![CDATA[data]]></category>
  695. <guid isPermaLink="false"></guid>
  697. <description><![CDATA[I spent three days last week at O&#8217;Reilly&#8217;s Strata Conference. This is the first year of the conference, which is focused on topics around data. The tag line of the conference was &#8220;Making Data Work&#8221;, but the focus of the content was on &#8220;Big Data&#8221;. The state of the data field Big Data as a [&#8230;]]]></description>
  698. <content:encoded><![CDATA[<p>I spent three days last week at O&#8217;Reilly&#8217;s <a href="">Strata</a> Conference. This is the first year of the conference, which is focused on topics around data. The tag line of the conference was &#8220;Making Data Work&#8221;, but the focus of the content was on &#8220;Big Data&#8221;.</p>
  699. <p><b>The state of the data field</b></p>
  700. <p>Big Data as a term is kind of undefined in a &#8220;I&#8217;ll know it when I see it&#8221; kind of way. As an example,I saw tweets asking how much data one needed to have in order to qualify as having a Big Data problem. Whatever the complete meaning is, if one exists, there is a huge amount of interest in this area. O&#8217;Reilly planned for 1200 people, but actual attendance was 1400, and due to the level of interest, there will be another <a href="">Strata in September 2011</a>, this time in New York. Another term that was used frequently was data science, or more often data scientists, people who have a set of skill that make them well suited to dealing with data problems. These skills include programming, statistics, machine learning, and data visualization, and depending on who you ask, there will be additions or subtractions from that list. Moreover, this skill set is in high demand. There was a very full job board, and many presentations ended with the words &#8220;we&#8217;re hiring&#8221;. And as one might suspect, the venture capitalists are sniffing around &#8212; at the venture capital panel, one person said that he believed there was a 10-25 year run in data problems and the surrounding ecosystem.</p>
  701. <p>The Strata community is a multi disciplinary community. There were talks on infrastructure for supporting big data (Hadoop, Cassandra, Esper, custom systems), algorithms for machine learning (although not as many as I would have liked), the business and ethics of possessing large data sets, and all kinds of visualizations. In the executive summit, there were also a number of presentations from traditional business intelligence, analytics, and data warehousing folks. It is very unusual to have all these communities in one place and talking to each other. One side effect of this, especially for a first time conference, is that it is difficult to assess the quality of speakers and talks. There were a number of talks which had good looking abstracts, but did not live up to those aspirations in the actual presentation. &nbsp;&nbsp; I suspect that it is going to take several iterations to identify the the best speakers and the right areas &#8211; par for a new conference in a multidisciplinary field.</p>
  702. <p><b>General Observations</b></p>
  703. <p>I did my graduate work in object databases, which is a mix of systems, databases, and programming languages. I also did a minor in AI, although it was in the days before machine learning really became statistically oriented. I&#8217;m looking forward to going a bit deeper into all these areas as I look around in the space.</p>
  704. <p>One theme that appeared in many talks was the importance of good, clean data. In fact, Bob Page from eBay showed a chart comparing 5 different learning algorithms, and it was clear that having a lot of data made up for differences in the algorithms, making the quality and volume of the data more important than the details of the algorithms being used. That&#8217;s not to say that algorithms are unimportant, just that high quality data is more important. It seems obvious that having access to good data is really important.</p>
  705. <p>Another theme that appeared in many talks was the combination of algorithms and humans. I remember this being said repeatedly in the panel on predicting the future. I think that there&#8217;s a great opportunity in figuring out how to make the algorithm and human collaboration work as pleasantly and efficiently as possible.</p>
  706. <p>There were two talks that at least touched on building data science teams, and on Twitter it seemed that LinkedIn was viewed as having one of the best data science teams in the industry. Not to take anything away from the great job that the LinkedIn folks are doing, or the importance of helping people find good jobs, but I hope that in a few years, we are looking up to data science teams from healthcare, energy, and education.</p>
  707. <p>It amused me to see tweets and have discussions on the power of Python as a tool in this space. With libraries like <a href="">numpy</a>, <a href="">scipy</a>, <a href="">nltk</a>, and <a href="">scikits.learn</a>, along with an interactive interpreter loop, Python is well suited for data science/big data tasks. It&#8217;s interesting to note that tools like <a href="">R</a> and <a href="">Incanter</a> have similar properties.</p>
  708. <p>There were two areas that I am particularly interested in, and which I felt were somewhat under represented. The issue of doing analysis in low latency / &#8220;realtime&#8221; scenarios, and the notion of &#8220;personal analytics&#8221; (analytics around a single person&#8217;s data). I hope that we&#8217;ll see more on these topics in the future.</p>
  709. <p><b>The talks</b></p>
  710. <p>As is the case nowadays, the <a href="">proceedings</a> from the conference are available online in the form of slide decks, and in some cases video. Material will probably continue to show up over the course of the next week or so. Below are some of the talks I found noteworthy.</p>
  711. <p><i>Day 1</i></p>
  712. <p>I spent the tutorial day in the Executive Summit, looking for interesting problems or approaches that companies are taking with their data efforts. There were two talks that stood out to me. The first was Bob Page&#8217;s talk <a href="">Building the Data Driven Organization</a>, which was really about eBay. Bob shared from eBay&#8217;s experience over the last 10 years. Probably the most interesting thing he described was an internal social network like tool, which allowed people to discover and then bookmark analytics reports from other people.</p>
  713. <p>Marilyn and Terence Craig presented <a href="">Retail: Lessons Learned from the First Data-Driven Business and Future Directions</a>, which was exactly how it sounded. It&#8217;s conventional wisdom among Internet people that retail as we know it is dead. I came away from this talk being impressed by the problems that retail logistics presents, and by how retail&#8217;s problems are starting to look like Internet problems. Or is that vice versa?</p>
  714. <p><i>Day 2</i></p>
  715. <p>The conference proper started with the usual slew of keynotes. I&#8217;ve been to enough O&#8217;Reilly conferences to know that some proportion of the keynotes are given in exchange for sponsorships, but some of the keynotes were egregiously commercial. The Microsoft keynote included a promotional video, and the EnterpriseDB keynote on Day 3 was a bald faced sales pitch. I understand that the sponsors want to get value for the money they paid (I helped sponsor several conferences during my time at Sun). The sponsors should look at the twitter chatter during their keynotes to realize that these advertising keynotes hurt them far more than they help them. Before Strata, I didn&#8217;t really know anything about EnterpriseDB except that they had something to do with Postgres. Now I all I know is that they wasted a bunch of my time during a keynote spot.</p>
  716. <p>Day 2 was a little bit light on memorable talks. I went to <a href="">Generating Dynamic Social Networks from Large Scale Unstructured Data</a> which was in the vendor presentation track. Although I didn&#8217;t learn much about the actual techniques and technologies that were used, I did at least gain some appreciation for the issues involved. The panel <a href="">Real World Applications Panel: Machine Learning and Decision Support</a> only had two panelists. Jonathan Seidman and Robert Lancaster from Orbitz described how they use learning for sort optimization, intelligent caching, and personalization/segmentation, and Alasdair Allan from the University of Exeter described the use of learning and multiagent systems to control networks telescopes at observatories around the world. The telescope control left me with a vaguely SkyNet ish feeling. Matthew Russell has written a book called <a href="">Mining the Social Web</a>. I grabbed his <a href="">code</a> off of github and it looked interesting, so I dropped into his talk <a href="">Unleashing Twitter Data for Fun and Insight</a>. He&#8217;s also written <a href="">21 Recipes for Mining Twitter</a>, and the <a href="">code</a> for that is on github as well.</p>
  717. <p><i>Day 3</i></p>
  718. <p>Day 3 produced a reprieve on the keynote front. Despite the aforementioned horrible EnterpriseDB keynote, there were 3 very good talks. LinkedIn&#8217;s keynote on <a href="">Innovating Data Teams</a> was good. They presented some data science on the Strata attendees and described how they recruited and organized their data team. They did launch a product, <a href="">LinkedIn Skills</a>, but it was done in such a way as to show off the data science relevant aspects of the product.</p>
  719. <p>Scott Yara from EMC did a keynote called <a href="">Your Data Rules the World</a>. This is how a sponsor keynote should be done. No EMC products were promoted, and Scott did a great job of demonstrating a future filled with data, right down to still and video footage of him being stopped for a traffic violation. The keynote provoked you to really thing about where all this is heading, and what some of the big issues are going to be. I know that EMC make storage and other products. But more than that, I know that they employ Product Management people who have been thinking deeply about a future that is swimming with data.</p>
  720. <p>The final keynote was titled <a href="">Can Big Data Fix Healthcare?</a>. Carol McCall has been working on data oriented healthcare solutions for quite some time now, and her talk was inspirational and gave me some hope that improvements can happen.</p>
  721. <p>Day 3 was the day of the <a href="">Where&#8217;s the Money in Big Data?</a> panel, where a bunch of venture capitalists talked about how they see the market and where it might be headed. It was also the day of two really good sessions. In <a href="">Present Tense: The Challenges and Trade-offs in Building a Web-scale Real-time Analytics System</a>, Ben Black described Fast-IP&#8217;s journey to build a web-scale real-time analytics system. It was an honest story of attempts and failures as well as the technical lessons that they learned after each attempt. This was the most detailed technical talk I attended, although the terms distributed lower dimensional cuboid and word-aligned bitmap index were tossed around, but not covered in detail. It&#8217;s worth noting that Fast-IP&#8217;s system and Twitter&#8217;s Analytics system, Rainbird, are both based, to varying degrees, on Cassandra.</p>
  722. <p>I ended up spending an extra night in San Jose so that I could stay for <a href="">Predicting the Future: Anticipating the World with Data</a>, which was in the last session block of the conference. I think that it was worth it. This was a panel format, but each panelist was well prepared. Recorded Future is building a search engine that uses the past to predict the future. They didn&#8217;t give out much of their secret sauce, but they did say that they have built a temporally based index as opposed to a keyword based one. Unfortunately their system is domain specific, with finance and geopolitics being the initial domains. Palantir Technologies is trying to predict terrorist attacks. In the abstract, this means predicting in the face of an adaptive adversary, and in contexts like this, the key is to stop thinking in terms of machine learning and start thinking in terms of game theory. It seems like there&#8217;s a pile of interesting stuff in that last statement. Finally, Rion Snow from Twitter took us through a number of academic papers where people have successfully made predictions about box office revenue, the stock market, and the flu, just from analyzing information available via Twitter. I had seen almost all of the papers before, but it was nice to feel that I hadn&#8217;t missed any of the important results.</p>
  723. <p><i>Talks I missed but had twitter buzz</i></p>
  724. <p>You can&#8217;t go to every talk at a conference (nor should you, probably), but here are some talks that I missed, but which had a lot of buzz on Twitter. <a href="">MAD Skills: A Magnetic, Agile and Deep Approach to Scalable Analytics</a> &#8211; the hotness of this talk seemed related more to the <a href="">DataWrangler</a> tool (for cleansing data) than the <a href="">MAD</a> library (scalable analytics engine running inside Postgres) itself. <a href="">Big Data, Lean Startup: Data Science on a Shoestring</a> seemed like it had a lot of just good commonsense about running in a startup in addition to know how to do data science without doing overkill. Joseph Turian&#8217;s <a href="">New Developments in Large Data Techniques</a> looked like a great talk. His slides are available online, as well as the papers that he referenced. It seemed like the demos were the topic of excitement in <a href="">Data Journalism: Applied Interfaces</a>, given jointly by folks from ReadWriteWeb, The Guardian, and The New York Times. Rainbird is Twitter&#8217;s analytics system, which was described in <a href="">Real-time Analytics at Twitter</a>. Notable news on that one is that Twitter will be open sourcing Rainbird once the requisite version of Cassandra is released.</p>
  725. <p><b>Evening activities</b></p>
  726. <p>There were events both evenings of the show, which made for very long days. On Day 1 there was a showcase of various startup companies, and on Day 2, there was a &#8220;science fair&#8221;. In all honesty, the experience was pretty much the same both nights. Walk your way around some tables/pedestals, and talk to people who are working on stuff that you might think is cool. The highlights for me were:</p>
  727. <ul>
  728. <li>Jeremie Miller&#8217;s <a href="">Locker project</a> (<a href="">github</a>) (written on Node.js)</li>
  729. <li><a href="">Impure</a>, a visual tool for building data visualizations &#8211; here are some Strata/Twitter <a href="">visualizations</a> built with Impure</li>
  730. <li><a href="">DrawnToScale</a>, a big data database being developed here in Seattle</li>
  731. </ul>
  732. <p><b>Links</b></p>
  733. <p>Here is a bunch of miscellaneous interesting links from the conference:</p>
  734. <ul>
  735. <li><a href="">Data BootCamp slides</a></li>
  736. <li><a href=""></a>The book <a href="">Elements of Statistical Learning</a> (in PDF form, too)</li>
  737. <li>The paper <a href="">The Sensemaking Process and Leverage Points for Analyst Technology as Identified Through Cognitive Task Analysis</a>, recommended by Mark Madsen during his keynote</li>
  738. <li>The book <a href="">The Fourth Paradigm: Data-Intensive Scientific Discovery</a> (in PDF form, too), recommended by Werner Vogels during his keynote</li>
  739. <li>The $3M <a href="">Heritage Health Prize</a> to develop an algorithm to predict and prevent unnecessary hospitalizations</li>
  740. <li><a href="">Public domain government information</a></li>
  741. <li><a href="">All data covered by the Guardian since 2009</a></li>
  742. <li><a href="">40 Fascinating blogs for the Ultimate Statistics Geek</a></li>
  743. <li>A <a href="">List of Data Markets</a></li>
  744. </ul>
  745. <p><b>Tweet Mining</b></p>
  746. <p>Finally, no conference on data should be without it&#8217;s own Twitter exhaust. So I&#8217;ll leave you with some analysis and visualizations done on the tweets from Strata.</p>
  747. <ul>
  748. <li>Chirpstory&#8217;s <a href="">compilation</a> of all the tweets.</li>
  749. <li>Confluential&#8217;s <a href="">analysis</a></li>
  750. <li>Impure generated <a href="">visualizations</a></li>
  751. </ul>
  752. <p><b>Update</b>: Thanks to bear for a typo correction.</p>
  753. ]]></content:encoded>
  754. <wfw:commentRss></wfw:commentRss>
  755. <slash:comments>11</slash:comments>
  756. <post-id xmlns="com-wordpress:feed-additions:1">356</post-id> </item>
  757. <item>
  758. <title>Blogaversary 2011</title>
  759. <link></link>
  760. <comments></comments>
  761. <dc:creator><![CDATA[Ted Leung]]></dc:creator>
  762. <pubDate>Sun, 09 Jan 2011 22:32:59 +0000</pubDate>
  763. <category><![CDATA[blogging]]></category>
  764. <guid isPermaLink="false"></guid>
  766. <description><![CDATA[I&#8217;m not that good at remembering my Blogaversary &#8212; it&#8217;s been two years since I remembered last. You can thank the OmniGroup&#8217;s wonderful OmniFocus for reminding me in time this year. Almost everything that I wrote describing my 6 year blogaversary is still true today. In fact, I&#8217;m doing more traveling than I was when [&#8230;]]]></description>
  767. <content:encoded><![CDATA[<p>I&#8217;m not that good at remembering my Blogaversary &#8212; it&#8217;s been two years since I <a href="">remembered</a> last. You can thank the OmniGroup&#8217;s wonderful <a href="">OmniFocus</a> for reminding me in time this year. Almost everything that I wrote describing my 6 year blogaversary is still true today. In fact, I&#8217;m doing more traveling than I was when I wrote that. In the past much of my travel has been for conferences, but last year, I did a lot of traveling for other meetings. I&#8217;m expecting that I&#8217;ll be at fewer conferences this year than last year. I&#8217;ve started using Simon Willison&#8217;s excellent Lanyrd to manage my conference tracking. My <a href="">list</a> for this year will give you some hints about some of the stuff that I am looking at. One thing that is difference since I&#8217;ve been at Disney is that I am seeing lots of interesting stuff, but much of it is covered by Non Disclosure Agreements. Needless to say, I don&#8217;t write about any of that. &nbsp;&nbsp;</p>
  768. <p>Here&#8217;s to another year of blogging, <a href="">tweeting</a>, and whatever else is coming down the path.</p>
  769. ]]></content:encoded>
  770. <wfw:commentRss></wfw:commentRss>
  771. <slash:comments>1</slash:comments>
  772. <post-id xmlns="com-wordpress:feed-additions:1">355</post-id> </item>
  773. </channel>
  774. </rss>

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda