rolisz's site en Sun, 10 Apr 2016 22:07:00 GMT acrylamid 0.7.10 Fixing the bike <figure> <img src="/images/2016/04/IMG_0343.jpg" alt="Bike rear wheel"> <figcaption> Annoying thingy in the middle that made it really difficult to take the rear wheel off</figcaption> </figure> <p>Exactly one year ago, I went for the first time to the office with <a href="">my bike</a>. Today, for my birthday again, I went with the same bike, for the first time this year, now to church.</p> <p>But, there is a biiig difference: I "fixed" my bike myself this year :&gt;:&gt; And by fix it I mean I took off the rear wheel, because I thought I had to replace the inner tube (nope), put it back and then I adjusted the brakes because they weren't catching well.</p> <p>Mechanical skills++++++.</p> <p>If only the weather would stay nice so that I could go with my bike every day :(</p> <p>P.S. I also ran 10 kilometers today. :D:D</p> Sun, 10 Apr 2016 22:07:00 GMT,2016-04-11:/2016/04/11/fixing-the-bike Midway goal checkup <p>Three months ago I set up some <a href="">goals</a> for myself. Because accountability is key to accomplishing goals and sticking to them, it's time I review them, see how I did, and possibly adjust them. </p> <dl> <dt>Losing weight</dt> <dd>I'm at 82 kg right now, so I believe getting to 77 kg is still achieavable in three months. </dd> <dt>Doubling my benchpress</dt> <dd>That one is not progressing as well as I hoped. I managed to increase to about 45 kg. I was gone, with limited access to the gym for 4 weeks, so that might have something to do with it. I think I can make it to 60kg, instead of 80. </dd> <dt>Run a 10k Race in April</dt> <dd>I am training for it, my longest run so far is 8 km. Weather is better now, so I can go running more often. I think I'm on track for this. </dd> <dt>Reading</dt> <dd>Plan was a bit over 2 books per month, I'm a bit under 2 books per month. I have read 5 books, instead of about 6. Some of the books I read were thicker than expected, so that didn't help.</dd> <dt>Playing the piano</dt> <dd>Soon I realized that 1 hour is way too much, I don't want to spend that much time on it. However, I've been consistently hitting 30 minutes of playing per week. So, with some adjustment, this goal is fine.</dd> <dt>Blogging</dt> <dd>So far so good. I have 11 posts written so far, which is where I should be.</dd> <dt>Photography</dt> <dd>I haven't published any yet, but I believe I have 2-3 photos that are quite good, after I polish them a bit in Darktable. On my last trip I started using manual mode more often and taking even more photos, so I hope some of them will be good enough. So, I'm not giving up on this just yet.</dd> <dt>Focusing</dt> <dd>A complete failure. I wanted to try and set up either a Pomodoro Timer or some app to track my focused window... but I never got around to it :(</dd> <dt>Machine Learning</dt> <dd>Not too well. I did the first homework and it took me one day. There are 6 lessons, so that is still doable.</dd> <dt>Bible reading</dt> <dd>I realized that 6 chapters a day is not really sustainable, but 4 chapters are. I haven't been tracking this as accurately as I should have, but I think that at least 60% of the days I have been doing that. </dd> <dt>Sharing the gospel</dt> <dd>This one is bad :( I shared only twice so far :( I should already be at 6 :(</dd> <dt>Memorizing Bible verses</dt> <dd>This one is a complete failure. I have to admit I haven't done anything for this :( This was way too ambitious. I'll have to reevaluate this to something more approachable.</dd> </dl> <p>So 3 goals out of 12 are still on track, 3 are still going, with some small adjustments, 2 I'll still try to do, but with much lower targets, 2 are still achievable, but most likely they will be rushed, instead of being nicely spaced out, and 2 are complete failures. This is a huuuuge improvement on the last time I set <a href="">public goals</a>, when I pretty much didn't achieve any of them. Maybe in three months I will be able to set even more realistic goals :D</p> Sun, 03 Apr 2016 17:20:00 GMT,2016-04-03:/2016/04/03/midway-goal-checkup Revisiting Romania <p><img alt="Easter Bunnies in Marghita" src="" width="100%" style="max-width:600px"/></p> <p>It's that time of the year again when <del>the Easter Bunny</del> I visit Romania. History likes to <a href="">repeat</a> itself, but there are changes. </p> <p>First change, which I welcome with open arms (and mouth), is that they have good orange juice in Romania. The packaging claims it's all natural, fresh, only pasteurized. And it actually tastes quite similar to the one I buy in Switzerland. \:D/ </p> <p><img alt="Avram Iancu guarding Cluj" src="" width="100%" style="max-width:600px"/></p> <p>Second change is that they recently (in the last month) passed a law banning smoking in all public closed spaces. This means that you can go into a restaurant or coffee shop and enjoy your meal without coming out reeking of smoke. It's awesome. Of course, it will take some time until all the smoke comes out of the walls and you stop feeling the smell, but it's a huuuuge improvement. And it's funny/sad to see all the smokers lining up outside for a break. </p> <p>What didn't change: me going to the Debrecen aquapark. Another relaxing day spent mostly in the jacuzzi. </p> <p>Another thing that didn't change (or at least not in a good way): the potholes in Bihor county. The road in all the surrounding counties is decent, but as soon as you enter Bihor, I am warmly welcomed by all the potholes. I should pick a favorite one. :| </p> <p>Also, Marghita didn't become any larger. I love going for walks with my dad and talking to him about all kinds of things, especially since lots of things happened to me recently. But after going three times for a one hour walk, we've pretty much exhausted all the streets in Marghita :(</p> <p><img alt="Cluj panorama from Cetatuie" src="" width="100%" style="max-width:600px"/></p> <p>But a thing that changed was that this time I went more like a tourist and took the time to walk around and enjoy Cluj. I finally went up the Cetatuie (yes, in three years as a student there I didn't go). And I noticed that Cluj is becoming a quite modern city. As you wander around, especially in the central area, you see lots of nice, cute, fancy and interesting restaurants and coffee shops. I started seeing this last year, but now I noticed even more. And Cluj is getting more and more hipsters. Which is good/bad, depending on your perspective. All in all, it left a good impression, and it makes returning here eventually sound not so bad. </p> <p>The last thing I would mention is food. Romanian BBQ ribs are not as good as the ones in Memphis. Even if they are with Eros Pista. But this time I also want to mention food I brought with myself. My mom asked for some Swiss cheese. Of course I didn't want to bring home some generic brand cheese, but some fancy (read: more expensive and funny looking) ones. So I went to Jelmoli and bought 3 different kinds of cheese: Truffebrie, X, Y. I really should have Googled them before. Because... they have a really strong smell. Like really strong. Buuuut, they are really good. I will definitely buy them again (not for my mom). Especially when my dad comes to visit me (he enjoyed them too). :D</p> Fri, 01 Apr 2016 23:34:00 GMT,2016-04-02:/2016/04/02/revisiting-romania The Museum <p>Almost two years after I went to <a href="">The Dungeon</a>, I went with Eliza and Ruxi to <a href="">The Museum</a>, another room escape game in Cluj. </p> <p>The Museum has two different puzzles and for some reason we chose to go to the second one, which is more difficult. Because one person bailed on us at the last moment, the host was a bit worried that we won't be able to finish it, because usually teams of 4-10 people solve it. But we did it in 71 minutes \:D/</p> <p>The concept is the same, you are locked in a room and you have to solve various puzzles to find the key to get out. These range from finding keys hidden in various place, finding numerical combinations for locks, opening puzzle boxes, decypher cryptic messages and so on. It's really fun. This one is bigger than The Dungeon and you have to coordinate better to be able to solve it anytime soon. </p> <p>One thing that I didn't understand was what is the connection between the story that is posted on the website and all the items that we found in there. </p> <p>I strongly recommend The Museum and I can't wait to go to another room escape game!</p> <p>Grade: 10</p> Fri, 25 Mar 2016 14:40:00 GMT,2016-03-25:/2016/03/25/the-museum The Master Algorithm <p><img alt="The Master Algorithm" src="" width="100%" style="max-width:600px"/></p> <p>Having a goal to read books really helps with reading them. I finally started reading through the mountain of machine learning books that have been sitting on my shelves for half a year.</p> <p>The Master Algorithm by Pedro Domingos, a professor at the University of Washington, is an user friendly book for introducing lay people to machine learning. It contains maybe 2-3 lines of math, 0 code, but a lot of explanations. </p> <p>Professor Domingos divides up all of machine learning into five "tribes": symbolists, connectionists, evolutionaries, bayesians and analogizers. He describes various algorithms that are in each tribe, usually managing to make it quite understandable. However, for some reason, he glides over deep learning, which is part of the connections tribe, without giving too many details. Deep learning is the algorithm that has been making rounds for the past 5 years, in everything from voice recognition to object localization, from machine translation to beating the World Champion at Go. Some other things could have been shortened, to make room for it, such as the chapter about genetic programming or about SVMs.</p> <p>I find interesting the author's view that there is one master algorithm to rule them all <del>and in darkness bind them</del>, especially in the light of things like the <a href="">No Free Lunch Theorem</a>. This theorem says that if a machine learning algorithm is particularly good at a certain class of problems, it must be worse for all the other problems, and this is true for any possible algorithm. In the book, the author tries to argue, starting from Hume's question of how it's possible to learn, that by feeding prior information to a learner, you can get it to perform well on any dataset. I'm not sure I buy this argument. No matter how much "prior information" you will give to a decision tree, it will have a hard time learning XOR or parity problems. You can give it the prior information of "this is the result of doing XOR on these variables", but then you have solved the learning problem for it, so it's not really doing a lot of useful stuff for you. </p> <p>But suppose that there is this even better algorithm, that can learn anything if you give it enough prior information and all the data it needs. Such an algorithm is not that hard to imagine, a super naive and inefficient version would be "go through all possible parameters with a step of 0.00000001. Throw out anything that contradicts prior information, and choose from the remaining what fits the data best". It's a super slow algorithm, but it does the job (that it finishes only after the heat death of the universe, well, that's another problem). I would argue that the prior information that we give it, "transform" it into another algorithm. It can be shown for example that Hidden Markov Models, PCA, Factor Analysis, Kalman Filters and Mixtures of Gaussian Clusters, can all be described by the same general set of equations governing Linear Gaussian Models. The only difference between them is the "prior information" that we impose upon the model: whether the data is continuous or not, whether it varies by time, or whether the parameters of the model have to form a multiple of the identity matrix. Yet we consider them as different algorithms and for most of them we have different implementations, because that's how it's the most efficient. Similarly, even if we had a master algorithm, this prior information would twist it so much, that it would become an entirely different algorithm.</p> <p>There is a weird episode, where the author goes full-blown medieval fantasy novel, and describes an imaginary world of the five tribes and how their cities would look like. It feels very out of place. I understand that he is trying to make it appealing to the masses, but it could have been made in a different way, by describing the high-dimensional spaces, and how various algorithms shape it differently.</p> <p>The author ends in a quite positive note. He is not scared of the Singularity and he makes some valid points, with which I agree. He says that machine learning algorithms optimize loss functions and nothing more. If you build an algorithm to make you a good dinner, it will try to find out what you like best and will optimize it's recipes based on that, but it won't turn on you and try to kill you. It might accidentally do that, if it doesn't turn off the gas, but that's because it knows too little, not because it knows too much. </p> <p>He is also not worried about the NSA and he argues about more control over how our data is used by companies. He proposes building fake avatars out of our data, that do all the modeling for us, and then we go out and enjoy only the best. It's an interesting idea, but... it feels a bit non-human. But who knows what our kids will be doing in 30 years. </p> <p>I can't really say I recommend the book. It has some good ideas, it does explain well some concepts to laypeople, but it has some huge flaws in other areas, missing some key concepts. </p> <p>Grade: 7</p> Sun, 13 Mar 2016 21:18:00 GMT,2016-03-13:/2016/03/13/the-master-algorithm Mayumana <p><a href=""><img alt="Mayumana - Momentum" src="" width="100%" style="max-width:600px"/></a></p> <p>The Israeli dance troupe Mayumana was in Zürich this weekend and I went to see one of their shows. Colour me impressed. That was amazing. It was a really good show.</p> <p>The theme of the show was time. They started off by showing a video about flies and how their perception of us is in slow motion, “so that when they see our hand coming down to hit them, they know they still have time to finish lunch before escaping”. So the troupe made its way onto the stage in slow motion. Then various clocks starting ticking, slowly accelerating, and the dancers started moving faster and faster, according to their clock.</p> <p>They did an amazing job of live editing and synchronizing sounds. In the beginning they asked the audience to do things like whistle or snap their fingers, they recorded it and then they immediately used to introduce the next section of their show. At another point, 4 ropes dropped from the ceiling and the people standing closest to them were asked to grab them and pull them when prompted by the man standing on the scene. In the beginning, they made sounds like bells. But then the guy was chased off by another member, and when he started directing, they made noises like electric guitars. And they then continued chasing and fighting and the sounds were always from the one who was in the spotlight.</p> <p>At some point, a girl starting playing the guitar. She played a short loop, possibly 10 seconds, while a guy was filming her. Then they projected the video of her loop on the screen behind her, she moved to another place and she played another loop. They did this about 5-6 times, with the last one being her starting to sing. I don’t know how they can do this so fast, without any noticeable discontinuity in the looping.</p> <p>One of the guys starting beatboxing at some point and then he started going through the audience, asking people randomly to make sounds, which he would then imitate. One of the guys in the audience could beatbox too, so that was a nice surprise. He then chose one girl in the audience, who was called “pretty woman”, and the joke in the rest of the show was that one of the troupe members fell in love with her. He even called her on stage and serenaded her. The girl was so embarrassed in the beginning, but then she seemed to enjoy being in the spotlight.</p> <p>I am always impressed when hearing percussion related instruments being played, all the more so when a large group plays synchronized. While I can feel rhythm, I can’t hold a beat by myself. If I try to clap with my hands and tap with my feet, alternating, I start mixing them up after a couple loops. And in general, the whole world of music for me is something that I can’t grasp. I enjoy music, but I cannot imagine how it’s being made. Even though I cannot paint (not that I really tried), I can still somehow imagine how a painter would go about transposing his ideas onto the canvas. But I don’t have a good internal representation of sounds, so I can’t imagine how composers do the thing of mixing them up. And this extends not only to the artistic realm, but also to the technical one: my knowledge of sound processing algorithms is quite vague and I don’t have intuitions for how they work, unlike how I do for some of the computer vision ones.</p> <p>All in all, I enjoyed Mayumana a lot. I strongly recommend it and I will try to go out more often to these kinds of shows.</p> <p>Here is a sample of a show they did in Berlin:</p> <iframe width="560" height="315" src="" frameborder="0" allowfullscreen class="youtube"></iframe> Sun, 06 Mar 2016 21:40:00 GMT,2016-03-06:/2016/03/06/mayumana New York Again <figure> <p><img alt="Times Square" src="" width="100%" style="max-width:600px"/> <figcaption>Times Square at night</figcaption></p> </figure> <p>After Mountain View, I went to Memphis to visit some dear friends from a fellowship there. Because of this, I spent most of my time meeting with lots of people, so I didn't really get to see too many places, so no post about Memphis. One remark though: Memphis pork ribs are amazing. AAAA-maaaazing. I knew that from last time I was there, and it was just confirmed (and topped actually by the dry rub recipe) this time.</p> <figure> <p><img alt="Signs on the High Line" src="" width="100%" style="max-width:600px"/> <figcaption>Signs on the High Line</figcaption></p> </figure> <p>After that, I went to New York, for the second part of my bussiness trip. This time I stayed in Manhattan and I got to experience New York in a very different way. First of all, because during the day I was working, I had time to see places only in the evening. Second... I caught winter storm Jonas... and I survived \:D/ It was the second largest snowfall New York ever had, in one day, missing the first place by half an inch. It was unbelievable to see how everything ground to a halt in the city that never sleeps. </p> <p><img alt="Macy's in New York" src="" width="100%" style="max-width:600px"/></p> <p>On the second day after I arrived, I went with Danielle, a good friend from New York, to eat at a Japanese place, Ootoya, (on this trip I ate a lot of Japanese food and I discovered that I love sashimi) and then we went to see the Empire State Building. </p> <p><img alt="Father Duffy" src="" width="100%" style="max-width:600px"/></p> <p>It was quite a magical moment: when we arrived at the building, it wasn't snowing, but by the time we got to the top, probably 10-15 minutes later, it had started flurrying. And on top of the that, the view from the Empire State Building, at night, is amazing. I had been to both the One World Trade Center and to the Rockefeller Center, but this was much better. The whole city was lit up, in different colors, forming an amazing spectacle. The only problem was that is was also cold and windy at the top, so we left in a hurry after 20 minutes. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="The Empire State Building, shining in the night. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Downtown New York, with a view of One World Trade Center " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="West side of New York " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2016/03/nyc/empire_state/P1110033.JPG", "title": "The Empire State Building, shining in the night.\n", "msrc": "/images/2016/03/nyc/empire_state/thumbs/P1110033.JPG", "w": 2856, "h": 4272}, {"src": "/images/2016/03/nyc/empire_state/P1110037.JPG", "title": "Downtown New York, with a view of One World Trade Center\n", "msrc": "/images/2016/03/nyc/empire_state/thumbs/P1110037.JPG", "w": 4272, "h": 2856}, {"src": "/images/2016/03/nyc/empire_state/P1110052.JPG", "title": "West side of New York\n", "msrc": "/images/2016/03/nyc/empire_state/thumbs/P1110052.JPG", "w": 4272, "h": 2856}, {"src": "/images/2016/03/nyc/empire_state/P1110060.JPG", "title": "Upper Manhattan\n", "msrc": "/images/2016/03/nyc/empire_state/thumbs/P1110060.JPG", "w": 4272, "h": 2856}]</script> </div> <p>But the flurries kept on coming. And they grew bigger. By the time I woke up on Saturday, there were already 7-8 centimeters of snow. I somehow went to have lunch around 12. The snow was already getting deep in some places, especially at corners, because of the snow ploughs that would push it there. After that I went to a friend and I marvelled at the visibility of about 50m. By the time I left from Caleb, around 4 in the afternoon, it got really bad. In some places snow was knee deep. There was a ban on cars in the city. People started walking in the middle of the street, because it was easier. Restaurants closed down. I had to try four different ones until I found one that was open. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Visibility (or lack of) in the afternoon " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Noon weather " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Undercover police cars? :D " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2016/03/nyc/winter/P1110114.jpg", "title": "Visibility (or lack of) in the afternoon\n", "msrc": "/images/2016/03/nyc/winter/thumbs/P1110114.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/winter/P1110102.jpg", "title": "Noon weather\n", "msrc": "/images/2016/03/nyc/winter/thumbs/P1110102.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/winter/P1110151.jpg", "title": "Undercover police cars? :D\n", "msrc": "/images/2016/03/nyc/winter/thumbs/P1110151.jpg", "w": 1200, "h": 804}]</script> </div> <p>On my last day, because my flight was in the afternoon, I finally went to the Museum of Modern Arts (MoMA). I knew that Van Gogh's Starry Night is there, and I wanted to see that, plus I had heard good stuff about MoMA in general. </p> <p><img alt="Starry Night" src="" width="100%" style="max-width:600px"/></p> <p>And it just happened that they had a display of Picasso statues. I didn't even know beforehand that Picasso did sculpture as well. He has an interesting style, even more so than with painting. He did all kinds of sculptures, from only wireframes, to cute little stones, to fullblown life sized statues made of bronze.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2016/03/nyc/picasso/P1110160.jpg", "title": "", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110160.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/picasso/P1110158.jpg", "title": "", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110158.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/picasso/P1110164.jpg", "title": "", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110164.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/picasso/P1110168.jpg", "title": "", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110168.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/picasso/P1110181.jpg", "title": "The head looks a bit like a Google cardboard :))\n", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110181.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/picasso/P1110183.jpg", "title": "", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110183.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/picasso/P1110194.jpg", "title": "The Bull\n", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110194.jpg", "w": 1200, "h": 858}, {"src": "/images/2016/03/nyc/picasso/P1110196.jpg", "title": "", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110196.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/picasso/P1110200.jpg", "title": "", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110200.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/picasso/P1110215.jpg", "title": "Sooo cuuuuute :X\n", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110215.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/picasso/P1110225.jpg", "title": "For some reason this reminds me of the Statue of Liberty\n", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110225.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/picasso/P1110231.jpg", "title": "Girl jumping rope. I love the dynamism in this static sculpture\n", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110231.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/picasso/P1110251.jpg", "title": "", "msrc": "/images/2016/03/nyc/picasso/thumbs/P1110251.jpg", "w": 1200, "h": 804}]</script> </div> <p>One thing that surprised me were the paintings by Jackson Pollock. For some reason, seeing them in person, in their full size, covering an entire wall, conveys something of the artistic intention that can't be captured on a screen. Before that, I had always dismissed Jackson's drip painting style as meaningless random blobs of color, but when I saw them, I could feel some of the grander meaning in it. I don't fully understand it, but at least I'm not dismissing it out of hand anymore.</p> <p><img alt="Jackson Pollock painting" src="" width="100%" style="max-width:600px"/></p> <p>I was also impressed and a bit shocked by Umberto Boccioni's States of Mind series. Before looking at the description and title, my first reaction was that it somehow represented a slow descend into despair. And I wasn't far off: the artist meant them to represent a train station, with the people who leave and are swept away with by train's steam, the loneliness and anguish of those who are leaving and the sadness of those left behind. Maybe because I've traveled so much lately and I had to often say good bye and leave friends and family behind, I felt quite connected to these paintings and they echoed in my heart. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="The Farewells " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2016/03/nyc/boccioni/P1110284.jpg", "title": "The Farewells\n", "msrc": "/images/2016/03/nyc/boccioni/thumbs/P1110284.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/boccioni/P1110285.jpg", "title": "Those Who Go\n", "msrc": "/images/2016/03/nyc/boccioni/thumbs/P1110285.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/boccioni/P1110286.jpg", "title": "Those Who Stay\n", "msrc": "/images/2016/03/nyc/boccioni/thumbs/P1110286.jpg", "w": 1200, "h": 804}]</script> </div> <p>There were, of course, other pieces of modern art, such as Kazimir Malevich's Suprematist Composition: White on White. It consists of a white square drawn inside of another white square, angled and off center, but not touching the edges. Now that reminds more of geometry homeworks, than of art.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2016/03/nyc/paintings/P1110258.jpg", "title": "", "msrc": "/images/2016/03/nyc/paintings/thumbs/P1110258.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/paintings/P1110264.jpg", "title": "", "msrc": "/images/2016/03/nyc/paintings/thumbs/P1110264.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/paintings/P1110272.jpg", "title": "", "msrc": "/images/2016/03/nyc/paintings/thumbs/P1110272.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/paintings/P1110278.jpg", "title": "", "msrc": "/images/2016/03/nyc/paintings/thumbs/P1110278.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/paintings/P1110282.jpg", "title": "", "msrc": "/images/2016/03/nyc/paintings/thumbs/P1110282.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/paintings/P1110297.jpg", "title": "", "msrc": "/images/2016/03/nyc/paintings/thumbs/P1110297.jpg", "w": 1200, "h": 1502}, {"src": "/images/2016/03/nyc/paintings/P1110314.jpg", "title": "", "msrc": "/images/2016/03/nyc/paintings/thumbs/P1110314.jpg", "w": 1200, "h": 565}, {"src": "/images/2016/03/nyc/paintings/P1110319.jpg", "title": "Square in a square\n", "msrc": "/images/2016/03/nyc/paintings/thumbs/P1110319.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/paintings/P1110377.jpg", "title": "", "msrc": "/images/2016/03/nyc/paintings/thumbs/P1110377.jpg", "w": 1200, "h": 804}]</script> </div> <p>MoMA was a very enjoyable way to spend a couple of hours before leaving. I'm continuing to be surprised by my own tastes. Who knows, I might end up becoming an artist, or at least an art critique, if I extrapolate from the <a href="">recent trend</a>.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Light bulbs hanging from the ceiling " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Marcel Duchamp - To Be Looked at (from the Other Side of the Glass) with One Eye, Close to, for Almost an Hour " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Flag made out of newspapers " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2016/03/nyc/moma_misc/P1110323.jpg", "title": "Light bulbs hanging from the ceiling\n", "msrc": "/images/2016/03/nyc/moma_misc/thumbs/P1110323.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/moma_misc/P1110275.jpg", "title": "Marcel Duchamp - To Be Looked at (from the Other Side of the Glass) with One Eye, Close to, for Almost an Hour\n", "msrc": "/images/2016/03/nyc/moma_misc/thumbs/P1110275.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/moma_misc/P1110339.jpg", "title": "Flag made out of newspapers\n", "msrc": "/images/2016/03/nyc/moma_misc/thumbs/P1110339.jpg", "w": 1200, "h": 804}, {"src": "/images/2016/03/nyc/moma_misc/P1110325.jpg", "title": "Boat shot full of arrows\n", "msrc": "/images/2016/03/nyc/moma_misc/thumbs/P1110325.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/moma_misc/P1110353.jpg", "title": "Incandescent rose\n", "msrc": "/images/2016/03/nyc/moma_misc/thumbs/P1110353.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/moma_misc/P1110382.jpg", "title": "Towering metal rose\n", "msrc": "/images/2016/03/nyc/moma_misc/thumbs/P1110382.jpg", "w": 1200, "h": 1792}, {"src": "/images/2016/03/nyc/moma_misc/P1110383.jpg", "title": "Colorful statues in a group\n", "msrc": "/images/2016/03/nyc/moma_misc/thumbs/P1110383.jpg", "w": 1200, "h": 804}]</script> </div> <p>After that, I went to have Brazilian lunch at Via Brasil, where I had Picadinho de Carne, which is something-something-something, with fried bananas. Yummy.</p> <p>And then I finally went home-ish, after a month. Long trip is long. But the Lord protected me and kept me safe, wherever I went, as He promises in Psalm 121:8: "The Lord will watch over your coming and going both now and forevermore."</p> Sat, 27 Feb 2016 17:56:00 GMT,2016-02-27:/2016/02/27/new-york-again Why Nations Fail <p><img alt="Why Nations Fail book" src="" width="100%" style="max-width:600px"/></p> <p>I finally finished this book. I bought it from one of the authors <a href="">a year and a half ago</a>. The book has seen some serious mileage in my hands, having been to the Belgium and to the US. But I finally managed to read all of it. Having a goal to read 28 books this year really helps focusing on this. </p> <p>I enjoyed the book very much. I don't necessarily agree with the hypotheses that it presents, but it also provided a good history lesson for me. Apparently I had some big gaps in my knowledge of things that are 1) far from me 2) happened a long time ago and this book was eye-opening for me in at least getting a very basic understanding of some of the issues that lead to the current economic status quo. </p> <p>The basic premise of the book is that some nations are more successful than others because they have more inclusive institutions, while the ones that are poorer have more extractive institutions. The inclusive institutions mean that the barriers for entering and competing in a new business or taking part in decision making are quite low and everyone or almost everyone can do that. On the other hand, extractive institution concentrate economic and political power into the hands of a small elite who then do whatever they please. There are two aspects to both inclusiveness and to exclusiveness, one being the economic side and the other the political power. </p> <p>The reason for the need for inclusiveness is because that's the only thing they say that allows creative destruction. Otherwise, the people who are currently making money in a certain industry, will block innovations that will take away their source of income, such as various textile industries did in the UK around the Industrial Revolution. In an inclusive political context, no one has sufficient power to block anyone else unfairly, so the best man wins. </p> <p>The authors give several examples of nations that started of in a quite inclusive way, such as the Roman Republic or Venice in the 11th century, which enjoyed tremendous prosperity, but slowly then drifted towards more concentrated forms of ruling, such as the Emperor in Rome or the Council in Venice, and in the end both failed horribly. </p> <p>They also cite as examples the evolution of the United States, in contrast to how Mexico and South America developed. Because the initial population density in North America was much lower, the tactics used by the conquistadors in the southern parts didn't work there, so the local people had to find different ways of organizing themselves. What the authors forget is that in the end Native Americans in the US still got their rights trampled and almost all their land taken.</p> <p>The Soviet Union and China are used as examples of growth under extractive institutions, but they say it's not sustainable, by pointing out where Russia is now. </p> <p>One of the most shocking examples for me was about Africa. For some reason, my knowledge of Africa and its history was quite limited and I knew only mostly typical stereotypes. I'm embarrassed to admit that in my mind, Africa was such a poor continent because the people there lived half-naked in the desert, played the Makuta drum and danced with shamans. I knew that there had been some extremely bloody conflicts, that had resulted in the death of millions of people, but I thought that they were just some tribal warfare, scaled up. Well, it turns out that a huuuge part of the problem is due to the way European countries interfered and basically looted Africa when they "colonized" it. They set up various institutions and systems to make sure that the money/slaves/resources go to them. Usually this involved some sort of local governors or chieftains who made sure that the people paid their taxes and kept working in the mines or wherever was needed. After the Europeans left, they "forgot" to take the chieftains with them, so of course they continued to do the same thing, except now all the money was going to their pockets. Then of course somebody from the population thought that this is unfair, they organized a rebellion, started a civil war that resulted in the deaths of many people, and ended up taking up the power for themselves, without making the lives of ordinary people any better. </p> <p>Another thing that was a surprise to me was just how recent the current power distribution of the world is. For some reason, I had assumed that the current pecking order, especially in Europe, had been the same for a long time. I didn't know the important role the French Revolution had in almost every other European kingdom, by overthrowing the feudal system that had existed in many places and helping new systems take its place.</p> <p>I don't fully agree with the argument that democracy is the best form of government. I believe that monarchies can also lead to economic growth, as long as the kings are God fearing. Because in the end, that's what matters, what are the values of the people at the top. If they have the best interests of the nation at heart, then the nation will do well. If not, it doesn't matter. In a democracy, if you manage to fool enough people (via mass media) to vote for the wrong thing, it will still end up bad for them. Most people can't do a proper analysis of the situation to make sure that whatever big economic or political choice they make is in their own interest. I know because I can't really be bothered to do that, I would much rather do plenty of other things with my time. </p> <p>To summarize, I enjoyed the book, it offers a pretty good perspective, and a very good summary of a large part of the history of the world. The style of the authors is pretty enjoyable. My only problem would be that they don't really search for counter-points to their theory.</p> <p>Grade: 8</p> Fri, 19 Feb 2016 08:34:00 GMT,2016-02-19:/2016/02/19/why-nations-fail Alcatraz <figure> <p><img alt="The Rock" src="" width="100%" style="max-width:600px"/> <figcaption>The Rock</figcaption></p> </figure> <p>This year started off well, with another trip to the USA, on a business trip to Mountain View. One of the things that I missed last time I was in San Francisco was Alcatraz. When I arrived there I realized that you need to buy tickets several weeks in advance, so it was too late by that time. So, this time, after I bought the plane tickets to San Francisco, I bought my ticket to Alcatraz :)))</p> <figure> <p><img alt="The Golden Gate Bridge" src="" width="100%" style="max-width:600px"/> <figcaption>The Golden Gate Bridge from the boat to Alcatraz</figcaption></p> </figure> <p>One of my favourite movies when I was a kid was <a href="">"The Rock"</a>, with Sean Connery and Nicholas Cage, which takes place in Alcatraz. Ever since then I wanted to go see it, so now I finally had the chance.</p> <figure> <p><img alt="The dock" src="" width="100%" style="max-width:600px"/> <figcaption>The dock on Alcatraz</figcaption></p> </figure> <p>Turns out Alcatraz is a lot more than just a former maximum security prison. It's name comes from Juan Manuel de Ayala, who was the first European to sail into the San Francisco Bay, in 1775, who called it "La Isla de los Alcatraces", (Alcatraces=Pelicans in Spanish). Then in 1853, the U.S. Army started building a fortress there, which was finished in 1858.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="A guard tower. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The Indians are welcome. I hope not to the penitentiary. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The original entrance. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2016/02/alcatraz/outside/P1100533.jpg", "title": "A guard tower. \n", "msrc": "/images/2016/02/alcatraz/outside/thumbs/P1100533.jpg", "w": 800, "h": 1064}, {"src": "/images/2016/02/alcatraz/outside/P1100486.jpg", "title": "The Indians are welcome. I hope not to the penitentiary.\n", "msrc": "/images/2016/02/alcatraz/outside/thumbs/P1100486.jpg", "w": 800, "h": 448}, {"src": "/images/2016/02/alcatraz/outside/P1100500.jpg", "title": "The original entrance.\n", "msrc": "/images/2016/02/alcatraz/outside/thumbs/P1100500.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/outside/P1100504.jpg", "title": "One of the Howitzer cannons.\n", "msrc": "/images/2016/02/alcatraz/outside/thumbs/P1100504.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/outside/P1100513.jpg", "title": "Some of the nice flora on the island.\n", "msrc": "/images/2016/02/alcatraz/outside/thumbs/P1100513.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/outside/P1100528.jpg", "title": "\n", "msrc": "/images/2016/02/alcatraz/outside/thumbs/P1100528.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/outside/P1100529.jpg", "title": "The tour guide showing one of the inmates.\n", "msrc": "/images/2016/02/alcatraz/outside/thumbs/P1100529.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/outside/P1100545.jpg", "title": "The water tower.\n", "msrc": "/images/2016/02/alcatraz/outside/thumbs/P1100545.jpg", "w": 800, "h": 602}]</script> </div> <p>Though it had up to 105 cannons, it never had to fire any of them (offensively). After the Civil War ended in 1865, because the guns used there were already obsolete, the army decided not to upgrade it, but to retrofit it into a military prison. It housed up to 450 prisoners. </p> <figure> <p><img alt="Entrance" src="" width="100%" style="max-width:600px"/> <figcaption>Entrance to Alcatraz</figcaption></p> </figure> <p>In 1934, the army decided that it's too expensive to maintain, so they turned it over to the Federal Bureau of Prisons. It ran as the famous maximum security prison for 29 years. Some of the more famous prisoners include Al Capone, Robert "Birdman" Stroud, George "Machine Gun" Kelly, Mickey Cohen and Arthur "Doc" Barker. As you can deduce from their names, all fun people. And they were locked together.</p> <p>There were not many escape attempts. One was particularly bad, when in 1946 6 prisoners attempted to escape. They failed because one guard managed to hide the key that they needed to get out, so they locked themselves in and took some guards as hostage. This was called the Battle of Alcatraz. You can still see some of the bullet holes from the siege in some walls. The other famous escape, from 1962, which was also portrayed in the movie "Escape from Alcatraz", is still unresolved. No bodies were found, but there is no hard evidence that they survived either. The escape was very elaborate, the convicts having dug tunnels through the walls, used dummies placed in their beds to buy themselves more time, and they assembled a makeshift rubber raft which they presumably used to get across the bay. There is a photo of two people, supposedly two of the brothers who escaped, made it to Brazil, but some people contest that it's real.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Not too much privacy in the showers. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="And if you break the rules here, you go to D block - solitary. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Row of cells. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2016/02/alcatraz/prison/P1100569.jpg", "title": "Not too much privacy in the showers. \n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100569.jpg", "w": 800, "h": 1064}, {"src": "/images/2016/02/alcatraz/prison/P1100562.jpg", "title": "And if you break the rules here, you go to D block - solitary.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100562.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100585.jpg", "title": "Row of cells. \n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100585.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100586.jpg", "title": "Stair to upper level.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100586.jpg", "w": 800, "h": 1064}, {"src": "/images/2016/02/alcatraz/prison/P1100590.jpg", "title": "Typical cell.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100590.jpg", "w": 800, "h": 1064}, {"src": "/images/2016/02/alcatraz/prison/P1100592.jpg", "title": "Alcatraz Times Square. \n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100592.jpg", "w": 800, "h": 1064}, {"src": "/images/2016/02/alcatraz/prison/P1100599.jpg", "title": "Outdoor yard for recreation.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100599.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100626.jpg", "title": "Battle of Alcatraz.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100626.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100633.jpg", "title": "The officer who died during the battle.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100633.jpg", "w": 800, "h": 1064}, {"src": "/images/2016/02/alcatraz/prison/P1100640.jpg", "title": "Some prisoners painted. \n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100640.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100644.jpg", "title": "Others read a lot. \n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100644.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100650.jpg", "title": "Or played the harmonica.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100650.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100659.jpg", "title": "\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100659.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100678.jpg", "title": "View from the door. \n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100678.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100702.jpg", "title": "One of the guard towers.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100702.jpg", "w": 800, "h": 1064}, {"src": "/images/2016/02/alcatraz/prison/P1100710.jpg", "title": "The 1962 escape.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100710.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100712.jpg", "title": "The dummy used to cover for the escape and the hole in the wall.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100712.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/prison/P1100726.jpg", "title": "The canteen.\n", "msrc": "/images/2016/02/alcatraz/prison/thumbs/P1100726.jpg", "w": 800, "h": 602}]</script> </div> <p>Most of the guards lived there on the island, together with their families. Their children would take a boat every day to go to school in San Francisco and come back in the afternoon. The living quarters where quite separated from the prison part, so it was a nice place to live. </p> <p>Food was supposedly the best in the whole penitentiary system in the USA. And that was about all that was good there. Many of the prisoners suffered especially bad because they could see from the windows San Francisco, they could see freedom, sometimes they could even smell it (there was a chocolate factory nearby), they could hear music and dancing when the wind was blowing their way, but they could enjoy none of it. When the warden allowed them to listen on radio to boxing matches, the guards received orders to turn it off as soon as the result was announced, so that the prisoners would not hear anything else about what was going on in the outside world. </p> <figure> <p><img alt="The view from Alcatraz" src="" width="100%" style="max-width:600px"/> <figcaption>San Francisco as seen from Alcatraz</figcaption></p> </figure> <p>After the prison closed, it was occupied from 1969 to 1971 by Indian (Native American) activists, who were protesting several aggressive policies of the government related to the land that could be used for tribal reservations. They got Nixon to reverse some of those policies, but in the end they were kicked out from Alcatraz and the island was transformed into a National Park, available to visitors. Today there is a quite varied fauna and flora on the island, including some rare species of flowers, some salamanders and lots of birds.</p> <figure> <p><img alt="Closing of Alcatraz" src="" width="100%" style="max-width:600px"/> <figcaption>The closing of Alcatraz</figcaption></p> </figure> <p>The tour itself is super nice. Included in the ticket is the boat ride to the island, an audio guide of the inside of the prison, a walking tour of the outsides, and a movie presentation about the Native American occupation. </p> <p>After the tour of Alcatraz, I walked some more in San Francisco, which always has lots of things that can surprise. Starting with weird people on the street, to all kinds of odd statues or memorials. One that I liked was the Martin Luther King Jr Memorial in Yerba Buena Gardens. In the last year I've learned a bit about the civil rights movement in the USA and it's quite shocking to see and hear about some of the things that have happened even 50 years ago there. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Fun graffiti on the side of a building " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="More fun graffiti " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Is the fire station chief Hungarian? :D " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2016/02/alcatraz/sf/P1100433.jpg", "title": "Fun graffiti on the side of a building\n", "msrc": "/images/2016/02/alcatraz/sf/thumbs/P1100433.jpg", "w": 800, "h": 1072}, {"src": "/images/2016/02/alcatraz/sf/P1100745.jpg", "title": "More fun graffiti\n", "msrc": "/images/2016/02/alcatraz/sf/thumbs/P1100745.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/sf/P1100754.jpg", "title": "Is the fire station chief Hungarian? :D\n", "msrc": "/images/2016/02/alcatraz/sf/thumbs/P1100754.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/sf/P1100752.jpg", "title": "I never get tired of this view. And I don't understand how people can live like this.\n", "msrc": "/images/2016/02/alcatraz/sf/thumbs/P1100752.jpg", "w": 800, "h": 1064}, {"src": "/images/2016/02/alcatraz/sf/P1100761.jpg", "title": "My little trip to China... Town.\n", "msrc": "/images/2016/02/alcatraz/sf/thumbs/P1100761.jpg", "w": 800, "h": 602}, {"src": "/images/2016/02/alcatraz/sf/P1100788.jpg", "title": "The Martin Luther King Jr. memorial.\n", "msrc": "/images/2016/02/alcatraz/sf/thumbs/P1100788.jpg", "w": 800, "h": 536}, {"src": "/images/2016/02/alcatraz/sf/P1100797.jpg", "title": "Mutant statue.\n", "msrc": "/images/2016/02/alcatraz/sf/thumbs/P1100797.jpg", "w": 800, "h": 1194}]</script> </div> Sat, 13 Feb 2016 18:15:00 GMT,2016-02-13:/2016/02/13/alcatraz Dockerizing a static blog <p>My blog has been compiled using <a href="">Acrylamid</a> for about a year and a half now. It's been great and I don't regret switching to it from Wordpress. I can write my posts in Markdown, in the command line, my posts are stored in a clear text format in GitHub, my site is way faster now than it was on Wordpress. However, deploying a new post has always been a bit of a pain. It's easy to write from anywhere, all I need is Vim and git, but until now, it was complicated to publish any new post, or do any changes to the site. </p> <p>The problem was that I had my environment for development set up on my home machine, which is running Arch Linux, and that whenever I was away from home, I would have to reconfigure whatever machine I had access to to be able to compile my blog. Because my setup at home was on Arch Linux, it wasn't exactly portable.</p> <p>After a long time, having traveled a lot last year, I decided I needed a way to be able to quickly setup my blogging environment anywhere, so that I can post while I am away. Good thing I did that, because I've been gone from home for a month now.</p> <p>The approach I chose was to use <a href="">Docker</a> to create an image which can run my blog. Docker takes care of all the portability issues, so I can run it on Windows, Mac or Linux machines, and it will still behave the same way. </p> <p>Docker is similar to virtual machines to some extent, but it operates at a layer above them. While each virtual machine has it's own guest OS running inside the host OS, docker runs inside the OS and it just virtualizes the file system, networking and any libraries that are needed for your application to run. This results in significant startup time reduction and reduced RAM usage. On non-Linux operating systems, I believe it uses a VM in the background, but all containers that you start on the same machine, share a VM. </p> <p>Setting up the Docker image didn't take too long, I managed to do it in a couple of hours, there were still two gotchas on which I spent some time. To one I found the correct solution (or I realized my initial mistake at least), while to the other one, I have a meh solution, which I don't really like, but luckily, I don't have to face that problem too often (hopefully, almost never). </p> <p>A Docker image is described in a <em>Dockerfile</em>, which contains instructions on how to create that image, what to install into it, what commands to run, how to setup the file system and so on. I'll share with you my Dockerfile and explain it. </p> <div class="highlight"><pre>FROM debian:latest MAINTAINER rolisz &lt;; # Update OS RUN apt-get update RUN apt-get -y upgrade </pre></div> <p>This tells Docker to use the latest Debian image as a base for our image. I chose Debian because it is well known for it's stability and long term support. You can choose pretty much any image. It also updates the system and says who's the maintainer. </p> <div class="highlight"><pre># Install dependencies RUN apt-get install python-setuptools git libjpeg-dev zlib1g-dev build-essential python-dev rubygems imagemagick -y RUN gem install sass RUN easy_install pip RUN pip install acrylamid asciimathml Markdown Pillow RUN pip install --upgrade acrylamid asciimathml Markdown Pillow </pre></div> <p>Now I install all the stuff that I need to be able to compile my blog properly. You might start understanding why it wasn't easy before. Half of these packages have different names in different Linux distributions and it actually needs three different package managers. :((</p> <div class="highlight"><pre># Make ssh dir RUN mkdir /root/.ssh/ COPY my_ssh_key /root/.ssh/ WORKDIR /rolisz_acrylamid # Expose default Pelican port EXPOSE 8000 # Run Acrylamid CMD acrylamid autocompile </pre></div> <p>Now we do some more interesting things. First, we create the .ssh folder and we copy there the ssh key for the server where the blog is deployed. This is only if you want automated passwordless pushes. If you are fine with entering your password each time you post, you can skip this step. Then we define the working directory of our image, which is where all subsequent operations will take place and which will be the default starting directory for any shells that are opened. Then we expose the 8000 port and then we start the Acrylamid compilation. </p> <p>My initial mistake was that I wanted to bake the blog into the image. However, this meant that for every new post, I would have to update the image. And not just for new posts, but for every tiny new update, because changes that happen to the Docker file system are not persisted, unless they are explicitly saved.</p> <p>The better solution is to mount an external directory to the working directory. That external directory is persistent, but doesn't need to be baked into the image, so unless I change some of the dependencies of my blog, I won't have to update the image. </p> <p>Building the image can be done with: </p> <div class="highlight"><pre>docker build -t blog . </pre></div> <p>The first time you run this, it will take some time, because it will have to download the latest Debian image, update it, install all the programs and so on. But subsequent edits will be faster, because it will already have the cached intermediate steps. This will create an image called blog, from the current folder.</p> <p>To run the image and start showing the blog, you must use the following command:</p> <div class="highlight"><pre>docker run -p 8000:8000 -v ~/rolisz_acrylamid:/rolisz_acrylamid blog </pre></div> <p>This tells Docker to map host port 8000 to container port 8000 and to mount the host folder ~/rolisz_acrylamid to container folder /rolisz_acrylamid, for the image "blog". You should be able to access the blog at However, if you are a on a Mac or Windows, Docker is running inside a VM, so you actually need to access the VM's IP address. You can find that out with:</p> <div class="highlight"><pre>docker-machine ls </pre></div> <p>This will give you the details of the VM. You will access the blog using that IP, but using the 8000 port. </p> <p>To deploy this using the built-in Acrylamid support for that, say if you have a command called rsync in your file:</p> <div class="highlight"><pre>docker run -p 8000:8000 -v ~/rolisz_acrylamid:/rolisz_acrylamid blog acrylamid deploy rsync </pre></div> <p>And voila, your content should be pushed. The above instructions should be easily adaptable to any other static website engine, just by substituting the appropriate dependencies and the right commands. </p> <p>The other gotcha that I haven't found a good solution for is what to do with my images. I cannot save them to GitHub, because I have several gigabytes of them (and binary blobs in Git are a no-no anyway). For now I have them on my server (and on my home computer), and if I want to do something big with them (say resize all of them or whatever), I have a small script that downloads them from there and removes the thumbnails. Not the best solution, but I don't know what else works nicely. But I don't do this too often, so I can live with it for now.</p> <p>Now my blog is ready to move to the cloud. The next step would be to actually be able to compile on my server, so I can write my post, commit to Github, push the repo to the server (possibly automatically, with some hooks), and have the recompilation happen there. This needs a bit more work, especially to make sure that I don't overload my server, and I also need to find a way to link all my images to my posts. Maybe in one years time I will do it :)))</p> Wed, 27 Jan 2016 19:53:00 GMT,2016-01-27:/2016/01/27/dockerizing-a-static-blog Bose Bluetooth Headphones <p><img alt="Bose Bluetooth Headphones" src="" width="100%" style="max-width:600px"/></p> <p>Last year I bought myself a pair of Bose SoundLink Around-Ear Bluetooth Headphones. After 6 months of usage, I feel like it's time that I finally review them, having used them enough :))</p> <p>Let me first say my track record with all of my previous wired earphones: none of them lasted more then 8-9 months. On all of them the cable would give up somewhere towards the plug, even though one had some fancy shmancy Kevlar reinforced cable. Nope, still managed to break the wires inside it, even though I tried to take care of it and not just dump it into my pocket, but <a href="">folding them neatly</a>. Nope, they still died after less than a year. </p> <p>For a long time I didn't really consider using headphones on the street, because I thought it would look weird to walk around like that and because it might be uncomfortable if I had to do any running or biking.</p> <p>But then I saw my technical lead using the above headphones for quite a while and they always looked really nice and practical, so I started doing some research into Bluetooth headphones and I ended up buying the same model. I saw plenty of people wearing various heaphones on the street, so I got over the self-awareness bit and decided that I wouldn't be running or biking with them, so that problem would be solved (and because trains in Switzerland are on time, I don't have to run after them). </p> <p>I pretty much fell in love with them right away when I tried them on for the first time in a Bose shop in New York. They felt extremly comfortable and sounded great, so I immediately bought them. </p> <p><img alt="Headphone ear muff" src="" width="100%" style="max-width:600px"/></p> <p>And I don't regret the decision at all, after 6 months. They sound amazing, better than any audio equipment I've had before (fine, that's a really low bar, but still). They're very comfortable even after multiple hours of non-stop use. Any other headphones I had would make my earlobes hurt after 1-2 hours of usage.</p> <p>Battery life is pretty good. They last about one day (8 hours of usage). Considering that my phone lasts a day too, that's fine. It means that I have to recharge them every night, so I need a lot of cables in my home, but that's something I'm willing to tolerate until the future arrives and brings ubiquitous wireless charging in its bags.</p> <p><img alt="Headphone controller" src="" width="100%" style="max-width:600px"/></p> <p>On the left headphone you have the controller. It includes a button to answer calls, volume up/down, a power off switch and an microUSB slot for charging. Pressing the call button and the volume down button at the same time enables Bluetooth pairing mode. This controlling unit houses the battery and can be removed, exposing an audio port, where you can insert a normal audio cable, for when the battery runs out and you have to keep going. I never used that. </p> <p>Now, to my gripes with this headphone. First off, it supports being connected to only two devices at the same time. First world problem I know, but I have a phone, a tablet and a laptop. The phone and the tablet autoconnect to it, and whenever I want to use it with my laptop (which is more rarely), I have to figure out where my tablet is (usually in my bag in the opposite corner of the room) and disconnect it explicitly from the headphones. </p> <p>Another problem is that sometimes, the connection is flaky. With my Macbook I had absolutely no problem with it, but when I was using it with a Bluetooth dongle with my desktop computer running Linux, the connection would randomly drop roughly once every half an hour. And the annoying part was that I had to restart the bluetooth driver in Linux and then reconnect. I guess the year of Linux on desktop still hasn't come yet. Also, sometimes, but not always, I get some issues when connecting to my phone, running Android Marshmallow. I don't know exactly why, but sometimes when I connect, the first couple of minutes have random drops in audio. The phone shows that it's still playing, it's just that the headphones don't output any sound. A combination of restarting the headphone and restarting the audio stream on the phone eventually fixes the problem and then I don't have any problems, it plays for hours on end. </p> <p>All in all, I love these headphones and I strongly recommend them. I've used them extensively while traveling, tossing them in my backpack when not using them, sleeping in planes while wearing them and so on. No problems, they still work perfectly. Bose doesn't make them anymore, they released a version II. I guess I'll try them out in a couple of years. </p> <p>Grade: 10/10.</p> Tue, 19 Jan 2016 23:46:00 GMT,2016-01-20:/2016/01/20/bose-bluetooth-headphones 2015 in review <p><em>Woohoo. I wrote this post four days sooner that I did <a href="">last year</a>. Maybe in a couple of years I will actually write it on the first day of the year!!!!!</em></p> <p>This year has not been such a great year. While the number of readers did go up slightly, from 12451 to 13110, actual page views dropped in half, down to 46926 from 92938 last year :( Alas, nothing lasts forever. Good thing I'm not making a living out of my blog. The bright side is that now I have more new visitors, 59.51% getting to my site for the first time, compared to 37.60% in 2014. So I'm reaching more people, even if they then read fewer pages on my site. </p> <p>I had the most pageviews on May 12, getting 977 acceses to my site. The most sessions (meaning users getting to my site and browsing around at distinct times) was on October 9, when I had 350 sessions. During the first one there was an exam at my university, so the current students were accessing my past exam archive, while the second one is when I posted about me going to give a Tech Talk at my University. It's been almost two years since I graduated and still the university gets the most views on my blog.</p> <p>The number of posts continued it's downward trend, getting to only 30 posts, meaning about 2.5 posts per month. I think that my posts are quite different now from one year ago, more than a third of them being reviews of my trips to various places around the world. The rest seem to be divided between blog related annoucements, personal annoucements and some reviews.</p> <p>The most popular blog post continues to be the <a href="">Neural Network</a> one, while the next several ones are related to my past exams, tutorials or guides that I wrote while in college. The first one that's not related to that is the review I wrote after a <a href="">year in Zurich</a>.</p> <p>Most of my traffic comes from searches, but due to changes in the reporting done by the search engines, I don't really know what people search for to get to my blog. Then I get traffic that comes directly to my site (I'm a bit skeptical that so many people have bookmarks to various pages on my site), or come from other websites (and I'm starting to get worried, because some of them look really sketchy). Facebook contributed about 3600 sessions, while Twitter and Google+ less than 200 together. Oh, but I have one from Hacker News too :D Also, 58 sessions came from the emails I send out and 23 from the RSS feed. </p> <p>Changes to my blog include a redesign, adding comments and email subscription, and, something that I never had before: HTTPS.</p> <p>I hope you will keep reading me in 2016 and I have planned some more cool stuff for all y'all! Quite late Happy New Year this year too!</p> Wed, 13 Jan 2016 22:27:00 GMT,2016-01-14:/2016/01/14/2015-in-review Setting goals <p><img alt="Goals should be aggresive, but realistic" src="" width="100%" style="max-width:600px"/></p> <p>While this may seem like a New Years Resolution kind of post, I assure you, it's just a coincidence. In December I read two books about productivity. The first one is by Tim Challies, a Christian pastor and very prolific blogger, <a href="">Do More Better</a>, while the second is by Nick Winter, a programmer and quantified self enthusiast, <a href="">The Motivation Hacker</a>. </p> <p>They are quite different books, written from vastly different perspectives and with different objectives in mind, by two people who have a very different view on life, but basically both suggested that in order to be more productive, you need to set clear goals, organize yourself, and commit to your goals, using various tools to help you keep track of the goals and to incentivize you. </p> <p>One of the techniques Nick suggests is that of precommitment, which is basically deciding in advance to do something, when it seems less scary because it's in the future and then telling everyone about it, so you are pretty much forced to do it, because of peer pressure.</p> <p>Another thing that makes it easier to achieve your goals is if they are broken down into parts that are quantifiable and easy to track. Then you can use some things such as <a href="">Beeminder</a> to stay on track.</p> <p>My blog is my way of telling everyone about my goals, so here is my list:</p> <h4>Physical</h4> <dl> <dt>Get to 77 kg by June</dt> <dd>I started college with 72 kg, I arrived at Google with 82 kg, after my trip to Belgium I hit 90 kg, so I want to half the difference between college and Google, which would give me a BMI of 22, right about in the middle of the normal range. </dd> <dt>Be able to benchpress my own weight by the end of June</dt> <dd>Right now I can push about 40 kg. I want to double that in 6 months. </dd> <dt>Run a 10k Race in April</dt> <dd>There will be one in <a href="">Zurich</a></dd> </dl> <h4>Mental</h4> <dl> <dt>Read 28 books in 2016</dt> <dd>A little bit over 2 every month, broken down as follows: 15 Christian books, 5 novels and 5 non-fictional books from which I can learn, 1 book about musical theory, 1 book about photography and 1 book to prepare for either IELTS or TOEFL exam.</dd> <dt>Play the piano at home for 1 hour every week</dt> <dd>Obvious exemption if I am not at home for a week.</dd> <dt>Write 21 blog posts until the end of June</dt> <dd>My average for 2015 was 2.5 posts per month, let's try to increase it to 3.5. </dd> <dt>Take 6 photos that I am not ashamed to upload to a photography site</dt> <dd><a href="">500px</a> unless somebody has a better suggestion. </dd> <dt>Work on a project for 1 uninterrupted hour on 80% of days</dt> <dd>The actual project doesn't matter, it can be either for work or a personal project, programming or something else, I just want to increase my concentration capabilities and stop checking Feedly/Twitter/Whatsapp compulsively. </dd> <dt>Finish the Udacity Machine learning course until June</dt> <dd>I want to get half my money <a href="">back</a> :)))</dd> </dl> <h4>Spiritual</h4> <dl> <dt>Read 6 chapters from the Bible on 90% of the days</dt> <dd>The 10% exemption is because of the days when I travel or am otherwise fully busy for a day. </dd> <dt>Share the gospel with 12 times until the end of June</dt> <dd>With at least one new person each time. </dd> <dt>Memorize 300 new Bible verses until the end of June</dt> <dd>An average of 1.68 verses learned every day. I will use ESV.</dd> </dl> <p>And last but not least:</p> <dl> <dt>Surprise Roda 10 times until the end of June.</dt> <dd>Because I love her. </dd> </dl> <p>Yes, this post is meta and counts for (hopefully) two of my goals.</p> Fri, 01 Jan 2016 23:39:00 GMT,2016-01-02:/2016/01/02/setting-goals The Force Awakens <p><img alt="The Force Awakens poster" src="" width="100%" style="max-width:600px"/></p> <p>The Christmas party organized by Google in Zurich this year was... <em>drumroll</em> a private Star Wars: The Force Awakens screening. They rented out half of Arena Cinemas for half a day and they invited all Zooglers to watch the movie.</p> <p>Normally I don't go to see movies in the first couple of weeks after they are released, because the cinemas are too crowded, but I couldn't miss such an occasion: a new Star Wars movie!!!!</p> <p>In general, I enjoyed the movie. I left the cinema like, yeah, this was a good "reboot" of the series and I'm curious how this will continue. Of course, there were some bad parts, and some people are very upset because of a recurring theme in the movie, but I guess that was needed for a modern audience that didn't grow up in the '80s.</p> <p><em>While I'll try to avoid major spoilers, from here on read at your own caution.</em> <!--more--></p> <p>I said reboot before, because the story, the action and some elements are very, very, very, very much like A New Hope. Main protagonist lives on a desert planet, without their parents? Check. The existence of a <del>Death Star</del> <del>Death Star 2</del>, Star Killer? Check. Said "Death Star" is destroyed by some pilots flying through a narrow tunnel along the surface? Check. Weird father-son relationship around the new Dark Side guy (who is not a Sith btw)? Check. Annoying C3P0? Check. The protagonists going to an infect bar to get transportation to the Rebellion? Check. A new "evil" empire with a mysterious head honcho, whose main instruments are an army general and a Dark Side user, who would always use different tactics? Check. And so on and so on. </p> <p><img alt="Tie fighter vs X Wing" src="" width="100%" style="max-width:600px"/></p> <p>I understand the need for the throwbacks to A New Hope, but I think they were exaggerated and it could have been much better if some of them had been omitted (I mean come on, some of them were soooo obvious and identical, that you'd think they are from next years re-re-re-digitalized-and-re-mastered edition).</p> <p>The story begins that the Empire has been replaced by the First Order. Luke for some reason has disappeared, but there are rumours of a map that leads to his location. This map is said to be on Jakku, the new Tatooine. BB-8, the new R2D2, gets the map and is told to get as far away as possible, while the village is getting burned by Stormtroopers. Here, one Stormtrooper, called FN-2187, has an epiphany that he actually is a good guy and doesn't want to fight for the First Order, after a dead Stormtrooper leaves a bloody hand mark on his helmet. I wouldn't be surprised if there is something else special about Finn (FN, Finn, get it? Haha), although the movie mentions nothing, because the whole thing was just too sudden and abrupt. </p> <p><img alt="Finn crashing" src="" width="100%" style="max-width:600px"/></p> <p>BB-8 then runs into Rey, an indentured girl who makes a living by looting crashed ships for spare parts. Of course she is good natured, generous hearted girl, so she offers to host (why does BB-8 need a place to sleep over night?) and then to help him get to the city. Soon they meet with Finn, and they escape Jakku together on the <em>drum rolls</em> Millenium Falcon. </p> <p>And here I found something else annoying about the movie: it tries too hard to be politically correct. Woohoo, we have a black guy and a white gal as main characters. But do you have to be point out so obviously and repeatedly, by speaking out, that Rey is a strong and independent woman who can handle herself? Several times during the whole scene on Jakka, Finn tries to help Rey or explicitly doubts her capabilities, and she corrects him, usually while yelling.</p> <p>They then get captured by Han Solo and Chewie, who are of course in trouble with various criminal gangs. After they succeed in escaping together, Han helps them get to the Rebellion, by first going to the <del>Mos Eisley</del>, Maz Kanata's castle/inn to get a new ship. Rey gets her hand on Luke's light saber, which triggers some sort of flashbacks/flashforwards, which scare her and make her run away. Of course, they are tracked there, everything goes up in flames, Rey is kidnapped, but the others get reunited with the Rebellion.</p> <p><img alt="Starkiller" src="" width="100%" style="max-width:600px"/></p> <p>It turns out the map BB-8 has is incomplete and it doesn't correspond to any know place in the galaxy. Later on, they find the rest of the map, from which only this part is mising and they're like oooh, there it is. Seriously??? The relative position of stars is pretty well determined, so for a galactic civilization that has faster than light travel, I would expect they could measure all the stars in their own galaxy. <em>facepalm</em></p> <p>The First Order uses the Starkiller once and then the Rebellion strikes back and destroys it (d'oh, big surprise). We get some nice light saber fights between Rey and Ren (the Dark Side guy). In the end, Rey finds Luke, who has a robotic arm and we get a dramatic, long take of them staring at each other. The end.</p> <p>What I found interesting is how Rey learned about the Force pretty much on her own and how skilled she was at saber fighting without any training. Luke had much more problems in the beginning and had to undergo a lot of training before he could be useful as a <a href="">radical terrorist</a></p> <p><img alt="Ren" src="" width="100%" style="max-width:600px"/></p> <p>I didn't say much about Ren, because his personality is interesting, with lots of internal conflict, and it's more fun to find out about that from the movie. And his Dark Side overlord... is also peculiar. And there are some very cool theories on the internet about him. But the fact that they are not Sith is also intriguing. And because there aren't too many Jedi's around, this might mean that the usage of the Force might be reconsidered and approached from a different aspect, not just the traditional Jedi/Sith vision.</p> <p>About the visual effects, no complaints. They were great. The soundtrack was nothing remarkable. The only things I remember was when old parts were playing again. Acting was quite good, I am looking forward to seeing the newbies in other movies too.</p> <p>Overall, I liked the movie and I'm waiting for the next episode. But it will come out only in May 2017 :(</p> <p>Grade: 8/10</p> Fri, 18 Dec 2015 18:13:00 GMT,2015-12-18:/2015/12/18/the-force-awakens Panasonic Lumix DMC-LX100 Review <p><img alt="Lumix DMC-LX100" src="" width="100%" style="max-width:600px"/></p> <p>Back in April, after my <a href="">trip to Geneva</a>, I realized I needed a camera. Just using my phone to take pictures wasn't going to cut it. No matter how good cameras in phones get, they still have a small senzor and a fixed lens, so in many conditions they will produce worse quality pictures than a good camera with the same number of megapixels.</p> <p>I had been thinking about buying a camera before that too, but then I started doing some research. Initially I wanted to buy a DSLR, but talking to some friends who actually know how to take photos, made me realize that I shouldn't. I'm starting from 0, so anything that takes better photos than a phone is good for me, and if it turns out that I don't really like it, having spent more than 1000 CHF on good DSLR with good lens (which is how much it costs if you want to get something good), would have been a big waste of money. So I looked around for what are the best compacts. Three names stood out: Sony Cyber-shot RX100 III, Panasonic Lumix LX100 and Canon PowerShot G7 X.</p> <p><img alt="What I saw in the shop" src="" width="100%" style="max-width:600px"/></p> <p>One day I decided to walk by a MediaMarkt, just to see what they had in shop. I didn't remember any of the names from the list above, so I was just looking randomly. One camera somehow caught my eye, the way it was built and how it felt in my hand. I wrote down the name, so I could look it up later and see what others said. Guess what, it was the Lumix LX100.</p> <p>Having loved it in person and having good reviews, I decided to buy it and it arrived three days before I left for <a href="">London</a>. Because I didn't have time to play with it before (I only used it to take photos of my <a href="">Cardboard</a>), the results with the new camera aren't that much better. What's on the blog is the cream of the photos, but the rest, that I have on my harddrive... has some truly awful ones.</p> <p>But I was really happy with it. And during the next months I travelled a lot more with it and I learned more about how to make photos so the quality improved a lot. I started thinking about framing photos, not just blindly clicking away, and surprise surprise, it does matter. </p> <p><img alt="Lumix LX100" src="" width="100%" style="max-width:600px"/></p> <p>Now, to get to the camera. It's quite small, definitely much smaller than a DSLR, but I wouldn't say it's pocketable. The bulge of the lens is too big and I read a horror story on the internet about someone who put it in a jacket pocket, accidentaly opened the camera inside the pocket, and this forced the lens motor and it was broken. </p> <p>It's got an electronic viewfinder, with a sensor to switch to it if you put your face there. Initially I used it, but then I found it more convenient to just look at the display, especially when fiddling with settings. It's not a touch screen display, so you can't do nice things like touch to focus. </p> <p>It can go fully manual and it has buttons and rings for most of the important settings, such as focus distance, aperture, shutter speed and EV (exposure value). If you want to change the ISO or the white balance, you have to press a button first to get to those settings. </p> <p><img alt="Joshi" src="" width="100%" style="max-width:600px"/></p> <p>The Lumix LX100 has a big sensor (for a compact), a Four Thirds one. It also has 24-75mm equivalent F1.7-2.8 lens. The combination of these two means that it takes really bright pictures, especially when not zoomed in. Especially when doing portraits, this results in great pictures.</p> <p><img alt="Glendalough" src="" width="100%" style="max-width:600px"/></p> <p>The zoom is only 3x, and I kept kicking myself because of that especially when travelling, because having a bigger zoom would have enabled so much better photos of landmarks. </p> <p><img alt="Flashlight painting" src="" width="100%" style="max-width:600px"/></p> <p>I've used to take some really nice long exposure shots, both with a flashlight and of the Perseides meteor shower. It took a while to figure out all the correct settings (you have to set it to mechanical shutter to enable long exposure times). </p> <p><img alt="Perseides meteor shower" src="" width="100%" style="max-width:600px"/></p> <p>The lens are fairly fast and focusing too. That has never been an issue. But sometimes turning the camera off takes about 10 seconds. But that's not really a problem. </p> <p>For video it can do 4K at 30FPS or FullHD at 60FPS. It also has Wifi and NFC support, but it sometimes refuses to connect to my Android phone. I'm blaming the Android App rather than the camera software, but I'm not sure.</p> <p>One fun feature: in auto mode, it has various settings based on what it detects in the picture. Things like portrait, landscape and wait for it, food. I guess because Instagram is popular. </p> <p>All in all, I am quite happy with my purchase. In one or two years, after I will have read some books on photography, I will probably buy a mirrorless, but until then I find this to be an excellent camera to learn (and to document my trips).</p> Sun, 13 Dec 2015 19:18:00 GMT,2015-12-13:/2015/12/13/panasonic-lumix-dmc-lx100-review Adding SSL with Let's Encrypt <p><a href="">Let's encrypt</a> is a new Certificate Authority, started by Mozilla, EFF and University of Michigan, that will offer free SSL certificates, with an easy setup. </p> <p>I had an attempt previously to set up SSL for my website, from <a href="">StartSSL</a>, but I... accidentally overwrote my private key when unzipping it, so... it became quite useless, and to delete it, I would have to pay. So I put the project on hold for a while.</p> <p>Yesterday, while reading news, I saw that Let's Encrypt finally entered public beta. They promise super easy setup, but for now they don't have out of the box support for nginx, which I use, so I had to scrape together the information from <a href="">several</a> <a href="">tutorials </a> to get it to work on my server. </p> <p>First, you have to install it on the server, together with <strong>git</strong>, if you don't have it already:</p> <div class="highlight"><pre><span class="x">sudo apt-get update</span> <span class="x">sudo apt-get install git</span> <span class="x">git clone</span> <span class="x">cd letsencrypt</span> <span class="x">export DIR=/tmp/letsencrypt-auto</span> <span class="x">mkdir -p </span><span class="p">$</span><span class="nv">DIR</span><span class="x"></span> </pre></div> <p>The way this works (if I understood it correctly), is that when the Let's Encrypt client contacts the Certificate Authority, it receives a cryptographic challenge that it has to write into a folder, which is accesible from the internet, to prove that it really has control of the domain that it is trying to get a certificate for.</p> <p>Now, our folder is not accesible to the Internet (unless for some weird reason you are serving out of /tmp), so we have to tell nginx to do that, by adding the following to our configuration, in the section that listens to port 80:</p> <div class="highlight"><pre>location &#39;/.well-known/acme-challenge&#39; { default_type &quot;text/plain&quot;; root /tmp/letsencrypt-auto; } </pre></div> <p>This will tell nginx to serve all URLs that start with '/.well-known/acme-challenge' from that folder in /tmp/. After this we have to reload nginx. Normally this is done with the following command on Ubuntu:</p> <div class="highlight"><pre>sudo service nginx reload </pre></div> <p>But I encountered some problems with it. For some reason the old version of nginx wouldn't die, so it would keep the 80 port occupied, and then the new version could not start. The solution I found after some Googling, was to forcefully kill the process that was using port 80.</p> <div class="highlight"><pre>sudo fuser -k 80/tcp sudo service nginx start </pre></div> <p>Then we have to create the folder to hold the challenge issued by ACME (no, not the Road Runner one) and run the script provided by them: </p> <div class="highlight"><pre><span class="x">./letsencrypt-auto certonly --server \</span> <span class="x"> -a webroot \</span> <span class="x"> --webroot-path=</span><span class="p">$</span><span class="nv">DIR</span><span class="x"> -d</span> </pre></div> <p>After this we will have the encryption keys in /etc/letsencrypt/live/ Now we need to tell nginx to start using them and to redirect all HTTP traffic to HTTPS. This means another change to config file. First we move all the configuration that we have for the server that listens on port 80 to a new one that listens on 443 (where are files located, what charset, what cache-ing strategy to use for static assets, etc) and add to the 80 one the following:</p> <div class="highlight"><pre> <span class="nt">location</span> <span class="o">/</span> <span class="p">{</span> <span class="n">return</span> <span class="m">301</span> <span class="n">https</span><span class="o">://</span><span class="err">$</span><span class="n">server_name</span><span class="err">$</span><span class="n">request_uri</span><span class="p">;</span> <span class="p">}</span> </pre></div> <p>This will tell nginx that when it is accessed using HTTP, it should issue a 301 redirect to the HTTPS version. This is the best way to do this redirect. </p> <p>The bare minimum needed to make the HTTPS server work is the following:</p> <div class="highlight"><pre>server { listen 443 ssl; root /where/my/files/are; ssl_certificate /etc/letsencrypt/live/; ssl_certificate_key /etc/letsencrypt/live/; } </pre></div> <p>However, you can do several more things to make things even more secure, by telling nginx not to use unsafe protocols or cyphers, to use HSTS, OCSP and some other options about which I don't know anything. Mozilla has a nice <a href="">tool</a> for generating these options. One thing to be careful with, is that the modern configuration disables TLS v1, which is required for compatibility with Android versions before Lollipop (5) and which are still a sizeable share of the market. </p> <p>If you use the whole config from Mozilla, you will also need to generate the Diffie-Hellman keys:</p> <div class="highlight"><pre>cd /etc/nginx/ openssl dhparam -out dhparam.pem 2048 </pre></div> <p>And then change the <strong>ssl_dhparam</strong> in the config to point to the above file. </p> <p>Normally, this is it. You should be able to restart the nginx server and then look at your site, enjoying the green lock in the top right corner and knowing that your readers will really read only your content, without interference from pesky hax0rz.</p> <p>In my case, I had to do some more things. One was to do the exact same thing for my subdomain which hosts my comments. Not a big deal. Then I had to change the links for the fonts I was using to also use HTTPS. Then I also had to change Isso (the comment server) to know that it's serving for HTTPS (by just updating the URL in the config file). </p> <p>The last thing I did was to update the nginx version I had. By default Ubuntu has a pretty old version (1.6), while the latest stable is 1.8. </p> <div class="highlight"><pre>sudo add-apt-repository ppa:nginx/stable sudo apt-get update sudo apt-get upgrade nginx </pre></div> <p>Hopefully, 1.9 will be stable soon, and then I can enable HTTP2 also :D:D (one of the main reasons I added SSL to my site). </p> <p>And now, it's time to check my site with <a href="">Qualys SSL Labs</a> and enjoy the A+ that I get for security. :D</p> Sat, 05 Dec 2015 21:14:00 GMT,2015-12-05:/2015/12/05/adding-ssl-with-let-s-encrypt Line charts in Javascript <p>Recently I wanted to take a look at some personal data that I had been collecting for several years (Quantified Self and Lifelogging ftw :D). Until now it was sitting there write-only, with me occasionally peeking at it manually, but because it was in a pretty much raw format (actually, multiple formats, from different sources), I didn't interact with it too much. However, recently I was a bit bored, I wanted to code something just for fun (as much as parsing XML files can be called fun), so I cleaned up the data and now I wanted to get some "useful" information out of it.</p> <p>The data consists of multiple timeseries for various labels, of integer data. The timestamp has second granularity, but the measurements are not every second, sometimes with several days or months between consecutive measurements.</p> <p>I want to be able to plot multiple timeseries on the same graph, so I can compare them to each other. Because it spans years, I want to be able to zoom and pan on the data. The chart should also look reasonably decent. The library I use should be free and open-source. And the kicker requirement: when zooming out, the data should get aggregated. This means that when looking at the data on the yearly scale, I don't want to see individual dots for each second where I have a measurement, but I want to see all the measurements for a month added up, and have only data points for each month show up. I want to do this on several levels, so that I have monthly, daily and hourly aggregations.</p> <p>And after two weeks of playing with various kinds of charting libraries in my free time, I reached the conclusion that the state of the art in free and open-source Javascript libraries is quite sad. Almost all of the libraries are awesome at only one thing and customizing them is quite hard. A quick review of the main ones I looked at:</p> <ul> <li><a href="">d3.js</a> - super awesome, but too low level. I had played with it <a href="">before</a>, but I didn't want to reinvent the wheel completely this time.</li> <li><a href="">Bokeh</a> - this would have been awesome. It is in Python, so it would have been super easy to integrate with the rest of my code. It generates HTML and Javascript, so you can view it in the browser. But because it uses generated coded, it's quite hard to customize anything you don't have explicit hooks for, and for zooming and aggregation you don't have hooks. I may use it in the future for other projects, because otherwise it's super awesome.</li> <li><a href="">Vega</a> - is a visualization grammar, a declarative format for creating, saving and sharing visualization designs. Try defining custom zoom behaviour with aggregation as a JSON. Nope. </li> <li><a href="">MetricsGraphics.js</a> - from Mozilla. Quite nice, but it never heard about zooming and it's quite opinionated, so customizing it is unlikely.</li> <li><a href="">Cubism</a> - this one is specifically for time series. It has really cool horizon charts (they are really nice at showing a data from a large domain in a small amount of vertical space). But it's geared towards real time usage (so new data is coming in all the time) and it has no zooming either. </li> <li><a href="">dygraphs</a> - You can only zoom in and reset the zoom, no zoom out AND you can't pan while zoomed in.</li> <li><a href="">Rickshaw</a> - Based on d3.js - zooming only with separate preview and you have to write CSS to position stuff around. </li> <li><a href="">nvd3.js</a> - Based on d3.js - looks nice out of the box, but you have to hack your own zoom and panning mechanism.</li> <li><a href="">c3.js</a> - Based on d3.js. Based on a cursory look, it does everything I want it to do.</li> <li><a href="">dc.js</a> - Based on d3.js (notice a pattern here?) and crossfilter. It also does what I need it to do.</li> </ul> <p>There are some others commercial libraries too (<a href="">Highcharts</a> or <a href="">amCharts</a>), which do everything and the kitchen sink, but meh, vive la open source.</p> <p>I ended up going with dc.js for two reasons: the API is much nicer, being in the style of d3.js, while c3.js has a more declarative syntax, including some string-to-function magic, and the other reason being that it is much easier to combine multiple kinds of charts in it and do filtering across them (thanks to the crossfilter integration). Also, out of the box, the charts in dc.js are nicer than the ones in c3.js, but I'm sure all this can be changed without (too) much hassle.</p> <p>So, let's get to the fun part: coding the line chart.</p> <p><em>I'll assume that we have an HTML file that contains a div with an id "chart" and the necessary CSS and Javascript imports</em></p> <p>Some code to generate some random data, in the form of lists of {"timestamp": Date, "data": number}.</p> <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15</pre></div></td><td class="code"><div class="highlight"><pre><span class="kd">function</span> <span class="nx">randomDate</span><span class="p">(</span><span class="nx">start</span><span class="p">,</span> <span class="nx">end</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="nx">start</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">+</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span> <span class="o">*</span> <span class="p">(</span><span class="nx">end</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()</span> <span class="o">-</span> <span class="nx">start</span><span class="p">.</span><span class="nx">getTime</span><span class="p">()));</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">getRandomInt</span><span class="p">(</span><span class="nx">min</span><span class="p">,</span> <span class="nx">max</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nx">floor</span><span class="p">(</span><span class="nb">Math</span><span class="p">.</span><span class="nx">random</span><span class="p">()</span> <span class="o">*</span> <span class="p">(</span><span class="nx">max</span> <span class="o">-</span> <span class="nx">min</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span> <span class="o">+</span> <span class="nx">min</span><span class="p">;</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">generateData</span><span class="p">()</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">data</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="o">&lt;</span> <span class="mi">1000</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> <span class="nx">data</span><span class="p">.</span><span class="nx">push</span><span class="p">({</span><span class="s2">&quot;timestamp&quot;</span><span class="o">:</span> <span class="nx">randomDate</span><span class="p">(</span><span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span> <span class="mi">01</span><span class="p">,</span> <span class="mi">01</span><span class="p">),</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="mi">2015</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">31</span><span class="p">)),</span> <span class="s2">&quot;data&quot;</span><span class="o">:</span> <span class="nx">getRandomInt</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">1000</span><span class="p">)})</span> <span class="p">}</span> <span class="k">return</span> <span class="nx">data</span><span class="p">.</span><span class="nx">sort</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span><span class="nx">b</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">a</span><span class="p">.</span><span class="nx">timestamp</span> <span class="o">-</span> <span class="nx">b</span><span class="p">.</span><span class="nx">timestamp</span> <span class="p">})</span> <span class="p">}</span> </pre></div> </td></tr></table> <p>Now let's declare some d3.js formatters, generate the data, initialize the chart, and do some preprocessing on the data:</p> <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19</pre></div></td><td class="code"><div class="highlight"><pre><span class="kd">var</span> <span class="nx">dateFormat</span> <span class="o">=</span> <span class="nx">d3</span><span class="p">.</span><span class="nx">time</span><span class="p">.</span><span class="nx">format</span><span class="p">.</span><span class="nx">iso</span> <span class="kd">var</span> <span class="nx">dayFormat</span> <span class="o">=</span> <span class="nx">d3</span><span class="p">.</span><span class="nx">time</span><span class="p">.</span><span class="nx">format</span><span class="p">(</span><span class="s1">&#39;%x&#39;</span><span class="p">)</span> <span class="kd">var</span> <span class="nx">numberFormat</span> <span class="o">=</span> <span class="nx">d3</span><span class="p">.</span><span class="nx">format</span><span class="p">(</span><span class="s1">&#39;d&#39;</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">chart</span> <span class="o">=</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">compositeChart</span><span class="p">(</span><span class="s1">&#39;#chart&#39;</span><span class="p">);</span> <span class="kd">var</span> <span class="nx">data</span> <span class="o">=</span> <span class="p">{</span><span class="s2">&quot;label1&quot;</span><span class="o">:</span> <span class="nx">generateData</span><span class="p">(),</span> <span class="s2">&quot;label2&quot;</span><span class="o">:</span> <span class="nx">generateData</span><span class="p">(),</span> <span class="s2">&quot;label3&quot;</span><span class="o">:</span> <span class="nx">generateData</span><span class="p">(),</span> <span class="s2">&quot;label4&quot;</span><span class="o">:</span> <span class="nx">generateData</span><span class="p">(),</span> <span class="s2">&quot;label5&quot;</span><span class="o">:</span> <span class="nx">generateData</span><span class="p">()}</span> <span class="c1">// Parse the timestamp and precompute the slots where each datapoint will fit </span> <span class="c1">// when aggregating</span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">label</span> <span class="k">in</span> <span class="nx">data</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nx">data</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">label</span><span class="p">))</span> <span class="p">{</span> <span class="nx">data</span><span class="p">[</span><span class="nx">label</span><span class="p">].</span><span class="nx">forEach</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span> <span class="nx">d</span><span class="p">.</span><span class="nx">dd</span> <span class="o">=</span> <span class="nx">dateFormat</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">timestamp</span><span class="p">);</span> <span class="nx">d</span><span class="p">.</span><span class="nx">hour</span> <span class="o">=</span> <span class="nx">d3</span><span class="p">.</span><span class="nx">time</span><span class="p">.</span><span class="nx">hour</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">dd</span><span class="p">)</span> <span class="nx">d</span><span class="p">.</span><span class="nx">day</span> <span class="o">=</span> <span class="nx">d3</span><span class="p">.</span><span class="nx">time</span><span class="p">.</span><span class="nx">day</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">dd</span><span class="p">)</span> <span class="nx">d</span><span class="p">.</span><span class="nx">month</span> <span class="o">=</span> <span class="nx">d3</span><span class="p">.</span><span class="nx">time</span><span class="p">.</span><span class="nx">month</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">dd</span><span class="p">)</span> <span class="p">})</span> <span class="p">}</span> <span class="p">}</span> </pre></div> </td></tr></table> <p>We are using a composite chart from dc.js, so we will have to generate the each line as an individual line chart. For each line, we generate the crossfilter group (which does aggregations and filtering) and then create the actual chart, setting the correct data and tooltip title. </p> <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21</pre></div></td><td class="code"><div class="highlight"><pre><span class="kd">function</span> <span class="nx">generateCharts</span><span class="p">(</span><span class="nx">data</span><span class="p">,</span> <span class="nx">aggregation</span><span class="p">)</span> <span class="p">{</span> <span class="nx">charts</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">for</span> <span class="p">(</span><span class="kd">var</span> <span class="nx">label</span> <span class="k">in</span> <span class="nx">data</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nx">data</span><span class="p">.</span><span class="nx">hasOwnProperty</span><span class="p">(</span><span class="nx">label</span><span class="p">))</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">ndx</span> <span class="o">=</span> <span class="nx">crossfilter</span><span class="p">(</span><span class="nx">data</span><span class="p">[</span><span class="nx">label</span><span class="p">]);</span> <span class="kd">var</span> <span class="nx">dim</span> <span class="o">=</span> <span class="nx">ndx</span><span class="p">.</span><span class="nx">dimension</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">d</span><span class="p">[</span><span class="nx">aggregation</span><span class="p">]</span> <span class="p">});</span> <span class="nx">lengths</span> <span class="o">=</span> <span class="nx">dim</span><span class="p">.</span><span class="nx">group</span><span class="p">().</span><span class="nx">reduceSum</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">d</span><span class="p">.</span><span class="nx">data</span><span class="p">})</span> <span class="nx">charts</span><span class="p">.</span><span class="nx">push</span><span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">lineChart</span><span class="p">(</span><span class="nx">chart</span><span class="p">)</span> <span class="p">.</span><span class="nx">group</span><span class="p">(</span><span class="nx">lengths</span><span class="p">,</span> <span class="nx">label</span><span class="p">)</span> <span class="p">.</span><span class="nx">dimension</span><span class="p">(</span><span class="nx">dim</span><span class="p">)</span> <span class="p">.</span><span class="nx">title</span><span class="p">((</span><span class="kd">function</span><span class="p">(</span><span class="nx">name</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="kd">function</span> <span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">name</span> <span class="o">+</span> <span class="s1">&#39;\n&#39;</span> <span class="o">+</span> <span class="nx">dayFormat</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">key</span><span class="p">)</span> <span class="o">+</span> <span class="s1">&#39;\n&#39;</span> <span class="o">+</span> <span class="nx">numberFormat</span><span class="p">(</span><span class="nx">d</span><span class="p">.</span><span class="nx">value</span><span class="p">);</span> <span class="p">}})(</span><span class="nx">label</span><span class="p">))</span> <span class="p">)</span> <span class="p">}</span> <span class="p">}</span> <span class="k">return</span> <span class="nx">charts</span> <span class="p">}</span> <span class="nx">currentGroup</span> <span class="o">=</span> <span class="s2">&quot;month&quot;</span> <span class="nx">charts</span> <span class="o">=</span> <span class="nx">generateCharts</span><span class="p">(</span><span class="nx">data</span><span class="p">,</span> <span class="nx">currentGroup</span><span class="p">)</span> </pre></div> </td></tr></table> <p>Now we have to set all the options for our chart, nothing special.</p> <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24</pre></div></td><td class="code"><div class="highlight"><pre><span class="nx">chart</span> <span class="p">.</span><span class="nx">width</span><span class="p">(</span><span class="mi">1000</span><span class="p">)</span> <span class="p">.</span><span class="nx">height</span><span class="p">(</span><span class="mi">400</span><span class="p">)</span> <span class="p">.</span><span class="nx">zoomScale</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mi">800</span><span class="p">])</span> <span class="p">.</span><span class="nx">zoomOutRestrict</span><span class="p">(</span><span class="kc">false</span><span class="p">)</span> <span class="p">.</span><span class="nx">transitionDuration</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span> <span class="p">.</span><span class="nx">margins</span><span class="p">({</span><span class="nx">top</span><span class="o">:</span> <span class="mi">30</span><span class="p">,</span> <span class="nx">right</span><span class="o">:</span> <span class="mi">50</span><span class="p">,</span> <span class="nx">bottom</span><span class="o">:</span> <span class="mi">25</span><span class="p">,</span> <span class="nx">left</span><span class="o">:</span> <span class="mi">50</span><span class="p">})</span> <span class="p">.</span><span class="nx">mouseZoomable</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span> <span class="p">.</span><span class="nx">x</span><span class="p">(</span><span class="nx">d3</span><span class="p">.</span><span class="nx">time</span><span class="p">.</span><span class="nx">scale</span><span class="p">().</span><span class="nx">domain</span><span class="p">([</span><span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="mi">2014</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">),</span> <span class="k">new</span> <span class="nb">Date</span><span class="p">(</span><span class="mi">2015</span><span class="p">,</span> <span class="mi">11</span><span class="p">,</span> <span class="mi">31</span><span class="p">)]))</span> <span class="p">.</span><span class="nx">round</span><span class="p">(</span><span class="nx">d3</span><span class="p">.</span><span class="nx">time</span><span class="p">.</span><span class="nx">month</span><span class="p">.</span><span class="nx">round</span><span class="p">)</span> <span class="p">.</span><span class="nx">xUnits</span><span class="p">(</span><span class="nx">d3</span><span class="p">.</span><span class="nx">time</span><span class="p">.</span><span class="nx">months</span><span class="p">)</span> <span class="p">.</span><span class="nx">elasticY</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span> <span class="p">.</span><span class="nx">renderHorizontalGridLines</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span> <span class="p">.</span><span class="nx">keyAccessor</span><span class="p">(</span><span class="kd">function</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">d</span><span class="p">.</span><span class="nx">key</span><span class="p">;</span> <span class="p">})</span> <span class="p">.</span><span class="nx">legend</span><span class="p">(</span><span class="nx">dc</span><span class="p">.</span><span class="nx">legend</span><span class="p">().</span><span class="nx">x</span><span class="p">(</span><span class="mi">900</span><span class="p">).</span><span class="nx">y</span><span class="p">(</span><span class="mi">10</span><span class="p">).</span><span class="nx">itemHeight</span><span class="p">(</span><span class="mi">13</span><span class="p">).</span><span class="nx">gap</span><span class="p">(</span><span class="mi">5</span><span class="p">))</span> <span class="p">.</span><span class="nx">valueAccessor</span><span class="p">(</span><span class="kd">function</span> <span class="p">(</span><span class="nx">d</span><span class="p">)</span> <span class="p">{</span> <span class="k">return</span> <span class="nx">d</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span> <span class="p">})</span> <span class="p">.</span><span class="nx">compose</span><span class="p">(</span><span class="nx">charts</span><span class="p">)</span> <span class="p">.</span><span class="nx">shareColors</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span> <span class="p">.</span><span class="nx">shareTitle</span><span class="p">(</span><span class="kc">false</span><span class="p">)</span> <span class="p">.</span><span class="nx">brushOn</span><span class="p">(</span><span class="kc">false</span><span class="p">)</span> </pre></div> </td></tr></table> <p>This is where the magic happens. When we get a zoom event, we check what is the range that is shown on screen and based on how wide it is, we regenerate the chart if we went to a different level. </p> <table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18</pre></div></td><td class="code"><div class="highlight"><pre> <span class="p">.</span><span class="nx">on</span><span class="p">(</span><span class="s1">&#39;zoomed&#39;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">chart</span><span class="p">,</span> <span class="nx">filter</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">range</span> <span class="o">=</span> <span class="nx">chart</span><span class="p">.</span><span class="nx">x</span><span class="p">().</span><span class="nx">domain</span><span class="p">()</span> <span class="kd">var</span> <span class="nx">diff</span> <span class="o">=</span> <span class="nx">range</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="nx">range</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="k">if</span> <span class="p">(</span><span class="nx">diff</span> <span class="o">&lt;</span> <span class="mi">1000</span><span class="o">*</span><span class="mi">3600</span><span class="o">*</span><span class="mi">24</span><span class="o">*</span><span class="mi">15</span><span class="p">)</span> <span class="p">{</span> <span class="nx">aggregate</span> <span class="o">=</span> <span class="s2">&quot;hour&quot;</span> <span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="nx">diff</span> <span class="o">&lt;</span> <span class="mi">1000</span><span class="o">*</span><span class="mi">3600</span><span class="o">*</span><span class="mi">24</span><span class="o">*</span><span class="mi">30</span><span class="o">*</span><span class="mi">6</span><span class="p">)</span> <span class="p">{</span> <span class="nx">aggregate</span> <span class="o">=</span> <span class="s2">&quot;day&quot;</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="nx">aggregate</span> <span class="o">=</span> <span class="s2">&quot;month&quot;</span> <span class="p">}</span> <span class="k">if</span> <span class="p">(</span><span class="nx">aggregate</span> <span class="o">!=</span> <span class="nx">currentGroup</span><span class="p">)</span> <span class="p">{</span> <span class="nx">charts</span> <span class="o">=</span> <span class="nx">generateCharts</span><span class="p">(</span><span class="nx">data</span><span class="p">,</span> <span class="nx">aggregate</span><span class="p">)</span> <span class="nx">chart</span><span class="p">.</span><span class="nx">compose</span><span class="p">(</span><span class="nx">charts</span><span class="p">).</span><span class="nx">render</span><span class="p">()</span> <span class="nx">currentGroup</span> <span class="o">=</span> <span class="nx">aggregate</span> <span class="p">}</span> <span class="p">})</span> <span class="nx">dc</span><span class="p">.</span><span class="nx">renderAll</span><span class="p">();</span> </pre></div> </td></tr></table> <p>The results can be seen <a href="">here</a>, with the source being in this <a href="">GitHub repo</a>. And now that we have pretty graphs, it's time to interpret them :))</p> <p><em>And after the post was written, open-sourced their own library X(. I'll have to investigate that one too.</em></p> Sat, 07 Nov 2015 22:40:00 GMT,2015-11-08:/2015/11/08/line-charts-in-javascript BAP <figure> <p><img alt="The concert hall" src="" width="100%" style="max-width:600px"/> <figcaption>The Royal Concert Hall</figcaption></p> </figure> <p>In September I went to Belgium to work in a Google datacenter, near Mons, for two weeks. I took the opportunity and used the three weekends to wander around and visit a lot of places, including three capitals: Brussels, Amsterdam and Paris (hence the title of the post).</p> <figure> <p><img alt="DHL delivery" src="" width="100%" style="max-width:600px"/> <figcaption>Somebody ordered a looot of stuff.</figcaption></p> </figure> <p>I flew to Amsterdam on Saturday morning. The first thing I wanted to do was to visit the Google office there, but it was in a commercial space, which is closed during weekends, so I couldn't get in :(. So, as I was looking around on TripAdvisor for where to go next, one thing kept drawing my eye. I didn't want to believe it, but I finally caved in and went to the Van Gogh museum. For the first time in my life I went to an art museum. And guess what. I liked it. A lot. </p> <figure> <p><img alt="Van Gogh self portrait" src="" width="100%" style="max-width:600px"/> <figcaption>Large print of Van Gogh self portrait</figcaption></p> </figure> <p>The week before that I had been playing with the code from the paper <a href="">"A Neural Algorithm of Artistic Style"</a> and the most prominently featured image there is Starry Night by Van Gogh. The results obtained from that painting were quite nice, so it stuck with me, and when I saw that the museum was close-ish to me, I went for it. And I can see why Van Gogh is one of the most famous painters in the world. His portraits are incredibly expressive and suggest strong emotions. He said that portraits are "The only thing in painting that excites me to the depths of my soul, and which makes me feel the infinite more than anything else." A special category of his portraits are his self-portraits, of which he drew more then 43. As you look at them in chronological order, you can see his evolution, both as an artist and as a human being. He had lots of mental health problems and he often used painting as a "cure". And on his self-portraits you can sometimes see his sadness, his torment, his despair or sometimes just the lack of a will to live. He was a great painter, who tried lots of different styles, and it was fascinating to see them explained there, from paintings that were made out of dots, to ones that were made of clearly distinguishable strokes, to ones that were more continuous. He always tried to improve his painting and was constantly looking to meet other artists to learn from them and to find new inspiration. As I was walking through the museum it filled me with sadness to see that such a brilliant artist, who was looking for the infinite, did not find the one and only true infinite, God.</p> <figure> <p><img alt="Bikes in Amsterdam" src="" width="100%" style="max-width:600px"/> <figcaption>Bikes, bikes everywhere</figcaption></p> </figure> <p>Amsterdam gave a really good impression in the first hour and I liked it a looot. What they say about how bike friendly it is is really true. It's full of bikes. And it has dedicated bike lanes everywhere, usually separate from cars. And I loved the buildings. I don't have much knowledge about architecture, so I can't really explain it, but I really liked the style of most of the buildings I saw.</p> <div class="gallery clearfix" style="max-width:600px"> <script type="application/json">[]</script> </div> <p>I didn't spend much time in Amsterdam, because I went after that to visit some friends in Twello. Small city, nothing much to see. From there I drove 300 km to Mons, where I would be working. While driving, I kept reflecting on this and I couldn't recognize myself. I used to have a profound dislike for driving and now I voluntarily chose to rent a car and driving around a lot. Who is this guy that goes to art museum and likes driving around and what have you done with my former self????</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Locked in an eternal embrace " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Princesses only " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Go fish " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/10/bap/amsterdam/P1080569.jpg", "title": "Locked in an eternal embrace\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080569.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/amsterdam/P1080577.jpg", "title": "Princesses only \n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080577.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/amsterdam/P1080582.jpg", "title": "Go fish\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080582.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/amsterdam/P1080597.jpg", "title": "Pretty stones in modern age sediments\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080597.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/amsterdam/P1080603.jpg", "title": "I guess Atlas got really distorted after holding up the sky for so long\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080603.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/amsterdam/P1080609.jpg", "title": "What did the poor Android-like figure do to get chained to the pole? :(\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080609.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/amsterdam/P1080637.jpg", "title": "How did they afford a ticket here if they don't have a home???\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080637.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/amsterdam/P1080640.jpg", "title": "Goooooaaal. Almost.\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080640.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/amsterdam/P1080644.jpg", "title": "The Cube.\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080644.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/amsterdam/P1080652.jpg", "title": "Because horizontal parks are too mainstream.\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080652.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/amsterdam/P1080663.jpg", "title": "What if I want to have a big discussion here????\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080663.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/amsterdam/P1080685.jpg", "title": "Diamonds. 'nuff said.\n", "msrc": "/images/2015/10/bap/amsterdam/thumbs/P1080685.jpg", "w": 950, "h": 714}]</script> </div> <p>Mons is the European "capital" of "culture" in 2015. I don't know if I chose the wrong two weeks to be there, but I didn't see much of culture in Mons. I remeber seeing one concert in the old city and plenty of weird looking, loud groups that made me want to stay away from them. Oh, and the renovation of the train station, which was supposed to be finished by the end of 2014, is still ongoing, so getting around in the city is really painful. But they've got one thing going on for them: food is quite good. Of that I cannot really complain (actually, I can, but more in the sense that I put on some extra kilograms, that now I have to get rid off before going to Romania next week).</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Real life negative lighting " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Love the rules? " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Hope they are not selling antique Rolands :D " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/10/bap/mons/P1080783.jpg", "title": "Real life negative lighting\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1080783.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/mons/P1080768.jpg", "title": "Love the rules?\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1080768.jpg", "w": 950, "h": 665}, {"src": "/images/2015/10/bap/mons/P1080780.jpg", "title": "Hope they are not selling antique Rolands :D\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1080780.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/mons/P1080796.jpg", "title": "The only concert I saw\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1080796.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/mons/P1080802.jpg", "title": "But hey, at least the stage was good for taking nice photos :D\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1080802.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/mons/P1080808.jpg", "title": "If you don't move to the cloud, your loadbalancers fail :P\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1080808.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/mons/P1080809.jpg", "title": "I have no idea what this \"statue\" represents\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1080809.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/mons/P1080810.jpg", "title": "The quadcolors of Mons\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1080810.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/mons/P1090339.jpg", "title": "I guess the water was too cold and he froze there\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1090339.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/mons/P1090341.jpg", "title": "Do you want to get the boot?\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1090341.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/mons/P1090359.jpg", "title": "Another form of modern \"art\". The latest attempt at getting rid of garbage?\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1090359.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/mons/P1090362.jpg", "title": "Yeah, sorry, my french is not good enough to translate this. And the font is too weird for Google Transalte to catch it.\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1090362.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/mons/P1090370.jpg", "title": "Combined with the blue from the other day, it shows the Romanian flag :D\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1090370.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/mons/P1090374.jpg", "title": "No-hands staring contest?\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1090374.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/mons/P1090385.jpg", "title": "The town hall.\n", "msrc": "/images/2015/10/bap/mons/thumbs/P1090385.jpg", "w": 950, "h": 714}]</script> </div> <p>Being in Belgium, I wanted to see it's capital too. So on the next Saturday I took the train to Bruxelles. At the suggestion of a colleague, I got off a station before the Brussel Central station, so I could walk around a bit. I went to have brunch in a really lovely place called Oma, where, like in the rest of the French-speaking part of Belgium, they didn't speak much English. Brussel didn't impress me as much in the first hour. Only after I had gotten to the Justice Palace and there, from the Ascenseur des Marolles I could see the "lower" half of the city. And from then on it became more impressive. There was neighborhood where pretty much every shop was either an art gallery or an antique boutique. Around the Notre Dame Du Sablon (there are multiple Notre Dame churches apparently. The more you know) it was full of booths selling antiques on the street. One item in particular drew my attention: a painting of a cat. For logistical reasons, I didn't enquire about details, but it's on my wishlist. </p> <figure> <p><img alt="Antique booths" src="" width="100%" style="max-width:600px"/> <figcaption>Antique booths, specializing in cat paintings :)))</figcaption></p> </figure> <p>And then, as you go towards Manneken Pis, which is a statue of a little boy peeing, the antique shops get replaced by chocolate shops. I think every second shop is a chocolate shop. And it's sooo good.</p> <iframe width="560" height="315" src="" frameborder="0" allowfullscreen></iframe> <p>In Grand Place, the central former marketplace, I saw the best street performance in my life. These people really knew how to create an atmosphere and fuel the crowd.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="The castle in the distance " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Justice is getting some much needed reparations. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Next Marvel movie? " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/10/bap/brussels/P1080815.jpg", "title": "The castle in the distance\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080815.jpg", "w": 950, "h": 1256}, {"src": "/images/2015/10/bap/brussels/P1080850.jpg", "title": "Justice is getting some much needed reparations.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080850.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1080868.jpg", "title": "Next Marvel movie?\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080868.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1080819.jpg", "title": "Cracked memories\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080819.jpg", "w": 950, "h": 1196}, {"src": "/images/2015/10/bap/brussels/P1080840.jpg", "title": "The Hotel. No further details necessary.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080840.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080851.jpg", "title": "Soldiers who died for the crown.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080851.jpg", "w": 950, "h": 1261}, {"src": "/images/2015/10/bap/brussels/P1080860.jpg", "title": "Grumpy soldiers.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080860.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1080865.jpg", "title": "\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080865.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080873.jpg", "title": "Top of Ascenseur des Marolles\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080873.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1080893.jpg", "title": "Too bad I didn't try them :(\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080893.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080909.jpg", "title": "Let's talk science!\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080909.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080919.jpg", "title": "Monumental packing skills. \n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080919.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080920.jpg", "title": "If you stay still enough, the pigeons won't fly away!\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080920.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1080927.jpg", "title": "Modern sun dial.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080927.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1080928.jpg", "title": "Some countries have a golden goose, others have a golden fly. \n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080928.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080934.jpg", "title": "\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080934.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080937.jpg", "title": "Modern guards at the palace.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080937.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080940.jpg", "title": "Really modern.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080940.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080943.jpg", "title": "A new burden for Atlas: carry the time, not just the sky. \n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080943.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080948.jpg", "title": "Ball room at the palace.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080948.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080958.jpg", "title": "Art school in Brussels.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080958.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080966.jpg", "title": "", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080966.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080979.jpg", "title": "Grand Place\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080979.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080988.jpg", "title": "", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080988.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1080991.jpg", "title": "Still Grand Place.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1080991.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1090007.jpg", "title": "Looking towards Albert\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090007.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1090008.jpg", "title": "Roland, Roland everywhere.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090008.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1090013.jpg", "title": "Looking over Elisabeth.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090013.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1090015.jpg", "title": "Jardin du Mont des Arts.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090015.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1090020.jpg", "title": "", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090020.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1090029.jpg", "title": "", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090029.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1090037.jpg", "title": "Best place to learn music is in Ye Olde England\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090037.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/brussels/P1090064.jpg", "title": "Sakharov, the great physicist.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090064.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1090067.jpg", "title": "\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090067.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1090071.jpg", "title": "", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090071.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1090084.jpg", "title": "", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090084.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1090093.jpg", "title": "Lazing around.\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090093.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/brussels/P1090095.jpg", "title": "Boooo!\n", "msrc": "/images/2015/10/bap/brussels/thumbs/P1090095.jpg", "w": 950, "h": 1263}]</script> </div> <p>Last pitstop in Brussel: the European Parliament. I found it sooo ironic that among all the fancy, shiny buildings, with posters saying how commited the EU is to development and to eradicating poverty, there was a homeless person, right there, tucked away in a corner. So much about their noble goals. Thank you for caring for Africa, while this is still going on at your literal doorstep. </p> <figure> <p><img alt="Homeless person on the doorstep of the European Parliament" src="" width="100%" style="max-width:600px"/> <figcaption>Homeless person on the doorstep of the European Parliament</figcaption></p> </figure> <p>On Sunday I went to the church where a Hungarian colleague went. While having lunch with him, he mentioned how awesome the TGV is, that you're going at 300km/h and as you go along the highway, you see all the cars going backwards. So I decided to try it out, by going to Paris. At 2 o'clock I bought the ticket for the train at 4:15, at 6 o'clock I was in Gare du Nord and I had a train back at 9:52. </p> <p><img alt="The Eiffel tower" src="" width="100%" style="max-width:600px"/></p> <p>What do you go and see when you're in Paris? The Eiffel tower, of course. Because I wanted to see the city and not the metro system, I walked. I normally walk pretty fast, but now I had to walk even faster, because I knew I would stop to take a lot of pictures on the way. So what Google said would take one hour and ten minutes, took almost two hours. But I got to pass by the Opera, admire La Place de la Concorde (where the Obelisk is), walk through le Jardin des Tuileries and see le Petit and Grand Palais from a distance.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Landmarks in a box, without giftwrap. Call now, for only 5000000$. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Who is that even for? Burglars? " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The Opera. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/10/bap/paris/P1090170.jpg", "title": "Landmarks in a box, without giftwrap. Call now, for only 5000000$.\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090170.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090125.jpg", "title": "Who is that even for? Burglars?\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090125.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/paris/P1090160.jpg", "title": "The Opera. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090160.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/paris/P1090130.jpg", "title": "Church of Saint Vincent de Paul\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090130.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/paris/P1090134.jpg", "title": "U w00t mate?\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090134.jpg", "w": 950, "h": 983}, {"src": "/images/2015/10/bap/paris/P1090144.jpg", "title": "And of course, they are right next to each other, so it's even easier to get lost. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090144.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/paris/P1090145.jpg", "title": "", "msrc": "/images/2015/10/bap/paris/thumbs/P1090145.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090162.jpg", "title": "Music Academy.\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090162.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/paris/P1090174.jpg", "title": "You no longer need to go to America for the American Dream, you can stay in good old Europe. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090174.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/paris/P1090187.jpg", "title": "Surveying the scene. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090187.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090195.jpg", "title": "Le Jardin des Tuileries.\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090195.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090217.jpg", "title": "Fountain of the Gods. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090217.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090219.jpg", "title": "The Obelisc. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090219.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090232.jpg", "title": "National Assembly. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090232.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/paris/P1090241.jpg", "title": "\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090241.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/paris/P1090244.jpg", "title": "Even statues need sunscreen. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090244.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090245.jpg", "title": "Golden ride. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090245.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090248.jpg", "title": "Message passing. \n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090248.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090269.jpg", "title": "Quite mesmerizing, isn't it?\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090269.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/paris/P1090305.jpg", "title": "", "msrc": "/images/2015/10/bap/paris/thumbs/P1090305.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090331.jpg", "title": "Heaters so you can keep eating outside.\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090331.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/paris/P1090332.jpg", "title": "Recharge your phone by pedalling.\n", "msrc": "/images/2015/10/bap/paris/thumbs/P1090332.jpg", "w": 950, "h": 714}]</script> </div> <p>I did end up taking a metro in Paris, because I wanted to see my good friend <a href="">Alida</a> (who is <a href="">much better</a> now and she just started college in Paris). We didn't get to talk too much, only for about 15 minutes, but it was nice. I also find it funny how more and more I get to meet up with friends from my homewtown in cities all over the world, because we all left.</p> <p><img alt="Diamond shops in Antwerp" src="" width="100%" style="max-width:600px"/></p> <p>The last city that I visited is Antwerp. I'll list it here, because while it's not any countries capital, it's the world's diamond capital. Diamond shops, diamond shops everywhere. But interestingly enough, Antwerp itself doesn't look as luxurious. It has plenty of castle-like entities, that look almost like the ones in Disney movies, but almost everywhere you look, you can find some small thing that is off. Or just plain weird futuristic statues that don't fit anywhere. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="House on the rocks? Rocks on the house? " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Flatland on a fence " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/10/bap/antwerp/P1090402.jpg", "title": "House on the rocks? Rocks on the house?\n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090402.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/antwerp/P1090409.jpg", "title": "Flatland on a fence\n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090409.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/antwerp/P1090420.jpg", "title": "", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090420.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/antwerp/P1090419.jpg", "title": "\n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090419.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/antwerp/P1090433.jpg", "title": "", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090433.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/antwerp/P1090437.jpg", "title": "", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090437.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/antwerp/P1090441.jpg", "title": "", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090441.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/antwerp/P1090448.jpg", "title": "His fluffiness\n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090448.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/antwerp/P1090464.jpg", "title": "", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090464.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/antwerp/P1090472.jpg", "title": "I hope my request won't time ut. \n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090472.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/antwerp/P1090488.jpg", "title": "Does MediaMarkt sell diamonds too in Antwerp?\n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090488.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/antwerp/P1090494.jpg", "title": "Is this a translation from Chinese to Dutch? Or from Dutch to English? Or both?\n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090494.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/antwerp/P1090495.jpg", "title": "Antwerp Central Station\n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090495.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/antwerp/P1090499.jpg", "title": "You're pretty far from home!\n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090499.jpg", "w": 950, "h": 714}, {"src": "/images/2015/10/bap/antwerp/P1090506.jpg", "title": "", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090506.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/10/bap/antwerp/P1090513.jpg", "title": "Le Zoo.\n", "msrc": "/images/2015/10/bap/antwerp/thumbs/P1090513.jpg", "w": 950, "h": 714}]</script> </div> <p>After wandering about in Antwerp for 3 hours and eating some good pork ribs, I went to visit some more friends, this time in Deventer. And then I went home, finally.</p> <p>And with this ends a period of 6 months, in which in every month I traveled somewhere, usually to a place I've never been before. For now, I'll take a break from this (well, except for last weeks trip to Romania. And the Christmas one. But other than that, totally :D) and focus more on new horizons in existing relationships, because that's the way I feel God is leading me "so that through the church the manifold wisdom of God might now be made known to the rulers and authorities in the heavenly places." (Ephesians 3:10).</p> Sun, 11 Oct 2015 15:40:00 GMT,2015-10-11:/2015/10/11/bap Google Tech Talk @ Babes Bolyai University <p><img src="" alt="Google Tech Talk @ Babes Bolyai" class="no_crop" width="100%" style="max-width:600px"/></p> <p>Good news everyone! I will give two presentations at the Babes Bolyai University in Cluj on the 21st of October. The first talk is aimed mostly at students and I will be talking about what I do as a Site Reliability Engineer and what it takes to maintain a large scale service up and running all the time. The second one is about Megastore, a database with strong consistency guarantees on a global scale.</p> <p>If you are interested and want to come, please register using this <a href="">form</a>.</p> Thu, 08 Oct 2015 22:54:00 GMT,2015-10-09:/2015/10/09/google-tech-talk-babes-bolyai-university San Francisco and the so called Mountain View <figure> <p><img alt="Alcatraz" src="" width="100%" style="max-width:600px"/> <figcaption>Alcatraz, where my childhood favorite movie was set, The Rock</figcaption></p> </figure> <p>After a week in New York and another one in hot, humid Richmond, where I had a very blessed time due to who was there, I finally arrived to the official destination of my trip: Mountain View, where Google has more employees then the number of people who live in my hometown of Marghita.</p> <figure> <p><img alt="Google sidewalk sign" src="" width="100%" style="max-width:600px"/> <figcaption>Google is even in the sidewalk </figcaption></p> </figure> <p>The trip there consisted of a long and quite stressful day, which started off with a rush and not getting a chance to say good bye to all my new friends, then my plane getting delayed, almost missing my connecting flight, scratching my rental car, taking two wrong turns on the 5 lane 101 Highway (with GPS of course), before, with God's help, getting to the GSuites in Mountain View.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Palm trees in Mountain View. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Because one sign is not enough, you have to give a reason as well. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Some band setting up in the Mountain View Pioneer Memorial Park. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/mtv/P1050540.jpg", "title": "Palm trees in Mountain View. \n", "msrc": "/images/2015/08/san_francisco/mtv/thumbs/P1050540.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/mtv/P1050528.jpg", "title": "Because one sign is not enough, you have to give a reason as well. \n", "msrc": "/images/2015/08/san_francisco/mtv/thumbs/P1050528.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/mtv/P1050538.jpg", "title": "Some band setting up in the Mountain View Pioneer Memorial Park.\n", "msrc": "/images/2015/08/san_francisco/mtv/thumbs/P1050538.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/mtv/P1050892.jpg", "title": "Some... statue?\n", "msrc": "/images/2015/08/san_francisco/mtv/thumbs/P1050892.jpg", "w": 950, "h": 1263}]</script> </div> <p>Being quite tired after two weeks of vacationing, I decided to take it easy on that Saturday and mostly relax. Woke up late, eventually walked down Castro Street (which is where basically all social life is happening in Moutain View). Had brunch (I so love brunch :X:X) at the Posh Bagel (recommended by Google Now). While eating my really big strawberry jam pancake, I noticed that the next thing Google is recommending that I do is to visit the Computer History Museum. TripAdvisor also said it's the number 1 thing to do in Mountain View, so I decided to slowly drag myself over there.</p> <p><img alt="SF buildings" src="" width="100%" style="max-width:600px"/></p> <p>MTV is a nice, quiet place. It's super boring, but it has nice weather, nice wide streets and tall palm trees. It's really nice to relax, but I wouldn't want to live there. And of course, like everything in California, it's sprawled out and it has a bad public transport.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Setting it up " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The " display" " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/babbage/P1050549.jpg", "title": "Setting it up\n", "msrc": "/images/2015/08/san_francisco/babbage/thumbs/P1050549.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/babbage/P1050548.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/babbage/thumbs/P1050548.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/babbage/P1050551.jpg", "title": "The \"display\"\n", "msrc": "/images/2015/08/san_francisco/babbage/thumbs/P1050551.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/babbage/P1050552.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/babbage/thumbs/P1050552.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/babbage/P1050556.jpg", "title": "The \"brains\"\n", "msrc": "/images/2015/08/san_francisco/babbage/thumbs/P1050556.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/babbage/P1050558.jpg", "title": "The expert\n", "msrc": "/images/2015/08/san_francisco/babbage/thumbs/P1050558.jpg", "w": 950, "h": 1263}]</script> </div> <p>The Computer History Museum was super cool. They had a recreation of the Babbage differential engine and they showed how it worked! Ever since reading <a href="">The Difference Engine</a> and then learning about what Charles Babbage had created and how Ada Lovelace may have been the first programmer in the world, I have been fascinated by these mechanical computers. While the difference engine was not Turing complete, Babbage later developed plans for the Analytical Engine, which had arithmetic logic units, control flow and memory, thus theoretically being able to calculate any computable function.</p> <div class="gallery clearfix" style="max-width:600px"> <img title=" " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="I think it" s a memory drum. ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="This little machine was only 10.000$. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/computer_history/P1050546.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050546.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050597.jpg", "title": "I think it's a memory drum.\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050597.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050614.jpg", "title": "This little machine was only 10.000$.\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050614.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050577.jpg", "title": "Cray-1 supercomputer.\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050577.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050594.jpg", "title": "ENIAC parts.\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050594.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050595.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050595.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050602.jpg", "title": "IBM 360. Rumour has it the latest IBM is still backwards compatible with it. \n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050602.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050613.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050613.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050617.jpg", "title": "First attempt at making computers pretty too.\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050617.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050626.jpg", "title": "This is on what all the good animation movies were made.\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050626.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050667.jpg", "title": "Leave messages for the others for 25c.\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050667.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050695.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050695.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050716.jpg", "title": "5 keys should be enough for everyone.\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050716.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050742.jpg", "title": "First programmers!\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050742.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050755.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050755.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050762.jpg", "title": "Fire the missiles!\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050762.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050792.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050792.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050799.jpg", "title": "We are the robots!\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050799.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050804.jpg", "title": "A LISP machine\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050804.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050809.jpg", "title": "Deep Blue-like computer.\n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050809.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050823.jpg", "title": "Insides of a chip. \n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050823.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/computer_history/P1050851.jpg", "title": "Pacman going on the walls. \n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050851.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/computer_history/P1050891.jpg", "title": "No comment. \n", "msrc": "/images/2015/08/san_francisco/computer_history/thumbs/P1050891.jpg", "w": 950, "h": 1263}]</script> </div> <p>Of course, they had plenty of other things, such as parts of the ENIAC, a Google self-driving car (not that there are not plenty of them on the road in California), a Cray supercomputer, drones, robots, parts of satellites, original arcade games, and pretty much every computer that was built from 1960 to 1990. For geeks, it's a must visit.</p> <p>On Sunday, after church, I went to see San Francisco. I went with the Caltrain, which was quite decent. It was definitely better than Romanian trains. I found the upper deck to be interesting, because each side had to be accessed separately, the part between them being used for luggages. The seats were also a bit cramped.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="If you throw that ball, you won" t find it again! ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/giants/P1050916.jpg", "title": "If you throw that ball, you won't find it again!\n", "msrc": "/images/2015/08/san_francisco/giants/thumbs/P1050916.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/giants/P1050906.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/giants/thumbs/P1050906.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/giants/P1050911.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/giants/thumbs/P1050911.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/giants/P1050929.jpg", "title": "How many home runs have you got?\n", "msrc": "/images/2015/08/san_francisco/giants/thumbs/P1050929.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/giants/P1050931.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/giants/thumbs/P1050931.jpg", "w": 950, "h": 714}]</script> </div> <p>Because I didn't have any definite plans, I just started walking around from the train station. I passed the AT&amp;T Park, home of the Giants, surrounded by all the statues and plaques of famous players. I continued walking around the piers and then along the Embarcadero. Eventually I turned into the city and went to the Coit Tower, which was closed however by the time I got there. Conclusion: San Francisco is more hilly than a roller coaster. The streets may look straight on the map, but they are going up and down several times and they really work your legs.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Vichy" s statue in the nearby park ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Bay view from the base of Coit Tower " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/coit/P1060034.jpg", "title": "Vichy's statue in the nearby park\n", "msrc": "/images/2015/08/san_francisco/coit/thumbs/P1060034.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/coit/P1060064.jpg", "title": "Bay view from the base of Coit Tower\n", "msrc": "/images/2015/08/san_francisco/coit/thumbs/P1060064.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/coit/P1060065.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/coit/thumbs/P1060065.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/coit/P1060061.jpg", "title": "Coit tower\n", "msrc": "/images/2015/08/san_francisco/coit/thumbs/P1060061.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/coit/P1060067.jpg", "title": "View of the city from the base of Coit Tower\n", "msrc": "/images/2015/08/san_francisco/coit/thumbs/P1060067.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/coit/P1060097.jpg", "title": "Going down from the Coit Tower\n", "msrc": "/images/2015/08/san_francisco/coit/thumbs/P1060097.jpg", "w": 950, "h": 1263}]</script> </div> <p>The only place I would have liked to visit in San Francisco was Alcatraz (one of my favorite action movies is <a href="">The Rock</a>), but tickets must be bought a month in advance, so the boat had sailed. Instead, I walked over to the Fishermans Wharf and took photos of it from a distance. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="I should suit up! " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Pier 39. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Fake flowers hiding in plain sight. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/pier39/P1060122.jpg", "title": "I should suit up!\n", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060122.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/pier39/P1060118.jpg", "title": "Pier 39.\n", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060118.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060111.jpg", "title": "Fake flowers hiding in plain sight.\n", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060111.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060119.jpg", "title": "One man band. \n", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060119.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060120.jpg", "title": "Metallic crab invading.\n", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060120.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060123.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060123.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060124.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060124.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060126.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060126.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060127.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060127.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/pier39/P1060128.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060128.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060129.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060129.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060130.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060130.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/pier39/P1060131.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/pier39/thumbs/P1060131.jpg", "w": 950, "h": 1263}]</script> </div> <p>Pier 39 is a very crowded place, full of all kinds of shops. These shops include places like Chocolate Heaven, the best chocolate shop in the world, an Irish Treasure Ireland Gift shop, an Original Sourdough bread soup, a 7D cinema experience, a one man band playing at the entrance, the Aquarium of the bay, the Crystal shop with Swarovskis, We Be Knives, a knife shop, Lefty's, the San Francisco Left Hand store, Shirtique, Candy Baron and many others. In other words, you can find pretty much anything you could want there, mixed together on pier less than 500m long. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Some weird statue. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The marina. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title=" " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/embarcadero/P1050954.jpg", "title": "Some weird statue. \n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1050954.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/embarcadero/P1050952.jpg", "title": "The marina.\n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1050952.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/embarcadero/P1050973.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1050973.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/embarcadero/P1050978.jpg", "title": "Have a seat next to the friendly octopus. \n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1050978.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/embarcadero/P1050980.jpg", "title": "Oakland Bay Bridge.\n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1050980.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/embarcadero/P1050983.jpg", "title": "Did Cupid quit his job?\n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1050983.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/embarcadero/P1050985.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1050985.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/embarcadero/P1050993.jpg", "title": "Modern trees.\n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1050993.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/embarcadero/P1060005.jpg", "title": "California, the bear republic. \n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1060005.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/embarcadero/P1060013.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/embarcadero/thumbs/P1060013.jpg", "w": 950, "h": 714}]</script> </div> <p>And it also has the Luigi's Pizzeria, where I had my worst eating out experience. Having learned my lesson that in America you order small portions, anything else being way too big, I ordered a small pizza. After some time, a pizza is brought to my table. I go wash my hands. By the time I get back, the pizza is gone. I look around very puzzled and the waiter comes to me explaining that "Ooops, that was the wrong order". Okay, no problem, it happens. After some more waiting, another pizza comes. I look at it suspiciously, because it's too small. I don't believe that an American small pizza is THAT small. I ask the waiter, and it turns out that it's actually a mini pizza, because he messed up my order. So he takes it back and I have to wait some more. After this, he finally brings the correct pizza. When I ask for the bill, he brings back a bill which had both pizzas on it, so I ask him to take it back and correct it. And after this I miss the last train back to Mountain View. :( Because who would have thought that in a city this size the last train on a Sunday leaves at 9:15.</p> <p><img alt="Dinosaur skeleton" src="" width="100%" style="max-width:600px"/></p> <p>During the week I <strike>got lost</strike> explored the Google campus mostly (they have dinosaur skeleton :D).</p> <p><img alt="Tardis in the Google SF office" src="" width="100%" style="max-width:600px"/></p> <p>What's the most iconic landmark in San Francisco? The Gold Gate Bridge, so that's where I went the next Saturday. While I was there, I also visited the Google SF office, which is really well hidden and I found it only because of the badge readers at the entrance. But they have a TARDIS inside :D</p> <div class="gallery clearfix" style="max-width:600px"> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/info/P1050956.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/info/thumbs/P1050956.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/info/P1050904.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/info/thumbs/P1050904.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/info/P1050922.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/info/thumbs/P1050922.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/info/P1050923.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/info/thumbs/P1050923.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/info/P1050928.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/info/thumbs/P1050928.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/info/P1050986.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/info/thumbs/P1050986.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/info/P1050987.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/info/thumbs/P1050987.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/info/P1050991.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/info/thumbs/P1050991.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/info/P1060009.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/info/thumbs/P1060009.jpg", "w": 950, "h": 714}]</script> </div> <p>One really cute thing in San Francisco is the fact that they have little snippets of information placed all over the place. You either have little metallic plaques with inscriptions on the sidewalk or poles with pictures and explanations, all over the place (at least along the Embarcadero area, where I walked most). It's a fun way to get to know some less well know tidbits of information, which would otherwise be ignored by most people.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="I felt so LinkedIn after drinking this water at their office. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="YouTube office in San Bruno. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Mozilla office in San Francisco. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/offices/IMG_20150723_190103.jpg", "title": "I felt so LinkedIn after drinking this water at their office.\n", "msrc": "/images/2015/08/san_francisco/offices/thumbs/IMG_20150723_190103.jpg", "w": 950, "h": 1267}, {"src": "/images/2015/08/san_francisco/offices/IMG_20150719_164417.jpg", "title": "YouTube office in San Bruno.\n", "msrc": "/images/2015/08/san_francisco/offices/thumbs/IMG_20150719_164417.jpg", "w": 950, "h": 712}, {"src": "/images/2015/08/san_francisco/offices/P1060168.jpg", "title": "Mozilla office in San Francisco.\n", "msrc": "/images/2015/08/san_francisco/offices/thumbs/P1060168.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/offices/P1060381.jpg", "title": "Yahoo office. \n", "msrc": "/images/2015/08/san_francisco/offices/thumbs/P1060381.jpg", "w": 950, "h": 714}]</script> </div> <p>Getting to the Golden Gate Bridge was more interesting. The bus system in San Francisco... is bad. There were 3 buses stopped with "Out of Service" in my station and because of that I barely noticed when my bus finally arrived, about 10 minutes late. There are (at least) two different bus companies, with different ticket prices. Plus the BART and the Caltrain. Which are all completely different systems which I don't think interact with each other. After going on the bus for half an hour, we cross the Golden Gate Bridge and then I'm waiting for it to stop, knowing that there is a stop right after. I keep waiting, and I get mildly suspicious that I might have to press a button to get it to stop, but I don't see any. After we get to Sausalito, the first village after, I see that there are actually some strips on the wall that you have to press to order the stop. So I had to walk back about 2.5 km until the bridge. And then cross the bridge, which is 2.7 km long. At least I did my steps for that day. And for another one too :)) </p> <div class="gallery clearfix" style="max-width:600px"> <img title="The Golden Gate bridge: it" s big and full. ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The Golden Gate bridge seen from San Francisco. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Sausalito. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/golden_gate/P1060283.jpg", "title": "The Golden Gate bridge: it's big and full.\n", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060283.jpg", "w": 950, "h": 1263}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060204.jpg", "title": "The Golden Gate bridge seen from San Francisco.\n", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060204.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060217.jpg", "title": "Sausalito.\n", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060217.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060240.jpg", "title": "The bridge from Sausalito.\n", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060240.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060262.jpg", "title": "Vista Point.\n", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060262.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060326.jpg", "title": "The Bay Area.\n", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060326.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060350.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060350.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060355.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060355.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060361.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060361.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060367.jpg", "title": "Looking back. \n", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060367.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/golden_gate/P1060376.jpg", "title": "", "msrc": "/images/2015/08/san_francisco/golden_gate/thumbs/P1060376.jpg", "w": 950, "h": 1263}]</script> </div> <p>The Golden Gate Bridge is... well... a bridge. It's nice and colorful, the sunset is nice, but you can't take nice pictures of the ocean because of it, it's quite windy and it's very long. But there weren't too many people on it. It's a once in a lifetime thing.</p> <p>On Sunday I spent most of my time with the brothers and sisters from the assembly in San Bruno and I didn't wander around too much.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="No smoking, serious!!!!!!! " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="New Sun Hong Kong Restaurant. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Claim me now! " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/san_francisco/misc/IMG_20150725_095508.jpg", "title": "No smoking, serious!!!!!!!\n", "msrc": "/images/2015/08/san_francisco/misc/thumbs/IMG_20150725_095508.jpg", "w": 950, "h": 1267}, {"src": "/images/2015/08/san_francisco/misc/P1060032.jpg", "title": "New Sun Hong Kong Restaurant.\n", "msrc": "/images/2015/08/san_francisco/misc/thumbs/P1060032.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/misc/P1060156.jpg", "title": "Claim me now!\n", "msrc": "/images/2015/08/san_francisco/misc/thumbs/P1060156.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/misc/P1060183.jpg", "title": "View from the Google office in San Francisco. \n", "msrc": "/images/2015/08/san_francisco/misc/thumbs/P1060183.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/misc/P1060185.jpg", "title": "Office decoration. \n", "msrc": "/images/2015/08/san_francisco/misc/thumbs/P1060185.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/misc/P1060187.jpg", "title": "\n", "msrc": "/images/2015/08/san_francisco/misc/thumbs/P1060187.jpg", "w": 950, "h": 714}, {"src": "/images/2015/08/san_francisco/misc/P1060188.jpg", "title": "Yes, the housing prices are unreal in San Francisco. \n", "msrc": "/images/2015/08/san_francisco/misc/thumbs/P1060188.jpg", "w": 950, "h": 714}]</script> </div> <p>On Wednesday I went to the cinema to see Terminator Genesys. First off, good grief, the traffic is insane. I ended up leaving the car about 10 minutes away because the cars were moving so slowly. Second, the cinema itself was a nice surprise. It had very comfortable leather seats, with adjustable leg rests. Veeery nice. Third, the movie was ok. I mean it's a movie about time travel and robots. I didn't really understand why people were complaining it didn't make sense. It makes about as much sense as any other movie with grandfather paradoxes can make. Four, the ticket was cheap too, almost half the price of a movie ticket here in Zurich.</p> <p><img alt="Another SF building" src="" width="100%" style="max-width:600px"/></p> <p>Which brings me to my most profound realisation I had from my US trip: that Switzerland is expensive. Food is at least 50% more here, movie tickets are almost double, electronics are usually at least 10-15% more, and they say clothes too, but I don't have much experience in buying that in either of the countries. When I moved to Switzerland, I knew everything was more expensive than in Romania, but then again my salary was also higher, so I didn't realize the actual difference in living standards.</p> <p>I had a really great time in America. I met lots of great people, I saw many things, I got to see something of the different culture that is here, and even as a bussiness trip, I managed to get a lot of things done and schedule many things for my next quarter. I hope I'll be able to go again next year!</p> Sat, 05 Sep 2015 14:00:00 GMT,2015-09-05:/2015/09/05/san-francisco-and-the-so-called-mountain-view After a year in Zürich <p><img alt="rolisz around the world" src="" width="100%" style="max-width:600px"/></p> <p>One year ago today I was discovering, to my shock and horror, that my laptop's charger doesn't fit in the Swiss socket. My phone charger did, but the laptop plugs pins were 0.25 mm thicker, so they did not.</p> <p>Several hours earlier I boarded the plane from Budapest to Zürich, feeling like <a href="">I'm going on an adventure</a>. I did not know what was waiting for me, I didn't even know what team I would be working with, but I was very excited and looking forward to whatever was coming.</p> <p>Looking back now, after a year, wow, it's been quite the adventure, so much more than I could have imagined. When I got baptized, in 2010, a very dear brother told me that if I were to follow the Lord, I would never have a boring life. And he has been right about it so far.</p> <p>More than all the trips I could make to many places, more than what I've learned on the job about how to run the biggest email service in the world, more than getting to know all my really brilliant colleagues, more than the higher standard of life I've been enjoying since moving here, I am rejoicing because I got to know the Lord, my Saviour, better. I got to know more of my calling, more about His Eternal Purpose.</p> <p>I don't know what the future holds for me, but I know that I want to keep running the race, fighting the good fight and keeping the faith and follow my Lord wherever He leads me.</p> Sun, 30 Aug 2015 17:43:00 GMT,2015-08-30:/2015/08/30/after-a-year-in-zuerich The Big Apple <figure> <p><img alt="Statue of Liberty" src="" width="100%" style="max-width:600px"/> <figcaption>Mandatory Statue of Liberty picture</figcaption></p> </figure> <p>The Big Apple. New York. The greatest city in the world, as every tour guide in the city will tell you every 5 minutes.</p> <figure> <p><img alt="Tall skyscrapers" src="" width="100%" style="max-width:600px"/> <figcaption>Inception trailer-music<em>bwaaaaaaam</em></figcaption></p> </figure> <p>I went for a business trip to the USA, to Mountain View, California, but before that I took two weeks of vacation: one in New York and one in Richmond (before I get any more questions as to why on Earth would I go there, it was for a <a href="">Christian Conference</a>).</p> <p><img alt="Street image" src="" width="100%" style="max-width:600px"/></p> <p>I was very curious to see New York for myself. I had heard so many things about it: some people absolutely love it, others complain about the insane rental prices, insane traffic, insane pace of everything. I couldn't really grok why would anyone want to live there. After a week there, the city left a good aftertaste. I cannot quite put my finger on it, but my general impression of it was a nice, warm, fuzzy feeling. I would definitely like to visit it again and it's a city where I could see myself living for a couple of years (unlike the Bay Area).</p> <figure> <p><img alt="Flushing China Town" src="" width="100%" style="max-width:600px"/> <figcaption>The China Town in Flushing at night</figcaption></p> </figure> <p>When I arrived on Saturday afternoon, some friends picked me up at JFK and we went to have dinner and then to where I was going to stay, somewhere in Flushing (Queens). The only thing that I got to see is how slow traffic was. On Sunday afternoon, when I went into the city, I took the E subway from Forrest Hills to World Trade Center. I went, I went, I went and I went. I knew that New York was huge, but it was starting to dawn on me just how insanely big it is. 40 minutes with the subway, sometimes with 10 minutes between two stations, with the train going at probably <strike>40-50mph</strike>60km/h? It's just huge.</p> <figure> <p><img alt="Tiles on the floor of the subway" src="" width="100%" style="max-width:600px"/> <figcaption>Tiles on the floor of the subway</figcaption></p> </figure> <p>When I got out of the subway, I was overwhelmed. The One World Trade Center is the tallest building in New York (and America) and the surrounding buildings aren't small either. My mind was continuosly getting blown as I was walking around, trying to orientate myself. That same feeling of "Blimey, how can these buildings that are around me be soooooo tall?" came up several times again during the rest of the week and it leaves a good impression :)))</p> <p><img alt="More tall buildings" src="" width="100%" style="max-width:600px"/></p> <p>On Sunday I walked around without any objective in mind, mostly being guided by the principle "Uuuuh, that looks shiny, let's go take a closer look". I walked in the southern part of Manhattan, around the Piers there and through one of the Marinas???. I saw the sign for Wall Street, so I walked through there as well. It was unexpectedly quiet and with almost no traffic. I was quite surprised. </p> <p><img alt="Sign forbiding setting up tents on a pier" src="" width="100%" style="max-width:600px"/></p> <p>One of the first signs of a different mentality that is in America, in contrast to Europe, or at least Switzerland, was a literal sign, forbiding, among other things, camping and the erection of tents on a pier. What I reasoned from this sign, though I might be wrong, is that the default is that it's okay to set up a tent anywhere on public property. I'm no lawyer, but I think in other civilized countries, the opposite is default: you can set up a tent only where explicitly allowed (at least in cities). </p> <div class="gallery clearfix" style="max-width:600px"> <img title=" " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Let" s go to peking :d ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Brooklyn bridge " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/sunday/P1020732.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020732.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/sunday/P1020662.jpg", "title": "Let's go to Peking :D\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020662.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/sunday/P1020665.jpg", "title": "Brooklyn bridge\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020665.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/sunday/P1020678.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020678.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/sunday/P1020688.jpg", "title": "Little green space right next to the river\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020688.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/sunday/P1020721.jpg", "title": "The Deutsche Bank has its own Starbucks\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020721.jpg", "w": 1500, "h": 1065}, {"src": "/images/2015/08/new_york/sunday/P1020725.jpg", "title": "Eat more gyros!\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020725.jpg", "w": 1500, "h": 1435}, {"src": "/images/2015/08/new_york/sunday/P1020739.jpg", "title": "We must go higher!\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020739.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/sunday/P1020753.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020753.jpg", "w": 1500, "h": 1193}, {"src": "/images/2015/08/new_york/sunday/P1020764.jpg", "title": "", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020764.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/sunday/P1020766.jpg", "title": "Korean war memorial\n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020766.jpg", "w": 1500, "h": 2616}, {"src": "/images/2015/08/new_york/sunday/P1020778.jpg", "title": "Playing hockey on the road. \n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020778.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/sunday/P1020803.jpg", "title": "Apparently stopping almost in an intersection is allowed in New York. \n", "msrc": "/images/2015/08/new_york/sunday/thumbs/P1020803.jpg", "w": 1500, "h": 1104}]</script> </div> <p>Another surprise was the amount of food carts. Most of them are running a generator, which is quite loud (and polluting I think). I didn't try any of them (didn't want to have any problems). After a while I realized that even though there are all these trucks everywhere and there is a lot of traffic, air quality is not bad in New York. I don't know if it's because of the almost constant breeze or they are doing something else, but I didn't feel any smog.</p> <div class="gallery clearfix" style="max-width:600px"> <img title=" " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Times Square. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="More Times Square. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/times_square/P1020891.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/times_square/thumbs/P1020891.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/times_square/P1020895.jpg", "title": "Times Square.\n", "msrc": "/images/2015/08/new_york/times_square/thumbs/P1020895.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/times_square/P1020898.jpg", "title": "More Times Square. \n", "msrc": "/images/2015/08/new_york/times_square/thumbs/P1020898.jpg", "w": 1500, "h": 1995}]</script> </div> <p>The next day, some friends took me for a tour. We went to see the United Nations building (which is now closed for visitors :( ) We had lunch at a Forrest Gump themed restaurant called Bubba Gump. Guess what I had. 4 different kinds of shrimp.</p> <p><img alt="United Nations Headquarters" src="" width="100%" style="max-width:600px"/></p> <p>Then we went to the top of One World Trade Center. It is super impressive, but it's not too good for photo taking, because there is a curved glass wall, which reflects everything from the inside, including you. The elevator goes from one floor underground, to the top, on the 102nd floor, in 60 seconds. And the acceleration doesn't kill you and smash you into the ceiling, the transitions being done very smoothly (aka: the jerk, the derivative of acceleration, is kept low). Very impressive. The walls of the elevator are one big display actually, and while you go up you see the evolution of New York from the time the indians roamed the plains to the building of the OWTC. When going down, you are taken on a virtual tour around the building. It is realistic and gives you a bit of a dizzy spin. Tip: don't get the tablet that shows you what you're seeing around the city. It's really not worth the 13$.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="The One World Trade Center " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Some other shiny building " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Memorial for the victims of 9/11 " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/owtc/P1020774.jpg", "title": "The One World Trade Center\n", "msrc": "/images/2015/08/new_york/owtc/thumbs/P1020774.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/owtc/P1020812.jpg", "title": "Some other shiny building \n", "msrc": "/images/2015/08/new_york/owtc/thumbs/P1020812.jpg", "w": 1500, "h": 1982}, {"src": "/images/2015/08/new_york/owtc/P1020818.jpg", "title": "Memorial for the victims of 9/11\n", "msrc": "/images/2015/08/new_york/owtc/thumbs/P1020818.jpg", "w": 1500, "h": 1020}, {"src": "/images/2015/08/new_york/owtc/P1020819.jpg", "title": "Still part of the memoral, but I'm not sure what it symbolizes. \n", "msrc": "/images/2015/08/new_york/owtc/thumbs/P1020819.jpg", "w": 1500, "h": 1796}, {"src": "/images/2015/08/new_york/owtc/P1020825.jpg", "title": "It's sooo tall\n", "msrc": "/images/2015/08/new_york/owtc/thumbs/P1020825.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/owtc/P1020832.jpg", "title": "Sorry, you won't fly. \n", "msrc": "/images/2015/08/new_york/owtc/thumbs/P1020832.jpg", "w": 1500, "h": 1610}, {"src": "/images/2015/08/new_york/owtc/P1020915.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/owtc/thumbs/P1020915.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/owtc/P1020948.jpg", "title": "Uptown Manhattan\n", "msrc": "/images/2015/08/new_york/owtc/thumbs/P1020948.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/owtc/P1020968.jpg", "title": "Downtown \n", "msrc": "/images/2015/08/new_york/owtc/thumbs/P1020968.jpg", "w": 1500, "h": 1128}]</script> </div> <p>I had on me a T-shirt showing the ingredients of the human body, similar to how food has its labels. One of the security guards at OWTC asked me what my T-shirt meant and said it was cool. I would think that this would not have happened in Europe (or at least it would have been very surprising).</p> <div class="gallery clearfix" style="max-width:600px"> <img title="This makes me wanna go play Sims " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="8th Avenue " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Giant spinning!!! Lego wheel " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/google/P1030027.jpg", "title": "This makes me wanna go play Sims\n", "msrc": "/images/2015/08/new_york/google/thumbs/P1030027.jpg", "w": 1500, "h": 1823}, {"src": "/images/2015/08/new_york/google/P1030017.jpg", "title": "8th Avenue \n", "msrc": "/images/2015/08/new_york/google/thumbs/P1030017.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/google/P1040573.jpg", "title": "Giant spinning!!! Lego wheel\n", "msrc": "/images/2015/08/new_york/google/thumbs/P1040573.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/google/P1040577.jpg", "title": "Empire State building\n", "msrc": "/images/2015/08/new_york/google/thumbs/P1040577.jpg", "w": 1500, "h": 1128}]</script> </div> <p>On Tuesday morning I went to visit the Google office in New York. It's really big, quite confusing to a visitor, and it has a lot of cool spaces set up. And some nice views. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Brooklyn bridge. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="OWTC and the surrounding buildings. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="It" s colgate time! ' src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/boat/P1030190.jpg", "title": "Brooklyn bridge.\n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030190.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/boat/P1030069.jpg", "title": "OWTC and the surrounding buildings.\n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030069.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/boat/P1030073.jpg", "title": "It's Colgate time!\n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030073.jpg", "w": 1500, "h": 722}, {"src": "/images/2015/08/new_york/boat/P1030119.jpg", "title": "100% man-made success! \n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030119.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/boat/P1030132.jpg", "title": "View of both Manhattan and New Jersey.\n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030132.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/boat/P1030141.jpg", "title": "Rainbows don't happen only when it rains!\n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030141.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/boat/P1030208.jpg", "title": "Williamsburg bridge. \n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030208.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/boat/P1030241.jpg", "title": "Not everything is new and shiny in New York. \n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030241.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/boat/P1030281.jpg", "title": "I hope they don't make Pepsi right here :-S\n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030281.jpg", "w": 1500, "h": 649}, {"src": "/images/2015/08/new_york/boat/P1030370.jpg", "title": "Reaaaally, Apple?\n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030370.jpg", "w": 1500, "h": 852}, {"src": "/images/2015/08/new_york/boat/P1030383.jpg", "title": "They have quite well padded wagons there...\n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030383.jpg", "w": 1500, "h": 964}, {"src": "/images/2015/08/new_york/boat/P1030451.jpg", "title": "The Hudson river, on the west side of Manhattan.\n", "msrc": "/images/2015/08/new_york/boat/thumbs/P1030451.jpg", "w": 1500, "h": 1128}]</script> </div> <p>After lunch, I went on the Circle Line boat ride around Manhattan. It's about two and a half hours long and it's a good deal. The presenter knows a lot about what you're seeing and about its history. He tries to make jokes, but I found most of them to be not so funny. One thing that was a bit annoying/saddening was the excessive pride he had for his city. "100% man-made success", "Greatest city in the world" repeated a hundred times, he quoted some numbers on the diversity of the population and how anyone can make it here by working hard. It was sad to see God left out of the picture completely :(. One thing that stuck with me was the mnemonic to remember the order of the three bridges that connect Manhattan to Brooklyn: BMW (Brooklyn Bridge, Manhattan Bridge and Williamsburg Bridge) :D.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="The statue is so Zen... " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Some kind of turtle and a loooong snake behind it " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Ce mirific :D (How wonderful) " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/museum/P1030697.jpg", "title": "The statue is so Zen...\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030697.jpg", "w": 1500, "h": 2116}, {"src": "/images/2015/08/new_york/museum/P1030733.jpg", "title": "Some kind of turtle and a loooong snake behind it\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030733.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/museum/P1030744.jpg", "title": "Ce mirific :D (How wonderful)\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030744.jpg", "w": 1500, "h": 833}, {"src": "/images/2015/08/new_york/museum/P1030706.jpg", "title": "Puuufoooosheeeenieeee (they're so cute and fluffy)\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030706.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/museum/P1030755.jpg", "title": "Our old buddy, T-Rex\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030755.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/museum/P1030775.jpg", "title": "He was probably good at nosediving.\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030775.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/museum/P1030780.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030780.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/museum/P1030793.jpg", "title": "Manny :(\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030793.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/museum/P1030814.jpg", "title": "Megaloceros and minimegaloceros in the corner :D\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030814.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/museum/P1030828.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030828.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/museum/P1030865.jpg", "title": "The heavens declare the glory of God; the skies proclaim the work of his hands.\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030865.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/museum/P1030885.jpg", "title": "You're still fat. \n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030885.jpg", "w": 1500, "h": 460}, {"src": "/images/2015/08/new_york/museum/P1030899.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030899.jpg", "w": 1500, "h": 927}, {"src": "/images/2015/08/new_york/museum/P1030904.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030904.jpg", "w": 1500, "h": 1229}, {"src": "/images/2015/08/new_york/museum/P1030914.jpg", "title": "Teddy Roosevelt\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030914.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/museum/P1030966.jpg", "title": "Big shiny, spiraled mineral\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030966.jpg", "w": 1500, "h": 1626}, {"src": "/images/2015/08/new_york/museum/P1030968.jpg", "title": "It's both dangerous AND unlawful, othewise, who cares. \n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030968.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/museum/P1030970.jpg", "title": "The Iron... Table? It would fit next to the Iron Throne.\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1030970.jpg", "w": 1500, "h": 1392}, {"src": "/images/2015/08/new_york/museum/P1040006.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1040006.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/museum/P1040023.jpg", "title": "Lots of shiny things. \n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1040023.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/museum/P1040046.jpg", "title": "A black shiny thingy.\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1040046.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/museum/P1040053.jpg", "title": "The American Mvsevm of Natvral History - if I write it like that, it sounds stupid, right?\n", "msrc": "/images/2015/08/new_york/museum/thumbs/P1040053.jpg", "w": 1500, "h": 867}]</script> </div> <p>Wednesday was museum day. I went to the American Museum of the Natural History and I walked my butt off. Short summary: lots of dinosaurs, lots of various cavemen, lots of stuffed animals from all over the world, lots of pretty rocks, and a really cool section about the universe. For the last part, I went to a presentation about dark energy, narrated by Neil deGrasse Tyson. Lots of shiny things, lots of old things, lots of fun stuff :D</p> <figure> <p><img alt="British invasion" src="" width="100%" style="max-width:600px"/> <figcaption>Remnants of the old rulers?</figcaption></p> </figure> <p>After the museum, I went to have dinner at a place called Isabella's (hint: don't have the grilled shrimp salad). At the table next to me, a family was sitting. I think they were planning a trip to Europe, because the adults were quizzing the children about the names of European capitals :))) And even the adults got some of them wrong (not that I know of the top of my head all of them).</p> <p><img alt="Criss-crossed building" src="" width="100%" style="max-width:600px"/></p> <p>After that I went shopping on Broadway. The most interesting thing that I saw was a guy walking with what looked to be like a big snake resting on his shoulders. On the street. While talking to somebody else. Didn't get a chance/was afraid to take a picture of him.</p> <p><img alt="Tall building" src="" width="100%" style="max-width:600px"/></p> <p>While New York's public transportation system is quite good by US standards, it still has some flaws. Such as the train stopping somewhere but the doors not opening, so I had to walk back from the next stop. But at least I got to see the Mets Field Stadium. Or the train stopping at one station, announcing that it is taken out of service, so please take the next one. Which was already quite full, and with an added load of people, it became extra full.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="You" re a long way from home, buddy! ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Citi Field stadium, home of the Mets (aka the extent of my baseball knowledge) " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The Vitamin Peddler. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/misc/P1040336.jpg", "title": "You're a long way from home, buddy!\n", "msrc": "/images/2015/08/new_york/misc/thumbs/P1040336.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/misc/P1020856.jpg", "title": "Citi Field stadium, home of the Mets (aka the extent of my baseball knowledge)\n", "msrc": "/images/2015/08/new_york/misc/thumbs/P1020856.jpg", "w": 1500, "h": 827}, {"src": "/images/2015/08/new_york/misc/P1040058.jpg", "title": "The Vitamin Peddler.\n", "msrc": "/images/2015/08/new_york/misc/thumbs/P1040058.jpg", "w": 1500, "h": 1119}, {"src": "/images/2015/08/new_york/misc/P1040072.jpg", "title": "Please do :)\n", "msrc": "/images/2015/08/new_york/misc/thumbs/P1040072.jpg", "w": 1500, "h": 1128}]</script> </div> <p>Thursday was Brooklyn day. I crossed the Brooklyn Bridge on foot and walked around a lot in Brooklyn. I had one of the best ice creams I've ever had from a place called Cold Stone Creamery. Too bad they don't have any shops anywhere in Europe :( Tip: American medium-sized ice cream would be called large or even extra-large in Europe. But it was sooooo good. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="An ant" s perspective. ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Brooklyn Bridge on foot. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/brooklyn/P1040113.jpg", "title": "An ant's perspective.\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040113.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/brooklyn/P1040073.jpg", "title": "", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040073.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/brooklyn/P1040111.jpg", "title": "Brooklyn Bridge on foot.\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040111.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/brooklyn/P1040133.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040133.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/brooklyn/P1040139.jpg", "title": "", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040139.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/brooklyn/P1040247.jpg", "title": "Triangular shaped building.\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040247.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/brooklyn/P1040251.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040251.jpg", "w": 1500, "h": 1370}, {"src": "/images/2015/08/new_york/brooklyn/P1040256.jpg", "title": "Abraham Lincoln\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040256.jpg", "w": 1500, "h": 1179}, {"src": "/images/2015/08/new_york/brooklyn/P1040257.jpg", "title": "", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040257.jpg", "w": 1500, "h": 1331}, {"src": "/images/2015/08/new_york/brooklyn/P1040262.jpg", "title": "", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040262.jpg", "w": 1500, "h": 1025}, {"src": "/images/2015/08/new_york/brooklyn/P1040265.jpg", "title": "Who wouldn't want to study in a library with gold-plated doors? :D\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040265.jpg", "w": 1500, "h": 1112}, {"src": "/images/2015/08/new_york/brooklyn/P1040267.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040267.jpg", "w": 1500, "h": 2268}, {"src": "/images/2015/08/new_york/brooklyn/P1040269.jpg", "title": "Prospect Park\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040269.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/brooklyn/P1040287.jpg", "title": "Sport field next to the East River\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040287.jpg", "w": 1500, "h": 1127}, {"src": "/images/2015/08/new_york/brooklyn/P1040297.jpg", "title": "Pop-up Pool :D I want one :)))\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040297.jpg", "w": 1500, "h": 985}, {"src": "/images/2015/08/new_york/brooklyn/P1040307.jpg", "title": "Jane's Carousel in Brooklyn \n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040307.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/brooklyn/P1040315.jpg", "title": "Brooklyn Bridge in all it's length.\n", "msrc": "/images/2015/08/new_york/brooklyn/thumbs/P1040315.jpg", "w": 1500, "h": 1128}]</script> </div> <p>I got all the way to Prospect Park. It was sooo nice. It's a quite big park (213 hectares), right in the middle of Brooklyn. You enter it, go about one minute inside, and you are surrounded by trees, grass and other vegetation and you can forget almost completely about the surrounding city with all its noise. And Central Park is very similar (except it's even bigger, at 3.41 km^2). This I liked very much in the US, that even though you have all these busy streets, all these tall buildings, you still have this place to retreat in "nature", or as close to it as it gets. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Atlas 2.0, having to carry only the empty globe. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title=" " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Little Switzerland " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/rockefeller/P1040354.jpg", "title": "Atlas 2.0, having to carry only the empty globe.\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040354.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/rockefeller/P1040375.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040375.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/rockefeller/P1040343.jpg", "title": "Little Switzerland\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040343.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/rockefeller/P1040362.jpg", "title": "Little France?\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040362.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/rockefeller/P1040365.jpg", "title": "\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040365.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/rockefeller/P1040367.jpg", "title": "Yup, little France.\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040367.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/rockefeller/P1040373.jpg", "title": "Rockefeller Center\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040373.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/rockefeller/P1040394.jpg", "title": "Central Park\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040394.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/rockefeller/P1040432.jpg", "title": "Downtown\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040432.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/rockefeller/P1040452.jpg", "title": "Midtown\n", "msrc": "/images/2015/08/new_york/rockefeller/thumbs/P1040452.jpg", "w": 1500, "h": 1128}]</script> </div> <p>On Friday I met with some friends who were doing internships at Google and Facebook in New York. Together with them, we went up to the Top of the Rock. Where do you think was the longest queue? At the exit, of course. While this building is not as tall as OWTC, it has a big advantage: the top is opened up, so you can take much better pictures, without all the annoying reflection from the glass :))). The whole Rockefeller Center is actually very nice, with lots of fancy decorations and statues. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Hold your horses, man! " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The walking &lt;strike&gt;dead&lt;/strike&gt;Statue of Liberty " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Contemplating the truth... " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/central_park/P1040523.jpg", "title": "Hold your horses, man!\n", "msrc": "/images/2015/08/new_york/central_park/thumbs/P1040523.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/central_park/P1040526.jpg", "title": "The walking <strike>dead</strike>Statue of Liberty\n", "msrc": "/images/2015/08/new_york/central_park/thumbs/P1040526.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/central_park/P1040561.jpg", "title": "Contemplating the truth...\n", "msrc": "/images/2015/08/new_york/central_park/thumbs/P1040561.jpg", "w": 1500, "h": 836}, {"src": "/images/2015/08/new_york/central_park/P1040566.jpg", "title": "They were quite good actually.\n", "msrc": "/images/2015/08/new_york/central_park/thumbs/P1040566.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/central_park/P1040572.jpg", "title": "Manhattan skyline from Central Park. Best of both worlds.\n", "msrc": "/images/2015/08/new_york/central_park/thumbs/P1040572.jpg", "w": 1500, "h": 1128}]</script> </div> <p>After that we went to Central Park to laze around. We wanted to have lunch there, so we walked across most of it, but there are like two or three restaurants actually in the park. They were either full or with nothing interesting on the menu. So we ended up going to a nice Italian place, Via Quadrono, which was really narrow and deep inside a building. Because of this, there was no signal inside and they offered no idea. What a terrible way to spend your lunch, without being able to post pictures of your food to Facebook. The food itself was very good, but the place was quite cramped. After this, we went back to Central Park to laze around some more. It was a nice, warm sunny day, perfect for doing just this kind of thing. </p> <p><img alt="Big blue statue" src="" width="100%" style="max-width:600px"/></p> <p>A large part of Saturday was spent shopping. I was looking for a pair of more comfortable sandals, but I didn't find any. I found only one pair that would have been nice, but it wasn't available in my size. I was terribly dissapointed by my shopping experience in New York. As a consolation prize, I bought myself a nice pair of Bose Bluetooth headphones (review coming Soon™). After that, I went to some friends place next to the East River and watched the 4th of July fireworks from there. It was super awesome!</p> <iframe width="800" height="450" src="" frameborder="0" allowfullscreen></iframe> <p>On Sunday early morning, I left for Farmville, Virginia, where the conference was held. It was a really blessed time, I met a lot of people and made new friends and I really hope to be able to go again.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Chrysler and Empire State buildings lit up. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Manhattan from the 82nd floor. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Queens from the same spot. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/08/new_york/fireworks/P1040675.jpg", "title": "Chrysler and Empire State buildings lit up.\n", "msrc": "/images/2015/08/new_york/fireworks/thumbs/P1040675.jpg", "w": 1500, "h": 1995}, {"src": "/images/2015/08/new_york/fireworks/P1040612.jpg", "title": "Manhattan from the 82nd floor. \n", "msrc": "/images/2015/08/new_york/fireworks/thumbs/P1040612.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/fireworks/P1040618.jpg", "title": "Queens from the same spot. \n", "msrc": "/images/2015/08/new_york/fireworks/thumbs/P1040618.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/fireworks/P1040660.jpg", "title": "Boat <strike>polluting</strike> preparing for the firework show\n", "msrc": "/images/2015/08/new_york/fireworks/thumbs/P1040660.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/fireworks/P1040690.jpg", "title": "Queens at dusk\n", "msrc": "/images/2015/08/new_york/fireworks/thumbs/P1040690.jpg", "w": 1500, "h": 1128}, {"src": "/images/2015/08/new_york/fireworks/P1040918.jpg", "title": "Kabooom\n", "msrc": "/images/2015/08/new_york/fireworks/thumbs/P1040918.jpg", "w": 1500, "h": 1126}, {"src": "/images/2015/08/new_york/fireworks/P1050225.jpg", "title": "Only the stripes are missing\n", "msrc": "/images/2015/08/new_york/fireworks/thumbs/P1050225.jpg", "w": 1500, "h": 1126}, {"src": "/images/2015/08/new_york/fireworks/P1050422.jpg", "title": "Mandatory bokeh shot. \n", "msrc": "/images/2015/08/new_york/fireworks/thumbs/P1050422.jpg", "w": 1500, "h": 1126}]</script> </div> <p>Next post: San Francisco.</p> Sat, 08 Aug 2015 08:36:00 GMT,2015-08-08:/2015/08/08/the-big-apple The Little Daco-Hungarian Expat Makes Gulyas <p><img alt="Gulyas" src="" width="100%" style="max-width:600px"/></p> <p>After spending a long time in the fatty, sugary, GMO, antibiotic-ladden land of the USA, the little daco-hungarian decided to make himself some gulyas, for the first time ever. Here is his step-by-step recipe, with way too many pictures and details about all the mistakes he made.</p> <p>Ingredients for a single person for 3 days:</p> <ul> <li>smallest pack of packaged beef you can find (in my case it had about 250g)</li> <li>2 carrots</li> <li>5 potatoes</li> <li>1 red onion</li> <li>1 bell pepper</li> <li>can of peas</li> <li>1 tomato</li> <li>1 egg</li> <li>3-4 spoons of flour</li> <li>salt</li> <li>ground black pepper</li> <li>ground red Hungarian pepper (paprika)</li> </ul> <ol> <li> <p>Get <strike>a clean plate</strike> all the ingredients. </p> <p><img alt="Gulyas ingredients" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Slice the meat into small pieces and remove most of the white bits.</p> <p><img alt="Sliced meat" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Chop up half a red onion. Try not to cry (I succeeded). </p> <p><img alt="Chopped onion" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Get a large-ish pot (4-5 liters).</p> <p><img alt="Pot" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Heat up some oil (3-4 mm) in it and then fry onion until it's yellow-brownish, all while stirring. It should take about 1-2 minutes. </p> <p><img alt="Fried onion" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Add the meat into the oil and stir for 15-20 seconds until it whitens.</p> </li> <li> <p>Add the ground red pepper and stir everything for another 15-20 seconds so that the red pepper gets absorbed by the oil (it's not water soluble).</p> </li> <li> <p>Just add H2O.</p> <p><img alt="Filled with water" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Add a teaspoon of salt.</p> </li> <li> <p>Add a pinch of pepper. If you by any chance misunderstand the instructions, and by accident add more, like a teaspoonful, so that the goulash would be fire-breathing spicy, proceed to do a decantation operation, by slowly putting all the liquid in another container, hope that most of the pepper is at the bottom of the first container, and throw the last 2 cms out.</p> </li> <li> <p>Peel off the skin of a tomato, chop the tomato up, add it to the pot.</p> <p><img alt="Tomatoes" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Chop up half a bell pepper and add it.</p> <p><img alt="Bellpepper" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Don't boil it too hard, because most of the water will evaporate. You should heat it up so it's simmering. In case the water does evaporate too much, you can compensate it by adding more boiling water. Don't add cold water, it won't play nice with the veggies, so first boil the extra water in another pot before adding it to the main one.</p> </li> <li> <p><strike>Start writing blog post</strike>Wait a long-ish time.</p> </li> <li> <p>Chop up 2 carrots, add them to the gulyas-to-be after about 1 hour.</p> <p><img alt="Carrots" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Ocassionally test the meat if it's ready. Try to stick the fork into it. It should go through without a problem. Then try to tear of a piece. It should come off easily. Then taste it. It should taste... like cooked meat. Failure at any step means it's not yet ready. Hint: most of the time it won't be.</p> </li> <li> <p>Chop up 4-5 potatoes, add them to the gulyas about 30 minutes before it's finished (so the meat is almost done).</p> <p><img alt="Potatoes" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Crack an egg and beat it up.</p> <p><img alt="Egg" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Add a pinch of salt to the egg.</p> </li> <li> <p>Add a spoon of flour.</p> </li> <li> <p>Mix well the flour with the egg.</p> </li> <li> <p>Is the resulting composition a thick liquid, that won't flow too quickly from one end of the container to the other? If no, go to step 20 again. Else go to 23. </p> <p><img alt="Noodle Mix" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Taste the carrots and potatoes. They should taste almost like when eating at a restaurant, needing about 10-15 more minutes of boiling.</p> </li> <li> <p>Pick up noodle mix a quarter of a spoon at a time and drop it into the simmering soup. They expand in the water, so don't make them too big (aka don't make them like in the picture below).</p> <p><img alt="Almost ready" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Let it boil for 10 minutes.</p> </li> <li> <p>Add peas from a can.</p> <p><img alt="Peas" src="" width="100%" style="max-width:600px"/></p> </li> <li> <p>Boil about 5 more minutes. </p> </li> <li> <p>Taste everything: meat, potatoes, carrots, noodles. Do they feel right? Or at least good enough for you? If no, let it boil a bit more. Or add more salt. Or order takeout.</p> </li> <li> <p>Take it off the stove and let it cool.</p> </li> <li> <p>Put in a plate and enjoy your goulash :)</p> </li> </ol> <p>FYI, the little daco-hungarian also made himself a dessert, based on this <a href="">Youtube video</a>, but it's not yet ready :( (it's still in the fridge).</p> Sat, 01 Aug 2015 12:38:00 GMT,2015-08-01:/2015/08/01/the-little-daco-hungarian-makes-gulyas Trip to Dublin <figure> <p><img alt="Samuel Beckett Bridge" src="" width="100%" style="max-width:600px"/> <figcaption>Samuel Beckett Bridge</figcaption></p> </figure> <p>A month ago there was the first ever SRECon in Europe. It got together lots of SRE-like engineers (basically the people who are responsible for the software that is live, running in production) from Google (the host of the event), Facebook, Etsy, Splunk, SoundCloud and others. Because I'm an SRE, I had the opportunity to go there. With this occasion, I stayed two more days to have the chance to see Ireland and Dublin a bit more (yes, I know I'm terribly late with this post).</p> <h4>SRECon</h4> <p>The two workshops that I enjoyed most were <em>drumroll</em> about <a href="">statistics</a> (by Heinrich Hartmann) and about <a href="">machine learning</a> (by Adam Oliner) and the presentation from Etsy about <a href="">Kale</a>, their anomaly detection system. Who could have guessed? But of course, there were plenty of other interesting presentations. There was one about planned infrastructure outages, which did an analysis of the way the London Underground renovated King's Crossing (and how they screwed up big time on Christmas). There was the presentation from Theo Schlossnagle, from Circonus, about how <a href="">all software</a> in general is bad, in particular RabbitMQ. Dave O'Connor from Google talked about ourselves, who have bad machinery, that handles intrerrupts very badly, and how to deal with pages, while still being able to do your project work (this is something I have problems with as well).</p> <p>It was awesome to meet lots of other people who have similar jobs as me, to hear them talking about the scale they are working on (for example, load-balancing at Facebook, with their 1 billion users, or providing search results under 60 ms almost everywhere in the world at Algolia) and to see that people are doing great things in other places too.</p> <p>The last presentation was one of the most scary ones. It was from an Irish lawyer, who talked about the Safe Harbor provisions and how the EU courts might overturn it for the US. If that happens, lots of SREs will be muuuuch busier suddenly.</p> <p><img alt="View from Google offices" src="" width="100%" style="max-width:600px"/></p> <h4>Dublin</h4> <p>Having visited Dublin a week after London, I made lots of comparisons to it. And I liked Dublin more. It's a much smaller city, with a population of only 526.000, and it's also much "lower". The tallest storeyed building in Dublin, which is also the second tallest building in the Republic of Ireland, is only 67 m tall, and it happens to be one of the Google offices (so you have an awesome view :D). In general you don't see as many skyscrapers as in London, most buildings having only 2 or 3 floors.</p> <figure> <p><img alt="Grafton Street" src="" width="100%" style="max-width:600px"/> <figcaption>Grafton Street, one of the main shopping streets</figcaption></p> </figure> <p>It turns out that londoners behaviour in regards to pedestrian red light crossing is moderate, compared to what is normal in Dublin: red light, look before you walk, yellow light, walk faster, green light, who cares, it's the shortest of the three anyways. Another thing that I noticed is that the behaviour here regarding turning the other way (to the left in most places, to the right in UK and Ireland) is different and leads to what seemed to me as a deadlock (or almost) in intersections.</p> <figure> <p><img alt="Recycling signs" src="" width="100%" style="max-width:600px"/> <figcaption>Gaelic people have to recycle only green &amp; blue bottles</figcaption></p> </figure> <p>One of the things that make Ireland more interesting are all the remnants of the Gaelic culture. Most signs are written both in English and in Irish Gaelic, but not all of them. The Gaelic influences can sometimes be seen in the architectural elements as well as in general decorations that are found in buildings. </p> <p><img alt="Statues in Dublin" src="" width="100%" style="max-width:600px"/></p> <p>I found the style of many statues to be... interesting. Some of them seemed to be quite rough.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="You are safe in this bar, because Captain America watches over you! " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/06/dublin/funny_signs/P1010048.JPG", "title": "You are safe in this bar, because Captain America watches over you!\n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010048.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/funny_signs/P1010678.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010678.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010684.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010684.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010685.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010685.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010688.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010688.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010043.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010043.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010051.JPG", "title": "Okay, this doesn't have a funny name, but it's reaaaaaally cute.\n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010051.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010052.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010052.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010057.JPG", "title": "Cool name AND cool optical illusion!\n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010057.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010061.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010061.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010062.jpg", "title": "Pure Chemicals? Insomnia? Coincidence? I think not. \n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010062.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010695.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010695.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010696.jpg", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010696.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010742.JPG", "title": "Hip-hip-hooray!\n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010742.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010743.JPG", "title": "Can't be THAT famous, I don't recognize any of them.\n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010743.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010745.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010745.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010747.JPG", "title": "I should add this to my reading list.\n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010747.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/funny_signs/P1010748.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010748.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/funny_signs/P1010757.jpg", "title": "In what order should you visit the two shops? First sharpen up or first get cool?\n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010757.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010859.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010859.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010869.JPG", "title": "Ah, the true nerds: 8-bit art for WiFi.\n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010869.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010874.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010874.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010876.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010876.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010877.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010877.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010881.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010881.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010882.JPG", "title": "", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010882.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/funny_signs/P1010883.JPG", "title": "I wonder how this worked...\n", "msrc": "/images/2015/06/dublin/funny_signs/thumbs/P1010883.JPG", "w": 4112, "h": 3088}]</script> </div> <p>But with names, the Irish are very creative. The city is full of funnily named bars and restaurants.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Veronica Guerin, a journalist who was shot for investigating drug lords. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/06/dublin/castle_trinity/P1010800.JPG", "title": "Veronica Guerin, a journalist who was shot for investigating drug lords.\n", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010800.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/castle_trinity/P1010762.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010762.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/castle_trinity/P1010764.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010764.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/castle_trinity/P1010781.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010781.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/castle_trinity/P1010787.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010787.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/castle_trinity/P1010795.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010795.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/castle_trinity/P1010813.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010813.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/castle_trinity/P1010832.JPG", "title": "St. Patrick's cathedral.\n", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010832.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/castle_trinity/P1010896.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010896.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/castle_trinity/P1010905.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010905.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/castle_trinity/P1010918.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010918.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/castle_trinity/P1010921.JPG", "title": "I think that's cricket. I had no idea what was going on. \n", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010921.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/castle_trinity/P1010933.JPG", "title": "That doesn't seem very trustworthy. \n", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010933.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/castle_trinity/P1010941.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010941.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/castle_trinity/P1010946.JPG", "title": "", "msrc": "/images/2015/06/dublin/castle_trinity/thumbs/P1010946.JPG", "w": 4112, "h": 3088}]</script> </div> <p>On Sunday, after church, I visited some of the older parts of the city: Dublin Castle and Trinity College. In Dublin Castle, I visited the <a href=";AspxAutoDetectCookieSupport=1">Chester Beatty Library</a>. He was a famous collectioner of old manuscripts and the library full of some of the oldest Christian, Muslim and Chinese books, starting from the first centuries. Trinity College is a more than 400 year old university. I would have liked to see the Book of Kells, which is housed there, but it was closed at that time :(</p> <div class="gallery clearfix" style="max-width:600px"> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Aviva Stadium " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/06/dublin/P1010637.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1010637.jpg", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/P1000949.jpg", "title": "Aviva Stadium\n", "msrc": "/images/2015/06/dublin/thumbs/P1000949.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1000952.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1000952.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1000955.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1000955.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1000986.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1000986.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010050.jpg", "title": "Fusiliers Arch, at the entrance to St. Stephen's Green park\n", "msrc": "/images/2015/06/dublin/thumbs/P1010050.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010055.jpg", "title": "Now that's a green building :D\n", "msrc": "/images/2015/06/dublin/thumbs/P1010055.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010115.jpg", "title": "I wouldn't want to be treated at this hospital :-S\n", "msrc": "/images/2015/06/dublin/thumbs/P1010115.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010543.jpg", "title": "Gasworks, where I stayed during the weekend.\n", "msrc": "/images/2015/06/dublin/thumbs/P1010543.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010565.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1010565.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010580.jpg", "title": "The beach :D\n", "msrc": "/images/2015/06/dublin/thumbs/P1010580.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010605.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1010605.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010641.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1010641.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010658.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1010658.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010667.jpg", "title": "Nokia, connecting people, now that's an ad I haven't seen in a long time!\n", "msrc": "/images/2015/06/dublin/thumbs/P1010667.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010673.jpg", "title": "Follow the fox :D\n", "msrc": "/images/2015/06/dublin/thumbs/P1010673.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010692.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1010692.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010700.jpg", "title": "I guess they were reaaaally nice wheels.\n", "msrc": "/images/2015/06/dublin/thumbs/P1010700.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010751.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1010751.jpg", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/P1010761.jpg", "title": "Why do the sick roomkeepers have their own society???\n", "msrc": "/images/2015/06/dublin/thumbs/P1010761.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010803.JPG", "title": "Look at these almost-Google-colored buildings :D\n", "msrc": "/images/2015/06/dublin/thumbs/P1010803.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010853.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1010853.jpg", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/P1010884.jpg", "title": "", "msrc": "/images/2015/06/dublin/thumbs/P1010884.jpg", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/P1010886.jpg", "title": "Really patient street artist. \n", "msrc": "/images/2015/06/dublin/thumbs/P1010886.jpg", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/P1010950.jpg", "title": "The brige between the Google buildings!\n", "msrc": "/images/2015/06/dublin/thumbs/P1010950.jpg", "w": 3088, "h": 4112}]</script> </div> <p>I want to mention <a href="">herbstreet</a>, an excellent place for having Belgian Waffles for brunch and <a href="">The Counter</a>, a great burger place, where you have lots of varieties for all components of a burger.</p> <h4>Glendalough</h4> <p>On Saturday I went with a colleague on a hike on some "mountains". The area was beautiful. I enjoyed it very much, even though the weather changed five times in one day, ocasionally raining and being very windy. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="" src="" style="display:block" width="100%" style="max-width:600px"/> <img title="#nofilters " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="On top of the ridge. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/images/2015/06/dublin/glendalough/P1010163.JPG", "title": "", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010163.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/glendalough/P1010221.JPG", "title": "#nofilters\n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010221.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/glendalough/P1010276.JPG", "title": "On top of the ridge.\n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010276.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/glendalough/P1010196.JPG", "title": "We improvised a bit on the path, but the views were stunning.\n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010196.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/glendalough/P1010318.JPG", "title": "\n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010318.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/glendalough/P1010335.JPG", "title": "We came from here...\n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010335.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/glendalough/P1010334.JPG", "title": "... and then the trail ended in a ditch.\n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010334.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/glendalough/P1010368.JPG", "title": "The river that goes into the lake is so black because there used to be an iron mine here. \n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010368.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/glendalough/P1010382.JPG", "title": "Goats. \n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010382.JPG", "w": 3088, "h": 4112}, {"src": "/images/2015/06/dublin/glendalough/P1010395.JPG", "title": "What lies beyond?\n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010395.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/glendalough/P1010403.JPG", "title": "", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010403.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/glendalough/P1010475.JPG", "title": "Windy lake. \n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010475.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/glendalough/P1010496.JPG", "title": "Old monastery, that was used as a refuge from Viking invasions. \n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010496.JPG", "w": 4112, "h": 3088}, {"src": "/images/2015/06/dublin/glendalough/P1010508.JPG", "title": "Map of where we went. \n", "msrc": "/images/2015/06/dublin/glendalough/thumbs/P1010508.JPG", "w": 4112, "h": 3088}]</script> </div> <p>Overall, I liked Dublin more than London, both the scenery and the feel of the city, but the weather killed me. I don't like cold and my Irish friends told me that 20 degrees is a reason to celebrate summer there :(</p> Fri, 12 Jun 2015 23:38:00 GMT,2015-06-13:/2015/06/13/trip-to-dublin Happy 5th Birthday! <p>5 years ago, on this day, I started this blog on <a href=""></a>. And here I am, half a decade later, 2^8 posts later.</p> <p>Let me tell you how it all started. I had been planning for a long time to start a blog. I actually even started one together with a highschool class-mate, but it was very short lived (we wrote a couple of posts, but never got around to making it public). I had a nice mindmapping chart with possible topics I wanted to talk about, possible names for the blog, possible nicknames for me (I was considering doing it under a pseudonym), where to host it and other options I wanted to explore.</p> <p>This caused me to be in analysis paralysis, because I was overthinking it. But then my friend Cătă started <a href="">his blog</a> in December 2009. He was posting with his GMail account on Blogspot, naming it after his most common internet handle, laserbeam (if memory serves me correctly). He didn't post too much, but it still spurred me to action. Half a year later I decided to proceed in a similar way and improvise later on if needed. I chose the easiest hosting option, went with my own username and went with the really "boring" option for the title, having it the same as my username.</p> <p>I posted more than 20 times per month for the first two months and then I opened a <a href="">joint blog</a> with Cătă (yes, that is a Klingon greeting at the end of the post). It wasn't a long lived collaboration. We posted together IT stuff there for 3 months, then we took a break. Meanwhile I kept posting on my own blog non-tech stuff. In January 2011 I decided to host my own blog, but still on Wordpress, and in the process I stopped posting on the joint blog. Cătă kept posting there for about 6 more months.</p> <p>In the first two years of my blog, I wrote only in Romanian (with some English expressions thrown in here and there and one post in Hungarian). The reasoning behind it was that in the beginning I wanted to get exercise for my Romanian baccalaureate exam. I believe writing 60 posts in the first year helped a lot, by helping me refine my writing style. After my exam, I kept writing in Romanian, because I thought that in the big pond of the Internet, even if I wrote in English, who would pay attention to my puny posts (about coding), when there are so many people who know things much better than me and who have written about everything possible. So I wrote in Romanian, knowing that there is not so much content there and that I could possibly have more impact this way. For some reason though, after the first year of college, I started posting in <a href="">English</a>. It was a long time ago, but I think the reason for the post being in English was the title. The book "A Tale of Two Cities" by Charles Dickens was featured in Lost, one of my favorite TV shows a long time ago. The books starts with a comparison between two opposing things and two very different countries. I had the same impression from my two interviews and I wanted to transmit it by making an analogy to that book. I probably felt it could be best done in the language the author had written it, so I wrote for the first time in English.</p> <p>I started writing the programming posts in English, because I got to the point where I wanted to reach a wider audience. Some of my Romanian programming posts were popular enough, so I decided to go play in the major league and it payed off eventually, having written a decent <a href="">Neural Network tutorial</a> that is well ranked on Google.</p> <p>Let's fast forward a couple of years. I still kept posting, sometimes with longer breaks, sometimes more often. The next big change came when I moved to Switzerland. I suddenly had a lot of non-Romanian friends and colleagues, while most people back in Romania speak a good English, so I decided to switch over entirely, so that all of them can understand me.</p> <p>During these 5 years, I have written almost 1 million characters. Unfortunately, it is not enough to train a recurrent neural network to generate new posts for me. :)) Looking back at my old posts, it is very interesting to see how my style has changed. And even how the topics changed. This is the closest thing I have to a diary. No other effort to journal my life has succeeded for 5 years before. I always gave up after at most one year.</p> <p>Writing this post and digging up all the historical evidence was very interesting. Many things happened so quickly one after the other, especially at the beginning of the blog. Back then it seemed like such a long time had passed between me starting my own blog and starting the other one with Laserbeam. Looking back, it was only 3 months. I stayed on public Wordpress for only 8 months. It seemed so much longer back then. I notice this effect in other areas of life. At the beginning of college, one year was an eternity. Now? I've been working here for almost a year and it has passed so quickly.</p> <p>I want to thank all the people who have read my posts. I hope your really did find them interesting. I want to thank my mom for all the proofreading she has done, without which you would have to endure a lot of spelling and grammar mistakes. I hope that the posts I will write in the future will be interesting, useful and maybe even show you some new things.</p> <p>I am glad that I kept this habit of writing on my blog more or less regularly and I look forward to looking back in another 5 years and seeing how my style, my topics and my purpose have changed. I hope the changes will be for the better, showing that my priorities have changed, that I will be more interested in the Eternal than in the worldly, ephemeral things.</p> Mon, 08 Jun 2015 21:20:00 GMT,2015-06-08:/2015/06/08/happy-5th-birthday