На первое мая выдалась неплохая погода, и мы решили уехать из охваченного демонстрациями Берлина в небольшой городок Вердер на речке Хафель, находящийся в 35 км от столицы. В этом городе, частично расположенном на острове, каждый год в конце апреля - начале мая празднуют фестиваль цветения деревьев, собирая тысячи туристов со всех концов Германии.

Вердер, несмотря на свое северное расположение, с давних пор был известен своими винами. В средние века монахи цистерианцы из близлежащего монастыря Ленин (не имеющего к вождю мирового пролетариата никакого отношения), научили жителей Вердера выращивать виноград и делать из него вино. Несмотря на случающиеся иногда морозы и конкуренцию со стороны других немецких провинций, Вердер остается винодельческим регионом и поныне. Но известность городу принесли не виноградные вина, а фруктовые: яблочные, грушевые, малиновые, сливовые и многие другие. В период цветения фруктовых деревьев местные жители превращают главные улицы города в одну большую ярмарку, где можно как продегустировать, так и купить любой понравившийся сорт вина, закусить его блюдами немецкой и интернациональной кухни, побродить с шумной толпой между многочисленными сценами с различными представлениями или посидеть в саду под цветущими деревьями с бокалом вина, слушая, как местный исполнитель играет популярную рок-н-рольную песню с текстами на немецком языке, и наслаждаясь первыми теплыми деньками.

Место, где проходит фестиваль, пропустить невозможно - выходящая толпа не даст свернуть не туда:

image

Ну чем не первомайская демонстрация?

По обеим сторонам дороги поставлены прилавки, за которыми продаются десятки сортов местного вина, а также местные блюда на закуску. Некоторые сразу бутылями:

image

Некоторые в емкостях поменьше:

image

Мы соблазнились на стакан вина из ревеня: вкус оказался необычным, а крепость достаточной, чтобы немного развеселиться. Местные жители активно спаивают туристов предлагают попробовать вино перед покупкой, не важно, покупаешь ли ты стакан или целую бутылку.

image

На фото традиционный берлинский фаст-фуд - currywurst, порезанная сосиска, политая кетчупом и посыпанная карри. Острая штука!

А вот и цветущие деревья:

image

В некоторых местах продавали то же вино, но с лепестками цветов, на пол-евро дороже. Я, конечно, не эксперт в вине, но жевать лепестки в стакане - по-моему удовольствие то еще.

Но пожевать, безусловно, было что:

image

Пользуясь случаем, перед туристами выступали многочисленные уличные музыканты:

image

Кроме вина и еды продавали всякую всячину, от носков до деревянных драконов.

image

Ну и конечно пиво, куда в Германии без него :-)

image

image

В одном павильоне предлагали гамбургеры с полуметровыми сосисками. Мы, конечно, не удержались и померили :-) Если учесть, что сосиска поделена на 2 части, то как раз полметра!

image

После гастрономических изысков мы решили уйти подальше от толпы и пойти побродить по самому городу. Прогулявшись по улице с громким названием Унтер ден Линден на небольшой остров, соединенный лишь мостом с остальным городом, мы оказались в исторической части Вердера: монастырь, мельница, одноэтажные опрятные дома и пара вполне современных каруселей.

image

Оказывается когда ветряная мельница остановлена, то по ее крыльям можно прочитать текущее состояние.

image

Побродив по островку мы вышли к большой сцене, перед которой уже порядком разгоряченный народ ел, пил и подпевал хитам. Мы решили не оставать и заказали горячий по ощущениям начос :-)

image

По скоплению полиции стало понятно, что одним Берлином беспорядки могут и не ограничиться, поэтому мы решили поспешить домой до темноты. На вокзале, конечно, образовалась толпа, в которой периодически были заметны полицейские и какие-то еще служители правопорядка в желтых жилетах Anti-Konflikt Team. Полиция и работники ж/д работали, на мой взгляд, слажено - старались никого не провоцировать, и при подходе поезда становились так, чтобы направить толпу по определенному пути и не создавать давку при входе в вагон.

Прибыв в Берлин мы узнали, что на этот раз особенных беспорядков не было, разве что сожгли отделение того банка, в котором мы с gvirinko успели открыть счет. Но поскольку отделений у него много, то мы особенно не расстроились :-)

Recently there has been some buzz about digitalocean cheap VM offerings. Basically, they provide 512MB VMs with 1 CPU and 20GB SSD for only $5/month. Comparing to the Linode's similar plan (although, Linodes have 4 CPUs) that costs 4x less and it's a steal. I've been evaluating digitalocean for 2 weeks and finally decided to move on to save some bucks.

There are only a few services running on my Linode hosts: http, jabber, ftp and a couple of PostgreSQL test instances I can always recreate in a minute. The most important of those is the Openfire jabber (XMPP) server: I have a number of contacts, both personal and work-related, and starting from scratch was not an option. The real trick was not just to migrate the users/contacts database, but to run the new server on a domain that is different from the one that’s used by jabber: suppose my old server name is foo.com and my jabber address is alexk@foo.com. Let’s name the new server something.bar.com; my  goal is to preserve the @foo.com address while running Openfire on something.bar.com.

The server migration itself is very straightforward. I was installing the newest version of Openfire on a fresh Ubuntu 12.10 VPS. Ubuntu doesn’t ship the proprietary sun-java6-jre package anymore, but the new Openfire 3.8 works just fine with the openjdk-7-jre.

The Openfire installation itself is described in the official Openfire Linode howto. What’s missing there is the step to create the ‘openfire’ user:group and adjust permissions for the /opt/openfire to be owned by that group). It’s necessary to stop at the ‘configure your Openfire step’ if you are going to migrate settings and the database from another server. The settings migration is pretty simple and outlined in the Openfire support document: it involves copying the embedded-db and conf from the old installation directory into the new one and adjusting permissions for the openfire user to own them. The documentation also suggests copying the plugin subdirectory, but I didn’t have any plugins installed, so I left it out. The important step is to change the network interface in the conf/openfire.xml to match the address of a new server.

After moving the database and the settings from the old server, you can start Openfire, but you will be unable to connect to it yet. Login to the openfire web interface and you’ll see a warning sign near the server name. What’s happening is your client doesn’t know whether to go to connect to the new server. 

To help it we need to edit the foo.com DNS zone. The XMMP protocol introduces a few DNS SRV records to decouple the XMMP domain name from the actual location of the server. I had to add the following 3 records to the foo.com zone:

_xmpp-client._tcp 3600 IN SRV 5 0 5222 something.bar.com.

_xmmp-server._tcp 3600 IN SRV 5 0 5269 something.bar.com.

_jabber._tcp 3600 IN SRV 5 0 5269 something.bar.com.

The first record points the jabber client that looks for a server associated with the foo.com domain to the something.bar.com host port 5222 (standard XMMP port). The second one allows s2s (server to server) connections to do the same: this is useful if you need to communicate with users from different jabber domains, for instance those using google talk. The last one is likely obsolete, but I don’t have time to experiment with it. If you are new to the zone editing, make sure you’ve included the trailing dots in the fully-qualified name of your new server. You have to wait for at least the TTL (time-to-live) interval (3600 = 1 hour in hour case) for the new records to be propagate other DNS servers on the net.

In addition, I had to get to the openfire server settings and re-generate new self-signed certificates to allow TLS encrypted connections.

If you completed all the steps above you can start your client and it should pick up the new server location without any manual adjustments, as if nothing has changed. For some clients, for instance iChat, it might be necessary to enable automatic detection of the server and port, but in most cases it should just work.

I saw one minor issue with the new server: it doesn’t show me the logs, even after making sure the logs directory is accessible and manually creating all the necessary files (warn.log, error.log). I’m not sure whether the problem is in the usage of openjdk (the log viewer panel looks weird), or I’ve occasionally left some important part over during the migration, but the issue is quite annoying and I’ll be grateful for suggestions on how to resolve it. If you have one, or just liked this article, consider following me on twitter: 

Finally, if you are looking for a Linode vs Digitalocean suggestions, here’s the thread on the Linode forum that discuss the pros and cons extensively. I think Linode is a fantastic service (and they do a great service to the Linux community by making their howtos accessible to everyone), but paying $20 for each of the the two entry-level sysem seems to be a little too much for my casual usage. I’d consider returning if they cut the prices in half; meanwhile, Digitalocean is going to be my new digital home :-).

My PGConf.EU wish list

This year’s PGConf.EU starts tomorrow and few people from the community have already shared their talk preferences. To introduce a bit of an intrigue, I’ll write about the talks I haven’t decided on yet. The conference will have 3 concurrent streams of talks, and a lot of interesting ones are going to happen at the same time. I’ll have to make difficult choices from the following pairs of talks:

1. pgChess talk by Gianni Ciolli vs “High availability in Postgres XC, the symmetric PostgreSQL cluster” by Koichi Suzuki. pgChess is the one of the clever PostgreSQL extensions out there, embedding the chess engine inside the database and taking advantage of recursive queries to pick up moves. On the other hand, Postgres XC is not less interesting as a relatively new and powerful PostgreSQL clustering solution. It’s still under heavy development and I’m interested in learning about the project’s progress from Koichi-san, the project’s major contributor.

2. “How fast is PostgreSQL?” by Cédric Villemain vs “Graphs and topology with PostgreSQL and PostGIS” by Vincent Picavet. As a PostgreSQL consultant I’m really interested in a systematic approach to measuring PostgreSQL performance; as a math graduate, I can’t pass over the talk that mentions graphs and topology in title.

3. Pacemaker talk by Jehan-Guillame de Rorthais vs “Index support for regular expression search” by Alexander Korotkov. We use different clustering techniques here, in Command Prompt, and I’m interested in an opportunity to learn something new about pacemaker. As for the Alexander’s talk, it would be interesting to discover new ways to speed up regular expression searches in PostgreSQL, along with the implementation details.

4. “PostgreSQL backup strategies” by Magnus Hagander vs pgagent and PL/pgSQL talk by Julien Rouhaud. Actually, I won’t be able to attend either of them, since I’ll be speaking at the same time about Oracle to PostgreSQL migration.

5. “Maintaining very large databases” by Devrim GÜNDÜZ vs “Debugging complex SQL queries with writable CTEs” by Gianni Ciolli vs “GPU accelerated asynchronous query execution module” by KaiGai Kohei. I simply wish I could fork() myself for that 50 minutes, since all these subjects are extremely interesting to me.

"Large scale MySQL Migration to PostgreSQL" by Dimitry Fontaine vs "Limiting PostgreSQL resource consumption using the Linux kernel" by Hans-Jürgen Schönig vs "Using PostgreSQL for storing time-series data" by Sebastian Harl. Again, I wish I could attend all three at the same time.

I was going to start my picks from the choice between the multi-master replication talk by Andres Freund and Simon Riggs and “PL/pgSQL — internals” by Pavel Stehule, but later realized that Pavel’s talk is in Czech, which I can read to some extent, but spoken Czech is totally out of reach for me. I’d love to hear Pavel’s talk in English some other time.

Long and short, the conference schedule is packed with interesting talks and I’m excited to be there for the first time.

See you in Prague!

I never thought cycling is as much fun as it is. Today: bought the bicycle (GT Avalanche 3.0 MB), had an embarrassing moment of admitting I don’t know how to ride it, had really exhilarating  moments of learning how to ride and keeping my balance, if only for a couple of minutes. So far so good. Let’s see what the next day brings to the table… 

I was going to write about our experience at Kiev hippodrome, but our friends did that better; you can read about it at their blog. So today we’ll talk about beer, cause there ain’t no vacation without it. The next place we visited after hippodrome was a sausage joint. A German sausage joint, more like the German the sausage joint. But it’s not about sausages I’d like to tell you, but about an amazing beer I’ve tasted there. It’s called Aecht Schlenkeria  Rauchbier, and the last word actually translates as ‘smoked beer’ in German. It’s really has a smoky flavor thanks to the malt dried over the open flames. In fact it was so good that I don’t remember how did the sausage taste… 

German smoked beer, courtesy of George M. Groutas

(photo by George M. Groutas)

What I like about beer is that it democratizes writers. You can read this post or the one written by Shakespeare (if Shakespeare had a blog about beer), and you won’t understand anything until you actually taste the beverage in question. In fact, if you taste it non-stop for some time you won’t be able to tell a difference between this blog and the one written by Shakespeare. But let’s not trade quality for quantity and have just one more. 

This one is of the Belgian origin. It’s called kriek and produced by the Belle-Vue Brewery. According to the wikipedia it’s made by adding pitted sour cherries to the special belgian beer called lambic. In fact, kriek is a Dutch word for cherry. I didn’t know all these details when I tasted it, but I figured the cherry flavor, although I didn’t find the pits :-). I was skeptical about the fruit and berry flavored beers but that one made me regret of such attitude. 

And now I’m out for beer drinking, stay tuned for further posts!

On the second day of May we’ve decided to visit Uman, which is a 3 hours journey from Kyiv by bus. Early breakfast tea and a recent episode of Dan Carlin’s history show kept  me awake during the whole trip.

There are 2 major sightseeings in Uman: the famous Sofievka landscape park and the tomb of rebe Nahman, one of the most respected Jewish leaders. We’ve covered both on a single day.

The park appeared to be really big and quite dull, partially due to an unusually hot weather and lots of tourists visiting it for the May Day holiday. There was an abundance of hawkers selling food and souvenirs and, occasionally, artisans and musicians.

The jewish quarter, on the other hand, was all but boring. There were a lot of street signs in Hebrew, we found a street vendor selling kosher food (bought a couple of sugar coated candy stripes that were quite tasty) and the whole place felt more like Israel than Ukraine.

Finally, visited the tomb of the famous jewish holy man. Uman is a holy site for one of the branches of Judaism called Hasidism. The spiritual leader in Hasidic Judaism is called tzadik. Rebe Nachman of Breslov (former name of Uman) was one of the prominent tzadisks. A lot of jews visited Uman after his death in 1810 to pay a visit to his tomb and to pray in the Breslov Center constructed at the site of the his burial.

We’ve visited the tzadik’s tomb too.  Or so we thought…

The tomb resides in the Breslov Jewish culture center at the outskirts of Uman. The guard at the entrance asked my wife to follow into a separate room: according to the Hasidic tradition men and women shouldn’t pray together. Doesn’t getting the obvious fact that we weren’t there for a prayer he also gave me a kipa, a traditional mandatory Hasidic head cover, and let us inside.

(photo by wikipedia user Nahoumsabban.)

Here we go, kipa covered an trying to be serious, stumbling at funny grown up people wearing beards almost as long as their black gowns and wide brim hats, like it’s no summer around, jiggling and half-singing half-crying, occasionally leaning on the wall, and, of course, we were expected to pray too, and no, I couldn’t stop laughing while imagining that, but hey, people were praying there, try to remain calm. Will the guard shoot me if I shoot this funny guy in a beard? Not really looked forward to check that, so no photos or videos of mine, but here’s the one for you from youtube:

There were a lot of books in Hebrew (or was it Yiddish) at the desks all over the place: I assumed these were some Hasidic holy books.. What was missing is my cultural background to understand even a bit of what was happening. I felt alien like an arab terrorist being teleported to the unknown distant planet. Lucky us, there were signs all over the place. Too bad I can’t read in Hebrew… And, by the way, we were looking for the tomb of the holy man we can’t exactly remember the name of, could you, please help us? That’s not what I has boldness to ask, so we had to give up looking for the holy man’s last resting place and hurried away to the plain streets of a small ukrainian town, away from the unexplored culture and mystic books, to the familiar bus station and back to Kyiv.

All in all, Uman has been an interesting place to visit. You can find some photos at the usual place.

7am wake up, 3 metro stops and 2 hours by bus from our place in Kyiv to Chernihiv, a small city 90 miles north of the capital. It’s famous for the historical buildings and churches.

Apparently, the police had received a bomb alert in the city center on the day we arrived: every trash can had been emptied to prevent terrorists from hiding a bomb there; ultimately, one way or another, the terrorists had succeeded in trashing out the city center.

We stayed with the relatives of our friends and I can’t recall another time we had so much tasty food - if there is a death of a thousand meals - we were facing it fearlessly since we were too full up to be scared… In the first evening we took a really nice walk to the old town and found a couple of thousand year old churches and cathedrals, as well as a fortress surrounded by a moat grinned with cannons, but lacking the water.

Later that evening we were strolling along the bank of Strizhen river, listening to birds singing, frogs croaking and men drinking…

The next day we decided to take the direction of Bolding Hills that dominate over the city. A nice panorama of historical Chernihiv can be seen from the top. Additionally, the hills are a home to several notable Orthodox monasteries. In Eletsky monastery, which we visited first, an old woman was clearly exasperated by us taking photos with our phones and warned us that we wouldn’t get the God’s blessing until we stop using them. Personally, I’d choose my iPhone over God’s blessing any time, but we decided not to irritate the strange woman and headed to the next monastery.

In early Christianity there was a tradition of building underground churches and monasteries. Thousand years past the tradition didn’t die out. One of the well-known examples of underground structures in Ukraine is the Kyiv Pechersk Lavra. Another one, not as famous, but built by the same architect (Anthony of Kyiv), is St. Anthony caves in Chernihiv. There is a vast system of underground tunnels and cave churches, as well as cells for recluses.

The guide told us that one of the long and narrow halls is inhabited by a ghost; I’ve tried to shoot it with my phone camera, but, apparently, it was not fiendish enough for the task. The majority of monks actually never lived underground, but visited the cave temples regularly to pray. The caves themselves are chilly and humid, retaining the constant temperature 10C throughout the year. They provided shelter for the monks and Chernihiv citizens during major war conflicts, e.g. when the surface part of the monastery was eradicated by Tatar Mongolian raids in the 13th century. Interesting enough, the new caves were constructed as late as in the 20th century. The Soviets were actively building an atheistic state and banned multiple churches and monasteries at the time, Chernihiv was no exception. The monks decided to dig the underground churches and cells in the nearby hill and built a network of underground tunnels until they were finally discovered and closed by Soviets after two years of work.

After returning from the caves  to the surface and warming up a little we walked half a mile to the nearby St. Trinity monastery and climbed the bell-tower to observe the panoramic view of the city from the top ground.

From the bell-tower we saw a shingle for a nearby tea-house and we had awesome crêpes there. Afterwards, we walked to the Chernihiv railroad station that surprised us with its sheer prettiness.

One can take a train to nearby Belarus from there (114 km to Homel) , although we were not ready for that trip since some of us forgot their passports in Kyiv. Therefore, we took a bus back to Kyiv and arrived there  later in the evening.

I’ve posted photos from day 1 and day 2 online.

Early May is a usual vacation time here, in Ukraine. My wife and I decided to spend it in Kiev with our friends. We were enjoying the city over the first 2 days, strolling around parks and visiting museums.

Our first destination was the recently renovated Feofania landscape park. It belongs to the Ukrainian Academy of Sciences and hosts a number of rare plants as well as numerous tourists. The place is famous for the first electronic computer in continental Europe having being built here by a team of Soviet scientists led by academician Sergei A. Lebedev, who is often considered to be the father of the Soviet computer science. How can one build a computer in the park, you may ask… Lebedev’s project was very innovative at the time and Soviet government kept all development in secret. There was a shortage of places to conduct secret researches in the post-war Kiev, so a small abandoned monastery in a park in suburbs has been chosen as a research site. Ironically, the first computer of the state that was strictly atheistic has been built in a monastery :-). 

Today Feofania is an official landscape park and the monastery is renovated (unfortunately, we don’t have innovative computers there anymore). Apparently, it’s one of the favorite places for the newly-weds to take photos: we saw a lot of couples in the morning while exploring the park.

The unusual heat forced us out during noon. And there is no better place to spend the heated day as in the chilliness of the bar drinking beer and talking to old friends…

Which makes our next destination even more surprising. The place we decided to visit is called the Ukrainian Museum of Fine Arts. It’s located downtown, in a close proximity to the European square and contains a very decent collection of drawings, as well as a crazy  exposition of Ukrainian baroque installations.

After an hour spent trying to understand the connection between peculiar 3D-rendered scenes, drawings with way too much guro, sheets of paper with words written in different patterns among them and Ukrainian baroque we finally gave up and headed home. We had some time in the evening before going to bed and spent it watching the 'Fear and Trembling', the movie about a girl from Belgium  who tried hard to become an employee in a big Japanese corporation (in Japan) and failed. The girl did a lot of mistakes from the Japanese point of view, although she acted promptly and tried very hard to be polite and helpful by western standards: spoke a perfect Japanese with company clients (big deal: she was not expected to understand anything said at the meetings she served coffee at), tried to solace her superior after the latter was yelled at by the big boss and ran away to cry alone, helped a co-worker to finish a promising project which has been his own unapproved initiative, etc. At the moment her contract expired she was demoted from being a translator to cleaning up toilets. I suspect the movie exaggerated her troubles, although the movie is based on the autobiographical novel. That was not the first time I heard about the difference between western and Japanese mindsets at a workplace (this series of posts proved to be a fascinating reading in the past). If you were exposed personally to Japanese corporate culture and watched the movie I’d love to hear your opinion in comments on whether the facts depicted there could be true.

That was the end of our first day in Kiev. I’ve posted a couple more photos here.

I can’t be more excited about Mac OS X Lion full-screen mode. There is a small set of trusted apps I use regularly: Sublime Text 2, Evernote, Omnifocus, Mail.app, Preview, iTunes, Safari, 1Password, iChat and Terminal.app . Most of them, with an exception of 1Password and iChat, are already full-screen enabled, which mean that all important apps enjoy a lot of extra screen real-estate for their data. Extra space is especially useful in Sublime Text 2, allowing to view diffs in one panel and the original code in another one (with a potential space to see the diff applied to the code in the 3rd panel). To achieve this in Snow Leopard with TextMate, I used to switch between windows like crazy, but no more. The extra space, while being a major advantage, is not the only perk of working in a full screen mode.

Less distraction is another awesome result. It’s easy to be interrupted by an incoming email or a chat request if notifications are always visible (and hiding the dock doesn’t really solve the problem for me). Not so if everything you have in front of you is your current working app. My coding workspace with a full screen text editor looks like this:

See, there are no OS control elements, no menu bar, no dock, no notifications, absolutely nothing preventing a total submersion into the code. And, thanks to ST 2, and build system is only a shortcut away.

What is also interesting about this scheme is that it minimizes the number of inadvertent task switches. Naturally, I can now peek at the number of unread emails or chats only when (and right at) switching between tasks. So, if you see new incoming email notifications when task switching and have a feel for it, you can go to Mail.app temporarily, deal with it and get back to the original destination. And if you don’t want to see the notifications even in cmd-tab – 3 finger swipe to the rescue.

With almost every useful app running full-screen in its own space, the first screen, the only one running in a traditional windowed mode, becomes only marginally useful, in fact, I’ve switched more times to the dashboard nbsp;than to the first screen. It’s probably more of a wishful thinking, but I’d shoot for the Apple to limit the number of non full-screens by default to one or two in future versions of OS X and to make full-screen a preferred mode for every native app. That would be a straightforward way to get rid of windows.