<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">

<channel>
	<title>Thinking Inside a Bigger Box &#187; Technology</title>
	<atom:link href="http://johannesbrodwall.com/category/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://johannesbrodwall.com</link>
	<description>Johannes Brodwall&#039;s Musings on Software Architecture and Programming</description>
	<lastBuildDate>Mon, 03 May 2010 20:24:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>		<item>
		<title>Is Steve Jobs really a benevolent dictator?</title>
		<link>http://johannesbrodwall.com/2009/08/05/is-steve-jobs-really-a-benevolent-dictator/</link>
		<comments>http://johannesbrodwall.com/2009/08/05/is-steve-jobs-really-a-benevolent-dictator/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 20:01:59 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Non-technical]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://johannesbrodwall.com/?p=415</guid>
		<description><![CDATA[It's not secret that Apple likes to control their platform tightly. As long as their dictatorship is a benevolent one, whether you find this objectionable or not is a rather uninteresting question.

But lately, the question seems to be less and less academic: Google's Voice Application for the iPhone <a href="http://www.theiphoneblog.com/2009/07/28/apple-rejects-google-voice-apps/">got rejected</a> and two existing applications (GV Mobile and Voicecentral) were removed from the AppStore! This is an extremely nasty thing to do to the developers.

To make matters worse, Apple is seeking to <a href="http://www.eff.org/deeplinks/2009/02/apple-says-jailbreaking-illegal">sue users who jailbreak their phones</a>. Yes, you can actually sue for that!

The latest WFT-Apple moment was the news of the <a href="http://daringfireball.net/2009/08/ninjawords">Ninjawords</a> dictionary application which was forced to censor naughty words out of <a href="http://wiktionary.org/">wiktionary</a>.

So far, Apple's actions have mostly hurt developers. But eventually, when developers on a platform suffer, users suffer as well.

You may think Microsoft is a bloated company and that Steve Ballmer is a weirdo, but when <a href="http://www.youtube.com/watch?v=KMU0tzLwhbE">he shouts "Developers, Developers, Developers, Developers"</a> he understands something that Steve Jobs just doesn't get.

So the iPhone is seeming rather unattractive now. I'm looking forward to what seems to be an Android-filled fall!]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s not secret that Apple likes to control their platform tightly. As long as their dictatorship is a benevolent one, whether you find this objectionable or not is a rather uninteresting question.</p>
<p>But lately, the question seems to be less and less academic: Google&#8217;s Voice Application for the iPhone <a href="http://www.theiphoneblog.com/2009/07/28/apple-rejects-google-voice-apps/">got rejected</a> and two existing applications (GV Mobile and Voicecentral) were removed from the AppStore! This is an extremely nasty thing to do to the developers.</p>
<p>To make matters worse, Apple is seeking to <a href="http://www.eff.org/deeplinks/2009/02/apple-says-jailbreaking-illegal">sue users who jailbreak their phones</a>. Yes, you can actually sue for that!</p>
<p>The latest WFT-Apple moment was the news of the <a href="http://daringfireball.net/2009/08/ninjawords">Ninjawords</a> dictionary application which was forced to censor naughty words out of <a href="http://wiktionary.org/">wiktionary</a>.</p>
<p>So far, Apple&#8217;s actions have mostly hurt developers. But eventually, when developers on a platform suffer, users suffer as well.</p>
<p>You may think Microsoft is a bloated company and that Steve Ballmer is a weirdo, but when <a href="http://www.youtube.com/watch?v=KMU0tzLwhbE">he shouts &#8220;Developers, Developers, Developers, Developers&#8221;</a> he understands something that Steve Jobs just doesn&#8217;t get.</p>
<p>So the iPhone is seeming rather unattractive now. I&#8217;m looking forward to what seems to be an Android-filled fall!</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2009/08/05/is-steve-jobs-really-a-benevolent-dictator/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Felles IKT-arkitektur for offentlig sektor</title>
		<link>http://johannesbrodwall.com/2008/09/25/felles-ikt-arkitektur-for-offentlig-sektor/</link>
		<comments>http://johannesbrodwall.com/2008/09/25/felles-ikt-arkitektur-for-offentlig-sektor/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 22:13:52 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[Norsk]]></category>
		<category><![CDATA[Politics & Current Events]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/09/25/felles-ikt-arkitektur-for-offentlig-sektor/</guid>
		<description><![CDATA[This Norwegian language post describes my response to the report from a task force exploring a common IT-architecture for the public sector in Norway.
Den norske regjeringen har besluttet at en felles IKT-arkitektur for offentlig sektor ville være fint. Jeg fikk greie på arbeidet på tirsdag, og har lest rapport til den store gullmedalje. Jeg er [...]]]></description>
			<content:encoded><![CDATA[<p><i>This Norwegian language post describes my response to the report from a task force exploring a common IT-architecture for the public sector in Norway.</i></p>
<p>Den norske regjeringen har besluttet at <a href="http://www.regjeringen.no/nb/dep/fad/dok/Horinger/Horingsdokumenter/2008/horing---felles-elektronisk-tjenesteytin/horingsbrev.html">en felles IKT-arkitektur for offentlig sektor</a> ville være fint. Jeg fikk greie på arbeidet på tirsdag, og har lest rapport til den store gullmedalje. Jeg er fortsatt ikke helt sikker på hva som menes med &#8220;felles IKT-arkitekt&#8221;, men jeg kan se omrisset av mange store evighetsprosjekter i dokumentet.</p>
<p>Jeg har forfattet et <a href="http://docs.google.com/Doc?docid=dc62h3cn_262fcf9hzxs">svar på rapporten</a>.</p>
<p>Spesielt er jeg bekymret for at dette skal bli en unnskyldning for store SOA-prosjekter uten veldefinerte formål. Rapporten beskriver en god del ønskede effektmål, men disse beskrives i såpass runde former at man aldri kommer til å etterprøve om prosjekter faktisk oppfyller dem. Formålene er ting som økt grad av interoperabilitet.</p>
<p>Frykt nummer to ligger i hvordan SOA-krigen går om dagen. Rapporten nevner veldig lite konkret på teknologier, så jeg slapp unna å gå inn i dette minefeltet. I stedet må jeg ligge våken og frykte effekten av de usagte ordene i rapporten.</p>
<p>Jeg har startet å høre om dogmatiske SOA-prosjekter som ikke lykkes, til tross for store investeringer. REST starter å bli mer akseptabelt å snakke om i høflig selskap. Men fremdeles virker det som om at  &#8220;SOA prosjekt&#8221; er et kodeord for &#8220;vi skal kjøpe dyr WS-* programvare fra Oracle, IBM eller Microsoft&#8221;.</p>
<p>Jeg skulle ønske jeg hadde mer erfaring innen offentlig sektor før jeg skulle uttale meg om dette, men dersom det er som noe annet jeg har sett, handler interoperabilitet grunnleggende sett om å sende eller motta informasjon på et standardisert format. Det betyr tre ting: En aksjon (les, oppdater, lever), noe som identifiserer et objekt (søknad, personopplysning) og et innhold (&#8220;Jeg ønsker med dette herved å søke om bla bla bla&#8221;).</p>
<p>Og her har WS-* skadet oss mye. Når man bygde standarden SOAP (Simple Object Access Protocol, som verken er enkel eller handler om &#8220;object access&#8221;), skrellet man vekk to fine deler av HTTP standarden: Verb (GET, POST, PUT &#8211; det vil si &#8220;aksjoner&#8221;) og URL&#8217;er (det vil si den nøkkelen som representerer et objekt). Det betyr at vi ikke lenger kan si &#8220;legg til&#8221; (POST) en &#8220;søknad&#8221; (http://etat.no/tjeneste/soknad/) som inneholder noe data (ikke en del av standarden). I stedet må vi si &#8220;send en melding som inneholder informasjon om noe vi tenker å gjøre&#8221; (ikke en del av standarden).</p>
<p>I en rimelig verden burde interoperabilitet betydd at å utveksle informasjon om objekter burde være en del av en universell standard som er akseptert rundt hele verden. En standard basert på å sende meldinger om å utføre én eller annen oppgave (som for eksempel å utveksle et objekt) virker sørgelig utilstrekkelig. Og offentlig sektor i lille Norge kan vel ikke være den som brøyter vei her.</p>
<p>Så lenge SOA-krigen pågår er jeg ikke optimistisk for sjansene til at en rimelig standard dukker opp.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2008/09/25/felles-ikt-arkitektur-for-offentlig-sektor/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Post-It Fetish</title>
		<link>http://johannesbrodwall.com/2008/03/13/post-it-fetish/</link>
		<comments>http://johannesbrodwall.com/2008/03/13/post-it-fetish/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 23:34:21 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/03/13/post-it-fetish/</guid>
		<description><![CDATA[Anders Nordås wrote a blog post where he talks a little about how he uses his beautiful moleskin notebook. I will pick up his challenge and write about my favorite tool, Post It notes.
As many who know me are aware, I always have a pad of Post-It notes and a pen in my left pants [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://andersnoras.com/blogs/anoras/archive/2008/03/10/notebook-fetish.aspx">Anders Nordås</a> wrote a blog post where he talks a little about how he uses his beautiful moleskin notebook. I will pick up his challenge and write about my favorite tool, Post It notes.</p>
<p>As many who know me are aware, I always have a pad of Post-It notes and a pen in my left pants pocket. I use the sticky notes for todo-lists, note taking in meetings, planning talks and doing brain dumps. After the jump, I post a few examples of Post-It notes from my pocket.</p>
<p>I accumulate tasks on a TODO list. Sometimes the tasks are organized by topics, other times not.<br />
<img src='http://www.brodwall.com/johannes/blog/wp-content/uploads/2008/03/todo-after-a-few-days.jpg' alt='A well used TODO list' /></p>
<p>As I complete tasks, I scratch them out (not done), or check them off (done).<br />
<img src='http://www.brodwall.com/johannes/blog/wp-content/uploads/2008/03/todo-making-progress.jpg' alt='TODO making progress' /></p>
<p>When the TODO list looks sufficiently messy, I just rewrite it and throw the old one away.<br />
<img src='http://www.brodwall.com/johannes/blog/wp-content/uploads/2008/03/todo-redone.jpg' alt='TODO redone' /></p>
<p>Who needs Visio?!<br />
<img src='http://www.brodwall.com/johannes/blog/wp-content/uploads/2008/03/architectural-ideas.jpg' alt='Architectural concept drawing' /></p>
<p>After a meeting, I refine my notes from the meeting until I have the distilled conclusion on a single note.<br />
<img src='http://www.brodwall.com/johannes/blog/wp-content/uploads/2008/03/meeting-summary.jpg' alt='Meeting summary' /></p>
<p>I often draft documents or emails while on the bus. I usually go through about ten Post-Its (to be thrown away) before I have my final outline. Creating this outline took about 5 minutes.<br />
<img src='http://www.brodwall.com/johannes/blog/wp-content/uploads/2008/03/document-outline.jpg' alt='Document outline' /></p>
<p>When there&#8217;s a lot on my mind, it can be hard to sleep. If I just get it all down on a piece of paper, I can sleep like a baby.<br />
<img src='http://www.brodwall.com/johannes/blog/wp-content/uploads/2008/03/braindump.jpg' alt='Braindump' /></p>
<p>When people ask me for my contact information, I have stopped digging around for a business card. Feel free to drop me a mail!<br />
<img src='http://www.brodwall.com/johannes/blog/wp-content/uploads/2008/03/business-card.jpg' alt='Business card' /></p>
<p>Tag you’re it! How do you make notes?</p>
<p><a href="http://olemortenamundsen.wordpress.com/">Ole-Morten Amundsen</a></p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2008/03/13/post-it-fetish/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Rails #1b: Heroku</title>
		<link>http://johannesbrodwall.com/2008/02/21/rails-1b-heroku/</link>
		<comments>http://johannesbrodwall.com/2008/02/21/rails-1b-heroku/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 02:25:10 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[Ruby-on-Rails]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2008/02/21/rails-1b-heroku/</guid>
		<description><![CDATA[If you though getting started with Rails seemed easy from my first post, you haven&#8217;t tried out Heroku yet. Heroku is a hosted solution for Rails that comes with a browser based IDE. There&#8217;s nothing to install. It is so easy that it&#8217;s almost ridiculous. To me, this is the future of application hosting.
One of [...]]]></description>
			<content:encoded><![CDATA[<p>If you though getting started with Rails seemed easy from <a href="http://www.brodwall.com/johannes/blog/2008/01/26/rails-intro-1-a-data-management-application-in-five-easy-steps/">my first post</a>, you haven&#8217;t tried out Heroku yet. <a href="http://heroku.com/">Heroku</a> is a hosted solution for Rails that comes with a browser based IDE. There&#8217;s nothing to install. It is so easy that it&#8217;s almost ridiculous. To me, this is the future of application hosting.</p>
<p>One of the remarkable things about Rails is that it lets you get up and running very quickly. Here is what you need to do to get your first application up and running on Heroku.</p>
<ol>
<li>Apply for an account on <a href="http://heroku.com/beta">heroku</a> (or mail me for an invitation)</li>
<li>When you have gotten your account set up, go to <a href="http://heroku.com/myapps">the heroku page for your applications</a> and log in.</li>
<li>Press the big button labeled &#8220;Create New App&#8221;</li>
<li>Click the button that look like a gear in the lower left hand corner and choose &#8220;generate&#8221; from the pop-up menu.</li>
<li>Enter <code>scaffold article title:string author:string content:text</code> and click &#8220;run&#8221;</li>
<li>Press the yellow text labeled &#8220;Migrate now&#8221; to create the articles table in the database</li>
<li>(Optional) Select &#8220;rake&#8221; from the gear pop-up menu and type <code>test</code></li>
<li>(Optional) In the &#8220;rake&#8221; window, type <code>db:fixtures:load</code> to populate the database with test data</li>
<li>Press the button with two right arrows (&#8220;>>&#8221;) on the top right corner and you will be taken to your application, done being installed on the heroku server. Add <code>/articles</code> to the url to see your newly generated application</li>
<li>You can now play around with creating, retrieving, updating and deleting articles</li>
<li>Click the button with two left arrows (&#8220;<<") on the bottom of the screen to return to the IDE</li>
<li>(Optional) Make the application publicly available. Click the name of the application (&#8220;unnamed-xxxx&#8221; on the top left corner). Pick a name for your application, select &#8220;Public&#8221; to have it deployed to the net, and press rename</li>
</ol>
<p>You now have a fully working, running, deployed Rails application. It requires no installation on your part. From here, you can follow the rest of my articles on Rails pretty much straightforward. Welcome aboard.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2008/02/21/rails-1b-heroku/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>The coolest Eclipse plugin ever!</title>
		<link>http://johannesbrodwall.com/2007/01/09/the-coolest-eclipse-plugin-ever/</link>
		<comments>http://johannesbrodwall.com/2007/01/09/the-coolest-eclipse-plugin-ever/#comments</comments>
		<pubDate>Tue, 09 Jan 2007 21:46:52 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2007/01/09/the-coolest-eclipse-plugin-ever/</guid>
		<description><![CDATA[I have just one thing to say: w00t!
Failing unit test

Unit test succeeds

Thanks to Litrik de Roy
Litrik used my C code to control the lights of the Dell XPS computer and integrated them into an Eclipse plugin. Coolest plugin EWAR!!one!! See more about it on the project blog.
]]></description>
			<content:encoded><![CDATA[<p>I have just one thing to say: w00t!</p>
<h3>Failing unit test</h3>
<p><img id="image157" src="http://www.brodwall.com/johannes/blog/wp-content/uploads/2007/01/test-failure.jpg" alt="Unit Test Fails" /></p>
<h3>Unit test succeeds</h3>
<p><img id="image158" src="http://www.brodwall.com/johannes/blog/wp-content/uploads/2007/01/test-success.jpg" alt="Unit Test Succeeds" /></p>
<h3>Thanks to Litrik de Roy</h3>
<p>Litrik used <a href="http://www.brodwall.com/johannes/blog/2006/12/17/xps-lights-source-code-in-subversion/">my C code</a> to control the lights of the Dell XPS computer and integrated them into an <a href="http://code.google.com/p/eclipse-xps/">Eclipse plugin</a>. Coolest plugin EWAR!!one!! See more about it on the <a href="http://litrik.blogspot.com/search/label/xps">project blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2007/01/09/the-coolest-eclipse-plugin-ever/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>XPS Lights: Source code in Subversion</title>
		<link>http://johannesbrodwall.com/2006/12/17/xps-lights-source-code-in-subversion/</link>
		<comments>http://johannesbrodwall.com/2006/12/17/xps-lights-source-code-in-subversion/#comments</comments>
		<pubDate>Sun, 17 Dec 2006 14:24:09 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2006/12/17/xps-lights-source-code-in-subversion/</guid>
		<description><![CDATA[I have exported the XPS light control source code into my subversion repository. The software is currently set up to build with Cygwin. As an added bonus, I now have added a target that creates a dll so the code can be reused more easily.
How to use:

xps_lights>make all
rm -f *.o *.dll *.exe
gcc -mno-cygwin -Wall  [...]]]></description>
			<content:encoded><![CDATA[<p>I have exported the <a href="http://www.brodwall.com/johannes/blog/2006/02/20/dell-xps-vanity-lights-blink/">XPS light control</a> source code into my <a href="http://svn.brodwall.com/demo/xps_lights/trunk/">subversion repository</a>. The software is currently set up to build with <a href="http://www.cygwin.com">Cygwin</a>. As an added bonus, I now have added a target that creates a dll so the code can be reused more easily.</p>
<p>How to use:</p>
<pre>
xps_lights><i>make all</i>
rm -f *.o *.dll *.exe
gcc -mno-cygwin -Wall   -c -o xps_led_control_lib.o xps_led_control_lib.c
gcc -shared -o xps_led_control_lib.dll xps_led_control_lib.o
gcc -o testexe xps_led_control.c -L./ -lxps_led_control_lib
testexe -all 4 [all the leds turn turquise]
gcc -mno-cygwin -Wall   -c -o xps_led_control.o xps_led_control.c
gcc -o xps_led_control xps_led_control_lib.o xps_led_control.o
ruby xps_led_control.rb
Cycle array [the side and top leds cycle through a list of colors]
xps_lights><i>ls</i>
Makefile     xps_led_control.c    xps_led_control.o   xps_led_control_lib.c    xps_led_control_lib.h
testexe.exe  xps_led_control.exe  xps_led_control.rb  xps_led_control_lib.dll  xps_led_control_lib.o
</pre>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2006/12/17/xps-lights-source-code-in-subversion/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dell XPS lights addition: Touchpad light</title>
		<link>http://johannesbrodwall.com/2006/11/09/dell-xps-lights-addition-touchpad-light/</link>
		<comments>http://johannesbrodwall.com/2006/11/09/dell-xps-lights-addition-touchpad-light/#comments</comments>
		<pubDate>Fri, 10 Nov 2006 00:36:51 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/2006/11/09/dell-xps-lights-addition-touchpad-light/</guid>
		<description><![CDATA[I got the following addition on my Dell XPS LED code from David Pritchard.
The new version of the code has a &#8220;-touchpad&#8221; argument. Specify &#8220;-touchpad 1&#8243; to turn the XPS 2 touchpad light on, &#8220;-touchpad 0&#8243; to turn it off.
Here is the updated source code and executable. The executable should work without Cygwin now. (Note [...]]]></description>
			<content:encoded><![CDATA[<p>I got the following addition on my <a href="/johannes/blog/2006/02/20/dell-xps-vanity-lights-blink/">Dell XPS LED code</a> from David Pritchard.</p>
<p>The new version of the code has a &#8220;-touchpad&#8221; argument. Specify &#8220;-touchpad 1&#8243; to turn the XPS 2 touchpad light on, &#8220;-touchpad 0&#8243; to turn it off.</p>
<p>Here is the updated <a href="/johannes/dist/xps_led_control.c">source code</a> and <a href="/johannes/dist/xps_led_control.exe">executable</a>. The executable should work without Cygwin now. (Note to self: Use &#8220;-mno-cygwin&#8221; gcc option to strip out the dependency)</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2006/11/09/dell-xps-lights-addition-touchpad-light/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dell XPS Vanity Lights Blink!</title>
		<link>http://johannesbrodwall.com/2006/02/20/dell-xps-vanity-lights-blink/</link>
		<comments>http://johannesbrodwall.com/2006/02/20/dell-xps-vanity-lights-blink/#comments</comments>
		<pubDate>Mon, 20 Feb 2006 08:38:42 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/?p=84</guid>
		<description><![CDATA[My newest computer is a Dell XPS thing. It&#8217;s a huge monster of a laptop (really a gaming laptop, good for the performance). It comes with external LED lights on the top, sides and bottom. These lights are normally only configurable though a custom program. Since I got the PC, I have been dying to [...]]]></description>
			<content:encoded><![CDATA[<p>My newest computer is a <a href="http://reviews.cnet.com/Dell_XPS_Gen_2_for_Home/4864-3121_7-31297838.html?ctype=msgid&amp;messageSiteID=7&amp;messageID=1241892&amp;cval=1241892">Dell XPS thing</a>. It&#8217;s a huge monster of a laptop (really a gaming laptop, good for the performance). It comes with external LED lights on the top, sides and bottom. These lights are normally only configurable though a custom program. Since I got the PC, I have been dying to find a way to control these LEDs from a script. Finally, today, I found out how.</p>
<p>A post on <a href="http://www.notebookforums.com/showthread.php?p=840284">Notebookforums</a> made med aware of the tool <a href="http://www.rohitab.com/apimonitor/">API Monitor</a>, which allows me to see how a program is using the Win32-API. From there, it was easy to recreate a program to do the same. The hardest part was that I decided to try to use the Ruby <a href="http://www.rubycentral.com/book/lib_windows.html">Win32API</a> interface to call the methods. It was hard to find out how to pass the arguments, and in the end, I ended up with a pure C solution.</p>
<p>The final solution is a command line program, which allows me to script it. I have encapsulated the modification of the LEDs in a simple function for easier reuse.</p>
<p>For any reader with an XPS who would like to replicate it, I have posted the <a href="/johannes/dist/xps_led_control.c">C source code</a> and <a href="/johannes/dist/xps_led_control.exe">Executable</a>. These files are licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/2.5/">Creative Commons Attribution2.5 License</a>.</p>
<h3>Attachments</h3>
<ul>
<li><a href="/johannes/dist/xps_led_control.c">XPS Led Control C source code</a></li>
<li><a href="/johannes/dist/xps_led_control.exe">XPS Led Control executable program</a> (&#8220;xps_led_control -help&#8221; for usage)</li>
</ul>
<p><a rel="license" href="http://creativecommons.org/licenses/by/2.5/"><img alt="Creative Commons License" border="0"></a></p>
<p><i>Update: The previous version of the xps_led_control.exe required cygwin installed on the client PC. I have compiled a new version that presumably should run without cygwin.dll. If you have the chance to test this out, I appreciate positive or negative feedback as to whether it works. Thanks.</i></p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2006/02/20/dell-xps-vanity-lights-blink/feed/</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>To autowire or not to autowire</title>
		<link>http://johannesbrodwall.com/2005/11/04/to-autowire-or-not-to-autowire/</link>
		<comments>http://johannesbrodwall.com/2005/11/04/to-autowire-or-not-to-autowire/#comments</comments>
		<pubDate>Sat, 05 Nov 2005 04:11:44 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/?p=73</guid>
		<description><![CDATA[Jason Zhicheng Li has written a blog article about Spring configuration. It is called the 12 Best Practices for Spring configuration. Best practice #1 was &#8220;don&#8217;t use autowiring*. That got me thinking:
I feel very ambivalent about autowiring. Initially, I thought it sounded like a great idea because it reduced clutter, but then people like Jason [...]]]></description>
			<content:encoded><![CDATA[<p>Jason Zhicheng Li has written a <a href="http://lizjason.com/blog/2005/10/21/spring-xml-configuration-tips/">blog article</a> about Spring configuration. It is called the 12 Best Practices for Spring configuration. Best practice #1 was &#8220;don&#8217;t use autowiring*. That got me thinking:</p>
<blockquote><p>I feel very ambivalent about autowiring. Initially, I thought it sounded like a great idea because it reduced clutter, but then people like Jason convinced me that it was not. The more I think about it, the more usure I am.</p></blockquote>
<blockquote><p>So, what are we afraid of when it comes to autowiring? Documenation is one thing, definately. In my experience, I don’t use the configuration much for documentation anyway. And we are used to automagic stuff happening anyway, so autowiring won’t be too different. Nothing stops us from explicit wiring in the cases where autowire would be too “undocumented”.</p></blockquote>
<blockquote><p>So what can go wrong? Either something gets shouldn’t be, or something doesn’t gets set which should. Autowire ensures nonambiguity, so if something gets set its always what should’ve been set.</p></blockquote>
<blockquote><p>As I can understand the issue, using autowire to, say, let all DAOs use the same DataSource seems much easier to manage than explicit wiring: If a class has setDataSource, it has the standard datasource. What could be easier?</p></blockquote>
<blockquote><p>I cannot see any realistic way where the first scenario would actually happen. If you have a setter on a bean, having it called can hardly be a surprise to you! Why else would you have it! If it wasn’t needed, it will not cause any harm, and if it was, it would be the right one.</p></blockquote>
<blockquote><p>Nor is there any great risk in a property being unset. If a property is critical, we already know how to deal with it: Dependency check or implementing InitializingBean.</p></blockquote>
<blockquote><p>So: We all have this fear of autowiring, but I have yet to understand a rational reason not to use it. (And yet, I don’t use autowiring either)</p></blockquote>
<blockquote><p>Can someone please explain WHY autowiring is bad without just waving their hands around? What bad things can happen if you autowire? Has anyone experienced any pains after autowiring? </p></blockquote>
<p><em>This article has been posted as a comment to Jason&#8217;s blog</em></p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2005/11/04/to-autowire-or-not-to-autowire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patents</title>
		<link>http://johannesbrodwall.com/2005/10/09/patents/</link>
		<comments>http://johannesbrodwall.com/2005/10/09/patents/#comments</comments>
		<pubDate>Sun, 09 Oct 2005 07:42:41 +0000</pubDate>
		<dc:creator>Johannes Brodwall</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.brodwall.com/johannes/blog/?p=70</guid>
		<description><![CDATA[Any reader of my blog should not be surprised by the fact that I think software patents are pretty bogus. So y&#8217;all will forgive a little rant brought on by the examining the (pretty bogus) eolas patent.
Here is the introduction to the patent, taken from eolas &#8220;technology&#8221; page:
The Web Application Platform
Distributed hypermedia method for automatically [...]]]></description>
			<content:encoded><![CDATA[<p>Any reader of my blog should not be surprised by the fact that I think software patents are pretty bogus. So y&#8217;all will forgive a little rant brought on by the examining the (pretty bogus) <a href="http://www.eolas.com">eolas</a> patent.</p>
<p>Here is the introduction to the patent, taken from <a href="http://www.eolas.com/technology.html">eolas &#8220;technology&#8221; page</a>:</p>
<blockquote><p><i><b>The Web Application Platform<br />
Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document </b></i></p></blockquote>
<blockquote><p><i>U.S. Patent 5,838,906, Filed in October, 1994, Issued November 17, 1998. Inventors: Michael D. Doyle, David C. Martin and Cheong Ang</i></p></blockquote>
<blockquote><p><i>First demonstrated publicly in 1993, this invention lifted the glass for the first time from the hypermedia browser, enabling Web browsers for the first time to act as platforms for fully-interactive embedded applications. The patent covers Web browsers that support such currently popular technologies as ActiveX components, Java applets, and Navigator plug-ins. Eolas&#8217; advanced browser technology makes possible rich interactive online experiences for over 500 million Web users, worldwide. </i></p></blockquote>
<p><a href="http://en.wikipedia.org/wiki/Eolas">Eolas is currently suing Microsoft</a> for $521 million (whoa!) over this patent, claiming that ActiveX is a violation of the patent. Microsoft has tried a &#8220;prior art&#8221; defence, claiming that the functionality of the <a href="http://en.wikipedia.org/wiki/ViolaWWW">Viola browser</a> was an example of the same idea. The court ruled the Viola “not teach nor fairly suggest that instant ‘906 invention, as claimed.” This may or may not be a fair assessment, but it is beside my point.</p>
<p>The main problem with the patent should be appearant by just reading Eolas&#8217; page about it: If their &#8220;technology&#8221; &#8220;enabling Web browsers &#8230; to act as platforms for fully-interactive embedded applications&#8221;, how can it be that no web browser obtained a license from Eolas? The plot thickens: It seems that they ALL  invented it separately, without using the patent. Eolas on the other hand, sat on their patent seemingly without using it for anything at all.</p>
<p>IANAL, but an idea has to be <a href="http://en.wikipedia.org/wiki/Non-obviousness_%28patent%29">non-obvious</a> in order to be patentable under US patent law. As far as I can tell, there is a pretty simple test of non-obviousness: If several inventors use the same idea independently of the patent, it must have been pretty darn obvious. According to Eolas&#8217; own testimony, ActiveX (which is a development of OLE, by the way) and applets are both covered by the patent, the same would hold for Flash, or course.</p>
<p>Now, I wasn&#8217;t very involved in these things in 1993, but, come on Eolas, that is a pretty bloody obvious idea! What&#8217;s next? A <a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=/netahtml/srchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=4,022,227.WKU.&amp;OS=PN/4,022,227&amp;RS=PN/4,022,227">patent for comb-overs</a>?</p>
<p>I don&#8217;t know about you, but I find this pretty illustrative of the silliness surrounding patents. I have seen a lot of bad software patents, and nary a good one. They proof of the patent system, as they say, is in the eatin&#8217;. Oh yeah, and isn&#8217;t it cute how Eolas is trying to make it seem like they invented this great thing for the world, and then nobody went on to use their idea about it, just reinvent it! Losers.</p>
]]></content:encoded>
			<wfw:commentRss>http://johannesbrodwall.com/2005/10/09/patents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
