<?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>ITworks &#187; IT</title>
	<atom:link href="http://itworks.hu/category/it/feed/" rel="self" type="application/rss+xml" />
	<link>http://itworks.hu</link>
	<description>Random musings in IT</description>
	<lastBuildDate>Mon, 09 Jan 2012 08:01:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Rooting ZT-280 C71 ICS (120104)</title>
		<link>http://itworks.hu/2012/01/08/rooting-zt-280-c71-ics-120104/</link>
		<comments>http://itworks.hu/2012/01/08/rooting-zt-280-c71-ics-120104/#comments</comments>
		<pubDate>Sun, 08 Jan 2012 18:16:01 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[IT]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=227</guid>
		<description><![CDATA[I&#8217;ve created a small update package to root the factory C71 ICS release. I hope it will be useful for others as well. Disclaimer This package is provided as-is. It worked for me, but I take no responsibility whatsoever on &#8230; <a href="http://itworks.hu/2012/01/08/rooting-zt-280-c71-ics-120104/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created a small update package to root the factory C71 ICS release. I hope it will be useful for others as well.</p>
<p><span id="more-227"></span></p>
<p><strong>Disclaimer</strong><br />
This package is provided as-is. It worked for me, but I take no responsibility whatsoever on it&#8217;s effects on your device!</p>
<p><strong>IT MAY AS WELL BRICK YOUR DEVICE, OR YOU MIGHT LOOSE ALL YOUR DATA!</strong></p>
<p>Do not use it for any other ROM but the official ZT280_E7_1n_C71_Android4.0_0104_V1.2.rar! It might work, or screw you up<br />
altogether.</p>
<p><strong>(!!! You&#8217;ve been warned !!!)</strong></p>
<p><strong>About</strong></p>
<p>This update will install the su binaries and SuperUser application on your<br />
ZT-280.</p>
<p>This is NOT a rom, it&#8217;s only a supplement to root the ICS. If your device doesn&#8217;t use the ZT280_E7_1n_C71_Android4.0_0104_V1.2.rar ROM, you must install that separately.</p>
<p>This update is written so the root can be applied AFTER the ROM upgrade, in order to add the root capability without screwing up the actual data and applications already on the tablet.</p>
<p><strong>Usage</strong></p>
<ol></ol>
<ul>
<li>MAKE SURE YOUR SD CARD DOES NOT CONTAIN THE &#8220;zt-update&#8221; FOLDER. If it does just remove it.</li>
</ul>
<ul>
<li>Extract the contents of this archive in the root of your SD card.</li>
</ul>
<ul>
<li>Move the kernel and ramdisk for your device from the appropiate folder (1n or 1f) to the zt-update folder. If you want to use it with any other ROM than the ZT280_E7_1n_C71_Android4.0_0104_V1.2.rar YOU MUST use the kernel and the ramdisk from the newer version. (see disclaimer!)</li>
</ul>
<ul>
<li>Insert card and reboot the tablet keeping the Vol- pressed (ie. do a   standard update)</li>
</ul>
<p><strike>li>Update will finish with an error, that it cannot find the system, but   </strike><strong><strike>NO WORRIES</strike></strong><br />
<strike>!</strike> this issue is fixed in the updated version </p>
<ul>
<li>Reboot and enjoy root!</li>
</ul>
<p><strong>Licencing and price</strong></p>
<p>I accept but don&#8217;t require donations. <img src='http://itworks.hu/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  Nah, really, it&#8217;s just a hack.</p>
<p>The package is available here: <a href="http://itworks.hu/wp-content/uploads/2012/01/ZT280_E7_1n_C71_Android4.0_0104_V1.2-root.zip">ZT280_E7_1n_C71_Android4.0_0104_V1.2-root</a></p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2012/01/08/rooting-zt-280-c71-ics-120104/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing mojo generated code in Maven</title>
		<link>http://itworks.hu/2011/11/15/testing-mojo-generated-code-in-maven/</link>
		<comments>http://itworks.hu/2011/11/15/testing-mojo-generated-code-in-maven/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 17:38:46 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://m.itworks.hu/2011/11/15/testing-mojo-generated-code-in-maven/</guid>
		<description><![CDATA[Lately I was assigned a task which involved something that a unit test seemed to be able to solve, but later it turned out to be way more complex than that. Almost a third of our codebase consists of POJOs &#8230; <a href="http://itworks.hu/2011/11/15/testing-mojo-generated-code-in-maven/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lately I was assigned a task which involved something that a unit test seemed to be able to solve, but later it turned out to be way more complex than that. </p>
<p>Almost a third of our codebase consists of POJOs generated from Xsd descriptors scattered around in our projects. The generation is performed during build, using a Maven plugin that performs the parsing and generation tasks.</p>
<p>These generated classes are no more than simple value objects descending from a common root object, that contains some well-known methods like toString (), that all methods should share. Unfortunately this particular toString does not know about it&#8217;s descendants&#8217; inner structure, so it relies heavily on reflection to perform it&#8217;s task. This springs the idea of generating the classes with their own toString methods, so the resulting code is more efficient. </p>
<p>To do this to be backwards compatible, I would have to generate all known xsds, invoke their old and generated toString implementation and compare the results. Also I&#8217;d have to fill these objects with values, so I&#8217;d have data to compare.</p>
<p>So much for the task, but what&#8217;s the fuss about? Well I want the testing kept inside Maven, so should the generated or  inherited code change, we can see it in the build process. </p>
<p>There seem to exist a vast number of ways to be used for mojo testing, starting from the blunt get a mojo instance, fill it with values, and run execute (), to running a separate Maven instance and use the generated test results. Given that in this particular case I&#8217;d to start the compiler and then the surefire I (eventually ) went for the later approach. </p>
<p>The plugin testing harness is an example of the earlier approach, while it seems from the usage example the former. Avoid if you have to invoke more, than just your own mojo. It only reads the pom.xml you provide, but doesn&#8217;t set up the required Maven environment like builders, project, …etc. It doesn&#8217;t do the setup of the default values of your mojo (not that it could resolve the non-existing values for that) So all you end up with is using a helper method for setting up your mojos and executing them from your testcase. I went as far as generating and compiling my classes, but when it came to the point of actually testing them with a surefire mojo I gave up on it, as setting that up would really have been impossible. </p>
<p>I then realized that from testing point of view it is in fact an integration test, not a &#8220;mere&#8221; unit test, as the testing involves interaction with third party plugins (compiler and surefire) as well. So I converted the package from the plugin testing harness&#8217;s structure to the maven-invoker plugin&#8217;s recommended structure.  It was nothing more than moving a few directories around, but I could simply throw the complicated mojo invocation out and use a well defined and simple pom instead.  This plugin creates a local repository for itself that contains your project&#8217;s dependencies and the artifact to be tested. It&#8217;s advised to create a settings.xml that points to your local repository, to limit the unnecessary fetching from your repositories.  </p>
<p>So far, so good. You should keep in mind however, the invoker plugin has some disadvantages. It&#8217;s way slower than the harness. It doesn&#8217;t aggregate the test results, so all you can see on a failed build, that there were errors in a particular run. Also, since it runs the test in a separate Java environment, you cannot debug your test code, which in my case is quite complex. </p>
<p>So you either create a separate test module and refer to it from the test pom, and create a unit test to test your code with known data, or just be brave write well thought out code and do it properly using log messages to trace your work, just like the good old times. After all repeated failure builds character.  <img src='http://itworks.hu/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I actually created a small and a full test environment, testing the particularities of the test separately. To debug the test code you&#8217;ve got to import the generated Maven project in your IDE and start the test execution with the local repository and the generated settings.xml. </p>
<p>What were the results? I achieved a speedup of about 90% for completely empty classes, about 70% for classes with data, when the output buffer is limited, and around 30% for classes recursively and completely filled in a depth of four iterations. Overall I could say it&#8217;s a 50% improvement on the original method, with a proven backwards compatibility. Considering that this is invoked at least 6 million times a day it might bring a favorable impact on the performance of our systems. </p>
<p>In the process I found 3 errors in the current code, that proved that the output of method&#8217;s not used to heavily in the live system. Since the logging it produces is mandatory for regulatory compliance it might just be a good idea to roll it out in the near future. </p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2011/11/15/testing-mojo-generated-code-in-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chinese tablets recapped</title>
		<link>http://itworks.hu/2011/11/07/chinese-tablets-recapped/</link>
		<comments>http://itworks.hu/2011/11/07/chinese-tablets-recapped/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 18:06:48 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[chinese]]></category>
		<category><![CDATA[tablet]]></category>

		<guid isPermaLink="false">http://m.itworks.hu/2011/11/07/chinese-tablets-recapped/</guid>
		<description><![CDATA[First I tried the wm8650 that I broke. Literally broke, as I just dropped it from about half a meter and the touch screen shattered. Then I got myself a &#8220;Superpad III&#8221; clone which died no later than a day &#8230; <a href="http://itworks.hu/2011/11/07/chinese-tablets-recapped/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>First I tried the wm8650 that I broke. Literally broke, as I just dropped it from about half a meter and the touch screen shattered. Then I got myself a &#8220;Superpad III&#8221; clone which died no later than a day after I got it.</p>
<p>Know I&#8217;m typing on my brand new ZT-280  I received today.<br />
I can&#8217;t say I&#8217;m impressed, the tablet is about half the size of the Superpad and is also smaller than the wm8650. The capacitive screen is a bit hectic or oversensitive. It has no haptic feedback, but I can live with that. </p>
<p>It&#8217;s exterior is superb compared to the previous mentions, and is bordering on acceptable. I don&#8217;t like the reddish metal finish on the sides too much, but it&#8217;s not all that bad. I can&#8217;t understand the mini USB connectors really. After all micro sockets are taking over, don&#8217;t they? Also I don&#8217;t get why a separate power input is needed, when it could use the 5v straight from the port. As far as I&#8217;m concerned it should have two micro USB and scrap the rest.</p>
<p>The tablet came with the connector cables for both pc to tablet and external device to tablet connection, a power adapter and the usual EU socket adapter. It has a little deep socket for the micro sd card, but it&#8217;s reasonable, as I don&#8217;t want to change it too frequently anyway.</p>
<p>And so I used the pad for a day or so with the following issues. </p>
<p>The touch is a bit laggy, there are times, when the strength registers a &#8220;click &#8221; at a previous position. I seems like a driver issue and I don&#8217;t think it would be dealt with anytime soon.</p>
<p>The firmware is definitely based on cyanogen 7 so it promise a relatively long usability period. Unfortunately it doesn&#8217;t use clockwork boot loader, and has a legacy package format too. It still begs the question weather it can be used to do incremental upgrades, or only full updates are possible. The supplier released new firmware packs about monthly, and I can only hope they keep it up for the release of the icecream sandwich of cyanogen. </p>
<p>Now again, I&#8217;m kind of late on publishing, so here&#8217;s an update. A new release is available from the manufacturer &#8216;s site as of November 4th. I only did a partial update, so a new kernel is running on the pad. This seems to have resolved the touch issues. I&#8217;ve also recalibrated the battery, so now it provides a little bit more reliable info. This doesn&#8217;t solve the standard charge  issue of the pad. That only affects the charge level display so it only shows the range between 97% (uncharged) to 100% fully charged.  I don&#8217;t mind, as I leave office charge overnight anyway. </p>
<p>It does have a five point touch screen which looks nice in Fruit ninja, that I used to test 3d, where I could use 5 blades to slice through tons of fruit in seconds. <img src='http://itworks.hu/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I really miss the light sensor. It boggles my mind trying to understand what made the designers think to omit such a cheap, but vital component from this otherwise well built tablet? It also shows that Android heavily relies on its existence. There is only a very limited possibility of customizing it properly, even with the notorious Cyanogen. One cannot set the actual levels to use in the power applet or the status bar, you can only select some predefined level combinations, all of which contain an auto option, despite the missing sensor. </p>
<p>Rooting the device is pretty simple. Connect with the provided cable, remount system with adb, copy su and superuser.apk cynosure the su and done. You can than use all rooted applications. This is required if you want to clean up the crappy preinstalled applications. </p>
<p>Chainfire works out of the box but I&#8217;m not a gamer, so I have no idea what&#8217;s the point. I did some fooling Around in Fruit Ninja and Angry Birds but I can&#8217;t tell the difference. </p>
<p>I wrote this article on the subway, using my ZTE Blade as a Wi-Fi hotspot to publish it.</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2011/11/07/chinese-tablets-recapped/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Motorola vip1910-9 HDMI</title>
		<link>http://itworks.hu/2011/08/04/motorola-vip1910-9-hdmi/</link>
		<comments>http://itworks.hu/2011/08/04/motorola-vip1910-9-hdmi/#comments</comments>
		<pubDate>Thu, 04 Aug 2011 11:41:51 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[annoyance]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[invitel]]></category>
		<category><![CDATA[motorola vip1910-9]]></category>
		<category><![CDATA[stb]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=217</guid>
		<description><![CDATA[I have a Motorola vip1910-9 set-top box provided by my ISP. It&#8217;s a simple Linux based STB and I&#8217;m quite satisfied with it&#8217;s capabilities. Unfortunately I could not hook it up to my TV with a standard HDMI cable only &#8230; <a href="http://itworks.hu/2011/08/04/motorola-vip1910-9-hdmi/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have a Motorola vip1910-9 set-top box provided by my ISP. It&#8217;s a simple Linux based STB and I&#8217;m quite satisfied with it&#8217;s capabilities. Unfortunately I could not hook it up to my TV with a standard HDMI cable only through scart.</p>
<p>After spending hours on the net looking for a solution I came over a Swedish forum, which gave away the solution.</p>
<ol>
<li>Reboot the box, either by power cycling or from the remote</li>
<li>Press the Menu on the remote when the boot starts</li>
<li>Change the output to the resolution your TV can do</li>
<li>save and reboot</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2011/08/04/motorola-vip1910-9-hdmi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Broke the Mid7, ordered a new tablet</title>
		<link>http://itworks.hu/2011/07/05/broke-the-mid7-ordered-a-new-tablet/</link>
		<comments>http://itworks.hu/2011/07/05/broke-the-mid7-ordered-a-new-tablet/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 14:34:40 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[chinese]]></category>
		<category><![CDATA[tablet]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=202</guid>
		<description><![CDATA[Last Saturday I stumbled upon the charger of the MID7 in the dark, managing to drop it and break the glass of the touch screen. Since the cheap MID7 proved it has a place in the household, but shown it&#8217;s &#8230; <a href="http://itworks.hu/2011/07/05/broke-the-mid7-ordered-a-new-tablet/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://itworks.hu/wp-content/uploads/2011/07/em73.jpg"><img class="alignright size-full wp-image-211" title="EM73" src="http://itworks.hu/wp-content/uploads/2011/07/em73.jpg" alt="" width="270" height="237" /></a>Last Saturday I stumbled upon the charger of the MID7 in the dark, managing to drop it and break the glass of the touch screen. Since the cheap MID7 proved it has a place in the household, but shown it&#8217;s weaknesses I decided to order another one. This time I go for a more expensive piece.</p>
<p><span id="more-202"></span>This was an accident waiting to happen. The length of the charger cord was a concern since the beginning. It was so short, that having an extension cord on the floor I could hardly put it on my lap on my sofa, without accidentally yanking it out altogether. So it didn&#8217;t have a safe place. It fell several times, but without any visible results. The battery or the power socket might have loosened as a result, but as I read it on several sites, it might have just been the poor manufacturing.</p>
<p>After the 40cm drop the corner of the touch screen over the LCD shattered. The unit still works, but barely. I&#8217;ve tested the screen with a drawing program, and it turns out the shattered section is &#8220;untouchable&#8221;. So about half of the screen is working the rest is deformed. This and the severe battery problems encountered recently (the charger shows 100%, but when I take it off it turns of in less than a minute, or lasts 4 hours depending it&#8217;s mood) render it useless.</p>
<p>So I decided to get a better tablet, with possibly better build quality, more internal memory, and preferably stronger CPU. I&#8217;ve decided to double the stakes and get get something under US$200. I spent over 6 hours searching through the vast amount of tablets available at http://dhgate.com and several other wholesale suppliers.</p>
<p>Most offers were bogus, the name and the make of the table sometimes doesn&#8217;t match the description of the item, several items are listed multiple times, under the same name and price. Whenever I tried to search for brands I ended up with results for MID7 and lookalikes (WM8550 and WM8650 series processors with 7&#8243;,8&#8243;or 10&#8243; resistive displays) These things you can get as low as $90, and as high as $200 (at the high end of my range <img src='http://itworks.hu/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) Countless times I thought I found something good then it turned out it&#8217;s an overpriced MID.</p>
<p>After lots of searching I ended up with <a href="http://www.dhgate.com/product/productdisplay.do?pid=ff80808130e5a4790130e92a33db6076">this</a>. The EM73. It features a Telechips 8803 Cortex-A8 1GHZ CPU,  512M DDR RAM with a 4GB internal storage (of which I presume 1G is reserved for the OS only), it comes with Android 2.3 pre-installed. It has a promising 3400mA battery. It supposedly has a mali GPU, so some games might even run on it.  It has some features I will not use for sure, like the ethernet adapter, 2M camera, HDMI output (seriously, who really expects HDMI from a device with 800&#215;480 resolution?) It has no built-in 3G, GPS, Bluetooth, but I don&#8217;t care much about those anyway, it&#8217;s meant to be a couch tablet.</p>
<p>At the time of writing it costs US $164.32 apiece, with free shipping.</p>
<p>Based on the XDA developer forums, I should be able to mod it anyway I like, should I feel inclined to.</p>
<p>Based on my previous order, it should be delivered around August, so expect some follow up then!</p>
<p>Any suggestions on what to do with the broken one? I don&#8217;t feel like throwing it in the bin as is.</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2011/07/05/broke-the-mid7-ordered-a-new-tablet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MID v7 tablet from China</title>
		<link>http://itworks.hu/2011/05/27/mid-v7-tablet-from-china/</link>
		<comments>http://itworks.hu/2011/05/27/mid-v7-tablet-from-china/#comments</comments>
		<pubDate>Fri, 27 May 2011 21:14:00 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[chinese]]></category>
		<category><![CDATA[tablet]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=194</guid>
		<description><![CDATA[I&#8217;ve ordered a very cheap tablet from China, for about $85 including shipping. I  did this, so I could see if anything arrives from there at all, and also to see if it arrives at all. I was not surprised &#8230; <a href="http://itworks.hu/2011/05/27/mid-v7-tablet-from-china/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://itworks.hu/wp-content/uploads/2011/05/midv7.jpg"><img class="alignright size-medium wp-image-213" title="midv7" src="http://itworks.hu/wp-content/uploads/2011/05/midv7-300x256.jpg" alt="" width="180" height="154" /></a>I&#8217;ve ordered a very cheap tablet from China, for about $85 including shipping. I  did this, so I could see if anything arrives from there at all, and also to see if it arrives at all.</p>
<p>I was not surprised to receive it in three weeks time, even though it had 30 working days to arrive.</p>
<p>It came in a rather unimpressing package, with my name and address printed on a piece of paper torn on the edges, affixed with liberal amounts of tape.</p>
<p>The box is just plain white with a very low quality picture of the device. It is called MID (this week probably) but it&#8217;s one of those cheap things you get rebranded under several aliases.</p>
<p>The tablet feels plastic, and quite heavy. The rear cover feels empty and hollow. The buttons on the sides are quite small. The painted arrow on thevback button on the front panel scratched off in mere hours! Well, one can&#8217;t expect to get a Galaxy Tab for this money. <img src='http://itworks.hu/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>As it came with the Chinese market and complete lack of Google apps, I decided to flash it as soon as possible. It took 4 hours after receiving it, that I just killed the original firmware and replaced it with a version of the Uberoid release found <a href="http://techknow.freeforums.org/uberoid-wm8650-1-3-0-hybrid-honeycombmod-v4-t641.html">here</a>.</p>
<p>After the upgrade, and the market fix described on the page, the device suddenly  became more interesting. The icons seem to be oversized on the market, and so are several icons on the screen resulting in a broken feeling. I really want to change the icon packs back, as the &#8220;Honeycomb theme&#8221; makes me puke.</p>
<p>Titanium backup does not seem to work on the rooted device, so I guess I&#8217;ll have to live without. The image comes with a so far unknown AppMonster to do it&#8217;s job. I&#8217;ve replaced ADW Launcher, and Prolauncher that came in the image with the GO Launcher Ex, I use on my ZTE. As it turns out it is faster on this piece as well.</p>
<p>It will still take some time for me to see if it was a sensible idea to get it or not.</p>
<p><strong>Update </strong></p>
<p>The resistive display is very unresponsive, but it might be because of the capacitive display of my phone. Talking of which, the cheap ZTE Blade is far superior to this tablet in both manufacturing and performance wise. There&#8217;s a significant lack of responsiveness on the display edges caused by the ignorant design.<br />
I forgot to mention, that there was a stylus included in the box, that is very obviously designed for a mobile phone, there is no place to stick it in the tablet however. The power supply comes with an attachable European socket adapter, but with a cord no longer than 50 cm.<br />
I&#8217;ve reverted the ROM to the Vestinous 1.3 release, that&#8217;s not infested with the Honeycomb wannabe theme,now the icon sizes are normal, and I can still see the market. The performance is still tragic, it should be able to run at 800MHz but feels less, maybe it&#8217;s just the limited memory.<br />
I&#8217;ve later updated to the more stable <a href="http://www.slatedroid.com/topic/18521-slatedroid-singularity-m009s-final/ ">Singularity ROM</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2011/05/27/mid-v7-tablet-from-china/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Bastard Operator from Hell excuse calendar widget for WordPress</title>
		<link>http://itworks.hu/2011/03/16/bastard-operator-from-hell-excuse-calendar-widget-for-wordpress/</link>
		<comments>http://itworks.hu/2011/03/16/bastard-operator-from-hell-excuse-calendar-widget-for-wordpress/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 00:22:17 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[bofh]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=186</guid>
		<description><![CDATA[This site has always had a quote from the BOFH excuse calendar on the header.  This was accomplished by using the wp_bofh plugin by Bernd Essl,  that was written sometime ago back in 2007. This, while working well for it&#8217;s &#8230; <a href="http://itworks.hu/2011/03/16/bastard-operator-from-hell-excuse-calendar-widget-for-wordpress/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This site has always had a quote from the BOFH excuse calendar on the header.  This was accomplished by using the wp_bofh plugin by Bernd Essl,  that was written sometime ago back in 2007. This, while working well for it&#8217;s age, however is no longer compatible with the new widget based themes of WordPress.</p>
<p>I got bored of the old theme, and decided to finally change the looks of the site, but since I want themes to be changeable, I could not let the old fashioned theme spoil my plugin.</p>
<p>I&#8217;ve gathered a few manuals and rewritten the plugin as a widget using the guides found <a href="http://www.lonewolfdesigns.co.uk/create-wordpress-widgets/">here</a> and <a href="http://wpengineer.com/1023/wordpress-built-a-widget/">here</a>, and found the 21st comment of the later article useful, explaining why the widget cannot be simply registered.</p>
<p>The whole thing didn&#8217;t take more than half an hour to put together. I&#8217;m not sure the initialization code is optimal, or works at all, as data was already in my DB. So if anything goes south, just leave a comment, so I can fix it.</p>
<p>To use the widget, you can supply the widget title on the admin interface, other than that you can add the &#8216;bofh&#8217; style to your CSS, and customize it&#8217;s appearance.</p>

<div class="wp_syntax"><div class="code"><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.bofh</span> <span style="color: #00AA00;">&#123;</span>
...
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>If you are interested the plug-in is available <a href="http://itworks.hu/wp-content/plugins/BOFH/BOFHWidget.phps">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2011/03/16/bastard-operator-from-hell-excuse-calendar-widget-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building streamlined boxee for Ubuntu Natty</title>
		<link>http://itworks.hu/2011/02/05/building-streamlined-boxee-for-ubuntu-natty/</link>
		<comments>http://itworks.hu/2011/02/05/building-streamlined-boxee-for-ubuntu-natty/#comments</comments>
		<pubDate>Sat, 05 Feb 2011 18:45:52 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[boxee]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[natty]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=107</guid>
		<description><![CDATA[I&#8217;ve been using boxee for some time for my home media. As I&#8217;ve recently upgraded my box to the pre-release version of Ubuntu (Natty Narval Alpha 2 at the time of writing) I found that the package provided by boxee &#8230; <a href="http://itworks.hu/2011/02/05/building-streamlined-boxee-for-ubuntu-natty/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://itworks.hu/wp-content/uploads/2011/02/boxee.png"><img class="alignright size-full wp-image-133" title="boxee" src="http://itworks.hu/wp-content/uploads/2011/02/boxee.png" alt="" width="48" height="48" /></a><br />
I&#8217;ve been using boxee for some time for my home media. As I&#8217;ve recently upgraded my box to the pre-release version of Ubuntu (Natty Narval Alpha 2 at the time of writing) I found that the package provided by boxee is both outdated and references packages outdated in the new version of Ubuntu (libxmlrpc-c3 is replaced with libxmlrpc-c3-0) leaving you with broken packages on your box.</p>
<p>Even though it is possible to trick the box to run, there is a huge unresolved problem with the font display. I hoped to solve it by compiling Boxee on the box itself, but even after building it the fonts still were garbled. I still need to investigate what went wrong in it. Unfortunately xbmc shows the same symptoms, so it does not seem to be a boxee-only problem.</p>
<p><span id="more-107"></span><br />
<strong>Installing the brute-force way</strong></p>
<p>One solution to this is to force the package install with</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>dl.boxee.tv<span style="color: #000000; font-weight: bold;">/</span>boxee-0.9.22.13692.i486.modfied.deb
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">dpkg</span> <span style="color: #660033;">-i</span> <span style="color: #660033;">--force-all</span> boxee-0.9.22.13692.i486.modfied.deb</pre></div></div>

<p>and then modifying your /var/lib/dpkg/status using your favorite text editor</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">nano</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>dpkg<span style="color: #000000; font-weight: bold;">/</span>status</pre></div></div>

<p>and updating the boxee entry to reference the new libxmlrpc-c3-0 instead of libxmlrpc-c3 and libdirectfb-1.2.9 instead of libdirectfb-1.2. This is a dirty hack and one should be ashamed of himself for using it. <img src='http://itworks.hu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><strong>Building the package on Maverick</strong><br />
The proper way is of course building a package that runs on your box and changing the required libs as necessary. I&#8217;m posting this for anyone who&#8217;s trying to roll one for himself. I managed to build the package on Maverick with a few minor tweaks but couldn&#8217;t make it work on Natty.</p>
<p>First you must download the boxee sources, configure your build environment and get the required development libs. Best if you try this as root.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">su</span> -
<span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>src
<span style="color: #c20cb9; font-weight: bold;">wget</span> http:<span style="color: #000000; font-weight: bold;">//</span>dl.boxee.tv<span style="color: #000000; font-weight: bold;">/</span>boxee-sources-0.9.23.15885.tar.bz2
<span style="color: #c20cb9; font-weight: bold;">tar</span> xjf boxee-sources-0.9.23.15885.tar.bz2
<span style="color: #7a0874; font-weight: bold;">cd</span> boxee-sources-0.9.23.15885<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> apt-build <span style="color: #c20cb9; font-weight: bold;">autoconf</span> <span style="color: #c20cb9; font-weight: bold;">automake</span> libtool <span style="color: #c20cb9; font-weight: bold;">gettext</span> automake1.10
add-apt-repository ppa:team-xbmc<span style="color: #000000; font-weight: bold;">/</span>ppa
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> update
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> build-dep xbmc
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> libdts-dev liba52-0.7.4-dev</pre></div></div>

<p>Then configure your build using the build environment. As my install already has the required libraries and python (and even later versions then the ones available in the sources) I prefer to enable all externals instead of using the ones from the environment. As there might be problems with the macro definitions I suggest to set up the configuration with the parameters as suggested in <a href="http://code.google.com/p/ffmpegsource/issues/detail?id=11" target="_blank">this</a> post.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>bootstrap
<span style="color: #c20cb9; font-weight: bold;">autoconf</span>
<span style="color: #007800;">CPPFLAGS</span>=<span style="color: #ff0000;">&quot;-DHAVE_LRINTF -I/usr/include/python2.6&quot;</span> \
<span style="color: #007800;">CXXFLAGS</span>=<span style="color: #ff0000;">&quot;-D__STDC_CONSTANT_MACROS -I/usr/include/python2.6&quot;</span> \
 .<span style="color: #000000; font-weight: bold;">/</span>configure <span style="color: #660033;">--enable-external-libraries</span> <span style="color: #660033;">--enable-pulse</span> <span style="color: #660033;">--enable-xrandr</span> \
 <span style="color: #660033;">--enable-faac</span> <span style="color: #660033;">--enable-external-python</span>  <span style="color: #660033;">--enable-optimizations</span> \
 <span style="color: #660033;">--enable-goom</span> <span style="color: #660033;">--disable-debug</span> <span style="color: #660033;">--prefix</span>=<span style="color: #000000; font-weight: bold;">/</span>opt</pre></div></div>

<p>Before running make however you&#8217;d better make some changes to the sources for clean builds. I found some pointers for the changes <a href="http://forums.boxee.tv/showthread.php?t=14524" target="_blank">here</a>. To make the changes you can run the following commands, as I&#8217;m not very skilled in using the patch command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">&quot;35 i typedef unsigned char uchar;&quot;</span> xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>DllWAVPack.h \
 <span style="color: #000000; font-weight: bold;">&gt;</span> xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>DllWAVPack.h.new
<span style="color: #c20cb9; font-weight: bold;">mv</span> xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>DllWAVPack.h xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>DllWAVPack.h.old
<span style="color: #c20cb9; font-weight: bold;">mv</span> xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>DllWAVPack.h.new xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>DllWAVPack.h</pre></div></div>

<p>As there seem to be some changes in the ffmpeg lib since the publication of the source, a little tweaking is required in the source itself.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>ffmpeg<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s/av_read_frame_flush/ff_read_frame_flush/'</span> DllAvFormat.h <span style="color: #000000; font-weight: bold;">&gt;</span>DllAvFormat.h.new
<span style="color: #c20cb9; font-weight: bold;">mv</span> DllAvFormat.h DllAvFormat.h.old
<span style="color: #c20cb9; font-weight: bold;">mv</span> DllAvFormat.h.new DllAvFormat.h
<span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>dvdplayer<span style="color: #000000; font-weight: bold;">/</span>DVDDemuxers
<span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s/av_read_frame_flush/ff_read_frame_flush/'</span> DVDDemuxFFmpeg.cpp <span style="color: #000000; font-weight: bold;">&gt;</span> DVDVDDemuxFFmpeg.cpp.new
<span style="color: #c20cb9; font-weight: bold;">mv</span> DVDDemuxFFmpeg.cpp DVDDemuxFFmpeg.cpp.old
<span style="color: #c20cb9; font-weight: bold;">mv</span> DVDDemuxFFmpeg.cpp.new DVDDemuxFFmpeg.cpp
<span style="color: #7a0874; font-weight: bold;">cd</span> ..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..<span style="color: #000000; font-weight: bold;">/</span>..</pre></div></div>

<p>Remove some non-existing references.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">&quot;6d;7d;8d&quot;</span> xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>MACDll<span style="color: #000000; font-weight: bold;">/</span>Source<span style="color: #000000; font-weight: bold;">/</span>MACLib<span style="color: #000000; font-weight: bold;">/</span>APEHeader.cpp \
 <span style="color: #000000; font-weight: bold;">&gt;</span>xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>MACDll<span style="color: #000000; font-weight: bold;">/</span>Source<span style="color: #000000; font-weight: bold;">/</span>MACLib<span style="color: #000000; font-weight: bold;">/</span>APEHeader.cpp.new
<span style="color: #c20cb9; font-weight: bold;">mv</span> xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>MACDll<span style="color: #000000; font-weight: bold;">/</span>Source<span style="color: #000000; font-weight: bold;">/</span>MACLib<span style="color: #000000; font-weight: bold;">/</span>APEHeader.cpp \
 xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>MACDll<span style="color: #000000; font-weight: bold;">/</span>Source<span style="color: #000000; font-weight: bold;">/</span>MACLib<span style="color: #000000; font-weight: bold;">/</span>APEHeader.cpp.old
<span style="color: #c20cb9; font-weight: bold;">mv</span> xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>MACDll<span style="color: #000000; font-weight: bold;">/</span>Source<span style="color: #000000; font-weight: bold;">/</span>MACLib<span style="color: #000000; font-weight: bold;">/</span>APEHeader.cpp.new \
 xbmc<span style="color: #000000; font-weight: bold;">/</span>cores<span style="color: #000000; font-weight: bold;">/</span>paplayer<span style="color: #000000; font-weight: bold;">/</span>MACDll<span style="color: #000000; font-weight: bold;">/</span>Source<span style="color: #000000; font-weight: bold;">/</span>MACLib<span style="color: #000000; font-weight: bold;">/</span>APEHeader.cpp</pre></div></div>

<p>Then modify the generated Makefire to include some libs that are missing from autoconf.<br />
Add the line starting with</p>

<div class="wp_syntax"><div class="code"><pre class="make" style="font-family:monospace;">LIBS<span style="color: #004400;">=-</span>lpython2<span style="color: #004400;">.</span>6 <span style="color: #004400;">...</span></pre></div></div>

<p>and after that add</p>

<div class="wp_syntax"><div class="code"><pre class="make" style="font-family:monospace;">LIBS<span style="color: #004400;">+=-</span>lmms <span style="color: #004400;">-</span>lavformat</pre></div></div>

<p>Then after the line starting with</p>

<div class="wp_syntax"><div class="code"><pre class="make" style="font-family:monospace;">OBJSXBMC<span style="color: #004400;">+=</span> xbmc<span style="color: #004400;">/</span>app<span style="color: #004400;">/</span>app<span style="color: #004400;">.</span>a <span style="color: #004400;">...</span></pre></div></div>

<p>add</p>

<div class="wp_syntax"><div class="code"><pre class="make" style="font-family:monospace;">OBJSXBMC<span style="color: #004400;">+=</span> xbmc<span style="color: #004400;">/</span>ThreadPolicy<span style="color: #004400;">.</span>o</pre></div></div>

<p>If you want more optimization you can find the lines</p>

<div class="wp_syntax"><div class="code"><pre class="make" style="font-family:monospace;">CFLAGS<span style="color: #004400;">=</span> <span style="color: #004400;">-</span>O2
CXXFLAGS<span style="color: #004400;">=-</span>D__STDC_CONSTANT_MACROS <span style="color: #004400;">-</span>I<span style="color: #004400;">/</span>usr<span style="color: #004400;">/</span><span style="color: #666622; font-weight: bold;">include</span><span style="color: #004400;">/</span>python2<span style="color: #004400;">.</span>6 <span style="color: #004400;">-</span>O2</pre></div></div>

<p>and change them to generate more optimized sources with -O3 or higher.</p>

<div class="wp_syntax"><div class="code"><pre class="make" style="font-family:monospace;">CFLAGS<span style="color: #004400;">=</span> <span style="color: #004400;">-</span>O3
CXXFLAGS<span style="color: #004400;">=-</span>D__STDC_CONSTANT_MACROS <span style="color: #004400;">-</span>I<span style="color: #004400;">/</span>usr<span style="color: #004400;">/</span><span style="color: #666622; font-weight: bold;">include</span><span style="color: #004400;">/</span>python2<span style="color: #004400;">.</span>6 <span style="color: #004400;">-</span>O3</pre></div></div>

<p>Then you can compile the sources using several threads (jobs) depending how strong is your computer. As my laptop is ages old I don&#8217;t use this option. If you encounter build problems using multiple jobs, try building it without the -j switch, as I heard there may be problems when running it this way.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span></pre></div></div>

<p>After a successful compilation you might want to install the files directly. You can do so issuing the following.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span></pre></div></div>

<p>As for me I want to create a deb package that has the correct dependencies. So I change to the debian directory and edit the control.i486 (or control.x86_64 for 64bit architectures) file as above to reference the correct xmlrpc and libdirectfb lib. Find the line starting with</p>
<pre>
Depends:
</pre>
<p>and replace the parts of the line
<pre>libxmlrpc-c3</pre>
<p> with
<pre>libxmlrpc-c3 | libxmlrpc-c3-0</pre>
<p> and
<pre>libdirectfb-1.2</pre>
<p> to
<pre>libdirectfb-1.2 | libdirectfb-1.2-9</pre>
<p> respectively.</p>
<p> Then just run from the source folder, as advised in the README.ubuntu.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">rm</span> skin<span style="color: #000000; font-weight: bold;">/</span>boxee<span style="color: #000000; font-weight: bold;">/</span>media<span style="color: #000000; font-weight: bold;">/</span>Textures.xbt
<span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #660033;">-C</span> skin<span style="color: #000000; font-weight: bold;">/</span>boxee<span style="color: #000000; font-weight: bold;">/</span>media</pre></div></div>

<p>Before creating the actual package however, one must modify the REV property in the make_debian.sh, as your package won&#8217;t be from the (non-public) boxee SVN repo. I suggest you change the line 151 in the file from</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">REV</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">svn</span> info  <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #ff0000;">&quot;Revision:&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s/Revision: //'</span><span style="color: #000000; font-weight: bold;">`</span></pre></div></div>

<p>to something else, like</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">REV</span>=banta</pre></div></div>

<p>Then you can build the package as advised.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> debian
.<span style="color: #000000; font-weight: bold;">/</span>make_debian.sh</pre></div></div>

<p>to end up with an installable package.</p>
<p>Well I hope it helped. My version of the package is available <a href="http://itworks.hu/wp-content/uploads/2011/02/boxee-0.9.23.banta.i486.deb">here</a>.</p>
<p><strong>Building on Natty</strong></p>
<p>The procedure is similar that of the one described above, with some changes that are Natty only.</p>
<p>Before running apt-get update, you must change the repository to point at the maverick repo.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #ff0000;">'s/natty/maverick/'</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list.d<span style="color: #000000; font-weight: bold;">/</span>team-xbmc-ppa-natty.list \
 <span style="color: #000000; font-weight: bold;">&gt;/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list.d<span style="color: #000000; font-weight: bold;">/</span>team-xbmc-ppa-natty.list.new; \
 <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list.d<span style="color: #000000; font-weight: bold;">/</span>team-xbmc-ppa-natty.list <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list.d<span style="color: #000000; font-weight: bold;">/</span>team-xbmc-ppa-natty.list.old; \
 <span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list.d<span style="color: #000000; font-weight: bold;">/</span>team-xbmc-ppa-natty.list.new <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list.d<span style="color: #000000; font-weight: bold;">/</span>team-xbmc-ppa-natty.list</pre></div></div>

<p>As I learned Natty uses python2.7 instead of 2.6, so if you want to  build it on the box with Natty you must install python 2.6 development libs.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> python2.6-dev</pre></div></div>

<p>When the libs are installed proceed as above until Makefile modification, where you should add</p>

<div class="wp_syntax"><div class="code"><pre class="make" style="font-family:monospace;">LIBS <span style="color: #004400;">+=</span> <span style="color: #004400;">-</span>lssl <span style="color: #004400;">-</span>lcrypto <span style="color: #004400;">-</span>lXext  <span style="color: #004400;">-</span>lmms <span style="color: #004400;">-</span>lsmbclient</pre></div></div>

<p>instead of the ones described at Maverick based builds.</p>
<p>You must also find the lines</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">else</span>
LIBS += xbmc<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>libsmb<span style="color: #000000; font-weight: bold;">/</span>libsmbclient-i486-linux.a</pre></div></div>

<p>and comment them out.</p>
<p><strong>Disclaimer</strong><br />
Since both machines I used for building the package are quite old and are not made of clean install, I might have some dangling libs you don&#8217;t. Should you encounter any problems in the build feel free to contact me with details!</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2011/02/05/building-streamlined-boxee-for-ubuntu-natty/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Regexp fun</title>
		<link>http://itworks.hu/2009/11/25/regexp-fun/</link>
		<comments>http://itworks.hu/2009/11/25/regexp-fun/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 21:57:31 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[regexp]]></category>
		<category><![CDATA[test]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=95</guid>
		<description><![CDATA[Reading the post about useful regular expressions,  remembered what my favourite solution is to one of  the questions of the test we give to junior Java developers. The task is to write a method that takes a string as a &#8230; <a href="http://itworks.hu/2009/11/25/regexp-fun/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Reading the post about<a href="http://www.mkyong.com/regular-expressions/10-java-regular-expression-examples-you-should-know/"> useful regular expressions</a>,  remembered what my favourite solution is to one of  the questions of the test we give to junior Java developers.</p>
<p>The task is to write a method that takes a string as a parameter and returns the acronym of the string in uppercase made up of the first letters of the words in the string. The acronym must ignore the words &#8220;the&#8221;, &#8220;of&#8221; and &#8220;and&#8221;.</p>
<p>The usual solutions are either to sequentially step through the string (Yuck!) or split it up or use a StringTokenizer class. The people usually overlook the fact, that the input strings can be padded with whitespace, or contain multiple spaces, and they usually ignore, that the keywords that are to be omitted might be found on the begining of a valid word. Thus my test &#8221; United   States of Andorra&#8221; string breaks most of the methods.  The ones who have time to write the answer down, usually forget to return the value from the method, or to change it to uppercase and sometimes even ignore that it should be a method to start with! This is my favourite question, as it can really show how the applicant can handle stressful situations.</p>
<p>I was tired after several interviews one day and tried to come up with the  shortest possible solution. Naturally it contains regular expressions.</p>
<p>My solution looked  something like this (OK I just reproduced it for the sake of the article, using nano and javac, so it might have overlooked flaws in it):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Acronym <span style="color: #009900;">&#123;</span> 
&nbsp;
<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> toAcronym<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> str<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> str.<span style="color: #006633;">toUpperCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.
                        <span style="color: #006633;">replaceAll</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;(THE|OF|AND)(<span style="color: #000099; font-weight: bold;">\\</span>W+|$)&quot;</span>,<span style="color: #0000ff;">&quot;&quot;</span><span style="color: #009900;">&#41;</span>.
                        <span style="color: #006633;">replaceAll</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;(<span style="color: #000099; font-weight: bold;">\\</span>w)<span style="color: #000099; font-weight: bold;">\\</span>w*<span style="color: #000099; font-weight: bold;">\\</span>W*&quot;</span>,<span style="color: #0000ff;">&quot;$1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main <span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> args<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>args.<span style="color: #006633;">length</span><span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>toAcronym<span style="color: #009900;">&#40;</span>args<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2009/11/25/regexp-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New trends in Linux desktop UIs</title>
		<link>http://itworks.hu/2009/11/24/new-trends-in-linux-desktop-uis/</link>
		<comments>http://itworks.hu/2009/11/24/new-trends-in-linux-desktop-uis/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 21:14:25 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=89</guid>
		<description><![CDATA[As I see there is a solid movement to reform the user interfaces that are in use in our computers. After all the menu bars with a start menu are on the mainstream desktops since the win95/OS2 era. And the &#8230; <a href="http://itworks.hu/2009/11/24/new-trends-in-linux-desktop-uis/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-medium wp-image-90" title="win95Menu-Word" src="http://itworks.hu/wp-content/uploads/2009/11/win95Menu-Word-300x231.jpg" alt="win95Menu-Word" width="300" height="231" />As I see there is a solid movement to reform the user interfaces that are in use in our computers. After all the menu bars with a start menu are on the mainstream desktops since the win95/OS2 era. And the programs can be started using icons on the desktop and the start menu. For the ones who know what they are looking for there is also a command line. And there is a task bar to switch your running applications. But things ought to change with time, shouldn&#8217;t they?</p>
<p><span id="more-89"></span>On Linux (Ubuntu) first there was a movement to make things fancier than on Windows. Compiz made a huge visual improvement but has not really changed anything. Having your desktop on a cube and spinning it around is particularly fancy, but not really useful.</p>
<p>Taking the ideas from MacOS X a couple of dock style window navigators popped up. Avant Window Navigator, Cairo Dock or Docky theme of the gnome-do (more about that later) These are really nice looking, but have no added value compared to standard application switcher that I see.</p>
<p><img class="size-medium wp-image-91 alignleft" title="gnome-shell" src="http://itworks.hu/wp-content/uploads/2009/11/gnome-shell-300x187.png" alt="gnome-shell" width="300" height="187" />The path gnome 3.0 is taking is quite different, it completely replaces the taskbar, with a live miniature based desktop switcher. It is activated with a hot-spot for mouse/thouchpad users, or a hotkey (Super) for those who don&#8217;t want to leave the keyboard.  You can switch to running apps with a single click, if unsure which window you want to see, you can use the wheel to zoom on the window before changing.</p>
<p>Personally I like it, and I&#8217;ve been using it on my laptop for weeks now. Why not on my desktop? Well, there is a catch. It requires working 3d acceleration to use. This rules out quite a few cards, all legacy nvidia and ati cards have issues. Basically it&#8217;s only Intel I&#8217;ve heard it works properly. Unfortunately there are no plans to support legacy cards. So for those hardware one will have to switch to icewm or kde based desktops.</p>
<p>There is more to desktop software than switching, after all you must start your applications before switching them. Are there improvements in that over the start menu?</p>
<p>First there is the intelligent start menu you find in Linux SuSe and Mint. It&#8217;s a lot like XP, where the most frequently applications are remembered and the menu provides you with that on opening. This is a change compared to the classic start menu, and is quite helpful. Unless of course you don&#8217;t quite where you find the application you are looking for in the menu. What can help there?</p>
<p>Both the upcoming gnome-shell and the gnome-do add-on provide an excellent, find as you type style interface, this greatly helps you finding the application you might want to start. It is quite basic in gnome-shell yet, and is only useful for finding applications and preferences with names and descriptions containing the characters typed. Gnome-do however is more advanced, it can be extended with plugins, that search in your IM&#8217;s contact list, recent documents, etc. This greatly speeds up application startup. I heard there are plans to integrate the gnome-do capabilities in gnome-do and I really welcome the idea.</p>
<p>On the whole I see the usability of the gnome-shell is the best enhancement in the past few years, and I really hope those wrinkles I meet every day will soon be eliminated.</p>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2009/11/24/new-trends-in-linux-desktop-uis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

