tag:blogger.com,1999:blog-89784239967463517752024-03-16T01:36:02.175-05:00Chaotic clamoringRants on the complexities of computer-based collaboration.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.comBlogger48125tag:blogger.com,1999:blog-8978423996746351775.post-38981952395043631232011-04-04T21:51:00.000-05:002011-04-04T21:51:59.030-05:00Processing and Processing-JS on the BeagleBoard under Angstrom<a href="http://4.bp.blogspot.com/-wrdnJdjJ3b0/TZp1KlXFP8I/AAAAAAAAAdM/0LmnPQtglTY/s1600/processing-screenshot.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="180" src="http://4.bp.blogspot.com/-wrdnJdjJ3b0/TZp1KlXFP8I/AAAAAAAAAdM/0LmnPQtglTY/s320/processing-screenshot.png" width="320" /></a>After reading the <a href="http://icanbuild.it/embedded/processing-on-beagleboard-xm/">blog post about the serial port challenges</a> in <a href="http://processing.org/download/">Processing</a> and <a href="http://dominion.thruhere.net/koen/cms/making-processing-arduino-ide-replicaorg-work-on-arm">the method for fixing them</a>, I decided to <a href="http://processing.googlecode.com/files/processing-1.2.1.tgz">download the IDE</a> and try it myself. It seems to work reasonably well. I haven't quite managed to learn enough about the <a href="http://arduino.cc/">Arduino</a> to understand how they use Processing or how limited their implementation of it is, but I was able to <a href="http://files.arduino.cc/downloads/arduino-0022.tgz">install and run the Arduino tool</a> on my BeagleBoard after applying Koen's serial port library fix. I hope to use the tool to download applications onto my <a href="http://www.tincantools.com/product.php?productid=16151&cat=249&page=1">Trainer-xM</a>, but I haven't yet been able to compile the examples natively because I haven't yet built avr-gcc.<br />
<br />
This is highly related to my current personal project, which is working with <a href="http://processingjs.org/">Processing-JS</a>. I've been talking a lot about a <a href="http://beagleboard.org/linux_education">BeagleBoard Linux Education project</a>, but haven't really kicked the project off after working with others on the scope. <a href="http://elinux.org/Category:ECE497">Mark Yoder's ECE497 class</a> is where the most visible advancement seems to be taking place right now, though I've heard of several other educators also creating courses with the BeagleBoard, including the <a href="https://ccrma.stanford.edu/workshops/new-music-controllers-nmc-0">Stanford New Musical Controllers workshop</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-2VRzFATSMbA/TZp40OpPwwI/AAAAAAAAAdU/MIQ-ZRsjYv4/s1600/processing-js-bouncybubbles.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="180" src="http://3.bp.blogspot.com/-2VRzFATSMbA/TZp40OpPwwI/AAAAAAAAAdU/MIQ-ZRsjYv4/s320/processing-js-bouncybubbles.png" width="320" /></a></div><br />
For me, I like the ideas of avoiding compilation, working in the most popular development environment today (the browser) and being able to remote my interface anywhere in the world over the web. I also believe the zero-install nature of web applications and the familiarity of working within a browser make it the perfect environment for newbies. To that end, I've made a little fork off of my <a href="https://gitorious.org/%7EJadon/jadons-education">Linux education project</a> to focus on JavaScript-based development. I now have both Cloud9 and Processing.js installing as submodules. Under Angstrom, I'm able to easily run Chromium as one of my browser options and see the output from Processing.js, such as the picture here. Now to see which environment gets me talking to my Trainer-xM board first.<br />
<br />
Also, sorry about the delayed BeagleCast this week--resulting in some of the topics not being timely. I've had a challenge getting a call scheduled with Khasim to discuss Rowboat.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com8tag:blogger.com,1999:blog-8978423996746351775.post-14343402975849756912011-03-07T14:11:00.000-06:002011-03-07T14:11:38.324-06:00Node.JS-based Cloud9 JavaScript IDE running on a BeagleBoardYesterday, I decided I was going to get Cloud9 running on my BeagleBoard. I didn't document every step, but below are a few helpful hints. I'm working with a recent Angstrom Distribution build with Node.JS v0.2.6.<br />
<br />
At first, I tried using Node.JS v0.2.1 and I found that the 'connect' module wasn't present. I went to install 'npm', but the install attempts failed silently. When I found that v0.2.6 was in the feeds, I tried installing 'npm' again and it succeeded without much of a headache. I installed v0.2.19 of 'npm'.<br />
<br />
Since the node-o3-xml package needs to be compiled for Cloud9, I installed a bunch of native tools onto my BeagleBoard, including 'opkg install task-sdk-native nodejs-dev', but I don't remember 100% of what I installed. My confusion began around an error on 'import Scripting' when running node-waf. Fortunately, someone already figured the issue out for me when they were trying to build <a href="http://fastr.github.com/articles/node-waf-on-gumstix.html">node-inotify on a Gumstix board</a>. I installed the extra Python tools and copied the .py code from my Mac. I did need to edit wscript to remove any x86 specific optimization flags and remove any .pyo files that accidentally got copied over.<br />
<br />
Once I built o3, I installed it into my Cloud9 directory, which I checked out following the online directions. I am working from <a href="https://github.com/ajaxorg/cloud9/tree/0.2.0">the Cloud9 0.2.0 tag</a>. Since the submodules of Cloud9 include a set of pre-built binaries for o3, I added <a href="https://github.com/jadonk/node-o3-xml">a repository that included my newly built ARM binaries</a>.<br />
<br />
I think this was pretty much it to getting Cloud9 invoked, but using the latest Firefox 4 beta as a client wasn't working. I tried using the '-d' flag at invocation and moving Cloud9 to a user account instead of root, but that didn't help. Based on <a href="http://gratdevel.blogspot.com/2011/03/setting-up-cloud9-on-ubuntu-1010-32-bit.html">a blog post that described invoking Cloud9 on an Ubuntu machine</a>, I was using this command-line to perform the start-up:<br />
<br />
node ~/cloud9/bin/cloud9.js -c ~/cloud9/config.js -w ~/testproject -d<br />
<br />
I decided to install Chrome to see if it was a browser dependency and viola!<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-4Tzv30-N4bg/TXU6up7Kt0I/AAAAAAAAAFA/bCxmT-3xflY/s1600/Snapz%2BPro%2BXScreenSnapz004.png" imageanchor="1" style="clear:right; float:right; margin-left:1em; margin-bottom:1em"><img border="0" height="287" width="320" src="http://4.bp.blogspot.com/-4Tzv30-N4bg/TXU6up7Kt0I/AAAAAAAAAFA/bCxmT-3xflY/s320/Snapz%2BPro%2BXScreenSnapz004.png" /></a></div><br />
After a simple web server app, I decided to poke the LED SYSFS entries. I needed to change the SYSFS file entry permissions to 777 to enable my user account to set the state, but I was easily able to do so.<br />
<br />
Next step is to show how JavaScript closures can be used to create a web page that responds quickly when the USER button is pressed, generating a Linux input event.<br />
<br />
Am I the only one that gets how cool it will be to be able to distribute pre-configured SD cards you can drop into your BeagleBoard, plop it onto a network and start editing code to peek and poke hardware using an IDE without ever installing *anything*?Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com3tag:blogger.com,1999:blog-8978423996746351775.post-68404119312028002592008-07-19T11:00:00.004-05:002008-07-19T11:34:33.651-05:00Google kills Blogger Web CommentsOften I find websites where people are just being stupid and need to be told so. In those cases, I don't think relying on the ignorant host of the site to provide a comment page to let me tell him how much of an idiot he is being will really work.<br /><br />Then there are those cases where I'm wondering about what other people think who are interested in this same site that doesn't allow direct comments to be posted, or where I don't trust the host to not pull down negative comments.<br /><br />So, what are my options?<br /><br />Well, I used to make a lot of use of the <a href="http://www.google.com/tools/firefox/webcomments/">Blogger Web Comments for Firefox</a>. This was a pretty handy tool that would fetch comments using <a href="http://blogsearch.google.com/">Google's Blog Search</a>. Since I've recently upgraded to Firefox 3, I thought it was a good time to go look for an update to the plug-in and to see if I could get that functionality back.<br /><br />Unfortunately, the plug-in is no longer available. This isn't the first time I <a href="http://blog.hangerhead.com/2006/12/google-left-hand-meet-right-hand.html">ran into a brick wall with Blogger Web Comments for Firefox</a>, but it seems they've decided to drop it, rather than fix it.<br /><br />Hopefully others will still see the promise in this sort of functionality and provide something, but in the short term, I'll be stuck performing copy-paste operations and executing 3-5 clicks to get similar output manually from <a href="http://del.icio.us/url/91fbe56accfd43f44058ba17c80031ce">del.icio.us</a>, <a href=" http://blogsearch.google.com/blogsearch?hl=en&ie=UTF-8&ui=blg&q=link%3Ahttp%3A%2F%2Fwww.google.com%2Ftools%2Ffirefox%2Fwebcomments&btnG=Search+Blogs">Google blog search</a>, and <a href="http://technorati.com/search/http%3A%2F%2Fwww.google.com%2Ftools%2Ffirefox%2Fwebcomments%2F">Technorati</a>.<br /><br />I'll be visiting those search options regularly to see if someone picks up on this feature.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com7tag:blogger.com,1999:blog-8978423996746351775.post-48966050185116962312008-03-30T12:46:00.005-05:002008-03-30T14:50:26.232-05:00Coining a phrase, the Contextual WebI was getting started writing up a "master paper" to serve as a guideline for submissions to several conferences this year, including <a href="http://www.lugradio.org/live/USA2008/">Lug Radio Live USA</a>. In this paper, I planned to coin a phrase, "The Contextual Web". I figured, if I plan to coin a phrase, I should at least ask Google if anyone has tried to do that before me.<br /><br />It turns out that someone has, they did it recently, and the synopsis looks eerily like the one I had written in some drafts. I'm not trying to claim that anyone stole my idea, or that I even had it significantly earlier than anyone else. To the contrary, I'm trying to claim that this idea is just that obvious. Here's a clip from <a href="http://panelpicker.sxsw.com/ideas/view/178">the page I found when I did a Google search for "the contextual web"</a>:<br /><blockquote>The next generation of the web isn't going to be on your desktop, it may not even be on your mobile device. Context is going to be increasingly important and Nick will take you through the process of designing and architecting for context as well as regardless of the context.</blockquote>Well, <a href="http://www.nickfinck.com/">Nick Finck</a>, you've got my attention. A few more searches with Nick's name in the search box return some <a href="http://www.digital-web.com/news/2008/03/SXSW_Interactive_The_Contextual_Web_Nick_Finck">additional gems</a>:<br /><blockquote>There are four Elements of Context – the User, the Task, the Environment, and the Technology. Who is your user and what obstacles are they facing; what task are they trying to complete; what is the environment in which they are working; and what kind of computer or device are they using? Designing interactive experiences is not limited to the web on your computer or phone – consider gas pumps, fridges, or devices like Microsoft Surface.</blockquote>This definitely puts my ego into perspective. Nick, I'm supporting <a href="http://beagleboard.org">the Beagle board</a> just for you. :)Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com3tag:blogger.com,1999:blog-8978423996746351775.post-17487038973496709602008-03-21T23:22:00.001-05:002008-03-21T23:22:07.402-05:00Adding a URL to 'gitweb'<div xmlns='http://www.w3.org/1999/xhtml'>It is as simple as creating a 'cloneurl' file in the git repository directory, just like you can add a 'description' file.<br/><br/>This took about 7 minutes of exploring the CGI code of gitweb to find, which took another 2 minutes to find. I spend about 20 exploring the web based on some links I was given that were 'supposed' to explain this, because this was the big feature that was missing from my gitweb installation. Ugh!<br/><br/>Come on Linux folks, are you just trying to make easy things difficult?<br/><br/>Example: <a href='http://www.beagleboard.org/gitweb/?p=beagleboard.org.git'>http://www.beagleboard.org/gitweb/?p=beagleboard.org.git</a> as sourced by <a href='http://www.beagleboard.org/beagleboard.org.git'>http://www.beagleboard.org/beagleboard.org.git</a>.<br/></div>Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com4tag:blogger.com,1999:blog-8978423996746351775.post-83112670959289379802008-03-20T09:59:00.002-05:002008-03-20T10:02:57.362-05:00Making the connection between Gears, GreaseMonkey, JXTA, and OpenID<div xmlns="http://www.w3.org/1999/xhtml">A while back, I wrote-up a "Collaborative GreaseMonkey" patent disclosure. It was a defensive measure to make sure no one else patented the idea and prevented the rest of us from using it. The disclosure never made it past our patent committee, and I think that is fine, since it is at least documented as prior art in some way. The code never got to the point where it was worth sharing, but I do plan to revive it at some point.<br /><br />I'm seeing that more and more people are starting to get ideas that are more and more similar to what I had in mind. Today, I read about someone dreaming up thoughts on using <a href="http://almaer.com/blog/gears-future-apis-openid-and-oauth">Google Gears to perform OpenID and OAuth</a>. I like the thought pattern.<br /><br /><a href="http://gears.google.com/">Gears</a>, <a href="https://addons.mozilla.org/en-US/firefox/addon/748">GreaseMonkey</a>, <a href="http://openid.net/">OpenID</a>, and <a href="https://p2psockets.dev.java.net/">P2PSockets</a> (JXTA) have the potential to re-invent the web and to establish a real web operating system. Gears enables the JavaScript written into web pages to become part of a real, persistent application with persistent data storage and threads. GreaseMonkey provides a solution to edit existing web applications with user-controled, local customizations and to create applications fully local, without needing to learn how to write a web server application. OpenID gives a single solution for authenticating yourself across those web applications. P2PSockets allows the applications and data you host locally to be discovered on the web without needing to own a web server.<br /><br />The result is an application building environment that is an incremental step from simple HTML+JavaScript editing and allows everyone to invent their own web, rather than just rely on the web that the social networking sites control today.<br /><br />The success of this web is, of course, controlled by the economy it creates. An a-la-carte business model, like the one provided by Amazon's web services, is a great way to ensure that the bandwidth and data storage necessary for the locally-hosted services to scale.<br /><br />Thoughts?<br /></div>Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com1tag:blogger.com,1999:blog-8978423996746351775.post-88907267726938162602008-03-07T10:32:00.002-06:002008-03-07T10:36:07.686-06:00Open source on TI devicesI happen to like this article, <a href="http://blogs.zdnet.com/open-source/?p=2093" rel="bookmark" title="Permanent Link to TI targets Linux and open source with new OMAP chips"><span style="font-weight: bold;"></span>TI targets Linux and open source with new OMAP chips</a>, but I certainly have gotten the message "more patches, less powerpoints". We'll see over the next few months...Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-54287592338253615062008-03-05T22:30:00.001-06:002008-03-05T22:30:09.964-06:00TI-Open-Source-Workshop-TIDEVCON08<div style="float: right; margin-left: 10px; margin-bottom: 10px;"> <a href="http://www.flickr.com/photos/24442827@N06/2313217821/" title="photo sharing"><img src="http://farm4.static.flickr.com/3295/2313217821_4b5a07f598_m.jpg" alt="" style="border: solid 2px #000000;" /></a> <br /> <span style="font-size: 0.9em; margin-top: 0px;"> <a href="http://www.flickr.com/photos/24442827@N06/2313217821/">TI-Open-Source-Workshop-Jason-Kridner-TIDEVCON08</a> <br /> Originally uploaded by <a href="http://www.flickr.com/people/24442827@N06/">shutter_nut</a> </span></div>I've mostly given up on trying to be relatively anonymous on this blog. I figure that people who know me already know how to find this site, but I'm starting to try to take on some relatively public responsibilities related to open source software and the newly "announced" BeagleBoard.<br /><br />Actually, the BeagleBoard isn't officially "announced". The reason is that there really isn't a community or set of applications around it yet to make it something worth announcing. Instead, it is just an open project looking for some of the right folks to help make it happen.<br /><br />I have a lot of confidence that the BeagleBoard will be a very real and active community project. Just let me know if and how you'd like to get involved.<br /><br />For those who have read my blog posts in the past, rest assured that the BeagleBoard is quite intertwined with my vision for collaboration. My hope is that it will yield a nice starting point for building collaboration software that could be integrated into just about any form-factor and innovative human interface.<br clear="all" />Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com1tag:blogger.com,1999:blog-8978423996746351775.post-71466916549761361972008-02-06T09:07:00.000-06:002008-02-06T09:51:17.359-06:00Heading to LugRadio LiveYou almost can't call it a business trip, but I will be filing an expense report...<br /><br /><object width="425" height="355"><param name="movie" value="http://www.youtube.com/v/Bb78lynVJSs&rel=1" ></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/Bb78lynVJSs&rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object><p><a href="http://www.lugradio.org/live/USA2008/">Go to LugRadio Live USA 2008, 12-13 April, San Francisco!</a> Watch this, then <a href="http://www.lugradio.org/live/USA2008/video">spread the word</a>!</p>Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com1tag:blogger.com,1999:blog-8978423996746351775.post-56620476391184974202008-01-29T18:21:00.001-06:002008-01-29T18:26:17.531-06:00Could Pandora open up Linux games?They say the Open Pandora (P&|A) handheld gaming device compares in power to a Nintendo GameCube, and will offer full-speed Playstation and N64 emulation. How does the GameCube compare to other systems/CPUs?<br /><br />Of course, what I think is really interesting about this device is it being a clam shell (to protect the screen), having real gaming controls, and being fully open for hacking. I expect a lot of nice software will come out of this device existing.<br /><br /><a href="http://linuxdevices.com/news/NS7004794073.html">read more</a> | <a href="http://digg.com/gadgets/Could_Pandora_open_up_Linux_games">digg story</a>Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-26708462331331784122008-01-24T22:00:00.000-06:002008-01-27T16:13:35.915-06:00Hello? Jabber was designed for cloud computingI just read <a href="http://www.readwriteweb.com/about_marshall.php">Marshall Kirkpatrick</a>'s Read/Write Web post <a href="http://www.readwriteweb.com/archives/xmpp_web.php"><span style="font-style: italic;">Could Instant Messaging (XMPP) Power the Future of Online Communication?</span></a>. Despite his apparent bemusement with the "the rise of XMPP (called Jabber in IM) for powering communication services hosted in the cloud" this really shouldn't be much of a surprise. In one of my favorite books of all time, <a href="http://www.oreilly.com/catalog/peertopeer/">Peer-to-Peer</a>, <a href="http://www.xmpp.org/xsf/people/jer.shtml">Jeremie Miller, inventor of Jabber</a>, explained this to the world in 2001. Jabber was envisioned from its beginnings in 1998 to not just handle person-to-person conversations, but also person-to-application and application-to-application conversations.<br /><br />I also recently read about using <a href="http://www.linuxdevices.com/news/NS9957120145.html">Jabber with my OLPC XO-1</a>, which opened up a whole new world. All of a sudden, instead of just finding other XO's on my LAN, my screen was full of people to chat and collaborate with. Over Jabber, not just instant messages are shared from the XO, but every application can be shared and becomes a gathering place. You can take a look at <a href="http://wiki.laptop.org/go/Shared_Sugar_Activities">how Jabber is used with the XO on the OLPC wiki</a>.<br /><br />Marshall goes on in his analysis to bring us back down to Earth regarding Jabber/XMPP relative to HTTP and he is right. HTTP rules today and I don't think there is any one killer reason to change that. If nothing else, however, Jabber/XMPP has a really nice specification on <a href="http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol#_note-3">how to use HTTP more efficiently to get notifications without polling</a>. Jabber/XMPP specifies this for the purpose of overcoming firewalls, but the result is that Jabber/XMPP can really be seen as simply some really cool stuff to do on top of HTTP.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-36540056000301454362008-01-23T11:03:00.002-06:002008-03-02T22:23:53.168-06:00Where is the Jazelle-RCT open source solution?Ugh. There is too much noise around open source virtual machines, including <a href="http://sourceforge.net/search/?type_of_search=soft&type_of_search=soft&words=java+vm">almost 16,000 projects on SourceForge</a>.<br /><br />The <a href="https://phoneme.dev.java.net/">PhoneME</a>, Android, or other <a href="http://www.linuxdevices.com/news/NS6857451192.html">open source JavaVM</a> projects must be looking to support ARM's Jazelle-RCT technology, right? I know there are some interesting commercial efforts, but if anyone is aware of an on-going open source project, I'd want to hear about it.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com3tag:blogger.com,1999:blog-8978423996746351775.post-53255819697705257482008-01-10T20:37:00.000-06:002008-01-24T23:34:13.812-06:00Bug Labs device was cooler than I expected<span class="trackbacks-link">At CES this week, I managed to stop by the Bug Labs demo, which ended up <a href="http://www.bugblogger.com/2008/01/best-of-ces-fin.html">winning an award for the best emerging technology</a>. I've been hearing about this device for months from co-workers and I'd explored the website, but seeing the live demo was more impressive than I expected.<br /><br />The little Lego-like embedded electronics development kit was quite flexible. As a challenge, in 8 minutes, they created a new application of a motion-triggered camera that would upload photos to a server. I was quite impressed.<br /><br />They use Eclipse to create an easy-to-use development front-end and PhoneME to run Java applications on the device. The device is running both X11 with Athena Widgets (AWT) and Qt/Embedded. This isn't quite as nice as the GTK stuff running on the N810, but it shouldn't take them any time to get there. The demonstrator had no trouble throwing together a new program in Java and sending it down to the device over USB, despite being harassed by one of his co-workers about the missing award they had just won.<br /><br />Apparently, someone decided to take their newly won prize. Hopefully, it was just on loan to one of the many television interviewers showering attention down on them.<br /><br /></span>Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-84761611874576103162007-12-13T09:09:00.000-06:002007-12-13T10:00:58.964-06:00Criticism of the OLPC XO-1 conceptIn <a href="http://dvorak.org/blog">John C. Dvorak</a>'s PC Magazine article "<a href="http://www.pcmag.com/article2/0,2704,2227850,00.asp">One Laptop per Child Doesn't Change the World</a>", he writes:<br /><blockquote>Does anyone but me see the OLPC XO-1 as an insulting "let them eat cake" sort of message to the world's poor?</blockquote>I like Dvorak and I often follow him on the <a href="http://twit.tv/twit">TWiT podcast</a> and <a href="http://www.crankygeeks.com/">CrankyGeeks</a> on TiVo, but he polarizes issues in ways that sometimes aren't that useful, except for bringing attention to an issue. Hopefully the audience is paying enough attention to think for themselves, but that has proven repeatedly not to be the case.<br /><br />In my view, if some service like "<a href="http://www.mturk.com/mturk/welcome">Mechanical Turk</a>" pays living wages for these folks, then it was worth it. On average and over a lifetime, each of these students should be able to earn more than the cost/value of the computer.<br /><br />Yes, the literacy rates and language barriers are an issue in making the computers useful at all. There would be, however, huge motivation to focus on literacy and additional languages, if some people are able to earn money with these machines.<br /><br />So, Dvorak has given all of us XO enthusiasts a mission: enable students to make money using these machines by providing services like Mechanical Turk in the languages of the students and figure out how they can collect the resulting goods.<br /><br />OK, I admit, this isn't a perfect idea. I've heard concerns that these laptops will be stolen if a market emerges for them and having them be a source of money would certainly make them valuable. This is also, to a degree, advocating some sort of child labor, which is a reality, despite the many objections we have in the developed world.<br /><br />Better ideas?Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com3tag:blogger.com,1999:blog-8978423996746351775.post-25397220438111600092007-12-01T08:34:00.001-06:002007-12-01T08:34:56.644-06:00Blogger Beta Ships OpenIDGoogle has added new login options to Blogger, including OpenID. This is an important additional baby step towards a web with a single sign-on that allows you to have better control of your identity information.<br/><br/><a href='http://www.readwriteweb.com/archives/openid_google_blogger_beta.php'>read more</a> | <a href='http://digg.com/tech_news/Blogger_Beta_Ships_OpenID'>digg story</a>Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-85808531067040136142007-11-20T17:13:00.001-06:002007-11-20T17:13:18.543-06:00N810 demo video from NokiaNothing too special about the web page, but the video gives lots of good angles and pictures of accessories. Sure would be nice if they used that GPS and a database to help find some WiFi hotspots. Too bad it doesn't have WiMax or EV-DO.<br/><br/><a href='http://www.nseries.com/index.html?l=products,n810,demo'>read more</a> | <a href='http://digg.com/gadgets/N810_demo_video_from_Nokia'>digg story</a>Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-70009863512915395022007-10-01T13:03:00.000-05:002007-11-20T18:23:02.076-06:00Accessibility is the killer mashup/webos applicationAfter watching <a href="http://www.crockford.com/">Douglas Crockford (of Yahoo and JavaScript fame)</a> <a href="http://video.google.com/videoplay?docid=452089494323007214">plea for Google, Microsoft, and others to participate in a mashup summit</a> and reading <a href="http://blog.programmableweb.com/2007/10/01/douglas-crockford-on-the-mashup-problem/">some of the feedback</a> <a href="http://ajaxian.com/archives/gears-and-the-mashup-problem">around the web</a>, I realized the critical application use-case is still missing.<br /><br />Someone in the Q&A brought up a good example of a <a href="http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29">mashup</a> implemented today in an undesirable method due to security reasons: Facebook accessing your GMail/MSN/... contacts to request more members. Contact sharing between applications is an excellent use-case for mashups, but I don't see it as a driving application. Certainly it gets to the heart of Crockford's talk: security is an excellent application for the <a href="http://gears.google.com/">Google Gears</a> <a href="http://code.google.com/apis/gears/api_workerpool.html">WorkerPools</a>. If you are like me, you'll still be left thinking about how everyday web consumers will be motivated to download Gears, instead of walking down the questionable path of simply giving applications like Facebook access to all of your potentially private information.<br /><span style=""><blockquote> Mashups are the most interesting innovation in software development in decades. <span id="wholedescr" class="visible">Unfortunately, the browser's security model did not anticipate this development, so mashups are not safe if there is any confidential information in the page. Since virtually every page has at least some confidential information in it, this is a big problem. Google Gears may lead to the solution.</span></blockquote></span>Security is important and is critical to the growth of new mashup applications and I'll be happy if that alone brings us worker threads and off-line support, but I think the killer mashup is the one that makes all of this great data exposed through APIs and structured web pages and makes it accessible in new ways.<br /><br /><a href="http://diveintomark.org/">Mark</a>, of <a href="http://diveintoaccessibility.org/">diveintoaccessibility</a> and <a href="http://diveintogreasemonkey.org/">diveintogreasemonkey</a> fame, who I admire for his vision of accessibility wrote in his blog post "<a href="http://diveintomark.org/archives/2007/10/04/if-wishes-were-iphones">if wishes were iPhones</a>":<br /><blockquote><strong>I don’t understand this continuing obsession with buying things that you need to break before they do what you want.</strong></blockquote>And with this thought I am reminded that the killer mashup/webos application is the one that takes all of those immensely useful web services out there and makes them measurably usable. And by usable, I mean giving the user control.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-1935158489842788532007-09-10T01:04:00.000-05:002007-10-15T18:05:21.985-05:00Mobile 2.0 ConferenceI'm thinking about trying to attend the <a href="http://www.mobile2event.com/">Mobile 2.0 Conference</a> on October 15th in San Francisco. Anyone have comments about this event? If there were a handful of people interested in chatting about how to enable creation of scalable web services generated from mobile/embedded devices, I'd make a point of going.<!-- ckey="3AE8E6C0" -->Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-64437802711917033422007-09-06T09:17:00.000-05:002007-11-20T18:42:45.235-06:00No server, no satisfactionThere's just no satisfaction for the casual home user who wants to collaborate with friends. Even when dealing with a problem that has been solved many times over, it is really difficult without a server of your own and a fair amount of programming. The problem I'm talking about is planning events on a group calendar.<br /><br />There is a group of somewhat over 25 people near where I live that frequently gets together to play outdoor roller hockey. We play in a parking lot in one of the area parks or offices. We have a mailing list on Yahoo, but most people are just copied on a repeatedly used e-mail thread. On that thread, the subject line is typically changed to match the proposed day and time. Every week, we all bombard each other with e-mails to make sure that enough of us are coming out to play. This has actually worked fairly well, but there have been some significant exceptions.<br /><br />Sometimes we don't meet our threshold of 6 players and additional e-mails go out to entice people to sign-up to play. Calls are made. Threats are discussed. People who previously agreed to go attend might decline since they don't want to risk trying to play hockey with only 3 people. Chaos ensues.<br /><br />One of they guys who used to come out regularly created a really simple sign-up page on a website. The site accepted a name, e-mail address, and phone number to sign-up for a given game. The name is listed beside the entry for that game. The e-mail was used to send out the "game-on" or "need-more-players" notification a few hours before the prospective game. Phone numbers were included to speed up the communication.<br /><br />The application worked quite well and was simple-minded. Entering the same sign-up information twice would result in being removed from the list. The phone number and e-mail information had to match, providing a tiny amount of security from folks simply removing everyone from the list. No verification of the entry was done, but you can imagine a simple verification code being provided via SMS to the mobile phone number if we ever started to have problems with that. Life was good.<br /><br />He stopped playing and his site stopped working. We were back to using e-mail. A few folks reminisced about the good 'ol days when we had our own web server. I own the domain name, so I decided to bring back the sign-up sheet. Where should I host it?<br /><br />I don't really like the idea of pointing people to my home computer, so that's not my first choice. I don't really like the idea of paying for a full-featured (LAMP and/or Ruby enabled, ie. scripting and a database) hosting service just for this hobby. This is just calendar data! Why should I need a web server to do something that Yahoo and Google provide for free?<br /><br />Our mailing list is on Yahoo, so I looked first at <a href="http://help.yahoo.com/help/uk/cal/invites/invites-01.html">their group calendar</a>. It was a disastrously complex to use and didn't provide any of the custom features we had with the much simpler web app. Similar problems were had with Google's calendar and Evite. The most fundamental issue with all of these calendaring solutions: they required account creation and login to utilize.<br /><br />I tried to see if I could do something with static hosting, but it seems even <a href="http://www.amazon.com/Simple-Queue-Service-home-page/b?ie=UTF8&node=13584001">Amazon's simple queuing service</a> doesn't seem to work without having a dynamic host. At this point I gave up, but I'll get back to this application yet.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-13294651077701587792007-09-03T08:39:00.000-05:002007-09-03T10:58:51.101-05:00Still don't get the whole WebOS thing?I've gotten a bit smarter about explaining why there will be a sort of emerging web operating system to the people who inquire. For example, I've started calling it a "web services kit", instead of an operating system. Today's tech savvy minds can accept the idea of yet-another-SDK, whereas the idea of a web operating system is either tainted by the webtops or seen as inconceivable and unnecessary delusions to compete with Windows, Linux, or OSX.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.programmableweb.com/scorecard"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_y7jVc0o1My8/RtwYpHSOQiI/AAAAAAAAAAY/vzLpdjEjRW0/s400/pw_api_scorecard.PNG" alt="" id="BLOGGER_PHOTO_ID_5105983172140483106" border="0" /></a>What I haven't leveraged enough is the great <a href="http://www.programmableweb.com/scorecard">summary of web service APIs provided by ProgrammableWeb</a>. From their simple scorecard, you can get a quick overview of the categories of popular services and some of the key players. Ask yourself what sustainable advantage do any of these players have within their service space. Don't get fooled, it isn't an easy question. Keep in mind that standard service definitions are coming into existence for most of these services, such as <a href="http://www.xmpp.org/">XMPP</a> for chatting and <a href="http://openid.net/">OpenID</a> for identity. Take up the exercise to look across these service APIs, look for winners, and look for emerging standards.<br /><br />Comfortable? Now, realize that it is only a matter of time before there are standards-based implementations of all of these services. Sure, it might take a while, but it'll happen.<br /><br />If you are quick, you might be sighing and thinking to yourself, "what about the data?". I'm glad you asked, because that is really the point. These services are all about controlling access to data and looking for ways to monetize it. You might stumble over the idea that on-line office applications involve an incredibly complex pile-o-code, but then you'll remember that you already have 2-3 other viable choices of office applications to which you already had access. Over the long-term, it is all about the data.<br /><br />Still don't feel like you're any closer to accepting the idea of a web operating system? That's okay, as long as you recognize the benefit of something that provides you with the capability to control and monetize access to data and some sort of well-understood integration layer back into your application. You'll come around when you start thinking about who you want to <span style="font-style: italic;">own </span>your data.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-77304388525872274612007-08-25T07:05:00.000-05:002007-08-25T07:19:58.678-05:00BarCampHoustonI'm heading up to <a href="http://www.barcamp.org/BarCampHouston">BarCampHouston</a> today. I don't know what to expect and I haven't had any free time whatsoever, so I won't put on much of a demo or presentation. I'll be happy to share any info on <a href="http://blog.hangerhead.com/2007/02/peer-to-peer-collaboration-tools.html">P2P collaboration</a> and my <a href="http://blog.hangerhead.com/2007/07/boot-your-n800-maemo-sdk-today-with.html">Maemo SDK EC2 image</a>, if anyone is interested. I'm also looking forward to simply discussing toolkits for building web services (<a href="http://blog.hangerhead.com/search/label/web%20operating%20system">web operating systems</a>).<br /><br />By the way, I've moved my EC2 script over to <a href="http://sdk-ami.garage.maemo.org">http://sdk-ami.garage.maemo.org</a>. <span class="on" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"></span>Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-51607674520156621832007-08-18T01:01:00.000-05:002007-08-18T01:28:03.814-05:00Boot your N800 Maemo SDK today with Amazon's EC2I really appreciate that <a href="http://www.maemo.org.br/platform/download-maemo-vm.html">someone has created VMWare and QEMU images for running the Maemo SDK</a>. Unfortunately, my machines, both Mac and PC, are typically too busy with other stuff to allow me to quickly fire-up a virtual machine image that will chew up all my computing resources. Instead, booting up a machine from Amazon for about $0.15/hour or so is affordable enough for my <a href="http://web.nseries.com/products/n800/#l=products,n800">N800</a> development. No more downloading a 1.5+GB image; EC2 users can instead just share an image and a boot script and be up-and-running at a known-good starting point.<br /><br />Of course, the first step was to <a href="http://aws.amazon.com/">get an EC2 (and S3) account</a>. I waited almost a month for my EC2 account. At some point I'll figure some way to let other people just rent a machine from me to make it easy, but that'll require a bit of thought and management. For now, head on over to Amazon, request an account, and they'll get to you eventually. There isn't any monthly fee or hidden costs; you just pay for the time, bandwidth, and storage you use. As long as you copy your work off somewhere else, such as by using Subversion hosted by <a href="http://code.google.com/">code.google.com</a>, you can shutdown without having any recurring fees.<br /><br />Once you have an EC2 and S3 account, you'll want to <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351&categoryID=88">download the EC2 command-line tools</a> and <a href="http://aws-portal.amazon.com/gp/aws/developer/account/index.html/104-4292942-5967124?ie=UTF8&action=access-key">your access identifiers</a>.<br /><br />The next step was to choose the Linux image I wanted to use as my starting point. Personally, I'm a Gentoo fan because I think Linux has an excessive number of binary-compatible dependencies on the C library and Gentoo solves that by recompiling every new application, instead of needing to update your C library to match the binary-compatibility requirements of all your applications. Of course, that makes application installation slow and Maemo itself uses the Debian package model, so Debian or Ubuntu make the most sense. However, Amazon supplies some nice reference images on Fedora Core 4 that might simplify my life around issues like ssh login security when the root account password can't be secret. Nothing is easy, so I <a href="http://developer.amazonwebservices.com/connect/thread.jspa?threadID=12872&tstart=45">found an Ubuntu image</a> that has reasonable documentation on how it was created such that someone could redo this all with a better supported AMI in the future.<br /><br />At this point, the issues started to pile up and I decided my best hope was to document my steps in scripts so that I can reproduce them with a better starting image and make corrections that people point out to me. I decided to the Google Subversion server I mentioned earlier to <a href="http://code.google.com/p/maemo-sdk-image/">host my script at http://code.google.com/p/maemo-sdk-image/</a>.<br /><br />I used a Mac to run my script, but I plan to eventually make it run on the N800 itself or on a Windows PC. Right now, the script uses bash, which isn't natively on either the N800 or Windows. Also, the Unix-style version of the EC2 command-line tools also utilizes bash. I think the solution for both is likely to install bash.<br /><br />The access identifier information ended up placed in a subdirectory called 'secrets' under where I ran the script. These secrets end up getting copied temporarily to the EC2 images for the purpose of bundling them up. I exclude that directory from the bundle.<br /><br />I say 'images', because I end up working with four different EC2 images in the script. The first one is the base Fedora Core image that Amazon makes public. The second one is a bare-bones Ubuntu Feisty image that can be boot on EC2. The third one is patched to be self-bundling. The fourth one actually contains the Maemo SDK. The third and fourth could easily be combined, but I am still inching along.<br /><br />In theory, you can run all of the steps using 3 separate calls to the script:<br /><ol><li>./build_maemo_api build-feisty</li><li>./build_maemo_api patch-feisty</li><li>./build_maemo_api install-maemo</li></ol>I think the first two should work reasonably well to create a self-bundling Ubuntu image, but I haven't run them exactly like that to test them out yet.<br /><br />The third step certainly won't work. One issue is that the Nokia binaries require you to agree to a license, so you'll need to do that part manually. This also only gets you to version 3.1 of the SDK, so you'll need to update that as well. There are also several steps missing before the image is really usable, such as setting up the X server and VNC server to allow you to view the emulated N800 screen remotely.<br /><br />Please feel free to post your comments here or on the wiki on how to improve the script. I won't hesitate to utilize your inputs on the script hosted on the Subversion server.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0tag:blogger.com,1999:blog-8978423996746351775.post-26720005011380749162007-07-27T12:50:00.000-05:002007-07-28T22:49:57.818-05:00Working on an Amazon EC2 AMI for the Maemo SDK (scratchbox on Ubuntu)I'll get into why I want to create this Amazon EC2 AMI thing later, but I thought I'd get information out there on a problem I'm having. Tve did a nice write-up on RightScale on <a href="http://info.rightscale.com/2007/2/14/bundling-up-an-ubuntu-ec2-instance">bundling-up an ubuntu EC2 instance</a>. This is a really helpful write-up, but I get a shell script error and a hang when I try to bundle my Ubuntu image.<br /><br /><blockquote>root@domU-...:~# <i>ec2-bundle-vol -d /mnt -k ~root/pk-....pem -c ~root/cert-....pem -u ...</i><br />Copying / into the image file /mnt/image...<br />Excluding:<br /> /sys<br /> /var/lock<br /> /dev/shm<br /> /proc<br /> /dev/pts<br /> /proc/sys/fs/binfmt_misc<br /> /var/run<br /> /dev<br /> /dev<br /> /media<br /> /mnt<br /> /proc<br /> /sys<br /> /mnt/image<br /> /mnt/img-mnt<br />1+0 records in<br />1+0 records out<br />1048576 bytes (1.0 MB) copied, 0.003492 seconds, 300 MB/s<br />mke2fs 1.39 (29-May-2006)<br />warning: 256 blocks unused.<br /><br />Bundling image file...<br />sh: Syntax error: Bad substitution<br /></blockquote>The script keeps running. I don't know Ruby well, but the script seems to be stuck in a shell call to 'openssl'. This seems to occur in bundle.rb line 51. It looks like the 'tar' call on line 57 that is meant to feed the pipe being read by the running 'openssl' died, but I don't see where the "Bad substitution" might be.<br /><br />Tve didn't have a place to make a comment on the blog entry. Time to debug...<br /><br />Quick update on when I canceled the process (need to think if this confirms or denies what I was thinking):<br /><blockquote>sh: Syntax error: Bad substitution<br />sh: cannot open /tmp/bundleimage-pipe1: Interrupted system call <br />error executing tar -chS -C /mnt image | tee /tmp/bundleimage-pipe1 |gzip | openssl enc -e -aes-128-cbc -K ... -iv ... > /mnt/image.tar.gz.enc; for i in ${PIPESTATUS[@]}; do [ $i == 0 ] || exit $i; done, exit status code 2<br />ec2-bundle-vol failed</blockquote>...need to take a break and get back to my real work.<br /><br />Update #2: The problem turned out to be assumption in Amazon's Ruby script that 'bash' would be the shell executed by default. The answer was within <a href="http://developer.amazonwebservices.com/connect/thread.jspa?threadID=12872&tstart=45">a script found on the Amazon developer's forum</a>. I've created my first image and I'll be hosting my script using Google's open source code repository when it is done at <a href="http://code.google.com/p/maemo-sdk-image/">http://code.google.com/p/maemo-sdk-image/</a>.Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com3tag:blogger.com,1999:blog-8978423996746351775.post-22439005816866486052007-04-27T02:07:00.000-05:002007-04-27T02:20:43.377-05:00Judgment vs. Jealousy: Jadon on TwitterAfter hearing so much talk about Twitter on the <a href="http://www.readwriteweb.com/archives/openyou_the_limits_of_privacy.php">blogs</a>, <a href="http://www.twit.tv/node/4946">podcasts</a>, and <a href="http://www.rocketboom.com/stories/rb_07_mar_29">vlogs</a> I read, hear, and watch, I decided I had to know what the fuss was about: <a href="http://twitter.com/Jadon">http://twitter.com/Jadon</a>. How do I manage to find time for this sort of waste?Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com1tag:blogger.com,1999:blog-8978423996746351775.post-29342518425507794132007-04-19T01:01:00.000-05:002007-07-27T10:04:27.755-05:00Google AJAX Feed APII read Udi Dahan's post on how <a href="http://www.ddj.com/blog/webservicesblog/archives/2007/04/googles_ajax_ap.html">Google's Ajax API Simplifies Safe Mashups</a>. It didn't take 5 minutes to take <a href="http://code.google.com/apis/ajaxfeeds/documentation/">Google's "Hello World" AJAX Feed API example</a> and embed into <a href="http://www.hangerhead.com/ajaxfeedapi.html">a web page of my own</a>. This is fun stuff allowing me to finally be able to manipulate feeds across sites without injecting any server-side code.<br /><br />What should be noted is that this is relying on Google services and must follow their terms. It means that they monitor all the content this API brings into my page while other search engines cannot. (Crawlers do not typically execute the JavaScript, so that's why they wouldn't see the results of the API calls.)<br /><br />Certainly I'm not the only one disturbed by this, right? Where is the counter-movement to give the every-blogger ownership of his own services in just as simple a manner? Is there a better answer than <a href="http://aws.amazon.com/">Amazon's web services</a>? (For those that don't know, Amazon provides hosting solutions that are API-driven, highly customizable, scalable, and billed-by-use.)<br /><br />Google's solution is so simply by comparison that I am struggling to remember why this even matters to me. Something in my gut just keeps telling me it is wrong to rely on services where I can't understand the business model.<br /><br />Also distracting from this actually-quite-cool service from Google is the fact that <a href="http://pipes.yahoo.com/">Yahoo! Pipes</a> <a href="http://blogfresh.blogspot.com/2007/03/pipes-json-and-code-for-your-website.html">already offered this feature</a> and many more. Additionally, I believe that Yahoo! doesn't require you to register for an API key against your URL, though there is a need to register to create a pipe (feed) if you aren't using one someone else already created.<br /><br />P.S. If you are listening, sorry I'm not keeping up and haven't even uploaded the rest of my notes on my P2P collaboration presentation. I have lot's of activity at work these days keeping my creative energy going without having to resort to my blog rantings. :-) But, this was such a quick post.<br /><br /><br /><p class="poweredbyperformancing">Powered by <a href="http://scribefire.com/">ScribeFire</a>.</p><br /><br />Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/google" rel="tag">google</a>, <a class="performancingtags" href="http://technorati.com/tag/yahoo" rel="tag">yahoo</a>, <a class="performancingtags" href="http://technorati.com/tag/ajax" rel="tag">ajax</a>, <a class="performancingtags" href="http://technorati.com/tag/amazon" rel="tag">amazon</a>Anonymoushttp://www.blogger.com/profile/08406407439869229968noreply@blogger.com0