HTML

Random musings in IT

Friss topikok

Címkék

21 days (14) addon (3) Alfresco (1) analysis (1) android (6) angel investment (1) angularjs (2) ant (1) architect (2) architecture (2) Atoll (1) awstats (1) axis (1) axis2 (1) beta (1) blog (4) blogging (2) bluetoth keyboard (1) bofh (1) boxee (1) breakfast (1) build (1) cassandra (1) CGI (1) challenge (10) challenge cup (1) chinese (4) chromium (1) CMS (1) compaq contura aero (1) conference (1) consulting (1) continous-integration (2) Dark Data (1) DB2 (5) Debian (1) developer (1) development (1) document outliner (1) driver (1) Eclipse (3) ECM (2) education (1) EJB (1) ejb-client (1) emulator (1) etcd (1) experience (1) facebook (1) female (1) FileNet (1) firefox (2) freeplane (17) freeplaneGTD (17) fun (8) Geronimo (1) getting things done (1) gitlab (1) gnome (1) gtd (15) habit (3) hack (1) hacking (1) hdmi to vga (1) hibernate (1) HR (2) Hungary (1) I18N (1) IBM (1) in (1) Information Lifecycle Governance (1) interview (1) invitel (1) issues (1) It (2) J2ME (1) java (11) javascript (3) java security (1) JAX-WS (1) JBoss (1) JSF (1) kernel (1) Keyboard (1) layout (1) lighttpd (1) Linux (11) LXC (1) macro (1) maven (3) meetup (1) mercury (1) microservice (1) mindweb (5) motorola vip1910-9 (1) movie (1) MQ (1) mw3030r (1) natty (1) nginx (1) node.js (1) nodejs (1) nosql (1) OpenUP (1) Oracle (1) overheat (1) php (1) plugin (1) PrimeFaces (1) project (5) project management (1) RCP (1) recruiter (2) regexp (1) release (11) reporting (1) retrospective (2) rootkit (1) rss (1) RUP (1) script (1) server (1) shared library (1) SharePoint (1) SOA (1) spam (2) spellchecker (1) SQL (1) SSL (1) startup (2) stb (1) story (1) swing (1) SWT (2) tablet (4) tapermonkey (1) tech-beer (1) test (1) thoughts (1) timelapse (1) tomcat (1) toys (1) translate (2) typescript (1) ubuntu (1) ui (1) unified-process (1) University (1) usb (1) VirtualBox (2) virtualization (2) web-service (2) webcam (1) WebSphere (2) wicket (1) widget (1) Windows 8.1 (1) wordpress (3) X11 (1) Címkefelhő

As my employer uses Exchange mail server, I need a way to access my mail from my Ubuntu box. The current Evolution exchange connector is quite outdated, so I prefer to use the emerging Evolution EWS connector. It can access the addressbook, the calendar and even the MAIL! :D Since it's emerging it requires frequent recompilation. After installing the required tools and libs, it still doesn't compile on the Ubuntu 12.04, for the several deprecated API calls it makes. So I came up with the following script to compile it and prepare a nice little package from it.

#!/bin/bash
sudo rm -r evolution-ews ; git clone http://git.gnome.org/browse/evolution-ews -b gnome-3-2
sed '/\-Wall/ a \
\t-Wno-error=deprecated-declarations \
\t-Wno-missing-field-initializers' evolution-ews/configure.ac |
sed '/AC_SUBST(SOUP_CFLAGS)/ i \
AC_CHECK_LIB(gthread-2.0, g_thread_init)' >evolution-ews/configure.ac.new
mv evolution-ews/configure.ac.new evolution-ews/configure.ac
cd evolution-ews

./autogen.sh --prefix=/usr --disable-maintainer-mode
sudo checkinstall --pkgname=evolution-ews --pkgversion=3.2 --pkgrelease=git -requires `evolution \(\>\= 3.2\), evolution \(\<\<3.3\)` && sudo mv *.deb ..
cd ..

Címkék: in

6 komment

I've ordered nice little case for my Zenithink C71 a while ago,  with built-in USB keyboard. It's pretty basic,  and I won't call it state of the art,  but it's a hell of a lot better than tapping on the screen. Actually I'm using it at the moment to type this very post. There is a catch however: on the PC I've got used to typing on proper keyboards where I could just change the layout with a keyboard shortcut/mouse click. This however won't work on Android. To type accented characters when I'm typing in Hungarian I had to use the software keyboard.

To overcome this limitation I dug in deep to see how the keyboard is managed under Android, figure out the most elegant solution,  and implement it on my device.

Címkék: usb layout android Keyboard

3 komment

I've recently managed to lock myself out from my own server. My ssh key worked, but I couldn't sudo to administer the server.

Címkék: fun It

Szólj hozzá!

I've created a small update package to root the factory C71 ICS release. I hope it will be useful for others as well.

Szólj hozzá!

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 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.

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's descendants' inner structure, so it relies heavily on reflection to perform it's task. This springs the idea of generating the classes with their own toString methods, so the resulting code is more efficient.

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'd have to fill these objects with values, so I'd have data to compare.

So much for the task, but what'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.

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'd to start the compiler and then the surefire I (eventually ) went for the later approach.

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't set up the required Maven environment like builders, project, …etc. It doesn'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.

I then realized that from testing point of view it is in fact an integration test, not a "mere" 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's structure to the maven-invoker plugin'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's dependencies and the artifact to be tested. It's advised to create a settings.xml that points to your local repository, to limit the unnecessary fetching from your repositories. 

So far, so good. You should keep in mind however, the invoker plugin has some disadvantages. It's way slower than the harness. It doesn'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.

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.  :-)

I actually created a small and a full test environment, testing the particularities of the test separately. To debug the test code you'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.

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'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.

In the process I found 3 errors in the current code, that proved that the output of method'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.

Címkék: java maven

Szólj hozzá!

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 "Superpad III" clone which died no later than a day after I got it.

Know I'm typing on my brand new ZT-280  I received today.
I can't say I'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.

It's exterior is superb compared to the previous mentions, and is bordering on acceptable. I don't like the reddish metal finish on the sides too much, but it's not all that bad. I can't understand the mini USB connectors really. After all micro sockets are taking over, don't they? Also I don't get why a separate power input is needed, when it could use the 5v straight from the port. As far as I'm concerned it should have two micro USB and scrap the rest.

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's reasonable, as I don't want to change it too frequently anyway.

And so I used the pad for a day or so with the following issues.

The touch is a bit laggy, there are times, when the strength registers a "click " at a previous position. I seems like a driver issue and I don't think it would be dealt with anytime soon.

The firmware is definitely based on cyanogen 7 so it promise a relatively long usability period. Unfortunately it doesn'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.

Now again, I'm kind of late on publishing, so here's an update. A new release is available from the manufacturer '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've also recalibrated the battery, so now it provides a little bit more reliable info. This doesn'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't mind, as I leave office charge overnight anyway.

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. :-)

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.

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.

Chainfire works out of the box but I'm not a gamer, so I have no idea what's the point. I did some fooling Around in Fruit Ninja and Angry Birds but I can't tell the difference.

I wrote this article on the subway, using my ZTE Blade as a Wi-Fi hotspot to publish it.

Címkék: chinese tablet

Szólj hozzá!

I have a Motorola vip1910-9 set-top box provided by my ISP. It's a simple Linux based STB and I'm quite satisfied with it's capabilities. Unfortunately I could not hook it up to my TV with a standard HDMI cable only through scart.

After spending hours on the net looking for a solution I came over a Swedish forum, which gave away the solution.

  1. Reboot the box, either by power cycling or from the remote
  2. Press the Menu on the remote when the boot starts
  3. Change the output to the resolution your TV can do
  4. save and reboot

Címkék: invitel stb motorola vip1910-9

Szólj hozzá!

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's weaknesses I decided to order another one. This time I go for a more expensive piece.

Címkék: chinese android tablet

Szólj hozzá!

I'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 to receive it in three weeks time, even though it had 30 working days to arrive.

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.

The box is just plain white with a very low quality picture of the device. It is called MID (this week probably) but it's one of those cheap things you get rebranded under several aliases.

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't expect to get a Galaxy Tab for this money. :-)

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 here.

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 "Honeycomb theme" makes me puke.

Titanium backup does not seem to work on the rooted device, so I guess I'll have to live without. The image comes with a so far unknown AppMonster to do it's job. I'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.

It will still take some time for me to see if it was a sensible idea to get it or not.

Update

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's a significant lack of responsiveness on the display edges caused by the ignorant design.
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.
I've reverted the ROM to the Vestinous 1.3 release, that'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's just the limited memory.
I've later updated to the more stable Singularity ROM.

Címkék: chinese android tablet

5 komment

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's age, however is no longer compatible with the new widget based themes of WordPress.

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.

I've gathered a few manuals and rewritten the plugin as a widget using the guides found here and here, and found the 21st comment of the later article useful, explaining why the widget cannot be simply registered.

The whole thing didn't take more than half an hour to put together. I'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.

To use the widget, you can supply the widget title on the admin interface, other than that you can add the 'bofh' style to your CSS, and customize it's appearance.

.bofh {
...
}

If you are interested the plug-in is available here.

Címkék: widget php wordpress bofh

Szólj hozzá!

süti beállítások módosítása