<?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-4595018912382747009</id><updated>2011-10-08T02:36:47.899-04:00</updated><category term='otp'/><category term='dht'/><category term='scalable data structure'/><category term='gen_server'/><category term='gen_leader'/><category term='python'/><category term='erlang'/><category term='cluster'/><category term='osh'/><category term='one-liner'/><category term='database'/><title type='text'>O(1)</title><subtitle type='html'>Jack Orenstein plays with languages, databases and other software, and tells you about it.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://order1.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4595018912382747009/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://order1.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>O(1)</name><uri>http://www.blogger.com/profile/10626189956976092000</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>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4595018912382747009.post-8007243006338975692</id><published>2007-10-10T20:39:00.000-04:00</published><updated>2007-10-11T00:59:34.774-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='one-liner'/><category scheme='http://www.blogger.com/atom/ns#' term='osh'/><title type='text'>Osh one-liner of the day (October 11, 2007)</title><summary type='text'>The problem is to take a list of words as input (one per line) and print the distribution of word lengths, (e.g. 5 words of length 1, 27 words of length 2, ...). This can be done in one osh command as follows (split into multiple lines for readability):zack$ cat /usr/share/dict/words | osh ^ \    agg -g 'word: len(word)' 0 'count, word: count + 1' ^ \    sort $(1, 52)(2, 155)(3, 1351)(4, 5110)(5,</summary><link rel='replies' type='application/atom+xml' href='http://order1.blogspot.com/feeds/8007243006338975692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4595018912382747009&amp;postID=8007243006338975692' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4595018912382747009/posts/default/8007243006338975692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4595018912382747009/posts/default/8007243006338975692'/><link rel='alternate' type='text/html' href='http://order1.blogspot.com/2007/10/osh-one-liner-of-day-october-11-2007.html' title='Osh one-liner of the day (October 11, 2007)'/><author><name>O(1)</name><uri>http://www.blogger.com/profile/10626189956976092000</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-4595018912382747009.post-3951487799480772696</id><published>2007-10-09T23:45:00.000-04:00</published><updated>2007-10-09T23:52:47.980-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dht'/><category scheme='http://www.blogger.com/atom/ns#' term='gen_leader'/><category scheme='http://www.blogger.com/atom/ns#' term='erlang'/><category scheme='http://www.blogger.com/atom/ns#' term='scalable data structure'/><title type='text'>Scalable data structures in Erlang, and gen_leader</title><summary type='text'>A scalable data structure is a data structure distributed across multiple nodes. You can add nodes to get more capacity, more throughput, and better availability. Erlang/OTP is ideal for building such structures, but is missing one critical piece.I've been working on a distributed hash table (DHT) based on the idea of linear hashing. (The inventor of linear hashing, Witold Litwin, is also working</summary><link rel='replies' type='application/atom+xml' href='http://order1.blogspot.com/feeds/3951487799480772696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4595018912382747009&amp;postID=3951487799480772696' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4595018912382747009/posts/default/3951487799480772696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4595018912382747009/posts/default/3951487799480772696'/><link rel='alternate' type='text/html' href='http://order1.blogspot.com/2007/10/scalable-data-structures-in-erlang-and.html' title='Scalable data structures in Erlang, and gen_leader'/><author><name>O(1)</name><uri>http://www.blogger.com/profile/10626189956976092000</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-4595018912382747009.post-8795440889845638005</id><published>2007-10-07T22:53:00.000-04:00</published><updated>2007-10-08T07:41:51.733-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='osh'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='database'/><title type='text'>New version of osh</title><summary type='text'>Osh (Object SHell) is a scripting tool I wrote for working with clusters and databases. I just released version 0.9.1. It's based on the idea of piping Python objects from one command to another.  Python functions can be used to filter and transform objects.  Rows from a database query turn into Python tuples.  Commands can be run locally, or on all nodes of a cluster in parallel.  You can use </summary><link rel='replies' type='application/atom+xml' href='http://order1.blogspot.com/feeds/8795440889845638005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4595018912382747009&amp;postID=8795440889845638005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4595018912382747009/posts/default/8795440889845638005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4595018912382747009/posts/default/8795440889845638005'/><link rel='alternate' type='text/html' href='http://order1.blogspot.com/2007/10/osh-object-shell-is-scripting-tool-i_07.html' title='New version of osh'/><author><name>O(1)</name><uri>http://www.blogger.com/profile/10626189956976092000</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-4595018912382747009.post-8441576259025941275</id><published>2007-09-29T17:13:00.000-04:00</published><updated>2007-09-29T17:53:53.955-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gen_server'/><category scheme='http://www.blogger.com/atom/ns#' term='erlang'/><category scheme='http://www.blogger.com/atom/ns#' term='otp'/><title type='text'>Getting started with Erlang and OTP</title><summary type='text'>At work I've been helping to build a distributed system in Java for the past four years. The system has no centralized anything. We built a lot of things from scratch: a messaging layer, thread pools, node monitoring and management, leader election. And while all this was going on, we built our application. It all works, and the system is very reliable and highly available. But it took a while to</summary><link rel='replies' type='application/atom+xml' href='http://order1.blogspot.com/feeds/8441576259025941275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4595018912382747009&amp;postID=8441576259025941275' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4595018912382747009/posts/default/8441576259025941275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4595018912382747009/posts/default/8441576259025941275'/><link rel='alternate' type='text/html' href='http://order1.blogspot.com/2007/09/getting-started-with-erlang-and-otp.html' title='Getting started with Erlang and OTP'/><author><name>O(1)</name><uri>http://www.blogger.com/profile/10626189956976092000</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>
