<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3322141</id><updated>2012-01-27T07:12:11.087+10:00</updated><category term='stax'/><category term='richard gabriel'/><category term='bruce eckels'/><category term='derby'/><category term='behaviour'/><category term='boost'/><category term='adobe'/><category term='xa2'/><category term='query'/><category term='jim hendler'/><category term='spreadsheets'/><category term='software development'/><category term='intelligent design'/><category term='amensty international'/><category term='sudoku'/><category term='radar networks'/><category term='long tail'/><category term='Refunctoring'/><category term='unicode'/><category term='evil'/><category term='powder'/><category term='bdd'/><category term='first-order logic'/><category term='closures'/><category term='rant'/><category term='anti-patterns'/><category term='subject oriented programming'/><category term='facebook'/><category term='visualization'/><category term='alternative history'/><category term='dawg'/><category term='macintosh'/><category term='uuid'/><category term='java'/><category term='dawkins'/><category term='guid'/><category term='capybara'/><category term='government'/><category term='cats'/><category term='concurrency'/><category term='ichat'/><category term='rdfdb'/><category term='australia'/><category term='d2r'/><category term='mvc'/><category term='astoria'/><category term='groovy'/><category term='iphoto'/><category term='rdfs'/><category term='object oriented'/><category term='mapredce'/><category term='time travel'/><category term='design'/><category term='america'/><category term='mp3'/><category term='rich client'/><category term='ted neward'/><category term='ubuntu'/><category term='j2ee'/><category term='chandler'/><category term='blogging'/><category term='gerin oil'/><category term='conferences'/><category term='json'/><category term='garbarge collection'/><category term='google'/><category term='ruby'/><category term='prova'/><category term='sdi'/><category term='gridgain'/><category term='outer joins'/><category term='mulgara'/><category term='continuations'/><category term='os x'/><category term='multijava'/><category term='military'/><category term='creative commons'/><category term='latency'/><category term='lawrence lessig'/><category term='flow'/><category term='bigtable'/><category term='game and watch'/><category term='guice'/><category term='dapper'/><category term='tdd'/><category term='physics'/><category term='productivity'/><category term='rete'/><category term='foaf'/><category term='del.icio.us'/><category term='vice'/><category term='islam'/><category term='memory model'/><category term='silverlight'/><category term='spring framework'/><category term='macbook pro'/><category term='cyc'/><category term='music'/><category term='indexing'/><category term='web framework'/><category term='neurocommons'/><category term='networks'/><category term='netbeans'/><category term='dna'/><category term='paul graham'/><category term='obo'/><category term='war on terror'/><category term='sql'/><category term='words'/><category term='pasta'/><category term='jruby'/><category term='agile services'/><category term='health'/><category term='beautiful code'/><category term='genes'/><category term='calendar'/><category term='continuous integration'/><category term='david wood'/><category term='finance'/><category term='knowledge navigator'/><category term='scott rosenberg'/><category term='junit'/><category term='mobile phones'/><category term='ontology'/><category term='simpsons'/><category term='hadoop'/><category term='exceptions'/><category term='dell'/><category term='www2008'/><category term='web 2.0'/><category term='tony morris'/><category term='ilife'/><category term='sun'/><category term='sheep'/><category term='.net'/><category term='star trek'/><category term='sesame'/><category term='kowari'/><category term='safari'/><category term='working mouse'/><category term='xml'/><category term='oil'/><category term='scala'/><category term='jrdf'/><category term='mysql'/><category term='google maps'/><category term='sesame street'/><category term='maths'/><category term='sourceforge'/><category term='dsm'/><category term='ubiquity'/><category term='qi'/><category term='rdfa'/><category term='world wide web'/><category term='ontologists'/><category term='monads'/><category term='yars'/><category term='intellij'/><category term='dbms'/><category term='iswc'/><category term='gui'/><category term='c64'/><category term='android'/><category term='fred brooks'/><category term='smurfs'/><category term='svg'/><category term='jpa'/><category term='intel'/><category term='transputer'/><category term='Niklaus Wirth'/><category term='static methods'/><category term='martin fowler'/><category term='ria'/><category term='chess'/><category term='solid state drives'/><category term='yahoo'/><category term='semanify'/><category term='javascript'/><category term='trust'/><category term='bush'/><category term='dual'/><category term='timeline'/><category term='mcdonald bradley'/><category term='iris'/><category term='glassfish'/><category term='pychinko'/><category term='sablecc'/><category term='itql'/><category term='http'/><category term='build tools'/><category term='gpl'/><category term='rdf'/><category term='ldap'/><category term='sofa'/><category term='chaser'/><category term='metrics'/><category term='amazon'/><category term='geeky'/><category term='fable'/><category term='aspects'/><category term='windows'/><category term='rdfsuite'/><category term='programming languages'/><category term='laws'/><category term='4suite'/><category term='chris bizer'/><category term='aperture'/><category term='eresearch'/><category term='atheist'/><category term='ant'/><category term='fuxi'/><category term='escience'/><category term='ambient orb'/><category term='internet explorer'/><category term='patterns in software'/><category term='patterns'/><category term='tom adams'/><category term='lucene'/><category term='games'/><category term='ral'/><category term='pascal'/><category term='xorg'/><category term='xins'/><category term='certification'/><category term='epigenetics'/><category term='open office'/><category term='appengine'/><category term='sawzall'/><category term='generics'/><category term='search'/><category term='small rdf store'/><category term='bruce tate'/><category term='mozilla'/><category term='slashdot'/><category term='swearing'/><category term='eric raymond'/><category term='fusion'/><category term='metadata'/><category term='robert glass'/><category term='clean'/><category term='pellet'/><category term='tower defense'/><category term='mest'/><category term='iswc 2008'/><category term='green day'/><category term='josql'/><category term='elections'/><category term='maven'/><category term='ds'/><category term='parsing'/><category term='noah'/><category term='bioinformatics'/><category term='chrome'/><category term='festive'/><category term='owl'/><category term='urn'/><category term='jay miner'/><category term='tripresso'/><category term='broken promises'/><category term='god delusion'/><category term='rss'/><category term='jta'/><category term='nosql'/><category term='rdfstore'/><category term='iteration management'/><category term='microcultures'/><category term='alan kay'/><category term='cars'/><category term='dimensions'/><category term='linq'/><category term='bit map indexing'/><category term='lego'/><category term='jsf'/><category term='steve mcconell'/><category term='macfuse'/><category term='simon raboczi'/><category term='digital libraries'/><category term='aop'/><category term='synchronization'/><category term='suicide bombers'/><category term='mksearch'/><category term='humour'/><category term='yads'/><category term='upml'/><category term='holden'/><category term='mandarax'/><category term='rest'/><category term='algebra'/><category term='dojo'/><category term='joel spolsky'/><category term='drm'/><category term='dsl'/><category term='design by contract'/><category term='life science'/><category term='pik'/><category term='hbase'/><category term='richard curtis'/><category term='subversion'/><category term='visitor pattern'/><category term='ioc'/><category term='al gore'/><category term='software industry'/><category term='fotran'/><category term='lock free algorithms'/><category term='graphing calculator'/><category term='ec2'/><category term='linked data'/><category term='actors'/><category term='xforms'/><category term='jpred'/><category term='gold'/><category term='wsdl'/><category term='biomanta'/><category term='amit kapoor'/><category term='3store'/><category term='sparql'/><category term='webkit'/><category term='steve jobs'/><category term='user interface'/><category term='political'/><category term='macbook'/><category term='b-tree'/><category term='uml'/><category term='alan holub'/><category term='apollo'/><category term='kvm'/><category term='ncss'/><category term='ray bradbury'/><category term='suncorp'/><category term='cascading'/><category term='bible'/><category term='cloud computing'/><category term='column oriented database'/><category term='edutella'/><category term='smalltalk'/><category term='modules'/><category term='ore'/><category term='google spreadsheet'/><category term='web services'/><category term='file system'/><category term='tucana'/><category term='peter norvig'/><category term='john backus'/><category term='personal metadata'/><category term='ruby on rails'/><category term='scrum'/><category term='visaul cafe'/><category term='chris wilper'/><category term='skip list'/><category term='christopher alexander'/><category term='the who'/><category term='project management'/><category term='debt'/><category term='u2'/><category term='nutch'/><category term='tetris'/><category term='erlang'/><category term='swing'/><category term='triple store'/><category term='douglas adams'/><category term='health commons'/><category term='open source'/><category term='db2'/><category term='mapreduce'/><category term='gfs'/><category term='c#'/><category term='firefox'/><category term='animal rights'/><category term='psychology'/><category term='iphone'/><category term='rules engine'/><category term='multiple dispatch'/><category term='testng'/><category term='code coverage'/><category term='easymock'/><category term='ejb'/><category term='intelligence'/><category term='mocking'/><category term='serql'/><category term='joe hockey'/><category term='haskell'/><category term='iraq'/><category term='nintendo'/><category term='simile'/><category term='spaces'/><category term='eclipse'/><category term='web 3.0'/><category term='linkheader'/><category term='systems engineering'/><category term='ruleml'/><category term='rdflib'/><category term='xp'/><category term='jmock'/><category term='brql'/><category term='description logics'/><category term='scalability'/><category term='refactoring'/><category term='logic'/><category term='hierachical data'/><category term='security'/><category term='dogs'/><category term='semantic web'/><category term='paul gearon'/><category term='fractals'/><category term='stephen fry'/><category term='adam bosworth'/><category term='ted'/><category term='defeasible logic'/><category term='avl tree'/><category term='swt'/><category term='oracle'/><category term='muslims'/><category term='flying spaghetti monster'/><category term='microformats'/><category term='pair programming'/><category term='redfoot'/><category term='Irene Khan'/><category term='no silver bullet'/><category term='netscape'/><category term='henry story'/><category term='quality'/><category term='northrop grumman'/><category term='architecture'/><category term='jython'/><category term='uri'/><category term='ide'/><category term='vista'/><category term='hp'/><category term='andrae muys'/><category term='wiki'/><category term='gnowsis'/><category term='fuse'/><category term='audioman'/><category term='apple'/><category term='mr sparkle'/><category term='named graphs'/><category term='jena'/><category term='ipad'/><category term='open data'/><category term='environment'/><category term='fedora'/><category term='graph'/><category term='evolution'/><category term='saliva'/><category term='tim berners-lee'/><category term='peter singer'/><category term='ibm'/><category term='transactions'/><category term='cathedral and the bazaar'/><category term='agile'/><category term='wicket'/><category term='python'/><category term='haptic'/><category term='bill gates'/><category term='modelling'/><category term='datalog'/><category term='flying cars'/><category term='database'/><category term='science'/><category term='linux'/><category term='apache'/><category term='hibernate'/><category term='robert scoble'/><category term='conservation'/><category term='soap'/><category term='ajax'/><category term='rdql'/><category term='programming'/><category term='jsp'/><category term='wii'/><category term='lisp'/><category term='communication'/><category term='dbin'/><category term='jvm'/><category term='terrorism'/><category term='hysteresis'/><category term='faceted navigation'/><category term='nova spivack'/><category term='commodore'/><category term='agile databases'/><category term='restlet'/><category term='clr'/><category term='functional programming'/><category term='religion'/><category term='al Qaeda'/><category term='jboss'/><category term='robert turner'/><category term='microsoft'/><category term='relational model'/><category term='parser'/><category term='axis'/><category term='communism'/><title type='text'>More News</title><subtitle type='html'>Technical stuff sometimes about programming.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default?start-index=101&amp;max-results=100'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2107</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3322141.post-6237647690458502088</id><published>2012-01-26T08:18:00.002+10:00</published><updated>2012-01-27T07:12:11.325+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='ipad'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>One Platform</title><content type='html'>&lt;div class="tr_bq"&gt;A couple of things have struck me about the iPad and iBook Author. &amp;nbsp;If you want to read some background&amp;nbsp;&lt;a href="http://daringfireball.net/2012/01/ima_set_it_straight_this_watergate"&gt;John Gruber has a good summary&lt;/a&gt;. &amp;nbsp;It may well come down to whether being focused on one thing is wrong.&lt;br /&gt;&lt;br /&gt;&lt;div class="tr_bq"&gt;Firstly, Steve Jobs &lt;a href="http://www.the-digital-reader.com/2012/01/11/what-steve-jobs-thought-about-textbooks/"&gt;is quoted in his biography saying he'd give away textbooks&lt;/a&gt;.&amp;nbsp; This is a pretty big bargaining chip when Apple was talking to the textbook publishers: go with us or we'll give your product away for free. &amp;nbsp;How does this differ from&amp;nbsp;&lt;a href="http://news.bbc.co.uk/2/hi/special_report/1998/04/98/microsoft/198390.stm"&gt;Bill Gates saying they'd cut off Netscape's oxygen supply&lt;/a&gt;?&lt;/div&gt;&lt;br /&gt;The other thing is it reminds me of is &lt;a href="http://truckandbarter.com/2004/10/bill-gates-virt.html"&gt;Bill Gates' developer virtuous cycle&lt;/a&gt;. &amp;nbsp;This is where developers write applications for a particular platform, users pick the platform with the most applications which then feeds back to developers supporting that platform. &amp;nbsp;In the past, developers have had to make a single choice as to which platform they wanted to support in order to succeed. &amp;nbsp;It continues to happen with Android and iPhone. &amp;nbsp;Jeff Raikes has given a good example in the early days of Microsoft, "&lt;a href="http://ecorner.stanford.edu/authorMaterialInfo.html?mid=914"&gt;The Principle of Agility&lt;/a&gt;", he says:&lt;/div&gt;&lt;blockquote&gt;I suspect many of you or in the audience might if I ask you the question of, "What was Microsoft's first spreadsheet?" You might think Excel was our spreadsheet. But in fact, we had a product called Multiplan...Our strategy was to be able to have our application products run on all of those computing platforms because at that time there were literally hundreds of different personal computers.&lt;/blockquote&gt;&lt;blockquote&gt;And on January 20th, 1983 I realized, I think Bill Gates also realized we had the wrong strategy. Any guesses to what happened on January 20th, 1983? Lotus, it was the shipment of Lotus 1-2-3. How many personal computers did Lotus run on in January of 1983? One, and exactly one. And it was a big winner. So what we learned was when it came to customer behavior. It wasn't whether you had a product that run on all of those computing platforms. What really mattered to the customer was, did you have the best application product on the computer that they own. And Lotus 1-2-3 was the best spreadsheet. In fact, it was the beginning of a "formula for success in applications". That I defined around that time called, "To win big, you have to make the right bet on the winning platform."&lt;/blockquote&gt;&lt;blockquote&gt;So what's the principle? The principle is agility. If you're going to be successful as an entrepreneur what you have to do is you have to learn. You have to respond. You have to learn some more. You have to respond some more. And that kind of agility is very important. If we had stayed on our old strategy, we would not be in the applications business today. In fact, one of the great ironies of that whole episode is that in the late '80s or early '90s our competitors, WordPerfect, Lotus. What they really should have been doing was betting on Windows. But instead they were betting on and WordPerfect was the best example. Betting on, putting WordPerfect on the mainframe, on minicomputers. In fact, they went to the lowest common denominator software strategy which we switched out of in the 1983 timeframe. So, for my key principle is, make sure that you learn and respond. Show that kind of agility.&amp;nbsp;&lt;/blockquote&gt;This is echoed in one of the recent exchanges (about an hour into&amp;nbsp;&lt;a href="http://twit.tv/show/macbreak-weekly/283"&gt;MacBreak Weekly 283&lt;/a&gt;)&amp;nbsp;where Alex Lindsay talks about how important it is to him to make education interesting and how he's not going to wait for standards, he just wants to produce the best. &amp;nbsp;Leo Laporte responds by saying how important it is for an open standard to prevail in order to prevent every child in America having to own an iPad in order to be educated or informed.&lt;br /&gt;&lt;br /&gt;You have to wonder if developers have reached a level of sophistication that allows them to use a cross platform solution or whether that will ever happen. &amp;nbsp;I think that it's inevitable that a more open platform will succeed but I'm not sure whether multiple platforms can succeed - we shall see.&lt;br /&gt;&lt;br /&gt;If you want to here more there are many interesting conversations around including: &lt;a href="http://5by5.tv/hypercritical/51"&gt;Hypercritical 51&lt;/a&gt;,&amp;nbsp;&lt;a href="http://twit.tv/show/macbreak-weekly/283"&gt;MacBreak Weekly 283&lt;/a&gt;&amp;nbsp;and &lt;a href="http://twit.tv/show/this-week-in-tech/337"&gt;This Week in Tech 337&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6237647690458502088?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6237647690458502088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6237647690458502088' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6237647690458502088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6237647690458502088'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2012/01/one-platform.html' title='One Platform'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2023834674788074553</id><published>2012-01-12T07:30:00.003+10:00</published><updated>2012-01-12T09:31:56.308+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Pretending We All Don't Know</title><content type='html'>&lt;a href="http://www.thisamericanlife.org/radio-archives/episode/454/mr-daisey-and-the-apple-factory"&gt;Some amazing writing and performance by Mike Daisy&lt;/a&gt;&amp;nbsp;(&lt;a href="http://podcast.thisamericanlife.org/podcast/454.mp3"&gt;mp3&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;He just walked up to the Foxconn plant and wanted to see if anyone wanted to talk to him:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;I wouldn't talk to me...she runs right over to the very first worker...and in short order we cannot keep up...the line just gets longer and longer...everyone wants to talk...it's like they were coming to work everyday thinking, "You know it'd be great? &amp;nbsp;It'd be so great if somebody who uses all this crap we make, everyday all day long, it'd be so great, if one of those people came and asked us what was going on because we would have stories for them...&lt;/blockquote&gt;I haven't gotten all the way through but he has a bit about talking to a girl that cleaned the glass on the assembly line:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;You'd think someone would notice this, you know? &amp;nbsp;I'm telling you that I don't know Mandarin, I don't speak Cantonese...I don't know fuck all about Chinese culture but I do know that in my first two hours on my first day at that gate I met workers who were 14 years old, 13 years old, 12. &amp;nbsp;Do you really think that Apple doesn't know? &amp;nbsp;In a company obsessed with the details. &amp;nbsp;With the aluminium being milled just so, with the glass being fitted perfectly into the case. &amp;nbsp;Do you really think it's credible that they don't know? &amp;nbsp;Or are they just doing what we're all just doing, do they just see what they want to see?&lt;/blockquote&gt;It seems absolutely credible that they do know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2023834674788074553?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2023834674788074553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2023834674788074553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2023834674788074553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2023834674788074553'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2012/01/pretending-we-all-dont-know.html' title='Pretending We All Don&apos;t Know'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7840162501520896475</id><published>2012-01-04T07:39:00.000+10:00</published><updated>2012-01-04T08:02:23.083+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humour'/><category scheme='http://www.blogger.com/atom/ns#' term='bible'/><title type='text'>Jesus Says Share Files</title><content type='html'>A famous story, Jesus takes some fish and loaves (&lt;a href="http://www.biblegateway.com/passage/?search=john%206:5-6:15&amp;amp;version=KJV"&gt;accounts&lt;/a&gt; &lt;a href="http://www.biblegateway.com/passage/?search=mark%208:1-8:9&amp;amp;version=KJV"&gt;differ&lt;/a&gt;&amp;nbsp;- although maybe he did it more than once, setting up the "Jesus's Food Multiplier" stall every second and fourth Saturday of the month) and feeds some people (again accounts differ and they don't count women and children as people - let's just skirt around that entire issue shall we). &lt;br /&gt;&lt;br /&gt;Everyone was impressed - even the disciples that were fisherman who had deep ties with the community. &amp;nbsp;They didn't say, "Hey, Jesus you've just destroyed our business model, you can't go around feeding thousands of people per fish. &amp;nbsp;One person, one fish - that's the way it has always been and that's the way it should always be."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7840162501520896475?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7840162501520896475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7840162501520896475' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7840162501520896475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7840162501520896475'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2012/01/jesus-says-share-files.html' title='Jesus Says Share Files'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-8318896992935038892</id><published>2012-01-03T14:15:00.002+10:00</published><updated>2012-01-03T14:16:14.885+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='graph'/><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>Partitioning Graphs in Hadoop</title><content type='html'>A recent article at Linked In called "&lt;a href="http://engineering.linkedin.com/hadoop/recap-improving-hadoop-performance-1000x"&gt;Recap: Improving Hadoop Performance by (up to) 1000x&lt;/a&gt;" had a&lt;br /&gt;section called "Drill Bit #2: graph processing" mentioning the problem of partitioning the triples of RDF graphs amongst different nodes. &lt;br /&gt;&lt;br /&gt;According to "&lt;a href="http://www.cs.yale.edu/homes/dna/papers/sw-graph-scale.pdf"&gt;Scalable SPARQL Querying of Large RDF Graphs&lt;/a&gt;" they use MapReduce jobs to create indexes where triples such as s,p,o and o,p',o' are on the same compute node. &amp;nbsp;The idea of using MapReduce to create better indexing is not a new one - but it's good to see the same approach being used to process RDF rather than actually using MapReduce jobs to do the querying. &amp;nbsp;It's similar to what I did with&amp;nbsp;&lt;a href="http://biomanta.org/publications/2008/eScience2008.pdf"&gt;RDF molecules and creating a level of granularity between graphs and nodes&lt;/a&gt;&amp;nbsp;as well as things like Nutch.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-8318896992935038892?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/8318896992935038892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=8318896992935038892' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8318896992935038892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8318896992935038892'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2012/01/partitioning-graphs-in-hadoop.html' title='Partitioning Graphs in Hadoop'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1566385210186123075</id><published>2011-12-31T16:59:00.000+10:00</published><updated>2012-01-05T10:20:09.180+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='world wide web'/><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Why the Cloud isn't the Internet</title><content type='html'>I think people are just starting to realize what some of the cloud vendors are providing and their drawbacks. &amp;nbsp;&lt;a href="http://www.amazon.com/Steve-Jobs-Walter-Isaacson/dp/1451648537"&gt;Steve Jobs is quoted in his biography&lt;/a&gt; describing the intent behind iCloud:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;We need to be the company that manages your relationship with the cloud - streams your videos and music from the cloud, stores your pictures and information, and maybe even your medical data...over the next few years, the hub is going to move from the computer into the cloud...So we wrote all these apps - iPhoto, iMove, iTunes - and tied in our devices, like the iPod and iPhone and iPad...We can provide all the syncing you need, and that way we can lock in the customer.&lt;/blockquote&gt;The Mac has always been different to Windows. &amp;nbsp;One of those differences Windows users' notice is that you switch between applications in OS X compared to documents (or windows) in Windows. The Apple cloud maintains that pattern by syncing between applications rather than documents (or individual files). &amp;nbsp;This approach&amp;nbsp;confuses a lot of people.&lt;br /&gt;&lt;br /&gt;This is different to how most Mac users currently sync their files with Dropbox. &amp;nbsp;iCloud has ended up following its Mac heritage whereas Dropbox sticks to file syncing. &amp;nbsp;&lt;a href="http://www.managewithoutthem.com/blog/?p=379"&gt;Matthew writes&lt;/a&gt;:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;The difference between Dropbox and iCloud synchronization is that Dropbox is theoretically just a file system...If you have a document that you edit on your iPad and sync with Dropbox you can edit that same file, using a different application, on your PC...The iCloud experience is completely different. The only way to edit a document across platforms or devices is to use a version of the application for each device. Not a compatible application...it may actually make me change the desktop application that I use purely based on iCloud support.&lt;/blockquote&gt;If you want to read more about Dropbox and Apple there's&amp;nbsp;&lt;a href="http://www.forbes.com/sites/victoriabarret/2011/10/18/dropbox-the-inside-story-of-techs-hottest-startup/print/"&gt;a really good article in Forbes which details how Steve Jobs personally made an offer to buy Dropbox&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;The edges of iCloud - the integration points to applications and the operating system - it's incomplete even if you buy into the idea of applications over documents. &lt;br /&gt;&lt;br /&gt;For example, on iOS devices there is a Notes application but on OS X these notes are in a tab in the Mail application. &amp;nbsp;This seems like a weird and non-standard place to put it - if you are going to sync by application you'd think it should be the same application across platforms. &lt;br /&gt;&lt;br /&gt;In&amp;nbsp;&lt;a href="http://support.apple.com/kb/DL1455"&gt;iCloud for Windows&lt;/a&gt;,&amp;nbsp;Windows users get more choice than OS X users. &amp;nbsp;Mail, Contacts and Calendar integrate with Outlook but you can choose your application for Bookmarks (IE or Safari) and Photo Stream.&lt;br /&gt;&lt;br /&gt;Even within applications&amp;nbsp;&lt;a href="http://shapeof.com/archives/2011/12/state_of_the_meat_2011_edition.html"&gt;Apple haven't quite gotten syncing right with iCloud yet either&lt;/a&gt;&amp;nbsp;including the &lt;a href="http://www.chrisboyd.net/2011/11/icloud-and-the-new-ios-data-storage-guidelines/"&gt;new rules around where files are stored and what is automatically removed or backed up&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The cloud is about vendor lock as much as any other platform, like application servers or databases, but with the extra problem that your data is tied to the vendor's application, cloud and user base. &amp;nbsp;A stickier solution.&lt;br /&gt;&lt;br /&gt;Some, like Google and Facebook, offer export services, but these almost don't matter, because you get an almost useless hunk of data, lose the ability to run the applications and you can't access users on their network (who may well have been collaborators).&lt;br /&gt;&lt;br /&gt;With the Internet, the Web and open source you still have the possibility to use your data with applications shared by many people across different networks.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1566385210186123075?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1566385210186123075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1566385210186123075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1566385210186123075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1566385210186123075'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2011/12/why-cloud-isn-internet.html' title='Why the Cloud isn&apos;t the Internet'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5885654670650205572</id><published>2011-12-31T16:56:00.000+10:00</published><updated>2011-12-31T22:30:02.092+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='pair programming'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><title type='text'>Global Code Retreat 2012</title><content type='html'>I went to the local &lt;a href="http://coderetreat.org/events/global-day-of-coderetreat-2011"&gt;Global Code Retreat held on the 3rd of December&lt;/a&gt;. &amp;nbsp;Overall, it was an amazing event - very well hosted and attended. &amp;nbsp;The &lt;a href="http://coderetreat.org/facilitating/structure-of-a-coderetreat"&gt;basic structure of the day&lt;/a&gt; was 6 or so 45 minute sessions trying to implement something with a different person each time. &amp;nbsp;At the end of the 45 minutes, no matter how far you had got, you deleted your solution.&lt;br /&gt;&lt;br /&gt;The problem was "&lt;a href="http://coderetreat.com/gol.html"&gt;The Game of Life&lt;/a&gt;". &amp;nbsp;I'm pretty familiar with this problem having come across "Conway's Game of Life" early on in a magazine like Compute! or Byte. &lt;br /&gt;&lt;br /&gt;However, if you walked away with a really awesome solution to "The Game of Life" you probably missed the point - most of the things that were being taught&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Hidden_curriculum"&gt;were hidden&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The solution was really beside the point. &amp;nbsp;One of the main reasons is to repeat solving the problem from scratch based on an idea called &lt;a href="http://en.wikipedia.org/wiki/Kata"&gt;kata&lt;/a&gt;&amp;nbsp;(movements practiced by yourself or in pairs). &amp;nbsp;This is something that I had come across in "&lt;a href="http://pragprog.com/the-pragmatic-programmer"&gt;The Pragmatic Programmer&lt;/a&gt;" which at the time reminded me of the time I had spent with projects at home - reimplementing the same thing over and over again.&lt;br /&gt;&lt;br /&gt;Steve Yegge mentions the same thing in his article "&lt;a href="http://programmingpraxis.com/2009/08/11/uncle-bobs-bowling-game-kata/"&gt;Practicing Programming&lt;/a&gt;". &amp;nbsp;He mentions that even as you program in your day job you may not actually be practicing programming. &amp;nbsp;Repetition in solving the same problems seems to be about keeping the problem fixed and then changing how you approach it and freeing you from any time constraints. &amp;nbsp;Most programming jobs involve solving the solution once (or if you're lucky doing a proof of concept and then implementing it again).&lt;br /&gt;&lt;br /&gt;The first time around it was awful. &amp;nbsp;I didn't know what I was doing, my environment was a little bit shaky, we couldn't agree on a language and I spent a lot of the time just setting it up. &lt;br /&gt;&lt;br /&gt;It made me become aware that for the first time, practically ever, my personal computer had diverged from my work computer. &amp;nbsp;Not in the "normal" Windows at work, Linux and OS X at home - but what I do at home and at work have diverged to the point where I'm learning stuff in many directions and there's almost no overlap between the two.&lt;br /&gt;&lt;br /&gt;&lt;div class="p1"&gt;The second time was much better. &amp;nbsp;There was less discussion on languages to use, how to approach the problem, how do you test drive it, whose computer to use and so on. &amp;nbsp;There was still discussion but we both shared a bit more context this time which made the discussion flow. &amp;nbsp;A big difference to the first time.&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;The third time around changed the format a little to where you couldn't talk to the person but you could only express requirements through tests. &amp;nbsp;So this sorted out the people who were testing from those who weren't. &amp;nbsp;But it also seemed to reduce the clutter around what needed to be done. &amp;nbsp;Tests are much less ambiguous compared to talking through requirements and so once you setup a rhythm of tests it became much easier. &amp;nbsp;Also, the whole room was very quiet. &amp;nbsp;You could imagine that a team doing silent TDD and pair programming wouldn't be the noisiest group in the room (for once).&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Each round thereafter changed the programming requirements: no loops, methods no more than 3 lines, and no if statements.&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;What did I learn? &amp;nbsp;Heaps.&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;I ended up doing Ruby quite a bit and mostly the solution came out at about 30 lines of production code and 30 lines of tests and you could pretty much do it in the time allocated. &amp;nbsp;I also did solutions C# and Haskell. &amp;nbsp;The Haskell solution came out at about 30 lines total - both tests and production code - and met every constraint (no loops, small functions, no if statements).&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Doing the same problem over and over again is surprisingly effective and nothing replaces sitting with a person to learn a new language or to be exposed to a variety of solutions. &amp;nbsp;One of the tricks - and you find this frequently with pair programming - you have to be very good at communication - both by saying what you're doing but also getting the other person to explain themselves.&lt;/div&gt;&lt;div class="p2"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p2"&gt;I also learnt:&lt;/div&gt;&lt;div class="p1"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Even with something as well defined and familiar as "The Game of Life", the solutions were varied and&amp;nbsp;some of the requirements (based on the rules on Wikipedia) were redundant.&lt;/li&gt;&lt;li&gt;My brain is very weak compared to how well Google search works.&lt;/li&gt;&lt;li&gt;Between each new attempt you tend to reflect on each previous solution and see the negatives and positives.&lt;/li&gt;&lt;li&gt;By continually starting a new project setup time was greatly reduced - dependencies that get in the way were slowly reduced - editors, libraries, searching the web, etc.&lt;/li&gt;&lt;li&gt;That it's good to throw code away. &amp;nbsp;It frees you up by allowing you to try different approaches or learn something new (like a different language).&lt;/li&gt;&lt;li&gt;Think before you hack.&lt;/li&gt;&lt;li&gt;A functional approach seemed to be where the answers were converging - meeting all the programming constraints that were given.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5885654670650205572?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5885654670650205572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=5885654670650205572' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5885654670650205572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5885654670650205572'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2011/12/global-code-retreat-2012.html' title='Global Code Retreat 2012'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4970266486101356680</id><published>2011-11-03T06:52:00.001+10:00</published><updated>2011-12-31T22:30:10.737+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='douglas adams'/><category scheme='http://www.blogger.com/atom/ns#' term='qi'/><category scheme='http://www.blogger.com/atom/ns#' term='stephen fry'/><title type='text'>A Review of QI Live</title><content type='html'>When Douglas Adams visited Brisbane in 2000 (possibly 1999) I had a friend sign a copy of "Starship Titanic" - I was too busy at work to see him myself. &amp;nbsp;I have always been a little disappointed that I didn't take the hour to see him. &amp;nbsp;When Stephen Fry announced "QI Live" on Twitter I made sure I wasn't going to miss out. &amp;nbsp;It was only in Melbourne and Perth (at the time) and bugger it if I was going to Perth, so even though I didn't live in Melbourne, I got some.&lt;br /&gt;&lt;br /&gt;As I walked into the theatre the place names of France that sound funny appeared on the screen. &amp;nbsp;I remembered them from a previous episode of the TV series. &amp;nbsp;It didn't matter, they'd just played the theme for "Pinky and the Brain" and were playing Tom Lehrer's "The Elements". &amp;nbsp;I was in a good mood and I was happy to be there.&lt;br /&gt;&lt;br /&gt;My wife thought she saw the producer, "What John Lloyd?". &amp;nbsp;Surely not, but soon after, an usher told us to stop taking photos. &amp;nbsp;It was a little annoying because I was mainly taking photos of the theatre - I'd never been to the Queen Victoria Theatre before. &amp;nbsp;Then a prissy voice said that Mr Fry's man servant would like you all to turn off your phones - so I did.&lt;br /&gt;&lt;br /&gt;The only bit I now remember of Stephen's opening was him telling a joke about a chicken going to a library. &amp;nbsp;It was told well, I guess, but too long for me because I'd heard it before and spent most of the joke remembering my grandmother telling me it about 20 years before. &amp;nbsp;Maybe that was what he was going for. &amp;nbsp;What was worse, it lead to the fact that a frog in California is the only species in the world to go ribbit. &amp;nbsp;Another recycled fact and I was getting a little bit annoyed.&lt;br /&gt;&lt;br /&gt;Colin Lane was the first panelist and pretty forgettable. &amp;nbsp;He and Andrew played tennis with the "Nobody Knows" paddles which was okay the first time. &amp;nbsp;Denise Scott didn't really seem to get the format but she had some good anecdotes - such as being recognised as looking like that person on TV but that she couldn't possibly be that person. &amp;nbsp;Andrew Denton was by far and away the star - he seemingly, confused Stephen by saying that, "If nobody knows, why isn't he on the panel?" &amp;nbsp;It made the whole thing almost worth it. &amp;nbsp;Except that Stephen then went on to spend most of the evening calling him stupid.&lt;br /&gt;&lt;br /&gt;The first question was about koalas having fingerprints that are indistinguishable from human fingerprints and that maybe they were doing all the robbing in Australia (which they said has the highest burglary rate in the world). &amp;nbsp;This fact &lt;a href="http://www.abs.gov.au/ausstats/abs@.nsf/Lookup/by%20Subject/1370.0~2010~Chapter~International%20comparisons%20(4.4.7)"&gt;doesn't seem to be true now&lt;/a&gt; although &lt;a href="http://www.geoffmetcalf.com/guncontrol_20010302.html"&gt;it was true in 2001&lt;/a&gt; which is probably closer to when it was written. &lt;br /&gt;&lt;br /&gt;Some of the other content that was from previous episodes included: kangaroos not farting and having 3 vaginas, when does the sun set (a video), Beatles' HELP album cover, the most popular song being the default Nokia ring tone and slavery not being illegal in the UK until recently. &amp;nbsp;This is just me guessing but Andrew Denton knew every answer. &amp;nbsp;The members of the audience shouting out certainly did. &amp;nbsp;But then so did Alan and so did I. &amp;nbsp;Well, I might not have known every question. &amp;nbsp;Alan answered over the top of the question for 100 points so I didn't hear what it was.&lt;br /&gt;&lt;br /&gt;I might be wrong, but one of the ways the show works is that Alan doesn't know the answer to every question. &amp;nbsp;Sometimes some of the guests do (John Sessions and Rory McGrath) but the point is: Alan is the kind of guy the show is supposed to be educating - he's the audience - he's coming along with us for the ride and a laugh. &amp;nbsp;He probably did reflect some of the audience that night too though, he looked a bit bored and a bit uncomfortable.&lt;br /&gt;&lt;br /&gt;Given the amount of recycled content I don't think they would've done this show in the UK but apparently it's okay to do this in Australia.&lt;br /&gt;&lt;br /&gt;At the end of the show, when Stephen was awarding the points, he said either the people in the audience were smart or that they had downloaded episodes not shown in Australia from BitTorrent. &amp;nbsp;This is what made me mad. &amp;nbsp;All episodes had been shown on the ABC from series A (you can Google the series number and ABC to find them on iView like&amp;nbsp;&lt;a href="http://www.abc.net.au/iview/?series=3145597"&gt;Series 4&lt;/a&gt;). &amp;nbsp;And some of&amp;nbsp;the facts were also available in the QI books (like &lt;a href="http://en.wikipedia.org/wiki/The_Book_of_Animal_Ignorance"&gt;Animal Ignorance&lt;/a&gt;). &amp;nbsp;Stephen seemed to be saying that we (whoever we are - the producers of the show?) reserve the right to charge you for content that we don't think you should've seen and we're a bit surprised you have because you've really cheated yourselves out of $200 a seat.&lt;br /&gt;&lt;br /&gt;I'm still mad.&amp;nbsp;&amp;nbsp;QI has a&amp;nbsp;&lt;a href="http://qi.com/about/philosophy.php"&gt;philosophy&lt;/a&gt;&amp;nbsp;about facts and curiosity. &amp;nbsp;Recycling facts, that are now wrong, goes against that philosophy. &amp;nbsp;The original idea for the show seems to have been going against accepting common knowledge and laziness. &amp;nbsp;The show seemed to scream, "Look it up!" or "Why do you think that?". &amp;nbsp;Recycling content was pure laziness. &amp;nbsp;Stephen and Alan knew that the content was recycled and it ruined the show or at least the idea behind the show.&lt;br /&gt;&lt;br /&gt;In the end, it's hard to know if you should regret the things you don't do versus the things you do.&lt;br /&gt;&lt;br /&gt;As an aside, some interesting facts (sticking with the Australian theme): all living marsupials are from South America not Australia (&lt;a href="http://en.wikipedia.org/wiki/Marsupial"&gt;from Wikipedia&lt;/a&gt;) and&amp;nbsp;&lt;a href="http://twitter.com/#!/adzebill/status/126781616528957440"&gt;echidnas and platypus can make custard&lt;/a&gt; (as they produce both eggs and milk).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4970266486101356680?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4970266486101356680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4970266486101356680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4970266486101356680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4970266486101356680'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2011/11/review-of-qi-live.html' title='A Review of QI Live'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1284867677144000792</id><published>2011-11-02T09:10:00.003+10:00</published><updated>2011-12-31T22:38:50.770+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='networks'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Building a Network Over Transactions</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://2.bp.blogspot.com/-I2pRKxdGWXQ/TrCnM-18kGI/AAAAAAAAA54/0aZi6U0IZ6Q/s1600/google-business-plan.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="155" src="http://2.bp.blogspot.com/-I2pRKxdGWXQ/TrCnM-18kGI/AAAAAAAAA54/0aZi6U0IZ6Q/s200/google-business-plan.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.tbrc.fi/pubfilet/JBS_Pynn%F6nen%20et%20al%202011.pdf"&gt;The new meaning of customer value:a systemic perspective&lt;/a&gt; analyses providing value to customers from a systems perspective.&lt;br /&gt;&lt;br /&gt;I had a thought, a little while ago, that Google is probably one of the first companies where the users and content providers are basically the same people and that they make money, through adverts, between connecting these two together using search.&lt;br /&gt;&lt;br /&gt;It's probably not a new thought but at the time I started to draw a diagram of how it all works. &amp;nbsp;I happened across this diagram (on the left) in this paper (page 4).&amp;nbsp;&lt;br /&gt;&lt;br /&gt;A perverse example is when you search for something and the first hit is your own blog. &amp;nbsp;You're now both the producer and consumer of the same content - with adverts&amp;nbsp;sandwiched&amp;nbsp;in the middle - hmm value sandwich.&lt;br /&gt;&lt;br /&gt;In the paper they use Google and Apple as examples:&lt;br /&gt;&lt;blockquote&gt;"Google has indeed realized the usability of systemic value-creation principles in building its offering. In contrast to Apple, it uses the value network to generate the revenues. Google provides free, easy-to-use tools for customers to use on the internet, the aim being to generate “eyeballs” for the ads of the advertising customers. In collecting these “eye balls” it has or it creates a product for every internet activity that attracts lots of traffic. From the firm's perspective, the offering elements are integrated to provide the audience for the ads, information being gathered in order to better scope the ads or just to make the customers happy and to promoteother products."&lt;/blockquote&gt;There's an old idea, for the Web anyway, of building a network of customers above extracting value out of each transaction.  Over-valuing the creation of the network lead to the whole dot com bubble and I have been thinking about how business models have progressed since then.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1284867677144000792?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1284867677144000792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1284867677144000792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1284867677144000792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1284867677144000792'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2011/11/building-network-over-transaction.html' title='Building a Network Over Transactions'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-I2pRKxdGWXQ/TrCnM-18kGI/AAAAAAAAA54/0aZi6U0IZ6Q/s72-c/google-business-plan.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6325534964240428664</id><published>2011-09-05T13:09:00.004+10:00</published><updated>2011-09-30T05:42:42.157+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='xorg'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>One horizontal and one vertical monitor for Ubuntu 11.04</title><content type='html'>I recently had problems configuring Ubuntu with dual screens using an NVidia card - the first screen is horizontal and the second screen is vertical - they are both Dell U2711 monitors. The idea is to be able to have Firebug running on the screen without obscuring the web page.&lt;br /&gt;&lt;br /&gt;This should be a simple thing. But from what I can tell NVidia's TwinView driver doesn't support different monitor rotations (under Linux). But having X Windows it should still be easy using dual X Screens. It should just be a matter of going to NVidia X Server Settings, selecting "Separate X Screen" and then selecting "Enable Xinerama".  Unfortunately for me, this caused general weirdness where the first screen was mostly black and the second screen was displayed horizontally.&lt;br /&gt;&lt;br /&gt;The way I fixed the problem was to disable Compiz.  The &lt;a href="http://askubuntu.com/questions/32447/how-do-i-disable-compiz-in-the-ubuntu-classic-session"&gt;easiest way I found to disable Compiz&lt;/a&gt; was to log in using the "Ubuntu Classic (No effects)" session.&lt;br /&gt;&lt;br /&gt;Then it was just a matter of enabling multiple XServers and Xinerama and enabling rotation (RandRRotation). Here are the bits in my xorg.conf to rotate my second monitor to the left:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Section "Monitor" &lt;br /&gt;    # HorizSync source: edid, VertRefresh source: edid&lt;br /&gt;    Identifier     "Monitor1" &lt;br /&gt;    VendorName     "Unknown" &lt;br /&gt;    ModelName      "DELL U2711" &lt;br /&gt;    HorizSync       29.0 - 113.0&lt;br /&gt;    VertRefresh     49.0 - 86.0&lt;br /&gt;    Option         "RandRRotation" "on" &lt;br /&gt;    Option         "DPMS" &lt;br /&gt;EndSection&lt;/pre&gt;&lt;pre&gt;Section "Screen" &lt;br /&gt;    Identifier     "Screen1" &lt;br /&gt;    Device         "Device1" &lt;br /&gt;    Monitor        "Monitor1" &lt;br /&gt;    DefaultDepth    24&lt;br /&gt;    Option         "TwinView" "0" &lt;br /&gt;    Option         "metamodes" "DFP-2: nvidia-auto-select +0+0" &lt;br /&gt;    Option         "Rotate" "left"&lt;br /&gt;    SubSection     "Display"&lt;br /&gt;        Depth       24&lt;br /&gt;    EndSubSection&lt;br /&gt;EndSection&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6325534964240428664?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6325534964240428664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6325534964240428664' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6325534964240428664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6325534964240428664'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2011/09/one-horizontal-and-one-vertical-monitor.html' title='One horizontal and one vertical monitor for Ubuntu 11.04'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2610556411768236860</id><published>2011-08-08T14:20:00.007+10:00</published><updated>2011-09-26T20:10:27.732+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>When Kworkers Don't</title><content type='html'>I recently had the problem where kworker threads were taking up 100% on my Ubuntu box.&lt;br /&gt;&lt;br /&gt;Various threads seem to suggest the problem lies with &lt;a href="http://en.wikipedia.org/wiki/Advanced_Programmable_Interrupt_Controller"&gt;interrupts around PCI&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface"&gt;power saving features&lt;/a&gt;.  The thread with the answer that worked for me, "&lt;a href="http://ubuntuforums.org/showthread.php?t=1805678&amp;page=2"&gt;HELP !!! Zombie attack ... (kworker)&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;To turn both of them off use:&lt;code&gt;&lt;br /&gt;noapic acpi=off&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I found I only needed to turn off acpi though:&lt;code&gt;&lt;br /&gt;acpi=off&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Put that in your grub configuration (sudo vi /etc/default/grub) and restart.&lt;br /&gt;&lt;br /&gt;I hate not knowing why though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2610556411768236860?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2610556411768236860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2610556411768236860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2610556411768236860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2610556411768236860'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2011/08/when-kworkers-dont.html' title='When Kworkers Don&apos;t'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-710450503456863639</id><published>2011-05-08T09:14:00.006+10:00</published><updated>2011-09-20T09:48:58.105+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>End of JRDF</title><content type='html'>Many things have changed since I started JRDF in 2003.  It feels like JRDF has come to a natural conclusion.&lt;br /&gt;&lt;br /&gt;Some of them are things I've failed to do very well: get contributors, implement different file format parsers, find enough time to refactor existing bits, etc.  I'm also not that interested in Java anymore (as was becoming increasingly obvious as it did have Scala in there at one point and has some Groovy DSL code in there).&lt;br /&gt;&lt;br /&gt;The most recent change I've seen is that JSON has achieved some of what RDF was trying to do and I see it more and more in the way people use it to expose their data in a RESTful way. The tooling is less onerous and the ease of use is higher even if what you get is much less.&lt;br /&gt;&lt;br /&gt;Also, external factors like &lt;a href="http://www.w3.org/2010/02/rdfa/sources/rdf-api/"&gt;W3C's official RDF API&lt;/a&gt; (for Java and Javascript) is largely the same thing but with official backing.&lt;br /&gt;&lt;br /&gt;I've enjoyed developing it and meeting and talking to other people in other groups (especially Jena and Sesame).  And of course, none of this would've happened if it wasn't for a lot of other people: Paul Gearon, Simon Raboczi, David Wood, David Makepeace, Tom Adams, Yuan Fang-Li, Robert Turner, Brad Clow, Guido Governatori, Jane Hunter, Imran Khan and Abdul Alabri and the other guys and girls Tucana/Plugged In Software/UQ.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-710450503456863639?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/710450503456863639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=710450503456863639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/710450503456863639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/710450503456863639'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2011/05/end-of-jrdf.html' title='End of JRDF'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2922290977833857117</id><published>2011-02-28T07:28:00.004+10:00</published><updated>2011-02-28T12:32:59.413+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='lucene'/><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>Linkage</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.elasticsearch.org/"&gt;Elastic Search&lt;/a&gt; another key/value store that allows multiple servers to cluster Lucene and uses a simple JSON API.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://katta.sourceforge.net/"&gt;Katta&lt;/a&gt; a project for using Hadoop and Lucene together.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://tech.backtype.com/introducing-elephantdb-a-distributed-database"&gt;ElephantDB&lt;/a&gt; which uses MapReduce to produce indexes for key/values.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.readwriteweb.com/cloud/2011/02/video-simplegeo-cassandra.php"&gt;How SimpleGeo Built a Scalable Geospatial Database with Apache Cassandra&lt;/a&gt; using &lt;a href="http://en.wikipedia.org/wiki/Geohash"&gt;Geohash&lt;/a&gt; (to flatten a 2d space into 1d) and Cassandra to provide a GIS database for exact match, range and proximity searching.  Claims that rebalancing isn't necessary &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://research.google.com/pubs/pub36726.html"&gt;Google's Percolator paper&lt;/a&gt; about providing incremental updates to search indexes instead of using MapReduce.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;End of IPv4 or is it: &lt;a href="http://www.slideshare.net/prototypo/ipocalypse"&gt;IPocalypse&lt;/a&gt; and &lt;a href="http://www.isoc-ny.org/p2/?p=1713"&gt;Vint Cerf and Geoff Huston at the recent Linx Conf Australia&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://axel.deri.ie/publications/vida-etal-2010eswc.pdf"&gt;Efficient SPARQL joins&lt;/a&gt;, &lt;a href="http://ontogame.sti2.at/games/"&gt;ontologies as games&lt;/a&gt;, &lt;a href="http://iospress.metapress.com/content/j8748565511j/"&gt;IOS Semantic Web Journal&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://grokcode.com/439/test-driven-development-and-the-meaning-of-done/"&gt;TDD as a way of getting things done&lt;/a&gt;, &lt;a href="https://github.com/pivotal/jasmine"&gt;Testing Javascript with Jasmine&lt;/a&gt; and &lt;a href="http://martinfowler.com/bliki/TradableQualityHypothesis.html"&gt;The fallacy of trading quality in software&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://vimeo.com/user4351020/videos"&gt;Brisbane Functional Users Group videos&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2922290977833857117?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2922290977833857117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2922290977833857117' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2922290977833857117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2922290977833857117'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2011/02/linkage.html' title='Linkage'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1936271884333299473</id><published>2011-01-07T05:45:00.004+10:00</published><updated>2011-01-07T05:59:57.076+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='continuous integration'/><title type='text'>Build Broken Images</title><content type='html'>One of the things that we encourage where I work is to visually and aurally notify you when a build has broken.  I did some images a while back for this purpose.&lt;br /&gt;&lt;br /&gt;They are:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://picasaweb.google.com/lh/photo/LtRezYKZD1nJD5F2qFN4E8Z64GtMzcoOqFapROnwGOk?feat=directlink"&gt;Lemmings (oh no)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://picasaweb.google.com/lh/photo/uAnOP7-fPTF6kONjF9i6JMZ64GtMzcoOqFapROnwGOk?feat=directlink"&gt;Lemmings (blocker - from original sprites)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://picasaweb.google.com/lh/photo/TtzAlSg0-Szzu8T6tWtIU8Z64GtMzcoOqFapROnwGOk?feat=directlink"&gt;Watchman (Rorschach's Journal)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://picasaweb.google.com/lh/photo/ahaWPLpLXgKHIQbrjXPwvMZ64GtMzcoOqFapROnwGOk?feat=directlink"&gt;Swedish Chef (borked build)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1936271884333299473?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1936271884333299473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1936271884333299473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1936271884333299473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1936271884333299473'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2011/01/build-broken-images.html' title='Build Broken Images'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7023216876883480891</id><published>2010-12-13T14:52:00.003+10:00</published><updated>2010-12-13T15:05:56.882+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='ant'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>Using SVNKit from within Groovy using SvnAnt</title><content type='html'>To load in SVN Ant you use (this assumes it's in the classpath):&lt;br /&gt;&lt;code&gt;ant.typedef(resource: &amp;quot;org/tigris/subversion/svnant/svnantlib.xml&amp;quot;)&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This then allows you to use the runSvn closures:&lt;br /&gt;&lt;code&gt;runSvn {&lt;br /&gt;  &amp;quot;export&amp;quot;(srcUrl: &amp;quot;&amp;quot;, destPath: &amp;quot;&amp;quot;)&lt;br /&gt;  &amp;quot;import&amp;quot;(url: &amp;quot;&amp;quot;, path: &amp;quot;&amp;quot;, message: &amp;quot;&amp;quot;)&lt;br /&gt;  &amp;quot;copy&amp;quot;(srcUrl: &amp;quot;&amp;quot;, destUrl: &amp;quot;&amp;quot;, message: &amp;quot;&amp;quot;)&lt;br /&gt;  &amp;quot;delete&amp;quot;(url: &amp;quot;&amp;quot;, message: &amp;quot;&amp;quot;)&lt;br /&gt;  &amp;quot;checkout&amp;quot;(url: &amp;quot;&amp;quot;, destPath: &amp;quot;&amp;quot;)&lt;br /&gt;  &amp;quot;propset&amp;quot;(path: &amp;quot;&amp;quot;, name: &amp;quot;&amp;quot;, value: &amp;quot;&amp;quot;)&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;a href="http://subclipse.tigris.org/svnant/svn.html"&gt;SvnAnt documentation&lt;/a&gt; has more details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7023216876883480891?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7023216876883480891/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7023216876883480891' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7023216876883480891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7023216876883480891'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2010/12/using-svnkit-from-within-groovy.html' title='Using SVNKit from within Groovy using SvnAnt'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2969286403924527194</id><published>2010-12-13T14:49:00.003+10:00</published><updated>2011-09-24T11:45:41.573+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ldap'/><title type='text'>Adding Active Directory properties to ApacheDS</title><content type='html'>One of the things I have to do during my day is replicate Active Directory in ApacheDS.  The most simple properties are member and memberOf.  The following uses an LDIF file to add these properties.  I've reused the OID for memberOf but I think the adUser OID is from a tutorial or something so it may clash.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;dn: m-oid=1.2.840.113556.1.5.8, ou=objectClasses, cn=other, ou=schema&lt;br /&gt;objectclass: metaObjectClass&lt;br /&gt;objectclass: metaTop&lt;br /&gt;objectclass: top&lt;br /&gt;m-oid: 1.2.840.113556.1.5.8&lt;br /&gt;m-name: group&lt;br /&gt;m-must: cn&lt;br /&gt;m-may: member&lt;br /&gt;&lt;br /&gt;dn: m-oid=1.2.840.113556.1.2.102,ou=attributeTypes,cn=other,ou=schema&lt;br /&gt;m-usage: USER_APPLICATIONS&lt;br /&gt;m-equality: distinguishedNameMatch&lt;br /&gt;objectClass: metaAttributeType&lt;br /&gt;objectClass: metaTop&lt;br /&gt;objectClass: top&lt;br /&gt;m-name: memberOf&lt;br /&gt;m-oid: 1.2.840.113556.1.2.102&lt;br /&gt;m-obsolete: FALSE&lt;br /&gt;m-noUserModification: FALSE&lt;br /&gt;m-syntax: 1.3.6.1.4.1.1466.115.121.1.12&lt;br /&gt;&lt;br /&gt;dn: m-oid=1.3.6.1.4.1.18060.0.4.3.3.1, ou=objectClasses, cn=other, ou=schema&lt;br /&gt;objectclass: metaObjectClass&lt;br /&gt;objectclass: metaTop&lt;br /&gt;objectclass: top&lt;br /&gt;m-oid: 1.3.6.1.4.1.18060.0.4.3.3.1&lt;br /&gt;m-name: adUser&lt;br /&gt;m-supObjectClass: inetOrgPerson&lt;br /&gt;m-must: cn&lt;br /&gt;m-may: memberOf&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2969286403924527194?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2969286403924527194/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2969286403924527194' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2969286403924527194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2969286403924527194'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2010/12/adding-active-directory-properties-to.html' title='Adding Active Directory properties to ApacheDS'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-3902657413796634297</id><published>2010-12-13T04:42:00.021+10:00</published><updated>2011-09-26T20:10:53.445+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='monads'/><category scheme='http://www.blogger.com/atom/ns#' term='relational model'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='sparql'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='dual'/><category scheme='http://www.blogger.com/atom/ns#' term='nosql'/><category scheme='http://www.blogger.com/atom/ns#' term='linq'/><title type='text'>What's a Dual?</title><content type='html'>Erik Meijer has been giving a talk at &lt;a href="http://penguinman-techtalk.blogspot.com/2010/12/personal-recollections-of-yow-melbourne.html"&gt;YOW (in Melbourne)&lt;/a&gt; and &lt;a href="http://blog.code.zaubersoftware.com/2010/11/zauber-qcon-san-francisco-2010.html"&gt;San Francisco at QCON&lt;/a&gt; about &lt;a href="http://channel9.msdn.com/Forums/Coffeehouse/so-key-value-store-is-dual-to-primaryforeign-key-store-"&gt;Key Value Stores being the dual of SQL&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;The obvious question is what is a dual?  And like most really good questions you already know the answer.  &lt;a href="http://en.wikipedia.org/wiki/Algebra_of_sets#The_principle_of_duality"&gt;Set operations AND and OR are dual&lt;/a&gt;.  Which means that if A OR F = A is true, by replacing AND with OR and T with F (or as Erik said switching the arrows), you get A AND T = A.  Likewise, A OR T = T becomes A AND F = F.  &lt;br /&gt;&lt;br /&gt;This is the bit where Maths almost becomes &lt;a href="http://en.wikipedia.org/wiki/Duality_(mathematics)"&gt;magical&lt;/a&gt;.  Why should these properties hold?  Why doesn't this work for multiplication and addition?&lt;br /&gt;&lt;br /&gt;In his talk, Erik quoted Benjamin Black, &lt;a href="http://highscalability.com/blog/2010/10/28/nosql-took-away-the-relational-model-and-gave-nothing-back.html"&gt;that the noSQL movement took away the relational model and gave nothing back&lt;/a&gt;.  His talk also seems to be about the beginnings of a noSQL/coSQL algebra and a project to write a noSQL database within Microsoft (noSQL Server perhaps?). &lt;a href="http://nosql.mypopescu.com/post/342947902/presentation-graphs-neo4j-teh-awesome"&gt;He's not the only one thinking about these kinds of things obviously&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;He also mentioned, closure as an &lt;a href="http://people.richland.edu/james/misc/prop.html"&gt;important property of numbers&lt;/a&gt; and other things.  That is you plug 1 + 1 in, you get 2 and you can plug 2 into + 1 and get 3 and so on - the answer of one operation can be used for the next.  You can't do that with SQL or SPARQL, which in my mind &lt;a href="http://morenews.blogspot.com/2007/11/feeling-like-kook.html"&gt;is a big fail&lt;/a&gt;.  Erik agrees - and suggested that noSQL (or coSQL) should support this property.  He's not the only one &lt;a href="http://nosql.mypopescu.com/post/1209550007/nosql-databases-and-the-unix-philosophy"&gt;to think that noSQL should support the Unix philosophy&lt;/a&gt; (which is not just closure but is an important part of it).  And he's certainly not going to be the last.&lt;br /&gt;&lt;br /&gt;He described these properties in the same way as I discovered them in RDF, which was through graphs.  The object model in LINQ has a graph of objects - objects which don't have a globally identifiable name - much like blank nodes.  The cool thing about LINQ, well one of the many cool things, is that it supports closure - you query your object graph, you get back another object graph and can continue to plug away at it as you narrow your query.  This certainly makes a lot of sense from a user querying data perspective (among others) - where you start with all students, you ask for all male students, then you ask for all male students with a grade point average about 5 or whatever.  Narrower and narrower is one typical way people find the answer they're looking for.&lt;br /&gt;&lt;br /&gt;The other thing he mentions is that SQL is a nightmare due to normalization, the complexity of queries, null semantics and computing over them and the difference between objects and tables.  Erik showed that objects and relations are dual.  &lt;br /&gt;&lt;br /&gt;This is the bit where I introduce monads and say it's like pizza delivery or something.  Screw that.  It's just good in that if your operations follow laws then they can be mapped to other things and inherit any work done to make them good - like optimisation or scaling.  In Erik's talk that meant finding out cool things like noSQL being dual to SQL and LINQ can be done as MapReduce (&lt;a href="http://1.bp.blogspot.com/_2oGca8ZQVtc/TQC5CLUeUII/AAAAAAAAAjI/HbkJCzgV8zY/s320/IMAG0262-1.jpg"&gt;see this slide of Erik's&lt;/a&gt;).  This works because LINQ operations are associative and  &lt;a href="http://stackoverflow.com/questions/329423/parallelizing-the-reduce-in-mapreduce"&gt;MapReduce operations are also associative&lt;/a&gt;.  It's not just a good idea it's a monadic law.  If you can, read 10 pages on category theory (I'm only up to page 8 though).&lt;br /&gt;&lt;br /&gt;Obviously, not everything is peaches.  The noSQL/coSQL people say don't do joins - they don't scale - you can't self join on the web for example.  In a MapReduce/noSQL system you either end up querying multiple times or you end up processing the data again.  I'd suggest that someone will write a library that does multiple queries and joins over noSQL databases so that you don't have to do it yourself - maybe locally and in memory at first, and then with disk based structures for scalability later - I guess this is where LINQ would fit in.&lt;br /&gt;&lt;br /&gt;There were lots of dualing properties in the relational vs noSQL/coSQL talk.  I only remember a few SQL vs noSQL/coSQL: closed world vs open world, identity by value vs identity by reference (or properties), and (I might be wrong) transactional vs non-transactional.&lt;br /&gt;&lt;br /&gt;So with our arrows in hand, ignoring how cool the world will be without JOINs and UNIONs and our mighty knowledge of set theory, what would JOIN and UNION look like if they were a dual and if such a thing existed as 0 and U for relations.  U JOIN R = R becomes 0 UNION R = R and likewise U UNION R = U becomes 0 JOIN R = 0 (&lt;a href="http://jrdf.sourceforge.net/thesis/2006/RelationalBasedSPARQL.html#Modifying"&gt;which matches my existing prejudices&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Just to put the cherry on this pig of a blog post (to mix metaphors), &lt;a href="http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg03277.html"&gt;objects and functions look like duals too&lt;/a&gt; (given that people claim there's no meaning behind what an object is and what a dual is I feel safe anyway):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;But from another perspective, the apply "method" of a closure can be used as a low-level method dispatch mechanism, so closures can be, and are, used to implement very effective objects with multiple methods...With closures seen as a building block with which to implement objects, it's clear that objects are a poor man's closures...If your language only has these restricted closures, and you're forced to build an object system on top of them, it's clear that closures are a poor man's objects.&lt;/div&gt;&lt;/blockquote&gt;  &lt;br /&gt;Erik via &lt;a href="http://www.dartmouth.edu/~matc/MathDrama/reading/Wigner.html"&gt;Eugene Wigner&lt;/a&gt; said there's an unreasonable effectiveness of mathematics and I have to agree.  Monads, duals, properties for LINQ, noSQL, relational databases, SPARQL, and so on.  Very unreasonable and very cool.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-3902657413796634297?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/3902657413796634297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=3902657413796634297' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3902657413796634297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3902657413796634297'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2010/12/whats-dual.html' title='What&amp;#39;s a Dual?'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2109091853031506764</id><published>2010-09-12T15:38:00.003+10:00</published><updated>2011-09-26T20:14:36.320+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='subversion'/><title type='text'>WebDAV No More</title><content type='html'>&lt;a href="http://blog.red-bean.com/sussman/?p=139"&gt;This is reasonably old news&lt;/a&gt;.  And has been obvious pretty much since WebDAV began.  But it's interesting &lt;a href="http://twit.tv/floss28"&gt;to listen to Greg Stein talk about WebDAV, it's history and the reason why it was put into Subversion&lt;/a&gt;.  At the moment if you want to go over &lt;a href="http://svn.apache.org/repos/asf/subversion/trunk/notes/http-and-webdav/webdav-usage.html"&gt;HTTP for Subversion&lt;/a&gt; there's not any other option.&lt;br /&gt;&lt;br /&gt;In the next version of Subversion, &lt;a href="http://subversion.apache.org/roadmap.html"&gt;1.7&lt;/a&gt;, there's going to be a new, not your father's, &lt;a href="http://svn.apache.org/repos/asf/subversion/trunk/notes/http-and-webdav/http-protocol-v2.txt"&gt;Subverison over HTTP&lt;/a&gt;.  It basically means stop pretending to be WebDAV and fix it's problems.  Perhaps the most interesting of which is that versions will have public URIs rather than going around and around using PROPFINDs.  The WebDAV methods remain but it does look like the sprinkle it with some proprietary headers like X-SVN-Version-Name (which seems like a sensible way to send "the version I last knew about" information without the WebDAV tomfoolery).&lt;br /&gt;&lt;br /&gt;As well, there's some other &lt;a href="http://svn.apache.org/repos/asf/subversion/trunk/notes/svnpatch/svnpatch-git.txt"&gt;Git&lt;/a&gt; like features (svn patch to support Git's format).  While I probably still favour DCVS for OS projects, Subversion still makes sense a lot of times.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2109091853031506764?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2109091853031506764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2109091853031506764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2109091853031506764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2109091853031506764'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2010/09/webdav-no-more.html' title='WebDAV No More'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-769855100933330600</id><published>2010-06-28T07:50:00.003+10:00</published><updated>2010-06-28T07:53:42.233+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patterns in software'/><title type='text'>Quality without a Name</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Fail-fast"&gt;Wikipedia on fail fast&lt;/a&gt; including &lt;a href="http://www.martinfowler.com/ieeeSoftware/failFast.pdf"&gt;a PDF highlighting it as a way to write software&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Searching for this kind of work comes across some nice hybrid articles: &lt;a href="http://blog.sriramnarayan.com/2010/02/fail-fast.html"&gt;Fail fast&lt;/a&gt; (for XP), &lt;a href="http://jamesshore.com/Articles/Quality-With-a-Name.html"&gt;James Shore on the Quality without a Name&lt;/a&gt;, also came across &lt;a href="http://www.slideshare.net/jboner/scalability-availability-stability-patterns"&gt;Patterns for Scalability, Availability and Stability&lt;/a&gt; (including Java 7's ParallelArray).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-769855100933330600?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/769855100933330600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=769855100933330600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/769855100933330600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/769855100933330600'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2010/06/quality-without-name.html' title='Quality without a Name'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-66720354214295872</id><published>2010-06-28T07:19:00.001+10:00</published><updated>2010-06-28T07:21:38.697+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Java Lamba</title><content type='html'>No time to explain:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://blogs.sun.com/briangoetz/entry/exception_transparency_in_java"&gt;Exception transparency in Java&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://mail.openjdk.java.net/pipermail/lambda-dev/2010-June/001504.html"&gt;Defender Methods&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://mail.openjdk.java.net/pipermail/lambda-dev/2010-June/001544.html"&gt;Lone throws&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-66720354214295872?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/66720354214295872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=66720354214295872' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/66720354214295872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/66720354214295872'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2010/06/java-lamba.html' title='Java Lamba'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2062817618744298759</id><published>2010-01-17T11:41:00.003+10:00</published><updated>2010-01-17T11:45:16.044+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><title type='text'>Functional Mainstream</title><content type='html'>From reading, "&lt;a href="http://prog21.dadgum.com/54.html"&gt;Functional Programming Doesn't Work (and what to do about it)&lt;/a&gt;" - I found this post along similar lines, "&lt;a href="http://prog21.dadgum.com/31.html"&gt;Functional Programming Went Mainstream Years Ago&lt;/a&gt;": &lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;You can view a Perl (or Python or Ruby or Lua or Rebol) program as a series of small functional programs connected by a lightweight imperative program...0% of the impressive magic from early functional languages has been rolled into mainstream languages. That last 10%, well, it's not clear that anyone is really wanting it or that the benefits are actually there. Purity has some advantages, but it's so convenient and useful to directly modify a dictionary in Python. Fold and map are beautiful, but they work just as well in the guise of a foreach loop.&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2062817618744298759?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2062817618744298759/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2062817618744298759' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2062817618744298759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2062817618744298759'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2010/01/functional-mainstream.html' title='Functional Mainstream'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7124275476366847031</id><published>2009-12-29T23:43:00.008+10:00</published><updated>2009-12-29T23:55:25.138+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Syntax Hell</title><content type='html'>As anyone who has applied a more functional style to Java will realize, the Java syntax really gets in the way.  I was using my usual guinea pig, JRDF, with "with" so you don't have to iterate but apply a function and so you don't have to close a ClosableIterator.  The typical code to print out the graph is:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ClosableIterable&amp;lt;Triple&amp;gt; triples = graph.find(ANY_TRIPLE);&lt;br /&gt;try {&lt;br /&gt;    for (Triple triple : triples) {&lt;br /&gt;        System.out.println("Graph: " + triple);&lt;br /&gt;    }&lt;br /&gt;} finally {&lt;br /&gt;  triples.iterator().close();&lt;br /&gt;}&lt;br /&gt;&lt;/triple&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Using "ClosableIterators.with" this becomes:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;with(graph.find(ANY_TRIPLE), new Function&amp;lt;Void, ClosableIterable&amp;lt;Triple&amp;gt;&amp;gt;() {&lt;br /&gt;     public Void apply(ClosableIterable&amp;lt;Triple&amp;gt; object) {&lt;br /&gt;             for (Triple triple : object) {&lt;br /&gt;                     System.out.println("Graph: " + triple);&lt;br /&gt;             }&lt;br /&gt;             return null;&lt;br /&gt;     }&lt;br /&gt;});&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;It's typically one line less but that's not that much of an improvement.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7124275476366847031?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7124275476366847031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7124275476366847031' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7124275476366847031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7124275476366847031'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/12/syntax-hell.html' title='Syntax Hell'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-3982757290793172895</id><published>2009-11-21T05:49:00.005+10:00</published><updated>2009-11-21T06:08:41.329+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><title type='text'>JRDF 0.5.6 and testing</title><content type='html'>&lt;a href="http://sourceforge.net/projects/jrdf/files/jrdf/jrdf-0.5.6"&gt;JRDF 0.5.6&lt;/a&gt; has JSON SPARQL support and many things got a good refactoring including the MergeJoin (which now looks more like typical text book examples - for better or worse).  The upgrade to Java BDB version 4 has improved disk usage and performance mostly around temporary results from finds and the like.  The next version will include named graph support.&lt;br /&gt;&lt;br /&gt;I'm considering this being the last version to support Java 5.&lt;br /&gt;&lt;br /&gt;This release was also about learning things like Hamcrest, JUnit 4.7, various mock extensions (&lt;a href="http://www.unitils.org/summary.html"&gt;Unitils&lt;/a&gt;, &lt;a href="http://code.google.com/p/powermock/"&gt;Powermock&lt;/a&gt; and &lt;a href="http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/test/context/junit4/SpringJUnit4ClassRunner.html"&gt;Spring automocking&lt;/a&gt; (which didn't make it due to not being able to mix and match runners).  This seems to be a design flaw that I've been encountering with JUnit - you can't mix and match features from various runners.  Even Powermock and JUnit's Rules (for exceptions anyway) was problematic.  The answer was to go back to the inner class block version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-3982757290793172895?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/3982757290793172895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=3982757290793172895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3982757290793172895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3982757290793172895'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/11/jrdf-056-and-testing.html' title='JRDF 0.5.6 and testing'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-3671904991837899914</id><published>2009-08-12T14:55:00.003+10:00</published><updated>2009-08-12T15:14:30.908+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sparql'/><title type='text'>Simpler SPARQL Results</title><content type='html'>SPARQL Results have two different, distinct and unnecessary ways of doings query results - one for SPARQL SELECT and one for SPARQL ASK (the whole SELECT vs ASK is worth pursuing too).&lt;br /&gt;&lt;br /&gt;The section of a SPARQL SELECT XML result looks like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;  &amp;lt;results&amp;gt;&lt;br /&gt;    &amp;lt;result&amp;gt;&lt;br /&gt;      &amp;lt;binding name="x"&amp;gt; ... &amp;lt;/binding&amp;gt;&lt;br /&gt;      &amp;lt;binding name="hpage"&amp;gt; ... &amp;lt;/binding&amp;gt;&lt;br /&gt;    &amp;lt;/result&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;An ASK result looks like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;  &amp;lt;boolean&amp;gt;true&amp;lt;/boolean&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The with the value inside the boolean either true or false (or possibly fred - depending on how you parse it - it would be nice to have an &lt;a href="http://www.w3.org/TR/rdf-sparql-XMLres/result2.xsd"&gt;XSD&lt;/a&gt;).  One set of results live in a results/result/binding and the other in a boolean.  A simpler way to do it is just to use the absence or presence of a binding within the results/result.&lt;br /&gt;&lt;br /&gt;For true:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &amp;lt;results&amp;gt;&lt;br /&gt;    &amp;lt;result&amp;gt;&lt;br /&gt;      &amp;lt;binding/&amp;gt;&lt;br /&gt;    &amp;lt;/result&amp;gt;&lt;br /&gt;  &amp;lt;/results&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;For false:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;  &amp;lt;results&amp;gt;&lt;br /&gt;    &amp;lt;result/&amp;gt;&lt;br /&gt;  &amp;lt;/results&amp;gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The JSON looks pretty much the same:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;{&lt;br /&gt;...&lt;br /&gt;  bindings : [{}] // true&lt;br /&gt;  bindings : []   // false&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;No parsing of true or false or having special cases for code producing or consuming SPARQL different kinds of answers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-3671904991837899914?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/3671904991837899914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=3671904991837899914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3671904991837899914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3671904991837899914'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/08/simpler-sparql-results.html' title='Simpler SPARQL Results'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6580191931812122966</id><published>2009-07-26T07:52:00.003+10:00</published><updated>2009-07-26T07:59:57.808+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apollo'/><title type='text'>A Dangerous Adventure</title><content type='html'>One of the &lt;a href="http://en.wikipedia.org/wiki/Apollo_11_Goodwill_Messages"&gt;many messages left by leaders of the world on a silicon disk&lt;/a&gt; was this: "May the high courage and the technical genius which made this achievement possible be so used in the future that mankind will live in a universe in which peace, self expression, and the chance of a dangerous adventure are available to all."&lt;br /&gt;&lt;br /&gt;Via, &lt;a href="http://www.abc.net.au/worldtoday/content/2009/s2631968.htm"&gt;Debate over future of US space program&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6580191931812122966?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6580191931812122966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6580191931812122966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6580191931812122966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6580191931812122966'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/07/dangerous-adventure.html' title='A Dangerous Adventure'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-3253205206724003121</id><published>2009-07-12T23:49:00.004+10:00</published><updated>2009-07-12T23:55:22.533+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='haptic'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>See and Feel the iPhone</title><content type='html'>&lt;a href="http://www.macrumors.com/2009/07/02/haptic-feedback-fingerprint-identification-and-rfid-tag-readers-in-future-iphones/"&gt;A recent patent&lt;/a&gt; &lt;a href="http://morenews.blogspot.com/2009/03/haptic-technology-for-iphone.html"&gt;backs up an idea I had about a haptic interface for the iPhone&lt;/a&gt; (&lt;a href="http://www.macrumors.com/2008/04/26/apple-looking-to-license-haptic-technology/"&gt;it's not a new idea even for the iPhone&lt;/a&gt;):&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;The proposed solution is the adoption of "haptic" display technologies which allow for some tactile feedback from touch screen displays. Apple proposes including a grid of piezoelectronic actuators that can be activated on command. By fluctuating the frequency of these actuators, the user will "feel" different surfaces as their finger moves across it.&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-3253205206724003121?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/3253205206724003121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=3253205206724003121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3253205206724003121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3253205206724003121'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/07/see-iphone.html' title='See and Feel the iPhone'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-860016841118773695</id><published>2009-07-12T23:37:00.006+10:00</published><updated>2009-07-12T23:48:04.195+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='sparql'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>JRDF 0.5.5.5</title><content type='html'>It's been a long while between updates but it's finally here.  There's been some general concessions made to long standing "features" in JRDF namely relational semantics and checked exceptions - both are gone.  Yuan-Fang added merge-join support which improved join performance (by up to 8 times).  There's Groovy support and a nasty memory leak fixed.  It's in the &lt;a href="http://sourceforge.net/projects/jrdf/files/"&gt;usual place&lt;/a&gt;.  The next version won't be so far away with some further SPARQL query improvements including perhaps some of the &lt;a href="http://www.w3.org/TR/2009/WD-sparql-features-20090702/"&gt;newly proposed features&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-860016841118773695?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/860016841118773695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=860016841118773695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/860016841118773695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/860016841118773695'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/07/jrdf-0555.html' title='JRDF 0.5.5.5'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7950196433538246658</id><published>2009-04-27T22:16:00.002+10:00</published><updated>2009-04-27T22:33:46.138+10:00</updated><title type='text'>Happiness by Empiricism (and no numbers or God)</title><content type='html'>&lt;a href="http://www.abc.net.au/tv/fora/stories/2009/04/24/2552097-p.htm"&gt;Daniel Everett: Endangered Languages and Lost Knowledge&lt;/a&gt;.  There are some quite interesting observations made by Daniel about the Piraha:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;...so English has how many verb forms, well it has about 5, sing, sang, sung, singing, sings...Spanish or Portuguese might have 40 different verb forms, well Piraha like many American Indian languages has a very complex verbal system.  So Piraha has 16 different suffix that can go with the end of a verb, that gives 2 to the 16th power possible verb forms and that is a lot.  That is more than 40.  And of those things, 3 suffixes are very important and those tell you how you got your evidence.  So every verb has to have on it the source of the evidence, did you hear about it, did you see it with your own eyes, or did you deduce it from the local evidence.  So if I say did John go fishing?  They can say John went fishing "heai" which means I heard that he did, or they can say John went fishing “sibiga” and that means I deduced that he did, or they can say John went fishing “ha” and that means I saw he went.  In some respects they are the ultimate empiricist...&lt;br /&gt;&lt;br /&gt;They actually demanded evidence for what I believe and I realized, I could not give it as well as they wanted me to give it.  So, this changed my profoundly, but I remember telling them about Jesus one time and they said “So Dan, is Jesus is he brown like us or is he white like you?  “I do not know I haven’t seen him.”  “What did your dad say?  Because your dad must have seen him.”  “No, he never saw him.”  “Oh what did your friends say who saw him?”  “No I do not know anybody who saw him.”  “Why are you telling us about him then?  Why would you talk about something you do not have evidence for?”  But of course we do that all the time.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This is coupled with the fact that they don't have the concept of one, instead there are only relative terms like little amount.  They also mention that the &lt;a href="http://rosettaproject.org/"&gt;Rosetta Project&lt;/a&gt; is available on DVD.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7950196433538246658?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7950196433538246658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7950196433538246658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7950196433538246658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7950196433538246658'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/happiness-by-empiricism-and-no-numbers.html' title='Happiness by Empiricism (and no numbers or God)'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1113569973203537857</id><published>2009-04-23T05:28:00.006+10:00</published><updated>2009-04-28T05:45:08.617+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='http'/><category scheme='http://www.blogger.com/atom/ns#' term='linked data'/><category scheme='http://www.blogger.com/atom/ns#' term='linkheader'/><category scheme='http://www.blogger.com/atom/ns#' term='powder'/><title type='text'>Linking Resources without HTML, XHTML, Atom...</title><content type='html'>In HTML you can link to alternative versions of your HTML using the link tag:&lt;br /&gt;&amp;lt;link rel="alternate" type="application/rss+xml" title="RSS Feed"&lt;br /&gt;href="report.rss" /&amp;gt;&lt;br /&gt;&lt;br /&gt;There is a way to do linking just using HTTP through the LINK header (as seen in &lt;a href="http://www.w3.org/TR/powder-dr/#httplink"&gt;POWDER&lt;/a&gt;.  It looks very similar but is more powerful, from the IETF draf document:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Link: &amp;lt;http://example.org/&amp;gt;; rel="index start"; &lt;br /&gt;rel="http://example.net/relation/other" rev=copyright&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Defines 4 links for http://example.org/, three outbound (index, start and http://example.net/relation/other) and one inbound (copyright).&lt;br /&gt;&lt;br /&gt;More information: &lt;a href="http://www.infoq.com/presentations/mnot-http-status-1108"&gt;HTTP Status Report&lt;/a&gt; and &lt;a href="http://esw.w3.org/topic/LinkHeader"&gt;LinkHeader&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1113569973203537857?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1113569973203537857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1113569973203537857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1113569973203537857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1113569973203537857'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/linking-resources-with-html-xhtml-atom.html' title='Linking Resources without HTML, XHTML, Atom...'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7592998216179212067</id><published>2009-04-16T06:40:00.007+10:00</published><updated>2009-04-16T07:22:47.652+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='environment'/><title type='text'>Trams in Brisbane and Per Capita Carbon Emissions</title><content type='html'>&lt;a href="http://www.sbs.com.au/news/article/1015639/Australia-must-lead-on-climate:-China"&gt;China expert raps luxurious Aussie life&lt;/a&gt; &lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;Prof Pan was unimpressed with Australia's environmental standards, saying public transport seemed poor and the buildings and street lighting were not energy efficient.&lt;br /&gt;&lt;br /&gt;He labelled as "insufficient" Australia's pledge to cut greenhouse emissions by five to 15 per cent by 2020.&lt;br /&gt;&lt;br /&gt;The Chinese experts called for a global climate pact that would involve each country being allowed to emit a certain amount, based on their populations.&lt;br /&gt;&lt;br /&gt;This is ominous for Australia because it has very high per capita emissions, whereas China has fairly low per capita emissions.&lt;br /&gt;&lt;br /&gt;Australian climate adviser Ross Garnaut backed the per capita push in a video address to the conference, saying it was fair.&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This was at the &lt;a href="http://www.anu.edu.au/climatechange/content/events/435/"&gt;Australia-China Climate Change Forum&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;Although the biggest mistake is that while there is hope that there is clean coal serious investment in other technologies doesn't exist, as highlighted by the recent &lt;a href="http://www.youtube.com/watch?v=W-_U1Z0vezw"&gt;Clean Coal Air Freshener advert&lt;/a&gt; from &lt;a href="http://www.thisisreality.org/"&gt;This is Reality&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As for public transport, Brisbane used to have &lt;a href="http://en.wikipedia.org/wiki/Trams_in_Brisbane"&gt;trams&lt;/a&gt; including a line along Milton Road.  There was fire &lt;a href="http://en.wikipedia.org/wiki/Paddington_tram_depot_fire"&gt;in Paddington&lt;/a&gt; where &lt;a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=+107+Latrobe+Tce,+Paddington,+QLD+4064+&amp;sll=-27.461625,153.006822&amp;sspn=0.00035,0.000711&amp;ie=UTF8&amp;t=h&amp;z=16&amp;iwloc=A&amp;layer=c&amp;cbll=-27.458991,152.997516&amp;panoid=hyhp32D7FdNdvaN3TEWXQw&amp;cbp=12,29.117459843607183,,0,-3.9150943396226467"&gt;Paddington Central is now&lt;/a&gt; and the trams were replaced by buses.  The &lt;a href="http://www.parliament.qld.gov.au/view/EPetitions_QLD/ClosedEPetition.aspx?PetNum=1096&amp;lIndex=-1"&gt;tram e-petition got a massive 600 signatures&lt;/a&gt; which puts it well behind things like &lt;a href="http://www.parliament.qld.gov.au/view/EPetitions_QLD/CurrentEPetition.aspx?PetNum=1141&amp;lIndex=-1"&gt;a petition against recycling water&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7592998216179212067?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7592998216179212067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7592998216179212067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7592998216179212067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7592998216179212067'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/trams-in-brisbane-and-per-capita-carbon.html' title='Trams in Brisbane and Per Capita Carbon Emissions'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1990233200753552267</id><published>2009-04-15T05:40:00.016+10:00</published><updated>2009-04-16T07:29:19.110+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='mapreduce'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>MapReduce vs SQL Databases</title><content type='html'>&lt;a href="http://database.cs.brown.edu/sigmod09/"&gt;A Comparison of Approaches to Large-Scale Data Analysis: MapReduce vs. DBMS Benchmarks&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;...we present the results of running the benchmark on a 100-node cluster to execute each task. We tested the publicly available open-source version of MapReduce, Hadoop [1], against two parallel SQL DBMSs, Vertica [3] and a second system from a major relational vendor.&lt;br /&gt;&lt;br /&gt;First, as we demonstrate in Section 4, at 100 nodes the two parallel DBMSs range from a factor of 3.1 to 6.5 faster than MapReduce on a variety of analytic tasks. While MR may indeed be capable of scaling up to 1000s of nodes, the superior efﬁciency of modern DBMSs alleviates the need to use such massive hardware on datasets in the range of 1–2PB (1000 nodes with 2TB of disk/node has a total disk capacity of 2PB). For example, eBay’s Teradata conﬁguration uses just 72 nodes (two quad-core CPUs, 32GB RAM, 104 300GB disks per node) to manage approximately 2.4PB of relational data. As another example, Fox Interactive Media’s warehouse is implemented using a 40-node Greenplum DBMS. Each node is a Sun X4500 machine with two dual-core CPUs, 48 500GB disks, and 16 GB RAM (1PB total disk space) [7]. Since few data sets in the world even approach a petabyte in size, it is not at all clear how many MR users really need 1,000 nodes.&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;In section 3.1 there's some points made about the advantages of databases over MR in relation to data integrity, "...a MR framework and its underlying distributed storage system has no knowledge of these rules, and thus allows input data to be easily corrupted with bad data. By again separating such constraints from the application and enforcing them automatically by the run time system, as is done by all SQL DBMSs, the integrity of the data is enforced without additional work on the programmer’s behalf."  &lt;br /&gt;&lt;br /&gt;They mention that "all DBMSs require that data conform to a well-deﬁned schema, whereas MR permits data to be in any arbitrary format. Other differences also include how each system provides indexing and compression optimizations, programming models, the way in which data is distributed, and query execution strategies."&lt;br /&gt;&lt;br /&gt;If you strip it away they are talking about text processing versus indexed data structures (and other parts of a DBMS).&lt;br /&gt;&lt;br /&gt;For loading, "Without using either block-or record-level compression, Hadoop clearly outperforms both DBMS-X and Vertica since each node is simply copying each datafile from the local disk into the local HDFS instance and then distributing two replicas to other nodes in the cluster."  The obvious difference to me would be that the SQL databases are creating "...a hash partitioned across all nodes on the salient attribute for that particular table, and then sorted and indexed on different attributes..."&lt;br /&gt;&lt;br /&gt;For text processing, they note that the main problems with Hadoop are the start-up costs (10-25 seconds before all Map tasks start) and during the Reduce phase the cost of combining many small files.  When you are comparing a fully indexed system versus text processing then you would expect the indexed system to be faster.  Compression was also considered an advantage in the systems like Vertica's over Hadoop - where it actually reduced performance.  It depends on the work being done whether the overhead of compression is worth the overhead so obviously - it's not explained why compression was a negative for Hadoop.&lt;br /&gt;&lt;br /&gt;They also talk about the problems in setting up and configuring the parallel databases over Hadoop, which is not an insignificant difference when you are scaling to 100s and 1000s of nodes.&lt;br /&gt;&lt;br /&gt;In the summary they talk about 25 years of database development and the advantages of B-Trees and column stores.  It begs the question, then why wasn't a similar system used on the Hadoop infrastructure?  MR is really more like distributed processing not an indexed, querying system.  &lt;br /&gt;&lt;br /&gt;If you took away the distributed layer what they are doing is comparing something like grep (a really bad implementation of grep) with Lucene or MySQL.  Would anyone be surprised with the results then?  A better comparison would've been comparing it against HBase or other distributed, indexed, data stores like Hive or Cloudbase.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: There's a good followup on the hadoop list by &lt;a href="http://mail-archives.apache.org/mod_mbox/hadoop-core-user/200904.mbox/%3C4312.98.112.71.211.1239808963.squirrel@webmail.streamy.com%3E"&gt;Jonathan Gray&lt;/a&gt; "Hadoop is not suited for random access, joins, dealing with subsets of&lt;br /&gt;your data; ie. it is not a relational database!  It's designed to&lt;br /&gt;distribute a full scan of a large dataset, placing tasks on the same nodes&lt;br /&gt;as the data its processing.  The emphasis is on task scheduling, fault&lt;br /&gt;tolerance, and very large datasets, low-latency has not been a priority. &lt;br /&gt;There are no "indexes" to speak of, it's completely orthogonal to what it&lt;br /&gt;does, so of course there is an enormous disparity in cases where that&lt;br /&gt;makes sense.  Yes, B-Tree indexes are a wonderful breakthrough in data&lt;br /&gt;technology".  He suggested Pig, Hive and Cascading would be more suitable for comparison.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1990233200753552267?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1990233200753552267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1990233200753552267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1990233200753552267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1990233200753552267'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/mr-vs-sql-databases.html' title='MapReduce vs SQL Databases'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6289754058888964733</id><published>2009-04-13T21:49:00.007+10:00</published><updated>2009-04-15T19:34:33.743+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ontology'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><title type='text'>TDD for Ontologies</title><content type='html'>As it was said to me recently, very often something goes from being mysterious and magical to obvious (I'm looking at you not-so-magical-anymore Grails wiring).  So it goes with test driving ontologies (or at least it did for me).  One of the standard methodologies for ontology development is creating competency questions for an ontology to successfully answer.  This generally means gathering requirements, use cases, organising the data and ontology, testing them and maintenance.  Doesn't that sound an awful lot like waterfall?  It would appear obvious, that just like code, ontologies could be developed using test driven design (neh development) instead.  This should have the same benefits as agile code - like being more adaptable to change.&lt;br /&gt;&lt;br /&gt;The closest paper I've come to that talks about this idea is, "&lt;a href="http://www.aifb.uni-karlsruhe.de/WBS/dvr/publications/ontocontent2006unit.pdf"&gt;Unit tests for ontologies&lt;/a&gt;" (and there's also bachelor thesis, &lt;a href="http://www.deri.at/fileadmin/documents/thesis/Unit_Testing_For_Ontologies.pdf"&gt;Unit Testing for Ontologies&lt;/a&gt;).  Unfortunately, it talks about adding tests during the maintenance of software.  Luckily, it talks about using them as a way to initially build the ontology and surely that would be a way to drive out an ontology.  Good stuff.  I could imagine that certain &lt;a href="http://wiki.loa-cnr.it/images/3/31/ERPaperODP.pdf"&gt;good patterns of ontology design&lt;/a&gt; like making them small, self consistent, fast, intuitive, etc. would all come naturally out of applying TDD techniques.&lt;br /&gt;&lt;br /&gt;As an aside the unit testing paper also mentions the usefulness of autoepistemic operators (K and A).  You can state that for a given instance there must exist a certain property, for example, a country must have a capital city.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6289754058888964733?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6289754058888964733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6289754058888964733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6289754058888964733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6289754058888964733'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/04/tdd-for-ontologies.html' title='TDD for Ontologies'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5665495708481979024</id><published>2009-03-31T21:39:00.004+10:00</published><updated>2009-03-31T21:48:56.354+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><title type='text'>One Way to Describe What I Did Today</title><content type='html'>I've thought a bit about how best to describe what I did today.  I spent a whole day, knowingly, adding more technical debt rather than two days removing existing debt.  Now writing bad code is not linear and it's hard to judge but from what I can tell there is now twice as much debt as yesterday.  And this is seen as progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5665495708481979024?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5665495708481979024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=5665495708481979024' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5665495708481979024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5665495708481979024'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/one-way-to-describe-what-i-did-today.html' title='One Way to Describe What I Did Today'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4822864468596282403</id><published>2009-03-20T07:38:00.003+10:00</published><updated>2009-03-20T07:47:13.476+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='finance'/><title type='text'>Things Get Dark</title><content type='html'>&lt;a href="http://www.vimeo.com/3261363"&gt;The Crisis of Credit Visualized&lt;/a&gt;.  It was quite good except maybe the explanation of leverage was a bit extreme, with 10,000 turning into 990,000.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4822864468596282403?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4822864468596282403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4822864468596282403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4822864468596282403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4822864468596282403'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/things-get-dark.html' title='Things Get Dark'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-8167631794753929288</id><published>2009-03-19T20:59:00.004+10:00</published><updated>2009-07-12T23:53:11.326+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='haptic'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Haptic Technology for the iPhone</title><content type='html'>&lt;a href="http://arstechnica.com/apple/news/2009/03/what-apple-didnt-announce-for-iphone-os-30.ars"&gt;One of the questions that often occurs is how could you improve on the iPhone without changing the form factor too much&lt;/a&gt;.  One of the things that occurred to me was mentioned was a keyboard.  But it would be nice to have a keyboard that worked as well as the current one does (well better) so that it could work in both portrait and landscape mode.  Is that crazy talk?&lt;br /&gt;&lt;br /&gt;Well the idea would be to use &lt;a href="http://en.wikipedia.org/wiki/Electrorheological_fluid"&gt;electroheological fluid&lt;/a&gt; to create a keyboard dynamically.  I came across some &lt;a href="http://people.rit.edu/easi/easisem/fricke.html"&gt;discussion on how to use it for braille&lt;/a&gt; and it should work equally well for creating a QWERTY keyboard - although power usage maybe a problem.  For more technical discussion (and I haven't really read it except for the practical use in virtual reality gloves), &lt;a href="http://services.eng.uts.edu.au/cempe/subjects_JGZ/ems/ems_assignments/Ass_7/ER.pdf"&gt;Haptic Interfaces Using &lt;br /&gt;Electroheological Fluids&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-8167631794753929288?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/8167631794753929288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=8167631794753929288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8167631794753929288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8167631794753929288'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/haptic-technology-for-iphone.html' title='Haptic Technology for the iPhone'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7689156390511269820</id><published>2009-03-12T15:34:00.000+10:00</published><updated>2009-03-12T15:35:49.982+10:00</updated><title type='text'>You Should Read This</title><content type='html'>&lt;a href="http://bradclow.blogspot.com/2009/03/tonys-letter-to-medical-board-of.html"&gt;Tony's letter to the Medical Board of Queensland&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7689156390511269820?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7689156390511269820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7689156390511269820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7689156390511269820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7689156390511269820'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/you-should-read-this.html' title='You Should Read This'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4501076720305932898</id><published>2009-03-12T13:46:00.002+10:00</published><updated>2011-09-26T20:13:25.015+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jena'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><title type='text'>Some Nice Programming with Jenabeans</title><content type='html'>&lt;a href="http://www.thewebsemantic.com/2009/03/10/writing-out-sioc-triples-using-jena-jenabean/"&gt;Writing out SIOC triples using Jena + Jenabean&lt;/a&gt; "Jenabean’s model connected programming model makes this easy, using interfaces that declare each of the vocabularies as a set of methods."  The code example shows how you can piece together (using a &lt;a href="http://www.martinfowler.com/bliki/FluentInterface.html"&gt;fluent interface&lt;/a&gt;) different vocabularies:&lt;br /&gt;&lt;code&gt;Thing thing = new Thing(m);&lt;br /&gt;thing.at(uri1).&lt;br /&gt;as(DCTerms.class).&lt;br /&gt;title("Creating connections between discussion clouds with SIOC").&lt;br /&gt;created("2006-09-07T09:33:30Z").&lt;br /&gt;isa(Sioc.Post.class).&lt;br /&gt;has_container(thing.at(uri2)).&lt;br /&gt;...&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4501076720305932898?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4501076720305932898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4501076720305932898' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4501076720305932898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4501076720305932898'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/some-nice-programming-with-jenabeans.html' title='Some Nice Programming with Jenabeans'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2484738210011203638</id><published>2009-03-12T10:19:00.003+10:00</published><updated>2009-03-13T04:37:27.005+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bioinformatics'/><category scheme='http://www.blogger.com/atom/ns#' term='mapreduce'/><title type='text'>CloudBurst</title><content type='html'>&lt;a href="http://apps.sourceforge.net/mediawiki/cloudburst-bio/index.php?title=CloudBurst"&gt;This is software&lt;/a&gt; that uses MapReduce to handle massive amounts of sequence data and reassemble it.  It includes an &lt;a href="http://apps.sourceforge.net/mediawiki/cloudburst-bio/index.php?title=CloudBurst_for_Computer_Scientists"&gt;explanation of the algorithmic side of things&lt;/a&gt;.  I wonder how it compares with &lt;a href="http://genome.cshlp.org/content/18/5/821.full"&gt;using de Bruijn graphs&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2484738210011203638?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2484738210011203638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2484738210011203638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2484738210011203638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2484738210011203638'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/cloudburst.html' title='CloudBurst'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7864568008811788450</id><published>2009-03-11T18:17:00.003+10:00</published><updated>2011-09-26T20:14:24.769+10:00</updated><title type='text'>With the Passage of Time</title><content type='html'>Who would've thought that &lt;a href="http://en.wikipedia.org/wiki/RoboCop"&gt;RoboCop&lt;/a&gt; was overly optimistic.&lt;br /&gt;&lt;br /&gt;First, it was assumed that &lt;a href="http://detnews.com/apps/pbcs.dll/article?AID=/20090308/OPINION03/903080307"&gt;people would still be living there&lt;/a&gt;.  Second, that they'd still be able &lt;a href="http://www.washingtonpost.com/wp-dyn/content/story/2009/03/09/ST2009030902287.html"&gt;to make things like robots&lt;/a&gt;. And third, that cars in America would get &lt;a href="http://en.wikipedia.org/wiki/RoboCop#Vehicles"&gt;8 mpg&lt;/a&gt; and not &lt;a href="http://videos.streetfire.net/video/top-gear-hummer-h1-h2_181453.htm"&gt;1-3.5 mpg&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7864568008811788450?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7864568008811788450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7864568008811788450' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7864568008811788450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7864568008811788450'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/with-passage-of-time.html' title='With the Passage of Time'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-541196772710805597</id><published>2009-03-03T13:39:00.006+10:00</published><updated>2009-03-04T05:12:52.370+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>URLs for 10 minutes</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/magazine/dd458793.aspx"&gt;Protect Your Site With URL Rewriting&lt;/a&gt; seems a little bit of a mad suggestion.  They are basically suggesting that you change your application's URIs every 10 minutes to prevent XSS and XSRF (Cross Site Request Forging).  &lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;We could mitigate much of the risk of these vulnerabilities by frequently changing our URLs—not once every 200 years but once every 10 minutes. Attackers would no longer be able to exploit application vulnerabilities by mass e-mailing poisoned hyperlinks because the links would be broken and invalid by the time the messages reached their intended victims. With all due respect to Sir Tim, while "cool" URIs may not change, secure ones certainly do.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The negatives seem vast and I wonder what this is really trying to solve, as they say at the end:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;An automatically expiring URL can still be exploited by an attacker with access to a Web server of his own. Instead of sending out malicious hyperlinks that point directly to the vulnerable page, he can send out hyperlinks that point to his own site. When his site gets a hit from one of the phished e-mails, it can contact a landing page on the vulnerable site to obtain a valid time stamp and then redirect the user accordingly.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;If you are a REST advocate then maybe a quick read over, &lt;a href="http://www.devarticles.com/c/a/Web-Services/The-ResourceOriented-Architecture-in-Action/"&gt;The Resource-Oriented Architecture in Action&lt;/a&gt;, may soothe you (from the excellent book, RESTful Web Services).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-541196772710805597?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/541196772710805597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=541196772710805597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/541196772710805597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/541196772710805597'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/urls-for-10-minutes.html' title='URLs for 10 minutes'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4620358575556056314</id><published>2009-03-03T10:38:00.007+10:00</published><updated>2009-04-13T20:23:29.608+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ontology'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>A Quick Survey of Bio-Ontologies</title><content type='html'>The other day I was trying to find a paper that talks about the need for ontologies in biology that dated sometime around the early 90s - way before OWL and the Semantic Web.  I couldn't find the paper I was thinking about, but here are some others that are pretty good that seem to follow at least the same themes:&lt;br /&gt; &lt;br /&gt;"&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.6520"&gt;Ontologies for molecular biology&lt;/a&gt;": "Molecular biology has a communication problem. There are many databases using their own labels and categories for storing data objects and some using identical labels and categories but with a different meaning."&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;"&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.5636"&gt;Ontological Foundations for Biology Knowledge Models&lt;/a&gt;":  This one was good because it talked about processes and transformations which is where the rules and inferencing stuff comes in.&lt;br /&gt;&lt;br /&gt;"&lt;a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.43.6200"&gt;Toward Principles for the Design of Ontologies Used for Knowledge Sharing&lt;/a&gt;": While not specifically about biology, this is probably the most cited paper and it's what I often think about when you're explaining ontologies and the process of improvement that occurs when you make one.&lt;br /&gt;&lt;br /&gt;"&lt;a href="http://bib.oxfordjournals.org/cgi/reprint/7/3/256"&gt;Bio-ontologies: current trends and future directions&lt;/a&gt;":  This covers the process and the parts that make a good ontology on the web.  I guess the key for the use of the Web for ontologies is a means to share knowledge.  It also has a good history of ontologies going back to the 1600s.&lt;br /&gt;&lt;br /&gt;And this one is one of the original GO papers, "&lt;a href="http://www.geneontology.org/GO_nature_genetics_2000.pdf"&gt;Gene Ontology: tool for the unification of biology&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4620358575556056314?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4620358575556056314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4620358575556056314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4620358575556056314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4620358575556056314'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/quick-survey-of-bio-ontologies.html' title='A Quick Survey of Bio-Ontologies'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4379402400004903830</id><published>2009-03-03T09:58:00.006+10:00</published><updated>2009-03-04T05:12:12.019+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ted'/><category scheme='http://www.blogger.com/atom/ns#' term='environment'/><title type='text'>Plastic Ocean</title><content type='html'>"&lt;a href="http://www.ted.com/talks/capt_charles_moore_on_the_seas_of_plastic.html"&gt;Sailing the Great Pacific Garbage Patch&lt;/a&gt;" has some interesting points including that there's no such thing as a free range fish (because the oceans are so polluted) and that the island of plastic is more a concentration of plastic - which sounds far worse as far as the environment is concerned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4379402400004903830?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4379402400004903830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4379402400004903830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4379402400004903830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4379402400004903830'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/why-not-biodegradable.html' title='Plastic Ocean'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7824405369595457226</id><published>2009-03-03T09:41:00.002+10:00</published><updated>2009-03-04T05:11:53.719+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creative commons'/><category scheme='http://www.blogger.com/atom/ns#' term='linked data'/><category scheme='http://www.blogger.com/atom/ns#' term='open data'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>Adding Some Herbs to Open Databases</title><content type='html'>"&lt;a href="http://www.xconomy.com/seattle/2009/03/02/harnessing-the-crowd-to-make-better-drugs-mercks-stephen-friend-nails-down-5m-to-propel-biology-into-open-source-era/"&gt;Harnessing the Crowd to Make Better Drugs: Merck’s Friend Nails Down $5M to Propel New Open Source Era&lt;/a&gt;" &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;Friend, 54, is leaving his high-profile job as Merck’s senior vice president of cancer research, after having nailed down $5 million in anonymous donations to pursue this vision at a nonprofit organization getting started in Seattle called Sage.&lt;br /&gt;&lt;br /&gt;Sage is built on the premise that vast networks of genes get perturbed, or thrown off-kilter, in complex diseases like cancer, diabetes, and obesity. Scientists can’t just pick one faulty gene or protein and make a magic bullet to shut it down. But what if researchers around the world capturing genomic profiles on patients could get all of their data to talk to each other through a free, open database? A researcher in Seattle looking at how all 35,000 genes in breast cancer patients are dialed on or off at a certain stage of illness might be able to make critical comparisons by stacking results up against a deeper and broader data pool that integrates clinical, genetic, and other molecular data from peers in, say, San Francisco, New Haven, CT, or anywhere else.&lt;br /&gt;&lt;br /&gt;Some big names have signed on for the early incubating phase. Besides the full-time efforts of Friend and Schadt, the Sage board includes Nobel Laureate Lee Hartwell of the Fred Hutchinson Cancer Research Center; Paul Ramsey dean of the School of Medicine at the University of Washington; Richard Lifton, the chairman of genetics at Yale University; and Hans Wigzell, director emeritus of Sweden’s Karolinska Institute. For insight into how to apply lessons from the open-source computing world, the board has brought on John Wilbanks, the vice president of science at the San Francisco-based Creative Commons.&lt;br /&gt;&lt;br /&gt;As with any far-out vision, plenty of things can derail it along the way. What if researchers use different gene analysis machines, from Affymetrix, Illumina, or Applied Biosystems? How will Sage reconcile differences in how experiments are designed by different scientists? How will researchers be enticed to let go of their precious data, currently stored on password-protected hard drives and servers? How will Sage manage the intellectual property that arises from the database? Why would companies want to participate and run the risk of putting valuable proprietary data out in public? How will this get financed?&lt;br /&gt;&lt;br /&gt;Some of these things Friend can answer, and some still need to be worked out. Software is already making it possible to manage differences between the various instruments scientists use, and deal with the differences in experimental design, Friend says.&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7824405369595457226?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7824405369595457226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7824405369595457226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7824405369595457226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7824405369595457226'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/03/adding-some-herbs-to-open-databases.html' title='Adding Some Herbs to Open Databases'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7638520343119101189</id><published>2009-02-12T11:15:00.031+10:00</published><updated>2009-03-04T05:09:53.354+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='tdd'/><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><category scheme='http://www.blogger.com/atom/ns#' term='junit'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>LOL (List of Links)</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/hamcrest/wiki/Tutorial"&gt;Hamcrest&lt;/a&gt; integrated in JUnit 4.4 and above (JMock like expectations).  Also allows &lt;a href="http://junit.sourceforge.net/doc/ReleaseNotes4.4.html"&gt;Popper theories&lt;/a&gt; (the link in the release notes is available &lt;a href="http://web.archive.org/web/20071012143326/http://popper.tigris.org/tutorial.html"&gt;through archive.org&lt;/a&gt;). which are similar to TestNG's data points.  There are also some examples: &lt;a href="http://shareandenjoy.saff.net/2007/04/popper-and-junitfactory.html"&gt;here&lt;/a&gt;, &lt;a href="http://shareandenjoy.saff.net/2007/04/exploring-with-junit-factory-103-points.html"&gt;here&lt;/a&gt;, &lt;a href="http://www.lexemetech.com/2007/07/junit-gets-flexible-and-philisophical.html"&gt;here&lt;/a&gt; and &lt;a href="http://groovy.codehaus.org/Using+Popper+with+Groovy"&gt;here&lt;/a&gt; (using Groovy). &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/windowlicker/"&gt;Window Licker&lt;/a&gt; an interesting approach to Swing testing.  See the &lt;a href="http://windowlicker.googlecode.com/svn/trunk/calculator-example/"&gt;Calculator example&lt;/a&gt; and &lt;a href="http://www.natpryce.com/presentations/xpday-2008.pdf"&gt;XP Day 2008 presentation&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.smh.com.au/national/pastors-abortion-dream-inflames-bushfire-tragedy-20090210-832f.html"&gt;The bushfires are retribution for the damned&lt;/a&gt;. Apparently, &lt;a href="http://www.abc.net.au/news/stories/2008/09/12/2362487.htm"&gt;God waited 5 months&lt;/a&gt; (or maybe he was too busy appearing in toast) to smite those Victorians down.  The most annoying part of this is the fuzzy thinking.  Instead of considering that it might be poor fuel management practices, bad advice on whether to stay or leave or global warming it's actually about abortion.  If you can speak of a real Christian attitude, the people of &lt;a href="http://www.abc.net.au/7.30/content/2008/s2487793.htm"&gt;North Queensland donating their flood relief money straight to the Victorians&lt;/a&gt; seems more along the right lines.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://book.realworldhaskell.org/read/"&gt;Haskell book to read and buy&lt;/a&gt;. Luckily in that order.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://semanticweb.org/wiki/VoiD"&gt;SemWeb project VoiD&lt;/a&gt; a simple vocabulary for linking and describing different data sets.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://dow.ngra.de/2009/02/01/correcting-the-billion-dollar-mistake/"&gt;A couple of ways of fixing the billion dollar mistake&lt;/a&gt; using &lt;a href="http://www.zeroturnaround.com/javarebel/"&gt;Java Rebel&lt;/a&gt; or maybe Maybe Monad (&lt;a href="http://www.codemonkeyism.com/archives/2008/08/06/for-hack-with-option-monad-in-java/"&gt;using Java 5 for loops even&lt;/a&gt;).  Speaking of which: &lt;a href="http://apfelmus.nfshost.com/monoid-fingertree.html"&gt;Monoid fingertree&lt;/a&gt; (trees in Haskell) and  &lt;a href="http://importantshock.wordpress.com/2009/01/18/jquery-is-a-monad/"&gt;JQuery is  a Monad&lt;/a&gt; (&lt;a href="http://groups.google.com/group/comp.lang.javascript/browse_frm/thread/3d90e8b8a8301462?hl=en&amp;pli=1"&gt;apparently that makes it slow&lt;/a&gt;).  I also realized that &lt;a href="http://cleveralias.blogs.com/thought_spearmints/2008/05/generic-java-fu.html"&gt;Void&lt;/a&gt; is a valid type in Java Generics which is helpful in the dreaded Visitor pattern.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.pbs.org/moyers/journal/blog/2009/01/exchange_between_bill_moyers_a.html"&gt;Bill Moyers on Gaza&lt;/a&gt; and &lt;a href="http://www.youtube.com/watch?v=8UxJWdCwOpc"&gt;Dr Izzeldine Abuelaish sharing his grief on Israeli television&lt;/a&gt;.  More information is available from &lt;a href="http://www.abc.net.au/foreign/content/2009/s2487871.htm"&gt;ABC's Foreign Correspondent story, "The Doctor and his Daughters"&lt;/a&gt; because &lt;a href="http://en.wikipedia.org/wiki/Ezzeldeen_Abu_al-Aish"&gt;the wikipedia page has been deleted&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.infoq.com/interviews/poppendieck-lean-2007"&gt;The Poppendieck's on Lean development&lt;/a&gt; as to balance &lt;a href="http://martinfowler.com/bliki/FlaccidScrum.html"&gt;Martin Fowler on Scrum&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Straight_skeleton"&gt;Straight Skeleton&lt;/a&gt; as a way to generate a skeleton from a polygon.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.jboss.org/resteasy/docs.html"&gt;RESTEasy&lt;/a&gt; JBoss' REST framework.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Microsoft's terrible vengence, Songsmith.  If you love music &lt;a href="http://www.youtube.com/azz100c"&gt;don't click here&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;And &lt;a href="http://www.javaworld.com/cgi-bin/mailto/x_java.cgi?pagetosend=/export/home/httpd/javaworld/javaworld/jw-01-2009/jw-01-year-in-review-4.html&amp;pagename=/javaworld/jw-01-2009/jw-01-year-in-review-4.html&amp;pageurl=http://www.javaworld.com/javaworld/jw-01-2009/jw-01-year-in-review-4.html&amp;site=jw_core"&gt;What's up for Java in 2009?&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7638520343119101189?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7638520343119101189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7638520343119101189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7638520343119101189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7638520343119101189'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2009/02/lol-list-of-links.html' title='LOL (List of Links)'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7156113433748835223</id><published>2008-12-12T09:35:00.009+10:00</published><updated>2008-12-12T16:22:15.342+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='file system'/><category scheme='http://www.blogger.com/atom/ns#' term='metadata'/><title type='text'>Metadata for Fork Sake</title><content type='html'>Once in a while, I get excited and frustrated about the state of metadata - particularly in file systems.  Previously, I've written about &lt;a href="http://morenews.blogspot.com/2004/02/metadata-mac.html"&gt;rumors of OS X doing metadata better&lt;/a&gt; and &lt;a href="http://morenews.blogspot.com/2003/09/should-rdf-model-be-integrated-into.html"&gt;the wonders of BeOS&lt;/a&gt;.  A &lt;a href="http://en.wikipedia.org/wiki/Resource_fork"&gt;resource fork&lt;/a&gt; is something that Macs have had for ages, although it has appeared in other systems before and since:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;The concept of a resource manager for graphics objects, to save memory, originated in the OOZE package on the Alto in Smalltalk-76...Although the Windows NT NTFS can support forks (and so can be a file server for Mac files), the native feature providing that support, called an alternate data stream, has never been used extensively...Early versions of the BeOS implemented a database within the filesystem...Though not strictly a resource fork, AmigaOS stores meta data in files known as .info files...NeXT operating systems NeXTSTEP and OPENSTEP, and its successor, Mac OS X, and other systems like RISC OS implemented another solution. Under these systems the resources are left in an original format, for instance, pictures are included as complete TIFF files instead of being encoded into some sort of container.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This links to the &lt;a href="http://folklore.org/StoryView.py?project=Macintosh&amp;story=The_Grand_Unified_Model_The_Finder.txt"&gt;Grand Unified Model 1&lt;/a&gt; and &lt;a href="http://folklore.org/StoryView.py?project=Macintosh&amp;story=The_Grand_Unified_Model_The_Finder.txt"&gt;Grand Unified Model 2&lt;/a&gt; which are also good for a few quotes:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;Almost every piece of data in the Macintosh ended up being touched by the Grand Unified Model. Even transient data, data being cut and pasted within and between applications, did not escape. The Scrap Manager labeled each piece of data on the clipboard with a resource type. In another Mac innovation, multiple pieces of data, each of a different type, could be stored on the clipboard simultaneously, so that applications could have a choice of representation of the same data (for example, storing both plain and styled text). And since this data could easily be stored on disk in a resource file, we were able to provide cutting and pasting of relatively large chunks of data by writing a temporary file called the Clipboard.&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;Since resource objects were typed, indicating their internal data format, and had ID's or names, it seemed that files should be able to be typed in the same way. There should be no difference between the formats of an independent TEXT file, stored as a standalone file, and a TEXT resource, stored with other objects in a resource file. So I decided we should give files the same four-byte type as resources, known as the type code. Of course, the user should not have to know anything about the file's type; that was the computer's job. So Larry Kenyon made space in the directory entry for each file for the type code, and the Mac would maintain the name as a completely independent piece of information. &lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7156113433748835223?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7156113433748835223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7156113433748835223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7156113433748835223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7156113433748835223'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/12/metadata-for-forks-sake.html' title='Metadata for Fork Sake'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-708719397323546057</id><published>2008-12-09T09:22:00.005+10:00</published><updated>2008-12-15T07:45:43.462+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='restlet'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><title type='text'>Restlet Talk</title><content type='html'>&lt;a href="http://www.slideshare.net/guest7d0e11/creating-a-web-of-data-with-restlet-presentation"&gt;I spoke last night at the Java Users Group about Restlet&lt;/a&gt;.  It's a basic introduction to both Restlet and trying to link data across web sites.  I wasn't very happy with the example - it was basically stolen from &lt;a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html"&gt;a Rails introduction&lt;/a&gt;.  At least I could answer the question about why you would allow your data to be searched (to sell adverts on your recipe web site).  I think it went down okay, mainly because most Java developers are used to large frameworks and complicated APIs in order to do what Restlet does (so it's impressive), the Rails developers knew some of the concepts already and while most are wary of RDF, SPARQL, OWL and the Semantic Web stack it was a fairly incremental addition to achieve something reasonably powerful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-708719397323546057?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/708719397323546057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=708719397323546057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/708719397323546057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/708719397323546057'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/12/restlet-talk.html' title='Restlet Talk'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-9219740569038431016</id><published>2008-12-04T08:51:00.020+10:00</published><updated>2008-12-12T16:13:32.272+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><title type='text'>Getting Groovy with JRDF</title><content type='html'>In an effort to speed up and improve the test coverage in JRDF I've started writing some of the tests in Groovy.  It's been a good experience so far - so much so that I'm probably not going back to writing tests in Java in the future.&lt;br /&gt;&lt;br /&gt;One of the things I wanted to try was a &lt;a href="http://jrdf.svn.sourceforge.net/viewvc/jrdf/trunk/jrdf/test/groovy/org/jrdf/util/test/RdfBuilder.groovy?revision=2823&amp;view=markup"&gt;RdfBuilder&lt;/a&gt;, this is similar to Groovy's &lt;a href="http://groovy.codehaus.org/GroovyMarkup"&gt;NodeBuilder&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;There are a couple of things that make it a bit tricky.  When parsing or debugging builders I haven't yet found a way to find the methods/properties available even using MetaClass.  And of course, when the magic goes wrong it's a bit harder to debug Groovy versus java.&lt;br /&gt;&lt;br /&gt;It certainly smartens up the creation of triples, for example (bits from the &lt;a href="http://www.w3.org/2000/10/rdf-tests/rdfcore/ntriples/test.nt"&gt;NTriples test case&lt;/a&gt;):&lt;code&gt;&lt;br /&gt;def rdf = new RdfBuilder(graph)&lt;br /&gt;rdf.with {&lt;br /&gt;  namespace("eg", "http://example.org/")&lt;br /&gt;  namespace("rdfs", "http://www.w3.org/2000/01/rdf-schema#")&lt;br /&gt;  "eg:resource1" "eg:property":"eg:resource2"&lt;br /&gt;  "_:anon" "eg:property":"eg:resource2"&lt;br /&gt;  "eg:resource1" "eg:property":"_:anon"&lt;br /&gt;  (3..6).each {&lt;br /&gt;    "eg:resource$it" "eg:property":"eg:resource2"&lt;br /&gt;  }&lt;br /&gt;  "eg:resource7" "eg:property":'"simple literal"'&lt;br /&gt;  "eg:resource17" ("eg:property":['"\\u20AC"', &lt;br /&gt;    '"\\uD800\\uDC00"', '"\\uD84C\\uDFB4"', '"\\uDBFF\\uDFFF"'])&lt;br /&gt;  "eg:resource24" "eg:property":'"&amp;lt;a&amp;gt;&amp;lt;/a&amp;gt;"^^rdfs:XMLLiteral'&lt;br /&gt;  "eg:resource31" "eg:property": '"chat"@en'&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;The first two lines defines the two namespaces used.  The third line shows the general use of RDF and Groovy. It works out well, an RDF predicate and object maps to an attribute and value in Groovy.  The next two lines show how you refer to the same blank node across two statements.  And the following lines show using ranges and creating different types of literals.  The third last line creates 4 triples with the same subject and predicate but with different objects.  &lt;br /&gt;&lt;br /&gt;Using the builder results in a file that's smaller than the test case file.  You could remove some duplication by creating a method that takes in a number and the object and generates "eg:resource$number" "eg:property" "$object" but doing that may actually make it harder to read.&lt;br /&gt;&lt;br /&gt;If you stick to only using URIs you can do things like:&lt;code&gt;&lt;br /&gt;rdf.with {&lt;br /&gt;  urn.foo6 {&lt;br /&gt;    urn.bar {&lt;br /&gt;      urn.baz1&lt;br /&gt;      urn.baz2&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;  Which produces two triples: "urn:foo6, urn:bar, urn:baz1" and "urn:foo6, urn:bar, urn:baz2".&lt;br /&gt;&lt;br /&gt;I expect that JRDF will only be more Groovy friendly in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-9219740569038431016?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/9219740569038431016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=9219740569038431016' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/9219740569038431016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/9219740569038431016'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/12/getting-groovy-with-jrdf.html' title='Getting Groovy with JRDF'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4698429136331634939</id><published>2008-11-27T14:28:00.001+10:00</published><updated>2008-11-27T14:42:12.173+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='science'/><title type='text'>Turing in Life</title><content type='html'>Reading the &lt;a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life"&gt;Wikipedia entry on Conway's Game of Life&lt;/a&gt; answers the question of why it was developed "Conway was interested in a problem presented in the 1940s by renowned mathematician John von Neumann, who tried to find a hypothetical machine that could build copies of itself and succeeded when he found a mathematical model for such a machine with very complicated rules on a rectangular grid."  It's interesting that von Neumann's idea of self replication actually predates the discovery of DNA by a few years.&lt;br /&gt;&lt;br /&gt;So I asked Google the question and  &lt;a href="http://rendell-attic.org/gol/tm.htm"&gt;someone has implemented a Turing machine inside Coway's Game of Life&lt;/a&gt;; way back in 2000.  A book called "&lt;a href="http://www.rennard.org/alife/english/logicellgb.pdf"&gt;Collision Based Computing&lt;/a&gt;" and a applet called LogiCell (which uses Conway's Game of Life to do simple calculations) is available &lt;a href="http://www.rennard.org/alife/english/logicellgb.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4698429136331634939?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4698429136331634939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4698429136331634939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4698429136331634939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4698429136331634939'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/11/interesting-question.html' title='Turing in Life'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1737229384978818440</id><published>2008-11-12T08:41:00.004+10:00</published><updated>2008-11-12T09:00:57.457+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sparql'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><title type='text'>Indexing for Efficient SPARQL</title><content type='html'>Another interesting way of indexing triples: &lt;a href="http://arxiv.org/abs/0811.1083"&gt;A role-free approach to indexing large RDF data dets in secondary memory for efficient SPARQL evaluation&lt;/a&gt; "We propose a simple Three-way Triple Tree (TripleT) secondary-memory indexing technique to facilitate efficient SPARQL query evaluation on such data sets. The novelty of TripleT is that (1) the index is built over the atoms occurring in the data set, rather than at a coarser granularity, such as whole triples occurring in the data set; and (2) the atoms are indexed regardless of the roles (i.e., subjects, predicates, or objects) they play in the triples of the data set. We show through extensive empirical evaluation that TripleT exhibits multiple orders of magnitude improvement over the state of the art on RDF indexing, in terms of both storage and query processing costs."&lt;br /&gt;&lt;br /&gt;While looking around at arXiv I did a quick search and found two more interesting papers that seems &lt;a href="http://morenews.blogspot.com/2008/02/no-crappy-wrappers.html"&gt;related to a previous discussion on how the Semantic Web needs it's own programming language&lt;/a&gt; or I would say at least a way to process the web of data, both by Marko A. Rodriguez: "&lt;a href="http://arxiv.org/abs/0802.3492"&gt;The RDF Virtual Machine&lt;/a&gt;" and "&lt;a href="http://arxiv.org/abs/0807.3908"&gt;A Distributed Process Infrastructure for a Distributed Data Structure&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1737229384978818440?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1737229384978818440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1737229384978818440' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1737229384978818440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1737229384978818440'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/11/indexing-for-efficient-sparql.html' title='Indexing for Efficient SPARQL'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4750848597498131707</id><published>2008-11-11T07:43:00.004+10:00</published><updated>2008-12-12T16:14:39.346+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>While you were away...</title><content type='html'>Now that I'm currently looking around for jobs, I came across a presentation on some of the work the the easyDoc project did at Suncorp, "&lt;a href="http://www.infoq.com/presentations/Super-Agile-Craig-Smith-and-Paul-King"&gt;Technical Lessons Learned Turning the Agile Dials to Eleven&lt;/a&gt;".  It includes automating getter/setter testing, hibernate, and immutability.  It's good to see the sophistication continued to increase after I left to reach quite a high level (like automatic triangulation and doing molecule level testing).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4750848597498131707?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4750848597498131707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4750848597498131707' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4750848597498131707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4750848597498131707'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/11/while-you-were-away.html' title='While you were away...'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-9032850489882178399</id><published>2008-10-30T14:14:00.003+10:00</published><updated>2008-10-30T17:57:48.163+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humour'/><title type='text'>Cats Stealing Dogs' Jobs</title><content type='html'>Who knew that people from &lt;a href="http://morenews.blogspot.com/2007/04/jobs-for-my-dog.html"&gt;Japan read my blog&lt;/a&gt;.  &lt;a href="http://en.wikipedia.org/wiki/Tama_(cat)"&gt;Tama&lt;/a&gt; the station master (actually in true Japanese style "super station master") is doing almost the exact thing I mentioned.  Except they added merchandising - those damn cats.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-9032850489882178399?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/9032850489882178399/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=9032850489882178399' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/9032850489882178399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/9032850489882178399'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/10/damn-cats.html' title='Cats Stealing Dogs&apos; Jobs'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6663758330744573436</id><published>2008-10-30T03:57:00.016+10:00</published><updated>2008-11-09T08:08:43.796+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='iswc 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>A Billion Triples in your Pocket</title><content type='html'>At the &lt;a href="http://challenge.semanticweb.org/"&gt;Billion Triples Challenge&lt;/a&gt; this afternoon Cathrin Weiss showed off &lt;a href="http://www.ifi.uzh.ch/ddis/people/weiss/billion-triples-challenge-iswc-2008/"&gt;i-MoCo&lt;/a&gt;.  It's a demonstration not only of a Semantic Web application with an iPhone using a stupid number of triples, but also of their indexing technique &lt;a href="http://i.cs.hku.hk/~pkarras/hexastore.pdf"&gt;Hexastore&lt;/a&gt; which does all 6 indexes of RDF's subject, predicate and object in order to improve querying (they are ordered which allows you to do merge sorts).  Actually, this made me think that the next steps in RDF triple stores will be indexes that are optimised for SPARQL operations and OWL inferences.  Indexes for transitive closure perhaps?  The data is regular and the storage is available to index triples that improve querying performance.&lt;br /&gt;&lt;br /&gt;That wasn't the only impressive demo today.  For me it's a toss up between another iPhone SemWeb demo, &lt;a href="http://beckr.org/dbpediamobile/"&gt;DBPedia mobile&lt;/a&gt; and &lt;a href="http://btc.isweb.uni-koblenz.de/"&gt;SemaPlorer&lt;/a&gt;.  DBPedia stood out because it was the only one that allowed you to write data to the Semantic Web rather than just read the carefully prepared triples.  For a similar reason I thought SemaPlorer was good because they tried to do more by making it more generic like integrating flickr.  But they were all excellent, all of them showing what you get with a billion or more triples and inferencing.&lt;br /&gt;&lt;br /&gt;That combined with the &lt;a href="http://iswc2008.semanticweb.org/program/information-on-keynotes/john-giannandrea/"&gt;guys at Freebase&lt;/a&gt; making all of their &lt;a href="http://rdf.freebase.com/"&gt;data available as RDF&lt;/a&gt; and it was a big day for the Semantic Web.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: I noticed that John Giannadrea's talk when he mentioned the three aspects to Freebase he went from the bottom up - probably reading too much into it.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: Also caught an interview with &lt;a href="http://en.wikipedia.org/wiki/John_Francis_(environmentalist)"&gt;John Francis&lt;/a&gt; the guy who stopped talking, started walking, stopped taking mechanical transport and tried to change the world.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://iswc2008.semanticweb.org/2008/11/07/iswc-2008-awards/"&gt;ISWC 2008 awards&lt;/a&gt; have been published.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6663758330744573436?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6663758330744573436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6663758330744573436' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6663758330744573436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6663758330744573436'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/10/billion-triples-in-your-pocket.html' title='A Billion Triples in your Pocket'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-8749840018776227106</id><published>2008-10-22T21:57:00.002+10:00</published><updated>2008-10-22T22:15:03.622+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='restlet'/><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>Time for REST</title><content type='html'>The best part of &lt;a href="https://sourceforge.net/project/showfiles.php?group_id=96347&amp;package_id=103763&amp;release_id=635032"&gt;the latest release of JRDF&lt;/a&gt; is not code that we've written but &lt;a href="http://www.restlet.org"&gt;Restlet&lt;/a&gt;.  Restlet provided an excellent abstraction for providing RESTful web services and allows deployment without a container (the distributed and local server are both about ~6MB in size).&lt;br /&gt;&lt;br /&gt;This has allowed us to quickly develop a web service that answers SPARQL queries that can be from one or many machines.  We're using it to query the results from MapReduce tasks in our Hadoop cluster but it could probably be used as a general way to query other SPARQL services.&lt;br /&gt;&lt;br /&gt;It's still early days and there's a lot that still needs to be added (and re-added) such as limiting result sizes, being able to choose which format to return and better JSON support.  A lot of it has been pushed out in time to show a front-end at &lt;a href="http://www.cse.lehigh.edu/~yug2/ssws08/home.htm"&gt;SSWS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It would be good to have a Javascript client that submits the SPARQL queries and handles the ordering and such rather than having the distributed query server hang onto all results until returning.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/project/showfiles.php?group_id=96347&amp;package_id=103763&amp;release_id=635032"&gt;Download it here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-8749840018776227106?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/8749840018776227106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=8749840018776227106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8749840018776227106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8749840018776227106'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/10/time-for-rest.html' title='Time for REST'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5525588054282467846</id><published>2008-10-22T09:01:00.003+10:00</published><updated>2008-10-22T09:09:08.173+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='political'/><title type='text'>President of Real America</title><content type='html'>Yes, Virginians you may not be in the real part, "&lt;a href="http://www.huffingtonpost.com/2008/10/21/jon-stewart-clarifies-pal_n_136484.html"&gt;Jon Stewart Clarifies Palin Remarks, Expands To 'F%ck All Y'All'&lt;/a&gt;".  America seems to have gone completely mental.  The second video covers the current lunacy including the pro and anti American members of congress and the endorsement of Colin Powell, a black militant backing Obama, what a surprise.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5525588054282467846?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5525588054282467846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=5525588054282467846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5525588054282467846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5525588054282467846'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/10/president-of-real-america.html' title='President of Real America'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1711218204815064378</id><published>2008-10-21T07:03:00.000+10:00</published><updated>2008-10-21T07:09:51.575+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scala'/><title type='text'>Case Classes</title><content type='html'>Reading "&lt;a href="http://www.codecommit.com/blog/scala/is-scala-not-functional-enough"&gt;Is Scala Not “Functional Enough”?&lt;/a&gt; linked to a post I've read before "&lt;a href="http://beust.com/weblog/archives/000490.html"&gt;Are Scala's case classes a failed experiment?&lt;/a&gt;" but hadn't blogged about it.  In Java I simply avoid using switching based on type (for example, if foo.getClass() else if bar.getClass()) I really like case classes in Scala especially for &lt;a href="http://morenews.blogspot.com/2008/06/scalacc.html"&gt;language processing&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1711218204815064378?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1711218204815064378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1711218204815064378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1711218204815064378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1711218204815064378'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/10/case-classes.html' title='Case Classes'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4091518908838274237</id><published>2008-10-10T09:36:00.005+10:00</published><updated>2008-10-21T06:48:27.355+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>5TB Processing</title><content type='html'>&lt;a href="http://developer.yahoo.net/blogs/hadoop/2008/09/scaling_hadoop_to_4000_nodes_a.html"&gt;Scaling Hadoop to 4000 nodes at Yahoo!&lt;/a&gt; "The 4000-node cluster throughput was 7 times better than 500’s for writes and 3.6 times better for reads even though the bigger cluster carried more (4 v/s 2 tasks) per node load than the smaller one."  They did some performance monitoring of the cluster and achieved sorting 6TB of data in 37 minutes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://www.thestandard.com/news/2008/10/15/ex-google-yahoo-employees-behind-hadoop-startup"&gt;Ex-Google and Yahoo employees create start-up&lt;/a&gt; (called &lt;a href="http://ostatic.com/173730-blog/clouderas-biz-model-supporting-hadoop"&gt;Cloudera&lt;/a&gt;) and &lt;a href="http://wikis.sun.com/download/attachments/38208497/Hadoop-Primer.pdf"&gt;Hadoop Primer by Sun&lt;/a&gt; (PDF).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://developer.yahoo.net/blogs/hadoop/2008/10/hadoop_user_group_meeting.html"&gt;Hadoop users group meeting with IBM talking about different join techniques&lt;/a&gt; and &lt;a href="http://sourceforge.net/projects/cloudbase/"&gt;Cloudbase project&lt;/a&gt; which is an SQL abstraction over log files (&lt;a href="http://internap.dl.sourceforge.net/sourceforge/cloudbase/CloudBase_Tutorial.pdf"&gt;tutorial&lt;/a&gt; PDF).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://news.cnet.com/8301-13505_3-10065876-16.html"&gt;Microsoft's first project is Hadoop&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4091518908838274237?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4091518908838274237/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4091518908838274237' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4091518908838274237'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4091518908838274237'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/10/5tb-processing.html' title='5TB Processing'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6955408025496214</id><published>2008-10-08T07:43:00.000+10:00</published><updated>2008-10-08T07:45:44.108+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='evolution'/><title type='text'>Monks Practicing Evolution</title><content type='html'>Before the printing press allowed exact copies of texts, such as Bibles and &lt;a href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;_udi=B6TCY-42D8103-11&amp;_user=331728&amp;_origUdi=B6V81-444DTH1-5&amp;_fmt=high&amp;_coverDate=03/01/2001&amp;_rdoc=1&amp;_orig=article&amp;_acct=C000016898&amp;_version=1&amp;_urlVersion=0&amp;_userid=331728&amp;md5=ec351187c7c873571efc11d7e29a8afd"&gt;other works&lt;/a&gt;, scribes would copy manuscripts by hand.  These copies were imperfect and these mistakes would then be replicated as other scribes made further copies.  The implication is that the church was practicing evolution before science had even discovered it.  Darwin could've just popped down to his local monastery or church instead of cruising around the world.&lt;br /&gt;&lt;br /&gt;Scientists have used &lt;a href="http://en.wikipedia.org/wiki/Phylogenetic"&gt;phylogentic&lt;/a&gt; software to look at these texts in order to discovery the original document sources (creating a book of life if you will).  Like evolution in the natural world, the mutations aren't random and you get errors such as recombination, lateral transfer, deletions, and even convergent evolution.  There are some interesting relationships that can be determined, such as certain areas of text are more likely to have mistakes in them than others.&lt;br /&gt;&lt;br /&gt;What's cool about a theory, such as evolution, is that it can be applied to many different areas such as natural languages, behavioural patterns, archaeological artifacts, and written works such as chain letters and medieval manuscripts.&lt;br /&gt;&lt;br /&gt;More information, &lt;a href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;_udi=B6TCY-42D8103-11&amp;_user=331728&amp;_origUdi=B6V81-444DTH1-5&amp;_fmt=high&amp;_coverDate=03/01/2001&amp;_rdoc=1&amp;_orig=article&amp;_acct=C000016898&amp;_version=1&amp;_urlVersion=0&amp;_userid=331728&amp;md5=ec351187c7c873571efc11d7e29a8afd"&gt;Manuscript evolution&lt;/a&gt; and &lt;a href="http://www.sciencedirect.com/science?_ob=ArticleURL&amp;_udi=B6WMD-4BJWX81-2&amp;_user=331728&amp;_rdoc=1&amp;_fmt=&amp;_orig=search&amp;_sort=d&amp;view=c&amp;_version=1&amp;_urlVersion=0&amp;_userid=331728&amp;md5=45c107610b48cca3ca800f37c50b5704"&gt;Phylogenetics of artificial manuscripts&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6955408025496214?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6955408025496214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6955408025496214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6955408025496214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6955408025496214'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/10/monks-practicing-evolution.html' title='Monks Practicing Evolution'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6362419428207322359</id><published>2008-10-02T07:59:00.005+10:00</published><updated>2008-10-02T15:46:32.072+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='eresearch'/><category scheme='http://www.blogger.com/atom/ns#' term='cloud computing'/><title type='text'>Coffee Inspired</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;The &lt;a href="http://code.google.com/p/jrdf/wiki/GlobalGraphs"&gt;Global graphs in JRDF&lt;/a&gt; was inspired by the work done in &lt;a href="http://semedia.deit.univpm.it/tiki-index.php?page=RdfContextTools"&gt;MSG&lt;/a&gt; (minimum self-contained graphs, published in the &lt;a href="http://iswc2007.semanticweb.org/papers/533.pdf"&gt;RDFSync paper&lt;/a&gt;) and &lt;a href="http://ebiquity.umbc.edu/paper/html/id/263/Tracking-RDF-Graph-Provenance-using-RDF-Molecules"&gt;RDF Molecules&lt;/a&gt;.  The former links to an implementation of &lt;a href="http://www.dbin.org/"&gt;DBin&lt;/a&gt; (P2P Semantic Web client) and there's also &lt;a href="http://gvs.hpl.hp.com/documentation?stylesheet=/application/stylesheets/combined"&gt;GVS&lt;/a&gt; (Graph Versioning System).&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.guardian.co.uk/technology/2008/sep/29/cloud.computing.richard.stallman"&gt;It's a trap (cloud computing)&lt;/a&gt;  It's a fairly typical Stallman statement - not wrong but not aware of the compromises people make.  It is obvious that one of the reasons vendors are excited about cloud computing is because it is a chance for them to try and own your data (or at least make switching too hard).  But you do have to do more than put data in the cloud - you do have to have executable services there.  There are open source cloud computing infrastructure that you can run-up on your own servers like Hadoop or CouchDB.  And it's not just back to mainframes and renting CPU time out by the hour it really is different to what has gone before.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://paulstamatiou.com/2008/08/21/how-to-live-the-cloud-life"&gt;Live the Cloud Life&lt;/a&gt; lists the cloud computing applications in categories such as email, documents, data, music, photo editing and storing and browser synchronisation.  Some categories are missing like RSS reading and calendaring.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://developer.apple.com/iphone/program/"&gt;Apple drops NDA&lt;/a&gt; - the outrage worked.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The main eResearch 2008 conference is over and &lt;a href="http://espace.library.uq.edu.au/collection/UQ:152010"&gt;some of the papers are available&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Speaking of which, all development, and that definitely includes software, in whatever organisation (universities, governments, banks, etc) should have &lt;a href="http://rondam.blogspot.com/2008/09/failure-must-always-be-option.html"&gt;failure as an option&lt;/a&gt;.  One sign of a truly stuffed culture is to never have a project fail.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.muradora.org/muradora/"&gt;Muradora&lt;/a&gt; a refactoring of Fedora to allow pluggable authentication and enable metadata editing.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Acer Aspire One links: &lt;a href="http://www.aspireoneuser.com/forum/viewtopic.php?f=5&amp;t=3686&amp;p=24646&amp;hilit=dual+monitors#p24646"&gt;Dual Monitor Support&lt;/a&gt;,&lt;br /&gt;&lt;a href="http://macles.blogspot.com/2008/07/installing-firefox-3-on-acer-aspire-one.html"&gt;Installing Firefox 3 on Acer Aspire One Linux&lt;/a&gt; and&lt;br /&gt;&lt;a href="http://macles.blogspot.com/2008/09/updated-repositories.html"&gt;Updated repositories&lt;/a&gt;.  It's a shame that OpenOffice doesn't support presenters view &lt;a href="http://wiki.services.openoffice.org/wiki/Presenter_View"&gt;yet&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6362419428207322359?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6362419428207322359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6362419428207322359' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6362419428207322359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6362419428207322359'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/10/coffee-inspired.html' title='Coffee Inspired'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2443799306857614316</id><published>2008-09-30T09:20:00.000+10:00</published><updated>2008-09-30T09:46:24.924+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='neurocommons'/><category scheme='http://www.blogger.com/atom/ns#' term='life science'/><title type='text'>More Data</title><content type='html'>&lt;a href="http://neurocommons.org/page/RDF_distribution"&gt;Neurocommons have released their integrated RDF datasets&lt;/a&gt;.  It is composed of different modules or &lt;a href="http://neurocommons.org/page/Bundles"&gt;bundles&lt;/a&gt; including MeSH, Medline, OBO and others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2443799306857614316?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2443799306857614316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2443799306857614316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2443799306857614316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2443799306857614316'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/more-data.html' title='More Data'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5844650618100519814</id><published>2008-09-24T08:45:00.039+10:00</published><updated>2008-09-25T11:42:27.456+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='creative commons'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Who Holds the Power?</title><content type='html'>On Monday I went and saw John Wilbanks talk on "Publishing in Today`s Environment" (I can't seem to find a decent URL but a good overview of some of the topics discussed is "&lt;a href="http://poynder.blogspot.com/2008/02/open-access-interviews-john-wilbanks.html"&gt;The Open Access Interviews: John Wilbanks&lt;/a&gt;").  I didn't take many notes but a few things have stuck with me:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Libraries providing a role as repositories of data (both public and private).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The idea of "free as in puppy" in relation to digital curation - a great metaphor.  When someone gives you a puppy it is initially free but the upkeep of it is anything but.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The &lt;a href="http://wiki.creativecommons.org/Government_Information_Licensing_Framework"&gt;Queensland Government has its own Creative Commons initiative&lt;/a&gt; and the &lt;a href="http://creativecommons.org/weblog/entry/9510"&gt;Australian Government is following suite&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;There's a power struggle occurring between researchers and publishers to make data, papers and the like freely available.  The power used to be on the side of publishers but as the producers band together (by country, university, faculty and so on) the power is going back to them.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Creative Commons are continuing to fight, &lt;a href="http://www.earlham.edu/~peters/fos/2008/09/publishers-go-to-congress-to-undo-nih.html"&gt;in cunning ways&lt;/a&gt;, to get back to decent copyright law.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;The kind of behavior that publishers have exhibited appears to be on the way out and seems to be going the other way.  This is where databases interoperate with each other, papers can link to the original data, and tools, data and papers are all part of an integrated experience.  The linking and integration of papers and other artifacts seems to be a one way process, it's hard to imagine a developer, scientist, arts graduate or anyone else spending huge amounts of money and time finally wresting control from one bunch of people only to tie it to another.&lt;br /&gt;&lt;br /&gt;This leads to the &lt;a href="http://www.t-mobileg1.com/"&gt;T-Mobile G1&lt;/a&gt; announcement.  The announcement was very underwhelming - guys speaking for the first 10-15 minutes saying what a wonderful job they had done and the guy talking about how good an experience the &lt;a href="http://techlime.com/mobiles-cellphones-handhelds-pda/live-from-t-mobiles-android-event-in-new-york-city"&gt;phone was at playing Pacman&lt;/a&gt;.  The more intersting part is the &lt;a href="http://www.internetnews.com/mobility/article.php/3773376/TMobiles+G1+Android+Phone+Has+Arrived.htm"&gt;open platform&lt;/a&gt;.  Much like the publishing area the ability to have open access will be a massive differentiator.  It reminded me a bit &lt;a href="http://yupnet.org/zittrain/archives/13#54"&gt;about the discussion on how AOL, Prodigy and the other closed networks quickly died when faced with the open web&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;By contrast, the proprietary networks of CompuServe, AOL, Prodigy, and Minitel were out beating the bushes for content, arranging to provide it through the straightforward economic model of being paid by people who would spend connect time browsing it. If anything, we would expect the proprietary networks to offer more, and for a while they did. But they also had a natural desire to act as gatekeepers—to validate anything appearing on their network, to cut individual deals for revenue sharing with their content providers, and to keep their customers from affecting the network’s technology. These tendencies meant that their rates of growth and differentiation were slow.&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;The closed versus open network is not quite the whole picture with respect to the iPhone versus Android.  While there is competition between &lt;a href="http://www.engadget.com/2008/09/23/amazon-6-million-drm-free-songs-on-t-mobile-g1/"&gt;iTunes versus Amazon&lt;/a&gt;, &lt;a href="http://news.bbc.co.uk/1/hi/technology/7266201.stm"&gt;Streetview versus normal Google Maps&lt;/a&gt; and there will be other content battles, I don't think that's the source of the real innovation.  I think it's probably the technical innovation that the online providers couldn't match that was decisive and will be for phones:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;The software driving these communities was stagnant: subscribers who were both interested in the communities’ content and technically minded had few outlets through which to contribute technical improvements to the way the communities were built. Instead, any improvements were orchestrated centrally. As the initial offerings of the proprietary networks plateaued, the Internet saw developments in technology that in turn led to developments in content and ultimately in social and economic interaction: the Web and Web sites, online shopping, peer-to-peer networking, wikis, and blogs.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;Is developing on an iPhone going to lead to more technical innovation over Android?  Does the ability to have open source code on Android beat the Apple NDAs?&lt;br /&gt;&lt;br /&gt;Apple will probably recognize that it's the developers that will ultimately have the power but like publishing it depends on the actions of both parties.  At the moment both of these new phone platforms are a little limited - the ability for people to innovate on iPhones using iTunes, Mail is out but it &lt;a href="http://www.inquisitr.com/3797/where-the-t-mobile-g1-fails/"&gt;doesn't seem terribly better for Android&lt;/a&gt; (being DRM free is a good start though).  If history is any guide, it would seem to favor open development over closed.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://blog.wired.com/business/2008/09/android-today-t.html"&gt;Similar more succinct explanation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://www.pragprog.com/news/ubuntu-kung-fu-shippingpodcast-iphone-news"&gt;No Pragamatic book due to NDA&lt;/a&gt; - the outrage!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5844650618100519814?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5844650618100519814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=5844650618100519814' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5844650618100519814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5844650618100519814'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/who-holds-power.html' title='Who Holds the Power?'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-3124303286764340285</id><published>2008-09-19T09:09:00.000+10:00</published><updated>2008-09-19T09:10:54.097+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><title type='text'>For Silver</title><content type='html'>&lt;a href="http://weblogs.asp.net/jgalloway/archive/2008/09/17/running-silverlight-2-on-google-chrome-using-the-chrome-dev-channel.aspx"&gt;So now I can finally run Silverlight on Chrome on Windows&lt;/a&gt;, all the ducks are aligned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-3124303286764340285?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/3124303286764340285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=3124303286764340285' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3124303286764340285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3124303286764340285'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/for-silver.html' title='For Silver'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2792713326140574968</id><published>2008-09-16T08:59:00.001+10:00</published><updated>2008-09-16T13:42:09.805+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='semanify'/><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='dapper'/><title type='text'>Make Every Web Site a Semantic Web Site</title><content type='html'>Back in March this was news but I completely missed it.  &lt;a href="http://www.dapper.net/"&gt;Dapper&lt;/a&gt; has a rather nice way of turning web sites into data - XML, JSON, etc but it also includes &lt;a href="http://www.dapper.net/semantify/"&gt;a semanify service&lt;/a&gt;.  It includes using existing &lt;a href="http://www.dapper.net/semantify/resources.php#namespaces"&gt;namespaces&lt;/a&gt; (FOAF, GSS, Creative Commons, Media RSS and Dublin Core) supported by &lt;a href="http://www.ysearchblog.com/archives/000527.html"&gt;Yahoo's search engine&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is covered in more depth in &lt;a href="http://dapper.wordpress.com/2008/03/26/semantify-hacks-creating-a-your-own-rdf-schema-using-dapper/"&gt;Semantify Hacks - Creating a your own RDF schema using Dapper&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;So now, building a Dapp means you also built your own RDF compatible schema, that you can use wherever by just pointing to the webservice:&lt;br /&gt;&lt;br /&gt;http://www.dapper.net/websiteServices/dapp-scheme.php?dappName=MYDAPP&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The given example is MSN's search engine which &lt;a href="view-source:http://www.dapper.net/websiteServices/dapp-scheme.php?dappName=MSNSearchResults"&gt;you can see in all its RDF/XML glory&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.readwriteweb.com/archives/semantify_automate_your_semantic_web_seo_in_five_minutes.php"&gt;ReadWriteWeb has step-by-step instructions&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2792713326140574968?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2792713326140574968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2792713326140574968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2792713326140574968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2792713326140574968'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/make-every-web-site-semantic-web-site.html' title='Make Every Web Site a Semantic Web Site'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5228105854620413402</id><published>2008-09-08T09:44:00.012+10:00</published><updated>2008-09-11T10:13:08.506+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webkit'/><category scheme='http://www.blogger.com/atom/ns#' term='ria'/><category scheme='http://www.blogger.com/atom/ns#' term='silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='adobe'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Into Thick Air</title><content type='html'>&lt;a href="http://ostatic.com/172399-blog/chrome-javascript-and-flash-two-mostly-opposing-views"&gt;Chrome, JavaScript, and Flash: Two (Mostly) Opposing Views&lt;/a&gt; the second comment closely follows a reason update on CounterNotions, &lt;a href="http://counternotions.com/2008/09/03/badnews/"&gt;Google Chrome: Bad news for Adobe&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;But a full-fledged browser. One that behaves, however, as a platform to host applications best tied to cloud computing with built-in local persistence for offline computing. Sure, in its current form Chrome can’t compete with Silverlight or Flex/AIR for what Adobe calls “expressiveness,” meme-speak for rich graphics, animations, integrated video and other visual UI goodies.&lt;br /&gt;&lt;br /&gt;Chrome may shut it off for good. It’s possible that various open source Chrome technologies could melt into Safari and Firefox. But –– whether as a stand-alone product or a progenitor of fast, powerful and expressive browsers –– Chrome signals to anybody but the diehard Microsoft constituents that the browser itself, not a proprietary plug-in or a separate runtime, is the future of RIAs. With its huge ecosystem, Microsoft can live with that. At least until its enterprise monopoly seriously erodes. But Adobe cannot.&lt;br /&gt;&lt;br /&gt;In a world where the online pie is divided among the .NET army of Microsoft, the browser-gang of Apple+Mozilla+Google, and the lone Adobe, it’s not difficult to predict whose share will shrink into insignificance. If the exclusion of Flash from the iPhone wasn’t a wake-up call for Adobe, Chrome should certainly be one.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Most of the &lt;a href="http://www.techcrunch.com/2008/09/01/meet-chrome-googles-windows-killer/"&gt;commentary is focused on the browser within an operating system angle&lt;/a&gt;.  Although one of the &lt;a href="http://googlesystem.blogspot.com/2008/09/google-chromes-about-pages.html"&gt;easter eggs&lt;/a&gt; &lt;a href="about:internets"&gt;is a familiar screensaver&lt;/a&gt;.  I think it's more helpful to concentrate on the fact that these browsers are getting rich enough to remove the applications embedded within browsers.  There is already a lot of functionality developed or being developed such as SVG and storage (part of &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/"&gt;HTML 5&lt;/a&gt;).  Chrome ships with Gears though and Webkit, to see how HTML5 and Gears relates see &lt;a href="http://sites.google.com/site/io/html5-brought-to-you-by-gears"&gt;Aaron Boodman's talk on implementing HTML5 in Gears&lt;/a&gt;.  They create two namespaces one for implementing the standard APIs and one for non-standard APIs - it seems like it has quite a solid development process behind it.  Is there really a lot of reason left to support these proprietary applications within applications?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5228105854620413402?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5228105854620413402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=5228105854620413402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5228105854620413402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5228105854620413402'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/into-thin-air.html' title='Into Thick Air'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-8280314722858048270</id><published>2008-09-08T09:41:00.001+10:00</published><updated>2008-09-08T10:11:32.395+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapreduce'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='cascading'/><title type='text'>More MapReduce Groovy</title><content type='html'>A very good post on Cascading (&lt;a href="http://morenews.blogspot.com/2008/09/more-mapreduce-groovy.html"&gt;covered previously&lt;/a&gt;), &lt;a href=""&gt;GOODBYE MAPREDUCE, HELLO CASCADING&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;&lt;br /&gt;Cascading’s logical model abstracts away MapReduce into a convenient tuples, pipes, and taps model. Data is represented as “Tuples”, a named list of objects. For example, I can have a tuple (”url”, “stats”), where “url” is a Hadoop “Text” object and “stats” is my own “UrlStats” complex object, containing methods for getting “numberOfHits” and “averageTimeSpent”. Tuples are kept together in “streams”, and all tuples in a stream have the exact same fields.&lt;br /&gt;&lt;br /&gt;An operation on a stream of tuples is called a “Pipe”. There are a few kinds of pipes, each encompassing a category of transformations on a tuple stream. For instance, the “Each” pipe will apply a custom function to each individual tuple. The “GroupBy” pipe will group tuples together by a set of fields, and the “Every” pipe will apply an “aggregator function” to all tuples in a group at once.&lt;br /&gt;&lt;br /&gt;One of the most powerful features of Cascading is the ability to fork and merge pipes together.&lt;br /&gt;&lt;br /&gt;Once you have constructed your operations into a “pipe assembly”, you then tell Cascading how to retrieve and persist the data using an abstraction called “Tap”. “Taps” know how to convert stored data into Tuples and vice versa, and have complete control over how and where the data is stored. Cascading has a lot of built-in taps - using SequenceFiles and Text formats via HDFS are two examples. If you want to store data in your own format, you can define your own Tap. We have done this here at Rapleaf and it has worked seamlessly.&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-8280314722858048270?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/8280314722858048270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=8280314722858048270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8280314722858048270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8280314722858048270'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/more-mapreduce-groovy.html' title='More MapReduce Groovy'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-878540162831285989</id><published>2008-09-08T09:35:00.001+10:00</published><updated>2008-09-08T09:37:12.004+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humour'/><title type='text'>Senior Re-Searcher</title><content type='html'>Someone who continues to search (re-search) Google until he finds what is required.  Senior in that he remembers a time before Google.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-878540162831285989?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/878540162831285989/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=878540162831285989' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/878540162831285989'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/878540162831285989'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/senior-re-searcher.html' title='Senior Re-Searcher'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1372042764864231588</id><published>2008-09-03T16:56:00.002+10:00</published><updated>2008-09-03T17:21:55.216+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Stats for Nerds</title><content type='html'>I read "&lt;a href="http://blog.dhananjaynene.com/2008/09/is-google-chrome-under-partiallyreporting-ram-usage/"&gt;Is google chrome under / partially reporting RAM usage ?&lt;/a&gt;" which seems to be the typical problem with Microsoft's task manager.  A better way to check out Chrome vs others is to hit Shift-Escape, click on "&lt;a href="about:memory"&gt;Stats for Nerds&lt;/a&gt;" and it has a comparison there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1372042764864231588?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1372042764864231588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1372042764864231588' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1372042764864231588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1372042764864231588'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/stats-for-nerds.html' title='Stats for Nerds'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-8184654886530829375</id><published>2008-09-02T11:01:00.001+10:00</published><updated>2008-09-03T17:02:13.104+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='political'/><title type='text'>Antimetabole</title><content type='html'>Bill Clinton had an &lt;a href="http://rhetoric.byu.edu/figures/A/antimetabole.htm"&gt;interesting one&lt;/a&gt; recently &lt;a href="http://www.huffingtonpost.com/2008/08/27/bill-clinton-democratic-c_n_121941.html"&gt;in his Democratic convention speech&lt;/a&gt;: "People the world over have always been more impressed by the power of our example than by the example of our power."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-8184654886530829375?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/8184654886530829375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=8184654886530829375' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8184654886530829375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8184654886530829375'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/antimetabole.html' title='Antimetabole'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2455514102484801926</id><published>2008-09-01T21:29:00.015+10:00</published><updated>2008-09-25T11:51:16.285+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='software development'/><category scheme='http://www.blogger.com/atom/ns#' term='patterns in software'/><title type='text'>Thesis and Antithesis</title><content type='html'>&lt;a href="http://www.infoq.com/presentations/Agile-Directions-David-Anderson"&gt;David Anderson on Agile&lt;/a&gt;.  He introduces his talk by discussing some very broad ideas, including how agility has been applied to other areas.  He talks about how the &lt;a href="http://agilemanifesto.org/"&gt;agile manifesto&lt;/a&gt; seems to have become more about belief and superstition than a scientific model.  It's also rarely clicked through - to see the &lt;a href="http://agilemanifesto.org/principles.html"&gt;principles behind the manifesto&lt;/a&gt;.  &lt;br /&gt;&lt;br /&gt;The agile community has found it is better to develop in a failure tolerant environment.  This was a reaction to the focus on more and more accurate estimates which lead to analysis patterns (or antipatterns).  They are antipatterns because there was never enough detail in the analysis to provide accurate enough estimates and to deal with the unexpected.  &lt;br /&gt;&lt;br /&gt;Through his talk he listed a bunch of thought bubbles on software development:&lt;br /&gt;* Value is providing functionality fastest.&lt;br /&gt;* Knowledge work is perishable.  &lt;br /&gt;* Perfect is the enemy of good enough.  &lt;br /&gt;* Develop a high trust, high social capital.&lt;br /&gt;* Have a highly collaborative culture.  &lt;br /&gt;* Reflect and adjust.  &lt;br /&gt;* Sustainable pace.  &lt;br /&gt;* Craftmanship.&lt;br /&gt;* Value is contextual, context is temporal.&lt;br /&gt;* Waste over scale.&lt;br /&gt;&lt;br /&gt;Traditional industries have relied on bigger batch sizes to provide better economies of scale.  With software development the transaction costs causes large batch sizes to work against you.  Smaller batches allow you release more business value more quickly and reduce waste (waste over scale).&lt;br /&gt;&lt;br /&gt;He introduces &lt;a href="http://www.infoq.com/articles/hiranabe-lean-agile-kanban"&gt;kanban which has ideas such as&lt;/a&gt;: pull, flow, and regulate work in progress.  It does not use time boxed iterations and little or no planning or estimations (at least from a traditional agile approach).  It still has constant improvement and delivery.  It drops the idea of a generalist approach to labor which is seen by some as waterfall in disguise.  The reason this comes about is because at an enterprise scale it's not feasible to hire a lot of experts who are excellent generalists - the labor pool does not exist.  This leads to a tension with typical lean principals of reducing waste by having generalists.&lt;br /&gt;&lt;br /&gt;He sees two main changes coming in the future: software factories (software product lines - which includes DSLs) and cloud services (deploying web services in the cloud).  Architecture and modeling will come back in fashion as a value chain allows incentives for delivering common behavior.  He's talking about a 100 fold improvement in productivity through using these ideas.&lt;br /&gt;&lt;br /&gt;Finally, he talks about how &lt;a href="http://en.wikipedia.org/wiki/Capability_Maturity_Model"&gt;CMM&lt;/a&gt;/&lt;a href="http://en.wikipedia.org/wiki/CMMI"&gt;CMMI&lt;/a&gt; is actually quite a good indication of the ability for software projects to succeed and the industry as a whole.  He mentions a report on how agile and CMMI can work together, the idea being that not only is organizational maturity a good idea but it actually means that agile methods can be implemented better (it's called "CMMI or Agile: Why Not Embrace Both?!" - I only found a few references, for example &lt;a href="http://www.agilecmmi.com/2008/03/agilecmmi-panel-sepg.html"&gt;Agile+CMMI Panel @ SEPG&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dehora.net/journal/2008/09/01/embrace-change/"&gt;Via&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Still have &lt;a href="http://www.infoq.com/presentations/arch-extraordinarily-large-systems"&gt;Richard P. Gabriel's&lt;/a&gt; talk to go through too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2455514102484801926?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2455514102484801926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2455514102484801926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2455514102484801926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2455514102484801926'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/09/thesis-and-anti-thesis.html' title='Thesis and Antithesis'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-8859720164516272217</id><published>2008-08-28T07:13:00.003+10:00</published><updated>2008-08-28T07:28:14.426+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><title type='text'>Answering the Right Question</title><content type='html'>&lt;a href="http://www.reddit.com/r/programming/comments/6y7db/the_future_of_the_web_browser_is_a_friendlier/c056rx2"&gt;From a reddit comment on Ubiquity&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;It's a natural-language interface to the entire web. And not a lame "find me the page at http://xxxxx", but "find the page, filter it of information, extract and cross-reference this data with multiple other data-sets and deliver the results to me in a format and medium of my choosing".&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;It's not really naturally language anymore than "Sam and Max" was natural language but the point of the filtering, finding, and integrating seems spot on to me - that's answering the right question.&lt;br /&gt;&lt;br /&gt;It's a bit like &lt;a href="http://www.youtube.com/watch?v=4XpnKHJAok8"&gt;Linus talking about how Subversion sucks&lt;/a&gt; (about half way through is a good place to start) - they made branching cheap - who cares.&lt;br /&gt;&lt;br /&gt;It's this whole &lt;a href="http://morenews.blogspot.com/2007/11/feeling-like-kook.html"&gt;Unix pipes for the web&lt;/a&gt; thing I guess.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-8859720164516272217?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/8859720164516272217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=8859720164516272217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8859720164516272217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/8859720164516272217'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/answering-right-question.html' title='Answering the Right Question'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7769271787614919501</id><published>2008-08-27T15:35:00.009+10:00</published><updated>2008-08-27T15:57:05.721+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='religion'/><title type='text'>Jesus Camp</title><content type='html'>This seems like quite an amazing depiction of American fundamentalists.  It seems as if bigotry and fundamentalism is being turned into a competition with the Middle East.  If you don't like to be scared about American evangelicals look away.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=uOIYsGVyg8M"&gt;Harry Potter is the Devil - JESUS CAMP&lt;/a&gt; - the one that started it all - kinda weird but interesting.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=309MCU8TonE"&gt;Bill Maher on Jesus Camp&lt;/a&gt; - talks about this (from last year).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=5CgvgjfwyPs"&gt;Jesus Camp Bush Insanity (or Child Abuse). Your call.&lt;/a&gt; - laying on of hands to a cardboard George Bush, the mixture of religion and politics - very scary.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=pwGLNbiw1gk"&gt;Oprah Denies Christ&lt;/a&gt; - she tries to reason that there must be more than one way to go to heaven - but of course her audience members don't allow her to get away with that one. Scarier.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=Z89EV9mmfzQ"&gt;CBC Interview with 'Jesus Camp' Filmmakers&lt;/a&gt; - scariest.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7769271787614919501?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7769271787614919501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7769271787614919501' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7769271787614919501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7769271787614919501'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/jesus-camp.html' title='Jesus Camp'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2233043781051739323</id><published>2008-08-27T15:33:00.002+10:00</published><updated>2008-08-27T19:33:01.961+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='ubiquity'/><title type='text'>Finally a Reason for HTML Email</title><content type='html'>&lt;a href="http://www.vimeo.com/1561578"&gt;Ubiquity for Firefox&lt;/a&gt;.  I've been a little hestitant recently to put the stuff I've been finding interesting.  But this has to go up - it's a really great example of user driven mashups and what this Semantic Web thing should be all about.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: More information at "&lt;a href="http://www.techcrunch.com/2008/08/26/if-you-want-to-create-a-mashup-just-ask-your-browser-mozilla-labs-launches-ubiquity/"&gt;If You Want To Create a Mashup, Just Ask Your Browser. Mozilla Labs Launches Ubiquity.&lt;/a&gt;" and &lt;a href="http://labs.mozilla.com/2008/08/introducing-ubiquity/"&gt;the Mozilla Labs blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2233043781051739323?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2233043781051739323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2233043781051739323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2233043781051739323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2233043781051739323'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/finally-reason-for-html-email.html' title='Finally a Reason for HTML Email'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2265729075471274456</id><published>2008-08-22T11:57:00.001+10:00</published><updated>2008-09-08T09:41:20.227+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='cascading'/><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>MapReduce Groovy</title><content type='html'>&lt;a href="http://www.cascading.org/"&gt;Cascading&lt;/a&gt; "The processing API lets the developer quickly assemble complex distributed processes without having to "think" in MapReduce. And to efficiently schedule them based on their dependencies and other available meta-data."&lt;br /&gt;&lt;br /&gt;Also, HBase now supports &lt;a href="https://issues.apache.org/jira/browse/HBASE-669"&gt;transactions&lt;/a&gt; (using &lt;a href="http://en.wikipedia.org/wiki/Optimistic_concurrency_control"&gt;Optimistic Concurrency Control&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Via &lt;a href="http://www.bitquill.net/blog/?p=32"&gt;“Beyond Relational Databases”&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2265729075471274456?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2265729075471274456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2265729075471274456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2265729075471274456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2265729075471274456'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/mapreduce-groovy.html' title='MapReduce Groovy'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-3417188490292729331</id><published>2008-08-22T09:32:00.001+10:00</published><updated>2008-08-22T09:37:55.596+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='star trek'/><title type='text'>The Trouble with Mini-Wheats</title><content type='html'>&lt;a href="http://australialiterally.blogspot.com/2007/11/cereal-blog-7-mini-wheats.html"&gt;Australian Mini-Wheats&lt;/a&gt; are apparently the only &lt;a href="http://en.wikipedia.org/wiki/Frosted_Mini-Wheats"&gt;Mini-Wheats&lt;/a&gt; with triticale, oats, barley, wheat, and rye.  Why is that interesting?  &lt;a href="http://en.wikipedia.org/wiki/Triticale"&gt;Triticale&lt;/a&gt; or &lt;a href="http://memory-alpha.org/en/wiki/Quadrotriticale"&gt;quadrotriticale&lt;/a&gt; (cause we're in the future) was in "The Trouble with Tribbles".  How many Star Trek references do you eat?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-3417188490292729331?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/3417188490292729331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=3417188490292729331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3417188490292729331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3417188490292729331'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/trouble-with-mini-wheats.html' title='The Trouble with Mini-Wheats'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-964131213745550132</id><published>2008-08-21T04:36:00.008+10:00</published><updated>2008-08-21T06:52:51.198+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dell'/><category scheme='http://www.blogger.com/atom/ns#' term='rdfa'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='owl'/><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>Information Poo</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://gizmodo.com/5038298/leaked-dell-inspiron-910-mini-note-specs-and-release-date"&gt;Inspiron 910&lt;/a&gt; hopefully will come out on Friday.  Inspiron means cheap in Dell marketing?  I guess it's better than &lt;a href="http://en.wikipedia.org/wiki/Dell_E"&gt;Dell E&lt;/a&gt;.  There's something wrong with looking forward to a Dell.  I mean there is no &lt;a href="http://appleinsider.com/"&gt;Dell Insider&lt;/a&gt; or &lt;a href="http://www.macrumors.com/"&gt;Inspiron Rumors&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://developer.yahoo.net/blog/archives/2008/08/searchmonkey_tu.html"&gt;SearchMonkey Tutorials&lt;/a&gt;. &lt;a href="http://developer.yahoo.com/searchmonkey/"&gt;SearchMonkey&lt;/a&gt; uses a format similar to RDF called &lt;a href="http://developer.yahoo.com/searchmonkey/smguide/datarss.html"&gt;DataRSS&lt;/a&gt;.  The &lt;a href="http://developer.yahoo.com/searchmonkey/smguide/faq.html"&gt;FAQ&lt;/a&gt; describes the parts of the Semantic Web that work with the parts of SearchMonkey - no reasoning just the triples.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.gracelessfailures.com/2008/08/introduction-to-high-level-programming.html"&gt;Introduction to High-Level Programming With Scala&lt;/a&gt;.  A compiled language that is finally catching up with Ruby's duck typing.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://jtauber.com/blog/2008/08/06/dr_horrible_ringtones/"&gt;Dr Horrible Ringtones&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://blog.semantic-web.at/2008/08/18/freebase-parallax-browsing-ad-infinitum/"&gt;Freebase and Parallax&lt;/a&gt; talks about the &lt;a href="http://mqlx.com/~david/parallax/"&gt;excellent demo making the rounds&lt;/a&gt;.  It's available &lt;a href="http://code.google.com/p/freebase-parallax/"&gt;as an open source project&lt;/a&gt;.  Who knew George Bush has had more than one assassination attempt made on him?  That's the power of the Semantic Web.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://clarkparsia.com/weblog/2008/08/20/3-reasons-google-apps-is-a-big-big-win-so-far/"&gt;The goodness of Google apps&lt;/a&gt; talks about another happy corporate customer (except for Google Code - integrating GitHub does sound good) and mentions &lt;a href="http://code.google.com/appengine/articles/rietveld.html"&gt;Guido's code review tool&lt;/a&gt; part of &lt;a href="http://code.google.com/p/rietveld/"&gt;rietveld&lt;/a&gt; a Google App Engine application.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.w3.org/Submission/2008/SUBM-ccREL-20080501/"&gt;ccREL: The Creative Commons Rights Expression Language&lt;/a&gt;. Using RDFa so you don't repeat yourself.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://glinden.blogspot.com/2008/07/easy-processing-of-massive-data-sets.html"&gt;SCOPE&lt;/a&gt;, &lt;a href="http://glinden.blogspot.com/2008/07/automatic-optimization-on-large-hadoop.html"&gt;Automatic Hadoop Optimization&lt;/a&gt; and &lt;a href="http://glinden.blogspot.com/2008/08/cassandra-data-store-at-facebook.html"&gt;Cassandra&lt;/a&gt; (Facebook's BigTable) all via &lt;a href="http://glinden.blogspot.com/"&gt;Greg&lt;/a&gt;.  &lt;a href="http://code.google.com/p/the-cassandra-project/"&gt;Cassandra is a Google Code project&lt;/a&gt; and includes &lt;a href="http://code.google.com/p/the-cassandra-project/w/list"&gt;some good documentation&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://clarkparsia.com/weblog/2008/08/19/owled-2008-eu-papers/"&gt;OWL ED papers&lt;/a&gt; including &lt;a href="http://clarkparsia.com/files/pdf/change-owled2008-eu.pdf"&gt;an ontology versioning system&lt;/a&gt; and &lt;a href="http://clarkparsia.com/files/pdf/ic-owled2008-eu.pdf"&gt;OWL constraints&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-964131213745550132?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/964131213745550132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=964131213745550132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/964131213745550132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/964131213745550132'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/information-poo.html' title='Information Poo'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6873562851633241256</id><published>2008-08-14T11:29:00.013+10:00</published><updated>2008-08-21T05:57:57.657+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ted'/><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><title type='text'>One Machine</title><content type='html'>Kevin Kelly &lt;a href="http://www.ted.com/index.php/talks/kevin_kelly_on_the_next_5_000_days_of_the_web.html"&gt;predicting the next 5,000 days of the web&lt;/a&gt;.  &lt;a href="http://www.kk.org/thetechnium/archives/2007/11/dimensions_of_t.php"&gt;The specifications for the current web, the one machine, is interesting&lt;/a&gt;.  It uses 5% of the electricty on Earth and holds and processes the equivalent of one human brain (1 HB).  If technology continues growing at the current rate, 6 billion HB will be achieved somewhere between 2020 and 2040, outstripping the current human population (and hopefully the population then as well).  He also mentions that every bit will be a web bit, that all bits go through the web, and you see that happening with traditionally non-web data usage like word processing or mobile phone traffic (actually internet would probably be more accurate).  This coincides with the convergence of digital and atomic "worlds", rather than moving from one to the other (like in "The Matrix") he suggests that it'll be integrated and that we are the extension of the web rather than the other way around.  &lt;br /&gt;&lt;br /&gt;The second half of the talk is about the Semantic Web (&lt;a href="http://juansequeda.blogspot.com/2008/08/predicting-next-5000-days-of-web-ted.html"&gt;found from here&lt;/a&gt;, &lt;a href="http://blogs.zdnet.com/semantic-web/?p=176"&gt;here&lt;/a&gt; and &lt;a href="http://www.twine.com/item/11c8slz76-h3/kevin-kelly-the-technium"&gt;here&lt;/a&gt;).  He describes his own definition of the Semantic Web by showing how it fits into what has gone before.  The stages of networking includes: connecting by site from one computer to another, connecting by page and linking between them and the last two stages (I didn't see a clear distinction between the two) is by data, idea or item.&lt;br /&gt;&lt;br /&gt;His web site also mentions that &lt;a href="http://www.kk.org/thetechnium/archives/2008/08/another_one_for.php"&gt;computers are beating some of the best players at Go&lt;/a&gt; (the article is quite bad - teraflops as a measure of storage - &lt;a href="http://www.usgo.org/index.php?%23_id=4602"&gt;this one is better&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6873562851633241256?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6873562851633241256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6873562851633241256' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6873562851633241256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6873562851633241256'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/one-machine.html' title='One Machine'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2731898021336659275</id><published>2008-08-12T11:30:00.002+10:00</published><updated>2008-08-14T12:41:04.580+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>Real Developers don't use Ruby</title><content type='html'>&lt;a href="http://www.theregister.co.uk/2008/08/11/hadoop_dziuba/"&gt;Hadoop: When grownups do open source&lt;/a&gt;.  It's quite an amusing read - especially the part about the word count example on 9,000 blogs, the digg at Twitter, Starfish being practically useless (using MySQL and no Reduce phase) and the bit about understanding something being harder than writing a Ruby version of it.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;Twitter decided they would be cute and trendy. They wrote their code in Ruby: the official state language of the hipster-developer nation. Doug Cutting, on the other hand, decided he would get xxxx done, and wrote Hadoop in Java. Starling was hidden away in some corner and forgotten (it's hosted at RubyForge...). Hadoop lives prominently at the Apache Software Foundation. Starling is a re-hash of an existing Java Enterprise API called JMS that has several open source implementations. Hadoop is an implementation of Google's MapReduce, a system that publicly only existed on paper. Hadoop has the added benefit of actually working.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Ahh the joys of installing Visual Studio - enough time to install IntelliJ, run it up, and catch up on news.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2731898021336659275?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2731898021336659275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2731898021336659275' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2731898021336659275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2731898021336659275'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/real-developers-dont-use-ruby.html' title='Real Developers don&apos;t use Ruby'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-3576537381035484760</id><published>2008-08-12T11:08:00.002+10:00</published><updated>2008-08-12T16:17:33.452+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='intellij'/><title type='text'>Pigeon Programming</title><content type='html'>&lt;a href="http://www.jetbrains.com/idea/nextversion/"&gt;Intellij 8&lt;/a&gt; continues with "all you need is a space bar and meta combinations to program" functionality: "Pressing Ctrl-Shift-Space twice allows you to find values of the expected types which are "two steps away" (can be retrieved through a chained method call)."  It seems to be supporting what I'd consider a code smell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-3576537381035484760?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/3576537381035484760/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=3576537381035484760' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3576537381035484760'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3576537381035484760'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/pigeon-programming.html' title='Pigeon Programming'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1368406163261670944</id><published>2008-08-12T10:08:00.000+10:00</published><updated>2008-08-12T10:27:26.819+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Burnator</title><content type='html'>Ack, using ISOs on Windows XP fits in that time period where I think I'll do it often enough to remember what software to use but ends up being long enough that I don't.  So the two I've used the most is &lt;a href="http://infrarecorder.sourceforge.net/"&gt;InfraRecord&lt;/a&gt; and &lt;a href="http://isorecorder.alexfeinman.com/isorecorder.htm"&gt;IsoRecorder&lt;/a&gt; (&lt;a href="http://www.microsoft.com/windowsxp/using/setup/learnmore/bott_03september16.mspx"&gt;a secret&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1368406163261670944?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1368406163261670944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1368406163261670944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1368406163261670944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1368406163261670944'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/burnator.html' title='Burnator'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-222664473041654756</id><published>2008-08-11T16:08:00.005+10:00</published><updated>2008-08-21T05:55:00.728+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><title type='text'>JRDF is very crap (part 2)</title><content type='html'>It didn't take as long as expected which means it's probably wrong.  For non-filtered queries it's three times faster and for certain FILTER queries (with equals) it's 47 times faster (from 284 to 6 seconds).  At least it's now in the same order of magnitude as most tools and it's a a tiny bit faster than some (although adding more features will probably slow it down again).&lt;br /&gt;&lt;br /&gt;What changed:&lt;br /&gt;* AttributeValuePair has been removed and replaced with maps (as discussed previously).&lt;br /&gt;* Seeing as though maps were used so much hashCode and equals were optimized.  As I've found before (I think), isAssignableFrom is slower than try/catch for equals (depending on your usage of course).&lt;br /&gt;* Queries go through unsorted and uncopied rather than standard graph finds.  I'd forgotten about how much effort had gone into allowing remove and automatic sorting on iterators.&lt;br /&gt;* A very simple optimizer (it's really only simplifying the FILTER constraints at the moment) was added.  Tree manipulation was painful - I resorted to mutating in place operations.&lt;br /&gt;* Better designed.  It's a bit hard to qualify this except what was there was truly awful - objects being created in constructors and passing itself in.  The nice thing about IoC is it's quite easy to see when you're not using objects at the same architectural level.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=96347&amp;package_id=103763&amp;release_id=619107"&gt;For download&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-222664473041654756?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/222664473041654756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=222664473041654756' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/222664473041654756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/222664473041654756'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/jrdf-is-very-crap-part-2.html' title='JRDF is very crap (part 2)'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1295379832729892411</id><published>2008-08-07T09:08:00.006+10:00</published><updated>2008-08-07T12:53:00.015+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><title type='text'>JRDF is very crap (part 1)</title><content type='html'>I've been spending some time looking at the querying part of JRDF.  And it's quite bad.  How bad?  Well I've been profiling it and noticing that a lot of time was spent comparing attribute value pairs.  An attribute in JRDF consists of a name (variable or position in a triple) and type (position in a triple or literal, URI Reference or blank node).  Comparisons are done during most operations (like joins) and they are done on sorted attribute values.  This is incredibly dumb.  What's much better is to have a map of attributes to values.  No sorting required and O(1) lookup - hurrah.  The code around the comparisons also got a lot simpler and is obviously better.  I think there's at least one other case of this at a different level and potentially room for about an order of magntitude speed up over the current release.  Test queries are already 2-3 times faster.&lt;br /&gt;&lt;br /&gt;The main reason for this though, is that currently the FILTER in JRDF runs about 10 times more slowly than a query using triple matching (this isn't a complexity measurement - it's based on a rather small set of triples).  So a query with "?a &amp;lt;some:value&amp;gt; 'foo'" is much slower than "?a &amp;lt;some:value&amp;gt; ?b . FILTER(str(?b) = 'foo')".  The queries aren't the same but their performance shouldn't be that much slower.  However, in order to get to a stage of improving FILTER's performance the code has to be refactored - hopefully simpler and faster.&lt;br /&gt;&lt;br /&gt;FILTER is nicely functionaly - it seems a shame to implement it in Java - it's eye poppingly bad at the moment.  I was thinking &lt;a href="http://functionaljava.org/"&gt;functional Java&lt;/a&gt; but instead of taking the gateway drug I was think of just &lt;a href="http://www.scala-lang.org/"&gt;going to the hard stuff&lt;/a&gt;.  FILTER is operated by creating different operations within a relation - which allows you to put ANDed FILTERs vertically across a relation (columns) and ORed FILTERs horizontally (rows).  I don't know if anyone else implements it this way - it might be another bad idea over time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1295379832729892411?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1295379832729892411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1295379832729892411' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1295379832729892411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1295379832729892411'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/jrdf-is-very-crap-part-1.html' title='JRDF is very crap (part 1)'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4822429814464341626</id><published>2008-08-02T07:52:00.001+10:00</published><updated>2008-08-06T09:19:35.639+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humour'/><title type='text'>Mice Spiders</title><content type='html'>&lt;a href="http://blog.wired.com/underwire/2008/07/simon-peggs-gee.html"&gt;Interview with Simon Pegg on Spaced&lt;/a&gt;.  The UK DVDs are still the only source of the show (and ABC2) for Australians &lt;a href="http://www.ezydvd.com.au/item.zml/801773"&gt;until October&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4822429814464341626?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4822429814464341626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4822429814464341626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4822429814464341626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4822429814464341626'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/08/mice-spiders.html' title='Mice Spiders'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1822756696805281135</id><published>2008-07-29T10:32:00.002+10:00</published><updated>2008-07-30T13:19:46.512+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ore'/><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='yads'/><title type='text'>YADS and RDF Molecules</title><content type='html'>&lt;a href="http://iandavis.com/blog/2007/03/bnodes-out"&gt;BNodes Out!&lt;/a&gt; discusses how any usefully scalable system doesn't use blank nodes.  What is interesting is the comment on YADS (Yet Another DOI Service).  The best reference is &lt;a href="http://www.slideshare.net/tonyh/yads/"&gt;Tony's presentation&lt;/a&gt; although it is mentioned in &lt;a href="http://www.natlib.govt.nz/downloads/IT19-Hunter-OAI-ORE-Oct30.ppt"&gt;Jane's&lt;/a&gt; as well.  "YADS implements a simple, safe and predictable recursive data model for describing resource collections. The aim is to assist in programming complex resource descriptions across multiple applications and to foster interoperability between them...So, the YADS model makes extensive use of bNodes to manage hierarchies of “fat” resources - i.e. resource islands, a resource decorated with properties. The bNodes are only used as a mechanism for managing containment."  &lt;br /&gt;&lt;br /&gt;This sounds a lot like RDF molecules and supports &lt;a href="http://markmail.org/message/jri3obbzkjtv3bnt"&gt;visualization&lt;/a&gt; (apparently).  This seems like a good use of molecules that I hadn't previously thought of (Tony's talk gives an example of the London underground).  The main homepage of YADS isn't around anymore - it'll be interesting to see if it's still being used/worked on.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: Tony has &lt;a href="http://nurture.nature.com/tony/yads/"&gt;fixed up the YADS home page&lt;/a&gt; (there's also an &lt;a href="http://nurture.nature.com/tony/yads_old/"&gt;older version&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1822756696805281135?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1822756696805281135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1822756696805281135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1822756696805281135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1822756696805281135'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/07/yads-and-rdf-molecules.html' title='YADS and RDF Molecules'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-260604361535460496</id><published>2008-07-28T09:03:00.002+10:00</published><updated>2008-07-28T09:36:27.607+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>Hadoop and Microsoft</title><content type='html'>&lt;a href="http://www.lexemetech.com/2008/07/pluggable-hadoop.html"&gt;Pluggable Hadoop&lt;/a&gt; lists some extensions to Hadoop in the pipeline: job scheduling (including one based on Linux's completely fair scheduler), block placement, instrumentation, serialization, component lifecycle, and code cleanup (the &lt;a href="http://www.dehora.net/journal/2008/07/06/3-12-minutes-to-sort-a-terabyte-hadoops-code-structure/"&gt;analysis&lt;/a&gt; used &lt;a href="http://www.headwaysoftware.com/downloads/structure101/index.php"&gt;Structure101&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I found the &lt;a href="https://issues.apache.org/jira/browse/HBASE-487"&gt;reason why HQL&lt;/a&gt; was removed from HBase (to be replaced by a Ruby DSL and to ensure that HBase wasn't confused with an SQL database) and moved to HRdfStore.&lt;br /&gt;&lt;br /&gt;There's also rumours that &lt;a href="http://gnufreakz.wordpress.com/2008/07/26/microsoft-funds-apache/"&gt;Microsoft's recent investment in Apache&lt;/a&gt; may lead to them working on Hadoop too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-260604361535460496?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/260604361535460496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=260604361535460496' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/260604361535460496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/260604361535460496'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/07/hadoop-and-microsoft.html' title='Hadoop and Microsoft'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-627600882257498113</id><published>2008-07-22T13:31:00.009+10:00</published><updated>2008-07-28T09:37:21.825+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='political'/><title type='text'>Save us China</title><content type='html'>I was in Victoria when the ETS for Australia was announced (&lt;a href="http://www.climatechange.gov.au/greenpaper/index.html"&gt;well the discussion papers&lt;/a&gt;).  It's fairly funny, that replacing &lt;a href="http://www.abc.net.au/news/stories/2007/11/15/2092108.htm"&gt;the world's worst plants even with other coal plants&lt;/a&gt; (&lt;a href="http://www.wwf.org.au/news/n223/"&gt;Hazelwood is the world's worst&lt;/a&gt;), &lt;a href="http://www.theage.com.au/environment/victoria-its-time-to-come-clean-20080705-329r.html?page=2"&gt;with Chineese brown coal plant technology&lt;/a&gt;, would reduce emissions by 30% to 40% (by just drying out the brown coal).  It's still very poluting but it just shows how far behind Australia is.  This has lead to &lt;a href="http://www.theaustralian.news.com.au/story/0,25197,24028731-601,00.html"&gt;greater compensation to Victorian polluters&lt;/a&gt; (which is just mad).  At the same time &lt;a href="http://www.themorningbulletin.com.au/storydisplay.cfm?storyid=3778698"&gt;Queensland is creating another coal port&lt;/a&gt; because we can't export the carbon fast enough.&lt;br /&gt;&lt;br /&gt;The exclusions were annoying (aluminium, cement and some types of steel).  Cement is annoying (5% of all CO2 apparently) as &lt;a href="http://www.abc.net.au/catalyst/stories/2244816.htm"&gt;there exists green alternative technologies&lt;/a&gt;.  The time is to invest not compensate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-627600882257498113?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/627600882257498113/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=627600882257498113' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/627600882257498113'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/627600882257498113'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/07/save-us-china.html' title='Save us China'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7524318478716020175</id><published>2008-07-22T10:48:00.002+10:00</published><updated>2008-07-22T11:21:35.792+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Square brackets are scary</title><content type='html'>For what may be an &lt;a href="http://www.ibm.com/developerworks/opensource/library/os-eclipse-iphoneruby2/"&gt;increasing trend of surfing the Web at 320x480&lt;/a&gt; I noticed &lt;a href="http://cydia.saurik.com/"&gt;Cydia&lt;/a&gt; has a number of applications for Jailbroken iPhones (Java, Python and Ruby mainly).  The mailing list on &lt;a href="http://www.telesphoreo.org/pipermail/iphone-java/2008-July/date.html"&gt;iPhone/Java&lt;/a&gt; doesn't have much on it except some interesting uses of &lt;a href="http://svn.saurik.com/repos/menes/trunk/jocstrap/README"&gt;JocStrap&lt;/a&gt; and &lt;a href="http://www.saurik.com/id/5"&gt;UICaboodle&lt;/a&gt; (&lt;a href="http://svn.saurik.com/repos/menes/trunk/"&gt;available from SVN&lt;/a&gt; by &lt;a href="http://www.saurik.com/"&gt;Jay Freeman&lt;/a&gt;).  There's also &lt;a href="http://blogs.sun.com/java4iphone/"&gt;the Sun blog that has some interesting sample applications&lt;/a&gt; using different Java implementations on the iPhone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7524318478716020175?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7524318478716020175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7524318478716020175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7524318478716020175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7524318478716020175'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/07/square-brackets-are-scary.html' title='Square brackets are scary'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6166565893640691192</id><published>2008-07-04T22:21:00.001+10:00</published><updated>2008-08-02T07:50:19.404+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><title type='text'>JRDF 0.5.5.1 Released</title><content type='html'>Just a quick note about &lt;a href="https://sourceforge.net/project/showfiles.php?group_id=96347&amp;package_id=103763&amp;release_id=611274"&gt;a new version of JRDF&lt;/a&gt;.  It's been a short time between releases but it still contains one significant advance over the previous one and that's persistent graphs.  It's still in the early stages but it's basic enough for simple use cases.  It also contains text serialization (based on NTriples) that is useful for moving RDF molcules around nodes in a cluster (for example).  A lot of this code is fairly much "spike" code and I expect that another release will be released after we exercise these new features more (and write some tests/rewrite the code).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=96347&amp;package_id=103763&amp;release_id=617049"&gt;0.5.5.2 is now available&lt;/a&gt; fixing many bugs and introducing FILTER support.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6166565893640691192?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6166565893640691192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6166565893640691192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6166565893640691192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6166565893640691192'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/07/jrdf-0551-released.html' title='JRDF 0.5.5.1 Released'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5301848164676393070</id><published>2008-07-04T09:38:00.000+10:00</published><updated>2011-09-26T20:15:23.960+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ontology'/><category scheme='http://www.blogger.com/atom/ns#' term='ontologists'/><title type='text'>Of Mats and Cats</title><content type='html'>&lt;a href="http://lists.w3.org/Archives/Public/semantic-web/2008Jul/0078.html"&gt;No universal things Re: comparing XML and RDF data models&lt;/a&gt; was started by Bernard Vatant.  This comes to the heart of whether people can know reality (well that's how I'd summarize the idea of universals see &lt;a href="http://ontology.buffalo.edu/bfo/BeyondConcepts.pdf"&gt;Beyond Concepts&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;There were a few quotes that I found interesting:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;It's been counter-productive in science for centuries. Physics had to go over the notion of universal thing to understand that light is neither a wave, nor a particle. Biology to go over the notion of taxa as rigid concepts based on phenotypes to understand genetics etc. Many examples can be found in all science domains. My day-to-day experience in ontology building, listening to domain experts, is indeed not that 'there are things that people are trying to describe', but that 'there are descriptions people take for granted they represent things before you ask, but really don't know exactly what those things are when you make them look closely'.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Bijan wrote:&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;I do think that the family of views in computational ontologies generally called "realist" is indeed naive and fundamentally wrong headed. Whether it's a "useful fiction" that helps people write better or more compatible ontologies is an open empirical question.&lt;br /&gt;&lt;br /&gt;But I, for one, wouldn't bet on it.&lt;br /&gt;&lt;br /&gt;I remember also a project where we were trying to get people to write simple triples. They got that they needed triples. But what they ended up putting into the tool was things like&lt;br /&gt;&lt;br /&gt;S         P       O&lt;br /&gt;"The cat is" "on the" "mat".&lt;br /&gt;"Mary eats" "pudding" "on toast"&lt;br /&gt;&lt;br /&gt;They just split up the sentences into somewhat equal parts!&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I really feel like an interested amateur and my view is probably influenced by databases in computer science, where you are taking the non-realist approach.  I say this because there are usually properties in databases that are not really based on reality but are a result of other requirements (like a column like "isDeleted" rather than actually deleting the statement).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5301848164676393070?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5301848164676393070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=5301848164676393070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5301848164676393070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5301848164676393070'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/07/of-mats-and-cats.html' title='Of Mats and Cats'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-3861491670541352893</id><published>2008-07-02T09:40:00.012+10:00</published><updated>2008-07-29T08:28:38.684+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='semantic web'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='hadoop'/><title type='text'>Round of Links</title><content type='html'>&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://developer.yahoo.com/blogs/hadoop/2008/07/apache_hadoop_wins_terabyte_sort_benchmark.html"&gt;Apache Hadoop Wins Terabyte Sort Benchmark&lt;/a&gt; "One of Yahoo's Hadoop clusters sorted 1 terabyte of data in 209 seconds...This is the first time that either a Java or an open source program has won."  There were just under 1000 nodes, the &lt;a href="http://www.hpl.hp.com/hosted/sortbenchmark/"&gt;benchmark results are hosted by HP&lt;/a&gt; (&lt;a href="http://www.hpl.hp.com/hosted/sortbenchmark/YahooHadoop.pdf"&gt;a tad more detail here&lt;/a&gt;).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://arstechnica.com/news.ars/post/20080701-microsoft-buys-powerset-gets-foot-in-semantic-search-door.html"&gt;Microsoft buys Powerset&lt;/a&gt; one of the interesting things is that they use Hadoop (see &lt;a href="http://www.powerset.com/blog/"&gt;their blog&lt;/a&gt;).  It's hard to tell whether this is &lt;a href="http://geekfun.com/2008/07/01/goodtimes-for-powerset-hard-times-for-hadoop/"&gt;bad&lt;/a&gt; or &lt;a href="http://ostatic.com/166957-blog/microsoft-powerset-and-open-source-searching"&gt;good&lt;/a&gt; for Hadoop.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.25hoursaday.com/weblog/2008/06/29/TheGOOGMSFTExodusWorkingAtGoogleVsWorkingAtMicrosoft.aspx"&gt;Google vs Microsoft&lt;/a&gt; - oh for structure.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.jroller.com/nivanov/entry/video_gridgain_presentation"&gt;Tom talking about GridGain&lt;/a&gt; from &lt;a href="http://adams.id.au/blog/2008/02/off-the-grid-presentation/"&gt;his presentation in February&lt;/a&gt;.  C++ isn't as productive as Java?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.infoq.com/news/2008/06/applets_jws"&gt;Applets are back&lt;/a&gt; (according to Sun).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://steve-yegge.blogspot.com/2008/02/portrait-of-n00b.html"&gt;Why commenting is for n00bs&lt;/a&gt;. "And Haskell, OCaml and their ilk are part of a 45-year-old static-typing movement within academia to try to force people to model everything. Programmers hate that. These languages will never, ever enjoy any substantial commercial success, for the exact same reason the Semantic Web is a failure. You can't force people to provide metadata for everything they do. They'll hate you."&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.technologyreview.com/Infotech/20918/?a=f"&gt;Some interesting discussion on Web 2.0&lt;/a&gt; and &lt;a href="http://www.technologyreview.com/read_article.aspx?ch=specialsections&amp;sc=futurebiz&amp;id=20943&amp;a="&gt;the future of the web&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.rtepad.com/index.php?inc=example/index"&gt;Rich text editor for browsers&lt;/a&gt;.  Not free though.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.mkbergman.com/?p=447"&gt;Linked data and what it is&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.thoughtworks.com/what-we-say/podcasts.html"&gt;ThoughtWorks Podcasts&lt;/a&gt; (the REST talk was what drew me to it).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.dajobe.org/2004/01/turtle/"&gt;Turtle specification&lt;/a&gt;.  I've been looking at this for serialization of RDF molecules but it seems that you can't have blank nodes as objects using the nested syntax.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.biomedcentral.com/content/pdf/1471-2105-9-S4-S1.pdf"&gt;Semantic Web for bioinformatics&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Data structure stuff: &lt;a href="http://comonad.com/reader/2008/linear-bloom-filters/"&gt;Linear Bloom Filters&lt;/a&gt;, &lt;a href="http://ipowerinfinity.wordpress.com/2008/03/02/bloom-filters-designing-a-spellchecker/"&gt;Bloom filters for Spell Checking&lt;/a&gt;, &lt;A href="http://www.itu.dk/~annao/Publications/Filter.pdf"&gt;Optimal Bloom Filter replacements&lt;/a&gt; and &lt;a href="http://www.hpl.hp.com/techreports/2007/HPL-2007-193.html"&gt;scalable btree&lt;/a&gt; and &lt;a href="http://www.springerlink.com/content/x7545u2g85675u17/"&gt;B-tries for Disk-based String Management&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-3861491670541352893?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/3861491670541352893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=3861491670541352893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3861491670541352893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/3861491670541352893'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/07/round-of-links.html' title='Round of Links'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5063766423614763228</id><published>2008-07-01T09:59:00.001+10:00</published><updated>2008-07-03T16:12:04.894+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Ob. iPhone 2</title><content type='html'>Good to see carriers actually putting up a bit of a fight for iPhone business. &lt;a href="http://www.appleinsider.com/blogs/iphone/08/06/30/netherlands_australias_telstra_get_iphone_edmonton_store_more.html"&gt;Telstra announces iPhone 3G details&lt;/a&gt; with $279, $30 a month on a 24 month, with free access to WiFi hotspots.  This better be true.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: &lt;a href="http://www.optusiphone.com.au/pricing.aspx"&gt;Optus releases pricing&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5063766423614763228?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5063766423614763228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=5063766423614763228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5063766423614763228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5063766423614763228'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/07/ob-iphone-2.html' title='Ob. iPhone 2'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1514951073452821359</id><published>2008-06-30T10:43:00.004+10:00</published><updated>2008-06-30T13:22:08.779+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='scala'/><title type='text'>ScalaCC</title><content type='html'>&lt;a href="http://www.codecommit.com/blog/scala/formal-language-processing-in-scala"&gt;Formal Language Processing in Scala&lt;/a&gt; which links to &lt;a href="http://debasishg.blogspot.com/2008/04/external-dsls-made-easy-with-scala.html"&gt;External DSLs made easy with Scala Parser Combinators&lt;/a&gt; that I'd read from &lt;a href="http://www.artima.com/forums/flat.jsp?forum=276&amp;thread=229061"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Although, just to keep it balanced I have noticed &lt;a href="http://steve-yegge.blogspot.com/2008/06/rhinos-and-tigers.html"&gt;Steve Yegge's comments, under "Static Typing's Paper Tigers", on the complexity of Scala's typing&lt;/a&gt; (it &lt;a href="http://creativekarma.com/ee.php/weblog/comments/static_typing_and_scala/"&gt;does have a lot&lt;/a&gt;) and it has been pointed out &lt;a href="http://www.artima.com/lejava/articles/javaone_2008_dmitry_jemerov.html"&gt;that this does lead to problems with writing IDEs to support it&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1514951073452821359?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1514951073452821359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1514951073452821359' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1514951073452821359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1514951073452821359'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/06/scalacc.html' title='ScalaCC'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-6085426677297469464</id><published>2008-06-26T11:52:00.002+10:00</published><updated>2008-07-01T13:09:31.809+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jrdf'/><title type='text'>JRDF 0.5.5</title><content type='html'>The main difference in &lt;a href="http://sourceforge.net/project/showfiles.php?group_id=96347&amp;package_id=103763&amp;release_id=609329"&gt;version 0.5.5&lt;/a&gt; from the previous one is the inclusion of a RDF molecule store.  Both in memory and disk based versions are supported and can be queried just like a normal triple store.  This is also the first version that has been renamed URQL instead of SPARQL for the query evaluation.  The SPARQL grammar is the same but it does not support the weird outliers that SPARQL has for empty graph patterns but follows relational (and other) algebras.  There's also the usual bug fixes and other features.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update&lt;/b&gt;: Due to a couple of bugs found in 0.5.5 there will be a 0.5.5.1 version released soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-6085426677297469464?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/6085426677297469464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=6085426677297469464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6085426677297469464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/6085426677297469464'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/06/jrdf-055.html' title='JRDF 0.5.5'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7112950685050898351</id><published>2008-06-22T23:56:00.004+10:00</published><updated>2008-06-23T00:19:06.249+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='humour'/><title type='text'>Beef of the Sea</title><content type='html'>Everyone is probably sick of me talking about the &lt;a href="http://www.abc.net.au/tv/gruentransfer"&gt;Gruen Transfer&lt;/a&gt;.  So what better what to continue to talk about it than to blog about it.  Perhaps the best part of the show is &lt;a href="http://www.abc.net.au/tv/gruentransfer/thepitch.htm"&gt;The Pitch&lt;/a&gt; especially episode one's &lt;a href="http://youtube.com/watch?v=49Il01K7vpc"&gt;selling whale meat&lt;/a&gt; (&lt;a href="http://youtube.com/watch?v=G3u1gpFoY2Q"&gt;this is the runner up&lt;/a&gt;) and &lt;a href="http://youtube.com/watch?v=bqZXYSx69tY"&gt;making the Democrats electable&lt;/a&gt; (the second is best).  Who would've thought &lt;a href="http://www.abc.net.au/tv/gruentransfer/episodes/2008_ad_index_Wednesday18June2008.htm"&gt;deconstructing chocolate adverts would be interesting&lt;/a&gt;?  One of the good things is that the &lt;a href="http://www.abc.net.au/tv/gruentransfer/latestshow.htm"&gt;show is available for download&lt;/a&gt;.  There is also some good discussion in the &lt;a href="http://www2b.abc.net.au/tmb/Client/TopicList.aspx?b=121"&gt;forum&lt;/a&gt; and links to &lt;a href="http://www.youtube.com/watch?v=iqKS-hkhhh4"&gt;some other good adverts&lt;/a&gt; (&lt;a href="http://www.ted.com/index.php/talks/view/id/261"&gt;although it possible should've been crows&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7112950685050898351?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7112950685050898351/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7112950685050898351' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7112950685050898351'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7112950685050898351'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/06/beef-of-sea.html' title='Beef of the Sea'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2025645601060220681</id><published>2008-06-17T20:37:00.001+10:00</published><updated>2008-06-18T00:02:18.343+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='microsoft'/><title type='text'>Bad Balmer</title><content type='html'>&lt;a href="http://msftextrememakeover.blogspot.com/2008/06/eight-years-of-wrongness.html"&gt;Eight Years of Wrongness&lt;/a&gt;.  Lists some of the things believed to have gone wrong with Microsoft in the last 10 years or so.  They include: losing the DOJ and EU cases, Vista, XBox, IE, Zune, and Windows Mobile.  Linked mainly because they use Fake Steve as a source of analysis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2025645601060220681?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2025645601060220681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2025645601060220681' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2025645601060220681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2025645601060220681'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/06/bad-balmer.html' title='Bad Balmer'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-2841151256321879259</id><published>2008-06-17T09:20:00.009+10:00</published><updated>2008-06-18T00:02:55.656+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='webkit'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Apple Sprouts</title><content type='html'>&lt;a href="http://www.appleinsider.com/articles/08/06/16/apples_open_secret_sproutcore_is_cocoa_for_the_web.html"&gt;AppleInsider has some details on SproutCore&lt;/a&gt;.  The official web site says, "&lt;a href="http://www.sproutcore.com/"&gt;makes Javascript fun and easy&lt;/a&gt;" - and it's just a &lt;a href="http://www.sproutcore.com/documentation/hello-world-tutorial/"&gt;Ruby gem install away&lt;/a&gt;.  They also link to some previous talk about &lt;a href="http://www.roughlydrafted.com/2008/06/14/cocoa-for-windows-flash-killer-sproutcore/"&gt;Cocoa for Windows&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Apple's &lt;a href="http://theappleblog.com/2007/11/08/apples-trojan-horse-webkit/"&gt;trojan horse&lt;/a&gt; in the &lt;a href="http://counternotions.com/2007/11/15/apple-runtime-answer-2/"&gt;runtime wars&lt;/a&gt; has been well known for a while.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.sproutcore.com/static/photos/"&gt;photo demo&lt;/a&gt; looks a lot like the &lt;a href="http://www.apple.com/mobileme/features/gallery.html"&gt;MobileMe Gallery&lt;/a&gt; that was presented at WWDC 2008 (SproutCore doesn't seem to work too well under IE 7 and the rotation only works in Safari).  &lt;a href="http://www.apple.com/mobileme/features/gallery.html"&gt;Gallery&lt;/a&gt; has less functionality than things like &lt;a href="https://www.photoshop.com/express/index.html?bypass&amp;wf=testdrive"&gt;Photoshop Express&lt;/a&gt; although the integration is obviously better.&lt;br /&gt;&lt;br /&gt;There's also an interesting Javascript library for drawing 2D objects (UML, workflows, etc) that I've been shown recently called &lt;a href="http://draw2d.org/draw2d/"&gt;Draw 2D&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-2841151256321879259?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/2841151256321879259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=2841151256321879259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2841151256321879259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/2841151256321879259'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/06/apple-sprouts.html' title='Apple Sprouts'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4733250481816317015</id><published>2008-06-13T14:24:00.015+10:00</published><updated>2008-06-13T14:59:51.363+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='health commons'/><title type='text'>The Curse of the Floppy Penises</title><content type='html'>A Western floppy penis is more valuable than preventing blindness in an African eye (see &lt;a href="http://en.wikipedia.org/wiki/Neglected_Diseases"&gt;neglected diseases&lt;/a&gt;).  This is part of the story in the video of the launch of "&lt;a href="http://sciencecommons.org/projects/healthcommons/"&gt;The Health Commons&lt;/a&gt;". The video talks about how hundreds of thousands of people go blind from "&lt;a href="http://en.wikipedia.org/wiki/Onchocerciasis"&gt;river blindness&lt;/a&gt;".  It has very little value associated with it and drug companies focus on more valuable drugs to do with baldness and erectile disfunction.  The video goes on to talk about how the network changes things and how there's a lack of process change in science to take advantage of these effects.  If you can leverage network effects then this hopefully reduces the cost of drug discovery making drug development in less valuable diseases viable.  The &lt;a href="http://sciencecommons.org/wp-content/uploads/health-commons-whitepaper-launch.pdf"&gt;white paper&lt;/a&gt; covers some more of this in detail.&lt;br /&gt;&lt;br /&gt;It also talks about an idea that I've often thought of as useful - the collection of failed experiments, "This deeply set inability to capture collective learning dooms everyone to revisit infinitely many blind alleys. The currency of scientific publication encourages individual scientists to hoard rather than share data that they will never have the time or resources to exhaustively mine. And, the wealth of “negative” information gleaned from clinical trial data is mostly lost to the need for companies to safeguard their commercial investments."&lt;br /&gt;&lt;br /&gt;The general idea seems to share and standardize all aspects of research and science.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4733250481816317015?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4733250481816317015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4733250481816317015' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4733250481816317015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4733250481816317015'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/06/curse-of-floppy-penises.html' title='The Curse of the Floppy Penises'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-556410627753527724</id><published>2008-06-12T11:29:00.007+10:00</published><updated>2008-06-13T12:21:32.157+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Ob. iPhone</title><content type='html'>So I've been trying to find more information from a variety of sources on pricing.  &lt;br /&gt;&lt;br /&gt;The closest to reality that I've been able to find is &lt;a href="http://www.itwire.com/content/view/18713/1103/"&gt;these leaked details from Optus&lt;/a&gt; (&lt;a href="http://www.gizmodo.com.au/2008/06/exclusive_optus_iphone_pricing_details.html"&gt;via Gizmodo&lt;/a&gt;):&lt;br /&gt;"The iPhone will only be available on a 24 month contract – no outright purchase, with the 8GB model to sell at AUD $220, and the 16GB model at $330, with only the 16GB model in white as Steve Jobs announced at the WWDC keynote.&lt;br /&gt;&lt;br /&gt;Accessories will only be available through Apple stores – Optus will only carry the iPhone 3G itself, and the all important voice and data plans are as follows: $79 cap for $300 worth of calls and 1GB of data, or a $99 cap with $400 worth of calls and a 3G data download limit. &lt;br /&gt;&lt;br /&gt;Visual voicemail is included, and the cap is whittled away in 35c per 30 second chunks, 25c per SMS message and the always annoying but always present flagfall which is set at 30c."&lt;br /&gt;&lt;br /&gt;This makes it over twice as expensive as the ATT plans (and I think they had unlimited data).  This is where I get cranky about Australian carriers and their stupid plans.  It would probably count me out at those prices.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; No more Apple rumours. As Brad says in the comments, &lt;a href="http://www.gizmodo.com.au/2008/06/exclusive_optus_iphone_pricing_details.html"&gt;this is wrong&lt;/a&gt;.  &lt;br /&gt;&lt;b&gt;Update 2:&lt;/b&gt; Looks like the &lt;a href="http://gizmodo.com/5015600/european-bastards-to-get-free-iphone-and-great-monthly-plans"&gt;UK is getting a good deal&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;Update 3:&lt;/b&gt; Gizmodo link gone...nothing to see here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-556410627753527724?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/556410627753527724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=556410627753527724' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/556410627753527724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/556410627753527724'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/06/ob-iphone.html' title='Ob. iPhone'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-1454124237190800911</id><published>2008-06-11T09:15:00.000+10:00</published><updated>2008-06-11T09:21:11.714+10:00</updated><title type='text'>Evolution and SUVs</title><content type='html'>Two things that have I've been interested in before: &lt;a href="http://blog.wired.com/cars/2008/06/rising-gas-pric.html"&gt;SUVs&lt;/a&gt; and &lt;a href="http://www.newscientist.com/channel/life/dn13620-evolution-24-myths-and-misconceptions.html"&gt;evolution&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The first mirrors what is happening in Australia too &lt;a href="http://www.theage.com.au/news/national/v8-lovers-buck-trend-towards-smaller-cars/2008/05/17/1210765260584.html"&gt;where small cars are winning over larger ones and Falcon sales have dropped by half&lt;/a&gt;.  The F150 isn't really that popular here.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.newscientist.com/channel/life/dn14094-bacteria-make-major-evolutionary-shift-in-the-lab.html"&gt;observation that bacteria have evolved to process other nutrients is interesting&lt;/a&gt;.  But the related articles tend to be a bit more forceful: &lt;a href="http://www.newscientist.com/channel/life/dn13695-evolution-myths-the-theory-is-wrong-because-the-bible-is-inerrant.html"&gt;such as the Bible's many inaccuracies&lt;/a&gt;, &lt;a href="http://www.newscientist.com/channel/life/dn13674-evolution-myths-natural-selection-cannot-explain-homosexuality.html"&gt;the many occurrences of homosexuality and how it actually works in nature&lt;/a&gt; and &lt;a href="http://www.newscientist.com/channel/life/dn13696-evolution-myths-accepting-evolution-undermines-morality.html"&gt;that accepting evolution does not mean rejecting morality&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-1454124237190800911?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/1454124237190800911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=1454124237190800911' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1454124237190800911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/1454124237190800911'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/06/evolution-and-suvs.html' title='Evolution and SUVs'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5569185043185689328</id><published>2008-06-10T09:52:00.031+10:00</published><updated>2008-06-11T13:25:40.188+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><category scheme='http://www.blogger.com/atom/ns#' term='owl'/><title type='text'>Linked Data, FOAF, and OWL DL</title><content type='html'>So I spent a little time a while ago looking through all the different ways ontologies support linked data.  Some of my data I wish to link together is not RDF but documents that define a subject.  For example, a protein will have peer reviewed documents that define it.  It's not RDF but it is important.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www4.wiwiss.fu-berlin.de/bizer/pub/LinkedDataTutorial/"&gt;tutorial on linked data&lt;/a&gt; has a little bit of information: "In order to make it easier for Linked Data clients to understand the relation between http://dbpedia.org/resource/Alec_Empire, http://dbpedia.org/data/Alec_Empire, and http://dbpedia.org/page/Alec_Empire, the URIs can be interlinked using the rdfs:isDefinedBy and the foaf:page property as recommended in the Cool URI paper."&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.dfki.uni-kl.de/~sauermann/2006/11/cooluris/"&gt;Cool URIs paper&lt;/a&gt;, &lt;a href="http://www.dfki.uni-kl.de/~sauermann/2006/11/cooluris/#linking"&gt;Section 4.5&lt;/a&gt; says: "The rdfs:isDefinedBy statement links the person to the document containing its RDF description and allows RDF browsers to distinguish this main resource from other auxiliary resources that just happen to be mentioned in the document. We use rdfs:isDefinedBy instead of its weaker superproperty rdfs:seeAlso because the content at /data/alice is authoritative."&lt;br /&gt;&lt;br /&gt;There is also some discussion about linking in &lt;a href="http://www.w3.org/2001/sw/hcls/notes/uris/"&gt;URI-based Naming Systems for Science&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now my use case is linking things to documents that define that thing.  So &lt;a href="http://www.w3.org/TR/rdf-schema/#ch_seealso"&gt;rdfs:seeAlso&lt;/a&gt; is not appropriate as it "might provide additional information about the subject resource".  And &lt;a href="http://www.w3.org/TR/rdf-schema/#ch_isdefinedby"&gt;rdfs:isDefinedBy&lt;/a&gt; is also out as it is used to link RDF documents together.  I need a property that defines a thing, is authoritative but isn't linking RDF (it's for humans).  I also would like to keep my ontology within OWL DL.&lt;br /&gt;&lt;br /&gt;FOAF has a &lt;a href="http://xmlns.com/foaf/spec/#term_page"&gt;page&lt;/a&gt; property.  I've used the &lt;a href="http://www.mindswap.org/2003/owl/foaf"&gt;OWL DL version&lt;/a&gt; of FOAF before and &lt;a href="http://www.mindswap.org/2005/foaf_cleaner/"&gt;FOAF cleaner&lt;/a&gt; (or should that be RDFS cleaner).  So it seemed like a good match.  However, its inverse is &lt;a href="http://xmlns.com/foaf/spec/#term_topic"&gt;topic&lt;/a&gt; which isn't good.  Because I'm linking the thing to the page - it's not a topic.  So scrub that.&lt;br /&gt;&lt;br /&gt;RSS has a &lt;a href="http://web.resource.org/rss/1.0/schema.rdf"&gt;link property&lt;/a&gt; which extends Dublin Core's &lt;a href="http://dublincore.org/documents/dcmi-terms/#terms-identifier"&gt;identifier&lt;/a&gt;.  This seems more like it.  However, I'd like to extend my own version of link and I'm stuck because as soon as you use RDFS vocabularies in OWL DL you're in OWL Full territory.  It'd be nice to stay in OWL DL.  There is an &lt;a href="http://protege.stanford.edu/plugins/owl/dc/protege-dc.owl"&gt;OWL DL version of Dublin Core&lt;/a&gt;.  All of the Dublin Core properties are nicely converted to &lt;a href="http://www.w3.org/TR/owl-ref/#Header"&gt;annotation properties&lt;/a&gt;.  However, you're still stuck because you can't make sub-properties without going into OWL Full.  I like the idea of annotation and semantically Dublic Core seems to be a suitable vocabulary of annotation properties.  Extending Dublin Core is out of OWL DL - which is shame because it's probably the closest match to what I wanted.&lt;br /&gt;&lt;br /&gt;As an aside, annotation properties are outside the reasoning engine.  The idea is that you don't want an OWL reasoner or RDF application necessarily inferring over this data or trying to look it up in order for the document to be understood.  So the way they do it in OWL DL is to have annotation properties that are outside of/special to the usual statements.   Sub-properties require reasoning, so limiting them makes some sense but it does hamper extensibility - it'd be nice to express them and turn on the reasoning only when asking about those properties (I think Pellet has this feature but I didn't look up the details).&lt;br /&gt;&lt;br /&gt;The other vocabulary I looked at was &lt;a href="http://rdfs.org/sioc/spec/#term_link"&gt;SIOC's link&lt;/a&gt;.  Again, this seems like a close match but again it's RDFS.&lt;br /&gt;&lt;br /&gt;In the end, I just created another annotation property called link.&lt;br /&gt;&lt;br /&gt;In summary:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;For my requirements, the suggestions for linking data seems to only work for RDF and RDFS ontologies.  Reusing RDFS from OWL DL or OWL DL from RDFS doesn't look feasible as one isn't a subset of the other (an old problem I guess).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Current, popular Semantic Web vocabularies are in RDFS.  Why aren't there more popular OWL DL versions of these things?  Is the lack of extensibility holding it back?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Is my expectation wrong - should I stick within OWL DL or is an RDFS and OWL DL combination okay?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Why not allow annotation properties to have sub-properties?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Maybe the OWL DL specification does have suitable properties for linking certain data but I don't understand which is the right one.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update:&lt;/b&gt; The Neurocommon's &lt;a href="http://neurocommons.org/page/URI_documentation_protocol"&gt;URI documentation protocol&lt;/a&gt; is quite similar as well.  Except that, it seems to be too specific as it ties the name with a single thing that defines it.  All the parts of Step 5 could potentially be eliminated with what I'm thinking of.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5569185043185689328?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5569185043185689328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=5569185043185689328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5569185043185689328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5569185043185689328'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/06/linked-data-foaf-and-owl-dl.html' title='Linked Data, FOAF, and OWL DL'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-5576403223226118853</id><published>2008-05-30T16:35:00.000+10:00</published><updated>2008-05-30T16:43:21.120+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='environment'/><title type='text'>Somewhere</title><content type='html'>&lt;a href="http://abcnews.go.com/International/Weather/Story?id=4947776&amp;page=1"&gt;&lt;br /&gt;Alarm Bells Sound for the Amazon&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div&gt;Brazil's land mass and farming industry make it one of the most agriculturally productive countries in the world. It has already been dubbed "the world's feeding bowl" and is exporting more and more to emerging economies, such as India and China.&lt;br /&gt;&lt;br /&gt;As China's middle-class continues to grow, so, too, does its demand for food. Brazil exports 10 million tons of soybeans to China a year for both animal feed and human consumption, trade that is crucial to Brazil's economic development. &lt;br /&gt;&lt;br /&gt;And it's not just poverty that's an issue.&lt;br /&gt;&lt;br /&gt;The state of Para has some of the worst human rights abuses in Brazil. People are trafficked from across the impoverished northeast of the country to work in slavelike conditions in the sawmills, illegal charcoal ovens and cattle farms. &lt;br /&gt;&lt;br /&gt;They usually work in horrific conditions, with no basic rights and existing on roughly $5 a day. If they try to seek help from the authorities, they are threatened with death. &lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;There's also the WHO page on "&lt;a href="http://www.who.int/heli/risks/climate/climatechange/en/index.html"&gt;Deaths from Climate Change&lt;/a&gt;".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-5576403223226118853?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/5576403223226118853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=5576403223226118853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5576403223226118853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/5576403223226118853'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/05/somewhere.html' title='Somewhere'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-7754451609445654978</id><published>2008-05-26T08:49:00.007+10:00</published><updated>2008-05-26T20:55:41.700+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><title type='text'>RDF Processing</title><content type='html'>One of the interesting things about biological data, and probably other types, is that a lot of it is not quite the right structure.  That's not to say that there's not people working to improve it, the Gene Ontology seems to be updated almost daily, but data in any structure maybe wrong for a particular purpose.  &lt;br /&gt;&lt;br /&gt;Biologists make a habit, out of necessity, of just hacking and transforming large amounts of data to suite their particular need.  Sometimes, these hacks get more generalized and abstracted like &lt;a href="http://www.geneontology.org/GO.slims.shtml"&gt;GO Slims&lt;/a&gt;.  We've been using GO Slims in BioMANTA for sub-cellular location (going from 2000 terms to 500).  GO contains lots and lots of information and you don't need it all at once and more often you don't need it at the maximum level of granularity that it has.  Some categories only have one or two known instances, for example.  You may even need to whittle this down further (from say 500 to 200).  For example, when we are determining the quality of an interaction we only care where the proteins exist generally in an organism.  If the two proteins are recorded to interact but one is in the heart and the other in the liver then it's unlikely that they will react in the host organism.  The part of the liver or the heart and other finer structural detail is not required for this kind of work (AFAIK anyway).&lt;br /&gt;&lt;br /&gt;The point is, a lot of our work is processing not querying RDF.  What's the difference between the two and what effect does it have?&lt;br /&gt;&lt;br /&gt;For a start, querying assumes, at least to some degree, that the data is selective - that the results you're getting is vastly smaller than your original data.  In processing, you're taking all of the data or large chunks of it (by sets of predicates, for example) and changing or producing more data based on the original set.&lt;br /&gt;&lt;br /&gt;Also, writing is at least as important as reading the data.  So data structures optimized for lots of writes, temporary, concurrent, is of greater importance than those built around more familiar requirements for a database.&lt;br /&gt;&lt;br /&gt;Sorting and processing distinct items is a lot more important too.  When processing millions of data entries it can be quite inefficient if the data has a large number of duplicates and needs to be sorted.  Processing can also be decentralized - or perhaps maybe more decentralized.&lt;br /&gt;&lt;br /&gt;To top it off, the data still has to be queried.  So this doesn't remove the need for efficient, read only data structures to perform selective queries for the usual analysis, reporting, etc.  So none of the existing problems goes away.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-7754451609445654978?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/7754451609445654978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=7754451609445654978' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7754451609445654978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/7754451609445654978'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/05/rdf-processing.html' title='RDF Processing'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3322141.post-4095841315355568135</id><published>2008-05-12T13:28:00.003+10:00</published><updated>2008-05-12T20:15:51.355+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rdf'/><title type='text'>git + RDF = versioned RDF</title><content type='html'>Reading, &lt;a href="http://eagain.net/articles/git-for-computer-scientists/"&gt;Git for Computer Scientists&lt;/a&gt;, and it seems like if you turn the blob into a set of triples you pretty much have versioned RDF (or molecules even).&lt;br /&gt;&lt;br /&gt;I'm also wondering, if Digg is so pro-Semantic Web, where's the http://digg.com/semweb?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3322141-4095841315355568135?l=morenews.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://morenews.blogspot.com/feeds/4095841315355568135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3322141&amp;postID=4095841315355568135' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4095841315355568135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3322141/posts/default/4095841315355568135'/><link rel='alternate' type='text/html' href='http://morenews.blogspot.com/2008/05/git-rdf-versioned-rdf.html' title='git + RDF = versioned RDF'/><author><name>Andrew Newman</name><uri>https://profiles.google.com/117655367527011237769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
