February 24, 2013
I’ve read some more since my last book-related post, though not as much as I’d have liked. First the ones without any redeemable quality. I’m not even going to upload cover pictures for these, try and avoid them if you can at all:
- Kathy Reichs; Flash and Bones (typical popular tripe, happens to be a No. 1 best seller)
- Jeff Abbott; Cut and Run (typical popular tripe, not a best seller per se, but certainly written by an author who wrote other best sellers)
- Michael Ridpath; 66° North (typical popular tripe feeding on wide-spread antipathy in the wake of the financial crisis, books fails miserably to deliver on tagline “In Iceland, revenge is best served at arctic temperatures…”)
- Ruth Rendell; Not in the Flesh (I’m increasingly annoyed by the tendency in modern detective stories and tv series to let the murderer kill everyone before the detective in charge finally arrests the one remaining suspect on account of all the others being dead, put some frikkin’ thought into it already and solve the case before 4 more people die).
- Robert Ludlum; Bourne Trilogy (typical popular tripe, highly repetitive writing. All of them international best sellers obviously) I’m amazed how the movies have absolutely nothing in common with the book apart from a few character names).
- Seth Godin; Linchpin (Self help bunkum, normally I quite like Godins books, but this one was hogwash).
Now for the middling to good stuff, in no particular order.
February 23, 2013
At this point I’m well overdue releasing the next version of Grasshopper. I’m replacing the code editors in the VB & C# components which is proving to be a much bigger job than expected. In the meantime —to stay sane— I’m doing small tangential projects. One of which is adding some basic level of cultural awareness to formatting.
Recently someone ran into the problem that Grasshopper displays all numbers using points as decimal symbols. In Holland commas are used to indicate the transition from the integer part of a number to the decimal part and points are used as thousand group separators, giving you numbers like 1.000,5, or one-thousand-and-one-half. In English locales of course it’s the other way around, resulting in 1,000.5
Dates are also formatted differently in different cultures, the Americans stupidly putting the month in front of the day rather than the correct way around. The upshot is that when you get 3/5/2013 you have no idea whether it’s supposed to be the third of May or the fifth of March.
Finally, since different languages use different alphabets, the sorting of text is also locale dependant. Does A come before or after Ä, Ã and Å? Languages which use these exotic flavours of A probably have strong opinions on which one comes first, but a language which doesn’t might not care. A is considered lower than Æ in English, but higher than Æ in Danish.
So the obvious solution was to add an extra input to the String Format and String Sort components in Grasshopper that allows the user to specify a culture. The lazy approach would be to just use an integer input and require users enter the correct LCID, but that would be a very geeky and unfriendly thing to do. A somewhat better option would be to ask for a string which describes the culture people wish to use (i.e. “Dutch”, “Holland”, “Netherlands” or “Nederlands”). But I dislike using one type of data to represent another. There’s only a limited amount of predefined cultures in the .NET framework and there are many strings and integers which would not identify a valid culture.
So I decided to add a Culture data type to Grasshopper and then of course a Culture parameter. Two more hours of typing and icon design. Then we had to consolidate the culture codes and any words people might reasonably use to describe them into a database. Luckily I was able to shift that work to K, but it adds up to another couple of hours. Next we’ll have to aggregate all the cultures into categories so that people can quickly find them in a menu-structure. So far we’re thinking of grouping them by language family (Germanic, Latin, Slavic etc.) and additionally by continent. That’ll take another 3 hours at least. Then of course when you display a couple of dozen languages in a menu dropdown it would help if they had a flag in front of them so it’s easier to find what you’re looking for. That’s another 5 hours of drawing 20×20 pixel abstractions of the flags of the world (note that some countries have been omitted as they do not have their own predefined formatting and sorting rules).
How many do you know?
I was shocked how many flags have patently offensive colour palettes. The sheer number of nations that thought it prudent to have adjacent areas of red and green is staggering. Also a sense of style seems to be utterly disassociated geographically and culturally. The best flags are clearly Switzerland , Trinidad , Albania and Japan while the worst ones are Sami (which looks like the amateurish logo for a day-care centre) and Bosnia (which looks like it should be the business card for the European Bank).
It seems like a lot of work for adding an input to two components, but I’d like to think Grasshopper is partly what it is today precisely because I’m the sort of person who doesn’t want his users to enter LCID codes.
February 18, 2013
Once upon a time I was an Architecture and Urbanism student at TUDelft. By the second year it was obvious I was never going to be a great architect so instead I started developing a parallel skill-set that at the time was rather new and exciting; programming. My third year was a disaster as all the time and effort that was supposed to be spend on reading books about globalization and monument and restoration law was instead spend on learning how to write RhinoScript. Nobody was teaching programming in 2003 at the Bouwkunde faculty, at least not in any meaningful fashion.
When it was time to pick a graduation topic I decided to try and combine programming with Urbanism, which was a bit of a tall order since both my programming and Urbanism skills were pretty much crap. Still, I found a teacher who was happy to supervise and spend the better part of two years locked in my room typing away on a thesis text + software. Eventually it all went sour when the faculty demanded I do a load of preliminary work as I had deviated from the standard track while I was almost ready with the thesis as a whole. Not having the stomach for this sort of bureaucratic arm-wrestling I decided to leave TUDelft and start working for Robert McNeel & Associates (initially in Andy leBihan’s Finland based office) instead. Thus began my career in software development and thus ended my career in Architecture.
Yesterday while trawling through an old backup folder I found the semi-finished thesis. It has managed to survive two laptop hard disc crashes and just in case it won’t survive the third, here it is.
January 5, 2013
Now the hunt is on for NOVO2, the gene that causes certain men to drop their voice tonality to unnaturally low bass levels while uncontrollably spewing exaggerated and sensationalist clichés like “killed everything in its wake” and “destruction on a scale never before seen by scientists”.
December 23, 2012
As of a week ago we learned that our house will probably get sold within the next few months. We need to move out and find a new place asap. Unfortunately this means no Christmas holiday for me this year (damn! I had a selection of books lined up I was hoping to read; The Particle at the End of the Universe, Last Call, The Stress of her Regard, The Singularity is Near & Evolutionary Algorithms in Theory and Practice).
No idea yet where to go, though we do have some constraints. A place where people speak halfway decent English, some place with decent winters and not too harsh summers, somewhere close to impressive Nature and close to but not inside too big a city. That should narrow it down…
In the meantime, why do Realtor websites so often suck? In some cases it’s not even possible to open new pages with different houses as these are not stored in separate urls. Of course that also means you cannot bookmark or share them. Un-fucking-believable. And that’s not even to mention the poor quality of photos and plan drawings for 95% of the properties. Realtors being so desperate for me to actually visit them and review the places in their office makes me very suspicious indeed.
November 12, 2012
For a while now it has been obvious that Grasshopper is badly in need of a decent help file. Several documents exist written by various people that function as introductions or textbooks and of course the public forum is generally quite good at answering basic questions within a couple of hours. This is not however sufficient. A proper off-line help file that can be easily searched and cross-referenced is as important a feature of an application as a good user-interface. This help file would ideally contain general as well as specific information, i.e. it needs to talk about what specific components do as well as underlying theories and concepts and it will also need an extensive glossary. I feel I’m the wrong person to write this help file though, for two reasons:
- I could be writing code instead of documentation. There’s a lot to be done and I really don’t want to retard development by months -if not years- by committing myself to this parallel project.
- It is difficult for me to empathise with those who would need the help file the most. Of all living creatures on this planet I know the most about Grasshopper, but that doesn’t mean I’m therefore the most suitable to explain it. I easily over-estimate prior knowledge and I too often use jargon.
Enter Kaitlin. Linguistics major, Linux head, professional proof-reader and Rhino+Grasshopper newbie. She has agreed to take on the gargantuan (and probably never ending) task of writing the Grasshopper user documentation. We’re going to develop a brand new help system together (more about that later) which she will then gradually populate with high quality content.
November 2, 2012
Second installment in this series about travelling. Growing up in The Netherlands, it never occurred to me that people would travel within the same country by plane. Of course this is commonplace in the US, and maybe even in larger European countries, but it would be silly indeed to travel even between the furthest two Dutch cities by air, as the time you’d have to stand in line in the terminal would be about the same as it would take you to drive or ride there. Cities in Holland are so close together in fact, that from the top floor of the old Architecture Faculty* of the TUDelft you could see the The Hague city centre to the north and the Rotterdam city centre to the south well enough to distinguish individual building details. Travelling back home to my parents over the weekends would take me two hours on good days, and that involved crossing half the country. Trains are the go to answer for travel —from anywhere to anywhere— in Holland.
It wasn’t until I got thoroughly grossed out by air travel that I started looking into alternatives to long distance travelling, and unfortunately there aren’t that many options out there. I don’t own a car —or, indeed, a driver’s license— and buses disagree with my long legs. Zeppelins explode, ships sink and horses become unmanageable at the first sign of werewolves.
Trains however seem to deliver on every front; you can walk around while the train moves, you can buy tickets with a minimum amount of fuss, they get you right into the centre of towns (f*ck you Ryan Air!), some trains manage a very respectable average speed, you can open the windows and you can show up literally one minute prior to departure. There are however some suggestions I’d like to make to improve the whole train experience, especially concerning long distance trips:
- Provide lockers or some other way for passengers to securely store their luggage.
- Clean the outside windows so I can actually see through them.
- Provide ways to switch off or dim the lights inside the train so the windows don’t act like mirrors at night.
- Make sure the breaks run smoothly, the screeching is often unbearable when standing on the platform and the uneven acceleration/deceleration is disturbing on the inside.
- Announce every stop 2~5 minutes in advance so people have enough time to get dressed and gather their belongings yet they aren’t compelled to do so half an hour too soon.
- Invent some better toilets for heaven’s sake.
- Drink and snack vending machines in every car.
My best personal train story involves a summer holiday trip from Italy back home (Firenze → Wien). I had booked the train well in advance via trenitalia.it which at the time only allowed me to book in Italian. I had no idea what exactly it was that I booked for me + girlfriend and we were getting worried while standing on the fully crowded platform after spending a day walking around Florence in the blistering summer heat. We were tired, sweaty, hurting and dehydrated and not looking forward to spending a long night in a cabin with two crying babies. As it turned out though I managed to book us into the honeymoon suite (which went some way towards explaining the ticket price), which had a large two person bed with a large square window from which you can admire the Alps and a personal bathroom + shower. Granted, it was a very (very) small shower and water only came out while pressing a button, but it is more than enough to make you feel a hundred times better.
If we ever meet in person you can ask me to tell you my most embarrassing train story, but that is not for public consumption.
* Now sadly burned down through no fault of mine.