Among the natives…

July 18, 2008

Germans

Filed under: travel — dkrzemin @ 2:27 pm

Germans now know how Poles call Poland. We speak English of course. My German is limited to only a couple of random phrases remaining from my university course. Something about one calling one’s dog. Not enough for even a limited conversation. The Germans are coming back from vacations in US. ‘Boston’ – they say slowly – ‘is an expensive city’. Which it is. Even if you allow for a nice boost related to spending Euros and not dollars.

We talk on the plane to Amsterdam. They ask for white wine like someone who never ordered wine before. I still remember the feeling: free booze and the suspicion that there is a trick somewhere. They are asked if they are twenty one. To which they say yes. Not very convinced flight attendant gives them wine. After all we probably left by then the airspace of the most puritan country on the globe.

Besides, those are really cute Germans: blue eyes and sandy sandy hair type. They remind me of Patrick: one of the first Germans I met in person. We were all seating on the beach near Gdansk many, many, many years ago. Some kind of future leaders conference that started popping out and gave poor students an opportunity to make some money working as hosts and translators. It felt strange then. We were a group of people from various countries, not all of us spoke English well and we still managed to have tons of fun. The guy from the States was imitating our English accents. That is what people from the States do to make up for not actually knowing any other language. We were playing stupid word games. Telling stories from the world suddenly and unexpectedly not divided any more into clean us vs. them categories. It was a nice, warm, short June night that followed really hot day. We were sitting by the fire and I probably was saying something about how unusual it was. Just because I  always say  something like that. And then Patrick said suddenly: ‘I do not really look like a typical German’.

International crowd politely did not say anything. Patrick could not look more German if he tried. There were shameful times in the history of the old continent, when his face could be featured on the worst propaganda posters. People whose names I don’t care to mention here, would have been proud of the way he looked. But Patrick visibly hated those people. And we did not care that he was handsome in an Aryan way. So after a moment of awkward silence we weakly agreed. We agreed – defying reality of his blond hair and impossibly blue eyes. He had more wine and then, as if suspecting that something was amiss, he insisted on speaking French. We let him.

Back to modern cute Germans. They share impressions from their American vacations. Standard trip. Toronto, Chicago, Niagara falls -  mispronouncing the falls name the way entire non-english speaking world does that so I do not even think about correcting them. I know several native speaker who spell it Naiagra so why bother…

Then they ask about me. ‘Poland’, I say, ‘Gdansk’, ‘Danzig’, I add. Since I call both Lviv and Vilnius using their Polish names I want to let them know it’s cool with me no matter which name they use. Patrick, by the way, would not be caught dead calling Danzig anything but Gdansk. But Patrick called his home city Köln – Cologne.

‘Yes’, my Germans say. ‘Polen’, they say. ‘Polska’, they say.

Which sounds strange in the middle of an English sentence spoken with a German accent. I should not be surprised. They have seen it on TV during football match during world cup or Euro cup. They have heard it yelled by people with faces painted red and white. Why wouldn’t they know how to pronounce it. Polen. Polska.

They do not remember the Wall, they were never in their life stopped on a French-German border and asked for a passport. They have younger siblings who will never understand that how one can be stopped on Polish-German border either. They would be surprised to hear about Patrick. And Patrick probably does not give the damn about how German he looks any more either. Not even when drunk on the beach. By now he is probably worried about the fact that he’s balding instead.

We land in Amsterdam. The line is long and my compatriots who are suddenly numerous are – as always – masters at jumping it. Germans form the most perfect line of course. We joke about it. I am hiding my barely looked at passport deeply in my bag. No need to take it out until I get on the plane back to US. I manage to forget that my bottled water bought in Boston after crossing security line is no good here. I need European water to get on European plane apparently.

It’s time to say goodbye to cute Germans. They go to Bremen.  ‘Brema’, I repeat in my head silently as if it was a name of a cool and exotic place. And then I say it aloud in the middle of English sentence.

‘Brema’, is how my people call it.

The damn Germans, as if they were bent on defying stereotypes, never stop smiling.

March 30, 2008

Worst UI ever

Filed under: coding — Tags: — dkrzemin @ 7:40 am

For a life demo of user interface which fails so terribly that users are known to either swear or fall to their knees and weep silently I would like to invite everyone to AMC (formerly Loews) movie theatre on Boston Commons. This is a one beautiful movie theater and absolutely the only place on Earth where you should see Departed. I did it one night and after we left the theater it felt like the movie never ended: you see a golden globe of Massachusetts state capitol and when walking through Chinatown I half expected Leonardo Di Caprio pop from around the corner.

ATM like machines or rather the reaction that they elicit might actually sell tickets as a major tourist attraction on its own. The theater going public in Boston downtown consist mostly of college kids. They were born after the PC. They never knew the world without a personal computer and it takes a lot to make them give up and get the ticket in a normal way but those ATM do achieve that feat.

You may think that it would take about 3 clicks to buy the tickets. Select the show, select the number of tickets, swipe the card and you are done. Apparently, it would be too simple. First you are presented with the list of movie titles. The screen is  small, but not that small that it would not fit 30 titles. However UI designer – if there was a designer – chose the font size that allows only 15 movies to show up. It’s a big movie theater and the movie that you want to see is always on the second or third screen. You get to the next screen by clicking something that looks suspiciously as yet another movie title. One day someone is going to release the movie More and make the whole exercise even more interesting. It’s not easy to find the movie you are going to see because the titles are displayed in a random order. I am not kidding here. It is a random list. One would have thought that at any given moment there are no more than 3 or 4 movie starting, and since I am here at 5 I do not want to see the movie that starts at 10. But no: in spite of the fact that ATM knows the current time, there is no attempt to present movies that are just starting at the beginning of the list.

I do not know about you but I rarely go to see the movie alone. Even less commonly I buy 0 tickets. But that’s exactly the default: 0 tickets. Being in love with 0 is a dead giveaway for mediocre computer geeks. You know – the type that would never go to actually see the movie. By my completely unscientific study 75% of the public on any given night is there in tandems. We might as well make life easier for them, since simple math shows they would need 2 tickets.Once you manage to select the movie and select number of tickets and go through several ‘are you sure’ screens you need to swipe your credit card. It’s not simple since you have to do it exactly the right way – not too slow, not too fast, proper side up. And then the machine starts whirling and ask the pivotal question “Are you an AMC movie watcher”. Since you’re buying tickets to watch the movie at an AMC theatre you are tempted to say “yes”. Big mistake. Movie watcher is a loyalty program. Saying yes requires that you enter your movie watcher id. If you do not have your ID your entire transaction will be canceled and you’ll have to spend another 5 minutes in front of the spiteful ATM. Because this slows everything down and apparently no-one actually is “AMC movie watcher” the person behind you usually yells “Press NO” when the dreaded question appears. I have been a witness to ATM range when quite an attractive girl was close to knocking down a scary looking guy who pressed yes twice in the row and was heading for a hat-trick.

After you safely navigated the screens, machine attempts to print your tickets. At this point it might determine that there is no paper. It was just playing with you, but it is really sorry it cannot print your tickets and – I am not kidding – offers to sell you tickets to some other show. Because apparently the out of paper state is somehow transient and can fix itself. Or maybe this time you’ll be a good pal and actually buy 0 tickets. No need to prevent 0 ticket buying public to enjoy their 5 minutes of pain just because there is no paper I guess.

On this rare occasion when the machine does have paper it starts throwing tickets at you. First you get a receipt from previous transaction. Since no-one really needs or expects it, no-one waits for it either. Then there is a curve ball of tickets. The people in line are friendly: if you do not intercept them properly, they will be willing to catch them for you. Make sure not to knock them down going for a catch. But I am being unfair to UI designers here: the throwing ticket problem is entirely mechanical. Can be probably fixed by installing ticket guard of some kind.

The UI on the other hand is beyond help.

December 6, 2007

Things people are eager to tell you…

Filed under: coding — dkrzemin @ 8:56 pm
Damian: I noticed that if one writes on the list “I am going to do this and this”
Damian: it’s better than “what should I do?”
Kevin: ok
Kevin: people are always eager to tell someone they are a moron, but not as eager to answer questions :)

Powered by ScribeFire.

November 7, 2007

Sketches of Frank Ghery

Filed under: coding — dkrzemin @ 3:51 pm

Coding is not like building houses. The two are often compared. However, this comparison usually results in all kinds of design recommendation that effectively prohibit producing any usable software.

If you want to see that metaphor reversed make sure to watch Sketches of Frank Ghery movie. It shows the architect who design buildings the way that software should be written. There are of course beautiful buildings to watch: Disney Concert hall, Bilbao Guggenheim.

It’s a movie about architecture, but more than that it’s a movie about design process: iterative modeling, refactoring, debugging – it is all there. Gehry is definitely into refactoring. And into small iterations. It’s fun to watch when Gehry and his team apply programming terminology to the models they create. Sidney Pollack could not possibly make a movie about a coders, but only because bunch of geeks arguing on the list or looking into Eclipse IDE is not as photogenic. But in our day to day job I find myself arguing about the same things as people in this movie.

There is a question of recognizing good and bad design: knowing that you got it right, Admitting that you got it wrong. I do not care what people say but we all go by some sense of internal beauty here. You say that code is elegant or (more often) messy. You say that something feels right. That’s exactly how people in the movie talk about their experience.

In some way we – coders – have it easy: we work in a medium that translates directly into the resulting product. Software compilation is handled by computers; your design is expressed in code. You work in a strictly defined – and some say limited – vocabulary, but if you follow syntax rules you do not have to worry that someone misinterprets your vision. Not so much for architects, if they do not find a proper way to express themselves through drawings, models and design documents the resulting building might not be what they imagined. They show one of such buildings in the movie: it still looks great to me (but I did not “code” it).

Architectures – like programmers – are hired help. The interesting thing is that in both cases frequent interactions with customers actually result in a better end product. It’s not a one way street, but a learning process were vision shapes the expectations and expectations shape the vision. There is even a similar feeling of an establishment pressure. It’s not easy to propose and build something different. Gehry’s buildings are like Linux in Windows world. (And yes I have to say it: some of those buildings do not have windows – at least not in a traditional sense)

Similarly to coding, in architecture one can do very little alone. You have to have a team of people. Organizing such team, making sure that people are motivated and happy to work on the same project is an art in itself. And in architecture – as in coding – you need to have proper tools. It’s kind of sad that probably architects are better than us at using computers to develop their ideas. The stuff that they do with computers is amazing. We live in the world of primitive editors, outdated version control system and sink under the code that has not been automatically tested.

If you code for living this is a film for you. Even if you do not care for this obvious ‘architecture is like coding analogy’, even if you will not like the amazing buildings that it shows, you will appreciate the live demo of what computers can be used for. And you will feel proud that you are in this business.

September 23, 2007

Italy

Filed under: travel — dkrzemin @ 1:00 pm

There is little that can be said to prepare one for how incredibly beautiful Italian cities are. You cannot really look at the picture of Florence cathedral and imagine how it’ll make you stop the first time you see it on a warm September night. There is a Roman arena in Verona on the edge of the city from a completely different era, but still an old city to us. Bologna is stately and red. Venezia is the most improbable place that ever existed. Siena is proudly displaying its medieval grace. Ravenna has arrived to us by the way of Byzantium and some not entirely forgotten barbarians. Cordona does really make you feel that the only reasonable course of action is to buy a house nearby and stay forever, replaying this stupid movie. Incredibly just after midnight on Wednesday, the main square in Perugia is full of locals sitting on cathedral stairs drinking, smoking, eating and talking. ‘This is a rich and small continent’ my brother says and I suddenly feel deprived. But then I remember I am from here. The officer on the border just waved me in seeing my EU passport. There are blue flags with yellow stars everywhere and I pay with this completely artificial currency that suddenly and inconveniently surges against the good old dollar.

Caterina is a taxi driver in Firenze. Her Chrysler is painted in butterflies and flowers. I have to keep a stuffed dodo on my lap since it’s 4 of us and I am on the passenger seat, which is normally occupied by colorful stuffed animals. We stop on the red light and Caterina gives away some candy. We talk about life and generally agree that good things happen to people who expect them. Evidently. I promise myself to expect a lot of good things and I got rewarded 5 minutes later with the view of the cathedral.

The trip is more like traveling from planet to planet and not from city to city. Pisa, Padova, Genova, Orvietto, Arezzo. Not necessarily in this order. Sometimes empty as if they were abandoned. Sometimes full of noisy tourists.

Italians know what they have. They devised an elaborate system of keeping visitors away. They make you pay every time you want to use the toilet. They translate Italian signs into English to confuse people. They make you stay in line every time you want to do anything. They suggest it’s a good idea to go shopping in Milan. Still, they fail miserably at being ungracious hosts. There is wine to be drunk, food to be eaten, places to be seen. Friends to be made. On the trails of Cinque Terra I am asked to take a picture of a young couple. They are from Utah. The view is stunning but I have been to Utah, so I say something about them not having to be envious. They protest. They point to blue waters of Mediterranean. And to the olives groves. And to vineyards impossibly placed on the hills. So I take the picture and say ‘prego’. This is quite close to the limit of my Italian but it seems fitting.

And yes – there are still tomatoes that taste like tomatoes. Unlike flying to the moon, growing them is not a forgotten skill.

August 18, 2007

The last laptop I’ll ever have?

Filed under: sipXconfig — dkrzemin @ 12:52 pm
Recently I was changing laptops with a head spinning frequency. My old trusted Dell Latitude D600 decided to finally quit on me: with a whimper not with a bang. The relationship lasted 3 years so I was not really surprised. It took me about 30 seconds to put my disk in a similar laptop, which unfortunately decided to quit as well. Than I found a HP Pavilion that weights about as much as baby elephant and makes sound similar to that of the starting jet engine. Applying adjective ‘portable’ to this beast is probably a text book example of unintended irony. Finally I got a new HP Compaq nc8430. This wild ride made me realize couple of things.

I take it for granted now that I can take my hard drive, pop it into completely different machine and my Fedora will wake up, dutifully discover everything and will start working. I might get suboptimal video or my wireless might be missing, but everything else will just be there. And whenever I cannot take the hard drive (apparently the standard changed when I blinked) I can take my trusted home directory.

It sounds normal but when I mentioned it to my Windows based colleagues they were certain that grieving the loss of my Dell confounded my sense of reality. Everybody apparently knows that switching laptops can take weeks if not months of painful reinstalling, countless migrations application and hours on the phone with your friendly customer support transferring your software licenses. Why exactly people put up with it is beyond me.

I am proud user of nv8430 these days. Switching to HP is a company mandate. I cannot really full-heartedly recommended it for daily hacking. Screen is gorgeous, but ATI video card does not really run well unless you install proprietary driver. No Beryl fun to be had, so I cannot show off to my Windows friends. The fan never switches off and runs quiet only if I set ARI card in a power saving mode. And apparently ‘business class’ is marketingese for ‘ugly’. But with its dual core it’s noticebaly faster than Pentium M Dell. Cuts sipXconfig the compilation time to about 70%, and I can run infamous sipXconfig’s ‘ant precommit’ target (which cleans, compiles and run all kinds of tests, including database and UI tests) in about 5 minutes (used to be more than 10 recently). The battery life is decent too: measured in hours not in minutes.
I am yet to figure out how to put it to sleep or hibernate. Out of the box Gnome’s sleep option makes X to go away and text console spitting some garbage (I am blaming the proprietary video, but I have noo proof yet).

I certainly hope my hard drive changing behavior would soon become a norm. I will stop carrying laptops altogether. I will just carry my a flash disk with favorite Linux installation. There will be a powerful, generic diskless station in the office where I plug in my hard drive and after 10 second boot procedure I will have my familiar environment. And even that will be a short-lived fad because the internet will make it possible to store OS image on-line.
So this might be the last laptop I’ll ever have. I should be nicer to it.

Powered by ScribeFire.

July 20, 2007

Hold the Secret Sauce please

Filed under: sipXconfig — dkrzemin @ 8:13 pm
Brian Rigss wrote a small piece on Nortel and SIPFoundry. It’s an interesting news for all VoIP fans and it’s a very good news for SIPFoundry community.I was slightly surprised that open source hackers now apparently roam in loose-knit bands. It is a quaint image evoking sorely missing sense of adventure. As charming images go, this one has little to do with reality and is easily dispelled by subscribing to any devel list – including sipX one – and counting the references to my boss and my company.

I cannot resist having some fun with his secret sauce metaphor. To quote Brian:

[...] VoIP software has been sacrosanct. It’s the secret sauce. It’s the way IP PBX developers ensure that their customers have access to the most advanced sets of call features. It’s how they add value to their product, differentiate from competitors, generate the majority of their revenue, and transform themselves from providers of monolithic PBX cabinetry and into communications software developers of the future.

I happen to think that Secret Sauce turned out to be not what people hoped it to be. Actually, I think that it’s not a sauce at all but a trans fat., which – at least according to wikipedia – is neither required nor beneficial for health.

If I were running a corporation, I would be suspicious of my communication system being dependent on a secret sauce. What happens if I get hooked and secret sauce provider goes out of business, what if their secret sauce does not mix well with the secret sauce of the other guy. Do I really want to take this risk?

I prefer my secret sauce provider to start making money on something that I actually want to pay for: developing more features, faster and better than their competition. Without hiding behind a secret recipe.

In several US states overactive legislatures banned trans-fats. I wonder if the Secret Sauce is next on the agenda.

May 27, 2007

subversion: overdue good-bye?

Filed under: subversion — dkrzemin @ 1:58 pm
I discovered subversion before it got to 1.0. I convinced people working with me then to switch. At that time we were using ClearCase. Simplicity and speed of subversion was in comparison exhilarating. I even wrote couple of simple ruby scripts to bridge official ClearCase and our subversive repository. Even the name was perfect. Let’s just say that even my undeniable sense of humor and personal charm failed to mend strained relations with Release Engineering group (yeah – it was a big company).When I started working in Pingtel sipx developers already had been using subversion. Since it was about the time we needed to create our first real branch I took upon myself figuring out how to use svnmerge. We never looked back.

If that was not enough Producing Open Source Software that Douglas made me read at one point practically defined the way I think about my job. And it’s written by Karl Fogel – yes – the subversion Karl Fogel.

I am writing all that to prove that I really like subversion. So it saddens me to realize that my favorite tool is most probably no longer the best tool.

As a part of my daily job I am committing patches sent by contributors. From time to time I create branches for people who want to experiment with sipx without breaking mainline. And slowly I begin to think that my job would be easier with a different tool. And that with a different tool sipXconfig and sipx would get more contributions and better contributions.

With subversion – or any other centralized SCM – there are always two categories of people: those with commit access and everybody else. Committers and patch senders. In-crowd and followers. Eloi and Morlocks.
As a patch sender you have to create your working copy, make your changes, send the patch – and – never use this working copy again. At least not until someone with commit access actually commits your patch. If the patch gets not accepted in its original form and you want to fix it, you are losing the history. You cannot somehow save your changes locally and than make changes on top of your changes. At least if you only have one patch you can keep updating the working copy and track the mainline. If you have more than a single patch however you are doomed. Subversion does not make life easy for you. I wonder how many useful contribution sipx is losing just because it’s too hard to contribute anything more than a simple patch.

But even once you get commit access the problems do not stop. Before you get commit rights your every step is watched, every patch reviewed, every extra space corrected. Once you do not have to send patches for approval anymore it changes. It’s not about becoming sloppy. It’s about the lack of feedback. Even if someone does review your commits, and people do, once you check something in, it’s in. Official. With good chances to survive forever without being looked at. One of the biggest benefits of open source, constant peer code review, is not the default option.

I started thinking about it after reviewing several patches last week. I took some. I rejected some. I sent comments or my own fixes on top of those patches for review. I knew what I was doing with subversion all the time but somehow it felt like I am working around my SCM rather than using it.

I thought of darcs which I discovered when trying out buildbot (sipx nightlies are courtesy of buildbot). That lead me to git, mercurial and others. It quickly became obvious I was not alone. Mozilla chose Mercurial over Bazaar (both distributed). They did not even shortlist subversion. Linus with his usual flair refers to subversion as the most pointless project ever started. He has a point. Open source project should never use anything but distributed SCM.

Source Control Management history follows the script leading to more freedom to modify and experiment: “lock-modify-commit” gets replaced by “copy-modify-merge-commit” (no locking) which in turn morphs into “pull-modify-commit-push” (no central repository).

If only I could figure out how this tailor thing works, I would set up mercurial mirror of sipx and encourage contributors to use it. Exciting.

Powered by ScribeFire.

May 21, 2007

Sometimes it’s just better to let go

Filed under: sipXconfig — dkrzemin @ 1:48 pm
Contrary to what many people think open source applications are not created by a bunch of crazy, willing to work for free volunteers. At least not only by them. Read Linus’s biography to find out more. Often open source contributors are engineers employed by big and small corporations.

There are many reasons why a for-profit corporation might consider sponsoring or developing open source projects. Ensuring support for a project that is outside of company’s core strategic interest and assuring the customers that they are not vendor-locked are the most commonly cited ones. Another reason – probably not so often discussed – is cooperation with your business partners.

Software companies often engage in shared deals, shared developement, strategic partnerships. It’s a not-so-well kept secret that deals like that often fail, generating little more than several widely discussed press releases. It’s usually the clash between corporate cultures and internal politics that prevent even reasonable deal to go forward.

The situation changes when companies cooperate within the realms of on an open source project. Especially, if it is a well established project with wide community of users and developers. First of all the rules of cooperation are commonly understood, established and transparent. The roles of sponsors, contributors, reviewers, project coordinators are well defined. It’s really no that different from having a standard API interface – only these times it gets applied to people and processes not to software components.

Simple things that can take ages to establish like ‘how I can get your source code’ and ‘what format is your documentation’ are already resolved.

The biggest improvement though is in the area of day to day communication. Engineers and product managers are forced to discuss their ideas openly to get them implemented. The usual management structures that in closed source world lead to exchanges like ‘tell your boss to talk to my boss before talking to me’ expose their absurdity under the open source light.

No side of the deal is afraid that the other side is going to steal IP. Reciprocate licenses eliminate the false temptation of competive advantage that can be allegedly achieved by stonewalling.

This is what big bosses like best: you reduce your risk by outsourcing your communication and product management to someone who just does it better than yourself. In this case it’s an open source community.

Powered by ScribeFire.

May 7, 2007

AudioCodes gateways support is here

Filed under: sipXconfig — dkrzemin @ 2:49 pm
I am kind of relieved that AudioCodes gateways support achieved the stage when it’s actually useful. To tell the truth I had my doubts it would ever happen. Also the more I work on those blue boxes the less I understand how one can configure them without sipXconfig. There is so many settings that have to be set in a very specific way for the entire setup to work. Simplicity clearly was not a goal here.The good news is now you do not have to do that anymore. There is some bootp/DHCP magic that I am going display on wiki, but once you configure that it becomes a plug-and-play affair. So call you proverbial mothers to setup your VOIP networks. See wiki for more info.

Powered by ScribeFire.

Older Posts »

Theme: Shocking Blue Green. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.