<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>KIV spot - software, games and travel</title>
	<atom:link href="http://www.kivspot.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.kivspot.com</link>
	<description>software development, management, operating systems, development methodologies, games, travel</description>
	<lastBuildDate>Sun, 19 Jun 2011 16:51:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Play. Fail. Start Over.</title>
		<link>http://www.kivspot.com/play-fail-start-over?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=play-fail-start-over</link>
		<comments>http://www.kivspot.com/play-fail-start-over#comments</comments>
		<pubDate>Sat, 18 Jun 2011 23:02:02 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Management]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.kivspot.com/?p=138</guid>
		<description><![CDATA[&#8220;I have not failed 700 times. I have not failed once. I have succeeded in proving that those 700 ways will not work. When I have eliminated the ways that will not work, I will find the way that will &#8230;<p class="read-more"><a href="http://www.kivspot.com/play-fail-start-over">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<div>&#8220;I have not failed 700 times. I have not failed once. I have succeeded in proving that those 700 ways will not work. When I have eliminated the ways that will not work, I will find the way that will<br />
work.&#8221; Thomas Edison&nbsp;</p>
<p>One of the things we learn in our games as kids is that success comes after some failures. This is particularly true for competitive games. Losing in a game as a kid is no big deal, and every time you play, <strong>no matter if you win or lose you get better at it</strong>. This freedom enables us to explore different approaches to the game and be creative. Then, moving into education, the kids are put into a situation where they are expected to succeed in everything, and failure sticks with them even if they eventually learn from it (e.g. bad marks still weight your average down even if you eventually learned the thing). And then, moving into the workplace, where <strong>in many companies failure is taboo</strong>. Many companies try to hide their failures, and many company cultures make the individual very uncomfortable with the slightest failure. Few companies openly declare their failures and move on (http://www.yousaytoo.com/google-wave-terminated/356998).</p>
<p>My point in all that is simple &#8211; in order to create successful, innovative products the company culture should <strong>tolerate failure</strong>.</p>
<p>Let me try to explain the above in just one example. Consider an engineer assigned a task to build something. For the first time in history of mankind, he starts with the wrong approach. It might be a poor technology choice, an unforeseen complication or simply some bad design decisions. Halfway through the process, he realizes this, and<strong> sees a better way of building the artifact, but he has already &#8220;wasted&#8221; several months</strong> (they are not actually wasted, he gained a lot of insight into the problem area). Now he is faced with two options:</p>
<ol>
<li>Go back to his boss, explain the situation, explain the pros (better product, cheaper maintenance, etc.) explain the cons (product will be delivered later) and make his case for <strong>steering the project into the right direction</strong></li>
<li>Continue on the wrong (ok, at least sub-optimal) path and <strong>use the necessary amount of duct tape to deliver a working, but poor product</strong> which will drag the organization into a lot of maintenance costs in the long run</li>
</ol>
<p>There is no universal truth on the above decision. I am not claiming that investing more time for a better product is always the right decision. Sometimes the time to market is just as critical as is quality. Sometimes, the boss is pointy-haired.</p>
<p><img class="alignnone size-full wp-image-147" title="play_fail" src="http://www.kivspot.com/wp-content/uploads/2011/06/play_fail.gif" alt="" width="640" height="199" /><br />
But if the organization has a culture in which failure is not tolerated, or at least frowned upon, the boss might never get a chance to pick option one.</p>
<p>Its even worse, since <strong>simply the fear of failure stifles innovation</strong>. If the designers and engineers don&#8217;t even consider failing as an option, they will <strong>not explore new areas or take bold unorthodox decisions</strong>. But these bold decisions are usually what you need to create an exceptional product.</p>
<p>Successful product design and innovation involves a lot of trial and error, just as games and scientific research do. And while we don&#8217;t make a big deal if our kids lose in a competitive game, or if our scientists spend their budget on a dead-end research, we create organizations in which failure is stigmatized.</p>
<p>The best thing you can do if you want your organization to deliver good and innovative products is to <strong>create a company culture in which it is OK to fail</strong>. In which everyone involved in the process is not afraid to explore alternatives and realizes that great success comes after some failures.</p>
</div>
<p>&nbsp;</p>
<g:plusone href="http://www.kivspot.com/play-fail-start-over"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fplay-fail-start-over&amp;title=Play.%20Fail.%20Start%20Over." id="wpa2a_2"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/play-fail-start-over/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OS X Weekly</title>
		<link>http://www.kivspot.com/os-x-weekly?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=os-x-weekly</link>
		<comments>http://www.kivspot.com/os-x-weekly#comments</comments>
		<pubDate>Wed, 26 Dec 2007 18:21:55 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.kivspot.com/os-x-weekly</guid>
		<description><![CDATA[I have been reading OS Weekly for a while, but today I read an article so ridiculous there they might as well rename it to OS X Weekly. The author (Brandon Watts) makes the claim that Leopard is better than &#8230;<p class="read-more"><a href="http://www.kivspot.com/os-x-weekly">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>I have been reading <a href="http://www.osweekly.com/">OS Weekly</a> for a while, but today I read <a href="http://www.osweekly.com/index.php?option=com_content&amp;task=view&amp;id=2720&amp;Itemid=449">an article</a> so ridiculous there they might as well rename it to OS <strong>X</strong> Weekly. The author (Brandon Watts) makes the claim that Leopard is better than Vista because it has no activation. It seems that <strong>he was under the illusion that Apple is producing and selling and operating system</strong>. What the author never realized is that <strong>OS X is a firmware for Apple hardware</strong>, and they don&#8217;t care on how many Macs you install it, as long as you pay them for the hardware.</p>
<p>Here is one ridiculous quote:</p>
<p>&#8220;Is the point here that people with multiple Macs in their home should buy the single-user copy of Leopard and install it on every Mac in sight? Obviously not. Apple has trusted us to use the OS as they have intended, and to be quite honest, that is flattering.&#8221;</p>
<p>Flattering only if one does not realize that <strong>Apple cares about selling the hardware</strong>, and you can&#8217;t install the Leopard firmware on any other hardware.</p>
<p>Claiming that OS X is better than any real OS because it is easier and free to install is like claiming that the &#8220;OS&#8221; on a Nokia mobile phone is the best, since it is free, easy and stable.</p>
<p><strong>I know that Apple currently is offering the best package (hardware + software)</strong> and the stability and ease of use of their firmware is mostly because it sits on a <strong>fixed hardware</strong> (hence the mobile phone analogy). But one must be really narrow-minded to not be able to see that it is not the firmware (so called OS) that is on its own making it great. It is the fact that it all comes from one vendor. <strong>If Apple ever attempt to make an OS that you can install on any hardware, it will definitely not be better</strong> (I am personally sure it will be much worse).</p>
<g:plusone href="http://www.kivspot.com/os-x-weekly"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fos-x-weekly&amp;title=OS%20X%20Weekly" id="wpa2a_4"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/os-x-weekly/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing poker on Nokia N810</title>
		<link>http://www.kivspot.com/playing-poker-on-nokia-n810?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=playing-poker-on-nokia-n810</link>
		<comments>http://www.kivspot.com/playing-poker-on-nokia-n810#comments</comments>
		<pubDate>Thu, 13 Dec 2007 16:16:05 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Photos]]></category>
		<category><![CDATA[Poker]]></category>

		<guid isPermaLink="false">http://www.kivspot.com/playing-poker-on-nokia-n810</guid>
		<description><![CDATA[This week I finally got my hands onto Nokia N810. It is really proven to be the device that will replace my laptop for non-business travel. One of the important tests for the N810 was how suitable is it to &#8230;<p class="read-more"><a href="http://www.kivspot.com/playing-poker-on-nokia-n810">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>This week I finally got my hands onto <a href="http://www.nseries.com/index.html#l=products,n810">Nokia N810</a>. It is really proven to be the device that will replace my laptop for non-business travel.</p>
<p>One of the important tests for the N810 was <strong>how suitable is it to play poker on</strong>. I am currently mostly playing on <a href="http://www.pokerroom.com">PokerRoom</a>, so this is what I used for the test.</p>
<p>I was secretly hoping that PokerRoom&#8217;s web client will work on the internet tablet, but unfortunately it does not &#8211; the <strong>browser does not support Java applets</strong>. So the approach I used is <strong>remote desktop to my home Vista box</strong>, where I ran the poker desktop client.</p>
<p>The PokerRoom client is fixed at 800&#215;600 window size, while the Nokia N810 has a 800&#215;480 display. I knew that I will not fit the entire window, and wanted to check if it was still usable. I was very pleased to find out that the lower 120 pixels of the client are not a problem at all for finding and joining games. The table view is a problem, since the betting buttons are lower than the 480th pixel. If you switch to mini-tables though (ugly!) is fits perfectly well, even leaves room for the table statistics in the background.</p>
<p>Here are some photos of the experience. I could have taken screen shots, but these photos illustrate better how the experience looks on the real device.</p>
<p>Remote desktop to Vista:</p>
<p><a href="http://www.kivspot.com/wp-content/uploads/2007/12/big_desktop.jpg" title="desktop.jpg"><img src="http://www.kivspot.com/wp-content/uploads/2007/12/desktop.jpg" alt="desktop.jpg" /></a></p>
<p>Tournaments screen &#8211; t<strong>he big drawback here is that you don&#8217;t get to see you bank status</strong> &#8211; it is in the status bar at the bottom. You just need to know how much money you have :)</p>
<p><a href="http://www.kivspot.com/wp-content/uploads/2007/12/big_tournaments.jpg" title="tournaments.jpg"><img src="http://www.kivspot.com/wp-content/uploads/2007/12/tournaments.jpg" alt="tournaments.jpg" /></a></p>
<p>Tournament screen</p>
<p><a href="http://www.kivspot.com/wp-content/uploads/2007/12/big_tournament.jpg" title="tournament.jpg"><img src="http://www.kivspot.com/wp-content/uploads/2007/12/tournament.jpg" alt="tournament.jpg" /></a></p>
<p>Table view &#8211; notice that the part of the tournament window in the background shows the statistics and position. This is very cool for multi-table tournaments.</p>
<p><a href="http://www.kivspot.com/wp-content/uploads/2007/12/big_table.jpg" title="table.jpg"><img src="http://www.kivspot.com/wp-content/uploads/2007/12/table.jpg" alt="table.jpg" /></a></p>
<p>The conclusion so far is that the <strong>Nokia N810 is perfect for playing poker</strong> when on vacation somewhere where WiFi is available (and that is almost everywhere nowadays). No more binging a heavy laptop, just so that you can play a tourney or two some evening.</p>
<p>As soon as I make my <a href="http://www.fulltiltpoker.com">Full Tilt Poker</a> account I will report on how playable it is from the Nokia N810.</p>
<g:plusone href="http://www.kivspot.com/playing-poker-on-nokia-n810"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fplaying-poker-on-nokia-n810&amp;title=Playing%20poker%20on%20Nokia%20N810" id="wpa2a_6"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/playing-poker-on-nokia-n810/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog action day &#8211; environment</title>
		<link>http://www.kivspot.com/blog-action-day-environment?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=blog-action-day-environment</link>
		<comments>http://www.kivspot.com/blog-action-day-environment#comments</comments>
		<pubDate>Mon, 15 Oct 2007 15:55:34 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://www.kivspot.com/blog-action-day-environment</guid>
		<description><![CDATA[Well, its blog action day so today&#8217;s post is about the environment. I was really happy to join this blog action day, since it is a topic I feel strong about. The problem I am one of the people who &#8230;<p class="read-more"><a href="http://www.kivspot.com/blog-action-day-environment">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p> <a href="http://blogactionday.org"> <img src="http://blogactionday.org/images/action_468x60.jpg" alt="Bloggers Unite - Blog Action Day" /> </a></p>
<p>Well, its <a href="http://blogactionday.org">blog action day</a> so today&#8217;s post is about the environment. I was really happy to join this blog action day, since it is a topic I feel strong about.</p>
<h1>The problem</h1>
<p>I am one of the people who believe that the biggest challenge that we face with environmental sustainability is <strong>overpopulation</strong>. Everything boils down to that, we are simply too many. I am confident that with time, thanks to scientific advances, we will use to recycle more, use cleaner fuel, etc. But this will never work if the population continues its growth. If we could make a parallel between a person&#8217;s development and mankind, we are now past the time we need to grow physically, and we are <strong>starting to get obese</strong>. <strong>And we are suffering exactly like an obese person</strong>.</p>
<p>Sure, I go mad when I see someone leave his <strong>5 liter engine running on the street</strong> just so that air conditioning will work. I go mad when I see people using <strong>plastic bags for one shopping and throw them away</strong>. I go mad when people use <strong>huge trucks to move withing a city</strong>. I go mad when I see <strong>the piles of electronics</strong>, used just for several months and upgraded.</p>
<p>Even if all of the above changes, even if we use very economic vehicles, recycle as much as we can, this change only one thing&#8230; <strong>the number</strong>! The number how many people this planet can sustain. So my point is &#8211; no matter what we do, there is a certain number of people on the planet, above which we are&#8230; <strong>obese</strong>.</p>
<p>There is simply no way to stop using electronics, cars, etc., since this will stop progress. If we were to stop using these, why did we ever bother to go out of the caves, which was a pretty environment-friendly lifestyle. The only way to enjoy our creations and move forward without destroying the planet (before we leave it at least) is to get our own population under control.</p>
<h1>Where do we stand</h1>
<p><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/11/World_population_%28UN%29.svg/676px-World_population_%28UN%29.svg.png" /></p>
<p>Without being qualified, or prepared with numbers, I think that currently the population if far above the &#8220;optimal&#8221; number, considering the technologies we use. That is, for the rate at which we consume Earth&#8217;s resources, we are just too many.</p>
<p>I think it is inevitable that at some point the entire world will have birth control policies just as in the sci-fi movies. Europe has already realized this on its own, and has <strong>less than 2 children per couple</strong>. USA is just about 2 (2.1 to be exact). The rest of the world however is still behind on the issue, with the exception of China. <strong>China has set an example for implementing that</strong>. Sure, China&#8217;s policy might seem brutal and inhumane, but we better get used to that. Everyone witnessed what the &#8220;<strong><a href="http://geography.about.com/od/populationgeography/a/onechild.htm">one child policy</a></strong>&#8221; did for China.</p>
<h1>So what next?</h1>
<p>Mankind is obviously slow in taking this painful, but necessary step. Still, a country s GNP is a function of the population count, and <strong>no one wants to be first</strong>. Also, people themselves are not quite ready to feel not only a greedy individual, but a part of a bigger creature, and not do things that hurt the creature &#8220;mankind&#8221; in the long run. We are too used to living for today, and that must change. We must, as one, take the decision to go on a diet, no matter some cells will die in the process.</p>
<p>Until mankind is ready for that step, the main thing we can do is educate everyone we can to start thinking not only as an individual, but as part of something bigger. <strong>And that one should think not only for himself, but for the bigger creature mankind, that he is only a cell of</strong>.</p>
<g:plusone href="http://www.kivspot.com/blog-action-day-environment"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fblog-action-day-environment&amp;title=Blog%20action%20day%20%26%238211%3B%20environment" id="wpa2a_8"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/blog-action-day-environment/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hit and run software product design</title>
		<link>http://www.kivspot.com/hit-and-run-software-product-design?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=hit-and-run-software-product-design</link>
		<comments>http://www.kivspot.com/hit-and-run-software-product-design#comments</comments>
		<pubDate>Sat, 22 Sep 2007 20:52:05 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.kivspot.com/hit-and-run-software-product-design</guid>
		<description><![CDATA[Another week of frustrating product design meetings left me thinking what can one do when faced with the equivalent of hit and run management applied to designing software. Generally a hit and run product designer will leave the design process &#8230;<p class="read-more"><a href="http://www.kivspot.com/hit-and-run-software-product-design">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Another week of frustrating product design meetings left me thinking what can one do when faced with the equivalent of <a href="http://http://www.joelonsoftware.com/articles/fog0000000072.html"><strong>hit and run management</strong></a> applied to <strong>designing software</strong>. Generally <strong>a hit and run product designer will leave the design process to someone else</strong>, or a group of people, but will <strong>randomly interfere with ideas, insist on them,</strong> even if they turn the existing design upside-down, and leave for some time, until he is ready for another hit. I&#8217;ve had experience with several such cases, and I never feel I have the right solution for the problem.</p>
<table align="left">
<tr>
<td><img src="http://www.kivspot.com/wp-content/uploads/2007/09/hitnrun.jpg" alt="Hit and run" style="margin-right: 5px" /></td>
</tr>
<tr>
<td align="center">Image courtesy of <a href="http://jaykinney.com/" target="_blank">Jay Kinney</a></td>
</tr>
</table>
<h1>What makes a hit and run software designer</h1>
<p>Generally hit and run product designers fall into two categories &#8211; <strong>chaotic</strong> and <strong>busy</strong>. The chaotic ones generally don&#8217;t have a complete, coherent idea about the design, they just have strong feeling about a specific features/screens/workflows (sometims even contradicting). The busy ones are good designers, that think that they have the entire design in their head, but are too busy or undisciplined to put that to writing. Although for different reasons, both types behave the same and seem to do equal damage.</p>
<h1>Does this work, really?</h1>
<p>Well, yes and no. It can work in the short run really well, if the person is motivated, energetic and charismatic leader. I have seen a case of a software built exactly like that &#8211; with almost no written specification,<strong> a single leader hit and run designing and managing directly every developer</strong>. If he knows very well what he is doing, and invests a lot of energy the result is a pretty fast time to market. Cutting off that 30% for design and planning makes it somewhat faster to get a first version out. <strong>At some point however, the result of the hit and run management and design surfaced</strong>. The product was successful and out there, when it turned out that the bug count was constant. The bug database always had about the same amount of bugs. There was no specification to turn to, so a lot of uninformed patching took place. Also, getting faster to market meant adding features to a buggy product, just the opposite of the zero-defect policy. <strong>For almost two years the bug count was constant</strong>. Developers felt as if they were beating a dead horse, since at some point it <strong>didn&#8217;t make any difference weather you worked your butt off, or spent the week browsing the internet &#8211; the bug count at the end of the day would be the same</strong>. Not that bugs were not fixed &#8211; they were. But<strong> every bug-fix either revealed, or caused another one</strong>. After years the dead horse was re-factored into a new, well designed and maintainable software.</p>
<h1>We&#8217;ve seen hit and run management, its not that bad!</h1>
<p>It is not. Hit and run management is not half as destructive as hit and run design. Hit and run managers will change priorities sometimes and make you re-arrange schedules, but at the end of the day they don&#8217;t have impact on the quality and maintainability of the code-base. Hit and run design however, <strong>results in a lot of redesign</strong> (in the early stages) or <strong>patches </strong>(in the later stages).</p>
<h1>What to do then?</h1>
<p>I don&#8217;t think I have a very creative answer to this yet, but I still have some useful advise.</p>
<p><strong>For chaotic types</strong>, which are usually not from engineering background, but know the target field very well, you will just need a lot of extra effort in the design phase. Just <strong>lock yourself with them in a conference room</strong>, and start writing the specification as they speak their random thoughts. It is up to you to structure the document, which will be really hard. You have to be alert, since <strong>the random feature they are just talking about can be in a total conflict with what they talked yesterday</strong>. Keep in mind they cannot think of the system as a whole, they can concentrate on just one screen/feature/work-flow at a time. When they come up with a contradiction, you should scroll the document back, point to them what they said yesterday and make them decide how to do both.</p>
<p>This will be a lengthy, painful process. <strong>At the end of the day you walk of with a signed off specification, and use it as a shield against all later &#8220;great ideas&#8221; that will impact the design and void months of work</strong>.</p>
<p><strong>For the busy type</strong> this does not work. You cannot lock yourself with them, since they are very busy. My usual reaction here is to turn into a real <strong>process Nazi</strong>, claiming it is impossible to proceed without a written, signed off specification down to the last detail. This really isn&#8217;t like me, since I prefer more relaxed and agile development process. Insisting on cumbersome, bureaucratic process is really bad for startup companies, which need to be quick and flexible. And startup companies are the place where you will find hit and run design most often. <strong>So this is just choosing the lesser of two evils, not really solving the problem</strong>.</p>
<p>If you are facing something like this, drop me a line or leave a comment, I think there has to be a better way :)</p>
<g:plusone href="http://www.kivspot.com/hit-and-run-software-product-design"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fhit-and-run-software-product-design&amp;title=Hit%20and%20run%20software%20product%20design" id="wpa2a_10"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/hit-and-run-software-product-design/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OS X virtualization &#8211; a double edged sword</title>
		<link>http://www.kivspot.com/mac-os-x-virtualization-a-double-edged-sword?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mac-os-x-virtualization-a-double-edged-sword</link>
		<comments>http://www.kivspot.com/mac-os-x-virtualization-a-double-edged-sword#comments</comments>
		<pubDate>Thu, 06 Sep 2007 22:43:50 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.kivspot.com/mac-os-x-virtualization-a-double-edged-sword</guid>
		<description><![CDATA[In my last post I mentioned how the raising popularity of virtual machines was working good for the popularity of Macs. The more I think about it though, the more it works the other way around also. I have been &#8230;<p class="read-more"><a href="http://www.kivspot.com/mac-os-x-virtualization-a-double-edged-sword">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>In my last post I <a href="http://www.kivspot.com/how-microsoft-won-the-api-war">mentioned</a> how the raising popularity of virtual machines was working good for the popularity of Macs. The more I think about it though, the more it works the other way around also. I have been recently checking out if some pieces of software I need have Mac ports. Without mentioning specific names, I am generally talking about thin clients to server-based services or games, which for some reason so far have had a Windows-only thin client.</p>
<p>I went to check out web sites and forums, and I was surprised how often the following discussion takes place in public forums (or blogs) between users and developers:</p>
<p>User: When will we have a Mac version?</p>
<p>Developers: Mac version is not planned for the moment.</p>
<p>User: Why? How is this possible??? You are loosing customers! And you will be losing more!!!</p>
<p>Developer: Uuugh&#8230; according to our statistics, <strong>we are not losing customers, they simply run our software in Parallels/VMware/Bootcamp</strong>.</p>
<p>It turns out that virtualization works against the pool of software for Mac growing. And we all agree that the best OS is the one that has the largest variety of software. So, as even though virtualization technology is helping Macs grow, it is also slowing down the native Mac software growth.</p>
<g:plusone href="http://www.kivspot.com/mac-os-x-virtualization-a-double-edged-sword"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fmac-os-x-virtualization-a-double-edged-sword&amp;title=Mac%20OS%20X%20virtualization%20%26%238211%3B%20a%20double%20edged%20sword" id="wpa2a_12"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/mac-os-x-virtualization-a-double-edged-sword/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Microsoft Won The API War on Windows only</title>
		<link>http://www.kivspot.com/how-microsoft-won-the-api-war?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-microsoft-won-the-api-war</link>
		<comments>http://www.kivspot.com/how-microsoft-won-the-api-war#comments</comments>
		<pubDate>Mon, 02 Jul 2007 20:40:39 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.kivspot.com/how-microsoft-won-the-api-war</guid>
		<description><![CDATA[Another release out of the door, and some time to put my thoughts in writing. Did Microsoft lose the API war? The title of this post is of course referring to the famous &#8220;HowMicrosoft Lost the API War&#8221; by Joel. &#8230;<p class="read-more"><a href="http://www.kivspot.com/how-microsoft-won-the-api-war">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Another release out of the door, and some time to put my thoughts in writing.</p>
<h1>Did Microsoft lose the API war?</h1>
<p>The title of this post is of course referring to the famous &#8220;<a href="http://www.joelonsoftware.com/articles/APIWar.html">HowMicrosoft Lost the API War</a>&#8221; by <a href="http://www.joelonsoftware.com/">Joel</a>. I kept going back to that article when we were porting our product to Vista, as well as trying some of my personal projects on Vista. The more I think about it, The Raymond Chen Camp in Microsoft is still strong, and the API war is far from lost. And this article does not indent to pick on Joel, it just uses his article (which was very true in 2004) as a base to make a point.</p>
<ul>
<li>Speculations in the article that Win32 will be <strong>replaced by WinFX or Avalon</strong> or whatever did not happen. Win32 is still there, still working fine. All the previous code I have tried worked seamlessly on Vista.</li>
<li>I still have <strong>not found a user application that worked on XP and does not work well on Vista</strong> (drivers and hardware &#8211; completely other story).</li>
<li>It took us about 2-3 weeks to get a product (involving a lot of complex kernel-mode drivers and system service) that worked on XP to work on Vista. As a comparison Panther to Tiger took six months. So <strong>Microsoft did really make it seamless to port even system software</strong>. User-mode software did not need any porting.</li>
</ul>
<h1>Who makes the best APIs?</h1>
<p>Also, apart from not losing backward compatibility, <strong>Microsoft are still kings at making their APIs developer-friendly</strong>.</p>
<p>Example &#8211; you want you application to make an HTTP request and get the result. Both Apple and Microsoft have an API (Apple calls its <strong>CFNetwork</strong>, MS calls theirs <strong>WinINet</strong>) for that. Ok, so you write you application to use the OS-supplied API for the task. But you have customers behind corporate firewalls, using proxies. The user has set its proxy setting in the system, and their browser is working fine, but you application is not. What to do?</p>
<p>Well Microsoft will advise you to simply call InternetOpen with INTERNET_OPEN_TYPE_PRECONFIG, which will make your application inherit the browser settings (direct or proxy). What do Apple suggest&#8230;. <a href="http://developer.apple.com/documentation/Networking/Conceptual/CFNetwork/CFHTTPAuthenticationTasks/chapter_6_section_2.html">this</a>! Tenths of lines of code against a simple parameter of a function.</p>
<p>This happened in a multi-platform project I managed. The Windows developer just took a glimpse at MSDN, added the flag and the proxy issue was forgotten on Windows. The Apple developer took almost half a day to understand the article, copy-paste the example and adapt it to his code. <strong>A big productivity win for Microsoft</strong>.</p>
<h1>Does it matter?</h1>
<p>Still, sadly, <strong>Joel was right about the outcome.</strong> Developers no longer care to learn new APIs from Redmond, and .NET is not very popular either. It is not because of the API war though. The API war played its part but what really mattered is the <strong>market</strong> and the <strong>widespread use of virtualization technology</strong>.</p>
<p>No matter how small the combined market of Linux and OS X is, companies don&#8217;t want to neglect that. These days you see more and more application sites offering OS X or Linux versions of their software, and more and more hardware vendors provide Linux drivers for their hardware. It is not a single OS world anymore. And this affects developers&#8217; choices of tools and languages. Joel was talking a lot about the backward compatibility and the old code. But how about new code? What will you choose today, if you are starting a brand new software? If possible of course you will choose a technology that <strong>does not limit you deployment abilities</strong>. If you ever have the choice of .NET over Java &#8211; you will choose Java, or regret it later when a customer says &#8220;We like you application a lot, but we are a Linux shop, does it run on Linux?&#8221;. In that moment, it is not very comforting to say to yourself &#8220;Ok, we lost that sale, but hey, Linux is only 2%, why should I care&#8221;. <strong>And if you choose a technology that binds you to an OS, which today has 99% of the market, you are still gambling, betting all your money on the chance the OS market does not change in the lifetime of your product</strong>. Of course, all this is valid for a certain range of applications. But for this range, the developers have started turning away from APIs and technologies that are bound to a specific OS (.NET, Objective C) , and preferring (where possible) cross-platform tools and languages like Java, Python, wxWidgets etc.</p>
<p>As a developer, I am a huge .NET fan. This is the combination of framework and development environment that IMHO makes a developer most effective. As a development manager though, I am a Java/Python fan. Even with somewhat less productivity with the later two, you are ready to deploy on any platform out there and this is becoming more important.</p>
<h1>The role of virtualization</h1>
<p>The other thing that hurt Microsoft bad is the virtualization technology boom. The biggest advantage of Windows is the huge amount of software available on it. A lot of people have been tempted to switch to Apple or Linux, but were being held back by <strong>that specific application that they can&#8217;t live without, which is available on Windows only</strong>. Well, with the Apple switching to Intel (enabling software like VMWare and Parallels on the Mac) and VMWare doing a Linux version it is not a problem anymore. I know a lot of people that switched and are now running that favorite application in a virtual machine.</p>
<h1>Conclusion</h1>
<p>So Microsoft won the API war. It did not matter. <strong>To win the developers back to Microsoft tools and technologies, they should make them available on all platforms</strong>. If there was .NET for Mac and Linux I would, as a development manager, push the developers to use .NET. With .NET being bound to Windows &#8211; it is a hard call to make since you are burning your bridges for a Mac or Linux version.</p>
<g:plusone href="http://www.kivspot.com/how-microsoft-won-the-api-war"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fhow-microsoft-won-the-api-war&amp;title=How%20Microsoft%20Won%20The%20API%20War%20on%20Windows%20only" id="wpa2a_14"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/how-microsoft-won-the-api-war/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Steve Jobs on drugs</title>
		<link>http://www.kivspot.com/steve-jobs-on-drugs?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=steve-jobs-on-drugs</link>
		<comments>http://www.kivspot.com/steve-jobs-on-drugs#comments</comments>
		<pubDate>Wed, 20 Jun 2007 14:58:23 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.kivspot.com/steve-jobs-on-drugs</guid>
		<description><![CDATA[Found these on the internet: Steve Jobs &#8211; normal Steve Jobs &#8211; on drugs P.S. Seriously, I was about to write about my frustration why Jobs thinks that Safari will wipe out 3 (FireFox, Mozilla, Opera) other browsers, but leave &#8230;<p class="read-more"><a href="http://www.kivspot.com/steve-jobs-on-drugs">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Found these on the internet:</p>
<p>Steve Jobs &#8211; normal</p>
<p><img src="http://www.kivspot.com/wp-content/uploads/2007/06/jobs_normal.jpg" alt="jobs_normal.jpg" /></p>
<p>Steve Jobs &#8211; on drugs</p>
<p><img src="http://www.kivspot.com/wp-content/uploads/2007/06/jobs_drugs.jpg" alt="jobs_drugs.jpg" /></p>
<p>P.S. Seriously, I was about to write about my frustration why Jobs thinks that Safari will wipe out 3 (FireFox, Mozilla, Opera) other browsers, but leave IE&#8217;s share intact. I just could not find words to describe it.</p>
<g:plusone href="http://www.kivspot.com/steve-jobs-on-drugs"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fsteve-jobs-on-drugs&amp;title=Steve%20Jobs%20on%20drugs" id="wpa2a_16"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/steve-jobs-on-drugs/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apple reinvents Windows</title>
		<link>http://www.kivspot.com/apple-reinvents-windows?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=apple-reinvents-windows</link>
		<comments>http://www.kivspot.com/apple-reinvents-windows#comments</comments>
		<pubDate>Wed, 13 Jun 2007 11:29:34 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.kivspot.com/apple-reinvents-windows</guid>
		<description><![CDATA[The keynote presentation of Steve Jobs on WWDC 2007 had a pretty big reaction in various media. As usual, a lot of people were pissed of by Apple&#8217;s advertising. Just a few hours after the keynote was public Joel wrote: &#8230;<p class="read-more"><a href="http://www.kivspot.com/apple-reinvents-windows">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>The keynote presentation of Steve Jobs on WWDC 2007 had a pretty big reaction in various media. As usual, a lot of people were pissed of by Apple&#8217;s advertising. Just a few hours after the keynote was public Joel <a href="http://www.joelonsoftware.com/items/2007/06/11.html">wrote</a>:</p>
<p><em>Apple is and always has been severely dishonest in all their advertising when it comes to performance. This is the company that spent years telling us that the PowerPC was faster than Intel, only, suddenly, to change their claims midsentence without an explanation when reality caught up with them, in a scene almost exactly like the scene in 1984: &#8220;Merely it became known, with extreme suddenness and everywhere at once, that Eastasia and not Eurasia was the enemy.&#8221;</em></p>
<p><em>This is the company that&#8217;s about to release the iPhone on a slow, last-generation data network but is running TV ads that have edited out all downloads and waiting time that network entails.</em></p>
<p><em>These products may be cool, but I don&#8217;t understand why Apple should be allowed to lie so blatantly in their advertising about performance and get away with it. I&#8217;m sorry, but a web browser that takes a minute to launch is not going to win any converts on Windows.</em></p>
<p>I personally don&#8217;t care that much about the lies in Apple&#8217;s ads, since a lot of companies do that. I was a little confused by the fact that (as usual) the keynote had <strong>more negative talk about Microsoft products, than positive stuff about Apple products</strong>. This in not something new, but sound stupid combined with the fact that you want to announce your &#8220;new&#8221; features that Vista has for a year like sidebar in Finder, specialized folders like &#8220;My Pictures&#8221; and &#8220;My Downloads&#8221;, previews of content in icons and games.</p>
<p><strong>Apple&#8217;s whole ad campaign and speeches are based on negativism</strong>, and I am really curious how will they advertise if they ever get out of their puny <a href="http://marketshare.hitslink.com/report.aspx?qprid=2">6% market share</a>. It feels strange to spend the first part of your speech explaining <strong>how bad Windows is</strong>, and then to announce that your third key feature is the <strong>ability to run Windows on your hardware</strong>. Apple is on the rise, the market share is growing, and bringing in games to the Mac is a really, really smart move. I can imagine that Macs will be a much more developer-friendly platform than PCs thanks to the fixed hardware. But in order to not piss everyone around, Apple should stop with the negative advertisements, or always be the underdog in the OS market.</p>
<p><a href="http://www.kivspot.com/wp-content/uploads/2007/06/osmarket.png" onclick="return false;" title="Direct link to file"><img src="http://www.kivspot.com/wp-content/uploads/2007/06/osmarket.png" alt="OS Market Share" /></a></p>
<g:plusone href="http://www.kivspot.com/apple-reinvents-windows"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fapple-reinvents-windows&amp;title=Apple%20reinvents%20Windows" id="wpa2a_18"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/apple-reinvents-windows/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Microsoft CRM Web Services</title>
		<link>http://www.kivspot.com/microsoft-crm-web-services?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=microsoft-crm-web-services</link>
		<comments>http://www.kivspot.com/microsoft-crm-web-services#comments</comments>
		<pubDate>Thu, 17 May 2007 20:06:44 +0000</pubDate>
		<dc:creator>me</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://konstantin.vassilev.name/microsoft-crm-web-services</guid>
		<description><![CDATA[Lost almost half a day evaluating the best way to integrate our licensing with our corporate CRM. Why am I writing this? To hopefully save someone else&#8217;s half day. After a glimpse at the SDK I figured out I wanted &#8230;<p class="read-more"><a href="http://www.kivspot.com/microsoft-crm-web-services">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<p>Lost almost half a day evaluating the best way to integrate our licensing with our corporate CRM. Why am I writing this? To hopefully save someone else&#8217;s half day.</p>
<p>After a glimpse at the SDK I figured out I wanted to use the CRM web services. They were simple, and had just the functionality I needed.</p>
<p>I wanted to try them quickly, so I:</p>
<ol>
<li> pointed my browser to <strong><span id="ctl00_ContentPlaceHolder1_ctl00_mtxtArticleBody">http://localhost:5555/MSCRMServices/2006/crmservice.asmx</span></strong></li>
<li><span id="ctl00_ContentPlaceHolder1_ctl00_mtxtArticleBody">clicked on <strong>Fetch</strong></span></li>
<li><span id="ctl00_ContentPlaceHolder1_ctl00_mtxtArticleBody">Entered a valid Fetch XML and clicked invoke</span></li>
</ol>
<p><strong>500 Internal server error</strong></p>
<p>The rest of the day was spent trying to figure that error. I decided there is a problem with the web interface, so I wrote a small C# function to try it:</p>
<p class="code"> CrmService s = new CrmService();<br />
s.Credentials = new NetworkCredential(&#8220;administrator&#8221;, &#8220;admin&#8221;, &#8220;organization&#8221;);<br />
// or s.Credentials = System.Net.CredentialCache.DefaultCredentials;<br />
s.Url = &#8220;http://localhost:5555/mscrmservices/2006/crmservice.asmx&#8221;;<br />
string a = s.Fetch(@&#8221;<br />
&lt;fetch mapping=&#8217;logical&#8217;&gt;<br />
&lt;entity name=&#8217;account&#8217;&gt;&lt;all-attributes/&gt;<br />
&lt;/entity&gt;<br />
&lt;/fetch&gt; &#8220;);<br />
MessageBox.Show(a);</p>
<p>Same Internal server error.</p>
<p>FireFox gave me some insights, which still didn&#8217;t help me figure out what&#8217;s wrong:<br />
System.Runtime.InteropServices.COMException: Exception from HRESULT: <strong>0x80041D1F</strong>.<br />
at Microsoft.Crm.Platform.ComProxy.CRMQueryClass.ExecuteQuery(CUserAuth&amp; Caller, String QueryXML)<br />
at Microsoft.Crm.Sdk.SavedQueryServiceProvider.Execute(String fetchXMLString, ExecutionContext context)<br />
at Microsoft.Crm.WebServices.CrmService.Fetch(String fetchXml)</p>
<p>At the end of the day, all the 500 Internal server errors and cryptic InteropService exceptions boiled down to permission problems. I was using the administrator account, which is not allowed to use CRM.</p>
<p>The problem here is not that CRM didn&#8217;t work correct. The problem is that both IIS and the COM exception were too cryptic. The <strong>0x80041D1F</strong> is described on some sites, but it is a CRM specific HRESULT, not something that error lookup knows about.</p>
<p>I really hope this article saves your half a day so you can do something fun with it.</p>
<g:plusone href="http://www.kivspot.com/microsoft-crm-web-services"  size="standard"   count="false"  ></g:plusone><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.kivspot.com%2Fmicrosoft-crm-web-services&amp;title=Microsoft%20CRM%20Web%20Services" id="wpa2a_20"><img src="http://www.kivspot.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.kivspot.com/microsoft-crm-web-services/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

