Anarchogeek - Hometag:anarchogeek.com,2008:mephisto/HomeMephisto2008-05-02T01:37:14Zrabbletag:anarchogeek.com,2008-05-02:/article/2008/5/2/speaking-about-fire-eagle2008-05-02T01:00:00Z2008-05-02T01:00:00ZSpeaking about Fire Eagle<p>Last month I spoke about <a href='http://fireeagle.yahoo.com'>Yahoo! Fire Eagle</a> at the <a href='http://ecommmedia.com/'>Emerging Communications Conference</a>. Lee did a great job putting together the conference, and had everything recorded. I feel i did an ok job explaining Fire Eagle, but perhaps i had too much coffee to make up for being on the tail end of a dozen straight days of conferences.</p>
<p>So if you’re interested in Fire Eagle as it relates to the mobile and telephony world, this is a good talk. The slides <a href='http://www.slideshare.net/rabble/liberating-location-fire-eagle-ecomm-2008/'>are online at slideshare.net</a>.</p>
<embed type='application/x-shockwave-flash' src='http://video.google.com/googleplayer.swf?docid=3606496010130914256&hl=en' id='VideoPlayback' flashvars='' style='width:350px;height:276px'> </embed>
<p>It’s humbling to see a video of yourself speaking. Public speaking is really hard. I’ve been trying to work on my presentations, and i’m getting better over time.</p>
<p>Next week i’m going to be speaking at xtech in dublin in <a href='http://2008.xtech.org/public/schedule/detail/646'>a longer talk about Fire Eagle</a>. I’ll get in to the actual api’s and bit about building apps with Fire Eagle. In July i’ll be co-speaking with <a href='http://laughingmeme.org'>Kellan</a> about using jabber for web services in <a href='http://en.oreilly.com/oscon2008/public/schedule/detail/4359'>Beyond <span class='caps'>REST</span>? Building Data Services with <span class='caps'>XMPP</span> PubSub</a> at <a href='http://en.oreilly.com/oscon2008/public/content/home'><span class='caps'>OSCON 2008</span></a>. In between i’ll be at <a href='http://www.caboo.se/articles/2008/1/30/caboose-conf-2008'>Google IO</a> and <a href='en.oreilly.com/rails2008/'>Rails Conf</a> / <a href='http://www.caboo.se/articles/2008/1/30/caboose-conf-2008'>Caboose Conf</a>, but thankfully i won’t be speaking, unless i get inspired to do a lightning talk.</p>rabbletag:anarchogeek.com,2008-04-30:/article/2008/4/30/funny-olpc-story-how-do-you-delete-files2008-04-30T20:15:00Z2008-04-30T20:15:00ZFunny OLPC Story - How do you delete files?<p>So today i sat in on a meeting with some folks in the Uruguayan government who were trying to get ebook type educational material to laptops of the kids who have them now in uruguay. There are about 200,000 laptops being distributed, and it would cost too much to print books with the material, so they figured these laptop things might be a good way of doing it. In the discussion they told me this little story about tech support and the <span class='caps'>OLPC</span> or Project Ceibal as it’s called in Uruguay.</p>
<p>It seems that during the first trial in the Florida Department of Uruguay they were having a problem. The kids it seems were downloading too much stuff from the internet. The laptops have a 1 gb flash drive, so it’s pretty easy to see how it could fill up. So the teachers told the ceibal folks that this was a problem, the drives were filling up and nobody knows how to delete files.</p>
<p>Well this is a problem, so there were meetings, and more meetings, how to delete files, they called up the University of Uruguay’s Engineering Faculty and investigated further. After four months of back and forth they had the answer and somebody traveled up to Florida (the uruguayan florida) with the answers and a training to teach the teachers how to delete files. It was after all what they asked for.</p>
<p>When they got there the teachers said, “oh, that! The kids figured out how to delete the files and manage them months ago.” Which is of course the whole point of <span class='caps'>OLPC</span>, the kids can use the tech, it’s open, hackable, and explorable.</p>
<p>Another story is a friend of mine was visiting his cousin and the cousin was excited because he just got one of the laptops. But he said there was a problem, some of the interface was in english. My friend, being a programer, sat down and tried to figure it out. It seems that was some problem with the packages, he’s not exactly sure what’s wrong. But at one point “Save” was translated as “Salvar” instead of “Guardar” Salvar does mean save, but in the kind of way that Jesus Saves. Not the kind of thing you’d do with files, which is Guardar which might literally be translated something more like ‘to put away’ than ‘save’. I asked the <span class='caps'>OLPC</span> folks about it on irc, and they said that perhaps the build being shipped out in uruguay is out of date with what they currently have released. Clearly they need a good logistics person / team to do release management and handling lots of branched distributions. Not an easy task.</p>
<p>On the whole people seem excited about <span class='caps'>OLPC</span>. It would be good if the Uruguayan government could do something about class size, 1 teacher for 40 students is the <span class='caps'>REAL</span> education problem, but the laptops help.</p>rabbletag:anarchogeek.com,2008-04-25:/article/2008/4/25/two-conversations-about-tests-and-software-development2008-04-25T19:58:00Z2008-04-25T19:58:00ZTwo conversations about tests and software development<p>I’ve had the privilege of working with many developers over the years on a diversity of projects. I like tests, i think they make the software development process more reliable and help keep code from being unmaintainable disasters. So i find it interesting to see why inspires people to write tests, and why they give up on them.</p>
<p>Recently i had a very similar conversation with two very different developers, one i’ll call TestFail and the other i’ll call TestHeavy.</p>
<blockquote><b>Rabble:</b> “I see there are tests on this project, but they don’t seem to pass anymore.”<br />
<b>TestFail:</b> “Yes, I was writing tests but then things got busy and I couldn’t keep them up. The tests feel out of sync with the application 6 months ago. I was the only developer on the project and i just couldn’t keep up the tests and getting releases out the door.”</blockquote>
<p>Then i had another conversation with a different developer on the same subject.</p>
<blockquote><b>Rabble:</b> “I see there are a lot of tests for this project.”<br />
<b>TestHeavy:</b> “Yes. The thing is when a project gets really pressured for time it’s the tests which make it possible to add features and keep moving forward. Normally I just develop on my own and don’t tend to work with other developers on projects. I found having tests means i can keep getting releases out the door.”</blockquote>
<p>In both cases i’m paraphrasing from memory, but the thing which struck me is that two smart developers used the same two reasons to come up with totally different conclusions around testing. The two principal points are, i’m working on my own, and there is heavy time pressure on releases.</p>
<p>The code bases in question, i’ll keep this all anonymous to respect privacy, are also really different. First off, the applications do totally different things, but it’s enough to say that they are both fairly complicated web applications built in rails.</p>
<p>TestFail’s application has 44075 lines of application code and 778 lines of tests. Over the last year the code base has grown by over %50. On the other hand, TestHeavy’s code base is 4014 lines of application code and 4802 lines of tests (technically specs as it uses rspec). TestHeavy’s code base is younger, but over the last 6 months it’s only added a couple hundred lines of new code. Many new features have been added, but the size of the application has stated more or less the same.</p>
<p>While i clearly prefer TestHeavy’s approach, what puzzles me is the path taken by TestFail. There are many interesting things to be learned by watching the techniques of an effective test driven developer, but that’s kind of an easy problem. Just watch what they do and document it.</p>
<p>Harder is to understand why somebody fails. When somebody starts writing tests but finds they aren’t a useful part of their software development practice. It could be considered the ‘falling off the wagon’ problem. Really to me it’s a question of why is testing not the path of least resistance. What needs to happen for a developer to internalize testing.</p>
<p>If tests are written, and they are relevant to the the functionality of the application, the code base stays smaller, faster, and is more maintainable. But telling people that it’s a good idea to write tests, even getting them started and using tests isn’t enough. Figuring how to help people continue is even more important. I suspect that a large part of the problem is that people partially start using tests, but they don’t ever get a development environment which is setup to encourage testing. It’s painful and difficult as opposed to making debugging easier and development faster.</p>
<p>Does anybody have experience with trying and failing to stick with testing. Why was it?</p>rabbletag:anarchogeek.com,2008-04-13:/article/2008/4/13/building-flex-3-flash-swc-libraries-on-mac-os-x-with-ant-and-flex-builder-32008-04-13T21:35:00Z2008-04-13T21:35:00ZBuilding flex 3 (flash) swc libraries on mac os x with ant and flex builder 3 <p>
I strongly believe in learning new languages and platforms. While i’m super happy with the <a href='http://ruby-lang.org'>ruby</a> / <a href='http://rubyonrails.org'>rails</a> / <a href='http://www.merbivore.com/'>merb</a> world, I know it has it’s limits. Most of the time when i look farther afield i think of hacking on lua, erlang, or smalltalk… But recently i had an app idea which struck me as something which really was a good fit for <a href='http://www.adobe.com/products/air/'>Air</a>. Adobe’s version of Flash to run desktop applications. Let me say at first I though Air was stupid, but over time i’ve come to realize that for some applications, it makes lots of sense. It’s similar to my thinking Flash was stupid until it <a href='http://anarchogeek.com/articles/2006/06/01/video-sites-indymedia-and-the-future-of-non-linear-television'>changed the world of online video</a>, and ActionScript was some stupid director derived toy language until I realized that these days it’s <span class='caps'>EMCA</span> script, basically the same damned thing as Javascript.
</p><p>
So i set out on the path of building an Air app. I asked my old buddy, <a href='http://dom.net'>Dom</a> and he said there were two <span class='caps'>IDE</span>’s for Flex development, <a href='http://www.adobe.com/products/flex/'>flex</a> is the updated version of flash which is more programming like vs Director scripting like. Flex draws on the java world’s traditions more than the scripting world, a sin may be forgivable if i am able to build this cool app i’ve thought up. For Flex there are two <span class='caps'>IDE</span>’s <a href='http://www.aptana.com/studio'>Apatna </a> (free and ‘professional’ edition) and Adobe’s own <a href='http://www.adobe.com/go/flex_trial'>Flex Builder 3</a> which is payware, but you get a 90 free trial to play with. The core is actually free, the <span class='caps'>SDK</span> to build flex apps and it comes with no <span class='caps'>IDE</span>, but just command line tools.
</p><p>
Flex draws on Java, there are tools like <a href='http://ant.apache.org/'>ant</a> which are used for all the build processes. Really the <span class='caps'>IDE</span>’s are both based on customized versions of eclipse. I’m not a fan of <span class='caps'>IDE</span>’s they seem to be needed when the development processes has gotten to complicated to fit inside your head and try and make everything point and click. Silliness. Flex can use html to render an interface, but it also has it’s own proprietary xml for laying out interface elements. It creates a dom like thing, which you can attach action script events to… Once you get over how different it is from real web development, at some level it’s the same damned thing. It’s worth stating, that you <a href='http://www.adobe.com/accessibility/index.html'><b>can</b></a> make flash as standards compliant, open, accessible, etc as html and unobtrusive javascript, but nobody seems to actually do it. Just yesterday i was noticing that yahoo map’s flash app wouldn’t let me paste in an address. Just like rails and django encourage you to do the right thing by default, flash defaults to clunky custom interface elements with broken accessibility.
</p><p>
Anyway, back to what i was saying. How to make this stuff work. There are it seems a lot of people with <a href='http://weblogs.macromedia.com/mxna/index.cfm?query=bySmartCategory&smartCategoryId=4&smartCategoryName=Flash&smartCategoryKey=D03946CE-BE57-8C18-7F13A6688166DAA8'>flash / flex development blogs</a> which is useful, but on the whole i’ve been very unimpressed with the documentation. There’s a <span class='caps'>HUGE</span> amount about how to do various UI widget things, and very little about toolsmithing, libraries, building out flex as a platform.
</p><p>
The thing is, i know how a rails app works, how php plays with apache and a load balancer. I don’t know how these flex apps come together. It found lots of tutorials on building toy apps, but not a one ever mentioned using a library you find online and incorporating it in to your application. I suspect it’s because the open source tradition is pretty week in the flash world. Just like in VB and Java, because you pay for the <span class='caps'>IDE</span>, it creates a culture of pay to play. It stands in stark contrast to the scripting world of Perl, <span class='caps'>PHP</span>, Python, and Ruby. In the scripting world we build libraries for our own uses, then release them for the community to use and help maintain. The only libraries i’ve found to be released so far in the flex world, come from Adobe employees themselves. Clearly it’s a failure of community that there is repository of open source libraries like <a href='http://search.cpan.org'><span class='caps'>CPAN</span></a>, <a href='http://www.gemtacular.com'>Ruby Gems</a>, <a href='http://pear.php.net/'><span class='caps'>PEAR</span></a>, and the <a href='http://pypi.python.org/pypi'>Python Package Index</a>. What the adobe does have is <a href='http://www.riaforge.org/'><span class='caps'>RIA</span> Forge</a>, as far as i can tell <a href='http://en.wikipedia.org/wiki/Rich_Internet_application'><span class='caps'>RIA</span></a> is some term Macrodobe made up. The thing is, <span class='caps'>RIA</span> forge is just a directory linking to libraries around the web, kind of like <a href='http://raa.ruby-lang.org/'><span class='caps'>RAA</span></a>. It has no build process, no clearly defined way in which libraries are included in your larger application. It solves the, how do i find what’s out there problem, but not really the how do i easily include it in to what i’m building.
</p><p>
Which brings me to the whole reason i wrote this blog post. I spent the last day or two trying to figure out what to do with libraries like these: <a href='http://code.google.com/p/as3corelib/'>as3corelib</a> and <a href='http://code.google.com/p/as3awss3lib/'>as3awss3lib</a>. They are the core action script 3 libraries for things like md5 hashing, json serialization, and general string, date, and time functionality. The second one is action script 3 library for working with amazon web services. Pretty useful and straight forward stuff. Don’t ask my why the as3corelib isn’t just included for use everywhere all the time, it’s an extreme case of <a href='http://www.python.org/about/'>batteries not included</a>. In ruby i’d run ‘sudo gem install aws-s3’ and i’d magically get the libraries i need. There are pretty straight forward alternatives php, python, and perl.
</p><p>
But these libraries aren’t distributed as binaries, packages, nor anything easily installable. What do you do get is a note saying: “There is currently no zip archive available. Please check the code out using subversion. ” That’s pretty much it. When you do check out the svn repo you get this:</p>
<pre>
bas1:~/code/as3awss3lib-read-only rabble$ tree .
.
`-- src
`-- com
`-- adobe
`-- webapis
`-- awss3
|-- AWSS3.as
|-- AWSS3Event.as
|-- Bucket.as
`-- S3Object.as
5 directories, 4 files</pre>
<p>
For files, in a nested set of directories which seems pretty straight forward. I want to be able to access these files from my app, so i simply did the obvious thing, from a scripting background, copied the whole com dir and children over to my lib directory in the app i’m building. Needless to say that didn’t work. I tried moving around the files to various other directories and that didn’t work either. I read everything I could find in the documentation and on various community created sites, dead ends. I tried asking in the #flex irc channel, nobody seemed to even understand my question. I tried pinging friends who work on flash stuff at Adobe as well, i got blank stares and silence.
</p><p>
What was going on here? Clearly somebody at Adobe had build this library, clearly it was intended to be used. No where did i find any documentation on how to build these things. The as3awss3lib had more files than as3awss3lib, but still there was no clear path as to what to do with it. Adobe has spent millions of dollars on documentation, help, blogs, building libraries, and trying to create a community around their platform, and I couldn’t figure out how to use a simple library to add to my code?
</p><p>
I think a lot of it comes down to assumptions. People in flash/flex are mostly focused on user facing eye candy and not on the underlying libraries. There isn’t a lot of discussion about the libraries or the work which goes in to them. Many apps are build and left running as they are. They aren’t things which are maintained and run over time with updates.
</p><p>
Eventually i tracked down what i needed to do. It is assumed that although the repositories are called libraries, the thing you want to do is compile them in to <a href='http://livedocs.adobe.com/flex/3/html/help.html?content=building_overview_5.html'>swc files</a>. You can’t just include other people’s code as libraries in to your own code tree, you’ve got to compile them. These compiled libraries and ‘assets’ (i guess you can have a ‘library’ of non-code things like images) are called swc files. These files need to be compiled and included in your application, before and separate from the build process for your own code. Again this is a little java like. Not necessarily wrong, but quite different from how most dynamic languages work. ActionScript <b>is</b> a dynamic language, somebody at Adobe clearly fell in love with java as the way enterprise professionals do things, and added some clunky extra steps to the process.
</p><p>
So now that we know that you can’t just include code in the lib directory of your app and have it be available to your app at run time. This is a big leap. It’s part of why i’ve found nobody who understood my questions. Once i made the leap then it was pretty easy to figure out that i needed to use ant to build the app i tried running ant and got errors. A command line utility and errors, that’s something i can debug! To run ant you simply cd to the build directory and type ant. </p>
<pre>
bas1:~/code/as3corelib-read-only/build rabble$ ant
Buildfile: build.xml
properties:
lib:
BUILD FAILED
/Users/rabble/code/as3corelib-read-only/build/build.xml:63:
Execute failed: java.io.IOException:
C:/Program Files/Adobe/Flex Builder 2 Plug-in/Flex SDK 2/bin/compc.exe: not found
Total time: 0 seconds
</pre>
<p>
This brings me to my other issue which i find so surreal about the Flash / Flex / Adobe world. It’s a windows world, everybody else is an after thought. It’s full of arcane paths, and executables have their own funny little suffixes so that the OS can figure out that they are executable. In the unix world, which includes linux, bsd, cygwin on windows, and of course mac os x, there are standard conventions for figuring out the paths to libraries, executables, etc…
</p><p>
Ant didn’t seem to like spaces in file names so i fixed that, but then there was still a big problem.
</p>
<pre>
## Change this:
# The location of the Flex 2 SDK on your sytem.
flex2sdk.bin.dir = C:/Program Files/Adobe/Flex Builder 2 Plug-in/Flex SDK 2/bin
flex2sdk.lib.dir = C:/Program Files/Adobe/Flex Builder 2 Plug-in/Flex SDK 2/frameworks/libs
## To this:
# The location of the Flex 2 SDK on your sytem.
flex2sdk.bin.dir = /Applications/Adobe_Flex_Builder_3/sdks/3.0.0/bin
flex2sdk.lib.dir = /Applications/Adobe_Flex_Builder_3/sdks/3.0.0/lib
</pre>
<p>
And and now ant gets a little farther down the path of working.
</p><p>
<pre>bas1:~/code/as3corelib-read-only/build rabble$ ant
Buildfile: build.xml
properties:
lib:
[exec] /Applications/Adobe_Flex_Builder_3/sdks/3.0.0/bin/compc.exe:
/Applications/Adobe_Flex_Builder_3/sdks/3.0.0/bin/compc.exe: cannot execute binary file
[exec] Result: 126
BUILD SUCCESSFUL
Total time: 0 seconds</pre>
</p><p>
Don’t let the <b><span class='caps'>BUILD SUCCESSFUL</span></b> message trick you! It didn’t actually work. This time it found compc.exe but as you’d expect, this is a mac, and on mac (and it’s unix cousins) exe files don’t run. At first i thought maybe Adobe was doing some craziness where they just decided to make all the executables on every platform .exe. Turns out that wasn’t the case, setting the executable flag didn’t help. What adobe does is include a separate file, sans .exe, which is the version of that app for normal operating systems. So it requires another change to the build.properties file.
</p>
<pre>
#change
asdoc.exe = ${flex2sdk.bin.dir}/asdoc.exe
compc.exe = ${flex2sdk.bin.dir}/compc.exe
mxmlc.exe = ${flex2sdk.bin.dir}/mxmlc.exe
#to
asdoc.exe = ${flex2sdk.bin.dir}/asdoc
compc.exe = ${flex2sdk.bin.dir}/compc
mxmlc.exe = ${flex2sdk.bin.dir}/mxmlc
</pre>
<p>
Again if it wasn’t assumed that these libraries would be built in a mono-platform windows only world, then the ant build.xml file would be written in such a way to look in the obvious places. Once everything is in place, then ant works!
</p><p>
<pre>bas1:~/code/as3corelib-read-only/build rabble$ ant
Buildfile: build.xml
</p><p>
properties:
</p><p>
lib:
[exec] Loading configuration file /Applications/Adobe_Flex_Builder_3/sdks/3.0.0/frameworks/flex-config.xml
[exec] /Users/rabble/code/as3corelib-read-only/bin/corelib.swc (79242 bytes)
</p><p>
BUILD SUCCESSFUL
Total time: 7 seconds</pre>
</p><p>
As far as i can tell, the ./libs/ directory is a good place to put these kinds of libraries. Presumably they get bundled in to your application you build an air / flash swf for distribution. I haven’t gotten that far yet. If i stay motivated and keep moving forward with this project, i’ll keep blogging my way through this mess. I am tempted by the shiny bobble of pretty and small cross platform <span class='caps'>GUI</span> desktop apps which lies on the other end of this journey.</p>
<p>
It appears that some libraries need to be compiled, like corelib, while others, the as3awss3lib can just be dropped in the src directory with their full path, ./com/adobe/webapis/awss3 What’s not clear is why it’s one way or another. </p>rabbletag:anarchogeek.com,2008-03-31:/article/2008/3/31/txtmob-gets-subpoenaed-data-retention-in-the-surveillance-era2008-03-31T13:54:00Z2008-03-31T13:54:00Ztxtmob gets subpoenaed - data retention in the surveillance era <p>Tad’s <a href='http://www.txtmob.com/'>TxtMob</a> has been subpoenaed by the new york police department demanding the records of everybody using the service during the <span class='caps'>RNC</span> protests in 2004. I got to know <a href='http://web.media.mit.edu/~tad/'>Tad</a> through our collaboration on various <a href='http://www.slideshare.net/rabble/phone-communities-and-activism-showcase/'>projects related to activism and emerging telephony</a>. I even poked around and did a little work on the <a href='http://sourceforge.net/projects/txtmob/'>txtmob code</a>.</p>
<p>All that is to say, i know a thing or two about the background, how txtmob works, and issues of data retention and privacy. Nothing i’m saying here is based on privileged information you can’t get from reading the source.</p>
<p>The reality is today, we live in a world where much more information about our daily lives are collected than ever before. There is this scary nightmare scenario, the corporations / state know where everybody is all the time, what they are doing, who they talk to, etc… Most of the time this information is being used for marketing sell more stuff. While it’s slimy, it’s not really evil. What happens when the state starts to use the same information to suppress free speech and dissent, things get much more serious.</p>
<p>This is nothing new, things evolve, but it’s a world we’ve been dealing with for a while. Years ago there was one phone company, they had records of everything, you couldn’t know if somebody accessed your records because the phone company wouldn’t tell you. With the internet, and now emerging voip / open source telephony, the ability to run your own telecommunications infrastructure has emerged.</p>
<p>The work of the <a href='http://anargeek.net/en.html'>anarchist geek community</a> for the last decade or so has been to build this autonomous infrastructure. <a href='http://indymedia.org'>Indymedia</a>’s been a big part of this task, to create a privacy enhanced participatory media network. Another has been <a href='http://www.blagblagblag.org/BLASTERISK/'>blasterisk</a> an asterisk based phone system with dial in numbers around world for activists to use to make phone calls and do international coordination. For email there is <a href='http://riseup.net/'>riseup</a> which provides email hosting and mailinglists for hundreds of thousands of activists. Social networking tools for collaboration and organizing, <a href='http://we.riseup.net'>crabgrass</a>. My own, <a href='http://protest.net'>protest.net</a>, a calendaring service, etc… While <a href='http://www.txtmob.com/'>txtmob</a> has been compared to twitter, txtmob predates twitter and was very explicitly talked about as a model to be copied / learned from in the creation of twitter.</p>
<p>What all of these services have in common is they are providing critical infrastructure to social movements and they take privacy seriously. <a href='http://dev.riseup.net/privacy/'>New tools</a> have been build to allow for making privacy easy.</p>
<p>Txtmob is included in those sites because it does things right. First when you delete your account, remove your phone number, etc… it really does remove it. No record left of your messages, your login, your phone number. Secondly txtmob does not use a short code, nor is there a legal agreement between txtmob and the carriers. Rather txtmob uses the path of least resistance to deliver messages, finding holes and cracks in the sms system to let messages pour through. Tracking txtmob messages is more like tracking p2p traffic than the american idol voting via sms. This not following the rules is probably why the <span class='caps'>NYPD</span> went to txtmob instead of the carriers. The data is many places, but txtmob is the easy place to get it, if it’s there.</p>
<p>The task of going to the carriers or the <span class='caps'>NSA</span> to get the txtmob data is much harder than getting it directly from the source. First it’s a <span class='caps'>HUGE</span> data mining task. It’d involve using something like hadoop or google’s map/reduce to load up the data, and then tracking down a few thousand sms’s out of a stream of trillions. Most of the time operators are lazy, it’s easy to get them to comply with even questionably legal orders for data, my <a href='http://yahoo.com'>employer</a> is a great example. Service providers tend to log <span class='caps'>MUCH</span> more data than they need, in the name of security, potential datamining, etc. If we don’t have that data, then we are both able to follow the law, and protect our users. <strong></p>
<p>(</strong>) It’s worth noting, that there are new EU rules / laws which require extensive data retention. It’s much worse than the situation in the US. So much for the EU being concerned about privacy.</p>rabbletag:anarchogeek.com,2008-03-15:/article/2008/3/15/fire-eagle-talk-at-the-emerging-communications-2008-conference2008-03-15T17:31:00Z2008-03-15T17:31:00ZFire Eagle talk at the Emerging Communications 2008 Conference<p>I gave a talk on Thursday to the <a href='http://ecommmedia.com/'>Emerging Communications conference</a>. It was my first chance to speak publicly about <a href='http://fireeagle.yahoo.net'>Fire Eagle</a>.</p>
<div id='__ss_307738' style='width:425px;text-align:left'><object height='285' width='360' style='margin:0px'><param name='movie' value='http://static.slideshare.net/swf/ssplayer2.swf?doc=liberating-location-fire-eagle-ecomm-2008-1205601753786466-2' /><param name='allowFullScreen' value='true' /><param name='allowScriptAccess' value='always' /><embed allowfullscreen='true' type='application/x-shockwave-flash' src='http://static.slideshare.net/swf/ssplayer2.swf?doc=liberating-location-fire-eagle-ecomm-2008-1205601753786466-2' allowscriptaccess='always' height='255' width='325'></embed></object><div style='font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;'><a href='http://www.slideshare.net/?src=embed'><img src='http://static.slideshare.net/swf/logo_embd.png' alt='SlideShare' style='border:0px none;margin-bottom:-5px' /></a> | <a href='http://www.slideshare.net/rabble/liberating-location-fire-eagle-ecomm-2008?src=embed' title='View \'Liberating Location - Fire Eagle - Ecomm 2008\' on SlideShare'>View</a></div></div>
The nice folks at the made a video of the original launch announcement at etech last week by <a href='http://www.plasticbag.org/'>Tom Coates</a>. Thankfully nobody made a video of my talk at ecomm. :)
<p><center><embed type='application/x-shockwave-flash' src='http://cosmos.bcst.yahoo.com/up/fop/embedflv/swf/fop_wrapper.swf?sv=0&id=6812854&autoStart=0&infoEnable=1&shareEnable=1&prepanelEnable=1&carouselEnable=0&postpanelEnable=1' height='285' width='360'></embed> </center></p>rabbletag:anarchogeek.com,2008-03-05:/article/2008/3/5/it-s-danger-day-fire-eagle-flies2008-03-05T17:41:00Z2008-03-05T17:41:00ZIt's Danger Day, Fire Eagle Flies<p>Today we let loose the developer’s launch of <a href='http://fireeagle.yahoo.net'>fire eagle</a> a location broker platform from yahoo brickhouse. It’s what i’ve been working on for the last 6 months and is the first publicly facing rails app to launch at Yahoo!</p>
<p>I’m really excited by Fire Eagle. It’s a system which lets you collect your location from any number of sources, such as your cellphone, and then provide that back out to other applications. Fire Eagle then lets you fuzz your location and control who is using it. Share the city you’re in with dopplr, the neighborhood with facebook, but let the taxi locator see your exact location.</p>
<p>I’m proud of the work i’ve done fire eagle and to have worked with a great team, including <a href='http://plasticbag.org'>Tom</a>, <a href='http://mojodna.net'>Seth</a>, Jeannie, Skylar, <a href='http://iconocla.st/'>Schuyler</a>, <a href='http://shamurai.com'>Ayman</a>, Kevin, <a href='http://unicornflower.livejournal.com/'>Marc</a>, <a href='http://www.myelin.co.nz/post/'>Phil</a>, <a href='http://www.salimismail.com/'>Salim</a>, <a href='http://infolab.stanford.edu/~mor'>Mor</a>, and Sam.</p>
<p>We’ve got an irc channel, <a href='irc://irc.freenode.net/fireeagle'>#fireeagle on irc.freenode.net</a>, <a href='http://fireeagle.pbwiki.org/'>wiki</a>, <a href='http://twitter.com/dangerday'>twitter bot</a>, and <a href='http://new.groups.yahoo.com/fireeagle'>mailinglist</a>. Come join us and play.</p>
<p>Launching a ruby on rails app at yahoo has been an incredible experience. We’ve had to figure out how to marry a stable mature platform with the agile, test driven, <span class='caps'>DRY</span> model of development which Rails has popularized. I’m particularly excited that we were able to adopt <a href='http://oauth.net/'>oauth</a> and open standards like <a href='http://www.georss.org/'>georss</a> and <a href='http://wiki.geojson.org/Main_Page'>geojson</a>.</p>rabbletag:anarchogeek.com,2008-02-22:/article/2008/2/22/ruby-debug-rdebug-documentation2008-02-22T15:40:00Z2008-02-22T15:40:00ZRuby-Debug (rdebug) Documentation!<p>I’ve been a big fan of ruby-debug since it’s first release. All the fun of the console’s breakpointer, explore and code at any point in your code, and also be able to step through the app. But the documentation has always been weak. There are a few tutorials, and <a href='http://www.datanoise.com/ruby-debug/'>the developer’s blog</a> but the real way i’ve always learned how it worked and discovered new features was by wading through the source.</p>
<p>Finally i’ve found out that there is good documentation, <a href='http://bashdb.sourceforge.net/ruby-debug.html'>Debugging with ruby-debug</a>. It’s really great, not rails focused, but covers lots of details which i’d miss.</p>rabbletag:anarchogeek.com,2008-02-13:/article/2008/2/13/yahoo2008-02-13T16:14:00Z2008-02-13T16:14:00ZYahoo?!<p>So within a day <a href='http://salimismail.com/?p=83'>my boss is leaving yahoo</a>, and my <a href='http://www.techcrunch.com/2008/02/12/yahoo-exec-bails-bradley-horowitz-leaves-for-google/'>boss’s boss is leaving too</a>. Needless to say I’m not to happy about this. Working for a big multinational company is kafkaesque. I feel like don’t really even understand the rules, much less know how to play by them. Salim’s position is being taken over by <a href='http://www.chaddickerson.com/'>Chad Dickerson</a> who i really respect and has done great work in the past.</p>
<p>At the moment we are pushing to launch <a href='http://fireeagle.research.yahoo.com'>FireEagle</a>, it would be a lot easier if it weren’t for all the layoff / merge distractions.</p>rabbletag:anarchogeek.com,2008-01-08:/article/2008/1/8/i-m-in-next-yahoo2008-01-08T14:43:00Z2008-01-08T14:43:00ZI'm in next.yahoo<p>My essaylet post about <a href='http://www.anarchogeek.com/2007/12/23/what-is-interesting-in-tech-for-2008'>my hopes for technology in 2008</a> was written for GIgaom’s year end essay contest. Turns out my quick little write up got <a href='http://gigaom.com/optimism-2008-winners/'>runner up</a>. Havi who runs <a href='http://next.yahoo.net'>next.yahoo</a> noticed the post. She cleaned it up a little, let me add a bit about <a href='http://code.google.com/p/thrudb'>thrudb</a>, and <a href='http://next.yahoo.net/archives/71/anarchogeek-speaks-interesting-tech-in-2008'>posted it</a>.</p>rabbletag:anarchogeek.com,2008-01-04:/article/2008/1/4/the-iowa-primary-and-two-parties-vs-four2008-01-04T15:40:00Z2008-01-04T15:40:00ZThe Iowa primary and two parties vs four<p>Much has been written about the Iowa caucuses, the results, the horse race. I’m not sure i have much to add from half a world away.</p>
<p>One thing i did thing was interesting was <a href='http://en.wikipedia.org/wiki/Mike_Huckabee'>Huckabee</a>. From the perspective of urban, professional class, coastal america, he comes across as being a religious zealot. A crazy preacher. But looking a little further i saw that he’s a social conservative and economic liberal, other republicans even say socialist.</p>
<blockquote><a href='http://www.dailykos.com/storyonly/2008/1/3/23545/93161/629/429564'>“Mike Huckabee is a Christian socialist. He is a good man, but with a Big Government heart. He is the most liberal of all the Republican presidential candidates on economic issues.</a>”— said <a href='http://en.wikipedia.org/wiki/Richard_Viguerie'>Ricard Viguerie</a> a conservative strategist.</blockquote>
<p>The conception of a socialist republican, right wing social values and progressive economic values kind of makes sense. It’s a republicanism which would attract a majority of Latino, currently %14 of the US population. Pro-church, Pro-Family, and Pro-Worker. Anti-gay, anti-urban, anti-abortion, anti-corporate power.</p>
<p>It’s not the republican party which is in power today, nor the one of Reagan. But it is exactly the social movements which Zack is describing in <a href='http://revolutioninjesusland.com/'>Revolution in Jesusland</a>. It’s an evangelical version of <a href='http://en.wikipedia.org/wiki/Liberation_theology'>Liberation Theology</a>.</p>
<p>In a system which allowed fair elections, proportional representation, and more than two parties, the Republican party would divide in to two separate parties. Social conservatives, like Huckabee, and economic conservatives like the neo-con’s including Giuliani, McCain, Reagan, etc… Right now the two groups don’t really see eye to eye, but they are in the same party. The Republicans also have libertarians, who are far-right economic conservatives who are social liberals.</p>
<p>On the Democratic party side there is a similar divide. Clinton represents the <a href='http://en.wikipedia.org/wiki/Democratic_Leadership_Council'><span class='caps'>DLC</span></a>, conservative democrats, or centrists as they call themselves. They advocate a conservative economic agenda over all, free trade, lower taxes, smaller government. The same agenda as the economic conservatives on the republican side! On social issues they support the agenda and values of urban professional costal <span class='caps'>NPR</span> listening america. Don’t rock the boat, but slowly support civil unions, keeping abortion accessible to people who live in ‘blue states’, fund the arts, fund universities, increase fuel economy standards and slowly address global warming.</p>
<p>Then there are the economic progressives, the democrats who work with Unions and Black America. In general working class democrats are concerned about economics, jobs, minimum wage, anti-free trade, etc.. John Edwards is the democratic candidate who most represents the economic progressive branch of the democratic party. You can see this by the endorsement of <a href='http://www.alternet.org/story/72345/'>Michael Moore</a> who correctly sees Edwards as truly caring about the poor and working class. Edwards is the union candidate. The social issues which are valued by this branch of the democratic party are ignored by the party as a whole. Church going and married, the issues which drive the social agenda of working class democrats are ignored by liberal urban professionals who bankroll the party. The unions keep supporting the democrats because the republican economic conservatives want to abolish them, but the Democrats never DO anything for the unions at all.</p>
<p>Obama is an interesting case. I don’t think he winning based on his politics. He’s winning because he’s amazingly charismatic. He’s a great speaker, and a great campaigner. People like his story, the multiethnic boy raised by white Christians from Kansas. It goes without saying that clearly Obama is super smart. All of this lets the democrats vote for him because they like the person. He’s seen as a bridge who can reach out to different parts of the democratic party, and to independents.</p>
<p>Interestingly, i assumed Obama’s politics were like the Clintons. Centrist democrats. And if you look, he did run against a former black radical for the Illinois state senate. But looking at his voting record, he’s actually pretty damned progressive. I was surprised. Who knows if he’d be a progressive president or not. But if he gets elected president, Americans will get a much more progressive administration than they were expecting.</p>
<p>What the elections in Iowa, and presidential primaries, say to me is that the structure of the party system is broken in the US. We’ve got social conservatives with progressive economic policies, and we’ve got economic conservatives with liberal cultural values (secular, pro-gay, pro-abortion).* Those two groups are split evenly within the two parties, who are supposed to hate each other. This crazy setup is a large part of why US elections are so non-competitive. Less than %2 of members of congress lose a seat if they run for reelection!</p>
<p>A sane system, given these political and social values would be to the evangelicals with their party, the economic conservatives (centrists) with their party, and the economic progressives with their party. It’s not as simple as i laid out, but the two party system means that the economic centrists from both parties dominate fundraising and the power structures of <span class='caps'>BOTH</span> parties. That’s a large part of why there is no political debate in the US. The leaders in power of both parties agree <span class='caps'>MOST</span> of the time.</p>
<ul>
<li>There are also the libertarians on the right and greens on the left, who don’t fit so cleanly in to this spectrum. Not to mention crazy anarchists like myself.</li>
</ul>rabbletag:anarchogeek.com,2007-12-23:/article/2007/12/23/what-is-interesting-in-tech-for-20082007-12-23T14:40:00Z2007-12-23T14:40:00ZWhat is interesting in tech for 2008<p>That’s a difficult question, i know what i’m excited about right now. It’s that cloud computing is becoming a reality. More specifically i’m really impressed and excited by the light weight key pair databases like CouchDB. Amazon’s SimpleDB is interesting from an acceptance of the idea perspective, but not very interesting technically. There are whole classes of applications which are hard using a relational database which will be easy to build and scale using key / pair style db’s like couchdb and simpledb. What makes delicious, twitter, facebook, and flickr hard applications to build on the backend are in large part due to a poor match of database storage engines. With that fixed, and it seems like we’re finally getting around to fixing it, we’ll be able to push forward in building social apps which can scale while doing interesting things. Something which hard is going to become easy in 2008.</p>
<p>Let’s see what else? The mobile handset world is going to be interesting. Apple will release an <span class='caps'>SDK</span> which, if they do it the right way, will create a fountain of new applications. Android will come along and let that creativity of building apps spread to more devices, but it won’t be as slick. Apple’s one device, one screen size, one interface, system will be a massive win in terms of building interesting applications. The iPhone is the Mac of phones, but it remains to be seen if Android becomes linux (hackers doing cool stuff but not much end user acceptance), Windows widespread but clunky because of the hundreds of devices which need to be supported, or <span class='caps'>OS2</span> cool, but simply ignored out of existence.</p>
<p>I’m excited about computing and the net reaching out in to non-computer devices. The Dash Navigator is one example, Chumby and Kindle are others, there are lots. So far they’ve had a hard time getting built and released. Hopefully 2008 will be the year that the net stops being about laptops, desktops, and servers. The iphone is a bit along that path, but there’s so much more. Perhaps it’s too optimistic for 2008, building physical things takes much longer lead time. Eventually the device makers will learn what the desktop application makers have learned. That having something which is tied to the net and you can push updates on to will mean you can be much more agile.</p>
<p>The last thing i’m excited about is maps. This isn’t new, it’s been going on for a while, but there are neat things happening with maps, geo, and location based services. I hope there is enough space for people to build something which is social and useful rather than just a marketers dream (find the nearest starbucks).</p>rabbletag:anarchogeek.com,2007-12-16:/article/2007/12/16/discrimination-in-indian-high-tech-companies2007-12-16T17:36:00Z2007-12-16T17:36:00ZDiscrimination in Indian High Tech Companies <p>If you work as a programmer then you can’t deny the tremendous presence Indian engineers and companies have on the field. When i walk across the Yahoo campus i see South Asians all over the place. I think it’s wonderful. India (and the rest of South Asia) has a long history and many traditions which the west can learn from.</p>
<p>One thing which has always burdened India, held it back in many ways, is the caste system. Taking normal class divisions and making them more arcane and completed than anybody could think was possible. Some times the rulers of India have tried to break down the caste system, Gandhi and early congress, many of the Muslim mogul rulers, and Ashok a Buddhist king. Other times the leaders have build them up and used them to control the country, the British Raj and many, but not all, Hindu rulers. The British setup a system where by the maintained and reinforced the caste system placing white Europeans on top, above the bramhins.</p>
<p>Since independence it’s been India’s official government policy to abolish the caste system. There’s has been considerable affirmative action in everything from low level government jobs to university entrance exams and even political offices which are reserved for lower castes. All of which has helped.</p>
<p>Now there are Dalits (untouchables), Muslims (often who at some time, many generations ago converted to islam to escape being a lower caste), and women (who are discriminated against at all castes) who are graduating from the top Indian universities. In a fair system driven by merit, these people should be getting jobs at top firms.</p>
<p>A new study just out confirmed that they <a href='http://www.rediff.com/money/2007/dec/04india.htm'>aren’t getting interviews or being hired</a>. They used techniques from studying discrimination in the US. Where the same resume and experience are used with different names. They found that Dalits only get 2/3rds of the interviews that a high caste person would get with the <span class='caps'>SAME</span> resume. Muslims did worse, only getting 1/3rd of the interviews. They didn’t try, but i’m sure that if you submitted the same resume with an English or European name they’d get even more interviews.</p>
<p>Regrettably this is totally in line with my experience in India. Even once they are hired, lower caste people face discrimination. Within the work place many upper caste managers try and enforce a hierarchy which is often incompatible with creative and collaborative work. Often westerns working with Indian teams in India are told that they are not respecting Indian ways of doing things. Sometimes it’s with good reason. There are real cultural differences and way’s of working. But in my experience, it’s often a ruse for defending a corrupt system based on caste and not merit.</p>
<p>Western companies and people working with Indian engineers miss out on the best Indian hackers because are least likely to be able to succeed within the Indian corporate organization. The two sharpest Indian hackers I’ve worked with, and hired in to a company i was working at, both were driven out of the company by this very issue. I wish western companies did more to demand that the best engineers get hired instead of the engineers from the ‘best’ families.</p>rabbletag:anarchogeek.com,2007-12-12:/article/2007/12/12/hfcs-astrotruf-blog-comment-campaign2007-12-12T16:56:00Z2007-12-12T16:56:00ZHFCS Astrotruf blog comment campaign?<p>I noticed that my recent blog post attracted an <a href='http://anarchogeek.com/2007/12/4/getting-fat-on-high-fructose-corn-syrup#comment-form'>interesting comment</a></p>
<blockquote>
Maggie Dawn 12.07.07 / 22PM
<br>
<span class='caps'>HFCS</span> is the topic of many debates recently but in actuality it is no more bad for you than actual table sugar is. The thing to remember when consuming foods containing <span class='caps'>HFCS</span> and all sugars is to eat them in moderation. But do not place the blame solely on <span class='caps'>HFCS</span>.
</blockquote>
<p>I thought it was odd for two reasons, first she uses a pretty generic yahoo email address. Now i like yahoo, they pay my bills, there are lots of cool interesting people at yahoo. But that said, it’s pretty rare a user of a yahoo email address reads my blog. I get two kinds of readers, geeks and activists. Maggie doesn’t come across as being either. The second thing which really struck me is i never used the acronym <span class='caps'>HFCS</span> in my post. The email provided, abbyg1432 at yahoo.com also is not mentioned anywhere on the web. Perhaps it’s made up?</p>
<p>The comment didn’t link back to a site, but it still struck me as odd. So i started searching around and i found this comment on another <a href='http://fallenmonk.blogspot.com/2007/12/high-fructose-conspiracy.html'>blog post about high fructose corn syrup</a>.</p>
<blockquote>You’ve provided lots of good information and great links for further research. It’s important to remember that we must be aware of the foods we are eating and what ingredients they contain. It’s not necessary to completely cut out <span class='caps'>HFCS</span> or other sugars that studies have shown are just as bad for us. But consume them in moderation. Eating too much is where the problems begin.<br>
<a href='http://www.haloscan.com/comments/fallenmonk/6969920260381289036/#221452'>Melissa Bean | 12.07.07 – 2:27 pm</a></blockquote>
<p>Don’t those two comments seem like they come from the same talking points? Perhaps from some social media pr company contracted by the <a href='http://www.ncga.com/'>corn industry</a> to try and head off a wave of bloggers realizing their products are crap, killing people and the planet, and then banning them? Notice how they don’t advocate <b>for</b> HFCS, but rather try and make it seem like a dietary choice similar to sugar? Very slick.</p>rabbletag:anarchogeek.com,2007-12-12:/article/2007/12/12/the-funny-thing-about-addresses2007-12-12T16:39:00Z2007-12-12T16:39:00ZThe funny thing about addresses<p>So we have rented a place for the ‘summer’ being now through February, in Uruguay. We had to have some stuff delivered to the house so we asked the landlady what the address was. This is what we got as a response.</p>
<p>Adriana’s the Argentine dentist’s house, before the last curve of the main road, next door to the wooden house.
Devil’s Point, Rocha, Uruguay.</p>
<p>I don’t think if i pasted those directions in to any online geocoder that it’d be able to return anything useful. The Uruguayan government has gone through the trouble of giving every street in this little beach town a name, and giving all the houses numbers. Unfortunately nobody uses the street names and all the houses have names displayed, but not their numbers.</p>
<p>In Montevideo there are proper street numbers, but here most people use a system listing the number of meters from the closest intersection. This means there are multiple houses with the same number, depending on which intersection you choose to start counting from.</p>
<p>Oh, yes, one last thing. I created a flickr set of photos i’ve been taking since we arrived, <a href='http://flickr.com/photos/rabble/sets/72157603424419204/'>pictures of punta del diablo</a>.</p>