<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Planet Code Sprinters</title>
	<link rel="self" href="/atom.xml"/>
	<link href="/"/>
	<id>/atom.xml</id>
	<updated>2008-11-19T06:00:10+00:00</updated>
	<generator uri="http://www.planetplanet.org/">Planet/2.0 +http://www.planetplanet.org</generator>

	<entry xml:lang="en">
		<title type="html">Meeting Dave Prior</title>
		<link href="http://www.andybrandt.net/?p=309"/>
		<id>http://www.andybrandt.net/?p=309</id>
		<updated>2008-11-04T11:41:35+00:00</updated>
		<content type="html">&lt;p&gt;I have been in Warsaw yesterday to meet with &lt;a href=&quot;http://drunkenpm.blogspot.com/&quot;&gt;Dave Prior&lt;/a&gt;, chair of the &lt;a href=&quot;http://www.pmi.org/&quot;&gt;PMI&lt;/a&gt;&amp;#8217;s &lt;a href=&quot;http://www.pmi-ittelecom.org/&quot;&gt;IT&amp;#038;Telecom SIG&lt;/a&gt; who was there attending PMI&amp;#8217;s Polish Chapter annual conference. We had a very interesting discussion on agile, project management and&amp;#8230; Banana Scrum, most of which was videotaped by Dave and will be made available as a part of IT&amp;#038;Telecom SIG videocast. &lt;/p&gt;
&lt;p&gt;This is part of Scrum practitioners and traditional IT PMs trying to come closer together. This will be a hard effort, because of cultural divide (which we discussed too) but it will be definitely worth it and traditional PMs are very attracted to agile. When it comes to getting work done knowing other methods can&amp;#8217;t hurt.&lt;/p&gt;
&lt;p&gt;Dave, it turned out, is also a huge fan of our humble &lt;a href=&quot;http://www.bananascrum.com/&quot;&gt;Banana Scrum&lt;/a&gt; tool. It was really cool to meet someone who likes and uses what we have built. Gave me another incentive to make sure our fall hiring campaign will allow us to get more resources to work on the tool. I&amp;#8217;d like to finally add a few bigger features to Banana that have been waiting on the backlog for weeks now. It would be good to have something for Christmas for our users.&lt;/p&gt;
&lt;p&gt;For those of you unfamiliar with PMI SIGs a few words of explanation. &lt;a href=&quot;http://www.pmi.org&quot;&gt;PMI&lt;/a&gt; is the most known organization of project managers (yes, those dreadful guys with Gantt charts, shamanic metrics and ugly waterfalls), inside of it there are Special Interest Groups - groups that focus on a certain aspect of project management or projects in general. IT&amp;#038;Telecom SIG is the group that is most interested in agile - they know best how miserably waterfall&amp;#8217;s record in software development has been.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Jeff Sutherland on distributed Scrum</title>
		<link href="http://www.andybrandt.net/?p=304"/>
		<id>http://www.andybrandt.net/?p=304</id>
		<updated>2008-10-27T13:19:37+00:00</updated>
		<content type="html">&lt;p&gt;During the &lt;a href=&quot;http://www.scrumalliance.org/events/6--stockholm-scrum-gathering&quot;&gt;last Scrum Gathering&lt;/a&gt; &lt;a href=&quot;http://jeffsutherland.com/&quot;&gt;Jeff Sutherland&lt;/a&gt; delivered a talk on hyper productive Scrum teams. One of his interesting points was that extreme data points (extremely well performing teams) are worth looking at, as people behind them must be doing something right. And that makes sense - if we are all to look for improvements in the way we do our projects we must look at those who make it better. &lt;/p&gt;
&lt;p&gt;Another interesting thing Jeff described was how some companies - like &lt;a href=&quot;http://www.xebia.com/&quot;&gt;Xebia&lt;/a&gt; - do Scrum with dispersed teams with productivity that is on par with co-located teams, which is quite an accomplishment. I found this very interesting, because for now &lt;a href=&quot;http://www.codesprinters.com/&quot;&gt;we&lt;/a&gt; have whole our team in one office, but with time we might have to do something like this too and it is good to know how to do it well. &lt;/p&gt;
&lt;p&gt;Luckily I don&amp;#8217;t have to recount all that myself, as I just found that Jeff delivered the very same talk at Google a month earlier and they did put it on YouTube, so you can just enjoy the original. &lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;/center&gt;&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">At Scrum Gathering</title>
		<link href="http://www.andybrandt.net/?p=301"/>
		<id>http://www.andybrandt.net/?p=301</id>
		<updated>2008-10-20T16:10:56+00:00</updated>
		<content type="html">&lt;p&gt;So I&amp;#8217;m at the &lt;a href=&quot;http://www.scrumalliance.org/events/6--stockholm-scrum-gathering&quot;&gt;Scrum Gathering&lt;/a&gt; in &lt;a href=&quot;http://en.wikipedia.org/wiki/Stockholm&quot;&gt;Stockholm&lt;/a&gt; right now. &lt;/p&gt;
&lt;p&gt;Did my talk in the morning - it went reasonably well, did get some very good questions at the end. I think I could improve it now also after what I learned at another talk on the same subject. That talk itself wasn&amp;#8217;t very inspiring but the discussion with other participants was very good and informative. Many companies now are thinking how to sell agile software development services, especially how to sway clients away from the fixed bid culture that is doing them no good. Another common problem is how to formulate &amp;#8220;agile contracts&amp;#8221; - that is contracts that are helping form this kind of relationship. I think we have pretty good standard agreement and model now, but I did pick up a few nice ideas from others that we could possibly use.&lt;/p&gt;
&lt;p&gt;Jeff Sutherland had a very interesting lecture on &amp;#8220;super-performing teams&amp;#8221; that got me thinking seriously on how we could improve the way we measure our productivity. The thing he is saying - and many others have been for some time - that you can achieve more productivity while at the same time &lt;em&gt;cutting&lt;/em&gt; the number of hours worked. Seems like impossibility, but from my own experience in agile I know this is true. I just wonder whether we did all we could in that area. &lt;/p&gt;
&lt;p&gt;This was also my first time I could see &lt;a href=&quot;http://www.controlchaos.com/&quot;&gt;Ken Schwaber&lt;/a&gt; in person. In the video from his talk at Google he comes across as a drill sergeant in civilian clothes - when you actually talk to the guy it turns out he is much nicer a person than that. Same with Jeff Sutherland, who also has this kind of military-&amp;#8221;warrior&amp;#8221;-like appearance - but at least Jeff was actually in the USAF once. &lt;/p&gt;
&lt;p&gt;I&amp;#8217;m overall positively surprised by the whole event, it will  probably be much more valuable for me than &lt;a href=&quot;http://www.sqe.com/Agiledevpractices/&quot;&gt;Agile Development Practices&lt;/a&gt; was a year ago. I think I&amp;#8217;ll seriously consider skipping this year edition of it.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">The big picture behind our small discussion</title>
		<link href="http://www.andybrandt.net/?p=285"/>
		<id>http://www.andybrandt.net/?p=285</id>
		<updated>2008-10-09T00:33:09+00:00</updated>
		<content type="html">&lt;p&gt;The debate that occurred when I &lt;a href=&quot;http://www.andybrandt.net/?p=266&quot;&gt;posted a few days ago&lt;/a&gt; about Google&amp;#8217;s support for gay &amp;#8220;marriages&amp;#8221; was a surprise, especially because it largely concentrated on this particular issue, not on the point I was making. It has been, nevertheless, a good example of madness that is engulfing our supposedly rational civilization.&lt;/p&gt;
&lt;p&gt;This madness boils down to belief that there is no objective truth, and therefore no laws governing human societies. Also, only truth accessible to man is the scientific &amp;#8220;truth&amp;#8221; - that is current theory backed by empiric verification. And since there is nothing besides what can be seen or measured then there is no purpose whatsoever to life other than pleasure and work to get means for more pleasure. Therefore there is no solid ground to base any moral or ethical reasoning on, so  basically &amp;#8220;anything goes&amp;#8221;: all is good and should be respected if those involved in it like it and feel good about it.  &lt;/p&gt;
&lt;p&gt;This madness leads probably well-intentioned and passionate people to methodically dismantle our civilization&amp;#8217;s foundations and cut off its roots. &lt;/p&gt;
&lt;p&gt;Western civilization was built on the traditions of ancient Greece and Rome and was deeply rooted in Christianity. In fact it was Christianity that was shaping West&amp;#8217;s values and morality for centuries, that was literally driving it. No surprise here - there was never in history a civilization that did not have a spiritual core and that was embracing absolutely everything. Also, there was no civilization in history that was not protecting of family by ensuring its special social status and protecting marriage that creates it. &lt;/p&gt;
&lt;p&gt;It looks, though, like we are finally getting one. Supposedly rational modern liberals want to built an utopian civilization with no dominant religion, no set of universally accepted moral values (and any reference to supernatural reduced to vague, easily dismissible &amp;#8220;spirituality&amp;#8221;) and no family as we know it. Reading some of the voices in this discussion it seems there is nothing they abhor more than Christianity and its values and they strive with great success to remove Christianity&amp;#8217;s influence on Western societies.&lt;/p&gt;
&lt;p&gt;Given the historical evidence it is very unlikely for this experiment to succeed, but it will have its consequences. The problem is those consequences are not immediately visible, but  take decades to surface. Some we can see already, but those are the consequences of changes introduced long time ago. We&amp;#8217;ll have to wait, maybe a few decades, for the results of what is being done now.&lt;/p&gt;
&lt;p&gt;We see exactly same things happening with the economy, where current crisis is a consequence of a systematic error made decades ago in the US. Of course, few notice because only few are really interested in history. People don&amp;#8217;t see real causes of today&amp;#8217;s problems because for the most part they lie in the past when most of current population was not even living. Ideas tried before are not recognized as such, but rather welcomed as new - and re-applied perpetuating the problem (like the infamous $700bn bailout). &lt;/p&gt;
&lt;p&gt;One commentator in the discussion here, &lt;a href=&quot;http://sites.google.com/site/andfortoday&quot;&gt;Kevin&lt;/a&gt;, said that &lt;i&gt;&amp;#8220;the ground which humans have built on for thousands of years is eroding out from under our feet&amp;#8221;&lt;/i&gt;. Cheer up, Kevin - it is eroding, but for the most part only under the Western Civilization. There are other civilizations - in fact if you look at the map of the world most people live in other civilizations. And all of those civilizations with no exception stick to their traditions and values, which incidentally all include protection of family as the basic unit of society. Of those the Muslim civilization is most visible in the West, because it is in fact slowly taking over Western Europe.&lt;/p&gt;
&lt;p&gt;So, the brutal reality is that if our civilization wishes to commit a &lt;a href=&quot;http://www.amazon.com/Decline-Fall-Europes-Motion-Suicide/dp/1594032068&quot;&gt;slow motion suicide&lt;/a&gt; the world will just shrug. There may be a crisis when it falls but others will fill the void. In fact many around the world can&amp;#8217;t wait when it happens, because they hope it will be their civilization that will be more powerful and influential then. Christianity will survive West&amp;#8217;s fall as well, just as it survived the fall of the Roman Empire, the passing of the Carolingian Empire and all the kings and emperors that threaded the Earth during those 2000 years since Our Lord has been here. &lt;/p&gt;
&lt;p&gt;Nothing of this is news - I&amp;#8217;m not discovering anything in this humble post. Wise men saw this coming long ago - like &lt;a href=&quot;http://en.wikipedia.org/wiki/Syllabus_of_Errors&quot;&gt;Pope Pius IX&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/Decline_of_the_West&quot;&gt;Oswald Spengler&lt;/a&gt; to name just two writing decades ago - and many after them. So the problem now is not whether this is happening - the big question we should consider is: &lt;b&gt;is this process inevitable&lt;/b&gt;? Can this be reversed? Can Western Civilization be resuscitated? And if yes - then how?&lt;/p&gt;
&lt;p&gt;But even if it is not someone who thinks the biggest issue of our time is to push for mentally disturbed individuals to be allowed to &amp;#8220;marry&amp;#8221; each other and thus helps West&amp;#8217;s &amp;#8220;slow motion suicide&amp;#8221; in his small way is well&amp;#8230; a fool.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Russia&amp;#8217;s wise move</title>
		<link href="http://www.andybrandt.net/?p=293"/>
		<id>http://www.andybrandt.net/?p=293</id>
		<updated>2008-10-08T11:13:38+00:00</updated>
		<content type="html">&lt;p&gt;As we all know (and if we don&amp;#8217;t better get informed) a deep financial crisis is slowly engulfing our globalized economy and some countries start to sink. Iceland was doing what the bigger economies were - &lt;a href=&quot;http://www.youtube.com/watch?v=gZA_f12t0QE&quot;&gt;money-printing driven bubble pumping&lt;/a&gt;. Now a reality check came and Iceland&amp;#8217;s PM went on national TV to announce the whole country might go bankrupt. Naturally, feeling the heat they turned for help to their traditionally allies, which we may safely assume included the US. But those allies refused having the very same problem on their hands. So Iceland turned to&amp;#8230; Russia and &lt;a href=&quot;http://www.telegraph.co.uk/finance/newsbysector/banksandfinance/3154116/Financial-crisis-Iceland-nationalises-bank-and-seeks-Russian-loan.html&quot;&gt;Russia will give them €4bn loan&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Icelandic officials quickly denied that their &amp;#8220;new friendship&amp;#8221; with Russia includes any kind of military cooperation, for example giving Russians access to an airbase vacated by the US Air Force in 2006. Well, a 19th century Russian diplomat, &lt;a href=&quot;http://en.wikipedia.org/wiki/Alexander_Mikhailovich_Gorchakov&quot;&gt;prince Gorchakov&lt;/a&gt; used to say: &amp;#8220;I don&amp;#8217;t believe in news that are not officially denied&amp;#8221; - and I think it very nicely applies here. Have a look on the map and see where Iceland is, how big it is and what resources it can offer. The fact is the only thing Iceland can offer is its strategic position. Except for some fish there is nothing there and I don&amp;#8217;t think Russia is in particular need of Atlantic fish. But assuming Russians would get there it would allow them to control strategically important sea routes on the North Atlantic and would help them in their bid for control over the Arctic. &lt;/p&gt;
&lt;p&gt;This just shows how wise Russia is playing its cards since Putin&amp;#8217;s clique of ex-KGB officers took helm  from the ailing Yeltsin. A very, very wise move on their part. And also very worrying for Europe, especially its eastern part.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Revisiting Google&amp;#8217;s political stance</title>
		<link href="http://www.andybrandt.net/?p=279"/>
		<id>http://www.andybrandt.net/?p=279</id>
		<updated>2008-10-01T12:51:36+00:00</updated>
		<content type="html">&lt;p&gt;My &lt;a href=&quot;http://www.andybrandt.net/?p=266&quot;&gt;recent little post&lt;/a&gt; has spawned a debate in the combox essentially about whether Mr. Brin is right supporting homosexual &amp;#8220;marriage&amp;#8221; or not. However, my main point is not whether this is good or bad - after all Mr. Brin is entitled to his opinion just like everyone else. But, he somehow felt that his own name is not enough, that he has to &lt;a href=&quot;http://googleblog.blogspot.com/2008/09/our-position-on-californias-no-on-8.html&quot;&gt;make it his company&amp;#8217;s official position&lt;/a&gt;. My main point was that this action is bad and has serious implications.&lt;/p&gt;
&lt;p&gt;For example all Google employees who are Muslim or christian or just believe differently than Mr. Brin find themselves in a strange position of working for a company that has an official position on a moral and political issue that is strongly against their own. One could say this is their problem, but I find this troubling. &lt;/p&gt;
&lt;p&gt;Is it right for a company manager or even founder to impose his views on all of his workforce in this way? Isn&amp;#8217;t this arrogance (as rightly &lt;a href=&quot;http://www.creativeminorityreport.com/2008/09/google-gay-marriage.html&quot;&gt;pointed out by CMR&lt;/a&gt;)? After all he is not representing those people in any way when it comes to issues like this one. Would it be ok if Mr. Brin said that it is official Google position to support Obama or McCain for president? Would that mean he represents the votes of his employees? &lt;/p&gt;
&lt;p&gt;Again, I believe private corporations should be allowed to hire whoever they want or do jobs/projects they want (so I find a recent case of prosecuting a photographer for not wanting to cover a homosexual &amp;#8220;marriage&amp;#8221; outrageous) or have their own criteria for benefits etc. But all this is quite different from publicly weighting on a piece of legislation pertaining to moral or social questions. &lt;/p&gt;
&lt;p&gt;Next, someone called me paranoid for even suggesting that Google&amp;#8217;s search results and not only results might be affected by their management&amp;#8217;s views. A few words on this one too.&lt;/p&gt;
&lt;p&gt;First, please notice that over-reliance on Google can affect your worldview anyway - which is something &lt;a href=&quot;http://www.andybrandt.net/?p=248&quot;&gt;I wrote about long ago&lt;/a&gt;. Notice too, that Google is dealing with lots of content, they are not only delivering search - they also host web sites, they host videos, they host groups, they gather and process news (through news.google.com) etc. They have immense power over what is getting through to the majority of Internet users, especially in the English-speaking countries. This power goes unnoticed, people concentrate on press and TV - but truth is newspapers circulation is down, and TV is evolving towards Internet, not away from it. &lt;/p&gt;
&lt;p&gt;Now, call me paranoid all you want, but I find this combination of power and strong political views troubling. I have no proof that Google is meddling with search results as such, but considering supportive evidence I don&amp;#8217;t think one can rule this out and continue to &lt;strong&gt;trust them&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;What supportive evidence? Well, there is even a &lt;a href=&quot;http://en.wikipedia.org/wiki/Censorship_by_Google&quot;&gt;page on Wikipedia devoted to Google&amp;#8217;s censorship&lt;/a&gt; and you can easily find cases of troubling disappearances of content from Google&amp;#8217;s sites:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://crossedcrocodiles.wordpress.com/2008/06/23/censored-by-google-alerts-crossed-crocodiles-on-africom/&quot;&gt;Censored by Google Alerts - Crossed Crocodiles on AFRICOM&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.whistleblower.org/content/press_detail.cfm?press_id=1310&quot;&gt;Google Censors Media Outlet Supportive of UN Whistleblowers&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Then there is &lt;a href=&quot;http://www.dailymail.co.uk/news/article-558177/Christian-group-sues-Google-search-engine-refuses-anti-abortion-adverts.html&quot;&gt;the case of Google&amp;#8217;s refusal to run pro-life ads&lt;/a&gt; while at the same time running abortion clinics ads. This is clearly using the power they have over what contents get through according to their own beliefs and views.&lt;/p&gt;
&lt;p&gt;Reasons why all those things happen might be different, but those are all examples of power Google has over content. As I wrote above - add strong opinions to power and trouble is likely. &lt;/p&gt;
&lt;p&gt;To sum it all up: I think Mr. Brin has stepped over the line he shouldn&amp;#8217;t have crossed. At least for me it means I can&amp;#8217;t trust Google anymore to provide fair and equal treatment to all opinions in their handling of their content.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Some search alternatives</title>
		<link href="http://www.andybrandt.net/?p=269"/>
		<id>http://www.andybrandt.net/?p=269</id>
		<updated>2008-09-29T21:23:09+00:00</updated>
		<content type="html">&lt;p&gt;Following my last post a friend told me that switching to Microsoft&amp;#8217;s Live Search was not the best idea and I should research other options. So I did, looking specifically for sites that are new and different (because, after all, it is quite possible that in the Google&amp;#8217;s shadow a novel and better idea for retrieving information from the Web could be emerging yet unnoticed).&lt;/p&gt;
&lt;p&gt;Of the sites I&amp;#8217;ve found I reviewed the following: &lt;a href=&quot;http://www.cuil.com/&quot;&gt;Cuil&lt;/a&gt;, &lt;a href=&quot;http://www.powerset.com/&quot;&gt;Powerset&lt;/a&gt;, &lt;a href=&quot;http://clusty.com/&quot;&gt;Clusty&lt;/a&gt;, &lt;a href=&quot;http://www.jux2.com/&quot;&gt;Jux2&lt;/a&gt; and &lt;a href=&quot;http://www.viewzi.com/&quot;&gt;Viewzi&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of those I like Clusty and Viewzi most. &lt;/p&gt;
&lt;p&gt;Powerset is merely an interface to Wikipedia, which is, I think, rather pointless as Wikipedia has a great interface already. &lt;/p&gt;
&lt;p&gt;Jux2 simply combines results from Google, Yahoo and Live Search in one Google-ish list of results. It has one feature that can be handy for SEO types - it displays rank of each of the results in each of the original engines. But, I think, there are many SEO tools that do it much better than Jux2 and other than this it is unimpressive. Thumbs down on this one, too.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.cuil.com/&quot;&gt;Cuil&lt;/a&gt; is interesting, however the results are ordered in a way I don&amp;#8217;t get. How Cuil ranks the results (determines what is important and what is not) is clearly different from other engines, which is a big plus (shows some innovative thinking). I&amp;#8217;m not sure, though, I like the effect, because what was ranked best was not what I&amp;#8217;d describe as best. On the other hand on my test searches Cuil did return a few pages no other engine did, which is another advantage. This means I&amp;#8217;ll keep Cuil in my Firefox search box for those extensive searches when I really want to unearth any piece of info on a given topic that I can lay my eyes on.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://clusty.com/&quot;&gt;Clusty&lt;/a&gt; on the other hand tries to organize the results in groups it calls clusters. On some of my test searches they were helpful, on some they were meaningless, but I think they are a good idea overall. The tab with domains is a nice way to see at a glance where there are many sites about a given topic, which is also nice. &lt;/p&gt;
&lt;p&gt;Clusty is merely organizing results from other search engines, but it offers different profiled searches - searches for jobs, blogs, images etc. - using different source engines, which makes results interesting. Good starting point, I&amp;#8217;d say, when looking for something on the web - especially if you don&amp;#8217;t want to see it through Google&amp;#8217;s goggles (Google is not included as one of the source engines).&lt;/p&gt;
&lt;p&gt;Last of the engines I reviewed today - &lt;a href=&quot;http://www.viewzi.com/&quot;&gt;Viewzi&lt;/a&gt; - is different only by its user interface. While it is largely Flash powered (which is a drawback) it is kind of cool. It offers different graphical views for presenting the results and really I like the &lt;a href=&quot;http://www.viewzi.com/search/webscreenshot/&quot;&gt;Web Screenshot&lt;/a&gt; view. It allows you to see the pages found without opening them in other windows or tabs, which makes it much much easier to decide at a glance whether a given page is worth a visit or not. Nice for lazy evening searches. &lt;img src=&quot;http://www.andybrandt.net/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Last but not least there is our own little experiment at searching - the &lt;a href=&quot;http://search.codesprinters.com/&quot;&gt;Sprinters Search&lt;/a&gt;. While not as useful as the sites above - after all this is just a concept demonstrator - it shows what I&amp;#8217;d like a search engine to do - recognize what I&amp;#8217;m after and explain to me what it is, while at the same time return the traditional relevant page results.&lt;/p&gt;
&lt;p&gt;In any case - it is good we are not stuck with Google. Let&amp;#8217;s not allow our mental inertia and habit to use only them - let&amp;#8217;s look around for search companies that just provide searches - not try to shape the society.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html"></title>
		<link href=""/>
		<id></id>
		<updated>2008-09-16T08:45:35+00:00</updated>
		<content type="html"></content>
		<author>
			<name>Square Wheel</name>
			<uri>http://squarewheel.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Square Wheel</title>
			<subtitle type="html">Rants on ruby on rails ridiculness</subtitle>
			<link rel="self" href="http://squarewheel.wordpress.com/feed/"/>
			<id>http://squarewheel.wordpress.com/feed/</id>
			<updated>2008-11-19T06:00:10+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Pointless but cool</title>
		<link href="http://www.andybrandt.net/?p=262"/>
		<id>http://www.andybrandt.net/?p=262</id>
		<updated>2008-09-14T23:01:41+00:00</updated>
		<content type="html">&lt;p&gt;This is a machine that I saw today at a local mall. Made totally out of cardboard and paper it was there on display to amaze the shoppers (it did draw attention of kids and men - women at malls are too concentrated on clothing to notice), was not doing anything useful.&lt;/p&gt;
&lt;p&gt;A reminder how much can be achieved with simple means and lots of creative ingenuity. &lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.andybrandt.net/wp-content/uploads/2008/09/p-640-480-d74041d8-821c-4eb1-b40c-6eae4f8e44c2.jpeg&quot;&gt;&lt;img src=&quot;http://www.andybrandt.net/wp-content/uploads/2008/09/p-640-480-d74041d8-821c-4eb1-b40c-6eae4f8e44c2.jpeg&quot; alt=&quot;&quot; width=&quot;225&quot; height=&quot;300&quot; class=&quot;alignnone size-full wp-image-364&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Travel plan</title>
		<link href=""/>
		<id>http://squarewheel.wordpress.com/?p=16</id>
		<updated>2008-09-01T13:29:33+00:00</updated>
		<content type="html">02. IX 2008, 10:12–17:45 Train to Toruń
04. IX 2008, 10:12–13:17 Train to Malbork
04. IX 2008, 20:16–06:56 Train to Kraków.</content>
		<author>
			<name>Square Wheel</name>
			<uri>http://squarewheel.wordpress.com</uri>
		</author>
		<source>
			<title type="html">Square Wheel</title>
			<subtitle type="html">Rants on ruby on rails ridiculness</subtitle>
			<link rel="self" href="http://squarewheel.wordpress.com/feed/"/>
			<id>http://squarewheel.wordpress.com/feed/</id>
			<updated>2008-11-19T06:00:10+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Just married</title>
		<link href="http://www.andybrandt.net/?p=254"/>
		<id>http://www.andybrandt.net/?p=254</id>
		<updated>2008-08-27T16:40:48+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;m happy to announce that on August 2nd me and Joanna got married at the Our Saviour Church in Cracow, Poland. It was the happiest day of my life and we both look forward to our lives together. &lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;a href=&quot;http://www.andybrandt.net/sesja&quot;&gt;Here are some pictures&lt;/a&gt; from the post-wedding photo session.&lt;/p&gt;&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Bazaar With Master Branch</title>
		<link href="http://hauru.eu/bazaar-master-branch/"/>
		<id>http://hauru.eu/bazaar-master-branch/</id>
		<updated>2008-07-30T23:31:00+00:00</updated>
		<content type="html">&lt;div class=&quot;document&quot;&gt;
&lt;div class=&quot;section&quot; id=&quot;problem-statement&quot;&gt;
&lt;h3&gt;Problem statement&lt;/h3&gt;
&lt;p&gt;I have a bit svnish view of writing software: there should be one master branch for project just not to confuse users of your code where to get the most recent code from.&lt;/p&gt;
&lt;p&gt;I'm writing a little app (I've posted about it earlier) with my girlfriend and we wanted to share and control code with bazaar. Bazaar promises an easy way for svn people to support central/master branch workflow. Or so I thought.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;early-attempt&quot;&gt;
&lt;h3&gt;Early attempt&lt;/h3&gt;
&lt;p&gt;I was to confident with bazaar easiness. So I made &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;push&lt;/span&gt;&lt;/tt&gt; over sftp to some directory on hauru.eu and told my girlfriend it's ready. But it wasn't: all files had my user permissions (uid/gid) and she couldn't check anything in. So... It's not so easy. I could change initial group for both of us, but this is not general solution (it wouldn't work on WebFaction shared hosting where you can't change initial group).&lt;/p&gt;
&lt;p&gt;Heaving previous experience with setting svn central repository I tried to &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;serve&lt;/span&gt;&lt;/tt&gt; the code. But this is simplistic mechanism with no read-write authentication support.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;sgid-to-the-rescue&quot;&gt;
&lt;h3&gt;SGID to the rescue&lt;/h3&gt;
&lt;p&gt;With an advice from Paweł I tried setting SGID on repository directory. It sounded as a good idea, but it didn't work. I was despaired, but I took another shot and browsed the web for solutions with SGID.&lt;/p&gt;
&lt;p&gt;It seems there is bug in OpenSSH or python-paramiko or in bazaar sftp support and it doesn't honour SGID properly. But with smart-server, that is &lt;strong&gt;bzr+ssh&lt;/strong&gt; it does. Moreover it works much faster than sftp. So it's double win.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;complete-solution&quot;&gt;
&lt;h3&gt;Complete solution&lt;/h3&gt;
&lt;p&gt;In four steps:&lt;/p&gt;
&lt;ul class=&quot;simple&quot;&gt;
&lt;li&gt;on server create empty repo folder&lt;/li&gt;
&lt;li&gt;change group to some common (users or bzr or your-project)&lt;/li&gt;
&lt;li&gt;set SGID on the folder&lt;/li&gt;
&lt;li&gt;now you can push your branch with &lt;tt class=&quot;docutils literal&quot;&gt;&lt;span class=&quot;pre&quot;&gt;bzr&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;push&lt;/span&gt; &lt;span class=&quot;pre&quot;&gt;bzr+ssh://server/repo-path&lt;/span&gt;&lt;/tt&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Every one in group can check code in and out.&lt;/p&gt;
&lt;p&gt;Of course this should not stop you from having as many side branches as you want, but it's good to have a single code branch you can always refer to.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Tomek Paczkowski</name>
			<email>oinopion@gmail.com</email>
			<uri>http://hauru.eu/</uri>
		</author>
		<source>
			<title type="html">hauru.eu latest entries</title>
			<subtitle type="html">Latest thougts from snakes nest</subtitle>
			<link rel="self" href="http://www.hauru.eu/feeds/latest/"/>
			<id>http://www.hauru.eu/feeds/latest/</id>
			<updated>2008-11-19T06:00:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">A blunder to learn from</title>
		<link href="http://www.andybrandt.net/?p=253"/>
		<id>http://www.andybrandt.net/?p=253</id>
		<updated>2008-07-17T19:27:18+00:00</updated>
		<content type="html">&lt;p&gt;A high profile case of personal data leaking onto Internet because of poor design of a web application just occurred in Poland. It is worth looking at, I think, as it shows clearly one problem with how many web applications are created today.&lt;/p&gt;
&lt;p&gt;First a brief recap of the situation: one of major Polish banks - &lt;a href=&quot;http://www.pekao.com.pl/&quot;&gt;Bank Pekao&lt;/a&gt;, part of &lt;a href=&quot;http://www.unicreditgroup.eu/&quot;&gt;UniCredit&lt;/a&gt; group - started a hiring campaign. As part of that they hired a &lt;a href=&quot;http://www.possum.pl/en&quot;&gt;PR agency&lt;/a&gt; that also built them a special website - &lt;a href=&quot;http://zainwestujwprzyszlosc.pl/&quot;&gt;zainwestujwprzyszlosc.pl&lt;/a&gt; (&amp;#8221;Invest in your future dot pl&amp;#8221;) where candidates could submit  resumes and cover letters. And submit they did - hundreds of them. Then &lt;a href=&quot;http://glucik.blogspot.com/2008/07/zainwestuj-w.html&quot;&gt;one blogger&lt;/a&gt; noticed resumes submitted showing in Google results when he searched for his last name and found someone&amp;#8217;s resume available for download. He checked the link and to his amazement found that under &lt;code&gt;http://zainwestujwprzyszlosc.pl/files/0&lt;/code&gt; you could find a listing of more than a thousand resumes and download them. Hundreds of files full of personal details and - as it is usually the case - people making fools of themselves in cover letters. &lt;/p&gt;
&lt;p&gt;Following his blog post getting immensely popular the story was picked up by mainstream media, someone notified the authorities and the bank. By Monday the whole nicely designed site was replaced with a brief message posted in a hurry saying that the site is closed. &lt;/p&gt;
&lt;p&gt;Now this classic story shows many things one could write about - for example total ignorance of media exploited by bank&amp;#8217;s PR who said that this situation &amp;#8220;was due to a hacker attack&amp;#8221; when it was clearly a major design flaw. Or the fact that after the bank officially stated this and added that they closed the page and people&amp;#8217;s data is now secure everyone could easily pull those files from Google&amp;#8217;s cache. Or that - worse even - coupling of ignorance with arrogance when they accused the blogger  and others of &amp;#8220;stealing data&amp;#8221;.&lt;/p&gt;
&lt;p&gt;But I want to concentrate on the root cause of all this mess which I think is not treating web applications as serious software. &lt;/p&gt;
&lt;p&gt;I reckon that all this happened because web is still treated as &amp;#8220;pages&amp;#8221; - not software. So everyone worries about how their sites are designed in terms of graphic beauty, not engineering. Consequently, building web sites is entrusted to &amp;#8220;web designers&amp;#8221; or &amp;#8220;interactive agencies&amp;#8221; or - even worse - PR firms (as in this case). Those well meaning companies or people are usually good at whatever their primary business is (graphic design, communication) but lack knowledge of software engineering. &lt;/p&gt;
&lt;p&gt;In fact there are many people now who even claim to be &amp;#8220;programmers&amp;#8221; because they can build a &amp;#8220;script&amp;#8221; in PHP or even put things together with Ruby on Rails. This obviously doesn&amp;#8217;t make them programmers - just like being able to replace oil in your car doesn&amp;#8217;t make you an engine designer - but they still claim that to totally ignorant customers who, let me restate that, don&amp;#8217;t treat their sites as software. Bank in question has - I&amp;#8217;m sure - a very capable IT department, but I bet this website was ordered by someone from marketing or HR who never bothered to consult his own IT colleagues - because it is just &amp;#8220;some pages&amp;#8221;.&lt;/p&gt;
&lt;p&gt;This approach might have been ok 8 years ago when few web sites were rarely anything more than pages + images. But by now it is hard to find such &amp;#8220;pages&amp;#8221; anymore - the web abounds with true applications. And applications means software - with all the things to consider &amp;#8220;interactive agencies&amp;#8221; never heard of like data models, database design, scalability and - yes - security! &lt;/p&gt;
&lt;p&gt;But failing to recognize web applications for what they really are (software, getting more complex every year) companies hire wrong people or outsource to wrong teams. And then they have problems.&lt;/p&gt;
&lt;p&gt;At &lt;a href=&quot;http://www.codesprinters.com/&quot;&gt;Code Sprinters&lt;/a&gt; we take a totally different view. We don&amp;#8217;t claim to do &amp;#8220;pages&amp;#8221;, we don&amp;#8217;t call ourselves &amp;#8220;interactive agency&amp;#8221;, openly admit we suck at PR and are not good at graphic design. We are a software company specializing in delivering web applications and systems. &lt;/p&gt;
&lt;p&gt;And that we take seriously. We hire only true software engineers, that is people who know what data model is, how database design works,  what design patters are -  and are trained (and mentally capable) to consider consequences given design will have for scalability and security. Work done by such people does cost more - not only because they are more expensive than &amp;#8220;web designers&amp;#8221; (which is not always true), but also because they put more work into building each web application  - and that because they don&amp;#8217;t skip building it to be secure, don&amp;#8217;t skip building a suite of automated tests around it and do take care to write the code someone else will be able to read &amp;#038; extend in the future. &lt;/p&gt;
&lt;p&gt;To be honest I won&amp;#8217;t say we never ever have bugs in our applications - but major design flaws like in this case are simply not possible (leaving important files on a publicly accessible directory and feeding it to Google to index them is outrageously bad design). We would die of shame if anything this bad would ever be delivered by us.&lt;/p&gt;
&lt;p&gt;The Peako incident shows clearly that is not wise to entrust building software to people who don&amp;#8217;t have a clue about it. Pekao has just learned the hard way what the real cost of doing that is. Consider how much will this bank have to pay now all the people who will be smart enough to sue them for damages? Consider damage to their image and reputation. And take into account that under EU privacy protection laws they even face penalties from the government and are under investigation now. &lt;/p&gt;
&lt;p&gt;Others should learn from this example. After all this is a huge bank and it will survive it -  hiring is not their primary business and most of their clientele is not geeky enough to understand the problem. But think what would a blunder like this do to an HR company?&lt;/p&gt;
&lt;p&gt;So, to sum it all up: &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; quality - and security - do cost, &lt;/li&gt;
&lt;li&gt; web applications are software,&lt;/li&gt;
&lt;li&gt;software should be built by people who are qualified to do it,&lt;/li&gt;
&lt;li&gt;&amp;#8220;interactive agencies&amp;#8221; or &amp;#8220;web designers&amp;#8221; on average don&amp;#8217;t have skills and experience to build complex software.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you save on your web applications or hire wrong people to build it well - you&amp;#8217;re in for trouble.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Failed with Google App Engine</title>
		<link href="http://hauru.eu/failed-with-google-app-engine/"/>
		<id>http://hauru.eu/failed-with-google-app-engine/</id>
		<updated>2008-07-14T21:25:04+00:00</updated>
		<content type="html">&lt;div class=&quot;document&quot;&gt;
&lt;p&gt;I'm writing a little app for my English course at &lt;a class=&quot;reference external&quot; href=&quot;http://www.uj.edu.pl/&quot;&gt;Jagiellonian University&lt;/a&gt; in Django.
Right now I'm hosting it here, on hauru.eu, but soon we'll release a book we were producing whole year and thus I have to finish the app and make it public. I thought about putting it on &lt;a class=&quot;reference external&quot; href=&quot;http://code.google.com/appengine/&quot;&gt;Google App Engine&lt;/a&gt; (think: free hosting in Python), but after two days of trying I must say I don't see any point any more.&lt;/p&gt;
&lt;p&gt;I wrote my app using many of convenience methods/classes provided by Django, but very few of them are supported by GAE. I'd have to rewrite half of code! No way. It's right time to use some servers in &lt;a class=&quot;reference external&quot; href=&quot;http://www.ksi.ii.uj.edu.pl/&quot;&gt;KSI&lt;/a&gt;: Students' Computer Science Club, which I'm proud member of.&lt;/p&gt;
&lt;p&gt;I'm sure Google App Engine is powerful and convenient platform, but I don't think Django fits there well. While reading about GAE I thought the best solution would be using some external libraries like &lt;a class=&quot;reference external&quot; href=&quot;http://werkzeug.pocoo.org/&quot;&gt;Werkzeug&lt;/a&gt;, as GAE is based on WSGI interface.&lt;/p&gt;
&lt;/div&gt;</content>
		<author>
			<name>Tomek Paczkowski</name>
			<email>oinopion@gmail.com</email>
			<uri>http://hauru.eu/</uri>
		</author>
		<source>
			<title type="html">hauru.eu latest entries</title>
			<subtitle type="html">Latest thougts from snakes nest</subtitle>
			<link rel="self" href="http://www.hauru.eu/feeds/latest/"/>
			<id>http://www.hauru.eu/feeds/latest/</id>
			<updated>2008-11-19T06:00:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">The power of Dilbert</title>
		<link href="http://www.andybrandt.net/?p=252"/>
		<id>http://www.andybrandt.net/?p=252</id>
		<updated>2008-07-10T22:49:08+00:00</updated>
		<content type="html">&lt;p&gt;It is always with amazement that I find looking at my statistics, that the set of key words that brings most of random visitors to this humble blog is &amp;#8220;Dilbert Scrum&amp;#8221;. This is so ever since &lt;a href=&quot;http://www.andybrandt.net/?p=223&quot;&gt;I&amp;#8217;ve commented on an episode of Dilbert&lt;/a&gt; in which agile is mentioned. Based on it I&amp;#8217;ve moved on to discuss Scrum - and probably no one else did exactly that, because if you type &amp;#8220;Dilbert Scrum&amp;#8221; into Google that post of mine is now number 1. I suspect this post will strengthen that effect. &lt;/p&gt;
&lt;p&gt;Interestingly, I&amp;#8217;m not sure Dilbert ever referred to Scrum directly but even so people think he must have - so they look for it. Also, this shows that people want to find an image, not a text. Texts are boring, you have to concentrate (which is hard) and think sometimes (which is even harder). Images are much much easier. Which is, probably, why Dilbert brings so many visitors to my page who come for only one thing: the link to the comic strip (BTW: It was wrong, I just fixed it).&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Thank you, Ireland!</title>
		<link href="http://www.andybrandt.net/?p=250"/>
		<id>http://www.andybrandt.net/?p=250</id>
		<updated>2008-06-14T23:47:40+00:00</updated>
		<content type="html">&lt;p&gt;So, the Irish have overwhelmingly &lt;a href=&quot;http://www.ireland.com/newspaper/frontpage/2008/0614/1213369845918.html&quot;&gt;rejected&lt;/a&gt; the &amp;#8220;EU constitution&amp;#8221; disguised as &amp;#8220;Lisbon Treaty&amp;#8221;. &lt;strong&gt;Thank you, Ireland!&lt;/strong&gt; You did what all those who were denied their say by their supposedly democratic governments hoped for. &lt;/p&gt;
&lt;p&gt;But this is not over yet for Ireland - the pressure will now mount, because the euro-socialists didn&amp;#8217;t expect anyone to say no this time. Eurocracts will probably try to bully Ireland to get back in line with all kinds of threats - from being &amp;#8220;left outside&amp;#8221; to economic loses. For now they are expressing their anger by saying that &amp;#8220;&lt;a href=&quot;http://www.thepost.ie/post/pages/p/story.aspx-qqqt=NEWS-qqqs=news-qqqid=33749-qqqx=1.asp&quot;&gt;the NO vote is Ireland&amp;#8217;s problem&lt;/a&gt;&amp;#8220;. &lt;/p&gt;
&lt;p&gt;Irish prime minister was already summoned to Brussels to explain himself - which shows clearly what the &lt;a href=&quot;http://dublinopinion.com/2008/06/14/its-all-fun-and-games-until-someone-loses-a-referendum/&quot;&gt;role of national PMs&lt;/a&gt; will be in the future EU super-state. And there is already talk of re-doing the referendum - a nice example of &lt;a href=&quot;http://ardenforester.blogspot.com/2008/06/eu-chief-disdains-democracy.html&quot;&gt;how much respect&lt;/a&gt; the supposedly democratic leaders have for the people&amp;#8217;s vote. &lt;/p&gt;
&lt;p&gt;So, dear Irish friends: hold on tight now!&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Search monopoly one step closer</title>
		<link href="http://www.andybrandt.net/?p=249"/>
		<id>http://www.andybrandt.net/?p=249</id>
		<updated>2008-06-13T21:07:26+00:00</updated>
		<content type="html">&lt;p&gt;Not even two weeks have passed since I wrote here about &lt;a href=&quot;http://www.andybrandt.net/?p=248&quot;&gt;why the ubiquity of Google worries me&lt;/a&gt; and now Yahoo is falling into Google&amp;#8217;s hands as well. TechCrunch first &lt;a href=&quot;http://www.techcrunch.com/2008/06/12/googleyahoo-announcement-at-130-this-afternoon/&quot;&gt;broke the news&lt;/a&gt; yesterday and now &lt;a href=&quot;http://www.techcrunch.com/2008/06/13/googles-83-million-escape-clause-sec-filing-spells-out-details-of-yahoo-google-deal/&quot;&gt;is reporting&lt;/a&gt; about the conditions of the deal (which are much better for Google) and criticizing Yahoo executives for, basically, giving up on their company and its fight for a place in the Net.&lt;/p&gt;
&lt;p&gt;In any case this is clearly a step in the direction of Google becoming the only search engine known worldwide. That would mean a single entity having monopoly over who gets traffic and who doesn&amp;#8217;t. Or, in other words, deciding which content is visible and which is not. And this is for sure bending the worldview of its users - if not intentionally then as a result of the SEO experts&amp;#8217; efforts.&lt;/p&gt;
&lt;p&gt;This is why I did choose to use Microsoft&amp;#8217;s Life Search instead. Joe Ziz commented asking why switch to a search that is not better and is run by a corporate behemoth too. &lt;/p&gt;
&lt;p&gt;You see - the point here is not using something technically better but &lt;em&gt;different&lt;/em&gt;. If my worldview - as affected by search results - has to be skewed I prefer it to be skewed in a different way. And the problem with search is that with current technology a good search engine requires resources no startup can build. That leaves Microsoft as the only viable competitor - they can match Google&amp;#8217;s resources because they can afford it. Probably no one else in the industry can. &lt;/p&gt;
&lt;p&gt;And I&amp;#8217;m less afraid of Microsoft&amp;#8217;s domination of the past than Google&amp;#8217;s (near)monopoly of the present. Microsoft just reaped huge profits by selling low quality software, Google is dealing with a much more delicate matter: information. &lt;/p&gt;
&lt;p&gt;Now, the big picture behind all this is whether freedom of speech on the Internet will be preserved or not. It is much more likely to survive if there is not too much concentration - that is if the Internet is indeed a neutral pipe connecting small and big alike and putting them on equal footing. If Google (and a few sites like it) dominates and if Net neutrality goes away (which is something all telcos would love to see - &lt;a href=&quot;http://ipower.ning.com/netneutrality2&quot;&gt;selling access to major sites like TV channels&lt;/a&gt; is a great idea for Mammon worshipers) then Internet will become as much a censored propaganda channel as TV and radio have became already. &lt;/p&gt;
&lt;p&gt;And this is not impossible - the naive thinking of the early 90ies that because the Internet was designed to function after a series of nuke blasts it will be impossible to censor it was proven wrong by China and its Internet Police. In the end it turns out that even if it is technically doable to go around Internet censorship it doesn&amp;#8217;t matter if it is too difficult for the majority of the population. &lt;/p&gt;
&lt;p&gt;This is a grim vision. It might or it might not become reality. But it is worth knowing how much the shape of the Internet will affect the shape of the society in world&amp;#8217;s industrial nations. Google&amp;#8217;s influence is not to be underestimated.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Switching to Microsoft Live Search</title>
		<link href="http://www.andybrandt.net/?p=248"/>
		<id>http://www.andybrandt.net/?p=248</id>
		<updated>2008-06-01T22:45:24+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;m switching to &lt;a href=&quot;http://search.live.com/&quot;&gt;Microsoft Live Search&lt;/a&gt;. I&amp;#8217;ve changed the default search engine in my browser and I vow to use it as my primary search engine from now on. And I think my reasons for doing it are worth sharing here. &lt;/p&gt;
&lt;p&gt;First, make no mistake: I&amp;#8217;m not a Microsoft fan and I never was. I was a Linux evangelist about 12-10 years ago and I&amp;#8217;m an avid Apple and Mozilla user now. I think MS&amp;#8217;s operating systems suck and always did - they are in fact responsible for entrenching bad software as a standard and degrading people&amp;#8217;s expectations about software quality in general. And as a company they are as bad as you can get. &lt;/p&gt;
&lt;p&gt;So I&amp;#8217;m not doing it because I love Microsoft or because I think Live Search is a better search engine. I&amp;#8217;m just fed up with Google - and also a bit concerned: my concern is that &lt;strong&gt;relying exclusively on Google&amp;#8217;s search results affects my worldview too much&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Google has a de-facto monopoly on web search. Therefore everyone fights (with all kinds of &lt;a href=&quot;http://en.wikipedia.org/wiki/Search_engine_optimization&quot;&gt;SEO techniques&lt;/a&gt;) to be on top of Google&amp;#8217;s ranking (because almost no one looks further). The effect is that on the first page of Google&amp;#8217;s results you are more likely to find someone actively pushing his mediocre content than people who just have good content and no active &amp;#8220;SEO strategy&amp;#8221;. Also, Google has been known to &lt;a href=&quot;http://www.zdnet.com.au/news/business/soa/Google-excludes-race-hate-religious-sites/0,139023166,120269353,00.htm&quot;&gt;censor its search results&lt;/a&gt; in the past. No matter what reasons they have and whether I agree with them by doing so they try to shape the worldview of millions - including mine - by removing some sites and through that some points of view. Now, that is not ok.&lt;/p&gt;
&lt;p&gt;So, I want to see the world through a different lens - not necessarily a fundamentally better one, but at least a different one. And I&amp;#8217;ll be actively encouraging others to do the same thing - not necessarily switch to Live Search, but at least throw away Google-Matrix glasses and look at the web from different angles.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Blog Finished</title>
		<link href="http://hauru.eu/blog-finished/"/>
		<id>http://hauru.eu/blog-finished/</id>
		<updated>2008-06-01T21:26:44+00:00</updated>
		<content type="html">&lt;div class=&quot;document&quot;&gt;
&lt;div class=&quot;section&quot; id=&quot;hauru-update-comments-are-here&quot;&gt;
&lt;h3&gt;Hauru update: comments are here&lt;/h3&gt;
&lt;p&gt;After some break from developing my blog, today I finished basic weblog functionalities by adding comments. I've also corrected design a bit.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;deploying-django-apps&quot;&gt;
&lt;h3&gt;Deploying Django apps&lt;/h3&gt;
&lt;p&gt;After working few months with Ruby on Rails I find myself lazy. So lazy, that I didn't bother to came up with good deploying algorithm. There are no built-in support for database migrations (although there are few &lt;a class=&quot;reference external&quot; href=&quot;http://code.djangoproject.com/wiki/SchemaEvolution&quot;&gt;apps&lt;/a&gt;) and there's no default way for separating settings between production and development environments. So because of my laziness adding new functionalities to hauru  renders server &lt;em&gt;unusable&lt;/em&gt; for some time. Well... I think it's time to do some google magic and IRC sniffing.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Tomek Paczkowski</name>
			<email>oinopion@gmail.com</email>
			<uri>http://hauru.eu/</uri>
		</author>
		<source>
			<title type="html">hauru.eu latest entries</title>
			<subtitle type="html">Latest thougts from snakes nest</subtitle>
			<link rel="self" href="http://www.hauru.eu/feeds/latest/"/>
			<id>http://www.hauru.eu/feeds/latest/</id>
			<updated>2008-11-19T06:00:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">We have landed on Mars&amp;#8230;</title>
		<link href="http://www.andybrandt.net/?p=247"/>
		<id>http://www.andybrandt.net/?p=247</id>
		<updated>2008-05-27T09:20:38+00:00</updated>
		<content type="html">&lt;p&gt;Media have announced with much ado the landing of the &lt;a href=&quot;http://phoenix.lpl.arizona.edu/&quot;&gt;Phoenix Mars probe&lt;/a&gt;, one newspaper going so far as to say &amp;#8220;we have landed on Mars&amp;#8221;. Well, in fact &amp;#8220;we&amp;#8221; have landed nowhere - this is just an automatic drone that will be digging some ground and doing some experiments on it, after which it will be effectively a webcam on Mars (for some time).&lt;/p&gt;
&lt;p&gt;Now, this would have been a great achievement in the early seventies or late sixties. It was a great achievement when the &lt;a href=&quot;http://en.wikipedia.org/wiki/Viking_program&quot;&gt;Viking crafts&lt;/a&gt; landed on Mars. It is nothing to be proud of that three decades later all we are capable of as a civilization is sending just another robot. This lander may be more sophisticated than the Vikings but it weights roughly half their weight (350 kg vs. 572 kg) - which means we can now haul less mass to Mars surface than 30 years ago! And it will have more sensors etc. but what it will in fact do will be a large repeat of Vikings - dig some soil, analyze it, snap some pictures around, measure the winds. &lt;/p&gt;
&lt;p&gt;The sad fact is that no man left low Earth orbit since December 1972 when the &lt;a href=&quot;http://en.wikipedia.org/wiki/Apollo_17&quot;&gt;last Apollo mission&lt;/a&gt; was launched. And even the probes sent are less numerous and smaller than those sent thirty years ago. The space programs of major Earth powers have went stale or were abandoned. NASA facilities in &lt;a href=&quot;http://maps.live.com/default.aspx?v=2&amp;#038;FORM=LMLTCP&amp;#038;cp=28.51614~-80.606518&amp;#038;style=a&amp;#038;lvl=13&amp;#038;tilt=-90&amp;#038;dir=0&amp;#038;alt=-1000&amp;#038;phx=0&amp;#038;phy=0&amp;#038;phscl=1&amp;#038;encType=1&quot;&gt;Cape Canaveral&lt;/a&gt; smell like an old museum and they in fact are one. Shuttles were a failure, even though no one admits that and no replacement is in sight. The most powerful launch vehicle developed - the &lt;a href=&quot;http://en.wikipedia.org/wiki/Energia&quot;&gt;Russian Energia rocket&lt;/a&gt; - was abandoned too.&lt;/p&gt;
&lt;p&gt;I don&amp;#8217;t know why it is so, why  our progress into space is held back. There may be many reasons for that - ranging from social to all kinds of conspiracy theories. However, in any case I can&amp;#8217;t stand media applauding menial landings of small probes as great achievements. This is not fair and real journalism as it lacks historical background that would put those &amp;#8220;achievements&amp;#8221; in prospective.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">The right balance</title>
		<link href="http://www.andybrandt.net/?p=245"/>
		<id>http://www.andybrandt.net/?p=245</id>
		<updated>2008-04-29T17:01:54+00:00</updated>
		<content type="html">&lt;p&gt;In any team work a certain level of discipline is necessary to achieve organized progress. In creative work, however, too much discipline can hinder both the progress and the quality of the results delivered by the team. It has long been known that software development attracts a certain kind of individuals. Usually above-average intelligence comes with an above-average ego plus (usually) some weird interests and kinks. And a certain obsession with tools combined with the love for the art and craft of building software.&lt;/p&gt;
&lt;p&gt;For those reasons managing developers has been jokingly compared to &lt;a href=&quot;http://www.youtube.com/watch?v=Pk7yqlTMvp8&quot;&gt;herding cats&lt;/a&gt;. The manager has to strike a balance, constantly, between the discipline and freedom. This requires discerning what is crucial and has to be monitored closely from what is incidental and can be left for the team to decide or do.&lt;/p&gt;
&lt;p&gt;Agile methods make this much easier because they focus on what is really important and really needed for orderly progress. For example &lt;a href=&quot;http://www.codesprinters.com/resources/scrum-resources&quot;&gt;Scrum&lt;/a&gt; calls for a Daily Scrum each day and besides that it is left for the team to decide how they will work to achieve the goals they committed to during the Sprint Planning. Also, technical level methods like XP or TDD focus more on how the code being built should look like or how should it be built rather than with what, when etc. The rest is and should be left for the people to decide. Some of this deciding will take place on the team level, some will be up to individual developers. &lt;/p&gt;
&lt;p&gt;I believe that this is indeed the right way forward and this is how we work at &lt;a href=&quot;http://www.codesprinters.com/&quot;&gt;Code Sprinters&lt;/a&gt;. We maintain a very disciplined process coupled with lots of freedom in the choice of tools and a very relaxed, informal atmosphere.&lt;/p&gt;
&lt;p&gt;One of the things we don&amp;#8217;t force on our developers is the choice of tools. They can use Windows or Linux if they want (I wish we could afford to give everyone a Mac as an option too, but this is not possible yet) - and whatever distribution of Linux they want. They can use a company laptop or their own. They can use an IDE like Eclipse or they can use traditional but powerful tools like VI or Emacs. It is so because for the good quality of the end product - software - the developer has to feel comfortable with the tools he uses. Forcing them to use the same &amp;#8220;standard&amp;#8221; tools would be as wise as forcing them to wear the same size of shoes. I&amp;#8217;ve seen comments that &amp;#8220;lack of unity in tools&amp;#8221; is a bad thing - I strongly disagree with that. I think diversity in the tools used is a sign of a good, creative team. &lt;/p&gt;
&lt;p&gt;Of course, there is a minimal set of tools everyone has to have and use, but all are independent of the OS/platform used. Everyone has to use our Banana Scrum tool to manage their tasks and update on progress, do planning it, register impediments etc. Everyone has to have Skype running on their laptop to stay in touch with others and the clients. Everyone has to use Google&amp;#8217;s Calendar, our SVN repositories, project wikis etc. &lt;/p&gt;
&lt;p&gt;We also don&amp;#8217;t strictly enforce working hours. What is enforced is presence on the Daily Scrums - everyone on the given team has to be there - and there are penalties for being late. Besides that it is just said that being in the office is expected and encouraged, but there are no set hours. So we have people running in just before the Daily Scrum and people who sit in the office from early morning. Surprisingly, even without a card-clock etc. most of the time whole teams sit together in our &amp;#8220;war room&amp;#8221;. It turns out making it both enjoyable and palpably productive to be here works much better than enforcing presence. &lt;/p&gt;
&lt;p&gt;Finally, there are certain standards re. the coding style, the test coverage, the way repository is to be used (what is acceptable as commit and what is not), a procedure for starting a new project etc. They are applied universally and teams working on a given projects may (and frequently do) add on top of that additional standards that for their particular project. Good example is the release procedure which looks different in each project and ranges from just tagging the release in the repository to working with the client&amp;#8217;s server(s) to actually put the new release in production.&lt;/p&gt;
&lt;p&gt;This approach - enforce strictly few key things, be relaxed on others - has worked extremely well for us. I&amp;#8217;m not going to say everyone should do it exactly like we (it might be for example a tad difficult with larger teams from the logistics point of view) but I think the general principle is sound and should be part of good practice in any agile team.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Gone sailing</title>
		<link href="http://www.adambyrtek.net/2008/04/24/gone-sailing/"/>
		<id>http://www.adambyrtek.net/2008/04/24/gone-sailing/</id>
		<updated>2008-04-24T22:14:32+00:00</updated>
		<content type="html">&lt;p&gt;It&amp;#8217;s time to unplug for some time and calm down, disconnect not only from the Web, but also from the daily life. In case you need me during the coming week, I&amp;#8217;ll be sailing along the Spanish coast &amp;#8212; no mobile nor WiFi coverage, sorry. I have several drafts of blog posts waiting patiently to be polished, so be prepared for something new when I return with my mental batteries reloaded.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sharethis.com/item?&amp;amp;wp=2.3.3&amp;amp;publisher=d991b43e-129e-4dd8-83a1-2050bced0b10&amp;amp;title=Gone+sailing&amp;amp;url=http%3A%2F%2Fwww.adambyrtek.net%2F2008%2F04%2F24%2Fgone-sailing%2F&quot;&gt;ShareThis&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Sceptical Point of View</name>
			<uri>http://www.adambyrtek.net</uri>
		</author>
		<source>
			<title type="html">Adam Byrtek</title>
			<subtitle type="html">Sceptical Point of View</subtitle>
			<link rel="self" href="http://www.adambyrtek.net/feed"/>
			<id>http://www.adambyrtek.net/feed</id>
			<updated>2008-04-24T22:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Why it’s good to be lazy</title>
		<link href="http://www.adambyrtek.net/2008/04/24/why-its-good-to-be-lazy/"/>
		<id>http://www.adambyrtek.net/2008/04/24/why-its-good-to-be-lazy/</id>
		<updated>2008-04-24T00:45:02+00:00</updated>
		<content type="html">&lt;p&gt;Recently I&amp;#8217;ve presented my talk on &lt;em&gt;Functional Programming with Python&lt;/em&gt; at the &lt;a href=&quot;http://rupy.eu/&quot;&gt;RuPy conference&lt;/a&gt; in Poznań, the slides (this time in English) are available below. Organizers promise that video recordings from all talks will be published shortly, I will keep you informed when it happens.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;


&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sharethis.com/item?&amp;amp;wp=2.3.3&amp;amp;publisher=d991b43e-129e-4dd8-83a1-2050bced0b10&amp;amp;title=Why+it%26%238217%3Bs+good+to+be+lazy&amp;amp;url=http%3A%2F%2Fwww.adambyrtek.net%2F2008%2F04%2F24%2Fwhy-its-good-to-be-lazy%2F&quot;&gt;ShareThis&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Sceptical Point of View</name>
			<uri>http://www.adambyrtek.net</uri>
		</author>
		<source>
			<title type="html">Adam Byrtek</title>
			<subtitle type="html">Sceptical Point of View</subtitle>
			<link rel="self" href="http://www.adambyrtek.net/feed"/>
			<id>http://www.adambyrtek.net/feed</id>
			<updated>2008-04-24T22:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">How easy it was&amp;#8230;</title>
		<link href="http://www.andybrandt.net/?p=244"/>
		<id>http://www.andybrandt.net/?p=244</id>
		<updated>2008-04-21T21:52:07+00:00</updated>
		<content type="html">&lt;p&gt;I&amp;#8217;ve just spent (I wouldn&amp;#8217;t say wasted) half an hour browsing through &lt;a href=&quot;http://www.flickr.com/photos/library_of_congress/&quot;&gt;a collection of old photographs&lt;/a&gt; made available by the Library of Congress on Flickr. Images of a &lt;a href=&quot;http://www.flickr.com/photos/library_of_congress/2422671135/&quot;&gt;world&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/library_of_congress/2422671895/&quot;&gt;long&lt;/a&gt; &lt;a href=&quot;http://www.flickr.com/photos/library_of_congress/2387166253/&quot;&gt;gone&lt;/a&gt;, so old that even children depicted on those frames are most probably long dead. And a thought came back to me that I had years ago when first really reading up on the history of late 19th century: how easy it was, in a sense, to live one&amp;#8217;s life then. The society&amp;#8217;s values and roles were very clear then. No doubt as to what was wrong and what was right - everyone was believing in the general set of values based on the ten commandments and moral teachings of Christianity. Not everyone followed them - liars, murderers, thieves, deviants and the like were with us always - but no one questioned them. Most of insanity we see every day on the news now, including all possible perversions, was not thinkable or - at the vert least - was limited to single cases on the fringes of the society. No question then why general decency prevailed - no one posited immorality as a norm. &lt;/p&gt;
&lt;p&gt;It very well might be that while we have much developed since then technologically as a culture we - Europeans - have rather declined. The turn of the 19th and 20th century was, I think, the golden age of our culture - even though the first seeds of the catastrophic 20th century were there already. Good that at least we have those images to remind us of times when right meant right and wrong meant wrong.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en-US">
		<title type="html">Łukasz</title>
		<link href="http://badurowie.org/2008/04/16/a-few-words-about-rupy-2008/"/>
		<id>http://niebonet.wordpress.com/?p=5</id>
		<updated>2008-04-16T07:48:38+00:00</updated>
		<content type="html">&lt;div class=&quot;snap_preview&quot;&gt;&lt;br /&gt;&lt;p&gt;Last weekend I visited Poznań for &lt;a href=&quot;http://rupy.eu&quot;&gt;RuPy 2008&lt;/a&gt; conference along with a good &lt;a href=&quot;http://www.codesprinters.com&quot;&gt;Code Sprinters&lt;/a&gt; representation &amp;amp; Piotrek Czajkowski.&lt;br /&gt;
&lt;a href=&quot;http://niebonet.files.wordpress.com/2008/04/img_5538.jpg&quot;&gt;&lt;img class=&quot;aligncenter size-medium wp-image-6&quot; src=&quot;http://niebonet.files.wordpress.com/2008/04/img_5538.jpg?w=400&amp;amp;h=266&quot; alt=&quot;&quot; width=&quot;400&quot; height=&quot;266&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The conference was held in &lt;a href=&quot;http://web.wmi.amu.edu.pl/&quot;&gt;UAM&amp;#8217;s Collegium Mathematicum&lt;/a&gt;, which was pretty hard to get to. I really enjoyed the conference though, thanks to some interesting talks. I really enjoyed &lt;a href=&quot;http://www.zedshaw.com/blog/&quot;&gt;Zed Shaw&amp;#8217;s&lt;/a&gt; talk on getting statistical results while measuring web app performance. It was interesting &amp;amp; funny (in spite all of Zed&amp;#8217;s Ruby &amp;amp; Rails negativity :-)). I also really liked &lt;a href=&quot;http://www.voidspace.org.uk/python/weblog/arch_d7_2008_04_12.shtml#e962&quot;&gt;Micheal Foord&amp;#8217;s&lt;/a&gt; talk on IronPython &amp;amp; Silverlight 2 (not to mention his lightning talk about Resolver One) since I missed it on SFI conference held in Cracow. &lt;a href=&quot;http://www.adambyrtek.net/&quot;&gt;Adam&amp;#8217;s&lt;/a&gt; talk on functional programming in Python also went really good, and gathered many people in the auditorium. Unfortunately I didn&amp;#8217;t see the PyPy talks which were said to be excellent. Overall the talks were a load of fun. There were some glitches though. First of all, in my opinion speaking in English shouldn&amp;#8217;t be mandatory for speakers, as majority of the talks presented by Polish speakers was terrible to listen too. Because of the language barrier speakers couldn&amp;#8217;t speak up their minds. So I think it would be best to let the speakers choose the language they speak in. There were some exceptions though for example the &amp;#8220;A need for REST&amp;#8221; talk by Łukasz Piestrzeniewicz. The second thing I didn&amp;#8217;t like, was the lack of transportation from the place where the conference was held to the city centre (we had to use cab&amp;#8217;s all the time) as the information on RuPy official site were a bit misleading.&lt;/p&gt;
&lt;p&gt;Photos are available in the &lt;a href=&quot;http://www.flickr.com/groups/code_sprinters/pool/&quot;&gt;Code Sprinters Flickr Pool&lt;/a&gt;.&lt;/p&gt;
&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/categories/niebonet.wordpress.com/5/&quot; /&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/tags/niebonet.wordpress.com/5/&quot; /&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/niebonet.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/niebonet.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/niebonet.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/niebonet.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/niebonet.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/niebonet.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/niebonet.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/niebonet.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/niebonet.wordpress.com/5/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/niebonet.wordpress.com/5/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=badurowie.org&amp;amp;blog=2589070&amp;amp;post=5&amp;amp;subd=niebonet&amp;amp;ref=&amp;amp;feed=1&quot; /&gt;&lt;/div&gt;</content>
		<author>
			<name>Rambling about Software</name>
			<uri>http://badurowie.org/</uri>
		</author>
		<source>
			<title type="html">Mephisto - Home</title>
			<subtitle type="html">&lt;div id=&quot;pagewrapper&quot;&gt;

        &lt;ul class=&quot;accessibility&quot;&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.codesprinters.com/#menu_vert&quot; title=&quot;Skip to navigation&quot; accesskey=&quot;n&quot;&gt;Skip to navigation&lt;/a&gt;&lt;/li&gt;
      &lt;li&gt;&lt;a href=&quot;http://www.codesprinters.com/#main&quot; title=&quot;Skip to content&quot; accesskey=&quot;s&quot;&gt;Skip to content&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
    

    &lt;hr class=&quot;accessibility&quot; /&gt;
    

      &lt;div id=&quot;content&quot;&gt;

            &lt;div id=&quot;sidebar&quot;&gt;


            &lt;div id=&quot;header&quot;&gt;
              &lt;h1&gt;&lt;a href=&quot;http://www.codesprinters.com/&quot; title=&quot;Custom Web Applications in Ruby on Rails, Python and PHP&quot;&gt;&lt;img src=&quot;http://www.codesprinters.com/uploads/images/logo_orange_middle-small.png&quot; alt=&quot;Code Sprinters&quot; width=&quot;220&quot; height=&quot;47&quot; /&gt;&lt;/a&gt;&lt;/h1&gt;
      &lt;hr class=&quot;accessibility&quot; /&gt;
      &lt;/div&gt;
      

            &lt;div id=&quot;menu_vert&quot;&gt;
         &lt;h2 class=&quot;accessibility&quot;&gt;Navigation&lt;/h2&gt;
          

&lt;ul&gt;

&lt;li&gt;&lt;a href=&quot;http://www.codesprinters.com/news&quot; title=&quot;updates from the Code Sprinters team&quot;&gt;&lt;dfn&gt;2: &lt;/dfn&gt;News&lt;/a&gt;


&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.codesprinters.com/web-applications-development&quot;&gt;&lt;dfn&gt;3: &lt;/dfn&gt;Software development&lt;/a&gt;


&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.codesprinters.com/agile-coaching-training&quot;&gt;&lt;dfn&gt;4: &lt;/dfn&gt;Agile coaching &amp;amp; training&lt;/a&gt;


&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.codesprinters.com/more-about-us&quot;&gt;&lt;dfn&gt;6: &lt;/dfn&gt;More about us&lt;/a&gt;


&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.codesprinters.com/resources&quot; title=&quot;Scrum Rails Amazon S3/EC2 resources&quot;&gt;&lt;dfn&gt;7: &lt;/dfn&gt;Useful resources&lt;/a&gt;


&lt;/li&gt;

&lt;li&gt;&lt;a href=&quot;http://www.codesprinters.com/contact&quot;&gt;&lt;dfn&gt;8: &lt;/dfn&gt;Contact&lt;/a&gt;


&lt;/li&gt;
&lt;/ul&gt;

      &lt;/div&gt;
      

            &lt;div id=&quot;search&quot;&gt;
             &lt;form id=&quot;cntnt01moduleform_1&quot; method=&quot;get&quot; action=&quot;http://www.codesprinters.com/index.php&quot;&gt;&lt;div class=&quot;hidden&quot;&gt;&lt;input type=&quot;hidden&quot; name=&quot;mact&quot; value=&quot;Search,cntnt01,dosearch,0&quot; /&gt;&lt;input type=&quot;hidden&quot; name=&quot;cntnt01returnid&quot; value=&quot;15&quot; /&gt;&lt;/div&gt;


&lt;span class=&quot;keywords&quot;&gt;&lt;input type=&quot;text&quot; name=&quot;cntnt01searchinput&quot; id=&quot;cntnt01searchinput&quot; value=&quot;Enter Search...&quot; size=&quot;20&quot; maxlength=&quot;50&quot; /&gt;
&lt;/span&gt;&lt;input class=&quot;submit_search&quot; name=&quot;submit&quot; value=&quot;Go&quot; type=&quot;submit&quot; /&gt;

&lt;/form&gt;

      &lt;/div&gt;
      
      &lt;div id=&quot;feeds&quot;&gt;
            &lt;a href=&quot;http://www.codesprinters.com/News/rss&quot; class=&quot;feed&quot;&gt;News RSS feed&lt;/a&gt;
      &lt;/div&gt;


      &lt;/div&gt;
      

            &lt;div id=&quot;main&quot;&gt;
         &lt;h2&gt;Welcome!&lt;/h2&gt;
         &lt;h3&gt;Custom software&lt;br /&gt;&lt;/h3&gt;&lt;p&gt;We develop &lt;a href=&quot;http://www.codesprinters.com/web-applications-development&quot; title=&quot;Software development&quot;&gt;custom software solutions&lt;/a&gt; using most modern &lt;a href=&quot;http://www.codesprinters.com/web-applications-development/technology&quot; title=&quot;Technology -  Python, Ruby on Rails, PHP&quot;&gt;web technologies&lt;/a&gt; and &lt;a href=&quot;http://www.codesprinters.com/web-applications-development/how-we-work&quot; title=&quot;Agile Methods We Use - Scrum, XP&quot;&gt;agile methods&lt;/a&gt;. With experience in complex systems (billing, large scale hosted applications, integration to legacy systems) and a stable team of software engineers we build top quality software giving our clients unbeatable value.&lt;/p&gt;&lt;h3&gt;Agile coaching &amp;amp; training&lt;/h3&gt;&lt;p&gt;With certified professionals and our team's accumulated experience in agile we effectively &lt;a href=&quot;http://www.codesprinters.com/agile-coaching-training&quot; title=&quot;Agile coaching &amp; training&quot;&gt;coach and train&lt;/a&gt; other development teams increasing dramatically their effectiveness. We also help our clients manage their software development projects better. And we do it better - being primarily software developers we really know what we talk about.&lt;/p&gt;&lt;p&gt;&lt;span&gt;HOT&lt;/span&gt;: Certified Scrum Master training - &lt;a href=&quot;http://www.codesprinters.com/agile-coaching-training/scrum-masters-training&quot; title=&quot;Scrum Masters Training&quot;&gt;reserve your place now&lt;/a&gt;!&lt;/p&gt;

         	 &lt;div class=&quot;hr&quot;&gt;&lt;/div&gt;
	 &lt;div class=&quot;right49&quot;&gt;
	     next page → &lt;a href=&quot;http://www.codesprinters.com/news&quot; title=&quot;updates from the Code Sprinters team&quot;&gt;News&lt;/a&gt;
	 &lt;/div&gt;
         &lt;div class=&quot;left49&quot;&gt;
             
         &lt;/div&gt;
         	 
      &lt;hr class=&quot;accessibility&quot; /&gt;
      &lt;/div&gt;
	  

   &lt;/div&gt;
   

      &lt;div id=&quot;footer&quot;&gt;
      &lt;p&gt;© Copyright 2007-2008 Code Sprinters — This site is powered by &lt;a href=&quot;http://www.cmsmadesimple.org&quot; target=&quot;_blank&quot;&gt;CMS Made Simple&lt;/a&gt;&lt;/p&gt;



   &lt;/div&gt;   
   

&lt;/div&gt;</subtitle>
			<link rel="self" href="http://badurowie.org/feed/"/>
			<id>tag:badurowie.org,2008:mephisto/</id>
			<updated>2008-05-11T04:45:03+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Something is afoot</title>
		<link href="http://www.andybrandt.net/?p=243"/>
		<id>http://www.andybrandt.net/?p=243</id>
		<updated>2008-04-05T19:05:00+00:00</updated>
		<content type="html">&lt;p&gt;Bad things are happening on the markets, as everybody knows. One can &lt;a href=&quot;http://mises.org/story/2926&quot;&gt;read&lt;/a&gt; (and &lt;a href=&quot;http://www.youtube.com/watch?v=3RhnHo3RDfg&quot;&gt;view talks&lt;/a&gt;) about all kinds or problems in the US economy, including imminent predicted collapse of the US dollar and some &lt;a href=&quot;http://video.google.com/videoplay?docid=-1656880303867390173&quot;&gt;grim political theories&lt;/a&gt; behind it. &lt;/p&gt;
&lt;p&gt;Putting the political dimension aside those predictions seem to be based on solid economical theories. In fact, opponents of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Keynesian_economics&quot;&gt;Keynesian economy&lt;/a&gt; have predicted exactly this kind of thing to happen for years. Just no one believed it will really happen, because said opponents (&lt;a href=&quot;http://en.wikipedia.org/wiki/Friedrich_Hayek&quot;&gt;Hayek&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Milton_Friedman&quot;&gt;Friedman&lt;/a&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Ludwig_von_Mises&quot;&gt;von Mises&lt;/a&gt;) have been saying that for such a long time people got used to it. But maybe the mechanisms involved required a long time to produce results we are about to see.&lt;/p&gt;
&lt;p&gt;And here comes the startling analogy that occurred to me today: same thing happened with &amp;#8220;real communism&amp;#8221; in the Soviet Union - no one &lt;i&gt;really&lt;/i&gt; believed it can fall apart within our lifetime, especially leading &lt;a href=&quot;http://en.wikipedia.org/wiki/Sovietology&quot;&gt;sovietologists&lt;/a&gt;. May it be so that Western-style socialism will collapse like communism - just a few decades later, because it is - after all - more efficient then communism?&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Conferences</title>
		<link href="http://www.andybrandt.net/?p=242"/>
		<id>http://www.andybrandt.net/?p=242</id>
		<updated>2008-04-05T19:02:38+00:00</updated>
		<content type="html">&lt;p&gt;I just realized today why I like going to conferences so much. It allows me to think. &lt;/p&gt;
&lt;p&gt;This is so because usually getting to a conference involves travel and traveling has always induced high quality thinking in my brain. I don&amp;#8217;t know why, but I find the whole experience of moving very inspiring. No matter if this is by plane, train or car my mental gears spin faster. This is a creative time also because this is usually a when I can&amp;#8217;t use my computer, I&amp;#8217;m not answering phone calls and generally I have less distractions. &lt;/p&gt;
&lt;p&gt;In any case I&amp;#8217;m finding out, that without a few hours of travel every month I&amp;#8217;m deprived of some of my quality thinking time I used to have.&lt;/p&gt;
&lt;p&gt;But the conference experience doesn&amp;#8217;t end there - it also gives me time to actually listen to people talking about subjects of interest with full concentration. And ask them questions. Not possible with some interesting lectures available on Google Video and other sites. First, because it is surprisingly hard to find a free hour within a day to listen to them. Second, because there is no interaction.&lt;/p&gt;
&lt;p&gt;Finally, on a conference I get usually a few hours of very good work on my computer in the evening. Again, precisely for the reason outlined above - less distractions. &lt;/p&gt;
&lt;p&gt;Seems like I have to cut down distractions to move faster, the problem is that Internet is just one huge distraction. And with a laptop and Wi-Fi it is almost everywhere now.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en-us">
		<title type="html">Shiny new blog</title>
		<link href="http://hauru.eu/shiny-new-blog/"/>
		<id>http://hauru.eu/shiny-new-blog/</id>
		<updated>2008-03-26T00:45:17+00:00</updated>
		<content type="html">&lt;div class=&quot;document&quot;&gt;
&lt;div class=&quot;section&quot; id=&quot;hauru-eu&quot;&gt;
&lt;h3&gt;hauru.eu&lt;/h3&gt;
&lt;p&gt;This is my new blog. Isn't it sweet? It's written all in &lt;a class=&quot;reference external&quot; href=&quot;http://www.djangoproject.com/&quot;&gt;Django&lt;/a&gt;. It's super
simple and unfinished. There's no comments, no &amp;quot;about&amp;quot; page, etc., but I'm
planning to add this soon. Right now I wanted just to put it online. Happy
reading.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;oinopion&quot;&gt;
&lt;h3&gt;Oinopion&lt;/h3&gt;
&lt;p&gt;Blog needs an author. That's me. Briefly: my name is Tomek Paczkowski, I'm a
Computer Science student at &lt;a class=&quot;reference external&quot; href=&quot;http://www.uj.edu.pl&quot;&gt;Jagiellonian University&lt;/a&gt;, Kraków, Poland and also
I'm developer at &lt;a class=&quot;reference external&quot; href=&quot;http://www.codesprinters.com&quot;&gt;Code Sprinters&lt;/a&gt;. I'm a fan of Free/Libre/Open Source
Software (i.e. the idea of freedom), I'm also passionate Python programmer,
but don't think I don't do other languages. I have beautiful girlfriend, who
helped me with designing this page.&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;section&quot; id=&quot;contents&quot;&gt;
&lt;h3&gt;Contents&lt;/h3&gt;
&lt;p&gt;I'm planning to put here some of my thoughts about just everything, so do
expect strictly technical or strictly private content.&lt;/p&gt;
&lt;p&gt;That's all for now. If you want to contact me use my email:
&lt;a class=&quot;reference external&quot; href=&quot;mailto:oinopion+spam&amp;#64;gmail.com&quot;&gt;oinopion+spam&amp;#64;gmail.com&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</content>
		<author>
			<name>Tomek Paczkowski</name>
			<email>oinopion@gmail.com</email>
			<uri>http://hauru.eu/</uri>
		</author>
		<source>
			<title type="html">hauru.eu latest entries</title>
			<subtitle type="html">Latest thougts from snakes nest</subtitle>
			<link rel="self" href="http://www.hauru.eu/feeds/latest/"/>
			<id>http://www.hauru.eu/feeds/latest/</id>
			<updated>2008-11-19T06:00:07+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Tracing and profiling Ruby code</title>
		<link href="http://www.adambyrtek.net/2008/03/12/tracing-and-profiling-ruby-code/"/>
		<id>http://www.adambyrtek.net/2008/03/12/tracing-and-profiling-ruby-code/</id>
		<updated>2008-03-11T23:09:22+00:00</updated>
		<content type="html">&lt;p&gt;Every child knows that premature optimization is the root of all evil, and even when optimization is necessary, we should concentrate on the bottlenecks. This is where &lt;a href=&quot;http://en.wikipedia.org/wiki/Performance_analysis&quot;&gt;profiling&lt;/a&gt; becomes crucial. Ruby includes a simple profiler in the standard library, so to generate a report of program execution you just have to invoke it with &lt;code&gt;ruby -r profile&lt;/code&gt; or add &lt;code&gt;require &quot;profile&quot;&lt;/code&gt; to the code. In fact the whole profiler is implemented in only 59 lines of Ruby and relies on &lt;code&gt;set_trace_func&lt;/code&gt; method to register a callback tracing certain events during program execution (method calls and returns in this case). This tool should suffice for simple profiling, but if you need something faster and more powerful you should rather try &lt;a href=&quot;http://ruby-prof.rubyforge.org/&quot;&gt;ruby-prof&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The powerful introspection features of dynamic languages make tricks like this not only possible, but also straightforward. This gives me an idea that the same approach could be used to implement an aspect-oriented library for Ruby &amp;#8212; but I&amp;#8217;m almost sure somebody has already tried this.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sharethis.com/item?&amp;amp;wp=2.3.3&amp;amp;publisher=d991b43e-129e-4dd8-83a1-2050bced0b10&amp;amp;title=Tracing+and+profiling+Ruby+code&amp;amp;url=http%3A%2F%2Fwww.adambyrtek.net%2F2008%2F03%2F12%2Ftracing-and-profiling-ruby-code%2F&quot;&gt;ShareThis&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Sceptical Point of View</name>
			<uri>http://www.adambyrtek.net</uri>
		</author>
		<source>
			<title type="html">Adam Byrtek</title>
			<subtitle type="html">Sceptical Point of View</subtitle>
			<link rel="self" href="http://www.adambyrtek.net/feed"/>
			<id>http://www.adambyrtek.net/feed</id>
			<updated>2008-04-24T22:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Some Scrum bits&amp;#8230;</title>
		<link href="http://www.andybrandt.net/?p=239"/>
		<id>http://www.andybrandt.net/?p=239</id>
		<updated>2008-03-10T21:08:50+00:00</updated>
		<content type="html">&lt;p&gt;To make my life easier with introducing people to &lt;a href=&quot;http://www.codesprinters.com/resources/scrum-resources&quot;&gt;Scrum&lt;/a&gt; I did prepare a short presentation. You can &lt;a href=&quot;http://www.vimeo.com/736577&quot;&gt;view it here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And, BTW, I&amp;#8217;m happy to report here that a new version of our Scrum tool - &lt;a href=&quot;http://www.bananascrum.com/&quot;&gt;Banana Scrum&lt;/a&gt; - was released last Friday. Development is still going on, even though I can only put people who are not engaged in other projects on that work. &lt;/p&gt;
&lt;p&gt;Right now I decide we&amp;#8217;ll do a sprint concentrating on &amp;#8220;cleanup&amp;#8221; - mostly features or development that aims at improving overall usability and compatibility with different browsers. Even though IE 6&amp;#038;7 + Firefox + Safari work flawlessly we had some problems with Opera.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Thinner Ruby deployment</title>
		<link href="http://www.adambyrtek.net/2008/03/10/thinner-ruby-deployment/"/>
		<id>http://www.adambyrtek.net/2008/03/10/thinner-ruby-deployment/</id>
		<updated>2008-03-10T19:07:23+00:00</updated>
		<content type="html">&lt;p&gt;In the post on &lt;a href=&quot;http://www.adambyrtek.net/2008/03/05/benchmarking-http-performance/&quot;&gt;benchmarking HTTP performance&lt;/a&gt; I mentioned that according to my tests a cluster of Mongrels performs about 10-20% worse than the same number of FastCGI processes behind a reverse proxy. Recently I tried &lt;a href=&quot;http://code.macournoyer.com/thin/&quot;&gt;Thin&lt;/a&gt;, a new web server based on Mongrel libraries, and it turns out to be a solution that gets the best of both worlds. It is very easy to setup and manage (even easier than Mongrel), extremely flexible (mostly thanks to &lt;a href=&quot;http://rack.rubyforge.org/&quot;&gt;Rack&lt;/a&gt;) and really fast. It matches FastCGI in performance, without all the quirks, and can communicate through UNIX sockets too. I have to admit that I was impressed by the simple and clean design of Thin (which is based on existing quality modules). The only disadvantage is that it isn&amp;#8217;t very mature yet &amp;#8212; but in the near future Thin might become the best server for deploying Ruby web applications.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sharethis.com/item?&amp;amp;wp=2.3.3&amp;amp;publisher=d991b43e-129e-4dd8-83a1-2050bced0b10&amp;amp;title=Thinner+Ruby+deployment&amp;amp;url=http%3A%2F%2Fwww.adambyrtek.net%2F2008%2F03%2F10%2Fthinner-ruby-deployment%2F&quot;&gt;ShareThis&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Sceptical Point of View</name>
			<uri>http://www.adambyrtek.net</uri>
		</author>
		<source>
			<title type="html">Adam Byrtek</title>
			<subtitle type="html">Sceptical Point of View</subtitle>
			<link rel="self" href="http://www.adambyrtek.net/feed"/>
			<id>http://www.adambyrtek.net/feed</id>
			<updated>2008-04-24T22:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Benchmarking HTTP performance</title>
		<link href="http://www.adambyrtek.net/2008/03/05/benchmarking-http-performance/"/>
		<id>http://www.adambyrtek.net/2008/03/05/benchmarking-http-performance/</id>
		<updated>2008-03-05T21:48:51+00:00</updated>
		<content type="html">&lt;p&gt;Deployment of Rails application is a subject that tends to raise some hot discussions, leading to many misunderstandings. That&amp;#8217;s why I decided to try different deployment strategies and check for myself how they perform.&lt;/p&gt;
&lt;p&gt;To make any reasonable comparisons it is crucial to measure performance of different configurations. The most common metric is the number of requests processed per second (RPS). This metric (and many others) can be measured by HTTP benchmarking tools like &lt;code&gt;ab&lt;/code&gt; and &lt;code&gt;httperf&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;The first tool, &lt;code&gt;ab&lt;/code&gt;, comes bundled with Apache and is very easy to use, so it is a good option to start with. You can provide a total number of requests to perform (&lt;code&gt;-n&lt;/code&gt;) and a number of concurrent requests (&lt;code&gt;-c&lt;/code&gt;). If you like you can also give maximum time to wait for a response (&lt;code&gt;-t&lt;/code&gt;), as real users won&amp;#8217;t wait for a page to load more than just a few seconds.&lt;/p&gt;
&lt;p&gt;For example to issue 1000 requests with concurrency of 100 you might run (remember about a trailing slash in the URL, it is necessary)&lt;/p&gt;
&lt;pre&gt;
% ab -n 1000 -c 100 http://www.example.com/
&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;httperf&lt;/code&gt; is a slightly more complex tool with more features. The most important is a possibility to issue multiple request per connection (&lt;code&gt;--num-calls&lt;/code&gt; command line option) and support for replaying sessions that imitate real use cases. The tool is also believed to be more robust and give more reliable results. The basic use might look like&lt;/p&gt;
&lt;pre&gt;
% httperf --server www.example.com --num-conn 1000 \
          --num-call 10 --rate 10
&lt;/pre&gt;
&lt;p&gt;This will issue 1000 connections with a rate of ten connections per second (and no more), passing ten requests through each connection before it is closed. So the total number of requests will be 10000. Be sure to remember the distinction between connections and requests, otherwise this can lead to confusion when interpreting results. Another tricky part is the actual meaning of the &lt;code&gt;rate&lt;/code&gt; command line option. Rate is not a number of simultaneous connections at a given time (like concurrency in &lt;code&gt;ab&lt;/code&gt;), but rather a number of new connections made per second. This means your RPS cannot exceed rate given multiplied by number of requests per connection. So &lt;code&gt;httperf&lt;/code&gt; has to be ran multiple times with increasing rate to find the saturation point of the server.&lt;sup&gt;&lt;a href=&quot;http://www.adambyrtek.net/feed#note1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;When benchmarking HTTP performance don&amp;#8217;t just accept the first results blindly. Think for a minute what you are actually measuring. Check the status of the replies &amp;mdash; if most of requests fail it is a sign that something is wrong, if you are getting 3xx redirects probably you should rather test the URL the redirects point to. If many requests have timed out the concurrency you requested might be too high.&lt;/p&gt;
&lt;p&gt;Never perform such tests from your desktop machine far away from the server. In the perfect world you should run the benchmark from an independent machine in the same network segment as the server, and make sure the network is not saturated during the test. If you have to run the tests on local machine, remember that the load caused by the test itself can skew the results (note that from my experience &lt;code&gt;ab&lt;/code&gt; causes considerably smaller load than &lt;code&gt;httperf&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Finally consider where the URL you provided points to. If this is a static page or file, you can easily achieve thousands of RPS, as the performance is bounded mostly by disk operations. On the other hand if you measure a dynamic page running multiple SQL queries you might get very low results, as the database will be the bottleneck. Many recommend to benchmark a simple dynamic &amp;#8220;hello world&amp;#8221; application that doesn&amp;#8217;t communicate with the database. But if you want to measure performance of the application, not a web server, you can measure and compare different URLs.&lt;/p&gt;
&lt;p&gt;In my benchmarks I found out that three Mongrel instances load-balanced by Pound are about 10-20% slower than three static&lt;sup&gt;&lt;a href=&quot;http://www.adambyrtek.net/feed#note2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt; FastCGI processed running from a vanilla Apache installation. It is probably due to the fact that the front-end server communicates with Mongrels through TCP connections, which are considerably slower than UNIX sockets used by FastCGI. On the other hand this architecture makes scaling Mongrels easier, because one load balancer can proxy requests to multiple machines.&lt;/p&gt;
&lt;p&gt;It looks like there are reasonable arguments for both strategies, and I find it a bit surprising that the whole Rails community is voting against FastCGI, calling it a legacy solution. It&amp;#8217;s true that FastCGI can be tricky to setup correctly &amp;#8212; but at the end of the day it performs better, and there are other benchmarks showing &lt;a href=&quot;http://blog.kovyrin.net/2006/08/28/ruby-performance-results/lang/en/&quot;&gt;similar results&lt;/a&gt; (as shown on &lt;a href=&quot;http://blog.kovyrin.net/wp-content/uploads/2006/08/ruby-tests-diag.gif&quot;&gt;this chart&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&amp;#8212;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;note1&quot;&gt;&lt;/a&gt;&lt;sup&gt;[1]&lt;/sup&gt; More information on good HTTP benchmarking practices and the usage of &lt;code&gt;httperf&lt;/code&gt; can be found in the &lt;a href=&quot;http://www.xenoclast.org/doc/benchmark/HTTP-benchmarking-HOWTO/&quot;&gt;Linux HTTP Benchmarking HOWTO&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;note2&quot;&gt;&lt;/a&gt;&lt;sup&gt;[2]&lt;/sup&gt; Never use dynamic FastCGI processes for production purposes. Dynamic processes are killed when unused and due to timing issues users can get internal server errors. Moreover every request assigned to a fresh process is delayed, as it has to wait for the new process to boot.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sharethis.com/item?&amp;amp;wp=2.3.3&amp;amp;publisher=d991b43e-129e-4dd8-83a1-2050bced0b10&amp;amp;title=Benchmarking+HTTP+performance&amp;amp;url=http%3A%2F%2Fwww.adambyrtek.net%2F2008%2F03%2F05%2Fbenchmarking-http-performance%2F&quot;&gt;ShareThis&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Sceptical Point of View</name>
			<uri>http://www.adambyrtek.net</uri>
		</author>
		<source>
			<title type="html">Adam Byrtek</title>
			<subtitle type="html">Sceptical Point of View</subtitle>
			<link rel="self" href="http://www.adambyrtek.net/feed"/>
			<id>http://www.adambyrtek.net/feed</id>
			<updated>2008-04-24T22:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">New Banana and some mussings on tools</title>
		<link href="http://www.andybrandt.net/?p=238"/>
		<id>http://www.andybrandt.net/?p=238</id>
		<updated>2008-03-04T20:49:52+00:00</updated>
		<content type="html">&lt;p&gt;We have released a new version of our on-line hosted Scrum tool last week - the &lt;a href=&quot;http://www.bananascrum.com/&quot;&gt;Banana Scrum&lt;/a&gt;. The most important addition is, of course, the automatic registration form, but we also improved the way in which the user interface works. We start to get ideas from our users, who generally like the tool but will undoubtedly help us make it better. &lt;/p&gt;
&lt;p&gt;Which is good, since I think there is a definite need for a simple, on-line tool to assist agile teams in their work. Which leads me to another topic - resistance to any such tools. When someone asked about a tool for Scrum on the &lt;a href=&quot;http://groups.yahoo.com/group/scrumdevelopment/messages&quot;&gt;Yahoo Scrum group&lt;/a&gt; there was a bunch of answers advising not to use any tools - use a wall with velcro attached index cards or, at the very least, Excel. &lt;/p&gt;
&lt;p&gt;Agile community in general and Scrum community in particular seems to be very attached to &amp;#8220;good old&amp;#8221; physical artifacts, like index cards, hand-drawn burndowns, hand sorted backlogs etc. I can respect that but I&amp;#8217;m a completely different person - I&amp;#8217;m a &amp;#8220;paperless guy&amp;#8221;.&lt;/p&gt;
&lt;p&gt;The only thing I still prefer on paper is books. Hand drawn brundowns can be nice if everyone sits in the same room from 9 to 5, but &lt;a href=&quot;http://www.codesprinters.com/&quot;&gt;we&lt;/a&gt; have a much more relaxed atmosphere - everyone has to be in for the Daily Scrum but otherwise people can work from where they want when they want. Whiteboard is great for sketching things or making notes during a meeting but I don&amp;#8217;t think it is good to make it a permanent repository for anything. I think if we work with computers and systems and web apps we should use them. How credible we are telling other people our applications can save their business if we stick to index cards and velcro?&lt;/p&gt;
&lt;p&gt;So, I don&amp;#8217;t like it when some agile gurus look down us, paperless guys, when we confess we use software tools to manage our projects rather than walls, cards and boards. I don&amp;#8217;t think it is a good idea to be too dogmatic about tools, I agree with that, but it also applies to the old paraphernalia of the paper age.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Subversion Scripts for Finder</title>
		<link href="http://www.adambyrtek.net/2008/02/24/subversion-scripts-for-finder/"/>
		<id>http://www.adambyrtek.net/2008/02/24/subversion-scripts-for-finder/</id>
		<updated>2008-02-24T21:43:02+00:00</updated>
		<content type="html">&lt;p&gt;&lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; is one of the basic tools in my daily work. I know, distributed version control is more &lt;em&gt;en vogue&lt;/em&gt; those days, but I would argue that for personal use and small teams Subversion is still a reasonable choice&lt;sup&gt;&lt;a href=&quot;http://www.adambyrtek.net/feed#note1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt; &amp;#8212; it is very popular, flexible and there are many additional tools available.&lt;/p&gt;
&lt;p&gt;About a year ago, when I started to play with my first Mac, I was looking for Subversion tools that can integrate smoothly with Finder &amp;#8212; the standard Mac OS X file manager. To my surprise I couldn&amp;#8217;t find anything useful, only &lt;a href=&quot;http://scplugin.tigris.org/&quot;&gt;SCPlugin&lt;/a&gt; which didn&amp;#8217;t work at that time, and as far as I know is still somehow buggy. So I decided to write my own set of scripts, as an excuse to play with AppleScript &amp;#8212; a funny high-level scripting language that can speak with Mac applications (including Finder) over simple interfaces called &lt;em&gt;dictionaries&lt;/em&gt;, not surprisingly consisting of nouns (objects) and verbs (methods). This custom set of scripts had been so useful to me (especially when invoked from Quicksilver) that I decided to release it publicly, starting a small open source project.&lt;/p&gt;
&lt;p&gt;Recently I&amp;#8217;ve released version 1.2 of the scripts, including support for Copy, Move and Checkout operations, with improved Leopard and MacPorts support. The release was also a good excuse to make some adjustments to &lt;a href=&quot;http://svn-finder.sourceforge.net/&quot;&gt;the project page&lt;/a&gt; and publish &lt;a href=&quot;http://svn-finder.sourceforge.net/screencast-usage.html&quot;&gt;a screencast&lt;/a&gt; showing how to use the scripts. Judging from the download statistics and the feedback I get, people find the project useful, so if you are a Mac user consider &lt;a href=&quot;http://svn-finder.sourceforge.net/&quot;&gt;giving it a try&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;&amp;#8212;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;note1&quot;&gt;&lt;/a&gt;&lt;sup&gt;[1]&lt;/sup&gt; But not for projects with many independent branches of development &amp;#8212; branching and merging sucks in Subversion (it will be improved in Subversion 1.5, which is now in beta). Linus&amp;#8217; critical opinion on Subversion is well known, and I don&amp;#8217;t claim it is the best choice for large open source projects (though many such projects use it).&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sharethis.com/item?&amp;amp;wp=2.3.3&amp;amp;publisher=d991b43e-129e-4dd8-83a1-2050bced0b10&amp;amp;title=Subversion+Scripts+for+Finder&amp;amp;url=http%3A%2F%2Fwww.adambyrtek.net%2F2008%2F02%2F24%2Fsubversion-scripts-for-finder%2F&quot;&gt;ShareThis&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Sceptical Point of View</name>
			<uri>http://www.adambyrtek.net</uri>
		</author>
		<source>
			<title type="html">Adam Byrtek</title>
			<subtitle type="html">Sceptical Point of View</subtitle>
			<link rel="self" href="http://www.adambyrtek.net/feed"/>
			<id>http://www.adambyrtek.net/feed</id>
			<updated>2008-04-24T22:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">The choice</title>
		<link href="http://www.andybrandt.net/?p=237"/>
		<id>http://www.andybrandt.net/?p=237</id>
		<updated>2008-02-18T01:31:58+00:00</updated>
		<content type="html">&lt;p&gt;On &lt;a href=&quot;http://www.linkedin.com&quot;&gt;LinkedIn&lt;/a&gt; someone asked this question:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;How do you deal with the project requesters that are asking you for a project estimate before you get all your questions answered? Would you just ignore them and loose the project or go ahead and earn a client?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This is indeed a problem all of us in the software development business face. The question is indeed what to do in such a situation and it  boils down to following three choices a service provider has:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;rip the client off - add all the uncertainties, add the industry standard 25% and produce a bid - then do it as fast and cheap as possible and profit - that&amp;#8217;s probably what _most_ companies do,&lt;/li&gt;
&lt;li&gt;risk your money - to win the bid do all the above but not add 25% but rather subtract it, so that you&amp;#8217;re cheapest thus winning the bid, then kick the project as fast out of the door as you can compromising on everything your client being ignorant in technology won&amp;#8217;t be able to tell - namely quality (do spaghetti code, do it ugly, test only positive paths and forget unit testing etc.),&lt;/li&gt;
&lt;li&gt;tell the truth. That is - the client he won&amp;#8217;t get anything solid with what he has, just lies, assumptions etc. However, for whatever amount he can spend he can get the most important features he needs with solid quality. If his site would be a success he can add nice-haves later on. Ask the client to make a list of them, discuss them, tell him that in one short iteration one or two will be up &amp;#038; running. Be honest and cooperative. It&amp;#8217;s not a guarantee of success, but well&amp;#8230; this is what this option is all about.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Everyone who is approached by such a client makes this choice. The problem is that typically such clients don&amp;#8217;t like the third option, so they fall for the people choosing the other two. The results we all known - poorly designed sites, unmaintainable code or - worst - lost time and money. &lt;/p&gt;
&lt;p&gt;What &lt;a href=&quot;http://www.codesprinters.com&quot;&gt;we&lt;/a&gt; follow is of course the third option.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Banana Scrum</title>
		<link href="http://www.andybrandt.net/?p=236"/>
		<id>http://www.andybrandt.net/?p=236</id>
		<updated>2008-02-10T23:00:20+00:00</updated>
		<content type="html">&lt;p&gt;Another project that we have been working on is now available for preview. This time it is a simple tool for managing the Scrum process called &amp;#8220;Banana Scrum&amp;#8221;. &lt;/p&gt;
&lt;p&gt;You can log in to the preview installation by following &lt;a href=&quot;http://banana.codesprinters.com/&quot;&gt;this link&lt;/a&gt; and using the name &amp;#8220;admin&amp;#8221; and password &amp;#8220;test&amp;#8221;. You can play with the application as much as you want - it works on a copy of the test database that is regularly refreshed, so you can move and delete and edit whatever you like.&lt;/p&gt;
&lt;p&gt;This project was born out of our frustration with ScrumWorks. It was the application we have used for the most of last year, because it was the only free and decent Scrum software around when I went looking for it in January 2007. However, it had many serious limitations, exorbitant pricing for the &amp;#8220;Pro&amp;#8221; version which added basically access rights for user (not needed for small teams IMHO) and was done as a Java app - a design decision I couldn&amp;#8217;t understand, since there is absolutely nothing in there that could not have been done with an interactive, AJAX web app.&lt;/p&gt;
&lt;p&gt;That is exactly what we did - our little Banana is done fully in Ruby on Rails, works great with most browsers and supports interactive features like in-place editing, drag and drop or  a nice, interactive burndown chart. As of now it is pretty useful and - as it supports multiple projects - we use it for our own work.&lt;/p&gt;
&lt;p&gt;We hope to add more features soon and possibly some day make it available to the world. If you&amp;#8217;d be interested in trying it already - drop me a line.&lt;/p&gt;
&lt;p&gt;As for the name&amp;#8230; well, there was a competition in the team and Tomek Paczkowski won it (and a bag of bananas) with this proposal.&lt;/p&gt;</content>
		<author>
			<name>Andy</name>
			<uri>http://www.andybrandt.net</uri>
		</author>
		<source>
			<title type="html">Andy's Mind</title>
			<subtitle type="html">A stream in the sea...</subtitle>
			<link rel="self" href="http://www.andybrandt.net/?feed=atom"/>
			<id>http://www.andybrandt.net/?feed=atom</id>
			<updated>2008-11-04T11:45:03+00:00</updated>
			<rights type="html">Copyright 2007</rights>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Trivial accessors and uniform access</title>
		<link href="http://www.adambyrtek.net/2008/02/09/trivial-accessors-and-uniform-access/"/>
		<id>http://www.adambyrtek.net/2008/02/09/trivial-accessors-and-uniform-access/</id>
		<updated>2008-02-09T17:04:07+00:00</updated>
		<content type="html">&lt;p&gt;Some tend to think that Java is a synonym of object orientation done right, some even don&amp;#8217;t know other alternatives. But it was always unnatural to me that most of Java classes start their existence with plenty of boilerplate code like this&lt;sup&gt;&lt;a href=&quot;http://www.adambyrtek.net/feed#note1&quot;&gt;[1]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;java&quot;&gt;&lt;span&gt;public&lt;/span&gt; &lt;span&gt;class&lt;/span&gt; Money &lt;span&gt;&amp;#123;&lt;/span&gt;
    &lt;span&gt;private&lt;/span&gt; &lt;span&gt;double&lt;/span&gt; amount;
&amp;nbsp;
    &lt;span&gt;public&lt;/span&gt; &lt;span&gt;double&lt;/span&gt; getAmount&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;#123;&lt;/span&gt;
        &lt;span&gt;return&lt;/span&gt; &lt;span&gt;this&lt;/span&gt;.&lt;span&gt;amount&lt;/span&gt;;
    &lt;span&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span&gt;public&lt;/span&gt; &lt;span&gt;void&lt;/span&gt; setAmount&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;double&lt;/span&gt; amount&lt;span&gt;&amp;#41;&lt;/span&gt; &lt;span&gt;&amp;#123;&lt;/span&gt;
        &lt;span&gt;this&lt;/span&gt;.&lt;span&gt;amount&lt;/span&gt; = amount;
    &lt;span&gt;&amp;#125;&lt;/span&gt;
&lt;span&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This is a lot of code to write just to define one single property, a code that is mostly meaningless. But in Java you have to introduce getters and setters from the very beginning, or it will bite you back in the future. It clearly contradicts with the &lt;a title=&quot;Don't Repeat Yourself&quot;&gt;DRY&lt;/a&gt; principle and a preference for evolutionary design, which discourages writing code that is useless right now, but may (or may not) be needed in the future. Things get even worse when such code is created automatically by some code generation tool.&lt;/p&gt;
&lt;p&gt;In theory your methods should always have some meaningful behaviour, and your should &lt;a href=&quot;http://www.javaworld.com/javaworld/jw-09-2003/jw-0905-toolbox.html&quot;&gt;avoid trivial accessors&lt;/a&gt; in the public interface. This is a good rule of a thumb, and when it&amp;#8217;s broken, this is often a symptom of some wrong design decisions. Though in many practical situations you simply need trivial accessors without any behaviour, for example when mapping relational databases to objects&lt;sup&gt;&lt;a href=&quot;http://www.adambyrtek.net/feed#note2&quot;&gt;[2]&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;The whole problem boils down to the fact that in Java you can&amp;#8217;t apply the &lt;a href=&quot;http://en.wikipedia.org/wiki/Uniform_access_principle&quot;&gt;&lt;em&gt;Uniform Access Principle&lt;/em&gt;&lt;/a&gt;, which states that users of a class shouldn&amp;#8217;t care whether a given service is implemented through storage (property) or computation (method). But the syntax for accessing a property and calling a method in Java is completely different, and you can&amp;#8217;t start with a simple public property and change it into a method later when it becomes necessary, keeping the public interface intact. So you are told not to use public properties at all and always define trivial accessors &lt;q&gt;just in case&lt;/q&gt;.&lt;/p&gt;
&lt;p&gt;I would like to contrast this approach with two dynamic languages, Python and Ruby, each presenting a different point of view on the problem we discuss.&lt;/p&gt;
&lt;p&gt;In Ruby — which has been inspired by Smalltalk — properties (instance variables) are always private, and the only way to interact with an object is by sending &lt;em&gt;messages&lt;/em&gt; to it. This is similar to a method call, but the meaning is slightly different, and there are certain conventions to make the syntax nicer. You can&amp;#8217;t access instance variables outside the class, so the following code&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;ruby&quot;&gt;cash = Money.&lt;span&gt;new&lt;/span&gt;
cash.&lt;span&gt;amount&lt;/span&gt; = &lt;span&gt;10&lt;/span&gt;
&lt;span&gt;puts&lt;/span&gt; cash.&lt;span&gt;amount&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;is actually the same as sending messages &lt;code&gt;amount=&lt;/code&gt; and &lt;code&gt;amount&lt;/code&gt; to the instance, which can be written explicitly as&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;ruby&quot;&gt;cash = Money.&lt;span&gt;new&lt;/span&gt;
cash.&lt;span&gt;amount&lt;/span&gt;=&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;10&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;
&lt;span&gt;puts&lt;/span&gt; cash.&lt;span&gt;amount&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;This means that Ruby has an uniform syntax for attribute access, but you still have to write message handling methods inside the class. This is where &lt;code&gt;attr_accessor&lt;/code&gt; comes in handy (along with its siblings &lt;code&gt;attr_reader&lt;/code&gt; and &lt;code&gt;attr_writer&lt;/code&gt;), avoiding duplication and making the code more terse. The following piece of code&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;ruby&quot;&gt;&lt;span&gt;class&lt;/span&gt; Money
  attr_accessor &lt;span&gt;:amount&lt;/span&gt;
&lt;span&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;has the same effect as&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;ruby&quot;&gt;&lt;span&gt;class&lt;/span&gt; Money
  &lt;span&gt;def&lt;/span&gt; amount
    &lt;span&gt;@amount&lt;/span&gt;
  &lt;span&gt;end&lt;/span&gt;
&amp;nbsp;
  &lt;span&gt;def&lt;/span&gt; amount=&lt;span&gt;&amp;#40;&lt;/span&gt;value&lt;span&gt;&amp;#41;&lt;/span&gt;
    &lt;span&gt;@amount&lt;/span&gt; = value
  &lt;span&gt;end&lt;/span&gt;
&lt;span&gt;end&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When the class evolves and we would like to make accessors more complex (for example implement lazy load or caching) we can replace &lt;code&gt;attr_accessor&lt;/code&gt; with real methods, keeping external interface intact.&lt;/p&gt;
&lt;p&gt;Python takes a different approach than the message passing metaphor. It publicly exposes all attributes of an instance as &lt;em&gt;slots&lt;/em&gt; you can access freely. Inside such slot can be any object (in Pythonic sense of the word), including standard objects (integers, tuples, etc.) and methods. The client simply fetches object from the slot and either invokes it (if it is a callable) or uses its value directly — so the access is not uniform.&lt;/p&gt;
&lt;p&gt;To maintain an illusion of uniform access when refactoring a property into a method you can use the &lt;code&gt;property()&lt;/code&gt; function, passing new getters and setters as arguments. This means you can start with a class as simple as&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;python&quot;&gt;&lt;span&gt;class&lt;/span&gt; Money&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;object&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;:
    &lt;span&gt;def&lt;/span&gt; &lt;span&gt;__init__&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;self&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;:
        &lt;span&gt;self&lt;/span&gt;.&lt;span&gt;amount&lt;/span&gt; = &lt;span&gt;0&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Later, when you need some more complex accessors, you can refactor the class with &lt;code&gt;property()&lt;/code&gt;, maintaining the same external interface&lt;/p&gt;

&lt;div class=&quot;wp_syntax&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;pre class=&quot;python&quot;&gt;&lt;span&gt;class&lt;/span&gt; Money&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;object&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;:
    &lt;span&gt;def&lt;/span&gt; _get_amount&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;self&lt;/span&gt;&lt;span&gt;&amp;#41;&lt;/span&gt;:
        &lt;span&gt;# Getter code here&lt;/span&gt;
        &lt;span&gt;return&lt;/span&gt; &lt;span&gt;self&lt;/span&gt;.&lt;span&gt;amount&lt;/span&gt;
&amp;nbsp;
    &lt;span&gt;def&lt;/span&gt; _set_amount&lt;span&gt;&amp;#40;&lt;/span&gt;&lt;span&gt;self&lt;/span&gt;, value&lt;span&gt;&amp;#41;&lt;/span&gt;:
        &lt;span&gt;# Setter code here&lt;/span&gt;
        &lt;span&gt;self&lt;/span&gt;.&lt;span&gt;amount&lt;/span&gt; = value
&amp;nbsp;
    amount = &lt;span&gt;property&lt;/span&gt;&lt;span&gt;&amp;#40;&lt;/span&gt;_get_amount, _set_amount&lt;span&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;As you see the code is not as clear as with Ruby, and there are some other problems with this approach, but it is possible to maintain uniform access in Python.&lt;/p&gt;
&lt;p&gt;I believe obeying the Uniform Access Principle is the right way of solving the accessor problem, and both Ruby and Python handle this quite well. If you see trivial &lt;code&gt;getProperty()&lt;/code&gt; and &lt;code&gt;setProperty()&lt;/code&gt; methods in Python or Ruby code, stay aware. This probably means the code has been written by a programmer who is unable to change his mindset.&lt;/p&gt;
&lt;p&gt;&amp;#8212;&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;note1&quot;&gt;&lt;/a&gt;&lt;sup&gt;[1]&lt;/sup&gt; To convince you this is not a fake example I did a quick search on the Web, finding &lt;a href=&quot;http://cs.nyu.edu/courses/spring03/V22.0474-001/lectures/junit/Money.java&quot;&gt;this piece of code&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;note2&quot;&gt;&lt;/a&gt;&lt;sup&gt;[2]&lt;/sup&gt; Martin Fowler on page 155 of his &lt;a title=&quot;Patterns of Enterprise Application Architecture&quot;&gt;PEAA&lt;/a&gt; book gives example of a class to map a simple person table. He writes &lt;q&gt;it starts with data fields and accessors&lt;/q&gt; and then gives an example of over twenty lines of boilerplate accessor code.&lt;/p&gt;
&lt;p&gt;PS. Thanks to Tomek for reviewing the first draft of this article.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://sharethis.com/item?&amp;amp;wp=2.3.3&amp;amp;publisher=d991b43e-129e-4dd8-83a1-2050bced0b10&amp;amp;title=Trivial+accessors+and+uniform+access&amp;amp;url=http%3A%2F%2Fwww.adambyrtek.net%2F2008%2F02%2F09%2Ftrivial-accessors-and-uniform-access%2F&quot;&gt;ShareThis&lt;/a&gt;&lt;/p&gt;</content>
		<author>
			<name>Sceptical Point of View</name>
			<uri>http://www.adambyrtek.net</uri>
		</author>
		<source>
			<title type="html">Adam Byrtek</title>
			<subtitle type="html">Sceptical Point of View</subtitle>
			<link rel="self" href="http://www.adambyrtek.net/feed"/>
			<id>http://www.adambyrtek.net/feed</id>
			<updated>2008-04-24T22:30:02+00:00</updated>
		</source>
	</entry>

	<entry xml:lang="en">
		<title type="html">Sharing knowledge inside a team</title>
		<link href="http://www.adambyrtek.net/2008/02/04/sharing-knowledge-inside-a-team/"/>
		<id>http://www.adambyrtek.net/2008/02/04/sharing-knowledge-inside-a-team/</id>
		<updated>2008-02-04T20:33:06+00:00</updated>
		<content type="html">&lt;p&gt;What I like about being a programmer is that you have to constantly learn new things — either new languages, tools and frameworks that make your job easier (and more fun), or interesting theoretical concepts that stretch your mind, a kind of mental yoga. Being a math graduate I can tell that even if this knowledge is not instantly useful, it will probably pay off in the future.&lt;/p&gt;
&lt;p&gt;There are different ways for programmers to gather knowledge, most have something to do with reading. But, as skilled craftsmen have known for centuries, the best way to learn is from a person who is willing to share his real-life experiences, tricks and habits. For example skimming through a cryptic Vim reference sheet or reading even t