<?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-11246065</id><updated>2011-08-17T08:36:22.561+05:30</updated><category term='ruby'/><category term='python py3k humor'/><category term='open culture'/><category term='communities'/><category term='parser'/><category term='open source'/><category term='javascript'/><category term='python'/><category term='collaboration'/><category term='innovation'/><category term='foss harvestman opensource'/><category term='python py3k'/><title type='text'>Random bytes on technology and open source</title><subtitle type='html'>"Intelligence is the ability to avoid doing work, yet getting the work done" - Linus Torvalds.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>65</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11246065.post-9030220427588853277</id><published>2008-03-21T13:55:00.009+05:30</published><updated>2008-03-21T15:30:10.796+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='python py3k humor'/><title type='text'>Py3k letters - Part I, The PEP Talk</title><content type='html'>This post is all PEP-talk. What pep talk you may ask ? Well not the usual pep-talk but talk about &lt;i&gt;PEPs&lt;/i&gt;. "PEP" stands for "Python Enhancement Proposals" and is the way in which Python language developers and enthusiasts go about suggesting, agreeing on and incorporating changes to the Python language.&lt;br /&gt;&lt;br /&gt;For Python 3.0, the key PEP is &lt;a href="http://www.python.org/dev/peps/pep-3000/"&gt;PEP 3000&lt;/a&gt;. All Py3k PEPs are numbered starting from 3000 upwards. PEPs 3000-3099 are special, since they are PEPs about PEPs, so called "meta-PEPs". PEP 3000 is like the god of all meta-PEPs, since it is meta-PEP of all meta-PEPs. Think about it something like the father of all meta-PEPs, the originator, the source.&lt;br /&gt;&lt;br /&gt;There are two more PEPs which are special. &lt;a href="http://www.python.org/dev/peps/pep-3099/"&gt;PEP 3099&lt;/a&gt; and &lt;a href="http://www.python.org/dev/peps/pep-3100/"&gt;PEP 3100&lt;/a&gt;. The former is an anti-thesis of a PEP actually, since it refuses to budge - it is a list of things that has no plans of changing in Py3k. Interesting isn't it ?&lt;br /&gt;&lt;br /&gt;The latter is the mirror image of the former. It is a laundry list of things that will change in Py3k, which are not big enough to have a PEP of their own. The fact that it follows PEP3099 is not its fault. It just so happens. In fact, this PEP was christened as PEP3000, but as other PEPs were born and began to strive for space and the PEP talk became more and more noisy, the BDFL and his gang of merry men re-christened this PEP all the way up by a century. I am not sure why this happened, but that is history and one cannot change it. However the PEP is not complaining and neither should you. Strange are often the ways of PEP-land...&lt;br /&gt;&lt;br /&gt;Now, Py3k was not born as an idea in a single day (neither was Rome built in one), so you can imagine that there was a lot of pep-talk which led to its conception. And though PEP-land is often strange in its ways, it is not as strange as to defy logic completely - it is not. You would expect these PEPs to be older than the one which is bears the name 3000 in its birth certificate, and you would be right if you thought so.&lt;br /&gt;&lt;br /&gt;These older PEPs, which are the big brothers of PEP 3000, influenced the growth of PEP 3000. From older to younger, they are,&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://www.python.org/dev/peps/pep-0238"&gt;PEP 238&lt;/a&gt;, which divided the kingdom of Pythonistas over the something as simple as the division operator. The contention was how to float and divide at the same time, in just one swoop. It turned out that that this was a hard problem to solve and finally after many a battle, the decision was made - float and divide in a single swoop and only divide in two swoops . The ramifications of this decision will be huge for many programs which are inhabitants of the Python land, especially belonging to the numerical and scientific family trees. &lt;br&gt;&lt;br /&gt;2. &lt;a href="http://www.python.org/dev/peps/pep-0328"&gt;PEP 328&lt;/a&gt;, which made a lot of funny noise with statements that is any combination of the strings "from", "import", ".", "..", and "as" . All to solve the problem of the right syntax of relative imports - that is imports as in importing code, not like importing sugar or oil, which is a more easier problem to solve apparently. This problem is much more abstruse, and aims to bring down packages from folders they live in, relative to the current folder. &lt;br&gt;&lt;br /&gt;3. &lt;a href="http://www.python.org/dev/peps/pep-0343"&gt;PEP 343&lt;/a&gt;, which is all about disciplining the brat fraternity of "try", "except" and "finally" statements, by giving them some meaning in life (a "context" actually) and holding them together with a "with" statement. Matters get complicated when a context is managed with a contextmanager, as usually happens when managers get involved in any engineering problem.&lt;br&gt;&lt;br /&gt;4. &lt;a href="http://www.python.org/dev/peps/pep-0352"&gt;PEP 352&lt;/a&gt;, which is about installing an original ancestor for a group of dangerous characters, whose main job is to raise issues which are euphemistically called as "exceptions". Unfortunately, chaos has reigned at the top of this hierarchy with no clearly defined ancestor who these characters can claim lineage to. Pythonistas realized (quite late) that it is dangerous to let the status quo remain and the pep-talk resulted in this PEP which aims to fix the status for good by correcting their ancestor tree. Very well. I am glad we cannot do these things in real life.&lt;br&gt;&lt;br /&gt;&lt;br /&gt;So, all the talk about pep-talk has resulted in the above peppy PEPs. Pythonistas live and swear by PEPs, so if you want to learn the Py3k way, you should walk the way of the PEPs for some time and live with them, understanding why and how they exist.&lt;br /&gt;&lt;br /&gt;The above PEPs form the soul and core of Py3k, so get used to them and we will discuss the actual issues they solve and how they do it, starting from Part 2 of the Py3k letters. Till then happy PEPing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-9030220427588853277?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/9030220427588853277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=9030220427588853277' title='45 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/9030220427588853277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/9030220427588853277'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2008/03/py3k-letters-part-i-pep-talk.html' title='Py3k letters - Part I, The PEP Talk'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>45</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-4227163249522693542</id><published>2008-03-21T13:45:00.006+05:30</published><updated>2008-03-21T14:30:29.774+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='python py3k'/><title type='text'>Py3k letters - Part 0</title><content type='html'>&lt;a href="http://docs.python.org/dev/3.0/"&gt;Python 3.0 (py3k)&lt;/a&gt; is on the way. The 3.0 version is going to be a &lt;a href="http://docs.python.org/dev/3.0/whatsnew/3.0.html"&gt;significant update&lt;/a&gt; in the Python programming language, considering that it is almost 8 years since the release of the last major version, Python 2.0, which was released in Oct 2000.&lt;br /&gt;&lt;br /&gt;Py3k is going to change the way the Python programmer goes about his work in many ways,  with some significant "in-your-face" changes and many thousands of changes and fixes below the layers and quite some just in between.&lt;br /&gt;&lt;br /&gt;I am starting a series of blog posts from today, which will focus on Python 3.0, specifically on the major changes in the language when compared to Python 2.x versions. The plan is to cover enough areas (hopefully), so that by the time py3k is released in August this year, there will be enough text here to serve as an aid to Python programmers in chartering py3k territory.&lt;br /&gt;&lt;br /&gt;With that introduction, on to the "py3k letters" series, with the first edition coming in the next post. Keep tuned in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-4227163249522693542?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/4227163249522693542/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=4227163249522693542' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4227163249522693542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4227163249522693542'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2008/03/py3k-letters-part-0.html' title='Py3k letters - Part 0'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-5004056878996398487</id><published>2008-02-19T18:45:00.006+05:30</published><updated>2008-02-19T19:05:00.271+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='foss harvestman opensource'/><title type='text'>Red letter day!</title><content type='html'>I will mark today as a red letter day in my life and career. HarvestMan is one among the winners of &lt;a href="http://www.efytimes.com/efytimes/24867/news.htm"&gt;FOSS India Awards&lt;/a&gt; declared by EFY today.&lt;br /&gt;&lt;br /&gt;After four years of painstaking work and countless hours spent on developing the program, I feel happy to be at the "receiving end". A lot of gratitude goes to the EIAO team of Mikael, Nils and Morten for giving me the motivation to work on the program and keep improving it.&lt;br /&gt;&lt;br /&gt;Congratulations to all the award winners for their spirit of free software and open source. Keep up the good work!&lt;br /&gt;&lt;br /&gt;This is a very good initiative on the part of &lt;a href="http://www.cdac.in/"&gt;NRC FOSS&lt;/a&gt; and &lt;a href="http://www.linuxforu.com/"&gt;EFY&lt;/a&gt; to encourage F/OSS development in India. I really appreciate the leadership shown here by both the institutions. Apart from putting FOSS and people who innovate in FOSS in India in the limelight, the initiative will also help to advertise to the world the fact that Indians are also innovating in this area.&lt;br /&gt;&lt;br /&gt;Hopefully, efforts like this would encourage the adoption of F/OSS on a large scale among students in engineering and technology in Indian universities and provide a big push towards more original F/OSS contributions from India.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-5004056878996398487?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/5004056878996398487/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=5004056878996398487' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/5004056878996398487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/5004056878996398487'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2008/02/red-letter-day.html' title='&lt;font color=&quot;red&quot;&gt;Red letter day!&lt;/font&gt;'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-8803692381823070163</id><published>2008-02-11T19:56:00.000+05:30</published><updated>2008-02-11T20:05:38.739+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='foss harvestman opensource'/><title type='text'>FOSS India Awards</title><content type='html'>I am making my first post of the new year 2008. This also happens to be a post after a gap of more than three months. Reasons - new job, lack of time etc.&lt;br /&gt;&lt;br /&gt;I had submitted HarvestMan for &lt;a href="http://www.openitis.com/awards/"&gt;FOSS India Awards&lt;/a&gt; more than a month back. However the FOSS India Awards team took their own time to provide the competing projects with a questionnaire regarding their project. I got the questionnaire in my email yesterday and today I completed it and sent it.&lt;br /&gt;&lt;br /&gt;The awards are expected to be announced on Feb 15th, which also happens to be my birthday. Keeping my fingers X...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-8803692381823070163?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/8803692381823070163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=8803692381823070163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8803692381823070163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8803692381823070163'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2008/02/foss-india-awards.html' title='FOSS India Awards'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-7676810765224643020</id><published>2007-10-12T00:45:00.001+05:30</published><updated>2007-10-12T01:15:27.858+05:30</updated><title type='text'>FOSS - Made in India !</title><content type='html'>While returning home from work today, I went to the neighboring super-market and bought the LFY (Linux For You) magazine for the month on an impulse. I have not been a regular reader of this magazine since Feb 2006 when I stopped writing for them. So it was just pure impulse on my part...&lt;br /&gt;&lt;br /&gt;I was going through the articles lazily in bed some few minutes back. I started with the review of SLES desktop and then read the article on autopackage. The project is started by a group of young enthusiasts based in U.S and Sweden which makes package installation across Linux distros easy (say "InstallShield for Linux"). I then flipped casually to the next page where there was a guest column by our very own Kenneth Gonsalves, the Chennai based open source enthusiast and activist. &lt;br /&gt;&lt;br /&gt;He was asked the typical question which every FOSS related magazine in India loves to repeat in every alternate editions - "Why are Indians not contributing to open source ?" I glanced through his reply. Little did I realize his comments would make my day...&lt;br /&gt;&lt;br /&gt;Here I quote his reply verbatim...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;"There are a large number of indians in practically all major FOSS projects. However if you look closely, you will find that the vast majority are not resident in India. Yes, there are several hundred people in India actively contributing to projects big and small. But genuine 'Made in India' projects of international repute ? I can see only four or five: Anjuta (Naba Kumar has left the country); HarvestMan by Anand Pillai; Deepofix by Abhas Abinav; IndLinux by Karunakar and team and Coppermine by Tarique Sani..."&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Boy, was I not taken aback by surprise and blushing with genuine pride!... :) I have used Anjuta and has great respect for its original developer (Naba Kumar), though little did I know about his current resident country. I think IndLinux and Coppermine are great projects and frankly I have not heard about Deepofix (my bad...). I have always considered my own contribution (HarvestMan) as a david among the goliaths. I have a sense of my place among the international open source developers. I have made a contribution worth mentioning, but I have never considered it accomplished enough to figure among "the list of original contributions" by India to FOSS. It is surely a matter of pride to see that a well known and widely acknowledged FOSS community member thinks about the project like that.&lt;br /&gt;&lt;br /&gt;Kenneth, you clearly made my day. Thanks for the kind words. It felt really nice to see the words "HarvestMan" staring back at me from a page in an IT magazine which I was casually flipping in the midnight. Surely for a born-again techie like me, there is no better recognition than something like this.&lt;br /&gt;&lt;br /&gt;I consider this the best compliment I have ever received in my life for something I have done. It makes more all the more excited about open source and FOSS and the spirit of sharing code and having fun at the same time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-7676810765224643020?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/7676810765224643020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=7676810765224643020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7676810765224643020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7676810765224643020'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/10/foss-made-in-india.html' title='FOSS - Made in India !'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-2921987419142313565</id><published>2007-10-08T18:09:00.000+05:30</published><updated>2007-10-08T18:23:11.093+05:30</updated><title type='text'>Narcissus.py updated</title><content type='html'>Since I completed the port of Rbnarcissus to Narcissus.py last week, I have been working on getting the bugs fixed. A lot of work has been done on this during the past week, and the code is now parsing a set of more than 30 javascript input samples of varying size and complexity, correctly. Also, the behaviour is very close to that of Rbnarcissus. Both the parsers now seem to fail at the same places in the code for samples which they can't parse, which is a good sign that the Narcissus.py code now approximates Rbnarcissus very well.&lt;br /&gt;&lt;br /&gt;Since the code is now stable and somewhat usable, I have made it &lt;a href="http://www.harvestmanontheweb.com/python/narcissus/"&gt;publicly available&lt;/a&gt;. The code can be browsed in the folder. There won't be any packages or formal documentation  till I feel that the code is beta quality and can be made available as a Python package.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-2921987419142313565?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/2921987419142313565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=2921987419142313565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/2921987419142313565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/2921987419142313565'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/10/narcissuspy-updated.html' title='Narcissus.py updated'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-4899982406303171755</id><published>2007-09-30T23:09:00.000+05:30</published><updated>2007-09-30T23:35:25.446+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='parser'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Narcissus.py</title><content type='html'>Today I finished porting of Rbnarcissus to Python. &lt;br /&gt;&lt;br /&gt;I managed to finish the porting in a total of 7 days, spending approximately &lt;br /&gt;2-3 hours per day. The test parse script has also been ported. With this&lt;br /&gt;I managed to produce the JS parse tree for the following simple Javascript&lt;br /&gt;function.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function test()&lt;br /&gt;{&lt;br /&gt;   var a = 10&lt;br /&gt;   var b = 20&lt;br /&gt;   var c = a + b&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;As a result of parsing, the following function dictionary was printed.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;{test: []}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This library will be made available as part of HarvestMan and the EIAO projects.&lt;br /&gt;This is perhaps going to be the first open source pure Python parser for Javascript.&lt;br /&gt;&lt;br /&gt;I need to do a bit more of testing on more complex Javascript code before I make the code publicly available. This might take another week or so, depending upon how much time I get to spend on this in the coming days...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-4899982406303171755?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/4899982406303171755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=4899982406303171755' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4899982406303171755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4899982406303171755'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/09/narcissuspy.html' title='Narcissus.py'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-2424518511493769339</id><published>2007-09-18T01:39:00.000+05:30</published><updated>2007-09-18T01:41:02.226+05:30</updated><title type='text'>Rbnarcissus Porting - Day 2</title><content type='html'>In the second marathon day of Rbnarcissus porting I completed porting of another 5 functions in the Parser.rb module. What is pending are two huge functions which parses statements and expressions. That should be taken care by another day or two of hectic hacking...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-2424518511493769339?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/2424518511493769339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=2424518511493769339' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/2424518511493769339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/2424518511493769339'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/09/rbnarcissus-porting-day-2.html' title='Rbnarcissus Porting - Day 2'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-7624611977738384501</id><published>2007-09-17T18:55:00.000+05:30</published><updated>2007-09-17T19:10:41.345+05:30</updated><title type='text'>BangPypers move in to python.org</title><content type='html'>The entire Python family of &lt;a href="http://tech.groups.yahoo.com/group/bangpypers"&gt;BangPypers&lt;/a&gt; moved enmasse to &lt;a href="http://mail.python.org/mailman/listinfo/bangpypers"&gt;their new home&lt;/a&gt; at the python.org website three days back, on Sep 14 2007. &lt;br /&gt;&lt;br /&gt;Jeff Rush of &lt;a href="http://python-advocacy.blogspot.com"&gt;Python Advocacy Blog&lt;/a&gt; was instrumental in creating the new mailing list hosted at python.org, after I sent him a request regarding the same. Jeff was immensely kind and helpful during the whole process, which got completed by end of the day. Thanks a lot Jeff!&lt;br /&gt;&lt;br /&gt;The move came after a slew of discussions which started with &lt;a href="http://tech.groups.yahoo.com/group/BangPypers/message/2567"&gt;this thread&lt;/a&gt; in early August by Anand. C (&lt;i&gt;strandpyper&lt;/i&gt;). Quickly a kind of agreement was reached among the participants of the thread about moving out to a better place from the existing Y! group, preferably at the python.org website itself. &lt;br /&gt;&lt;br /&gt;A lot of people participated in the discussion, giving valuable suggestions, which finally helped to reach an agreement and making the task of moving the members to the new list a painless process. &lt;br /&gt;&lt;br /&gt;The new mailing list is public and open to anyone. This should hopefully expose the BangPypers members to the larger Python community in the international scene and give the group more visibility. It will be nice to see if any kind of larger group activities can be arranged as a part of such an exposure. &lt;br /&gt;&lt;br /&gt;The group still lacks a coherent theme, which needs to be painted into so that it functions as a rather tight group with shared interests, than the current fragmented one. One way of doing this is to execute open source Python projects as a group, by forming small interest groups inside the larger group, which can then focus on a particular project. The monthly meetings also need to be revived, which can bring more thought into what can be done in the coming months.&lt;br /&gt;&lt;br /&gt;If you are interested in Python and/or the BangPypers group, feel free to comment with your thoughts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-7624611977738384501?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/7624611977738384501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=7624611977738384501' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7624611977738384501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7624611977738384501'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/09/bangpypers-move-in-to-pythonorg.html' title='BangPypers move in to python.org'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-2170821488704766795</id><published>2007-09-17T01:38:00.000+05:30</published><updated>2007-09-17T01:41:48.407+05:30</updated><title type='text'>Rbnarcissus Porting - Day 1</title><content type='html'>Today I completed almost 40% of the the porting of Rbnarcissus to Python. All the data structures and regular expressions have been ported along with the "Tokenizer" class.&lt;br /&gt;There still remains around 13 classes to be ported which forms the bulk (60%) of the code. &lt;br /&gt;&lt;br /&gt;If I keep up the same pace, I should be done with this in another 3-4 days. This could become a useful tool for Python programmers, having a pure Python parser for Javascript.&lt;br /&gt;&lt;br /&gt;Watch this space for more updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-2170821488704766795?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/2170821488704766795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=2170821488704766795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/2170821488704766795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/2170821488704766795'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/09/rbnarcissus-porting.html' title='Rbnarcissus Porting - Day 1'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-1157074625240613863</id><published>2007-09-08T21:11:00.000+05:30</published><updated>2007-09-08T21:41:02.132+05:30</updated><title type='text'>The Ruby Way - A Python programmer learns Ruby</title><content type='html'>Ruby is the language I am always putting off to learning the next day. I came across Ruby almost at the same time I started learning Python. However due to its similarities with Perl, I was never able to take an affinity towards the language. &lt;br /&gt;&lt;br /&gt;I knew Ruby needed to be in my toolbox of languages and it was only a matter of time before I got to it. This happened last week, trying to solve a very practical programming problem.&lt;br /&gt;&lt;br /&gt;I was trying to develop a Javascript parser/tokenizer for HarvestMan so that HarvestMan can crawl pages which defines the DOM dynamically using Javascript. I have been at this problem for some time now, but never came across a pure Python or even a C/C++ extension Javascript parser I could use. Last week I came across &lt;a href="http://idontsmoke.co.uk/2005/rbnarcissus/"&gt;Rbnarcissus&lt;/a&gt;, a pure Ruby port of &lt;a href="http://en.wikipedia.org/wiki/Narcissus_(JavaScript_engine)"&gt;Narcissus&lt;/a&gt;, the open source Javascript engine written in Javascript. &lt;br /&gt;&lt;br /&gt;I have set upon myself the task of porting this code to pure Python. I figured I knew enough Ruby to do this without any additional help, but one look at the code and I realized I needed help. I bought Hal Fulton's excellent Ruby book &lt;a href="http://rubyhacker.com/"&gt;The Ruby Way&lt;/a&gt; from a book shop. (The book is a bit pricey for a low priced Indian edition, but it is worth the money.)&lt;br /&gt;&lt;br /&gt;I have been spending the last two days with the book. I have realized a few things about the &lt;i&gt;The Ruby Way&lt;/i&gt; when compared to the &lt;i&gt;Zen of Python&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;1. Ruby follows the Perl paradigm of &lt;i&gt;There is more than one obvious way to do it&lt;/i&gt;, when compared to the Pythonic &lt;i&gt;There should be one-- and preferably only one --obvious way to do it&lt;/i&gt;. (An &lt;i&gt;import this&lt;/i&gt; in a Python interpreter prompt gives you the Zen of Python).&lt;br /&gt;&lt;br /&gt;2. Ruby is a more complete object oriented language than Python and empowers its types and objects much more than Python does. However this also makes Ruby slightly more harder to learn than Python.&lt;br /&gt;&lt;br /&gt;I feel Python is still the ideal language for a newbie who wants to learn a very high level programming language. However Ruby is much more powerful and suited for the expert programmer who expects more power out of his objects and types. &lt;br /&gt;&lt;br /&gt;I have not got completely into the Ruby Way yet, but I am on my way. I am hoping that combining the Ruby Way with the Zen of Python will lead me to the Tao of Programming...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-1157074625240613863?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/1157074625240613863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=1157074625240613863' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/1157074625240613863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/1157074625240613863'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/09/ruby-way-python-programmer-learns-ruby.html' title='The Ruby Way - A Python programmer learns Ruby'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-7357196940159176581</id><published>2007-08-31T13:50:00.000+05:30</published><updated>2007-08-31T14:18:20.925+05:30</updated><title type='text'>Some open (source) clarifications...</title><content type='html'>Of late, I have been getting a few queries from people asking questions as follows:&lt;br /&gt;&lt;br /&gt;"Have you dropped open source programming altogether ?"&lt;br /&gt;"Will you stop coding in Python anymore ?"&lt;br /&gt;"Have you lost interest in opensource ?"&lt;br /&gt;&lt;br /&gt;When I thought it caused a confusion and some slight tensions with a friend who commands a lot of respect and trust and is a major facilitator of open source, I thought it was time to put it in perspective by blogging about it.&lt;br /&gt;&lt;br /&gt;I think I am myself to blame for some of these confusions, which resulted from a recent post in my blog when I mentioned I am "taking a break from open source".&lt;br /&gt;&lt;br /&gt;I did not intend a complete break at all...rather the post was an impulsive reaction. Let me explain.&lt;br /&gt;&lt;br /&gt;First of all, I have not dropped open source development. I just love it too much to drop it and it has now become second nature to me after being an open source developer for nearly four years. I *cannot* stop being one overnight.&lt;br /&gt;&lt;br /&gt;Regarding Python, it is my favorite language. I can never stop coding in Python. I continue to write open source code in Python, with most of that efforts going towards my open source project HarvestMan, whose 2.0 version is under active development. Even otherwise, my default reaction is to start a Python prompt if I have to perform some simple computation or even an arithmetic calculation!&lt;br /&gt;&lt;br /&gt;I have not lost interest in open source at all. What happened was that I lost interest in "commercializing open source" or rather working for entities which focus on commercializing open source without contributing anything back. I had some (what appears to be now) utopian dreams in this respect, and imagined a scenario where such predator companies coexist with the people who spent their time doing open source development and contribute to a greater goal. I have realized that such dreams are pipe dreams and that most of these new "open source companies" are in it to try and make a fast buck. They have no real intentions of playing it long term or making a difference.&lt;br /&gt;&lt;br /&gt;However when you associate yourself with such entities, you tend to associate your concept of open source with theirs some times. This was what happened to me. I spent too much time at such a place for my concepts of open source and community development to get polluted and corrupted, which ended up confusing and frustrating me a lot. When I quit, the natural reaction was a general apathy towards everything which was labeled "open source" for a while. This is something like those allergic reactions you get when you are exposed to a change in weather or surroundings; however the good thing is that an allergic reaction is not a permanent disease :)&lt;br /&gt;&lt;br /&gt;Thankfully such reactions are not long lasting and I have come out of my black  reaction finally. One good lesson I learned in the whole process was to keep my ideology separate from the ideology of the place where I work and not to mix both. If you do that you can avoid feeling frustrated when things do not work out the way you thought they will. An investment of time can be fruitful or fruitless and you may not be greatly affected; however an investment of ideology and principles can be quite frustrating if it does not bear fruit, the way you thought it would.&lt;br /&gt;&lt;br /&gt;So, I am back to my good old ways and feeling better about it all. I will continue to be active in open source and help the community (and myself) by contributing any little code and effort I can in terms of my small projects. &lt;br /&gt;&lt;br /&gt;I think that renaming my blog to what it was originally might be a good start and that is what I have just done. Thanks to everyone who inquired about this and well, I am being truthful to my good old ways.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-7357196940159176581?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/7357196940159176581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=7357196940159176581' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7357196940159176581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7357196940159176581'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/08/some-open-source-clarifications.html' title='Some open (source) clarifications...'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-8568325158341827513</id><published>2007-08-19T01:34:00.001+05:30</published><updated>2007-08-19T01:35:57.163+05:30</updated><title type='text'>Random title</title><content type='html'>Looks like I am changing the title of my blog too randomly these days. I kind of like the latest one, and I might just settle on that, for a random, arbitrary period of time !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-8568325158341827513?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/8568325158341827513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=8568325158341827513' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8568325158341827513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8568325158341827513'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/08/random-title.html' title='Random title'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-8358955468451182455</id><published>2007-08-19T01:28:00.000+05:30</published><updated>2007-08-19T01:43:03.054+05:30</updated><title type='text'>HarvestMan 2.0</title><content type='html'>I have kickstarted the release process of HarvestMan 2.0, the next big version update of HarvestMan, after a gap of nearly two years. A lot of development has gone into the program during the last two years, with countless bugs getting fixed and numerous new features getting added. &lt;br /&gt;&lt;br /&gt;As part of the process, I am making 2.0 alpha package drops available on the website. These drops are of the complete HarvestMan package with source code and documentation. You can check out &lt;a href="http://www.harvestmanontheweb.com/news#latest"&gt;the latest news&lt;/a&gt; on the website for more information.&lt;br /&gt;&lt;br /&gt;If you are an existing user of HarvestMan, you should check out the alpha drops.&lt;br /&gt;On the other hand, if you are new to HarvestMan, then also you are welcome to check these out, since HarvestMan-2.0 is much more robust and feature-rich than the current HarvestMan release, namely 1.4.6, which was released two years back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-8358955468451182455?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/8358955468451182455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=8358955468451182455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8358955468451182455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8358955468451182455'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/08/harvestman-20.html' title='HarvestMan 2.0'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-8407498089171906637</id><published>2007-08-06T15:57:00.000+05:30</published><updated>2007-08-06T16:01:06.697+05:30</updated><title type='text'>Chasing dollars...?</title><content type='html'>Apparently, the cat is out of the bag. Read &lt;a href="http://opensource.sys-con.com/read/411776.htm"&gt;this&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-8407498089171906637?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/8407498089171906637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=8407498089171906637' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8407498089171906637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8407498089171906637'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/08/chasing-dollars.html' title='Chasing dollars...?'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-4431529788060390751</id><published>2007-08-01T16:32:00.000+05:30</published><updated>2007-08-01T16:36:07.142+05:30</updated><title type='text'>A self-demotion</title><content type='html'>I just demoted myself from owner of BangPypers to moderator. Truth is that I have been getting a bit bored with open source &amp; community in general. Moreover I have not really been able to do much Python community work for the last one year as I could do in the first year of inception of BangPypers. Since I felt I am not doing justice as being the owner of the group, I decided to give it a break. &lt;br /&gt;&lt;br /&gt;I shall mostly demote myself to just member pretty soon. Taking a break from Python might allow me to look at other languages (open source or others) out there and allow me to do something new...&lt;br /&gt;&lt;br /&gt;Good bye BangPypers-owner. It was nice being you...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-4431529788060390751?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/4431529788060390751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=4431529788060390751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4431529788060390751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4431529788060390751'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/08/self-demotion.html' title='A self-demotion'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-288707416730293480</id><published>2007-07-17T18:26:00.000+05:30</published><updated>2007-07-17T18:39:37.579+05:30</updated><title type='text'>A break from open source</title><content type='html'>I am taking a break from open source, in terms of writing open source software and spending my time working with an "open source" company. My recent experiences in working full time in open source have not been very positive or pleasant. The focus has shifted - in my new avatar I won't have to think about open source as a problem to solve.&lt;br /&gt;&lt;br /&gt;Does it mean I will stop looking into open source altogether ? No, for a couple of reasons - now a days open source is all pervasive and you need to keep in touch with it if you want to be in sync with the changes happening in the software landscape around you, of which you are a part. It still remains the best way for a developer to publish his original ideas and then take it to a larger audience with almost zero effort; also, a lot of quality projects and products are open source, which means though your product might be proprietary it is influenced by open source, directly (through borrowing code) or indirectly (through borrowing ideas/algorithms).&lt;br /&gt;&lt;br /&gt;I will be working on HarvestMan also which will remain as an open source project. &lt;br /&gt;&lt;br /&gt;In fact, the main changes are in two things.&lt;br /&gt;&lt;br /&gt;1. The name of this blog has changed - It no longer has open source in it :)&lt;br /&gt;2. I wont be paid to write tools for open source integration or making use of open source in commercial enterprises - I am out of &lt;i&gt;that&lt;/i&gt; business - entirely.&lt;br /&gt;&lt;br /&gt;Perhaps one day I will be back to that business. Of course the software landscape&lt;br /&gt;keeps changing daily and the "open source companies" of the future would be mostly having totally different business models from the current ones - an interesting future to watch out for.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-288707416730293480?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/288707416730293480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=288707416730293480' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/288707416730293480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/288707416730293480'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/07/break-from-open-source.html' title='A break from open source'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-4556767776995834870</id><published>2007-07-13T13:00:00.000+05:30</published><updated>2007-07-13T13:02:47.630+05:30</updated><title type='text'>HarvestMan crawls up in Google rankings</title><content type='html'>About 2 months after HarvestMan moved from freezope to the new site, it is nice to note that is back up in the top 10 Google &lt;a href="http://www.google.co.in/search?q=harvestman"&gt;queries for "HarvestMan"&lt;/a&gt;. In fact, I note it is the 10th result as of writing this post.&lt;br /&gt;&lt;br /&gt;Thanks Google! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-4556767776995834870?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/4556767776995834870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=4556767776995834870' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4556767776995834870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4556767776995834870'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/07/harvestman-crawls-up-in-google-rankings.html' title='HarvestMan crawls up in Google rankings'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-3118227121310253204</id><published>2007-07-10T13:24:00.000+05:30</published><updated>2007-07-10T13:35:22.053+05:30</updated><title type='text'>Stacked up or hyped up ?</title><content type='html'>There is a rather old article on &lt;a href="http://www.computerworld.com"&gt;computerworld&lt;/a&gt; website. The &lt;a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;taxonomyName=Linux_and_Unix&amp;articleId=9005054&amp;taxonomyId=122&amp;intsrc=kc_li_story"&gt;article&lt;/a&gt;  talks about what it calls the recent "scramble" to create application stacks for enterprises using open source components. The criticism is that the market does not really exist but is a rather hyped up buzzword. One tends to draw subtle parallels with &lt;a href="http://www.intranetjournal.com/articles/200307/ij_07_23_03a.html"&gt;push technology of the heady dotcom days&lt;/a&gt; in one's mind. The technology existed, but it was trying to solve a problem that did not exist.&lt;br /&gt;&lt;br /&gt;Open source stack vendors seems to be in a similar situation, developing solutions in search of a problem. When will this hype cycle burst ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-3118227121310253204?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/3118227121310253204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=3118227121310253204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/3118227121310253204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/3118227121310253204'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/07/stacked-up-or-hyped-up.html' title='Stacked up or hyped up ?'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-672233299676667710</id><published>2007-07-04T15:24:00.000+05:30</published><updated>2007-07-04T15:26:21.370+05:30</updated><title type='text'>Barcamp Bangalore is happening</title><content type='html'>And this time, many participants from &lt;a href="http://groups.yahoo.com/group/bangpypers"&gt;BangPypers&lt;/a&gt; will be there. Go to the  &lt;a href="http://barcampbangalore.org/wiki/BCB4_BangPypers"&gt;BangPypers wiki&lt;/a&gt; on Barcamp website to catch all the action.&lt;br /&gt;&lt;br /&gt;Barcamp is happening on July 28 and 29 at IIM Bangalore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-672233299676667710?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/672233299676667710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=672233299676667710' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/672233299676667710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/672233299676667710'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/07/barcamp-bangalore-is-happening.html' title='Barcamp Bangalore is happening'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-7182453608828872688</id><published>2007-07-02T17:21:00.000+05:30</published><updated>2007-07-02T17:25:52.310+05:30</updated><title type='text'>Adios Amigas</title><content type='html'>I submitted my resignation to my employer today. I will be seeing the last of them on the 20th of this month.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-7182453608828872688?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/7182453608828872688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=7182453608828872688' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7182453608828872688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7182453608828872688'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/07/hasta-la-vista.html' title='Adios Amigas'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-8483563580726676047</id><published>2007-06-22T13:17:00.000+05:30</published><updated>2007-06-22T13:18:24.044+05:30</updated><title type='text'>A new look</title><content type='html'>My blog has a new look after Blogger "forced" me to change the template.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-8483563580726676047?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/8483563580726676047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=8483563580726676047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8483563580726676047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8483563580726676047'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/06/new-look.html' title='A new look'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-7917319120252197580</id><published>2007-06-19T17:12:00.000+05:30</published><updated>2007-06-19T17:20:40.087+05:30</updated><title type='text'>Power of Twisted</title><content type='html'>I have been planning to learn &lt;a href="http://www.twistedmatrix.com"&gt;Twisted&lt;/a&gt; for long, but never got a real problem to try it. Today, I was writing an XML-RPC server, and felt that this was a good time to learn Twisted, since I was not feeling very comfortable with the rather &lt;a href="http://docs.python.org/lib/module-SimpleXMLRPCServer.html"&gt;simple XML RPC server&lt;/a&gt; provided by Python standard library. &lt;br /&gt;&lt;br /&gt;I read the &lt;a href="http://twistedmatrix.com/projects/web/documentation/howto/xmlrpc.html"&gt;Twisted HOWTO&lt;/a&gt; on XML-RPC and was off and going within 30 minutes. Within minutes I had the same XML-RPC server rewritten to use Twisted's powerful reactor framework. It took some time to figure out how to add basic HTTP authentication, but with some googling I was able to do this also in a couple of hours!&lt;br /&gt;&lt;br /&gt;Now, I have a small framework which consists of a module which provides an extensible XML-RPC server using twisted with basic HTTP authentication. Since Twisted supports SOAP also out-of-the-box, it is quite simple to extend this to support SOAP also. &lt;br /&gt;&lt;br /&gt;The power of Twisted is quite amazing. I am thinking of writing a version of HarvestMan which runs on top of twisted...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-7917319120252197580?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/7917319120252197580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=7917319120252197580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7917319120252197580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7917319120252197580'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/06/power-of-twisted.html' title='Power of Twisted'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-8460929794777073018</id><published>2007-06-19T10:54:00.000+05:30</published><updated>2007-06-19T11:06:03.817+05:30</updated><title type='text'>A scene from Dilbert</title><content type='html'>Dilbert and his friends Alice, Asok and Ratbert in the cafeteria.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ratbert:&lt;/span&gt; Hiya Dilbert, your face is beaming; What is news ?&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Dilbert:&lt;/span&gt; The Boss has moved on.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Asok the intern:&lt;/span&gt; How does it make a difference ? These managers are the same everywhere!&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ratbert:&lt;/span&gt; No, you are underestimating the black powers of The Boss. He can make it or break it. I have heard, he breaks it most of the time.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Alice:&lt;/span&gt; I heard Catbert might also get a move on.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ratbert:&lt;/span&gt; Really ?&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Alice:&lt;/span&gt; I heard something.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Ratbert:&lt;/span&gt; Good riddance.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Dilbert:&lt;/span&gt; Yup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-8460929794777073018?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/8460929794777073018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=8460929794777073018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8460929794777073018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/8460929794777073018'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/06/scene-from-dilbert.html' title='A scene from Dilbert'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-1077666544173978992</id><published>2007-05-28T14:57:00.000+05:30</published><updated>2007-05-28T23:52:04.831+05:30</updated><title type='text'>HarvestMan moves to http://www.harvestmanontheweb.com</title><content type='html'>HarvestMan project has moved to a new &lt;a href="http://www.harvestmanontheweb.com"&gt;address&lt;/a&gt; from today. It was earlier hosted gratis on &lt;a href="http://harvestman.freezope.org"&gt;freezope&lt;/a&gt;. However the freezope virtual hosts have not been working properly for more than a month, which has affected the availability of the HarvestMan project website. Google also reacted promptly, taking HarvestMan project off its top &lt;a href="http://www.google.co.in/search?q=harvestman"&gt;queries for "harvestman"&lt;/a&gt;. Whereas it was the number one result say two months back, it is nowhere to be seen in the top 20 results now!&lt;br /&gt;&lt;br /&gt;The new website has the same look and feel as the original one, since I simply copied the pages over. Hope this would help the website and the project to recapture some lost page views in the coming days.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-1077666544173978992?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/1077666544173978992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=1077666544173978992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/1077666544173978992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/1077666544173978992'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/05/harvestman-moves-to-httpwwwharvestmaont.html' title='HarvestMan moves to http://www.harvestmanontheweb.com'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-4266231491396360127</id><published>2007-05-21T11:45:00.000+05:30</published><updated>2007-05-21T11:59:16.054+05:30</updated><title type='text'>Art of Innovation</title><content type='html'>I am currently reading the &lt;a href="http://theartofinnovation.com/"&gt;book&lt;/a&gt; by &lt;a href="http://www.tenfacesofinnovation.com/tomkelley/index.htm"&gt;Tom Kelley&lt;/a&gt; with the same name. Tom Kelley is the general manager of &lt;a href="http://en.wikipedia.org/wiki/IDEO"&gt;IDEO&lt;/a&gt; a legendary design firm based in Palo Alto, California. IDEO is well-known as a product design firm which has created a number of innovative products and designs over the years since 1991. Some of the best examples are the original Apple mouse, the Palm V PDA, the first external module for the &lt;a href="http://en.wikipedia.org/wiki/Handspring"&gt;Handspring Visor&lt;/a&gt; (&lt;a href="http://www.dcresource.com/specials/eyemodule/index.html"&gt;Eyemodule&lt;/a&gt;) etc. The company has &lt;a href="http://bwnt.businessweek.com/idea_winners/2006/index.asp?consultant=IDEO"&gt;won&lt;/a&gt; 48 IDEA (Industrial Design Excellence Award) awards, much more than any other firm in history. &lt;br /&gt;&lt;br /&gt;The book explains the various aspects of the work culture at IDEO, giving a very vivid picture to the reader of the different elements of the work culture that makes the company have an edge in innovation when compared to similar firms. The title "Art of Innovation" is a bit misleading since the book is all about IDEO and how it is able to achieve excellence and success in its design. It focuses on the practical aspects of weaving the "innovation factor" into the business processes in a company, and does a very good and thorough job of it. A must-read for any body who is working in industries which involve creative work.&lt;br /&gt;&lt;br /&gt;I shall be posting a more complete review of the book after I finish reading it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-4266231491396360127?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/4266231491396360127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=4266231491396360127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4266231491396360127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/4266231491396360127'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/05/art-of-innovation.html' title='Art of Innovation'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-3204346060991675524</id><published>2007-04-25T18:46:00.000+05:30</published><updated>2007-04-25T18:57:39.428+05:30</updated><title type='text'>What I am doing these days</title><content type='html'>These are the two things I am doing these days, apart from regular work at office.&lt;br /&gt;&lt;br /&gt;1. Developing the next version of HarvestMan &lt;br /&gt;2. Developing the next version of HarvestMan&lt;br /&gt;&lt;br /&gt;Well, that is right... It was not a typing mistake :-)&lt;br /&gt;&lt;br /&gt;HarvestMan is going to get a major update coming May, and it will be the result of more than 1.5 years of work. In fact the program has changed so much that I am changing the major version. It is going to be HarvestMan-2.0.&lt;br /&gt;&lt;br /&gt;There are certain surprises with this HarvestMan release. Some of the interesting changes for NLP and Computational Linguistics programmers will be the addition of a plugin API that makes developing extensions for HarvestMan a breeze. In fact, the current CVS of HarvestMan already features an extension which binds it to an existing open source indexing engine. Apart from that, the program features a number of changes from the earlier version (1.4.6) so that it is almost on its way to becoming a "platform for web crawler software development", where I envision it to be.&lt;br /&gt;&lt;br /&gt;Apart from that, this time HarvestMan will consist of two apps in one - that's right. There will be two applications using the same codebase. The crawler application (HarvestMan, of course) and a brand new web downloader application which supports multipart downloads. Let the name of this application be a mystery for the time being. The application just might change the command-line download experience of Unix/Linux users from the typical wget one. I will write more about it in the coming weeks.&lt;br /&gt;&lt;br /&gt;In fact all of this is already in CVS. Anyone interested can checkout the latest code from &lt;a href="http://developer.berlios.de/projects/harvestman"&gt;berlios repository&lt;/a&gt; using anonymous CVS. There is not much documentation apart from the documentation in the code, but the code is pretty stable at the moment.&lt;br /&gt;&lt;br /&gt;This should get released by mid May.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-3204346060991675524?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/3204346060991675524/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=3204346060991675524' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/3204346060991675524'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/3204346060991675524'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/04/what-i-am-doing-these-days.html' title='What I am doing these days'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-7376236592848141181</id><published>2007-04-24T00:43:00.000+05:30</published><updated>2007-04-24T01:28:34.074+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='communities'/><category scheme='http://www.blogger.com/atom/ns#' term='collaboration'/><category scheme='http://www.blogger.com/atom/ns#' term='innovation'/><category scheme='http://www.blogger.com/atom/ns#' term='open culture'/><title type='text'>Open source and Innovation</title><content type='html'>What makes a successful open source project ? What makes a successful open source business ? How does successful open source projects make the transition to good business which still keep with the spirit of open source and open standards ?&lt;br /&gt;&lt;br /&gt;These are questions any developer who is a serious contributor to open source would be interested in. Even if you are not an open source contributor, you will be interested in these questions, if your company is working in open source.&lt;br /&gt;&lt;br /&gt;According to my experience so far, with my own projects and with some of the international projects I have participated in, a successful open source projects brings some new ideas to the table. New ideas need not be confused with new way of doing things or new I.P. It can be a new implementation of an existing protocol, it can be an open implementation of a proprietary standard, or it can be a project that uses existing open source components or applications to solve an existing problem (or a new one) in interesting and innovative ways. These need not always generate new kinds of intellectual property.&lt;br /&gt;&lt;br /&gt;Yes, the key here is innovation. Good open source projects bring a fresh way of solving existing problems; they give a fresh perspective to existing way of doing things. Sometimes they are able to rewrite the rules by capturing the imagination of many hundreds of developers and thousands of supporting community members - a good example is the Firefox community. Some times, it will be a rather closeted group of skilled people in a rather niche area who finds a void in the experience of open source applications/operating systems and tries to fill the gap - a good example is the Beryl/Compiz projects which are working hard to bring display compositing to the Linux and open source crowd. &lt;br /&gt;&lt;br /&gt;However, a common thread to all these project is this - they innovate. They innovate in fresh ideas, simplifying user experience and sometimes on performance. They often open up an entire new facet to an existing problem which makes programming a joy.&lt;br /&gt;&lt;br /&gt;What do successful companies in open source have in common ? They understand the importance of keeping the developer crowd happy. They are keen to become good citizens of the open source community and contribute either their manpower or projects to the community - some do both. They understand that it is important not to just become consumers of open source but also stakeholders and participants.&lt;br /&gt;&lt;br /&gt;When a company fails to understand this, or fails to create a working, effective developer policy towards open sourcing, it is prone to be assigned the category of a second or third rate citizen in the open source community. By just becoming a consumer of open source and not contributing enough, it risks alienating the coding crowd who tends to think of the company as a predator, not as an ally. &lt;br /&gt;&lt;br /&gt;Most often, such companies never learn to use open source the right way too. By not participating enough, they fail to understand the driving force behind open source and people working in such projects. This in turn makes them less effective users of such software. For example, a company that brands itself as an open source integrator can never be quite effective if it does not understand the open source projects it is integrating and does not contribute developer resources to such projects; in fact, it is not even necessary to contribute directly most of the time. Indirect participation such as hosting meetings, contributing tools, toolchains and providing a platform for discussion and creation of new ideas are also good ways of contribution.&lt;br /&gt;&lt;br /&gt;A company not doing any of these and still claiming to work in open source is somehow not doing the right thing. Such strategies are doomed to fail in the long term and even prove counter productive. In the long run a company like this is bound to move away from open source or bound to fail.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-7376236592848141181?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/7376236592848141181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=7376236592848141181' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7376236592848141181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/7376236592848141181'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2007/04/open-source-and-innovation.html' title='Open source and Innovation'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-115200320491489942</id><published>2006-07-04T14:11:00.000+05:30</published><updated>2006-07-04T14:27:20.026+05:30</updated><title type='text'>Some ordered thoughts on Gnosis enhancements and XPath</title><content type='html'>I had dropped out of the blogging habit after Feb this year, mainly due to work pressures at office. I think it is time for me to dust out my blogging brush and start painting my blog a little bit, at least to touch up some of the loosing sheen here and there :-)&lt;br /&gt;&lt;br /&gt;This is about a nice little utility called &lt;a href="http://www.gnosis.cx/"&gt;Gnosis utils &lt;/a&gt; which provides powerful XML parsing in very little code. The library is written by Dr. David Mertz who is a known authority on Python programming matters and has written some charming articles in his &lt;a href="http://gnosis.cx/publish/tech_index_cp.html"&gt;"Charming Python"&lt;/a&gt; series for IBM developerworks.&lt;br /&gt;&lt;br /&gt;I was looking around for an XML API which provides powerful &lt;a href="http://www.w3.org/TR/xpath"&gt;XPath&lt;/a&gt; parsing capabilities out of the box some time in March for a project I am doing at Spikesource. PyXML woefully lacks in this department. &lt;a href="http://effbot.org/zone/element-index.htm"&gt;ElementTree&lt;/a&gt;, though a very good API for generic XML processing, falls short on its XPath support (no attributes etc).&lt;br /&gt;&lt;br /&gt;Gnosis provides decent XPath support - it supports attributes, text searches but does not support attribute values, the [@attr] syntax etc.&lt;br /&gt;&lt;br /&gt;During my work, I enhanced Gnosis XML to support some of the XPath 1.0 specs it do not support. These include,&lt;br /&gt;&lt;br /&gt; o Support for //elem[@attr] syntax&lt;br /&gt; o Search attributes by value - i.e support //elem[@attr=value] syntax&lt;br /&gt; o Support //elem[last()]&lt;br /&gt; o Support XPath searches in the root node&lt;br /&gt; &lt;br /&gt;The good thing is that I have been able to extract out the Gnosis XML processing parts to a single module and add these enhancements on top of it. I plan to enhance this with the full XPath 1.0 specifications within a month or so and release it to public domain. &lt;br /&gt;&lt;br /&gt;I hope this will address the existing void of lightweight pure Python APIs with full XPath support. The whole thing will fit inside a single module which should make it easy to use and extend.&lt;br /&gt;&lt;br /&gt;Looking forward to completing this work!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-115200320491489942?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/115200320491489942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=115200320491489942' title='62 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/115200320491489942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/115200320491489942'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2006/07/some-ordered-thoughts-on-gnosis.html' title='Some ordered thoughts on Gnosis enhancements and XPath'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>62</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-114072089526053506</id><published>2006-02-24T00:14:00.000+05:30</published><updated>2006-02-24T00:28:13.323+05:30</updated><title type='text'>BangPypers meet this Sunday</title><content type='html'>After a long time, the &lt;a href="http://groups.yahoo.com/group/BangPypers/"&gt;BangPypers&lt;/a&gt; are meeting this Sunday, the 26th again. The meeting is organized in the Spikesource conference room named &lt;i&gt;Ruby&lt;/i&gt;. How is that for some co-operation between two popular dynamic languages !&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.applibase.net/sidharth/"&gt;Sidharth Kuruvila&lt;/a&gt; is giving a talk on one of his favorite topics, namely generators in Python. &lt;a href="http://www.24dot1.com/"&gt;Sridhar Ratna&lt;/a&gt; of Amazon will talk on &lt;a href="http://www.turbogears.org/"&gt;TurboGears&lt;/a&gt;, his favorite Python web dev framework. Also, &lt;a href="http://anushshetty.wordpress.com/"&gt;Anush Shetty&lt;/a&gt;, a very active Python community member in Bangalore shall organize a BoF session on Python Education.&lt;br /&gt;&lt;br /&gt;It is going to be an exciting event. If you are interested in Pythonic happenings in India's silicon valley, make sure you drop in to Spikesource offices in Diamond District on Airport Road on the 26th at 4.30 pm sharp.&lt;br /&gt;&lt;br /&gt;Unfortunately, I cannot attend this meet since I am going out of Bangalore this week-end to visit my family. &lt;a href="http://users.kaski-net.net/~deepan/"&gt;Deepan&lt;/a&gt; from Spikesource should take care of the meeting co-ordination.&lt;br /&gt;&lt;br /&gt;Hope you all have a fun and informative session!&lt;br /&gt;&lt;br /&gt;See the &lt;a href="http://groups.yahoo.com/group/BangPypers/cal///group/BangPypers?v=4&amp;t=1140971400&amp;i=68&amp;pv=61"&gt;meeting description&lt;/a&gt; in the group's calendar for details and contact information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-114072089526053506?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/114072089526053506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=114072089526053506' title='40 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/114072089526053506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/114072089526053506'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2006/02/bangpypers-meet-this-sunday.html' title='BangPypers meet this Sunday'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>40</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113471279376500348</id><published>2005-12-16T11:13:00.000+05:30</published><updated>2005-12-16T11:30:41.946+05:30</updated><title type='text'>New exception model in IronPython</title><content type='html'>I am a lurker in the &lt;a href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=ad7acff7-ab1e-4bcb-99c0-57ac5a3a9742"&gt;IronPython&lt;/a&gt; mailing lists. Now that the project is slowly approaching 1.0 release, I have started taking an active interest in the proceedings in the list.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://lists.ironpython.com/pipermail/users-ironpython.com/2005-December/001403.html"&gt;recent postings&lt;/a&gt; on the proposed new exception handling system in IronPython makes interesting reading. Apparently the current model does not provide a nice co-existence of the exception hierarchies of CPython and the .NET CLI. This means that if you call a piece of pure CLI code from inside your Python (IronPython) code and if it raises a CLI exception, you are left stranded in no-man's land if your code only catches Python exceptions.&lt;br /&gt;&lt;br /&gt;The proposed new model plans to separate the exception hierarchy into two hieararchies - one for .NET CLI exceptions and one for Python exceptions. The Python exception hierarchy will mirror that of the existing CPython exception class hierarchy. Under this model pure Python and CLI code catching their own exceptions will work the same. When the two worlds collide, i.e when pure Python code tries to catch a CLI exception or when pure CLI code tries to catch a Python exception, the system will convert the  exception to the required type. &lt;br /&gt;&lt;br /&gt;For example, if the Python code raises EOFError, the CLI code will see an EndOfStreamException. If the CLI code raises FileIOException, the Python code will see an IOError. The error mappings happen automatically. &lt;br /&gt;&lt;br /&gt;Some problems still remain unsolved - like what the user should see as an exception traceback; should it be pure Python exceptions or .NET ? The current thinking is that the language should allow both forms in a user-configurable way.&lt;br /&gt;&lt;br /&gt;One issue with this model is that in order to map CLI exceptions to Python exceptions you need to go through some kind of mapping for CLI to Python exceptions; this could slow things down a bit. Also, the model requires rethrowing of exceptions whenever the CLI and Python worlds collide.&lt;br /&gt;&lt;br /&gt;It will be interesting to wait and watch how the new model develops.&lt;br /&gt;&lt;br /&gt;The new exception model is described in detail in this &lt;a href="http://channel9.msdn.com/wiki/default.aspx/IronPython.ExceptionModel"&gt;Channel 9 wiki posting&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113471279376500348?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113471279376500348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113471279376500348' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113471279376500348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113471279376500348'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/12/new-exception-model-in-ironpython.html' title='New exception model in IronPython'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113351069477232442</id><published>2005-12-02T13:31:00.000+05:30</published><updated>2005-12-02T13:34:54.786+05:30</updated><title type='text'>Back to Bangalore</title><content type='html'>I came back to Bangalore after six and a half fine days in Norway on 1st early morning, 2 am. The flight from Frankfurt to Bangalore took 8 hours.&lt;br /&gt;&lt;br /&gt;The photo album is at Y! which is online &lt;a href="http://tinyurl.com/da87f"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;After spending six days at near and below zero temperatures in Norway, Bangalore is feeling hot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113351069477232442?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113351069477232442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113351069477232442' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113351069477232442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113351069477232442'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/12/back-to-bangalore.html' title='Back to Bangalore'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113274137144195144</id><published>2005-11-23T15:45:00.000+05:30</published><updated>2005-11-23T16:07:46.073+05:30</updated><title type='text'>Workshop in Norway</title><content type='html'>I am leaving tonight (Nov 24 2005, 2.15 am) to &lt;a href="http://www.grimstad.net/"&gt;Grimstad&lt;/a&gt;, Norway for taking part in the 2nd international EIAO conference and workshop. This conference is organised by &lt;a href="http://hia.no"&gt;AUC&lt;/a&gt; as part of the &lt;a href="http://eiao.net"&gt;EIAO&lt;/a&gt; project.&lt;br /&gt;&lt;br /&gt;I will be making a small presentation on &lt;a href="http://steinbit.agder-ikt.hia.no/~aandas99/"&gt;D-HarvestMan&lt;/a&gt;. I am returning to India on 1st Dec.&lt;br /&gt;&lt;br /&gt;Here is a brief abstract of the proceedings in Grimstad.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2nd international EIAO conference and worskhop&lt;/b&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;24.11.05&lt;br /&gt;1. Presentation of overall timeplan&lt;br /&gt;2. Presentation of preliminary Observatory anatomy&lt;br /&gt;3. WAM coordination (D3.1.1, UWEM, D5.1.1.1 and D5.1.1.2 )&lt;br /&gt;4. Coordination of WP3, WP4 and WP5 release 1.0 time plans&lt;br /&gt;5. Overall release 1.0 planning and actions&lt;br /&gt;&lt;br /&gt;25.11.05&lt;br /&gt;&lt;br /&gt;1. Welcome Mikael Snaprud&lt;br /&gt;2. D-Crawler - Anand B. Pillai&lt;br /&gt;3. Presentation of anatomy methodology Alf Fredvik&lt;br /&gt;4. SW development process Design and test. Parastoo Mohagheghi, &lt;br /&gt;Per Wollebæk&lt;br /&gt;&lt;br /&gt;26.11.05 and 27.11.05&lt;br /&gt;&lt;br /&gt;1. Presentation of overall timeplan&lt;br /&gt;2. Presentation of preliminary Observatory anatomy&lt;br /&gt;3. Development of a DW anatomy&lt;br /&gt;4. Description of each anatomy&lt;br /&gt;5. Scheduling of each anatomy&lt;br /&gt;6. SW development process (Design and test)&lt;br /&gt;7. Coordination of WP6 and WP5 release 1.0 time plans&lt;br /&gt;8. Overall release 1.0 planning and actions&lt;br /&gt;&lt;br /&gt;28.11.05 &lt;br /&gt;Follow ups and documentation&lt;br /&gt;1. Inspection and adjustment of plans for each anatomy&lt;br /&gt;2. Strategy for outreach and dissemination towards &lt;br /&gt;and after release 1.0&lt;br /&gt;3. Summary and outlook - HarvestMan as a vehicle for &lt;br /&gt;research based teaching&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113274137144195144?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113274137144195144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113274137144195144' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113274137144195144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113274137144195144'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/11/workshop-in-norway.html' title='Workshop in Norway'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113223809271141178</id><published>2005-11-17T19:50:00.000+05:30</published><updated>2005-11-17T20:04:52.726+05:30</updated><title type='text'>Internet Summit in Tunis</title><content type='html'>The &lt;a href="http://news.com.com/Internet+showdown+in+Tunis/2008-1012_3-5945200.html?tag=nl"&gt;World Summit on Information Society (WSIS)&lt;/a&gt;, dubbed as the "Internet Showdown" by CNET, is being held under the aegis of the U.N in Tunis, the capital of Tunisia at present. &lt;br /&gt;&lt;br /&gt;Dr.Mikael Snaprud of the &lt;a href="http://eiao.net"&gt;EIAO&lt;/a&gt; project presented a &lt;a href="http://worldsci.net/presentations.htm"&gt;paper&lt;/a&gt; in the &lt;a href="http://worldsci.net/"&gt;conference&lt;/a&gt;(Past, Presence and Future of Research in the Information Society) associated to this summit on Nov 15. The paper talks about the role open source plays in ICT education and research, with the EIAO project as the background. The presentation associated with this paper is available at the &lt;a href="http://eiao.net/publications"&gt;EIAO Publications&lt;/a&gt; website.&lt;br /&gt;&lt;br /&gt;The paper is authored by Mikael Snaprud, Agata Sawicka, Anand Pillai(myself), Nina Olsen, Morten.G.Olsen, Vidar Laupsa and Terje Gjøsæter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113223809271141178?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113223809271141178/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113223809271141178' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113223809271141178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113223809271141178'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/11/internet-summit-in-tunis.html' title='Internet Summit in Tunis'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113191571772366486</id><published>2005-11-14T02:27:00.000+05:30</published><updated>2005-11-14T02:33:02.753+05:30</updated><title type='text'>D-HarvestMan prototype is born</title><content type='html'>It is 2.30 am in the morning right now. I am in a good mood. The reason is that I just finished coding and testing the basic &lt;a href="http://steinbit.agder-ikt.hia.no/~aandas99/"&gt;D-HarvestMan&lt;/a&gt; prototype for a single master, single slave configuration. And it works! The master was able to successfully bootstrap the slave crawler with a new domain and let it start downloading files from it. Hip hip hooray!&lt;br /&gt;&lt;br /&gt;D-HarvestMan is a project to write a distributed crawler on top of the existing HarvestMan. Distributed programming is always exciting, and a distributed crawler is even more so :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113191571772366486?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113191571772366486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113191571772366486' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113191571772366486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113191571772366486'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/11/d-harvestman-prototype-is-born.html' title='D-HarvestMan prototype is born'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113165631802276046</id><published>2005-11-11T02:24:00.000+05:30</published><updated>2005-11-11T02:29:28.066+05:30</updated><title type='text'>The fox is one year old</title><content type='html'>&lt;a href="http://spreadfirefox.com"&gt;Firefox&lt;/a&gt; turned &lt;a href="http://news.com.com/Firefox+marks+its+first+year+on+the+Net/2100-1032_3-5942818.html?tag=nefd.top"&gt;one year old&lt;/a&gt; on Nov 9, two days back. The wily fox has set the web on fire, ever since it debuted on Nov 9 2004. With the 1.5 final release on the way, it is well on course to capture further market share from the &lt;a href="http://www.infosecurity-magazine.com/news/040709_IE_alts.html"&gt;beleaguered I.E&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;Three cheers to the Firefox team and wish all the best to the fox for its second year!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113165631802276046?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113165631802276046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113165631802276046' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113165631802276046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113165631802276046'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/11/fox-is-one-year-old.html' title='The fox is one year old'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113135209801006761</id><published>2005-11-07T13:54:00.000+05:30</published><updated>2005-11-08T00:27:36.776+05:30</updated><title type='text'>OOo plugin for Firefox</title><content type='html'>In the context of my previous post, it is interesting to see that people have &lt;a href="http://lists.netisland.net/archives/plug/plug-2004-11/msg00189.html"&gt;already talked about&lt;/a&gt; how an OOo plugin for Firefox can be a killer collaboration application on par with MS Sharepoint.&lt;br /&gt;&lt;br /&gt;  Apparently a &lt;a href="http://gemal.dk/blog/2004/09/22/openofficeorg_mozilla_plugin/"&gt;Mozilla plugin&lt;/a&gt; is already available in OOo 2.0. The problem with it is that you enable the plugin from inside OOo, which requires that OOo is already installed in your machine.&lt;br /&gt;&lt;br /&gt; From the Mozilla OOo plugin &lt;a href="http://specs.openoffice.org/appwide/desktop_integration/ooo_mozilla_plugin.sxw"&gt;specification&lt;/a&gt;,&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-style:italic;"&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;"Plug-in usability&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The plug-in works only if a working OpenOffice.org installation is found on the system"&lt;/span&gt;"&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;This reduces the usability of the plugin, I think. Developing a light-weight OOo plugin for Mozilla/Firefox which can be installed on the fly could be pretty useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113135209801006761?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113135209801006761/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113135209801006761' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113135209801006761'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113135209801006761'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/11/ooo-plugin-for-firefox.html' title='OOo plugin for Firefox'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113118717352528483</id><published>2005-11-05T14:08:00.000+05:30</published><updated>2005-11-05T16:39:59.076+05:30</updated><title type='text'>Some random thoughts on a web-based office suite</title><content type='html'>Ever since &lt;a href="http://www.sun.com"&gt;Sun&lt;/a&gt; and &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; announced their &lt;a href="http://www.eweek.com/article2/0,1895,1866536,00.asp"&gt;partnership&lt;/a&gt; early in October, speculation has been rife on the possibility of a web-based office suite, aptly titled &lt;a href="http://www.microsoft-watch.com/article2/0,2180,1866932,00.asp"&gt;"GoogleOffice"&lt;/a&gt;. However, there has not been any strong indication of such an effort underway. In fact a number of industry watchers were &lt;a href="http://www.eweek.com/article2/0,1759,1867081,00.asp"&gt;disappointed&lt;/a&gt; when Google and Sun announced that the initial collaboration would be on bundling the &lt;a href="http://toolbar.google.com"&gt;Google toolbar&lt;/a&gt; with &lt;a href="http://www.javasoft.com"&gt;Java&lt;/a&gt; runtime downloads.&lt;br /&gt;&lt;br /&gt; Now that Microsoft is alligning itself as a &lt;a href="http://news.com.com/Gates+Microsoft+ready+to+go+live/2009-1011_3-5926079.html?tag=cd.hed"&gt;services provider&lt;/a&gt; and trying to offer integrated solutions by bundling its diverse product portfolio (Office, MSN, messenger etc) along with its new service initiatives (Windows Live, Office Live), it is probably time that Google looked into countering these overtures with appropriate answers - I think there is nothing more fitting here than an office solution which integrates &lt;a href="http://gmail.google.com"&gt;Gmail&lt;/a&gt;, &lt;a href="http://www.google.com/talk/"&gt;Google Talk&lt;/a&gt;, &lt;a href="http://desktop.google.com"&gt;Google Desktop&lt;/a&gt; and the &lt;a href="http://www.spreadfirefox.com"&gt;Firefox web browser&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt; Perhaps such an effort is already underway in &lt;a href="http://labs.google.com"&gt;Google Labs&lt;/a&gt;. However, here is my vision for such a solution, a kind of blue print for a future GoogleOffice on the web.&lt;br /&gt;&lt;br /&gt; Google office will be a collaborative suite integrating Gmail, Google Desktop, Google Talk and Firefox. Ideally it should have the following components:&lt;br /&gt;&lt;br /&gt;  1. An open-office plugin for Firefox&lt;br /&gt;  2. An extension to Google desktop that allows Gmail attachments to be searched and accessed.&lt;br /&gt;  3. An extension to Google talk that allows members to access attachments in their Gmail account and also share files and folders through Google Desktop.&lt;br /&gt;  &lt;br /&gt;  Let me explain:&lt;br /&gt;&lt;br /&gt;  1. The Firefox plugin will allow one to view Openoffice documents inside the Firefox web-browser. Initially this need to support only OOo native file formats and the OpenDocument format, but MS office support would be preferable.&lt;br /&gt;  2. Right now attachments cannot be searched in Gmail. Google needs to add this capability to Gmail. Attachments can be searched by name, but they also need to be searchable by content.&lt;br /&gt;  3. Google desktop integrates with Gmail, but again attachments are not searchable or accessible. This capability need to be added to Google Desktop so that one can search and access documents stored as attachments in his Gmail id through Google Desktop.&lt;br /&gt;  4. The same capability should be added to Google Talk so that one can search for attached documents from Google Talk.&lt;br /&gt;  5. Integration between Google Talk and Google Desktop so that chatters can share documents with each other and search each others desktop, given sufficient access control privileges.&lt;br /&gt;&lt;br /&gt;All these pieces will allow for a basic GoogleOffice over the web. Let us look at some common scenarios:&lt;br /&gt;&lt;br /&gt;  1. Someone is browsing in an Internet cafe - He wants to view an OOo document sent to his Gmail id as email attachment. Typically Internet cafes do not have OOo so he is at a loss (This happens to me quite often). This is where an OOo plugin for Firefox can help. Gmail need not know anything about this plugin. It can be a regular firefox plugin. In this case, Firefox will detect that the plugin is not installed, will download and install it automatically. Voila, you can view your OOo document inside firefox.&lt;br /&gt;&lt;br /&gt;     I dont think it will be too difficult to develop such a plugin, considering that the source code for OOo is open and the OOo file formats are well documented. This will also help in large scale acceptance of OOo file formats in a way similar to PDF. Editing capabilities will also be nice but this could be tough to implement in a browser plugin.&lt;br /&gt;&lt;br /&gt;     I would like to see plugins for all OOo file formats but specifically OOo writer (.sxw), OOo impress (.sxi) and the OpenDocument formats.&lt;br /&gt;&lt;br /&gt;  2. Adding capability to search and find attachments in Gmail will allow people to use Gmail as a sort of virtual storage for their documents (read office documents). I tend to do this even now, but because the attachments are not searchable, the experience is crippled. Initially these can be added for well known and open formats such as PDF and the OOo file formats.&lt;br /&gt;&lt;br /&gt;  3. Once Gmail is enhanced with advanced capabilities to search attachments, this capability should be integrated with Google desktop which can then index the attachments and make them searchable from the desktop. Considering the work involved in indexing large attachments, it actually makes sense to add this capabillity only to Google desktop rather than onto Gmail directly.&lt;br /&gt;&lt;br /&gt;  4. This opens up the possibility of integrating Firefox, Gmail and Google Desktop for searching, accessing and modifying office documents. One can use Google Desktop to search office doucments stored in his Gmail account, then open and edit them on his desktop inside Firefox using the OOo plugin. If OOo is installed on the machine already, it can be used instead.&lt;br /&gt;&lt;br /&gt;  5. The last missing piece is Google Talk. Google Talk should integrate with Google desktop allowing querying of documents (Gmail, desktop, photos etc) through Google Talk. Google should add capabilities to Google Talk which will make this possible not only on one's own desktop but across desktops. &lt;br /&gt;&lt;br /&gt;     That is, you can give privilges in Google Talk to selected Google Talk users (your friends, co-workers, family), to search and access documents from inside your desktop and also your Gmail id. These can be controlled by access at various levels - read-only, read-write etc. &lt;br /&gt;&lt;br /&gt;     If one finds documents of interest they can be shared and edited online. Google should provide something like a shared space for two interested parties to share documents as a part of Google talk. This space can either be part of Gmail or separate from it. However, it should allow for saving documents by multiple Google talk users, acting as a kind of collaborative space.&lt;br /&gt;&lt;br /&gt;     &lt;br /&gt;Thus Google Talk and Google desktop along with Gmail and Firefox can be used to build a virtual collaborative office suite on the web which if done well, can probably pose some compeition to Microsoft office solutions and the recent &lt;a href="http://news.com.com/Microsoft+opens+up+Live+Meeting/2100-7345_3-5304709.html"&gt;office collaboration initiatives&lt;/a&gt;. It will also allow to take the OOo efforts to the web and provide it as a part of a services offering instead of the current stand-alone product.&lt;br /&gt;&lt;br /&gt;Perhaps this vision is a bit grand, but I don't think it is a difficult one for Google and the open source (read Openoffice) community. All the pieces are already there, they just require some additional capabilities and some plumbing to work as a unified, web-based solution.&lt;br /&gt;&lt;br /&gt;I have not thought to deep about the technical aspects of such a solution but a very interesting thought will be the role Java and Google toolbar can play in this integrated approach. Perhaps Java can be used to develop the Firefox OOo plugin also.&lt;br /&gt;&lt;br /&gt;I hope we can expect to see a web-based office solution from Google, Sun and the OOo community within the next 12 months.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113118717352528483?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113118717352528483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113118717352528483' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113118717352528483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113118717352528483'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/11/some-random-thoughts-on-web-based.html' title='Some random thoughts on a web-based office suite'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113092112363511638</id><published>2005-11-02T13:55:00.000+05:30</published><updated>2005-11-02T14:15:23.656+05:30</updated><title type='text'>FOSS.in</title><content type='html'>FOSS.in has published the &lt;a href="http://foss.in/2005/schedules/"&gt;second list&lt;/a&gt; of speakers of the event. Some notables who are speaking include the &lt;a href="http://en.wikipedia.org/wiki/Alan_Cox"&gt;legendary Alan Cox&lt;/a&gt;, &lt;a href="http://blogs.sun.com/roller/page/DaneseCooper"&gt;Danese Cooper&lt;/a&gt;, &lt;a href="http://fetter.org/"&gt;David Fetter&lt;/a&gt;, &lt;a href="http://jeremy.zawodny.com/blog/"&gt;Jeremy Zawodny&lt;/a&gt;, &lt;a href="http://www.oreilly.com/catalog/linuxdrive2/author.html"&gt;Jonathan Corbet&lt;/a&gt;, &lt;a href="http://www.mysqluc.com/cs/mysqluc2005/view/e_spkr/2035"&gt;Andrew Cowie&lt;/a&gt;, &lt;a href="http://gnumonks.org/~laforge/weblog/"&gt;Harald Welte&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Brian_Behlendorf"&gt;Brian Behlendorf&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://murugan.spikesource.com/"&gt;Murugan Pal&lt;/a&gt; is giving a talk on "Open source Alternatives". &lt;br /&gt;&lt;br /&gt; Also the talk by &lt;a href="http://conferences.oreillynet.com/cs/eurooscon/view/e_spkr/2384"&gt;Zaheda Bhorat&lt;/a&gt; of &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; on Google and open source seems interesting.&lt;br /&gt;&lt;br /&gt; FOSS.in is scheduled from 29th Nov to 2nd Dec 2005 at Bangalore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113092112363511638?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113092112363511638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113092112363511638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113092112363511638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113092112363511638'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/11/fossin.html' title='FOSS.in'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-113090237847566836</id><published>2005-11-02T08:58:00.000+05:30</published><updated>2005-11-02T09:13:44.396+05:30</updated><title type='text'>On Open Voting</title><content type='html'>An article published in a &lt;a href="http://www.granitebayview.com/"&gt;local daily of Granite Bay, CA&lt;/a&gt;, talks about accountability and the &lt;a href="http://www.openvoting.org"&gt;Open Voting Consortium&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Read the &lt;a href="http://www.granitebayview.com/article/2005/11/386"&gt;article&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;What is my interest in this ? Well, I happen to be part of the team that originally developed the OVC prototype, which was &lt;a href="http://www.openvotingconsortium.org/ad/ovc-mar22-pressrelease.pdf"&gt;demonstrated&lt;/a&gt; in April 1 2004. The OVC project was my first experience in working for an international open source project. The architects of the system &lt;a href="http://groups.google.co.in/group/comp.lang.python/browse_thread/thread/a168bdb07362c246/09677b912fc03f6f?lnk=st&amp;q=open+voting+group:comp.lang.python&amp;rnum=2&amp;hl=en#09677b912fc03f6f"&gt;decided &lt;/a&gt; to use &lt;a href="http://www.python.org"&gt;Python&lt;/a&gt; for the project, which was how I got interested in it. &lt;br /&gt;&lt;br /&gt;I am also a &lt;a href="http://www.openvotingconsortium.org/modules.php?name=Content&amp;pa=showpage&amp;pid=1"&gt;founding member&lt;/a&gt; of the OVC.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-113090237847566836?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/113090237847566836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=113090237847566836' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113090237847566836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/113090237847566836'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/11/on-open-voting.html' title='On Open Voting'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112997506904582639</id><published>2005-10-22T15:15:00.000+05:30</published><updated>2005-10-22T15:27:49.053+05:30</updated><title type='text'>International Conference on Digital Inclusion and Open Source</title><content type='html'>The &lt;a href="http://www.ictdev.ntnu.no/conference.asp?menuid=1127821425"&gt;annual conference on "Digal Inclusion and Open Source"&lt;/a&gt; took place in Oslo, Norway from Oct 20-21, 2005. &lt;br /&gt;&lt;br /&gt; A paper co-authored by me, &lt;a href="http://www.idi.ntnu.no/~parastoo/"&gt;Parastoo Mohaghegi&lt;/a&gt;, &lt;a href="http://www.agderforskning.no/ansatte/mikaels.htm"&gt;Mikael Snaprud&lt;/a&gt; &amp; &lt;a href="http://www.u-moe.org/"&gt;Nils Ulltveit-Moe&lt;/a&gt; was presented in the conference. The paper highlights the activities of the &lt;a href="http://eiao.net"&gt;EIAO&lt;/a&gt; project in bringing together users and external contributors from different parts of the world in an EU sponsored project.&lt;br /&gt;&lt;br /&gt; Read the &lt;a href="http://www.svt.ntnu.no/geo/prodec/Workshop05/abstracts.asp#Parastoo"&gt;abstract&lt;/a&gt; of the paper.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112997506904582639?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112997506904582639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112997506904582639' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112997506904582639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112997506904582639'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/10/international-conference-on-digital.html' title='International Conference on Digital Inclusion and Open Source'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112844486044874754</id><published>2005-10-04T22:22:00.000+05:30</published><updated>2005-10-04T22:24:20.460+05:30</updated><title type='text'>HarvestMan web-site redesign</title><content type='html'>I have finally re-designed the &lt;a href="http://harvestman.freezope.org"&gt;HarvestMan web-site&lt;/a&gt;! It has been something I have been planning since the beginning of this year! When I finally did it, it took me only two days. Surprising, how much savings one can get in terms of time, if one really focuses on the task at hand.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112844486044874754?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112844486044874754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112844486044874754' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112844486044874754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112844486044874754'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/10/harvestman-web-site-redesign.html' title='HarvestMan web-site redesign'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112789424450022871</id><published>2005-09-28T13:26:00.000+05:30</published><updated>2005-09-28T15:07:11.506+05:30</updated><title type='text'>Microsoft and JBoss shake hands</title><content type='html'>Probably bad news for &lt;a href="http://www.onlamp.com"&gt;LAMP&lt;/a&gt; and other open source stacks. Complete &lt;a href="http://news.com.com/Microsoft%2C+JBoss+link+server+software/2100-7344_3-5883498.html?tag=nefd.top"&gt;news is here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112789424450022871?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112789424450022871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112789424450022871' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112789424450022871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112789424450022871'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/09/microsoft-and-jboss-shake-hands.html' title='Microsoft and JBoss shake hands'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112659928624581301</id><published>2005-09-13T13:42:00.000+05:30</published><updated>2005-09-13T13:45:47.576+05:30</updated><title type='text'>Pyrex</title><content type='html'>I am currently learning &lt;a href="http://www.cosc.canterbury.ac.nz/~greg/python/Pyrex/version/Doc/overview.html"&gt;Pyrex&lt;/a&gt;, a language designed to take the pain out of writing C-extension modules for Python.&lt;br /&gt;&lt;br /&gt; I plan to rewrite performance intensive portions of HarvestMan using Pyrex. These enhancments will be available as part of the next major HarvestMan release, version 1.5.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112659928624581301?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112659928624581301/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112659928624581301' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112659928624581301'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112659928624581301'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/09/pyrex.html' title='Pyrex'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112634731650607720</id><published>2005-09-10T15:38:00.000+05:30</published><updated>2005-09-10T15:45:16.516+05:30</updated><title type='text'>Cathedral tries to recruit Bazaar!</title><content type='html'>No kidding :-). Microsoft apparently tried to recruit &lt;a href="http://esr.ibiblio.org/"&gt;Eric Raymond&lt;/a&gt;. If you don't know who Eric Raymond is, spend your afternoon reading up the excellent &lt;a href="http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/"&gt;Cathedral and Bazaar essays&lt;/a&gt;, some of the best essays written on the open source model. He also happens to be one of the co-founders of &lt;a href="http://www.opensource.org"&gt;OSI&lt;/a&gt;. Talk about Bush trying to recruit Osama Bin Laden for homeland security!&lt;br /&gt;&lt;br /&gt;   Read more about Microsoft's &lt;a href="http://www.eweek.com/article2/0,1895,1857430,00.asp"&gt;Mea Culpa&lt;/a&gt; in this &lt;a href="http://esr.ibiblio.org/index.php?p=208"&gt;article posted on ESR's blog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112634731650607720?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112634731650607720/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112634731650607720' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112634731650607720'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112634731650607720'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/09/cathedral-tries-to-recruit-bazaar.html' title='Cathedral tries to recruit Bazaar!'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112625836896382645</id><published>2005-09-09T14:53:00.000+05:30</published><updated>2005-09-09T15:02:48.963+05:30</updated><title type='text'>Standalone Executables on Windows using py2exe</title><content type='html'>The latest release of py2exe, namely &lt;a href="http://cheeseshop.python.org/pypi/py2exe/0.6.1"&gt;py2exe 0.6.1&lt;/a&gt; allows to create single executables on Windows. This is an improvement over the earlier versions which used to create a &lt;a href="http://www.nedbatchelder.com/blog/200509.html#e20050906T214947"&gt;host of files around the main executable&lt;/a&gt;. I think the new feature is a welcome one, especially for a project like HarvestMan which has a number of dependencies. If you try to create an executable for HarvestMan with existing versions&lt;br /&gt;of py2exe, you get quite a lot of .pyd files which are well, a bit confusing. &lt;br /&gt;&lt;br /&gt;   I am looking forward to create standalone executables for &lt;a href="http://harvestman.freezope.org"&gt;HarvestMan&lt;/a&gt; using the latest py2exe and provide downloads for them. I think this should boost the popularity of HarvestMan, since many Windows users I know could not be bothered with going through all the steps to install a pure Python package such as HarvestMan. Downloading and installing a single file executable is much easier.&lt;br /&gt;&lt;br /&gt;   Expect win32 downloads of HarvestMan soon. Three cheers to &lt;a href="http://py2exe.sourceforge.net"&gt;py2exe&lt;/a&gt; and &lt;a href="http://starship.python.net/crew/theller/"&gt;Thomas Heller&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112625836896382645?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112625836896382645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112625836896382645' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112625836896382645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112625836896382645'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/09/standalone-executables-on-windows.html' title='Standalone Executables on Windows using py2exe'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112547952803233893</id><published>2005-08-31T14:29:00.000+05:30</published><updated>2005-08-31T14:42:08.040+05:30</updated><title type='text'>Uraga is dead - Long live Uraga!</title><content type='html'>&lt;a href="http://www.byteofpython.info/projects/uraga/uraga.html"&gt;Uraga&lt;/a&gt; is dead. &lt;a href="http://swaroopch.info"&gt;Swaroop&lt;/a&gt; has confirmed this in a &lt;a href="http://groups.yahoo.com/group/BangPypers/message/1085"&gt;post to BangPypers&lt;/a&gt;.&lt;br /&gt;I long doubted this might be the case, since there was no mention of Uraga in Swaroop's blog for quite some time. The reason he cites is job pressure; as if guys who contribute to open source do not do justification to their daily job! It sounds ironic, to say the least. &lt;br /&gt;&lt;br /&gt;  I have a principle which I apply in any open source or professional work I undertake; that is, if I propose an idea, I will try at least to do a basic prototype implementation of the same. More so, if I am &lt;a href="http://www.swaroopch.info/archives/2005/03/13/uraga-the-cpan-for-python/"&gt;talking and letting the world know about it&lt;/a&gt;. It is a basic contract that one should have to the community with which one interacts, especially when one tries to market the community with the tag of his idea. In this case, the community is &lt;a href="http://www.bangpypers.org"&gt;BangPypers&lt;/a&gt; and the idea is Uraga of course.&lt;br /&gt;&lt;br /&gt;   If you don't fulfill this basic social contract, then you are not fit to be an open source contributor, let alone an open source project initiator. I hope some of the new-age geeks who looks to open source for quick stardom realizes this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112547952803233893?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112547952803233893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112547952803233893' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112547952803233893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112547952803233893'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/08/uraga-is-dead-long-live-uraga.html' title='Uraga is dead - Long live Uraga!'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112489292869928017</id><published>2005-08-24T18:44:00.000+05:30</published><updated>2005-08-25T13:19:22.780+05:30</updated><title type='text'>Design Patterns - Modelling the Singleton in Python</title><content type='html'>&lt;a href="http://c2.com/cgi-bin/wiki?SingletonPattern"&gt;Singleton&lt;/a&gt; is a &lt;a href="http://c2.com/cgi-bin/wiki?DesignPatterns"&gt;design pattern&lt;/a&gt; that seems to interest everyone, especially in the Python world.&lt;br /&gt;&lt;br /&gt;I was doing a &lt;a href="http://www.google.co.in/search?q=Singleton+%2B+Python"&gt;Google search&lt;/a&gt; on the ways in which Python implements the Singleton design pattern.&lt;br /&gt;&lt;br /&gt;The results showed that in doing this in Python, you are limited only by your imagination. Unlike C++ or Java, you are not limited to a certain &lt;a href="http://c2.com/cgi-bin/wiki?StrategyPattern"&gt;strategy&lt;/a&gt; of modeling the Singleton in Python.&lt;br /&gt;&lt;br /&gt;I thought it was a good idea to gather the different Singleton solutions in Python and post it in a single post (pun intended) here. In this post, I list seven ways of modelling the Singleton in Python which looks elegant to me. I am not including some overly verbose or cryptic solutions which you will find if you perform the Google search above.&lt;br /&gt;&lt;br /&gt;Though I have no preference for any particular solution, I have ordered them in the order of what I think is the least elegant solution, to the most elegant one. Of course this is purely personal! :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;i&gt;A word of caution: Except for the Borg solution, the rest of them will work only with new style classes. Also note that some solutions are exactly the same, though they look different. I have explained them as we go along.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The most basic solution overrides the &lt;i&gt;__new__&lt;/i&gt; method in an outer class, returning an instance of an inner class as the Singleton. Here it is:&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;class Singleton1(object):&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;    """ Singleton by overriding __new__ and using an inner&lt;br /&gt;class by&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt; using new style classes """&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;   class __Singleton(object):&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;       pass&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;   __instance = None&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;  &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;   def __new__(cls):&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;       if not Singleton1.__instance:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;           Singleton1.__instance = Singleton1.__Singleton()&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;       return Singleton1.__instance&lt;/span&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/pre&gt;Here is this solution in action:&lt;span style="color:blue;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:verdana;"&gt;s1=Singleton1()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;print s1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;s2=Singleton1()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;print s2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;s3=Singleton1()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;print s3&lt;/span&gt;&lt;span style="font-family:verdana,mon;"&gt;&lt;br /&gt;&lt;pre&gt;&lt;__main__.__Singleton object at 0x009F1390&gt;&lt;br /&gt;&lt;__main__.__Singleton object at 0x009F1390&gt;&lt;br /&gt;&lt;__main__.__Singleton object at 0x009F1390&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:verdana,mon;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;Clearly the drawback with this solution is that it is not a Singleton in its true sense. The Singleton class does not return an instance of itself, but an instance of an inner class. In other words, what appears to be the Singleton class is actually a class wrapper around an inner class, which is the actual Singleton. Not very elegant.&lt;br /&gt;&lt;br /&gt;The next solution fixes this problem. It works directly with the guts of the class by accessing the classe's dictionary.&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;font-size:100%;"  &gt;class Singleton2(object):&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;   """ Singleton by using new style classes """&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    def __new__(cls):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        if not '_the_instance' in cls.__dict__:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;            cls._the_instance = object.__new__(cls)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        return cls._the_instance&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;All right. Is there something magical about the &lt;i&gt;_the_instance&lt;/i&gt; attribute ? Nothing.  So why can't we replace it with a direct class level attribute? Yes, you can though there is not much difference in both technically. However, it looks like a kind of combination of the first solution with the second one (which it is not), so here it is for illustration purposes.&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;class Singleton3(object):&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    """ Singleton by using direct class attribute&lt;br /&gt;access without using cls.__dict__.&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt; This might&lt;br /&gt;look different from Singleton2, but in fact&lt;br /&gt;it is the same. """&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    __instance = None&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;   &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    def __new__(cls):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        if not Singleton3.__instance:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;            Singleton3.__instance = object.__new__(cls)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        return Singleton3.__instance&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;All right. Enough of fooling around with classes directly. Can't we do this by using metaclass magic? Looks like you can. And with most metaclass solutions, it seems to be somehow more elegant than directly putting the logic inside the class!&lt;br /&gt;&lt;br /&gt;Here is the solution from &lt;a href="http://www.mindview.net/Books/TIPython"&gt;Bruce Eckel's Thinking in Python&lt;/a&gt;.&lt;br /&gt;&lt;pre  style="color: rgb(102, 51, 0);font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;pre&gt;class SingletonMetaClass(type):&lt;br /&gt;def __init__(cls,name,bases,dict):&lt;br /&gt;super(SingletonMetaClass,cls)    .__init__(name,bases,dict)&lt;br /&gt;original_new = cls.__new__&lt;br /&gt;def my_new(cls,*args,**kwds):&lt;br /&gt; if cls.instance == None:&lt;br /&gt;   cls.instance =         original_new(cls,*args,**kwds)&lt;br /&gt; return cls.instance&lt;br /&gt;cls.instance = None&lt;br /&gt;cls.__new__ = staticmethod(my_new)&lt;br /&gt;&lt;br /&gt;class Singleton4(object):&lt;br /&gt;__metaclass__ = SingletonMetaClass&lt;/pre&gt;&lt;/span&gt;&lt;/pre&gt;The idea is to override the __&lt;i&gt;new__&lt;/i&gt; method of the object's class right in it's metaclass's &lt;i&gt;__init__&lt;/i&gt; method.  This is done the first time the object is created. The overrided &lt;i&gt;__new__&lt;/i&gt; works quite similar to the one in Singleton1,Singleton2 and Singleton3. Thereafter, everytime you create an object of Singleton4, it will call the &lt;i&gt;__init__&lt;/i&gt; in its metaclass where the magic happens.&lt;br /&gt;&lt;br /&gt;The elegancy of this solution comes from the fact that, the extra code for the class is just one line, where we assign the &lt;i&gt;__metaclass__&lt;/i&gt; attribute. All the magic resides in the metaclass, which allows one to quickly convert his class to a Singleton by adding just this one line.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;i style="color: rgb(51, 51, 255);"&gt;NOTE: In fact the metaclass solutions for Singletons (or any other patterns for that matter) are not class scoped solutions, but type scoped ones. It might take some time to wrap your head around that, if you come from a C++ background.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But does this look a bit cryptic? Well, I should say yes since it took some time for me to figure out what is happening here.  Apparently, you don't need to take all that trouble to get it right. Here is the above solution re-written, but without the inner function and all that.&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;class SingletonMetaClass(type):&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    """ Singleton using metaclasses by overriding&lt;br /&gt;the __init__ method, 2nd version.&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt; &lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;"""&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    def my_new(cls, *args, **kwargs):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        if not cls.instance:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;            cls.instance = object.__new__(cls)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        return cls.instance&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;           &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    def __init__(cls, name, bases, dct):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        super(SingletonMetaClass, cls).__init__(name, bases, dct)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        cls.instance = None&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        cls.__new__ = cls.my_new&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;class Singleton5(object):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    __metaclass__ = SingletonMetaClass&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;The above solution is a re-write of Singleton4, but lesser cryptic and more readable.&lt;br /&gt;&lt;br /&gt;Is that all you can do with metaclasses and the Singleton in Python? The answer is No. Looks like there is a much more elegant way of doing this using metaclasses. It is done by overriding&lt;br /&gt;the &lt;i&gt;__call__&lt;/i&gt; method in the metaclass, instead of the &lt;i&gt;__init__&lt;/i&gt; method. This solution is the &lt;a href="http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/412551"&gt;ASPN Python Cookbook Recipe #412551&lt;/a&gt; by Daniel Brodie. I am just copying it here.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;class SingletonMetaClass(type):&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    """ Singleton using metaclasses by overriding the __call__ method.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;          Original code courtesy from ASPN Python Cookbook recipe number&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;          412551 """&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    def __init__(self, *args):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        type.__init__(self, *args)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        self._instances = {}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    def __call__(self, *args):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        if not args in self._instances:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;            self._instances[args] = type.__call__(self, *args)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        return self._instances[args]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;class Singleton6(object):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    __metaclass__ = SingletonMetaClass&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Before I conclude, I should include one of the most ingenious methods of doing the Singleton in Python, created by Alex Martelli. This is the so-called &lt;a href="http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/66531"&gt;Borg non-pattern&lt;/a&gt;. This and the concept of non-patterns is discussed in detail &lt;a href="http://www.aleax.it/5ep.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The Borg is unique in that it re-defines the problem Singleton is trying to solve.  Instead of trying to ensure that the unique instance maps to a unique memory location, Borg ensures that the &lt;i&gt;state&lt;/i&gt; of the various instances are shared and hence the various instances are in effect, the same. In other words, Borg focuses on object equivalence instead of object identity which is what Singleton offers.&lt;br /&gt;&lt;br /&gt;Here is the Borg non-pattern, applied to the Singleton problem.&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;class Singleton7:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    """ Alex martelli's Borg non-pattern. Not exactly&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    a singleton. Focus on equivalence of state rather than the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    uniqueness of the Singleton instance """&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    __shared_state = {}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;    def __init__(self):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 0);font-family:verdana;" &gt;        self.__dict__ = self.__shared_state&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Here is the Borg non-pattern in action.&lt;br /&gt;&lt;span style="color:blue;"&gt;&lt;pre&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;blockquote&gt;s1=Singleton7()&lt;br /&gt;# Set s1's state&lt;br /&gt;s1.x = 100&lt;br /&gt;print s1.__dict__&lt;br /&gt;s2=Singleton7()&lt;br /&gt;print s2.__dict__&lt;br /&gt;s3=Singleton7()&lt;br /&gt;print s3.__dict__&lt;br /&gt;&lt;br /&gt;{'x': 100}&lt;br /&gt;{'x': 100}&lt;br /&gt;{'x': 100}&lt;/blockquote&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;Well, according to me, that is the most elegant one. Instead of solving the Singleton problem directly, it solves the problem that the Singleton is trying to solve, which is that of ensuring&lt;br /&gt;unique state across instances.&lt;br /&gt;&lt;br /&gt;That is the end of my first post on Python and Design patterns. I hope to add more in the future, on the rest of the &lt;a href="http://c2.com/cgi-bin/wiki?DesignPatterns"&gt;Gang of four Design Patterns&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112489292869928017?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112489292869928017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112489292869928017' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112489292869928017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112489292869928017'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/08/design-patterns-modelling-singleton-in.html' title='Design Patterns - Modelling the Singleton in Python'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112296725025858707</id><published>2005-08-02T12:45:00.000+05:30</published><updated>2005-08-02T12:51:12.656+05:30</updated><title type='text'>Freezope is down</title><content type='html'>&lt;a href="http://www.freezope.org"&gt;Freezope&lt;/a&gt; is down since yesterday. I was planning to make the 1.4.5 beta 1 release of &lt;a href="http://harvestman.freezope.org"&gt;HarvestMan&lt;/a&gt; today, but it looks like I cannot provide any updates on the HarvestMan site till freezope comes back up.&lt;br /&gt;&lt;br /&gt;  I might still make the files public at &lt;a href="http://developer.berlios.de/projects/harvestman"&gt;BerliOS&lt;/a&gt; and make the &lt;a href="http//freshmeat.net/projects/harvestman"&gt;freshmeat&lt;/a&gt; and &lt;a href="http://pypi.org"&gt;PyPI&lt;/a&gt; announcement today or tomorrow. There won't be any update at the site of course, but that can wait till freezope is back on track.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112296725025858707?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112296725025858707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112296725025858707' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112296725025858707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112296725025858707'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/08/freezope-is-down.html' title='Freezope is down'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112248197055253753</id><published>2005-07-27T21:27:00.000+05:30</published><updated>2005-07-27T22:43:23.730+05:30</updated><title type='text'>Apple? - Not on BillG's map</title><content type='html'>The latest offering from Redmond, &lt;a href="http://virtualearth.msn.com"&gt;MSN Virtual Earth beta&lt;/a&gt; is making the buzz for all the wrong reasons.&lt;br /&gt;&lt;br /&gt; &lt;a href="http://theregister.co.uk"&gt;The Register&lt;/a&gt; reports that Apple HQ is &lt;a href="http://www.theregister.co.uk/2005/07/25/msn_earth_deletes_aple/"&gt;nowhere to be found on MSN virtual earth&lt;/a&gt;. Apparently, MSN virtual earth has chosen to rebuild the World Trade Center towers too. Looks like the images Microsoft used is way too old. &lt;br /&gt;&lt;br /&gt; Clearly, MS has pushed a hastily built software that has not undergone enough testing to make even to alpha stage, as a beta. The stunt is an apparent knee-jerk reaction to the buzz Google is making with its &lt;a href="http://maps.google.com"&gt;map service&lt;/a&gt; and &lt;a href="http://earth.google.com/"&gt;Google Earth&lt;/a&gt;. This is supposed to be a competition to Google Earth, but clearly the features or stability to be a credible competitor are missing. This is when Google has upped its sights and started to &lt;a href="http://moon.google.com"&gt;map the moon&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;  My gripes about MSN Virtual Earth.&lt;br /&gt;&lt;br /&gt;1. The images are way too old. The image quality and resolution is way lacking when compared to Google Earth. Since MS seems to have &lt;a href="http://www.gismonitor.com/news/newsletter/archive/052605.php"&gt;used U.S.G.S archives which are 10 years old&lt;/a&gt;, this is to be expected. But hey, we are talking about one of the richest companies in the world. Surely they could have done better.&lt;br /&gt; &lt;br /&gt;2. The map is not as responsive to panning as Google maps. The tiling does not work very well, often leaving large patches of yellow rectangles without resolving the underlying geography. Also, the maps load pretty slowly and often you are left staring at blank patches of screen for seconds before the tiled images start loading. You almost end up thinking that the server has stopped responding. Yeah, I am on 256 kbps broadband, not dial-up :-) .&lt;br /&gt;&lt;br /&gt;3. Screws up Firefox. After some panning and zooming, some buttons on Firefox (I am using 1.0.5) does not work well. And hey, why does it disable my "Back" button?&lt;br /&gt;&lt;br /&gt;4. "Locate me" feature. I don't understand the actual need for such a feature except for generating buzz. The feature requires ActiveX which I think is one-step backwards for Microsoft for making this technology work with other browsers such as Firefox. The I.P address based location does not work very well. It located me in Bombay, India whereas I am actually in Bangalore.&lt;br /&gt;&lt;br /&gt;5. Sticky mouse buttons: The left mouse click tends to "stick" on the page. So even after I release the mouse button and move the mouse, the image keeps panning. I have to click the left mouse button once more to "release" the "stickiness".&lt;br /&gt;&lt;br /&gt;6. The stupid compass: Why do you need that? It just eats up space on the map and is really not very useful.&lt;br /&gt;&lt;br /&gt;7. Interface quality: The interface seems hastily thrown together and not well thought out. It is counter-intuitive if you are used to Google maps since the search and address box is on the left rather than on the right as in Google. To me, right position seems more intuitive and user friendly since that means the map does not overlap on the right edge of my screen and looks solid. Also, MS seemed to have not done much research on how surrounding colors affect the users ability to effectively view the maps. The choice of colors and color contrast leaves a lot to be desired. If I were the engineer, I would replace that stupid blue overlay on the top with something that increases the contrast and is less straining on the eyes.&lt;br /&gt;&lt;br /&gt;The pluses.&lt;br /&gt;&lt;br /&gt;1. It occupies more screen area than Google maps. Clearly this is an advantage.&lt;br /&gt;2. Seems to show more places in India than Google. Hell, it even shows some obscure towns and villages in Kerala, my native state. Google maps suck in that respect.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  Conclusion: Not enough reasons for anyone to switch to Virtual Earth if he/she is already using Google earth/google maps. I think MS should apologize, rename the release to MSN VE alpha, work on it a bit more and release a much better, user-friendly and fast beta. Then I would agree that it is competition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112248197055253753?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112248197055253753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112248197055253753' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112248197055253753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112248197055253753'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/07/apple-not-on-billgs-map.html' title='Apple? - Not on BillG&apos;s map'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112212390464568637</id><published>2005-07-23T18:20:00.000+05:30</published><updated>2005-07-23T18:39:55.313+05:30</updated><title type='text'>Apple - An "i" for Innovation</title><content type='html'>iMac, iPod, iTunes - Popular brand names from a company known for its innovative products - &lt;a href="http://www.apple.com"&gt;Apple&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Now it has become &lt;a href="http://www.macworld.co.uk/news/index.cfm?home&amp;NewsID=12150"&gt;official&lt;/a&gt;. In a &lt;a href="http://www.businessweek.com"&gt;Businessweek&lt;/a&gt; poll conducted among top executives from across the planet, Apple won the top slot for the most innovative company, with nearly 25% of the votes.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.3m.com/"&gt;3M&lt;/a&gt; came second with nearly 12% of the votes, followed by &lt;a href="http://www.microsoft.com"&gt;Microsoft&lt;/a&gt;. &lt;a href="http://ibm.com"&gt;Big Blue&lt;/a&gt; came a distant 7th after &lt;a href="http://www.ge.com/en/"&gt;GE&lt;/a&gt;, &lt;a href="http://www.sony.com/"&gt;Sony&lt;/a&gt; and &lt;a href="http://www.dell.com/"&gt;Dell&lt;/a&gt; in that order.&lt;br /&gt;&lt;br /&gt;Another feather in the innovative cap of CEO Steve Jobs.&lt;br /&gt;&lt;br /&gt;Way to go Apple! Well done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112212390464568637?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112212390464568637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112212390464568637' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112212390464568637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112212390464568637'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/07/apple-i-for-innovation.html' title='Apple - An &quot;i&quot; for Innovation'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112212234837667476</id><published>2005-07-23T17:56:00.000+05:30</published><updated>2005-07-23T18:18:22.420+05:30</updated><title type='text'>Hasta-la-Vista Windows!</title><content type='html'>Microsoft has re-christened its unborn poster child, &lt;br /&gt;&lt;a href="http://www.microsoft.com/windows/longhorn/default.mspx"&gt;"Windows Longhorn"&lt;/a&gt; as &lt;a href="http://microsoft.com/windowsvista/default.mspx"&gt;"Windows Vista"&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.betanews.com/article/Microsoft_Explains_Windows_Vista_Name/1122056208"&gt;marketing speak&lt;/a&gt; from Microsoft is that &lt;i&gt;Windows Vista brings clarity to the connected world&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;Personally, I think "Longhorn" was much better than "Vista" though it gave rise to subtle &lt;a href="http://dictionary.reference.com/search?q=Longhorn"&gt;bovine references&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;It will be no wonder if the naming turns out to be prescient and puts an end to Microsoft monopoly on the desktop, considering the rate at which &lt;a href="http://www.eweek.com/article2/0,1895,1787042,00.asp"&gt;features are getting axed from Longhorn aka Vista&lt;/a&gt;. &lt;br&gt;(Also read &lt;a href="http://www.eweek.com/article2/0,1895,1826153,00.asp"&gt;Steven J Vaughan Nichols' article&lt;/a&gt; on axing of Monad from Longhorn).&lt;br /&gt;&lt;br /&gt;Is it time yet to say "Hasta-la-Vista Microsoft"? Let us wait and watch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112212234837667476?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112212234837667476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112212234837667476' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112212234837667476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112212234837667476'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/07/hasta-la-vista-windows.html' title='Hasta-la-Vista Windows!'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112108284919282800</id><published>2005-07-11T17:12:00.000+05:30</published><updated>2005-07-11T19:43:43.603+05:30</updated><title type='text'>Longhorn Screenshots</title><content type='html'>Some &lt;a href="http://elliottback.com/wp/archives/2005/07/09/longhorn-5203-screenshots/"&gt;screenshots of Longhorn&lt;/a&gt; have made it to a few blogs today. The news has also hit &lt;a href="http://slashdot.org/article.pl?sid=05/07/11/0445229&amp;tid=201&amp;tid=189&amp;tid=152"&gt;Slashdot&lt;/a&gt;. The winbeta.org site &lt;a href="http://winbeta.org/comments.php?catid=1&amp;id=3290"&gt;claims that this cannot be part of Longhorn Beta1&lt;/a&gt;, since the build number 5203 is not part of the Beta1 builds, which means it must be a leak from inside Microsoft.&lt;br /&gt;&lt;br /&gt;The screenshots show a system which looks like a modified Windows XP with transparency and some other eye candy and a black theme. Nothing great when you consider that this system was supposedly 5 years in the making. &lt;br /&gt;&lt;br /&gt;Microsoft cannot even do a &lt;a href="http://www.alaskapictures.net/forum/ptopic1306.html"&gt;copy job&lt;/a&gt; well. ;-)&lt;br /&gt;&lt;br /&gt;Btw, I have added a few screenshots right here with the new photo feature of blogger.&lt;br /&gt;&lt;br /&gt;Originals, courtesy &lt;a href="http://xerocool.innereyes.com/general/longhorn_5203_screenshots.php"&gt;xerocool&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;hr noshade&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5140/904/1600/lh1.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/5140/904/320/lh1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5140/904/1600/lh2.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/5140/904/320/lh2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5140/904/1600/lh3.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/5140/904/320/lh3.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5140/904/1600/lh4.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/5140/904/320/lh4.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5140/904/1600/lh61.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/5140/904/320/lh61.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5140/904/1600/lh7.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/5140/904/320/lh7.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/5140/904/1600/lh8.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/5140/904/320/lh8.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112108284919282800?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112108284919282800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112108284919282800' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112108284919282800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112108284919282800'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/07/longhorn-screenshots.html' title='Longhorn Screenshots'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-112071370811033791</id><published>2005-07-07T10:44:00.000+05:30</published><updated>2005-07-07T10:52:48.353+05:30</updated><title type='text'>Europe says no to software patents</title><content type='html'>On July 6, the European parliament &lt;a href="http://lists.ffii.org/pipermail/news/2005-July/000302.html"&gt;decided&lt;/a&gt; &lt;br /&gt;by a large majority to reject the software patents directive. &lt;br /&gt;This is great news for the FOSS community and open software &lt;br /&gt;innovation in general. The patent directive was a looming threat for&lt;br /&gt;software innovation in Europe, since it threatened to bring&lt;br /&gt;into legislation, the US style practice of supporting patents&lt;br /&gt;in software and business processes. &lt;br /&gt;&lt;br /&gt;  Redhat and Sun Microsystems &lt;a href="http://www.europe.redhat.com/news/article/431.html"&gt;worked&lt;/a&gt; with the &lt;br /&gt;Foundation for a &lt;a href="http://ffii.org"&gt;Free Information Infrastructure (FFII)&lt;/a&gt; to  bring about this victory for those who value free and &lt;br /&gt;open source software.&lt;br /&gt;&lt;br /&gt;   This should be a blow to Microsoft's business aspirations in Europe&lt;br /&gt;and should help the Linux community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-112071370811033791?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/112071370811033791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=112071370811033791' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112071370811033791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/112071370811033791'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/07/europe-says-no-to-software-patents.html' title='Europe says no to software patents'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111770790800899563</id><published>2005-06-02T15:41:00.000+05:30</published><updated>2005-06-02T17:01:34.326+05:30</updated><title type='text'>Guido did not create Python!</title><content type='html'>Well, you and me know that the title of this post is not true, but that is not what &lt;a href="http://www.windowsitpro.com/Authors/AuthorID/23/23.html"&gt;Mark Joseph Edwards&lt;/a&gt; would have us believe, given a chance.&lt;br /&gt;&lt;br /&gt;     In an &lt;a href="http://www.windowsitpro.com/Article/ArticleID/45865/45865.html"&gt;article&lt;/a&gt; on &lt;a href="http://www.windowsitpro.com/"&gt;Windows IT Pro Magazine&lt;/a&gt; introducing &lt;a href="http://www.ironpython.com"&gt;IronPython&lt;/a&gt;, he writes...&lt;br /&gt;&lt;br /&gt;     "&lt;span style="font-style:italic;"&gt;You might have heard of Python, a popular and powerful cross-platform open-source programming language. Python, which is the creation of Jim Hugunin...&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;       I am not sure how many Pythonistas read Windows IT Pro, but I won't suggest it to someone who is new to &lt;a href="http://www.python.org"&gt;Python&lt;/a&gt;, for reasons that are very clear. :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111770790800899563?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111770790800899563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111770790800899563' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111770790800899563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111770790800899563'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/06/guido-did-not-create-python.html' title='Guido did not create Python!'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111770681658623746</id><published>2005-06-02T15:16:00.000+05:30</published><updated>2005-06-02T16:06:42.496+05:30</updated><title type='text'>IronPython, Boo and Smallscript</title><content type='html'>What do the terms IronPython,Boo and Smallscript have in common?&lt;br /&gt;&lt;br /&gt;     Well, before you type an entry into dictionary.com, let me tell&lt;br /&gt;you that these are all relatively new language implementations for the CLR provided by the &lt;a href="http://www.microsoft.com/net/"&gt;.NET platform&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;     &lt;a href="http://www.ironpython.com/"&gt;IronPython&lt;/a&gt; is a supposedly faster implementation of &lt;a href="http://www.python.org"&gt;CPython&lt;/a&gt; for .NET, which allows you to extend Python on .NET with C# and other .NET static languages.&lt;br /&gt;&lt;br /&gt;     &lt;a href="http://boo.codehaus.org/"&gt;Boo&lt;/a&gt; is a new, statically typed OO language for .NET with a Python-inspired syntax, but without it's dynamic typing overhead. Boo claims to be as fast as C# or VB.net on the .NET platform.&lt;br /&gt;&lt;br /&gt;     &lt;a href="http://www.smallscript.org/"&gt;Smallscript&lt;/a&gt; provides the new S# language, a modular re-design of the Smalltalk language, designed to work with .NET and the AOS common language platform which supports dynamic languages.&lt;br /&gt;&lt;br /&gt;     IronPython had initially hogged the limelight, but after the&lt;br /&gt;creator &lt;a href="http://weblog.infoworld.com/udell/2004/07/28.html"&gt;Jim Hugunin was appointed by Microsoft&lt;/a&gt;, it has become something of a &lt;a href="http://usefulinc.com/edd/blog/contents/2005/03/26-ironpython/read"&gt;one-man-show&lt;/a&gt; instead of becoming a true peer reviewed open source project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111770681658623746?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111770681658623746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111770681658623746' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111770681658623746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111770681658623746'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/06/ironpython-boo-and-smallscript.html' title='IronPython, Boo and Smallscript'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111519487821289391</id><published>2005-05-04T13:44:00.000+05:30</published><updated>2005-05-04T13:51:18.230+05:30</updated><title type='text'>Best Essays on Software in 2004</title><content type='html'>I found a post on the best essays on software in 2004 at &lt;a href="http://ischenko.blogspot.com/"&gt;Max Ischenko's blog&lt;/a&gt; today and felt that I should make a mention of it in my blog.&lt;br /&gt;&lt;br /&gt; The discussion started in the popular &lt;a href="http://joelonsoftware.com"&gt;Joel on software&lt;/a&gt;, when Joel asked his readers to post &lt;br /&gt;essays which they consider are the best on software related topics in 2004..&lt;br /&gt;&lt;br /&gt;Go to: &lt;a href="http://discuss.joelonsoftware.com/default.asp?best04"&gt;Best essays on software in 2004&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111519487821289391?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111519487821289391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111519487821289391' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111519487821289391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111519487821289391'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/05/best-essays-on-software-in-2004.html' title='Best Essays on Software in 2004'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111510018178752257</id><published>2005-05-03T11:21:00.000+05:30</published><updated>2005-05-03T11:40:32.270+05:30</updated><title type='text'>Logix Talk</title><content type='html'>I should be blogging more often, but some how I have to put a lot of mental effort to get my ideas into words most of the time, which makes me a pathetic blogger ;-)&lt;br /&gt;&lt;br /&gt;   Well, I had a nice trip to Norway last week where I met with some cool folks at &lt;a href="http://hia.no"&gt;Agder University College&lt;/a&gt; with a vision to create accessibility metrics in order to improve European web sites. I am involved in the project because they are using &lt;a href="http://harvestman.freezope.org"&gt;HarvestMan web crawler&lt;/a&gt;, as part of the crawler component in the project. I have to blog about it separately, since there is a lot to write. However, here are some quick links:&lt;br /&gt; &lt;ul&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://osys.grm.hia.no/Workshop_on_Web_Accessibility_and_Metamodelling/index.html"&gt;Web &lt;br /&gt; accessibility and meta-modeling workshop on 15th April 2005&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://www.eiao.net"&gt;European Internet Accessibility Observatory Home Page&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;   Hey, I am diverting... This post is about the upcoming talk on &lt;a href="http://logix.livelogix.com/"&gt;Logix&lt;/a&gt;, a multi-language programming system developed by Tom Locke. He says has "outsourced himself" to Bangalore for developing and popularising Logix here. The idea is to allow the Python developer to create his own languages and schema&lt;br /&gt;by using a meta-language model. &lt;br /&gt;&lt;br /&gt;I think it is ideally suited for tasks such as meta-modeling which is one important aspect of EIAO. Perhaps the EIAO folks will look into Logix for developing some of their metamodeling components. It could also be used for developing software modeling techniques similar to UML, specific to Python.&lt;br /&gt;&lt;br /&gt;   The talk is on May 7th at the regular venue for BangPypers meetings, i.e at ThoughtWorks, Diamond District. For more information see my post at BangPypers &lt;br /&gt;regarding the talk &lt;a href="http://groups.yahoo.com/group/BangPypers/message/876"&gt;here&lt;/a&gt;. For marking your calendars, go &lt;a href="http://groups.yahoo.com/group/BangPypers/cal///group/BangPypers?v=4&amp;t=1115485200&amp;i=34&amp;pv=61"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;  &lt;a href="http://www.bangpypers.org"&gt;BangPypers&lt;/a&gt; is turning out to be an important forum for presenting Python related&lt;br /&gt;technologies and reaching out to the Python community here. The Logix talk is yet another achievement which shows the popularity of BangPypers. &lt;br /&gt;&lt;br /&gt; If you are in Bangalore on May 7th and you like the idea of multi-language programming, it might be a good idea to drop in at ThoughtWorks by 5.00 pm to attend Tom's talk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111510018178752257?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111510018178752257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111510018178752257' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111510018178752257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111510018178752257'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/05/logix-talk.html' title='Logix Talk'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111132849080010997</id><published>2005-03-20T18:32:00.000+05:30</published><updated>2005-03-20T19:51:30.806+05:30</updated><title type='text'>Yahoooooooooo!</title><content type='html'>&lt;a href="http://www.yahoo.com"&gt;Yahoo!&lt;/a&gt; completed &lt;a href="http://birthday.yahoo.com/netrospective/"&gt;10 years&lt;/a&gt; on 3rd March. &lt;br /&gt;Yahoo!, which started off as a search-engine has now diversified into many areas, so that it is not perceived any more as specialising in any single vertical. Meanwhile &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; has beaten Yahoo! as the top search engine. &lt;br /&gt;&lt;br /&gt;Yahoo! is remarkable in that it has survived the dotcom bubble and the meltdown of the Internet during early 2000. When many search engines and web startups such as Altavista, Excite, Lycos, Go.com, Snap etc fell down by the wayside, &lt;a href="http://www.wired.com/wired/archive/13.03/yahoo.html"&gt;Yahoo! is still going strong with a 50 billion $ market cap&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt; Google has been the leader in taking new technologies to the market, with Yahoo! being forced to follow-up. The new &lt;a href="http://search.yahoo.com"&gt;Yahoo! search&lt;/a&gt; has borrowed a lot of concepts from the Google, not just the look n feel. Google has been the pioneer in broadening the search market from simple keyword/directory search to specific search verticals such as &lt;a href="http://groups-beta.google.com/grphp?hl=en"&gt;newsgroup search&lt;/a&gt;, &lt;a href="http://www.google.com/imghp?hl=en&amp;tab=wi"&gt;image search&lt;/a&gt;, &lt;a href="http://catalogs.google.com/"&gt;catalog search&lt;/a&gt;, &lt;a href="http://froogle.google.com/"&gt;product search&lt;/a&gt;, &lt;a href="http://scholar.google.com/"&gt;scholar search&lt;/a&gt;, &lt;a href="http://news.google.com"&gt;news search&lt;/a&gt;, &lt;a href="http://video.google.com/"&gt;video search&lt;/a&gt; etc. &lt;br /&gt;&lt;br /&gt;  However Yahoo! has &lt;a href="http://www.searchengineshowdown.com/features/yahoo/review.html"&gt;improved their search tremendously&lt;/a&gt; since they &lt;a href="http://www.itnetcentral.com/pcworld/article.asp?id=13112&amp;info=PC+World&amp;leveli=0"&gt;parted ways with Google&lt;/a&gt; last year. Though forced to do catch-up, &lt;a href="http://news.com.com/Yahoo%2C+Microsoft+gaining+ground+on+Google/2100-1032_3-5535049.html"&gt;Yahoo! seems to be doing a good job of it now a days, with Microsoft tagging along&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;  So who will &lt;a href="http://news.search.com/click?sl,news.43.230.1278.0.72.Yahoo%2B%252B%2BGoogle.0,http%3A%2F%2Fnews%2Ecom%2Ecom%2FFuture%2Bof%2Bsearch%2Brides%2Bon%2Brelevance%2F2100%2D1032_3%2D5555954%2Ehtml"&gt;win the search war ultimately&lt;/a&gt;? One yer back I would have confidently said "Google" (Yahoo! who?) but not anymore. The field is wide open once more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111132849080010997?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111132849080010997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111132849080010997' title='54 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111132849080010997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111132849080010997'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/03/yahoooooooooo.html' title='Yahoooooooooo!'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>54</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111072026894727570</id><published>2005-03-13T18:10:00.000+05:30</published><updated>2005-03-13T18:54:28.953+05:30</updated><title type='text'>Microsoft gets "Groovy"</title><content type='html'>Microsoft recently &lt;a href="http://news.zdnet.co.uk/software/windows/0,39020396,39190971,00.htm"&gt;acquired &lt;/a&gt; &lt;a href="http://www.groove.net/"&gt;Groove Networks&lt;/a&gt; and &lt;a href="http://www.ozzie.net/blog/"&gt;Ray Ozzie&lt;/a&gt; in one shot. Ozzie will become one of the three CTOs at Microsoft, &lt;a href="http://news.com.com/Ozzie+wants+a+unified+story+at+Microsoft/2008-1012_3-5611099.html?tag=nefd.ac"&gt;taking care of collaborative software&lt;/a&gt;, for the evil empire. &lt;br /&gt;&lt;br /&gt;So what is the big deal? From Microsoft point of view, it is another one of the acquisitions which appears to give an "edge" to its products. Groove is basically a peer to peer computing system over a secure internet connection which allows people to share documents over a network, creating a kind of virtual office. Microsoft has been an &lt;a href="http://www.internetnews.com/ent-news/article.php/2105411"&gt;early investor in Groove&lt;/a&gt;, providing it funding as early as 2001. Ozzie has also aligned himself nicely with Microsoft since his days as the &lt;a href="http://www-306.ibm.com/software/swnews/swnews.nsf/n/jmae68etwz?OpenDocument&amp;Site=lotus"&gt;chief architect of Lotus Notes at IBM&lt;/a&gt;. Thus the acquisition is not a big surprise at all.&lt;br /&gt;&lt;br /&gt;   Ozzie has been successful in aligning his software ideas with the biggies in the game, since 1984. He worked for Lotus in developing Lotus Notes and later on continued his work at IBM, when IBM acquired Lotus. He &lt;a href="http://ww1.infoworld.com/cgi-bin/displayStory.pl?970930.wozzie.htm"&gt;left Lotus and IBM to start Groove in 1997&lt;/a&gt; and aligned his work with Microsoft. Bill Gates, who is not too lavish in encomiums, have &lt;a href="http://www.crn.com/sections/special/hof/hof.jhtml;jsessionid=XIUVBYZQWELKKQSNDBGCKH0CJUMEKJVN?articleId=18832816&amp;_requestid=333704"&gt;praised&lt;/a&gt;  Ozzie as &lt;i&gt;one of the best programmers in the universe&lt;/i&gt;. However tall that might sound to be, one has to accept that Ozzie is a shrewd guy with his software, and knows to position himself correctly in the market.&lt;br /&gt;&lt;br /&gt;  Ozzie is surely one of the most influential programmers of the 90s and can be credited with &lt;a href="http://www.ozzie.net/blog/stories/2002/10/01/marketOpportunity.html"&gt;inventing the groupware class of software products&lt;/a&gt;, &lt;a href="http://www-128.ibm.com/developerworks/lotus/library/ls-NDHistory/"&gt;along with pioneers&lt;/a&gt; such as &lt;a href="http://blogs.osafoundation.org/mitch/"&gt;Mitch Kapor&lt;/a&gt;. It will be interesting to see how his ideas and vision will work at Microsoft, and whether the addition of Ozzie as CTO, will improve the technical quality of Microsoft products in areas where they lack sorely such as security. Ozzie has had a lot of success as an independent programmer and team leader, but it remains to be seen how that experience helps in shaping the future of collaborative software at a company of the size of Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111072026894727570?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111072026894727570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111072026894727570' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111072026894727570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111072026894727570'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/03/microsoft-gets-groovy.html' title='Microsoft gets &quot;Groovy&quot;'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111056808225693557</id><published>2005-03-12T00:26:00.000+05:30</published><updated>2005-03-12T00:38:02.256+05:30</updated><title type='text'>Economics of the Bazaar</title><content type='html'>If you have been associated to opensource software in an intimate way, say as a programmer, business developer or the marketing/sales person, you must have asked yourself this question at some point.&lt;br /&gt;&lt;br /&gt;"How can opensource software be a viable business? How do you make money by creating software whose source code is free?" &lt;br /&gt;&lt;br /&gt;Bruce Perens, one of the founders of the OSI (Open Source Initiative) has some interesint insights on this. According to him, open source reduces the costs for your business IT infrastructure so that you save money which can be used for creating software that differentiates your business from others. In other words, you can spend your money on researching and developing your actual technology instead of spending it on buying up software infrastructure. The money you save becomes additional profit or can be spent on other areas where it is required.&lt;br /&gt;&lt;br /&gt;Well I never looked at open source from that point of view. I think this comes from the my programmer's mindset where the focus is immediately set on the free and available source code rather than thinking about the economics behind it.&lt;br /&gt;&lt;br /&gt;Bruce's article contrasts the open source model with other software development models and points out the benefits of the open source economy. The complete article can be found &lt;a href="http://perens.com/Articles/Economic.html"&gt;here&lt;/a&gt;. A must read for any open source afficianado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111056808225693557?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111056808225693557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111056808225693557' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111056808225693557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111056808225693557'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/03/economics-of-bazaar.html' title='Economics of the Bazaar'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111051881799235336</id><published>2005-03-11T10:53:00.000+05:30</published><updated>2005-03-11T10:57:08.433+05:30</updated><title type='text'>Daily Python Url!</title><content type='html'>I am a regular reader of &lt;a href="http://www.pythonware.com/daily"&gt;Daily Python Url&lt;/a&gt; which gives a snapshot of the daily happenings in the Python universe. It is powered by Blogger.&lt;br /&gt;&lt;br /&gt;For the last week, the blog has been almost dead. I was getting the same old page, last posted on 3rd March. Today I came to know the reason :-)&lt;br /&gt;&lt;br /&gt;&lt;QUOTE&gt;&lt;br /&gt;&lt;br /&gt;2005-03-10&lt;br /&gt;&lt;br /&gt;(no posts? some editors are on vacation, the rest of us are just lazy. and blogger sucks. postings will resume shortly. stay tuned.)&lt;br /&gt;&lt;br /&gt;&lt;/QUOTE&gt;&lt;br /&gt;&lt;br /&gt;Well guys, shrug off your laziness and get a fresh start! I think that the Daily Python Url is too important for the Python community to be given such a cold shoulder!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111051881799235336?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111051881799235336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111051881799235336' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111051881799235336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111051881799235336'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/03/daily-python-url.html' title='Daily Python Url!'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111018101678306253</id><published>2005-03-07T12:49:00.000+05:30</published><updated>2005-03-07T13:09:13.586+05:30</updated><title type='text'>IBM Redux</title><content type='html'>I just finished reading the book &lt;a href="http://www.amazon.com/exec/obidos/ASIN/0887309437/"&gt;"IBM Redux" by Doug Garr&lt;/a&gt;. The book is all about the business turn around by IBM in the last decade under the leadership of the previous CEO, &lt;a href="http://www.ibm.com/lvg/"&gt;Lou Gerstner&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt; The book is a great read on how corporations behave and gives many insights into how a gigantic corporation like IBM works. It is quite eloquent in its praise for Gerstner, though his not-so-amiable personality and ego-centric nature is pointed out as personal drawbacks. However, the book lays no doubt on who is responsible for the bounce back by IBM from the bottomless quagmire it found itself in the beginning of the 90s.  &lt;br /&gt;&lt;br /&gt; It also has a few interesting anecdotes such as IBM's role in the &lt;a href="http://www.truthinmedia.org/truthinmedia/Columns/Atlanta96.html"&gt;1994 Atlanta Olympics and the PR disaster&lt;/a&gt; which ensued. A few pages are also devoted to the much hyped &lt;a href="http://www.research.ibm.com/deepblue/watch/html/c.shtml"&gt;Garry Kasparov - Deep Blue face-off &lt;/a&gt; in 1997. &lt;br /&gt;&lt;br /&gt;  The book follows a rather chronological style, starting from the events that lead to Gerstner's heading IBM, and ending with the peak of Gerstner's rule at 1999, when he is sitting pretty at the top and is percieved widely as the saviour of IBM. The author follows the style of chipping in with a few anecdotes and history pieces here and there which sometimes is against the flow of reading. However, he cannot be charged on missing out a single piece of event which impacted the computer &amp; software technology landscape during 1993-1999, where IBM played a part, either as the vanquisher or as the vanquished (Remember OS/2 Anyone?).&lt;br /&gt;&lt;br /&gt;  All in all a good read and a book recommended to anyone interested in the history of technology. &lt;br /&gt;&lt;br /&gt;  Some links worth reading about Lou Gerstner and his life.&lt;br /&gt;&lt;br /&gt;   &lt;a href="http://news.com.com/2100-1001-828095.html"&gt;http://news.com.com/2100-1001-828095.html&lt;/a&gt;&lt;br /&gt;   &lt;a href="http://www.forbes.com/2002/11/11/cx_ld_1112gerstner.html"&gt;http://www.forbes.com/2002/11/11/cx_ld_1112gerstner.html&lt;/a&gt;&lt;br /&gt;   &lt;a href="http://www.thecarlylegroup.com/eng/team/l5-team861.html"&gt;http://www.thecarlylegroup.com/eng/team/l5-team861.html&lt;/a&gt;&lt;br /&gt;   &lt;a href="http://www.britannica.com/eb/article?tocId=9114982"&gt;http://www.britannica.com/eb/article?tocId=9114982&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111018101678306253?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111018101678306253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111018101678306253' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111018101678306253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111018101678306253'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/03/ibm-redux.html' title='IBM Redux'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111001979888145750</id><published>2005-03-05T15:39:00.000+05:30</published><updated>2005-03-05T16:19:58.886+05:30</updated><title type='text'>The BangPypers</title><content type='html'>First of all, the introduction -&gt;  The &lt;a href="http://groups.yahoo.com/group/BangPypers/"&gt;BangPypers&lt;/a&gt; are a group of Python enthusiasts in the city of Bangalore where I live.&lt;br /&gt;&lt;br /&gt;How did BangPypers come into being? It all started on Dec 27 2004, when I was browsing the &lt;a href="http://www.pythonware.com/daily"&gt;Daily Python Url&lt;/a&gt; blog and saw a &lt;a href="http://mail.python.org/pipermail/python-announce-list/2004-December/003622.html"&gt;post&lt;/a&gt; mentioning that "Chennai Python Meetup is on...". I followed the link and found out about the &lt;a href="http://www.meetup.com"&gt;Meetup.com&lt;/a&gt; site. I was surprised to learn that there were already many Python meetup groups at the site http://python.meetup.com. Well I mused that if the Chennaites can come up with a Python meetup group, the Bangaloreans can come up with one too and do it in a better manner, considering that Bangalore is the tech hub of India.&lt;br /&gt;&lt;br /&gt;I scourged the python meetup site for any Bangalore Python meetup groups. There was one, a dysfunctional group that called themselves &lt;a href="http://python.meetup.com/130"&gt;"Bengalru Python meetup group"&lt;/a&gt; with 5 members and looking for an organizer. I initially joined them and posted a message. &lt;br /&gt;&lt;br /&gt;The next day, I checked the site. There was no reply for my post and I realized that the group was quite dead. Bengaluru might be the original name of Bangalore in Kannada, but it is of course more popular and better known as "Bangalore" itself. &lt;br /&gt;&lt;br /&gt;I created the &lt;a href="http://python.meetup.com/158"&gt;"Bangalore Python meetup group"&lt;/a&gt; on Dec 28. The first few members to join were my friends who I invited - Anish Damodaran, Indrajith. I also sent an invitation to &lt;a href="http://livejournal.com/users/premshree"&gt;Premshree Pillai&lt;/a&gt; and &lt;a href="http://groups-beta.google.com/group/comp.lang.python/browse_thread/thread/d4c779388a29d755/a74941fedc2d8e5a?q=Bangalore+Python#a74941fedc2d8e5a"&gt;posted&lt;/a&gt; in comp.lang.python about the news.&lt;br /&gt;&lt;br /&gt;There was good response over the many days that followed with 16 members joining till Jan 7 2005. &lt;a href="http://swaroopch.info"&gt;Swaroop&lt;/a&gt; published about the group in his blog on Jan 7th and the response increased, which shows the popularity of his blog. I have captured some &lt;a href="http://groups.yahoo.com/group/BangPypers/message/43"&gt;interesting statistics&lt;/a&gt; on this in a post to the BangPypers group.&lt;br /&gt;&lt;br /&gt;We had the &lt;a href="http://www.swaroopch.info/archives/2005/01/22/first-bangalore-python-meetup/"&gt;first meeting&lt;/a&gt; at Ebony Restaurant, Barton Center, M.G Road on Jan 22nd. 10 guys including me attended. We decided to form the Yahoo! group and also a website. The idea for &lt;a href="http://groups.yahoo.com/group/BangPypers/message/251"&gt;Project Uraga&lt;/a&gt; was also born. It was a fun night, though I had some personal expenditure which I expect the group to make up over time. :-)&lt;br /&gt;&lt;br /&gt;I created the Y! group with the name "BangPypers" on 24 Jan 2005. We have a lot of activity in the group and it still must be one of the Yahoo! groups with the highest traffic. The group currently has 75 members most of who are in Bangalore. There are a sizeable number of non-Bangaloreans too. The first month had 101 messages, Feb had a whopping 364 messages! March has just started and we already have 25 messages over the last 4 days.&lt;br /&gt;&lt;br /&gt;    We had the &lt;a href="http://www.swaroopch.info/archives/2005/02/21/first-official-meetup-of-the-bangpypers/"&gt;first "technical meetup"&lt;/a&gt; of the group at ThoughtWorks on Feb 19 2005. You can read all about it here .&lt;br /&gt;&lt;br /&gt;A website at http://www.bangpypers.org is also registered. Many thanks to &lt;a href="http://www.developeriq.com"&gt;Ramdas S of Developer IQ&lt;/a&gt; for doing the same. The website work has not started off however. We also have a &lt;a href="http://groups-beta.google.com/group/BangPypers"&gt;Google group of the same name.&lt;/a&gt; All posts to Y! BangPypers gets mirrored to the Google BangPypers.&lt;br /&gt;&lt;br /&gt;If you love Python and you are a Bangalorean, you should join BangPypers :-) . Well, you are invited to join even if you are a non-Bangalorean. BangPypers is the &lt;a href="http://python.meetup.com/groups/?sort=member_count&amp;desc=1&amp;all=1"&gt;second biggest Python meetup&lt;/a&gt; group in the world, so we are on the world-map of Python, just like Bangalore is on the world-map for technology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111001979888145750?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111001979888145750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111001979888145750' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111001979888145750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111001979888145750'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/03/bangpypers.html' title='The BangPypers'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11246065.post-111000357508530839</id><published>2005-03-05T11:47:00.000+05:30</published><updated>2005-03-05T11:49:35.086+05:30</updated><title type='text'>My Blog is up!</title><content type='html'>After trying to set up a number of blogs on many different sites, I have finally found time&lt;br /&gt;and patience to create a blog of my own... hip hip hooray!&lt;br /&gt;&lt;br /&gt;The setup is not complete. You can find details about me and my work once I set it up properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11246065-111000357508530839?l=randombytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://randombytes.blogspot.com/feeds/111000357508530839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11246065&amp;postID=111000357508530839' title='29 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111000357508530839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11246065/posts/default/111000357508530839'/><link rel='alternate' type='text/html' href='http://randombytes.blogspot.com/2005/03/my-blog-is-up.html' title='My Blog is up!'/><author><name>Anand</name><uri>http://www.blogger.com/profile/18362312542208032325</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://harvestman.freezope.org/images/anand.jpg'/></author><thr:total>29</thr:total></entry></feed>
