<?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</title>
	<atom:link href="http://itworks.hu/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>Why are there so few female software developers in Hungary?</title>
		<link>http://itworks.hu/2011/03/16/why-are-there-so-few-female-software-developers-in-hungary/</link>
		<comments>http://itworks.hu/2011/03/16/why-are-there-so-few-female-software-developers-in-hungary/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 22:30:12 +0000</pubDate>
		<dc:creator>csak</dc:creator>
				<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[female]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[thoughts]]></category>
		<category><![CDATA[University]]></category>

		<guid isPermaLink="false">http://itworks.hu/?p=182</guid>
		<description><![CDATA[Recently I was musing about this topic and was trying to find reasons for this phenomenon. When I was running my company I interviewed several developers for open positions, and interestingly there was an unspeakable imbalance in the gender ratio. &#8230; <a href="http://itworks.hu/2011/03/16/why-are-there-so-few-female-software-developers-in-hungary/">Read more <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recently I was musing about this topic and was trying to find reasons for this phenomenon.</p>
<p>When I was running my company I interviewed several developers for open positions, and interestingly there was an unspeakable imbalance in the gender ratio. Namely I can only recall two ladies I interviewed, out of about a hundred subjects.</p>
<p>I&#8217;m trying to look into the root cause for this matter.</p>
<p><span id="more-182"></span></p>
<p><strong><em>Gender differences ?</em><br />
</strong></p>
<p>This is the answer that comes up easiest, but this is also the most controversial of all. I can almost hear the pro-women league boo. This however has an aspect that should not be overlooked or swept aside too easily.</p>
<p>I do believe that  there are no differences whatsoever in the brain capacities of the genders, also I firmly believe that women are equally capable of reasoning and thinking as men. However I think that,  probably due to upbringing or whatnot, women are generally better at tedious and repetitive tasks, while men are generally better at innovative jobs. Wait a second here, one would argue, doesn&#8217;t enterprise development consists mainly of tedious and repetitive tasks? Yes, I should say, that most enterprise development takes place in a framework, that uses the same pattern over and over again. So women should by all means be better at it then men. They would make less errors and would be better finding them!</p>
<p>So do I think  the reason is for having so few of them?</p>
<p><del>Women don&#8217; like taking risks</del> BS. there is no risk of becoming a high-paid SW developer,</p>
<p><del>Women are not interested in careers</del> BS. they are, as much as men,</p>
<p><del>Women won&#8217;t sacrifice their families</del> BS. this would mean there were loads of female juniors changing careers,</p>
<p>but wait, lets go back in time a bit, to</p>
<p><strong>Higher education<br />
</strong></p>
<p>Anyone knowing me, knows how much I loathe the higher education in Hungary. I believe it&#8217;s a relic and should be dealt with the respect it deserves (ie. none) So lets walk through the steps a kid decides gets her/his first graduate job.</p>
<ul>
<li>The kid does the entrance exams, passes and gets admitted.</li>
<li>He/she takes classes and does the exams,</li>
<li>The student chooses a topic for the thesis, prepares, and submits it.</li>
<li>The student passes the finals, and graduates.</li>
<li>He/she attends some recruitment fairs, talks to several HR people, submits loads of CVs, and attends several interviews, to get the first job.</li>
</ul>
<p>What could go wrong? It&#8217;s just studies, you decide you want to be in IT and attend a school for it.</p>
<p><strong>Choosing the career</strong></p>
<p>Let&#8217;s look at it in detail. How do you choose IT? When a boy plays about with the computer, he&#8217;s considered a wiz by the family, &#8220;He installed this and that on the computer, and removed viruses, and built his own, look at it with all the flashing LEDs and glow-in-the-dark stickers! He&#8217;s going to be a computer guy!&#8221; And so be it. The parents push the kid toward the career. As for a girl? This is not the kind of thing she should do. Is there anything remotely related to computer science in that above? It&#8217;s only an expensive LEGO, except girls get Barbies (and Apples, as those are more fashionable for a girl <img src='http://itworks.hu/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
<p><strong>Preparing for the admission tests</strong></p>
<p>If a girl is interested in CS, and wants to know more about it how could she proceed? You must pass your finals and the admission tests for the faculty. This always means, you must do Maths, and maybe even Physics on a higher level. These subjects are not considered to be &#8220;girl&#8221; subjects, and this is suggested to everyone through a lifetime. Even if she were talented and interested she would be discouraged at a point by family, friends, or the teachers themselves.</p>
<p>Will you actually use these subjects in the field? Definitely NO. Do you have any use of studying them? Unfortunately yes. These subjects are the only way as of now to acquire the basics of logical and methodological thinking.</p>
<p><strong>Studying through university/college</strong></p>
<p>When you&#8217;re in you just have to sit through several boring lectures, pass some boring exams high on caffeine and that&#8217;s it. Well as for sitting through the classes she&#8217;d have to face the same ordeal that she faced before getting there. I know of a lecturer, who told his students plainly, that no matter what he will NOT allow any girls to graduate, as they are not fit for being an engineer! (some still passed though on one of his better days)</p>
<p>I won&#8217;t complain about the current state of education, and the impracticality of the curriculum here, that should take it&#8217;s own post later on. But it all adds up to the discouraging atmosphere.</p>
<p><strong>Thesis</strong></p>
<p>Choosing a topic is easy, isn&#8217;t it? You get a list of topics you are in no respect prepared to wrestle, and in better cases you get a sponsor and and outside consultant to go with, in worse cases you get a topic and an ignorant inside consultant. (If you bring your own topic, than you are either a high-flier, who actually knows something, or a conceited wannabe, who will fail miserably.) Take someone who&#8217;s been told/suggested so many times, that she&#8217;s not for this career, and you&#8217;ll get someone who hesitates. And by the time she makes her mind up all the good subjects are gone. She can take the leftovers, with a disgruntled consultant.</p>
<p>Still the thesis is prepared and submitted. It has to be original, and imaginative. (Gosh, we are talking about preparing for a job that is not much more than patterns glued together with simple instructions!) Good thing they don&#8217;t mess around much on judging the thesis.</p>
<p><strong>Recruitment</strong></p>
<p>Now the last (?) hurdle. All she has to do is convince</p>
<ul>
<li>a recruiter, who probably has no idea how a computer works, or what the expectations are at the designation,</li>
<li>HR, who are the counterparts of the recruiter,</li>
<li>the technical team leader,</li>
</ul>
<p>at any position she applies for, that despite she knows nothing (this is rooted in the rotten education system and is not her fault), she&#8217;s the ideal candidate for the job. She has to fight all their prejudice to even get a job, where she could actually get to learn the ropes. But wait, there are still lots of boys queuing up for the same position. So they either end up in administration, project management or (like the only female member of our study group) working behind a counter at a computer parts shop. If they insist on taking a technical job, the odds are high it won&#8217;t be at a respected company but at a web-app sweatshop, with no good prospects, as she won&#8217;t get a chance of learning the best practices.</p>
<p><strong>Conclusion</strong></p>
<p>There is no way to change this from one day to another. There is a need to change the general attitude towards women in technical positions. Even if it the change starts it will take many generations to level up.</p>
<p>On the positive side I&#8217;ve lately seen several examples of contractors providing ladies as developers, and trust me they are no worse than the guys they sent. They all suck.</p>
<p><strong>Side note</strong></p>
<p>OK. Once you got up to this, I have to admit a few things</p>
<ul>
<li>I&#8217;m prepping for an interview tomorrow, so I&#8217;m trying to get my English writing and thematic vocabulary in shape,</li>
<li>I&#8217;m currently working with some aged whiz-kids who get on my nerves at times, who could easily be replaced by hard-working people, or simply working would even be an improvement.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://itworks.hu/2011/03/16/why-are-there-so-few-female-software-developers-in-hungary/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>
	</channel>
</rss>

