Wednesday, July 27, 2011

"Strangers don't last long here."

Hey guys, since my last post we've moved ourselves to Germany, and this post will be mainly about that.
Continuing from the last post, after almost 12 hours of travelling from Leicester to the small village in Germany
(coming by plane) we ended up in a place with 6000 population, looking like industrial zone, no pretty hills or sites, only smell of shit and look of grey everywhere.
As we entered the "apartment" that was "prepared", it was apparent that it is in line with the look & smell. It looked like it wasn't cleaned for a very long time, everything was very dusty and dirty, there were no cutlery, toilet paper, cleaning tools or sheets. The bed was broken, it is one of those matrices over wooden planks which fall all the time and some are already broken. To top it off the view of the building is one of the walls of a big factory which starts working early in the morning (lots of noise..). We cannot clean this place because the few tools for cleaning that are left are dirtier than the place itself.
The Internet - we were given access to a proxy which filters 50 % of the Internet, even has policies after some hours it starts filtering all sorts of sites, and it doesn't allow CONNECT method, meaning only web. We had to run Tor tunnel through it so we can connect to other ports outside, after all I can't do my job without Internet access, and when we called them and asked for real Internet access, they asked us - can you open ? As if browsing is Internet access, they also didn't know what SSH is. After they understood what we mean, they just told us that it can not be done. So now we are using Tor tunnel through squid proxy via wireless connection... You can imagine how much that sucks!
Eating cold sandwiches and the occasional under-cooked meal in such a place is not the way a person should live. A month is feasible but it is definitely not healthy.

Now about Germany, I was every enthusiastic about coming here and now it is the opposite. I think that for a big country of such type in this age you _must_ be able to accept at least debit (and credit) cards. Which is not the case here, they work mainly with EC cards only, and even the places which support those are not so many. In contrast with UK where I can get in the WC with a card, here I can't shop with it even at some stores at the airport or big super markets. I've been to Poland, Netherlands, Belgium and Austria, and they all accept cards everywhere. Although Germany has very nice autobahns (?!), its public transportation service is not very well organized. For example there are no buses Saturday and Sunday from/to the village. There are no trains from a big city nearby to Munich as well, etc. etc. Everything closes at 6 p.m., the only place we found that works late (23h!) is a brewery near by (5 km).
On the bright side I can say they have excellent bikeways, and a lot of them as well. Too bad we had our bikes stolen :-)
All in all Germany is definitely not a country where I can live. Now I started appreciating UK a lot more.

There will be a company party where my girlfriend works, and probably that will be interesting given that it is a 4000 employee company with 800 million of revenue, it should be a pretty big event. We'll see how that will play out :-)

Last few days I have few ideas going through my head, about the GRaph router. Firstly the just-in-time compiled code naturally arises in these applications, that is clear to everyone. What I don't like about it is the compiler optimizations that are missing (if done wrong) and also the ability to insert code into the kernel, ain't that pretty, needs a lot of thought to be done safely. Anyway I was thinking of using LLVM to generate node code and insert it into the kernel afterwards, it has great potential and will probably work well, so we'll not miss much of the compiler optimizations. But I also think that if we do a greatly optimized C version of the same code, the difference will not be more than 10 %, even in some cases it will be slower, because of the compiler and cache usage. One of the main uses of JIT (in this application) is to avoid going to memory so much, but as new architectures get faster and faster memory, and get optimized for other types of code/use, it is may be a better idea in the long run to make it in statically compiled language.
 On the other hand I was thinking about porting it to other operating systems, like Linux and the others from the BSD family. This task should be relatively easy, as much of the router is self-sustainable, the shared code is mostly in memory management, driver connection and upper layer connection (mostly for applications' sake). All that can be easily adapted to any operating system, so that will definitely be one of the goals. I am quite interested in porting it to minix 3, but there are no drivers (as of yet) for high performance ethernet adapters there. The worst part will be the user-space software (blah).

This weekend I had one of those Sunday-early-morning calls about a machine which has frozen (a central storage server), they are very pleasing, especially when you've been to a brewery the night before :-)
Anyway at first sight it looked like hardware issue, but eventually the most likely fault was in the software. So I did the long needed upgrade (it had very big uptime, so it wasn't touched for a while) of controller firmware, operating system kernel etc. etc. and now we're seeing noticeable change in performance (the raid controller works better). Hopefully it will stay that way for a long time, in contrast the other most important machine which distributes the work for the nodes has over 360 days of uptime, and it does 1000 things :) The nodes have stayed strong as well with over 360 days of uptime, which is very gratifying. Too bad soon there will be a huge upgrade to operating system and our software and restarting them will be imminent :-)

'til next time! Who knows maybe we'll end up in a small unknown African village, what is more frightening is that it might not be worse :-)))

Sunday, July 17, 2011

"Hello, Oompa Loompas of science!"

Hello again, some time passed and I forgot about this little place on the net :)
First off I have to say that I had my graduation ceremony which went fairly well in a nice place called Founder's Building. There were the hats, togas and a big ceremony in the chapel, I think the ceremony was for the Mathematics department and some other science (phylosophy ?) that day. Afterwards it continued with a reception in the yard and some hat throwing, so in the end it's official I am a master of science in Mathematics :)
But there's long way to go there (I have a pile of books to read in order to feel comfortable with this qualification). After that we went back to Leicester (we did Leicester -> London -> Egham -> Windsor -> London -> Leicester trip). It was a really interesting trip, I managed to get Amazon Kindle 3G (more on that later) on the way back and we had to run across the London underground in order to get in time for our train back, we barely managed to get there 5 minutes before leaving by cutting through a shorter underground line which saved us couple of stops. The next day we went in the National Space Centre in Leicester which is a really nice place, it deserves all the awards it had won most definetely. We had guests and got the chance to visit it again, this time we had time to do everything we missed last time :) and it was good fun, where will you get the chance to ride micro gravity simulator which uses air to simulate it.

Another interesting news is probably the fact that I have started rewriting some of the software I've written over the years in order to release it to the public (BSD license I guess), so it wouldn't gather dust on the drives :)
Since most of it is written for *BSD, it would take some effort to be ported to Linux or some other OS.
I am thinking to release these parts:
 - Lightweight multi-threaded DHCP server
 - Multi-threaded IGMP (multicast) relay software (currently used to offer TV in over 1000 VLANs)
 - SMTP Spam scanner (used to filter messages from a huge network)
 - DHCP/MAC logger (extremely efficient)
 - GRaph router :) (without the drivers, but with XML interfaces and some CLI when I get to write it)

I think that's about enough, there are few other small tools that will be released, but all of this depends on how  much time I'll have to prepare the packages and the software for that matter, because it has to be re-written in order to be released. All in good time I guess and volunteers are always welcome ;)

Before I got to UK I was able to attend the concert Sofia Rocks (went for Whitesnake and Judas Priest mostly), which really sucked. It was organization issues mainly, the scene was rather small, the beer shops were very few and worked even slower (no one was in a hury apparently to service the huge queue in front, we had to wait over 40 minutes to get a beer!). Whitesnake didn't do a nice show, they took a break after every song and while waiting there were few solos from members of the current band (?) but they were mostly weak, especially the guitar, and also there were some new songs but I think the public wanted the old great ones. Afterwards came Judas Priest and rocked the place with a great show. The End.

About the Kindle I was able to get (got it for my graduation as a present to myself :), it is REALLLY great device, probably my best buy for some time now. I am able to read everywhere, and with the 3G I can check/browse anything pretty much anywhere. It is very nice to have free internet connection in over 100 countries. And it is actually like paper, but the pictures look great too (being black/white with some gradients and all). I am really delighted by the device and will be reading a lot on it :) The PDF render nicely, you just have to switch it in landscape mode and they're read perfectly. I am like a little child in a candy shop and can't choose which books to read, so I have started 3 books in parallel :)
I was actually able to order another Kindle for a friend from my Kindle while away from home. The browser does great job given the circumstances. All in all it is a truly great device.

In the spirit of logically disconnected thoughts tonight I'll continue with another news, tonight we are flying to Germany (Munich), and will be there for some time (a month to few months), it will be interesting to see how everything is done over there, I am kind of a fan of Germany (can you believe that, given that I studied mathematics and most of my lecturers were German ?). I will definetely try to learn some German while I'm there, although we'll be in a small village near Munich. Good news is that it is near many countries and some very nice places like Vienna, which will be visited. And of course to try the infamous German beers will be one of the main goals :)
I have also a lot of work  (and reading for that matter) to do, so I hope I'll be able to catch up in Germany (it will be peaceful and that really helps me, I can't focus well otherwise). I am working on a hardware switch project which is going well, my friend who makes the hardware was able to give a test run to the first prototype and it switched (at least), so from here on I'll be busy writing its firmware to use the chip's capabilities which are impressive for something that small. Another aspect is that I am re-writing a BGPv4 package to work with my graph router, and also making a new version of the graph router itself, so I can't complain that I don't have anything to do :) Sleepless nights are ahead!

P.S. Hopefully soon I'll have some pictures from the graduation ceremony, and guys please stop sending me Google+ invitations, thank you but I will most definetely not enter any new social networks, the ones that I'm visiting are even more than I need, and most of all I don't want to rely on Google for everything.

Have fun!