Archive for the 'Computer' Category

Debian netinst with preseeding

Monday, July 19th, 2010

About two weeks ago I “killed” one of our clusters in California by rebooting the main server – which itself is kind of ridiculous oogle However, as the cluster was mainly dead and the installed version of CentOS was really messed up (and no big fan of CentOS is working here anymore), we decided to switch those machines to Debian. As I was the one killing it and I’m also the one desperatly needing some of those machines now, I took the burden to set them up again. So I had – actually I’m still having mrgreen – a lot of fun with CentOS, Debian, netinst and preseeding during the last days!

For the whole setup I could mainly follow the installation guide on debian.org but some things just didn’t work out as expected. At least locally I now figured them out and the installation is working end-to-end )
The main issue was to get the preseed.cfg to the client without having to alter the initrd. According to the manual (and tons of blogs), you just have to pass it as a kernel parameter. That’s just half of the truth. What’s missing in there is that you also have to send some more parameters right away so that the installation gets to the point where it loads the preseed.cfg (example). So if you ever have to set up something like that, don’t forget to pass in these parameters in your pxelinux.cfg/default:

append vga=normal initrd=debian-installer/i386/initrd.gz preseed/url=http://path/to/preseed.cfg debian-installer/locale=en_US console-keymaps-at/keymap=us netcfg/get_hostname=debian netcfg/get_domain=unassigned netcfg/choose_interface=eth1 -

(Don’t forget to check the interface in the last parameter. You can also skip it completely if you just have one network interface.)
My whole entry for the default Debian netinst looks like this now:

LABEL lenny
kernel debian-installer/i386/linux
append vga=normal initrd=debian-installer/i386/initrd.gz preseed/url=http://path/to/preseed.cfg debian-installer/locale=en_US console-keymaps-at/keymap=us netcfg/get_hostname=debian netcfg/get_domain=unassigned netcfg/choose_interface=eth1 -

This is enough for us right now because the cluster just has 5 machines so it’s easy to handle and we don’t intend to reinstall it that often. So there is no need for a bigger solution but if you have a big cluster with a lot of machines and you’re changing a lot of things all the time, you might want to take a look at FAI )

Paper published: Export Mobile Device Display Content

Tuesday, May 25th, 2010

Vor ein paar Monaten, ich glaube es war im Dezember oder Januar, haben wir ein Paper fuer die EWME 2010 in Darmstadt eingereicht und wurden akzeptiert. Zwischenzeitlich hat diese nun stattgefunden und das Paper kann hier runtergeladen werden )

And as the paper is in english, I guess this post should be as well:
A few months ago, I think it was in December, we submitted a paper to the EWME 2010. It got accepted and the EWME took place a few weeks ago. So the paper is now published and can be downloaded here )

Abstract – Within the Master Project “Wireless Mobility” this project was offered to IT Master Students during the second and third term and ran approximately over ten months. The project team developed a demonstrator platform to export the display content from a consumer mobile phone to a larger remote display, e.g. installed in a car. The key requirement was the utilization of non-proprietary technical solutions. This constrain did not limit the scope to standardized solutions only, but proprietary solutions ought to be open source or somehow accessible for the interested community. One important goal of this project was the awareness of latest design constraints and challenges in the Embedded Systems and System on Chip (SoC) area through a Project Based Learning (PBL) strategy. In this context, the students developed personal design competence, including specification, design trade-offs, design for testability, analysis and verification, and realization.

appazaar 1.0 in the Market

Monday, May 24th, 2010

After a lot of development we finally released the new version of appazaar last week and presented it on the Pervasive 2010 which was pretty successful )
If you have any comments, critics, ideas or whatsoever please leave a comment or send us an email!

Hey there, we got some good news for you )

While you’ve been looking for new apps using the lastest version of appazaar, we baked a new version with a lot of improvements and integrated a lot of your feedback as well as our own ideas into it! And now, after a long time of testing, it is finally available in the Market D

This is what the new mobile app looks like:

This are our changes in detail:
[..]

The complete post can be found here!

public static int wtf(String tag, String msg) in Android 2.2

Monday, May 24th, 2010

I just found this and I love it mrgreen

public static int wtf (String tag, String msg)
Since: API Level 8

What a Terrible Failure: Report a condition that should never happen. The error will always be logged at level ASSERT with the call stack. Depending on system configuration, a report may be added to the DropBoxManager and/or the process may be terminated immediately with an error dialog.
Parameters
tag Used to identify the source of a log message.
msg The message you would like logged.

“On Working Remotely”

Monday, May 10th, 2010

I just came across this article and think it’s a really good one so I thought about sharing it with you guys )

When I first chose my own adventure, I didn’t know what working remotely from home was going to be like. I had never done it before. As programmers go, I’m fairly social. Which still means I’m a borderline sociopath by normal standards. All the same, I was worried that I’d go stir-crazy with no division between my work life and my home life.

Well, I haven’t gone stir-crazy yet. I think. But in building Stack Overflow, I have learned a few things about what it means to work remotely — at least when it comes to programming. Our current team encompasses 5 people, distributed all over the USA, along with the team in NYC.[..]

Article on CodingHorror.com

Android on the iPhone & Flash

Thursday, April 22nd, 2010

Pretty interesting and I guess Steve is currently freaking out in his office mrgreen

…and furthermore as kind of expected:
Adobe sieht die Zukunft bei Android – und beerdigt Flash-Compiler fürs iPhone

Android & Multithreaded HTTP-Requests

Tuesday, April 6th, 2010

During the last 3 days on my new job at Sense Networks in New York I was supposed to fix some issues in a project concerning multi threaded http requests in an Android application. At first I thought it’d be a pretty easy task even though I never really used HttpConnectionManager before. So I started reading a bit about it and created some classes, interfaces and stuff like that to have a nice and generic architecture for the project. In fact I am using the MultiThreadedHttpConnectionManager (httpclient-3.x) but Android calls it ThreadSafeClientConnManager as it’s called in the httpclient-4.x which is currently in an alpha stadium.
After the first steps of implementing and testing the test application was throwing exceptions and I just couldn’t figure out why. It seemed to be totally random, the exception as well as the time it shows up. So I started reading tons of different tutorials for Android as well as for the Java2SE httpclient. No one seemed to experience the same problem and I admit it felt a bit like doing some basic newbie stuff wrong without knowing about it. After hours of research and testing the “bug” was finally found and it still seems to be pretty stupid but when you think about it, I’d say it isn’t that stupid. From my point of view it’s something that should be handled by the virtual machine, so for Android by Dalvik:
The response of a http request contains and entity which provides access to the content in form of an inputstream and this content has to be consumed otherwise it’ll never be removed from the memory even if you close/abort the request. Funny thing about this: I read ~50 pages, tutorials and threads but just one mentioned that in a comment line…
As all my tests were just sending a request to the given uri and then checking out the StatusLine for a possible error code the the response was closed if no error code was sent and “everything was fine”. At least that’s what I thought. In fact the sockets were still open, waiting for the empty content of the response to be consumed. So after some requests the memory was full and trying to open a new connection or sending a new request ended up in different exceptions (e.g. Timeout, Unknown Host, Connection refused). After figuring this out, the fix was quite easy. Now, before closing the response, the program consumes the content – even if it is empty – and then the vm cleans it up as expected. No more exceptions and everything works fine )

By the way, you might want to check out CabSense )