rolisz's site en Fri, 06 Oct 2017 23:09:00 GMT acrylamid 0.7.10 Around Europe with my wifey <figure> <p><img alt="Singing lion" src="" width="100%" style="max-width:600px"/> <figcaption>This reminds me of the <a href="">singing lion</a></figcaption></p> </figure> <p>My wife has never been outside of Romania before this year, so I thought I would use this summer to fix that by traveling around as much as possible. </p> <figure> <iframe width="560" height="315" src="" frameborder="0" allowfullscreen class="youtube"></iframe> <figcaption>Dancing interactive fountain</figcaption> </figure> <p>Right after our wedding, we went for a short, one week, roadtrip honeymoon around three capitals: Budapest, Vienna and Bratislava. Bam, three countries right there.</p> <figure> <p><img alt="Olympic rings in hungarian colors" src="" width="100%" style="max-width:600px"/> <figcaption>Olympic rings in Budapest</figcaption></p> </figure> <p>We stayed only one night in Budapest and we left Romania late, because I had to update my Romanian bank account (which I hadn't used in the last three years) and because my wife had to apply for a new ID card.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="The dog metro " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Birdhouse " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/budapest/fun/P1160645.JPG", "title": "The dog metro\n", "msrc": "/static/images/2017/10/eurotrip/budapest/fun/thumbs/P1160645.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2017/10/eurotrip/budapest/fun/P1160656.JPG", "title": "Birdhouse\n", "msrc": "/static/images/2017/10/eurotrip/budapest/fun/thumbs/P1160656.JPG", "w": 2856, "h": 4272}]</script> </div> <p>There were two memorials, showing very opposite things, fairly close to each other. I was surprised to see one of them vilifying nazism, but the other one glorifying communism.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="A memorial for victims of the german occupation. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="A memorial for glorifying soviet heroes. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/budapest/memorials/P1160651.JPG", "title": "A memorial for victims of the german occupation.\n", "msrc": "/static/images/2017/10/eurotrip/budapest/memorials/thumbs/P1160651.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/budapest/memorials/P1160647.JPG", "title": "A memorial for glorifying soviet heroes.\n", "msrc": "/static/images/2017/10/eurotrip/budapest/memorials/thumbs/P1160647.JPG", "w": 2856, "h": 4272}]</script> </div> <p>Next stop: Vienna. Here we spent a bit more time so we could actually enjoy the city. We went up the Danube tower, only to have super strong winds greet us there. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="The Danube tower from a distance. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Cool statue. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The Danube tower from inside. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/vienna/tower/P1160673.JPG", "title": "The Danube tower from a distance.\n", "msrc": "/static/images/2017/10/eurotrip/vienna/tower/thumbs/P1160673.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2017/10/eurotrip/vienna/tower/P1160667.JPG", "title": "Cool statue.\n", "msrc": "/static/images/2017/10/eurotrip/vienna/tower/thumbs/P1160667.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/vienna/tower/P1160674.JPG", "title": "The Danube tower from inside.\n", "msrc": "/static/images/2017/10/eurotrip/vienna/tower/thumbs/P1160674.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/vienna/tower/P1160676.JPG", "title": "And the Danube tower from the top.\n", "msrc": "/static/images/2017/10/eurotrip/vienna/tower/thumbs/P1160676.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/vienna/tower/P1160682.JPG", "title": "Alas, it was closed when we were there :(\n", "msrc": "/static/images/2017/10/eurotrip/vienna/tower/thumbs/P1160682.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/vienna/tower/P1160685.JPG", "title": "What is this? A bench? A memorial? An art object? All of the above?\n", "msrc": "/static/images/2017/10/eurotrip/vienna/tower/thumbs/P1160685.JPG", "w": 2856, "h": 4272}]</script> </div> <p>We went to an old musical instruments concert in the oldest church in Vienna. I had never even heard of the harpsichord before. Apparently it's the precursor to the piano. The guy was speaking in German. It was nice to be able to put my German knowledge to use and actually understand what was being said around me.</p> <p><img alt="Harpsichord" src="" width="100%" style="max-width:600px"/></p> <p>And we went to the Schönbrunn palace and learned about the fairly sad life of the monarchs from there. The highly idolized Princess Sisi was actually fairly unhappy in her marriage and did her best to avoid her husband. The Monarch woke up at 5AM to do his imperial duties. I admire his dedication, but they said he wasn't good at it, so it didn't help too much. We also tried the famous Apfelstrudel mit Vanillesauce, but to be honest, I've had better at any random bakery. The gardens were beautiful though.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Horse carriage in front of Schonbrunn " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Front view of the palace " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Garden tunnels " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/vienna/schonbrun/P1160699.JPG", "title": "Horse carriage in front of Schonbrunn\n", "msrc": "/static/images/2017/10/eurotrip/vienna/schonbrun/thumbs/P1160699.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/vienna/schonbrun/P1160700.JPG", "title": "Front view of the palace\n", "msrc": "/static/images/2017/10/eurotrip/vienna/schonbrun/thumbs/P1160700.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/vienna/schonbrun/P1160701.JPG", "title": "Garden tunnels\n", "msrc": "/static/images/2017/10/eurotrip/vienna/schonbrun/thumbs/P1160701.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/vienna/schonbrun/P1160704.JPG", "title": "The gardens of Schonbrunn\n", "msrc": "/static/images/2017/10/eurotrip/vienna/schonbrun/thumbs/P1160704.JPG", "w": 4272, "h": 2856}]</script> </div> <p>On our last day there, the only one that was sunny, we went to the Prater, an amusement park. There we, you know, amused ourselves by doing fun rides such as Dizzy Mouse (they weren't kidding about the dizzy part), Water Ride and only me, Volare, where you lay flat on your belly and go flying like crazy. The last one was hang-on-to-your-pants-and-hope-you-have-nothing-in-them. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Us on the water ride! " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The dizzy mouse. Imagine going at 50-60km/h in those turns! " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The insane &lt;a href=" http: en attractions details a volare-the-flying-coaster "&gt;volare&lt; a&gt;. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/vienna/prater/IMG_20170728_114859.jpg", "title": "Us on the water ride!\n", "msrc": "/static/images/2017/10/eurotrip/vienna/prater/thumbs/IMG_20170728_114859.jpg", "w": 2448, "h": 3264}, {"src": "/static/images/2017/10/eurotrip/vienna/prater/P1160718.JPG", "title": "The dizzy mouse. Imagine going at 50-60km/h in those turns!\n", "msrc": "/static/images/2017/10/eurotrip/vienna/prater/thumbs/P1160718.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/vienna/prater/P1160720.JPG", "title": "The insane <a href=\"\">Volare</a>.\n", "msrc": "/static/images/2017/10/eurotrip/vienna/prater/thumbs/P1160720.JPG", "w": 4272, "h": 2856}]</script> </div> <p>Our last stop on our honeymoon was in Bratislava. We stayed in a really fancy hotel, so we spent quite a lot of time inside, for example at the spa :D</p> <p><img alt="Dinosaur grabbing my wife" src="" width="100%" style="max-width:600px"/></p> <p>But we also went to visit the Bratislava zoo, with it's fake dinosaurs. And we had langos, because that's what I craved at 10 PM in Bratislava. Langos. :D</p> <p><img alt="Cat cafe" src="" width="100%" style="max-width:600px"/></p> <p>The old city was surprisingly active and full of life even late at night and it showed no signs of slowing down. </p> <p>After two or three weeks, the Zurich Street Parade was going on, which is a massive techno parade with about 1 million drunk people invading, so we decided to do a weekend break to London, where Roda's brother lives. </p> <p><img alt="Us drinking bubble tea" src="" width="100%" style="max-width:600px"/></p> <p>First stop, Indian food. Second stop, bubble tea. My wife likes the first one, but unfortunately not the second one :(</p> <p><img alt="Karting with my wife" src="" width="100%" style="max-width:600px"/></p> <p>On the second day, we went karting. Given how much she loved racing on the highway before, I thought she might enjoy being able to put pedal to metal in a controlled environment. She mostly did :D</p> <p><img alt="The view from the Shard" src="" width="100%" style="max-width:600px"/></p> <p>We also visited the Shard, London's highest building. Besides the view, which is pretty much the same as from every other highriser in every other major city of the world, there are several VR experiments you can try out, such as flying or walking across a plank.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="The prime Meridian " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Yury Gagarin " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Ship in a bottle. A really big ship. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/london/greenwhich/IMG_20170813_141546.jpg", "title": "The prime Meridian\n", "msrc": "/static/images/2017/10/eurotrip/london/greenwhich/thumbs/IMG_20170813_141546.jpg", "w": 3036, "h": 4048}, {"src": "/static/images/2017/10/eurotrip/london/greenwhich/IMG_20170813_162836.jpg", "title": "Yury Gagarin\n", "msrc": "/static/images/2017/10/eurotrip/london/greenwhich/thumbs/IMG_20170813_162836.jpg", "w": 3036, "h": 4048}, {"src": "/static/images/2017/10/eurotrip/london/greenwhich/IMG_20170813_170431.jpg", "title": "Ship in a bottle. A really big ship.\n", "msrc": "/static/images/2017/10/eurotrip/london/greenwhich/thumbs/IMG_20170813_170431.jpg", "w": 4048, "h": 3036}]</script> </div> <p>On Sunday, we ended up having a lazy day in Greenwich park. We went to the Prime Meridian, learned about how to calculate latitude and longitude and just spent time chillin' on the grass. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Old cathedral " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="London at dusk " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/london/misc/IMG_20170812_204512.jpg", "title": "Old cathedral\n", "msrc": "/static/images/2017/10/eurotrip/london/misc/thumbs/IMG_20170812_204512.jpg", "w": 4048, "h": 3036}, {"src": "/static/images/2017/10/eurotrip/london/misc/IMG_20170812_210930.jpg", "title": "London at dusk\n", "msrc": "/static/images/2017/10/eurotrip/london/misc/thumbs/IMG_20170812_210930.jpg", "w": 4048, "h": 3036}]</script> </div> <p>We flew from London City airport, which is a very interesting airport, because it announces gates only half an hour before departure, so there's really no point in getting there early. I wish more airports did that. </p> <p><img alt="Bergen Airport" src="" width="100%" style="max-width:600px"/></p> <p>The last pitstop for the summer was Norway, which I found to be among the most beautiful places I've ever been to. Until it started raining cats and dogs. Then it lost some of its appeal. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Abstract horse. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Abstract ribs? " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/bergen/statues/IMG_20170826_212457.jpg", "title": "Abstract horse.\n", "msrc": "/static/images/2017/10/eurotrip/bergen/statues/thumbs/IMG_20170826_212457.jpg", "w": 4048, "h": 3036}, {"src": "/static/images/2017/10/eurotrip/bergen/statues/IMG_20170826_213050-EFFECTS.jpg", "title": "Abstract ribs?\n", "msrc": "/static/images/2017/10/eurotrip/bergen/statues/thumbs/IMG_20170826_213050-EFFECTS.jpg", "w": 4048, "h": 3036}]</script> </div> <p>Bergen has rain 260 days a year, so when we arrived there, the receptionist told us that we are lucky because that weekend would be really nice and sunny. And it was!</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Quiet mountain stream. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Norwegian pure breed. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Rosendal. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/bergen/rosendal/P1160806.JPG", "title": "Quiet mountain stream.\n", "msrc": "/static/images/2017/10/eurotrip/bergen/rosendal/thumbs/P1160806.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/rosendal/P1160813.JPG", "title": "Norwegian pure breed.\n", "msrc": "/static/images/2017/10/eurotrip/bergen/rosendal/thumbs/P1160813.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/rosendal/P1160814.JPG", "title": "Rosendal.\n", "msrc": "/static/images/2017/10/eurotrip/bergen/rosendal/thumbs/P1160814.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/rosendal/P1160818.JPG", "title": "Church from 12th century.\n", "msrc": "/static/images/2017/10/eurotrip/bergen/rosendal/thumbs/P1160818.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/rosendal/IMG_20170827_162138.jpg", "title": "Workers unite.\n", "msrc": "/static/images/2017/10/eurotrip/bergen/rosendal/thumbs/IMG_20170827_162138.jpg", "w": 4048, "h": 3036}]</script> </div> <p>On Sunday we went on the cruise on the Hardangersfjord (with such a fierce name, you almost expect viking raid ships to show up at any moment) to Rosendhal, where we had an amazing salmon lunch. Seriously, they had two kinds of salmon, cooked and smoked, and both of them were mind-blowingly good. I'm so glad my wife doesn't eat much and I can always <del>steal</del> finish some of the good stuff from her plate!</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": "/static/images/2017/10/eurotrip/bergen/cruise/P1160744.JPG", "title": "", "msrc": "/static/images/2017/10/eurotrip/bergen/cruise/thumbs/P1160744.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/cruise/P1160751.JPG", "title": "", "msrc": "/static/images/2017/10/eurotrip/bergen/cruise/thumbs/P1160751.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/cruise/P1160769.JPG", "title": "", "msrc": "/static/images/2017/10/eurotrip/bergen/cruise/thumbs/P1160769.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/cruise/P1160772.JPG", "title": "", "msrc": "/static/images/2017/10/eurotrip/bergen/cruise/thumbs/P1160772.JPG", "w": 4272, "h": 2856}]</script> </div> <p>The landscape from the fjord cruise was amazing. It was a sunny day, not a cloud in sight. Really amazing. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Ugly fish. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Deadly fish. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Deadlier fish (piranhas). " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/10/eurotrip/bergen/aquarium/IMG_20170828_152802.jpg", "title": "Ugly fish.\n", "msrc": "/static/images/2017/10/eurotrip/bergen/aquarium/thumbs/IMG_20170828_152802.jpg", "w": 4048, "h": 3036}, {"src": "/static/images/2017/10/eurotrip/bergen/aquarium/IMG_20170828_155714.jpg", "title": "Deadly fish. \n", "msrc": "/static/images/2017/10/eurotrip/bergen/aquarium/thumbs/IMG_20170828_155714.jpg", "w": 4048, "h": 3036}, {"src": "/static/images/2017/10/eurotrip/bergen/aquarium/IMG_20170828_155204.jpg", "title": "Deadlier fish (piranhas).\n", "msrc": "/static/images/2017/10/eurotrip/bergen/aquarium/thumbs/IMG_20170828_155204.jpg", "w": 4048, "h": 3036}, {"src": "/static/images/2017/10/eurotrip/bergen/aquarium/P1160826.JPG", "title": "Gentoo penguins.\n", "msrc": "/static/images/2017/10/eurotrip/bergen/aquarium/thumbs/P1160826.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/aquarium/P1160837.JPG", "title": "Everyday I'm shufflin', shufflin'.\n", "msrc": "/static/images/2017/10/eurotrip/bergen/aquarium/thumbs/P1160837.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/aquarium/P1160850.JPG", "title": "Playing volleyball\n", "msrc": "/static/images/2017/10/eurotrip/bergen/aquarium/thumbs/P1160850.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/10/eurotrip/bergen/aquarium/P1160858.JPG", "title": "Backflippin'\n", "msrc": "/static/images/2017/10/eurotrip/bergen/aquarium/thumbs/P1160858.JPG", "w": 4272, "h": 2856}]</script> </div> <p>The next day... a storm is coming. We just walked around a bit in Bergen and we went to the aquarium there, but it still was enough to get us soaking wet.</p> <figure> <p><img alt="View of Bergen from above" src="" width="100%" style="max-width:600px"/> <figcaption>View of Bergen from above</figcaption></p> </figure> <p>On the last day, it was still cloudy, but the rain kept delaying. So we walked up the Floyen. That's one of the steepest furniculars in the world. And we were wondering how on earth do people live on those super steep streets. </p> <figure> <p><img alt="Quiet pond" src="" width="100%" style="max-width:600px"/> <figcaption>Quiet, undisturbed, reflective</figcaption></p> </figure> <p>The view from the Floyen is nice, but it's sooo crowded. But we managed to find a small pond, a bit off the hiking trails, where nobody else was. And there was only silence. Complete silence. We sat there for 10 minutes, just enjoying the beautiful nature that God created.</p> <p>And that, folks, was our summer Eurotour! I can't wait for part 2. Too bad my wife has to study a lot :|</p> Fri, 06 Oct 2017 23:09:00 GMT,2017-10-07:/2017/10/07/around-europe-with-my-wifey Drei Jahre in der Schweiz <p><img alt="Collage of my third year in Switzerland" src="" width="100%" style="max-width:600px"/></p> <p>Three years ago today I started my job at Google. I had moved to Switzerland two days before, with two suitcases and a backpack. Then followed a lot of adventure.</p> <p>The third year was different. I started learning Swiss German, so that I can better integrate and it payed off: I am no longer completely clueless as to what Swiss people speak around, I am only mostly clueless. </p> <p>I also got married to the most beautiful, loving and kind girl in the world, Roda, who happens to be an amazing cook as well!</p> <p>I also just did my 100th flight two days ago. I have flown more than 150000 kilometres in the last three years, visiting 16 countries. </p> <p>I've made deeper friendships, both here in Switzerland and abroad. I enjoyed exploring Israel with some of them, I've learned how to play the piano from others, while others have been the encouraging voice to strengthen me in my walk with the Lord. </p> <p>Looking back, I think it was a year where I was tested to see if I did learn anything the previous year. Some situations resembled what happened a year before that, sometimes eerily so. Sometimes, I failed. Other times, I believe I came out better or faster, through the grace of God. </p> <p>I step into the next year, now walking with a companion for life by my side, but still aiming to run the race, to fight the good fight and to love and serve my Lord with all my heart, all my soul, all my mind and all my strength.</p> Fri, 01 Sep 2017 19:54:00 GMT,2017-09-01:/2017/09/01/drei-jahre-in-der-schweiz How to organize a wedding - in 20 easy steps <p><img alt="Roda and Roland wedding" src="" width="100%" style="max-width:600px"/></p> <p>So you decided to get married. You need a wedding for that. It's a lot of work. Given that I just got married two weeks ago, I'll try to jot down some step-by-step instructions (with particulars about Romanian bureaucracy).</p> <ol> <li>Find a partner who is willing to say "Yes". Trivial exercise, left as homework for the reader.</li> <li>Decide on the style of wedding. Do you want a fancy, shiny, super modern wedding in the middle of the city? Do you want something in nature, far from civilization? Do you want a smaller, cozier wedding? Do you want to invite the all your extended family and all your friends? What are the budget constraints? I recommend using a spreadsheet to track the todos, with links to other documents which contain details about choices and decisions. And you can color code that spreadsheet with due dates. Like a project manager :D </li> <li>With those decisions in mind, start looking for a venue. Most often, that takes a long time, so you have to do this up to a year in advance. We managed to find a venue only 4 months ahead, because we went somewhere in the mountains. </li> <li>Find a photographer. Start stalking photographers' websites and Facebook pages to find out what their style is like. Narrow it down to a short list of 5, talk to them, find out their availabilities and price range and proceed. I recommend talking in person to the photographer, because you'll spend most of the time on your wedding day with them, so you better click and get along well.</li> <li>Get catering. We had it from the venue where we had the wedding, so they organized everything. That is by far the easiest, because it's one less vendor to deal with. But sometimes you have to order it from a 3rd party. </li> <li>(Optional) Get a music band. We didn't have one. </li> <li>Start making guest lists. Depending on where you are from, you should give the invites in advance, or it might not matter, because you'll still have lots of people making last minute RSVP changes. I recommend using a spreadsheet for tracking this. You can mark there whether the invitation was given, whether an answer was received, how many adults and kids, keep counts to see how it's going, drill down based on various attributes and even make the seat planning.</li> <li>Design invites, get them printed out and sent them to invitees. Warning, sometimes emails to vendors get lost and they don't answer for more than week. Maybe they are busy, maybe they are shoddy, maybe you should look for another one.</li> <li>Bride: Get wedding dress. Bonus: make it a surprise for him.</li> <li>Get wedding rings. Decisions, decisions, decisions. What metal? What style? With stones? </li> <li>Order flowers. I know this happened, but I mostly stayed out of it. It also involved searching various vendors and looking at lots of stuff on Pinterest.</li> <li>Groom: get a suit. It's your wedding, so do try to get a made-to-measure one. Just don't get a linen one. Your parents will complain that it's too wrinkly and make you get another one. </li> <li>Make guest seating plan. Leave some slack in it for last minute changes, because in Romania, you will have people changing their mind on the last day! Or the last minute!</li> <li>Register at the townhall for the civil ceremony. Warning: in Romania this has to be done at least 10 days before the wedding. And at most 14 days before the wedding, because you need to get a medical certificate that is valid for only 14 days. And you need a blood test for that medical certificate. So be prepared for several trips to do this. </li> <li>Try your best not to be late for your own civil ceremony. </li> <li>Say yes.</li> <li>Party hard.</li> <li>Smile so much for pictures your face muscles start to hurt. </li> <li>Wait for all the guests to leave.</li> <li>Go to the hotel you booked for the wedding night - and find out there is a night wedding going on at that venue. Enjoy the super loud music until 6 AM. </li> </ol> <p>Congratulations, you got married!</p> Sat, 05 Aug 2017 15:15:00 GMT,2017-08-05:/2017/08/05/how-to-organize-a-wedding-in-20-easy-steps Evaluating goals - 2017 edition <p>Another half a year has passed, so it's time to review my goals from <a href="">January</a>.</p> <p>Around March something came up, so I dropped some goals or reduced their intensity. That something is called setting a <a href="">wedding date for July</a>, so I'll excuse myself for being busy with that. </p> <p>Scoring will continue by the same metric: 1 for goals fully achieved, 0 for complete failures. </p> <dl> <dt>Get to 82 kg by June</dt> <dd>I am currently 83 kg. I was 90 kg in January when I posted this, so this is a 0.875 score. Not bad. We'll see how my suit fits on Saturday :D</dd> <dt>Exercise three times a week</dt> <dd>I exercised 63 times in the first half of the year. Then I pulled a muscle and it had me unable to move. It's still a score of 0.777.</dd> <dt>Read 24 books in 2017/read 30 minutes every day</dt> <dd>So... I read 10 books in half a year, when I should be at 12 already. Almost there, so it's 0.833. But the 30 minutes reading per day... that's a big no.</dd> <dt>Write 3 blog posts per month</dt> <dd>I wrote 13 posts so far (without this one), while I should be at 18. Score: 0.722</dd> <dt>Write into my journal twice a week</dt> <dd>I managed to keep this habit almost perfectly until last week. Score: 0.95</dd> <dt>Spend 1 hour per week studying German on my own</dt> <dd>This goal got dropped first: I stopped doing it around April. I clocked in 8.3 hours of German until then. Score: 0.307</dd> <dt>Do 4 20 minute Pomodoros every day</dt> <dd>I did around 550 Pomodoros this year, which comes down to 3.79 per working day. Score: 0.94. I actually felt more productive.</dd> <dt>Read 3 chapters from the Bible every day</dt> <dd>I did this pretty good until last week. Score: 0.95</dd> <dt>Memorize 1 Bible verse every week:</dt> <dd>Well... third time's the charm. It'll work next time, I'm sure! Score: 0</dd> </dl> <p>Average score: 0.706. So I managed to improve just a tiny bit on my score from last year \:D/ But it's interesting that now I don't have any perfect score, but I have fewer failures too. Maybe I'm learning how to set proper goals for myself? </p> <p>But, like last year, I'll take a break now and I'll focus on making my soon-to-be <a href="">wife happy</a>!</p> Mon, 17 Jul 2017 21:55:00 GMT,2017-07-17:/2017/07/17/evaluating-goals-2017-edition I believe I can fly! <iframe width="560" height="315" src="" frameborder="0" allowfullscreen class="youtube"></iframe> <p>About a month ago I started believing I can fly, so I proved it by going for a gliding session. A glider is a lightweight plane, which doesn't have an engine, so it's pulled by another plane until it takes off. After that, you glide through the air, like an eagle, looking for thermals which lift you up. Unfortunately, it was a too nice day, with no clouds, so we didn't find any good thermals, so my flight was quite short. But it was still nice to see Uetliberg from above :D And I piloted the plane for about 5 minutes :D</p> <iframe width="560" height="315" src="" frameborder="0" allowfullscreen class="youtube"></iframe> <p>Two weeks ago I had the pleasure to go do a paragliding basic lesson \:D/ Where you get to fly around for a little while. It was super tiring. All the morning we were just running around, to learn how to raise the paraglider up correctly and only in the afternoon did we actually get to fly. But it was soooo awesome!!!!</p> <p>Of course, I won't rob you of the outtakes (I'm fine mom, I survived): </p> <iframe width="560" height="315" src="" frameborder="0" allowfullscreen class="youtube"></iframe> Thu, 29 Jun 2017 21:25:00 GMT,2017-06-29:/2017/06/29/i-believe-i-can-fly The Piano Guys <figure> <p><img alt="Playing I want you Bach" src="" width="100%" style="max-width:600px"/> <figcaption>Playing <a href="">I want you Bach</a></figcaption></p> </figure> <p>Last Friday The Piano Guys were in Zürich. I found out about it from an ad on Facebook. It's probably the second time in my life where an advertisement there is actually useful and relevant for me.</p> <p>They started by playing <a href="">Batman Evolution</a>, which goes through most of the Batman movies soundtracks and weaves them together.</p> <figure> <p><img alt="Jon playing with his head under the piano" src="" width="100%" style="max-width:600px"/> <figcaption>Jon fooling around, by playing with his head under the piano</figcaption></p> </figure> <p>They explained how they like to combine their love for old classical music with modern songs that are well known by young people. For example, they take every kid's favourite song: <a href="">Let It Go!</a> and combine it with Vivaldi's Winter.</p> <figure> <p><img alt="Jon playing with his feet" src="" width="100%" style="max-width:600px"/> <figcaption>More of Jon fooling around, by playing with his feet</figcaption></p> </figure> <p>The duo likes to make fun of each other. Jon constantly makes fun of Steven, the cellist, for being part of a band called "The PIANO Guys", while Steven likes to show off his sweet cello skills and how he can do cooler tricks then Jon.</p> <p><img alt="Steven playing the chello" src="" width="100%" style="max-width:600px"/></p> <p>Steven has 26 cellos in his collection, which of course all sound very different to him. He brought only three on this tour: the Italian one, called Marcello (pronounced with an Italian accent), the French one, made out of carbon fiber, called.... Carbon Fibre, and the Chinese one, called Bruce Lee.</p> <figure> <p><img alt="Steven being bored" src="" width="100%" style="max-width:600px"/> <figcaption>Steven is really bored by <a href="">Pachelbel's Canon in D</a>, so he's showing off</figcaption></p> </figure> <p>Steven learned some German in school, so he was constantly weaving some German words into his address to the audience. Jon probably learned a few basic sentences on the way over, just not to be inferior to Steven in any way.</p> <figure> <p><img alt="Jon dancing" src="" width="100%" style="max-width:600px"/> <figcaption>When Steven starts improvising on the Canon in D, Jon starts dancing on the stage, much to Steven's embarrassment</figcaption></p> </figure> <p>They told how the whole thing started, when a piano shop owner wanted to make some fancy ads basically for his pianos, so he asked Jon to play them on the street. Jon knew Steven from before, knew how creative he was with the cello and thought he could help them go viral. Along came Al, a neighbor of Steven, who helped them write songs and edit them. And it did go viral. Unfortunately, the shop had to close. </p> <figure> <p><img alt="Al, their songwriter" src="" width="100%" style="max-width:600px"/> <figcaption>Al, their music producer, sometimes joins them on stage to sing with them</figcaption></p> </figure> <p>When they were singing the <a href="">Fight Song / Amazing Grace</a> combination, they actually brought on stage four bagpipers to accompany them!</p> <p><img alt="Four bagpipers accompanying the Piano Guys" src="" width="100%" style="max-width:600px"/></p> <p>They ended the concert with all four of them (Jon, Steven, Al and Paul, their videographer) abusing the piano at the same time, some of them by hitting it.</p> <p><img alt="The four of them abusing the piano" src="" width="100%" style="max-width:600px"/></p> <p>I enjoyed the concert. It was especially pleasant because two times they gave credit to where it's due: to God. They acknowledged that they are what they are and they can do what they do because of what He has given them. It was a nice moment :)</p> Fri, 16 Jun 2017 21:08:00 GMT,2017-06-16:/2017/06/16/the-piano-guys Istanbul, land of turbans, spice and carpets <p><img alt="Entrance to small market" src="" width="100%" style="max-width:600px"/></p> <p>This is the land of cheap layovers on the way to Romania. Thanks to the invisible hand of the market, tickets to the airports that are close to where my fiancee lives were 50% cheaper when flying through Istanbul, with an overnight layover, than more direct flights. It was still cheaper when buying two nights in a hotel. So through Istanbul it was. I figured it might be my last trip alone, so it should be fun.</p> <figure> <p><img alt="One of the many water fountains in the city" src="" width="100%" style="max-width:600px"/> <figcaption>One of the many water fountains in the city</figcaption></p> </figure> <p>And it was. Istanbul is a very colorful and diverse city. You see all kinds of people getting along. And they have something us in the "west" don't have: time. Everywhere you see people hanging out together. In front of shops, on the street, people stop and talk with each other. They seem to have a lot more personal interactions. But they smoke a lot more :(</p> <p>Security is quite strict, there being lots of armed police and military on the streets. Most touristy sights have security checks at the entrance, but I didn't have any problems getting through them. That might have been because even though it beeps, they let you go through, without stopping you. I was a bit puzzled by what exactly are they trying to achieve.</p> <figure> <p><img alt="Sultan Ahmet's Tomb" src="" width="100%" style="max-width:600px"/> <figcaption>The tomb of Sultan Ahmet</figcaption></p> </figure> <p>But it's also clearly not the well organized, full of signs, easy to get around "West". First hint of this was getting from the airport to the hotel. On my way to Romania, I was staying at the airport hotel. I figured, it's the airport hotel, so it's in the airport building, there being plenty of signs to lead you to it. Well, I was wrong. There were 0 signs for it as I came out of customs. After searching far and wide, I found a sign saying "TAV airport hotel shuttle". Aha, that must be it. I go in the direction pointed by the sign and I see shuttles for three other hotels, but none for my hotel. I walk some more, eventually ask another shuttle driver, who asks someone else, who happens to walk in that general direction and points me there. It was a 10 minute walk, because you couldn't get there through the airport building, even though it was part of the same complex. At least I got a free upgrade for my room :D</p> <figure> <p><video src="/static/videos/fountain.mp4" autoplay loop> </video> <figcaption>Fountain in Sultan Ahmet archelogical park</figcaption></p> </figure> <p>Then I take a "Taksi" to the old part of the town. Turn signaling seemed to be almost entirely optional. We went through what looked like a round-about, but I'm pretty sure I saw cars going perpendicular to each other, completely disregarding any kind of lanes. After leaving the nice ring road surrounding the city, by the sea, we get into the small streets in the old part of the town. It didn't seem to matter to the driver that there was a long line of cars ahead of us, every time we stopped, he honked. Also, if someone else honked, he honked as well. The driver had two phones: a smartphone with the Uber-like app I booked him with, and an old dumb phone which seemed to be constantly in a call, even though he wasn't using it most of the time. Eventually traffic ground to a halt, so I got out and walked the rest of the way to the Yerebatan Cistern. It was a bit scary though to cross the streets like the locals do: almost completely disregarding traffic, depending on how fast the cars went. </p> <figure> <p><img alt="Taksim Square" src="" width="100%" style="max-width:600px"/> <video src="/static/videos/walk.mp4" autoplay loop> </video> <figcaption>Walk signs are animated :D</figcaption></p> </figure> <p>These cisterns, also called the Cistern Basilica, are a water reservoir with a capacity of 100.000 tons of water. It's a huge underground cavern, carved sometime in the 6th century. It has xx columns, in Doric and Ionic style. There is this soft music playing the background and it has a really nice impression on you as you walk around. The temperature is well below 20 degrees inside. Close to the entrance, for a small fee you can dress up as a Turkish soldier, pasha or princess and get some photos of you like that (no, I didn't do this :P).</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Right outside the Yerebatan Cisterns " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="More information about them " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Really nice atmosphere " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/06/istanbul/cistern/P1160387.JPG", "title": "Right outside the Yerebatan Cisterns\n", "msrc": "/static/images/2017/06/istanbul/cistern/thumbs/P1160387.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2017/06/istanbul/cistern/P1160388.JPG", "title": "More information about them\n", "msrc": "/static/images/2017/06/istanbul/cistern/thumbs/P1160388.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2017/06/istanbul/cistern/P1160394.JPG", "title": "Really nice atmosphere\n", "msrc": "/static/images/2017/06/istanbul/cistern/thumbs/P1160394.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/06/istanbul/cistern/P1160398.JPG", "title": "The weeping column\n", "msrc": "/static/images/2017/06/istanbul/cistern/thumbs/P1160398.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2017/06/istanbul/cistern/P1160406.JPG", "title": "The medusa head\n", "msrc": "/static/images/2017/06/istanbul/cistern/thumbs/P1160406.JPG", "w": 2856, "h": 4272}]</script> </div> <p>On the way there, I passed through a small market place, where lots of people were selling various handmade goods. You could see all kinds of stuff, including people making in front of you wooden decorations, ornate walking canes, the water paintings or carving jewelry. Lots of cool stuff.</p> <p><img alt="Craftsman making jewelry" src="" width="100%" style="max-width:600px"/></p> <p>After a late lunch, I ran into some overly friendly and pushy carpet sellers, who invited me to see their shop... which happened to be in a basement. It was a bit scary, but I wanted anyway to buy a carpet for my fiancee, so it worked out fine-ish. The guy knew how to say "How are you?" in Romanian and that Gica Hagi is the best Romanian footballer. Also, when leaving, they complimented my beard (Take that, mom!). </p> <figure> <p><img alt="Kiosk outside the Topkapi Palace" src="" width="100%" style="max-width:600px"/> <figcaption>Kiosk outside the Topkapi Palace</figcaption></p> </figure> <p>Afterwards I went to see Hagia Sofia (Greek for Holy Wisdom), which was an old Greek Orthodox church, built in 537. It was converted into a mosque in 1453 and now it's a museum. The really interesting part about it is that it still has some of the old paintings of Christian saints, right along side the Islamic imagery. The church was designed by some geometers and you can see that the whole thing is very symmetric: the layout, the patterns in the stones and the decorations on the walls. It looks really great. Unfortunately, it's in restoration, so some parts are not visible for now. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Outside remnants " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Sssssnakessss " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Cat. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/06/istanbul/hagia/P1160417.JPG", "title": "Outside remnants\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160417.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160419.JPG", "title": "Sssssnakessss\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160419.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160420.JPG", "title": "Cat.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160420.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160422.JPG", "title": "That window looks like an emoji :D\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160422.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160427.JPG", "title": "Patterns on the wall.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160427.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160430.JPG", "title": "Arabic writing.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160430.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160431.JPG", "title": "Drink up.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160431.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160433.JPG", "title": "The Library\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160433.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160435.JPG", "title": "More cats.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160435.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160437.JPG", "title": "Chandelier.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160437.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160438.JPG", "title": "X marks the spot.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160438.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160442.JPG", "title": "The pulpit\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160442.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160445.JPG", "title": "Byzantine mural...\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160445.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160446.JPG", "title": "... surrounded by Muslim symbols\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160446.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160447.JPG", "title": "Mosaics.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160447.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160451.JPG", "title": "", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160451.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160453.JPG", "title": "The ceiling.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160453.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160454.JPG", "title": "Some feathery being.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160454.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160465.JPG", "title": "This door looks like a sarcophagus.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160465.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160467.JPG", "title": "The balconies\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160467.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160470.JPG", "title": "The Empresses' view\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160470.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160478.JPG", "title": "Half-gone saints\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160478.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160487.JPG", "title": "Access denied.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160487.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160492.JPG", "title": "Feathery being again, now with a head.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160492.JPG", "w": 1080, "h": 1615}, {"src": "/static/images/2017/06/istanbul/hagia/P1160500.JPG", "title": "A solar clock, which indicated three different things.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160500.JPG", "w": 1080, "h": 722}, {"src": "/static/images/2017/06/istanbul/hagia/P1160501.JPG", "title": "The water fountain.\n", "msrc": "/static/images/2017/06/istanbul/hagia/thumbs/P1160501.JPG", "w": 1080, "h": 722}]</script> </div> <p>After the church I crossed the Golden Horn by walking across the Galata Bridge. It separates the old, historical Constantinople from the new, modern Istanbul. The bridge has two levels, one above, for cars, and one for pedestrians below. The lower level is full of restaurants, with the waiters calling you in at every step. </p> <p><img alt="Bridge over the Golden Horn" src="" width="100%" style="max-width:600px"/></p> <p>My last stop for the day was the Galata Tower. It was built in 1348, as part of the Genoese colony of Constantinople. It was damaged several times by fire, even though sometimes it was used to spot fires in other parts of the city. Now the insides have been modernized, with elevators and a nice cafe. From the top you have a beautiful panoramic view of the city. And from there you realize that Istanbul is 'yuuuuuuge. In pretty much every direction you look, you can't see its limits. But there is this strong contrast: you have this impressive, majestic old tower and right next to it you have 60 year old apartment buildings that have never seen any maintenance, so there are cracks in the walls and the paint is half gone. From the top of the tower you can enjoy a beautiful sunset and then look down to see how somebody is making a BBQ in their rooftop garden. I wonder how people who live there enjoy that too, knowing that thousands of tourists are analyzing their culinary skills. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="The Galata Tower from up close. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="From a distance. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Istanbul to the horizon " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/06/istanbul/tower/P1160539.JPG", "title": "The Galata Tower from up close.\n", "msrc": "/static/images/2017/06/istanbul/tower/thumbs/P1160539.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2017/06/istanbul/tower/P1160528.JPG", "title": "From a distance.\n", "msrc": "/static/images/2017/06/istanbul/tower/thumbs/P1160528.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/06/istanbul/tower/P1160547.JPG", "title": "Istanbul to the horizon\n", "msrc": "/static/images/2017/06/istanbul/tower/thumbs/P1160547.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/06/istanbul/tower/P1160554.JPG", "title": "Rooftop reading under the tower.\n", "msrc": "/static/images/2017/06/istanbul/tower/thumbs/P1160554.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/06/istanbul/tower/P1160559.JPG", "title": "The old city\n", "msrc": "/static/images/2017/06/istanbul/tower/thumbs/P1160559.JPG", "w": 4272, "h": 2856}]</script> </div> <p>When I went back to the hotel, I discovered the sign pointing towards in the airport: it was right at the exit from the metro. Yay. At least the trams and metros in Istanbul were pretty clean and with air conditioning. </p> <p><img alt="One of the many mosques" src="" width="100%" style="max-width:600px"/></p> <p>On the way back to Zurich, I stayed at another hotel, which was fancier and cheaper, but a 10 minute ride from the airport. While it was nice, it turned out the Google Maps doesn't quite know the area well, because it wanted to send me walking over a highway to get to a bus stop, or along an nonexistent street. Ah, the fun adventures at 9PM in a foreign city.</p> <p><img alt="Boat on the Golden Horn" src="" width="100%" style="max-width:600px"/></p> <p>The first thing I went to see on Monday was the Grand Bazaar, the world's oldest shopping mall and it's said to be the world's most touristy place with 91 million visitors every year. That being said, I wasn't on a shopping spree, so I admired the exotic spice shops, colourful carpet shops and shiny jewelry shops only from a distance.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Entrance to the Grand Bazaar " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Ceiling decorations " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Shops, shops everywhere " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/06/istanbul/bazaar/P1160593.JPG", "title": "Entrance to the Grand Bazaar\n", "msrc": "/static/images/2017/06/istanbul/bazaar/thumbs/P1160593.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2017/06/istanbul/bazaar/P1160594.JPG", "title": "Ceiling decorations\n", "msrc": "/static/images/2017/06/istanbul/bazaar/thumbs/P1160594.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/06/istanbul/bazaar/P1160595.JPG", "title": "Shops, shops everywhere\n", "msrc": "/static/images/2017/06/istanbul/bazaar/thumbs/P1160595.JPG", "w": 2856, "h": 4272}]</script> </div> <p>Then I proceeded to the modern part of Istanbul: Taksim Square, where the Monument of the Republic stands, built in 1928 for the 5th anniversary of the foundation of the Republic of Turkey. It's a small area, with quite heavy police presence, because people like to protest here (among other reasons against the demolition of the Taksim Gezi Park), but it has some boutiques selling street food with some amazing ice cream :X.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="The monument in the middle of Taksim Square " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The entrance to the market fair in Taksim Square " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/06/istanbul/taksim/taksim.jpg", "title": "The monument in the middle of Taksim Square\n", "msrc": "/static/images/2017/06/istanbul/taksim/thumbs/taksim.jpg", "w": 2856, "h": 4272}, {"src": "/static/images/2017/06/istanbul/taksim/P1160617.JPG", "title": "The entrance to the market fair in Taksim Square\n", "msrc": "/static/images/2017/06/istanbul/taksim/thumbs/P1160617.JPG", "w": 4272, "h": 2856}]</script> </div> <p>Of course, I don't like to visit a city where Google has an office, without visiting the office itself. These are in the Levent quarter, a business district full of skyscrapers. </p> <p><img alt="View from the Google office" src="" width="100%" style="max-width:600px"/></p> <p>To end my trip I went down to the sea side and walked a bit along it (and got lost by getting on the wrong bus), looking to the opposite side of the Bosphorus, regretting that I didn't have time to go to the Asian side. Oh well, there's always next time!</p> <p><img alt="Looking across the Bosphorus" src="" width="100%" style="max-width:600px"/></p> <p>Two more fun facts about Istanbul: they don't seem to have stray dogs, but they have stray cats. Cats everywhere. Hagia Sofia was full of them. Everywhere on the street? Cats, cats, cats. I think it's cat paradise. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="For some reason, Kim Jong Un seems to be popular. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Baseball hat-like roof overhang " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="I guess the owner ran out of ideas " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/06/istanbul/misc/P1160536.JPG", "title": "For some reason, Kim Jong Un seems to be popular.\n", "msrc": "/static/images/2017/06/istanbul/misc/thumbs/P1160536.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2017/06/istanbul/misc/P1160504.JPG", "title": "Baseball hat-like roof overhang\n", "msrc": "/static/images/2017/06/istanbul/misc/thumbs/P1160504.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/06/istanbul/misc/P1160506.JPG", "title": "I guess the owner ran out of ideas\n", "msrc": "/static/images/2017/06/istanbul/misc/thumbs/P1160506.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2017/06/istanbul/misc/P1160608.JPG", "title": "They called to say \"Thanks for all the fish\"\n", "msrc": "/static/images/2017/06/istanbul/misc/thumbs/P1160608.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2017/06/istanbul/misc/P1160625.JPG", "title": "The child seems quite angry :-S\n", "msrc": "/static/images/2017/06/istanbul/misc/thumbs/P1160625.JPG", "w": 4272, "h": 2856}]</script> </div> <p>Also, the food is amazing. Both places where I sat down to eat had really good stuff. Unfortunately, I'm on diet, so I couldn't eat more :(</p> <p>I enjoyed my time in Istanbul, but I didn't get to hear <a href="">Mr. Toot</a> playing.</p> Wed, 14 Jun 2017 21:36:00 GMT,2017-06-14:/2017/06/14/istanbul-land-of-turbans-spice-and-carpets Happy Mother's Day! <iframe width="560" height="315" src="" frameborder="0" allowfullscreen class="youtube"></iframe> <p>Happy Mother's Day to my dear mom! I love you! Kisses from New York!</p> Sat, 06 May 2017 22:54:00 GMT,2017-05-07:/2017/05/07/happy-mother-s-day Look what I found on Uetliberg <p><img alt="Hands with rings" src="" width="100%" style="max-width:600px"/></p> <p>Scarcely had I hiked up Uetliberg when I found the one my heart loves. I held her tightly and I put a ring on her finger! (to paraphrase Song of Solomon 3:4)</p> Sun, 23 Apr 2017 20:56:00 GMT,2017-04-23:/2017/04/23/look-what-i-found-on-uetliberg Indexing IM logs with Elasticsearch <p>Remember <a href="">my old project</a> for processing instant messaging logs? Probably, because I wrote about it <a href="">five years ago</a>. Well, the project is only mostly dead, every once in a while I still occasionally work on it. </p> <p>I mostly use it as an excuse to learn technologies that are used outside of the Google bubble. One thing that really impressed me with how well it works and how easy it is to set up was <a href="">Elasticsearch</a>. Elasticsearch is a search engine. You give it your documents and it indexes them and enables you to query them fast. There are other projects that do this for you, but ES can do scaling to multiple machines out of the box, has sane defaults for how to process text and it has many addons. One of the amazing addons, built by the same company, is Kibana, a dashboard and reporting tool, perfectly integrated with Elasticsearch.</p> <p>Let's see how we can get our data into Elasticsearch and how we can learn something from it. We're going to use the Python bindings and I assume that you have all the official packages installed. I'm going to assume that getting the data is a solved problem and we basically have an iterator that produces dictionaries of the following form:</p> <div class="highlight"><pre>{&#39;datetime&#39;: &#39;2017-03-30T23:12&#39;, &#39;message&#39;: &#39;Hello there&#39;, &#39;contact&#39;: &#39;Friend&#39;, &#39;sender&#39;: &#39;Me&#39;} </pre></div> <p>To add the data into Elasticsearch, we use the following super short snippet:</p> <div class="highlight"><pre><span class="kn">from</span> <span class="nn">elasticsearch</span> <span class="kn">import</span> <span class="n">Elasticsearch</span> <span class="kn">from</span> <span class="nn">elasticsearch.helpers</span> <span class="kn">import</span> <span class="n">bulk</span> <span class="n">es</span> <span class="o">=</span> <span class="n">Elasticsearch</span><span class="p">()</span> <span class="c"># Create the connection to the Elasticsearch cluster</span> <span class="n">es</span> <span class="o">=</span> <span class="n">Elasticsearch</span><span class="p">([</span><span class="s">&#39;http://elastic:changeme@localhost:9200/&#39;</span><span class="p">])</span> <span class="c"># Set a certain property for the message field.</span> <span class="n">es</span><span class="o">.</span><span class="n">indices</span><span class="o">.</span><span class="n">create</span><span class="p">(</span><span class="s">&#39;chat&#39;</span><span class="p">,</span> <span class="p">{</span><span class="s">&quot;mappings&quot;</span> <span class="p">:</span> <span class="p">{</span> <span class="s">&quot;message&quot;</span> <span class="p">:</span> <span class="p">{</span> <span class="s">&quot;properties&quot;</span> <span class="p">:</span> <span class="p">{</span> <span class="s">&quot;message&quot;</span> <span class="p">:</span> <span class="p">{</span> <span class="s">&quot;type&quot;</span> <span class="p">:</span> <span class="s">&quot;text&quot;</span><span class="p">,</span> <span class="s">&quot;fielddata&quot;</span><span class="p">:</span> <span class="bp">True</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="p">})</span> <span class="c"># Generator that creates dictionaries of our messages and tells ES were to index</span> <span class="c"># them</span> <span class="k">def</span> <span class="nf">lines</span><span class="p">():</span> <span class="k">for</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">rows</span><span class="p">:</span> <span class="n">d</span> <span class="o">=</span> <span class="p">{</span><span class="n">k</span><span class="p">:</span> <span class="n">row</span><span class="p">[</span><span class="n">k</span><span class="p">]</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">row</span><span class="o">.</span><span class="n">keys</span><span class="p">()}</span> <span class="n">d</span><span class="p">[</span><span class="s">&#39;_op_type&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="s">&#39;index&#39;</span> <span class="n">d</span><span class="p">[</span><span class="s">&#39;_index&#39;</span><span class="p">]</span><span class="o">=</span> <span class="s">&#39;chat&#39;</span> <span class="n">d</span><span class="p">[</span><span class="s">&#39;_type&#39;</span><span class="p">]</span><span class="o">=</span> <span class="s">&#39;message&#39;</span> <span class="k">yield</span> <span class="n">d</span> <span class="c"># Imports into Elasticsearch in bulk (once every 5000 messages)</span> <span class="n">bulk</span><span class="p">(</span><span class="n">es</span><span class="p">,</span><span class="n">lines</span><span class="p">())</span> </pre></div> <p>And that's about it. Normally, Elasticsearch can create indexes automatically when you first import something, but in our case, it has a wrong default for the message field, so we have to manually specify that it should have the <a href="">fielddata</a> setting true.</p> <p>Now let's see what this gives us. We are going to start Kibana, which is the dashboard creating tool for Elasticsearch. There we can explore our dataset and filter by everything:</p> <p><a href=""><img alt="Kibana UI" src="" width="100%" style="max-width:600px"/></a></p> <p>This shows you some of my discussions with Cătălin. At the top you can see the number of messages we've had over the years. It's a partial lie: in the second half of 2015 we talked over Wire and I didn't save my discussions from there and since the second half of 2016 we've been talking on Telegram and I haven't written the import tool for that. </p> <p>Below that you can see some of the actual messages, with all the metadata. It's quite nice to explore your data and to reminisce over old conversations.</p> <p>Then we can switch to the Visualize tab and create some pretty graphs:</p> <p><a href=""><img alt="Top contacts" src="" width="100%" style="max-width:600px"/></a></p> <p>This is a graph of the top 20 people I have talked with. Cătălin leads the pack, because I have been talking to him for about 9 years and then there are various friends. One thing that was surprising to me was how some people with whom I haven't talked in 3-4 years are still there, meaning that I must've talked to them a loooot before that. </p> <p><a href=""><img alt="Amount of chats over the year" src="" width="100%" style="max-width:600px"/></a></p> <p>Another easy graph to make is to plot how much I've talked to my top 20 contacts over the years. As you can see, there is a lot of variation. It's hard to tell much just by eyeballing the data, but it seems that most of the time there are burst of activity with a friend and then we talk much less for a while. Maybe I should use it to decide who to talk to again. :D</p> <p>The last thing I want to show is from an addon to Elasticsearch, called X-Pack. It's a paid addon, but it has a free 30 day trial. It has a module called Graph, where you enter certain keywords and it shows you related terms.</p> <p><a href=""><img alt="Graph of connected terms" src="" width="100%" style="max-width:600px"/></a></p> <p>To get this image, I entered Python, Ruby, cooking and Bible. As you can see, it "knows" that Python and Ruby are connected. Even more, it knows that Django is a Python framework, while Rails is a Ruby framework. PHP and Javascript are also programming languages, so they are part of that cluster. </p> <p>But cooking forms a different cluster, together with cleaning, which I should be doing :D </p> <p>Bible is another separate cluster, with study and reading. It figured out that I use the ESV Bible translation. The relationship between study and collegehumor is funny: I sent a certain link to many people, which was about "studying" and this confuses it into thinking the two are related. Alas, humour still beats modern AI techniques. </p> <p>Considering how much effort we invested into this, it gives really good results. Of course, it's helpful that I have a lot of data from which it can learn.</p> <p>I find Elasticsearch a great tool for quickly searching when I talked to someone about a certain topic and for doing some simple visualizations. It's super simple to use, but still powerful.</p> Sat, 01 Apr 2017 19:46:00 GMT,2017-04-01:/2017/04/01/indexing-im-logs-with-elasticsearch Silence <p><img alt="Silence poster" src="" width="100%" style="max-width:600px"/></p> <p>Silence is a movie by Martin Scorsese about two Catholic priests, Rodriguez and Garupe, who go to Japan in the 17th century to find their mentor, Father Ferreira, who is rumoured to have lost the faith.</p> <p>It's a really good movie, even though it's extremely brutal. It makes you think about some really hard questions, such as where is God among suffering and when He is (or seems) silent, despite all your prayers. </p> <p>It's based on a book by Endo Shusaku. I read the book when I was 12 or 13. I found it too long and boring, but I forced myself to finish it. I think it was quite inappropriate for me at that time: I couldn't process the central conflict of the book, the dilemma the main character is faced with when he either has to apostatize or watch as other Christians are tortured because of him. I'm not sure, but I think after reading this book I somehow lost interest in reading for a long time.</p> <p>The movie stays close to the book, so it was interesting to look at the same subject more than 10 years later. What made it even more interesting was that I asked the same question last year, when the sky seemed to be falling over me, during my depression.</p> <p>While I don't agree with some of the tenets of Catholicism, I do believe that some Catholics were true believers, who loved God. In the movie you get the first impression of this when the priests arrive in Japan. Their guide takes them to some "Kirishitans" (misspelled/japanized version of the word Christian) who have to profess their faith in secret, because of persecutions. The believers are incredibly happy that God sent them some priests and shelter them. Even though they don't have enough food, they prefer to starve, so that they can feed the priests, knowing that the priests will then feed them spiritually. They have waited anxiously for years for priests to come to absolve them, to administer sacraments and to baptize their children. When the authorities realize that there are Christians around, they manage to catch four. When given the opportunity to recant, three of them refuse, so they are tied to pillars in the sea and left there to be beaten to death by the sea. The last one dies praising God and looking forward to heaven. </p> <p><img alt="Rodriguez with a local believer" src="" width="100%" style="max-width:600px"/></p> <p>I believe in the universal priesthood of believers (which means that you don't need a designated priest, you can go with your prayers directly to God), so I don't believe that you need priests from Portugal to have your sins forgiven. But this image of people being hungry for the Word of God is one that is very familiar: my parents did that too. Before communism fell in Romania, Christian literature was rare. My mom was an English teacher, so she speaks good English. After the revolution, several people from the church invited other saints from abroad, from the US, the Netherlands, UK, Switzerland, to help them grow and learn more about God. My mother ended up going with the foreigners to translate for them, several weeks every year.</p> <p>I also have met personally one person who has been in communist prisons for his faith, my parents know several more and I've read books about other people in my country who have been tortured for their faith. The movie just gives it a more visual face to what I already knew and makes me wonder "What kept these people going?" and I can't believe that just a lie would give them the inner strength to resist. </p> <p>After a while, the two priests part ways. They are both separately captured by the Japanese, but they take very different paths. Garupe dies trying to save other Christians from death. Rodriguez was never allowed as much freedom by his captors, but at the same time he didn't resist too much either. In the end, he recants. He steps on the fumie (a metal plaque with an "image" of Jesus) and then he helps catch other Christians, by examining objects for Christian iconography. He claims that Christ spoke to him, giving him permission to step on the image. He lives the rest of his life as a Buddhist, but when he is cremated, he is shown to hold a small cross hidden in his palms.</p> <p><img alt="Father Ferreira" src="" width="100%" style="max-width:600px"/></p> <p>I think Rodriguez made the wrong choice when he apostatized, especially that he knew from a discussion with some of the local believers that they were convinced that they will be going to "paraiso", where there is no hard work, no starving and no taxes. While their suffering was difficult, he should have known that in the end they would be rewarded for it, no matter how much it hurt him to watch and hear the torture.</p> <p>At the same time, it's easy to judge from my comfy chair, knowing that I've never been anywhere near any kind of persecution for my faith. I just hope and pray that when I will be in a similar situation, I will find the grace from God to act faithfully. </p> <p>While the ending is sad, I still found the movie to be enjoyable, although in the philosophical sense, not the emotional one, because it almost brought me to tears in the cinema. It's definitely not a movie to watch lightheartedly and be prepared to be confronted with some tough questions, but in a good way, I believe.</p> Thu, 09 Mar 2017 22:45:00 GMT,2017-03-10:/2017/03/10/silence Backing up 2: The NAS <figure> <p><img alt="Photo of Synology DS916+" src="" width="100%" style="max-width:600px"/> <figcaption>My DS916+ NAS hidden behind next to a drawer in my living room</figcaption></p> </figure> <p>As I mentioned in my <a href="">previous post</a>, it's good to have various kinds of backups. Today I'm going to talk about on-site backups, in a Network Attached Storage.</p> <p>Network Attached Storages (NAS) are small form computers which usually have at least two hard drives. The hard drives are often hot swappable and can be taken out without disassembling the computer. They are meant to be always on, so they don't consume a lot of power. </p> <p>You can build your own NAS. It's not harder than building your own computer, but if you want it to look really nice and to consume few watts, you'll have to search around quite a lot for parts. The biggest hassle however is setting it up. Whether you go the Linux or Windows route, it still means configuring a server. Some people find it fun, some people don't. </p> <p><a href=""><img alt="Synology OS start screen" src="" width="100%" style="max-width:600px"/></a></p> <p>I ended up buying a pre-made Synology DS916+ unit. It's a 4 drive bay, with a quad core CPU, that consumes around 30W. It's possibly an overkill even for me, but meh, I wanted to go fancy and future-proof. I put in 3 3TB WD Red drives (so I have an empty slot).</p> <p>What convinced me to go the pre-made route? The surrounding ecosystem. Yes, I can configure my home network (with a significant amount of effort) and set-up all the backups, but there's no way I'm going to develop about 10 iOS/Android apps that Synology has. These apps enable me to browse my files from my phone, remotely, to stream my music, to have a remote photo library (including automatic backups of my photos taken with the phone), note taking app that sync back and so on. It basically offers you your very own little cloud. This I found super convenient.</p> <p>Setting it up is super easy. You just put in the hard drives, start it up, configure a few things and you've got a working NAS.</p> <p><a href=""><img alt="Storage Manager" src="" width="100%" style="max-width:600px"/></a></p> <p>One of the more important choices you have to make is how to set up your hard drives. The trade-off is between how many hard drives can fail before any data is lost and how much overhead is needed (how much space is lost). Synology supports a lot of RAID formats (0, 1, 5, 6, 10) and it's own Hybrid Raid thing. RAID 1 and 5 offer a one disk redundancy (if one disk fails, you can still recover all the data from the array), while RAID 6 gives you two disk redundancy. I went with the RAID 5 for my own NAS.</p> <p>Another choice you have to make is what file system to use. Here is where Synology has an advantage over other NAS vendors: it offers Btrfs support. This is a shiny new file system which does file level checksumming and scrubbing, where it looks for files that might have been corrupted and tries to recover them from redundant copies. It has many other features, but these were the most important to me, because they prevent silent bitrot. Bitrot is a process in which a random bit on the hard drive is flipped, corrupting data. This is because small parts of the hard disk platter lose their magnetic orientation. This happens on average about 10^(-14) times, so if you have a 10 terabyte array, it's almost guaranteed that it will happen during it's lifetime. This is usually detected only when you try to read the data, when you suddenly realize that it doesn't make sense anymore. Because btrfs has checksumming, it can figure out when files are corrupted and because it offers scrubbing, it can find out before you go looking for it, while there is still a redundant copy of the file, so it can recover it.</p> <p><a href=""><img alt="Package Center" src="" width="100%" style="max-width:600px"/></a></p> <p>There's a "Cloud Sync" app that enables you to easily backup your various online services, so I set it up with Google Drive and soon it downloaded everything. I also plugged in my external hard drive and downloaded everything from there. The files that live on my computer were copied using rsync or scp, even though the NAS has a fairly good web UI for uploading.</p> <p>After I uploaded all my photos, it spent more than a week indexing them in the Photo library app. It has a super primitive form of facial recognition, which is completely useless, but it recognizes the tags that Picasa or Windows Live Gallery inserted (and they had much better facial recognition), so I could now browse by people.</p> <p>It has a Download Station, which you can use to automatically download stuff, from random pages, torrents or even YouTube videos. </p> <p>It has an Audio Station, which I use because I listen to many sermons, not all of which come in a nice podcast, so it's just easier for me to put them on my NAS and listen to them from there. </p> <p>The Video Station is pretty impressive. It can do transcoding on the fly and you can play in your browser or on your phone. It searches for metadata for the files that you have on the internet, to show nice images and information about it. But I use Netflix for almost all my home entertainment needs, so I don't put this to good use.</p> <p>All these work both from the browser and from your mobile. This attracted me the most: the convenience of mobile. And because it has support for HTTPS, it's fairly safe (as safe as something you expose to the Internet from your living room can be).</p> <p><a href=""><img alt="Control Panel" src="" width="100%" style="max-width:600px"/></a></p> <p>From the Control Panel you can change most of the settings, including security ones. There are several basic ones that you have to make if you expose it to the internet, such as auto banning after several unsuccessful attempts to login.</p> <p>It also offers the option to browse over HTTPS. To avoid the complaints from the browser about a self signed certificate, I actually went and bought a domain for "my house". Synology has support for Dynamic DNS, so updating the domain to point to my IP is automatic. Also, it supports Let's Encrypt so getting the HTTPS certificate was trivial, from the Control Panel. </p> <p>It also has a web server, a mail server, a chat server and a lot of other stuff which I didn't set up. It has built-in support for Docker, so it can run whatever container you have. </p> <p>I find the DS916+ to be more than enough for my needs. Since I have it, I find it much easier to work on my various projects when I am away, because I know I can always access them even remotely, on my NAS. It's very quiet, it doesn't bother me, even though I am quite sensitive to noise. Sometimes when it starts a background process I can hear it, but most of the time it's hibernating.</p> Thu, 02 Mar 2017 20:51:00 GMT,2017-03-02:/2017/03/02/backing-up-2-the-nas Backing up <figure> <p><a href=""><img alt="Burned down computer" src="" width="100%" style="max-width:600px"/></a> <figcaption>What can happen to your computer</figcaption></p> </figure> <p>In today's world, our data and our information is one of our most valuable assets. I have photos going back to 2008. My sporadic journal has digital entries from 2010. I have IM logs from 2009. I have a list of my monthly expenses since 2012. My blog goes back to 2010. I have loads of projects in various stages. Most of this information is irreplaceable (I'm never going to be 16 again, to take those photos once more :( ) and most of it is quite valuable, some having sentimental value (photos), some from a financial point of view, some professionally (my coding projects).</p> <p>Just keeping all this on my own computer was not enough. Hard drives can fail at any time, so I wanted a better back-up solution. At first, I just bought an external hard drive. I did an initial backup of everything to it... and the next one was half a year later. And then one year later. And at that time, I detected some file system level corruption and I had to spend some time recovering data. So I decided that it's not enough.</p> <p>I use various online backup services, but that means my data is in somebody else's hands. Some promise encryption, some have been known to collaborate with various governments, some have shutdown access to the entire account for an entirely different issue. It's enough to look at today's political landscape to see that this can easily become (or already is) a problem. I will still keep using it for most things, because of convenience (Google Photos is awesome and I haven't found anything remotely similar and I don't say this because I work for Google, but because it's really awesome) but I also want to have a copy of my data that is more under my hands.</p> <p>In general it's good to have several layers of backups. At least one should be on-site, for ease of access. Your computer hard drive kicks the bucket, you reach over to your external hard drive or the other computer that has the copy, and you recover the lost files. Problem solved. It's also trivial to copy things locally, because bandwidth is not an issue. </p> <p>While on-site solves the problem of individual hardware failures (unless you are really unlucky and both fail at the same time), it has another failure mode: entire home/office failures. Examples of this include a burglary, fire or floods. If any of these hit, it's likely that most electronic devices you have will stop working. To help with this, you need off-site backups. These are backups that you store in a geographically far location. The further they are, the unlikelier it is that whatever would take out either your home or your off-site backups would affect the other one too. In my case, my off-site backups will be in Romania. That's 1200 km away, so if something like a meteor hit Europe and destroyed half of it, that would cause me to lose data, but at that point I have much bigger problems than that.</p> <p>You also need to make sure that your backups will still work. It's no use if you create a backup and a year later, when you try to recover it, you discover that actually there was some bit rot and your files are unreadable. There are various ways to protect against this, from checksumming files at the file system level to using hardware redundancy (RAID arrays most commonly).</p> <p>There is a large variation on what you can do to protect your data. There is always a trade-off between safety and how much it costs. In the following posts I will go into some more details about what I use for securing my own data, starting with the on-site backup to a Network Attached Storage.</p> Mon, 20 Feb 2017 21:23:00 GMT,2017-02-20:/2017/02/20/backing-up Winter sports <p><img alt="From up close, it looks just like the wallpaper from one of the Mac OS versions" src="" width="100%" style="max-width:600px"/></p> <p>I've been in Switzerland for almost two and half years now, but I haven't done the typical Swiss things (except eating Fondue). Last winter I was either not here or busy at work, so I avoided all winter sports. </p> <p>But this year two opportunities came up when I could go with colleagues to do skiing or snowboarding. So I finally tried both. I had a little skiing experience from two years ago, but that was it. </p> <p><img alt="I'm on a snowboard" src="" width="100%" style="max-width:600px"/></p> <p>One Friday at 8 PM a colleague asked me if I wanted to go to Laax for skiing the next day. I didn't really have any plans, so I said why not. He was going to teach his girlfriend how to snowboard, so I decided I would tag along with them. The others were skiers with more experience, so I didn't want to be the clunky wheel. </p> <p>I fell on my butt more times than I can imagine and it was sore for two days. But it was fuuun!. Towards the end of the day I could go about 100 m without falling!</p> <iframe width="560" height="315" src="" frameborder="0" allowfullscreen class="youtube"></iframe> <p>The week after that, my team had some visitors and during dinner, we decided we should all go skiing in Lenzerheide two days later. There was another beginner in this group, so we decided to take ski lessons together.</p> <p>Skiing went better. I remembered more than I expected since last year. I fell only about two or three times. One of which was standing in place. Whoops. Another one being the alternative to running into a fence. </p> <p><img alt="Some mountain peak around Lenzerheide" src="" width="100%" style="max-width:600px"/></p> <p>However, I found that I had much less control over my skis, especially with regards to speed. When you are on the snowboard, you are in an unstable equilibrium and you constantly have to balance. Because of this, as a beginner, you don't really get to a high speed, because as you go faster, it's harder to balance, so you fall before reaching a dangerous speed. It will hurt a bit, but it's unlikely to break any bones. But on the skis, you are in a stable equilibrium, so if you just do nothing as you are sliding down, you will pick up speed, with little risk of just toppling over. But then, when a turn comes, you won't be able to make it, so you'll either fall (at a much higher speed), hit the fence/tree or run off-piste. </p> <p><img alt="And off we go" src="" width="100%" style="max-width:600px"/></p> <p>Of course, this is all true only for beginners like me. When you get to more advanced stuff, it might change, but for now, I feel more comfortable on the snowboard. And hopefully I can go again in two weeks time!</p> Sun, 05 Feb 2017 20:17:00 GMT,2017-02-05:/2017/02/05/winter-sports Sous vide with Anova Precision Cooker <p><img alt="Frontal view of Anova Cooker" src="" width="100%" style="max-width:600px"/></p> <p>Last year I bought an Anova Sous Vide Cooker. The name is slightly misleading, because it's not generally used to cook in a vacuum, but for cooking at very precisely controlled temperatures.</p> <p><img alt="Side view of Anova Cooker" src="" width="100%" style="max-width:600px"/></p> <p>The advantage of using Anova is that you can cook various foods at temperatures below 100 degrees, for several hours. This way, you can avoid the degradation of certain proteins. For example, egg white starts to become solid at around 65 degrees, while the yolk at 70. If you cook the egg at just 65 for half an hour, you can get a perfect soft boiled egg, with really runny yolk, while the white is solid. </p> <p>Another advantage is that it's just easier to prepare the meat. You season it, bag it, put it in the water and you wait for a couple of hours. Because of this, it's easier to get consistent results every time. If you make a steak on the grill, the exact time you let it there matters, down to tens of seconds. When you are cooking it in the Anova for 3 hours, 5 minutes here or there are not that important.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Seasoning the chicken with salt, pepper and fine herbs " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Chicken in a bag. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The chicken cooking in the pot. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The end results: juicy, tender chicken. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/01/anova/chicken/chicken_seasoned.jpg", "title": "Seasoning the chicken with salt, pepper and fine herbs\n", "msrc": "/static/images/2017/01/anova/chicken/thumbs/chicken_seasoned.jpg", "w": 2136, "h": 1428}, {"src": "/static/images/2017/01/anova/chicken/chicken_bag.jpg", "title": "Chicken in a bag.\n", "msrc": "/static/images/2017/01/anova/chicken/thumbs/chicken_bag.jpg", "w": 2136, "h": 1428}, {"src": "/static/images/2017/01/anova/chicken/chicken_pot.jpg", "title": "The chicken cooking in the pot.\n", "msrc": "/static/images/2017/01/anova/chicken/thumbs/chicken_pot.jpg", "w": 2136, "h": 1428}, {"src": "/static/images/2017/01/anova/chicken/chicken_final.jpg", "title": "The end results: juicy, tender chicken.\n", "msrc": "/static/images/2017/01/anova/chicken/thumbs/chicken_final.jpg", "w": 2136, "h": 1428}]</script> </div> <p>One of the first things I cooked was chicken breast. You just season it well with salt, pepper, maybe some herbs or lemon, put it in a bag and then put it in water. Depending on the water temperature, you can choose to get a really soft meat, or more tender, or more stringy. The chicken basically cooks in it's own juices, so it has a lot more flavor at the end.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Salmon in the bag in the beginning. You coat it with virgin olive oil. Optionally, add some herbs. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Salmon after it cooked for 1 hour. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2017/01/anova/salmon/salmon_begin.jpg", "title": "Salmon in the bag in the beginning. You coat it with virgin olive oil. Optionally, add some herbs.\n", "msrc": "/static/images/2017/01/anova/salmon/thumbs/salmon_begin.jpg", "w": 2136, "h": 1428}, {"src": "/static/images/2017/01/anova/salmon/salmon_end.jpg", "title": "Salmon after it cooked for 1 hour. \n", "msrc": "/static/images/2017/01/anova/salmon/thumbs/salmon_end.jpg", "w": 2136, "h": 1428}, {"src": "/static/images/2017/01/anova/salmon/salmon_salad.jpg", "title": "Salmon with N\u00fcsslisalat (Lamb's Lettuce), Avocado and Parmesan. Delicious!\n", "msrc": "/static/images/2017/01/anova/salmon/thumbs/salmon_salad.jpg", "w": 2136, "h": 1428}]</script> </div> <p>My best dish to date was salmon. From the first try, it came out really great. Again, no effort, no checking whether it's done. You just look at the timer and then you eat. </p> <p>Now if only I ate at home more often...</p> Sat, 28 Jan 2017 21:36:00 GMT,2017-01-28:/2017/01/28/sous-vide-with-anova-precision-cooker New year, old goals <p><img alt="Same same, but different, but still same" src="" width="100%" style="max-width:600px"/></p> <p>My attempt a year ago to set public goals was quite successful. I achieved most of them and the average completion score was 0.7. I took a break in the second half of the year, but now I'm well rested and I want to start again.</p> <p>I learned some things that work and some that don't. For example, tracking number of books read is not too useful, at least not in Beeminder, but tracking number of minutes spent reading is much better. This way, if you are reading through a really thick book, you are not derailed as easily. Also, tracking productivity can be done really well with Pomodoros. They are small enough to be able to do them always, but big enough to have a meaningful impact on your work.</p> <p>I also have to decide what my priorities are better. Last year I had a very large range of goals, which had me spread out into many areas, and inevitably some fell through the cracks. </p> <p>For example, I realized that in the last trip I took to Romania, I took my camera out of my bag only once. When I was in Israel, half the photos I took there where with my phone. It doesn't really make sense for me to have a goal related to my camera. I didn't even touch my photography goal last year.</p> <p>I had the piano goal last year, but I realize that now I will have to drop it. I will keep taking piano lessons, but I will play it at home on a best effort basis. I have too many other things on my plate and unfortunately, playing the piano is towards the bottom of the list, because I think it's the least beneficial for me.</p> <p>The new goals for this year are:</p> <h4>Physical</h4> <dl> <dt>Get to 82 kg by June</dt> <dd>I got to 82 kg last January and I hovered around that area until June, but then I lost the will power to stop snacking, so I put back all of that weight. Since then, I have been reading up a bit about how the body interacts with proteins, carbohydrates and fats and learned a bit about how some diets work (other than caloric restrictions). When I was 82 kg, everybody was remarking how thin I was, so for now I don't want to go lower than that, but I would like to stay there. </dd> <dt>Exercise three times a week</dt> <dd>I don't want to set specific target speeds or weights, because I have a small shoulder injury and I don't know how much it will hinder me. But I still plan to do some sort of vigorous exercise three times a week. This includes running, swimming, weightlifting, play squash, etc.</dd> </dl> <h4>Mental</h4> <dl> <dt>Read 24 books in 2017/read 30 minutes every day</dt> <dd>I read 21.5 books last year. Again, in the second half of the year, I took it easier, so I'm hoping now I can overcome that and if I keep a constant pace of 30 minutes per day, I will make it.</dd> <dt>Write 3 blog posts per month</dt> <dd>I did 2.75 blog posts last year, so maybe I can do a bit better now.</dd> <dt>Write into my journal twice a week</dt> <dd>I managed to keep this habit for half a year and it's incredible. I look back at what I wrote when I was depressed and it's shocking to me how I was seeing the world back then. And at other times, it's a good reminder of all the blessings that I've had.</dd> <dt>Spend 1 hour per week studying German on my own</dt> <dd>I have been taking German classes for two years now and it's decent, but in order to progress I have to up my individual game. For this goal, the following count: Duolingo, Babbel, Anki, reading about German grammar, doing exercises from textbooks. Exception: when travelling.</dd> <dt>Do 4 20 minute Pomodoros every day</dt> <dd>In my new team, I have longer "compilation" times, so sometimes I cannot iterate faster than this. Exception is when I am travelling or on vacation.</dd> </dl> <h4>Spiritual</h4> <dl> <dt>Read 3 chapters from the Bible every day</dt> <dd>I believe this is achievable even when I travel. At home, I will try to read more when I have time.</dd> <dt>Memorize 1 Bible verse every week:</dt> <dd>This goal didn't get touched at all last year, so I'm starting it again, in a much smaller version. I have the apps set up to help me and I'm trying to do this together with my girlfriend, so I have an accountability partner for this.</dd> </dl> <p>My goals can be seen on <a href="">my Beeminder</a>.</p> Sat, 07 Jan 2017 11:06:00 GMT,2017-01-07:/2017/01/07/new-year-old-goals 2016 in review <p><em>Wow, this post is finally done on time! Yaaaay!</em></p> <p>This year was the first time I had a goal for writing on my blog, at least for the first half of the year. In January I set up <a href="">a goal</a> to write 3.5 blog posts per month, for the first half year and I stuck to it. In the second half of the year I took it easier, so I posted on average only twice a month. In total I posted 33 times, which is more than the year before, when I posted 30 times. </p> <p>The number of pageviews went down by 21%, from 46 thousand to 36 thousand :( The number of users is slightly up, by 5%, from 13 thousand to 13.6 thousand, but number of sessions keeps going down, from 21.5 thousand to 20 thousand. But, the average time spent on my site is up almost 10%, from 1:15 minutes to 1:23 minutes!</p> <p>My blog was viewed the most on September 19, after I posted the post saying <a href="">goodbye to Alida</a>, when my blog was viewed 1185 times :(. On average, I had 101 pageviews per day, with the summer months being the most quiet ones. </p> <p>My site got 50% faster, fully loading on average in 3 seconds, while in 2015 in loaded in 6 seconds. It seems that my time spent on optimizing my Nginx configuration was worth it. </p> <p>My most popular blog post is the same, the <a href="">neural networks one</a>. The second most popular one is about Alida. Then on the 8th place is my retrospective after <a href="">two years at Google</a>. Four more posts from this year made it to top 20: the one about setting goals, the <a href="">selfie timelapse one</a>, the one <a href="">about Yahoo Messenger</a> and the one <a href="">about evaluating my goals</a>.</p> <p>My top referrals are still from Facebook, with 2700 visits from there, while the second one is Twitter, with less than a tenth of that. There is also another web page with a neural network tutorial, which links to mine, and which brought in 1500 visitors. </p> <p>New features on the blog include running it from a container and adding a search page. I also try to keep an eye on performance and occasionally perform speed optimizations.</p> <p>I am happy with how my year in blogging has been and I hope you will still read me next year!</p> Sun, 01 Jan 2017 21:46:00 GMT,2017-01-01:/2017/01/01/2016-in-review Shalom from Israel <p><img alt="Pray for the Peace of Jerusalem" src="" width="100%" style="max-width:600px"/></p> <p>Three jeeps, filled with mostly young and idealistic Westerners and driven by former Special Forces members, are going along the mine fields between Syria and Israel. They arrive to an abandoned Syrian hospital, with some soldiers in front of it. They go up to the rooftop, through the crumbling hospital, carefully going up staircases that have been bombed. Once they get up, their tour guide says "See that building 300 meters away? There's an Al-Qaeda sniper looking at you from there! Don't worry, if he wanted you dead, he'd have shot you a long time ago.".</p> <p><img alt="Abandoned Syrian hospital" src="" width="100%" style="max-width:600px"/></p> <p>That was just a short part of my trip to Israel. I had wanted to go for quite some time, to see "The Holy Land" and all the places where much of the Bible happened. In July, I found out that some friends from New York were going, so I pretended to be a New Yorker and I joined them. It was a really fun trip, both because of everything I saw and did, but also because of the opportunity to have lots of fellowship with my dear brothers and sisters from New York, Portland, Seattle and Jerusalem. </p> <figure> <p><img alt="View from the Tel Aviv office of Google" src="" width="100%" style="max-width:600px"/> <figcaption>View from the Tel Aviv office of Google</figcaption></p> </figure> <p>The adventures started at the airport. I made the mistake of flying El Al, the safest airline in the world. They achieve this by having their own custom security checks. When you go to the baggage drop off, somebody starts asking you questions about your luggage (both standard ones like "Who packed your bags?" and ones like "Are you taking anything to the Google office in Tel Aviv?"). Then you get a mark on your boarding pass. I got a red sign, which I'm guessing made me one of "The Marked" ones. I passed through normal security, with plenty of time to spare. I started reading a book. After about one hour, I decided to go to their special security check. It involved talking to another guy, who decided to rummage through my backpack and check all the pockets for traces of explosives. He asked me in Romanian "Ce faci?". And then he proceeded to lock my backpack in a "safe place". I was allowed to keep my book and my headphones and that's it. Yay. And then another hour of waiting. I could pick up my bag right before boarding, when they checked me again. There were only two bags that were treated like this :( But at least I had hummus on the plane!</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Herod" s amphitheather ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Star Trek is out, Time Trek is in :D " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/cesarea/P1140835.JPG", "title": "Herod's Amphitheather\n", "msrc": "/static/images/2016/12/israel/cesarea/thumbs/P1140835.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/cesarea/P1140853.JPG", "title": "Star Trek is out, Time Trek is in :D\n", "msrc": "/static/images/2016/12/israel/cesarea/thumbs/P1140853.JPG", "w": 4272, "h": 2856}]</script> </div> <p>But I arrived well to Tel Aviv. My bags were delayed by quite a bit, but it was fine, because in the meantime some of my friends arrived and we went together to Jerusalem in a sherut, a sort of taxi/van service. </p> <p>When our bus arrived on Saturday, we met Amitai, our guide, and George, our driver, and then we went up North. We quickly visited Caesarea, built by Herod in 20 BCE. It has the only archeological evidence for Pontius Pilatus, in the form of a stone with his name enscribed on it.</p> <p>Then we had lunch at Uriburi, a world famous sea food restaurant. I normally don't like fish very much, but I have to say, this was really good. </p> <p><img alt="View from Mount Carmel" src="" width="100%" style="max-width:600px"/></p> <p>In the afternoon we went up Mount Carmel, where Elijah obtained a great victory over the prophets of Baal (<a href=";version=NCV">1 Kings 18</a>). From there you can see very far in the distance and you can see part of Via Maris, the main road between Damascus and Egypt. Because of this, lots of armies had gone through the Valley of Jezreel, looking to conquer other kingdoms and in the future even more will gather there, at Megido, for Armaghedon.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Buggy riding in the desert " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Safety first " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The quiet desert " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/buggy/IMG_2826.JPG", "title": "Buggy riding in the desert\n", "msrc": "/static/images/2016/12/israel/buggy/thumbs/IMG_2826.JPG", "w": 3024, "h": 4032}, {"src": "/static/images/2016/12/israel/buggy/IMG_2823.jpg", "title": "Safety first\n", "msrc": "/static/images/2016/12/israel/buggy/thumbs/IMG_2823.jpg", "w": 2576, "h": 1932}, {"src": "/static/images/2016/12/israel/buggy/IMG_2839.jpg", "title": "The quiet desert\n", "msrc": "/static/images/2016/12/israel/buggy/thumbs/IMG_2839.jpg", "w": 12304, "h": 3824}]</script> </div> <p>We spent three nights on the shore of the Sea of Galilee. It was a nice hostel (except for the really loud kids who went to sleep way too late), 100 meters away from the beach, so I usually went swimming every night. Lokka tried to walk on water, with various amounts of success.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Swimming out in the deep " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The Galilee at dusk " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Lokka walking on water " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/galilee/IMG_2313.JPG", "title": "Swimming out in the deep\n", "msrc": "/static/images/2016/12/israel/galilee/thumbs/IMG_2313.JPG", "w": 4032, "h": 2884}, {"src": "/static/images/2016/12/israel/galilee/P1140926.JPG", "title": "The Galilee at dusk\n", "msrc": "/static/images/2016/12/israel/galilee/thumbs/P1140926.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/galilee/P1140949.JPG", "title": "Lokka walking on water\n", "msrc": "/static/images/2016/12/israel/galilee/thumbs/P1140949.JPG", "w": 4272, "h": 2856}]</script> </div> <p>After going down the Mount of Beatitudes, we did one of the chillest things on our trip: going with an electric boat on the Sea of Galilee. As we were going out, the captain started some Hillsong songs in the background. The sun was shining, it was nice warm, the water was perfectly calm. I couldn't help but think that 2000 years ago, my Master, Jesus, sailed here, walked on water here, and the disciples were with Him, listening to Him speaking, not just to songs about Him. And then we jumped into water and swam around. And then the captain put on the theme fork Jaws. Epic trolling. xD</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Peter" s mother-in-laws house in capernaum ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Our group in the Capernaum synagogue " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/capernaum/P1150002.JPG", "title": "Peter's mother-in-laws house in Capernaum\n", "msrc": "/static/images/2016/12/israel/capernaum/thumbs/P1150002.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/capernaum/P1150024.JPG", "title": "Our group in the Capernaum synagogue\n", "msrc": "/static/images/2016/12/israel/capernaum/thumbs/P1150024.JPG", "w": 4272, "h": 2856}]</script> </div> <p>We did a quick run down to Capernaum, to visit the old Synagogue and then we crossed the street to get to the supposed house of Peter's mother in law. </p> <p><img alt="Jordan river" src="" width="100%" style="max-width:600px"/></p> <p>We went to see the Jordan river. That was a big... disappointment. In some places it was soooo narrow you could jump over it. And we walked through it, in a place of pain, because of sharp rocks, that looked like the Amazonian jungle. But at least we picked some oranges straight from a tree, so we had that going for us. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Our guide Amitai the Dreamer " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Crossroads " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="UN soldiers looking towards Syria " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/bental/P1150142.JPG", "title": "Our guide Amitai the Dreamer\n", "msrc": "/static/images/2016/12/israel/bental/thumbs/P1150142.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2016/12/israel/bental/IMG_2419.jpg", "title": "Crossroads\n", "msrc": "/static/images/2016/12/israel/bental/thumbs/IMG_2419.jpg", "w": 3024, "h": 4032}, {"src": "/static/images/2016/12/israel/bental/bental.JPG", "title": "UN soldiers looking towards Syria\n", "msrc": "/static/images/2016/12/israel/bental/thumbs/bental.JPG", "w": 4272, "h": 2856}]</script> </div> <p>The next day, after the jeep ride, we had coffee at Coffee Anan (a pun on both the UN leader and the Hebrew for "Coffee of the Clouds"), the highest restaurant in Israel, on top of Mount Bental. There is a small bunker there, which was last used in the Yom Kippur war. Now it has a small UN sentinel there. </p> <p><img alt="Temple of Pan in Banias" src="" width="100%" style="max-width:600px"/></p> <p>Then we went to Cesarea Philippi, aka Banias. This was where Jesus said "And upon this rock I shall build my Church". He said this standing in front of a pagan temple dedicated to Pan, indicating that He will overcome even that. It was the first place where I learn something completely new and eye opening. </p> <p><img alt="Odem Mountain Winery" src="" width="100%" style="max-width:600px"/></p> <p>In the afternoon we went to Odem Mountain Winery, a Kosher winery that has won several awards for the wines that they make. We went for a wine tasting session. The cherry wine was reaaaally good, the Chardonay was ok, but I really hated the Cabernet Sauvignon. And I learned that Rose wine is made out of red grapes, without the peels. </p> <p><img alt="Dead Sea Mud" src="" width="100%" style="max-width:600px"/></p> <p>On Tuesday we went to the Dead Sea. That was sooo much fun, even if in the beginning it was counterintuitive. But after you got the hang of it, it was relaxing. You could sleep better than in a hammock. The waves are gently rocking you. Just don't get water in your eyes. Then the wailing and gnashing of teeth begins, because it's the only thing you can do. If you try to put your fingers to your eyes, you just make it worse, so you have to wait until you cry out all the salt. Also, the mud there is said to be good for... something, so we all covered ourselves in mud. </p> <p><img alt="Beduin camp" src="" width="100%" style="max-width:600px"/></p> <p>We spent that night glemping in a beduin camp. What is glemping you ask? Glamour camping. Aka: you go camping, but you have full amenities, like at home, except you kinda sleep in some sort of a fancy tent. In our case, we were even upgraded to two person rooms, with AC units and TVs. But hey, there were peacocks walking in front of our windows. We've got that going on for us. The beduin tea was really good, but the coffee was crazy strong and horrible, even for the coffee lovers of the group, but everyone drank it, because we were afraid not to offend our hosts. </p> <p><img alt="Camel ride" src="" width="100%" style="max-width:600px"/></p> <p>Of course, no beduin trip would be complete without a camel ride. Because we were an odd number, I got to ride alone on a camel. It was fun. It had a nice, slow sway. If you could relax, you could enjoy the rythm, and imagine some nice hip hop music as a backdrop. Getting on and off the camel was a bit more interesting. First the camel straigthens up comletely the front legs and only then does it lift the hind legs, so for a short while, you are sitting on a very tilted surface.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Roman war machine " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="New Yorkers assaulting Massada " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The surroundings of Massada " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/masada/P1150297.JPG", "title": "Roman war machine\n", "msrc": "/static/images/2016/12/israel/masada/thumbs/P1150297.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/masada/P1150318.JPG", "title": "New Yorkers assaulting Massada\n", "msrc": "/static/images/2016/12/israel/masada/thumbs/P1150318.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/masada/P1150332.JPG", "title": "The surroundings of Massada\n", "msrc": "/static/images/2016/12/israel/masada/thumbs/P1150332.JPG", "w": 4272, "h": 2856}]</script> </div> <p>Next up: Masada, the old Roman fortress built by Herod. Man, this homie built cribs for himself everywhere. This was a 45 minute climb, while it was 30 degrees outside. And it's basically a barren desert mountain, with some ruins. If you yell on one side of the mountain, you hear a nice echo back. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="David" s waterfall ' src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The discreete entrance to Ein Ghedi " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/ein_ghedi/P1150397.JPG", "title": "David's Waterfall\n", "msrc": "/static/images/2016/12/israel/ein_ghedi/thumbs/P1150397.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2016/12/israel/ein_ghedi/P1150441.JPG", "title": "The discreete entrance to Ein Ghedi\n", "msrc": "/static/images/2016/12/israel/ein_ghedi/thumbs/P1150441.JPG", "w": 2856, "h": 4272}]</script> </div> <p>Then we refreshed at water springs of Ein-Ghedi, where David wrote some of his Psalms and where he hid from Saul. It's an incredibly relaxing place. It's an oasis in the desert. In a big mountain, you suddenly see a valley with some bushes around it. As you go closer, you find a lot of vegetation, animals and many springs. We stayed there until closing time, reading, relaxing, talking and just enjoying the atmosphere. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Old city at night " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Rooftops of the old city " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="View from where we stayed on the first night " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/jerusalem/IMG_2948.JPG", "title": "Old city at night\n", "msrc": "/static/images/2016/12/israel/jerusalem/thumbs/IMG_2948.JPG", "w": 3024, "h": 4032}, {"src": "/static/images/2016/12/israel/jerusalem/IMG_2949.jpg", "title": "Rooftops of the old city\n", "msrc": "/static/images/2016/12/israel/jerusalem/thumbs/IMG_2949.jpg", "w": 3024, "h": 4032}, {"src": "/static/images/2016/12/israel/jerusalem/P1140744.JPG", "title": "View from where we stayed on the first night\n", "msrc": "/static/images/2016/12/israel/jerusalem/thumbs/P1140744.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/jerusalem/P1150526.JPG", "title": "That's a biiig flag\n", "msrc": "/static/images/2016/12/israel/jerusalem/thumbs/P1150526.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2016/12/israel/jerusalem/P1150549.JPG", "title": "View from Caiafas's house. Ghetsimane is on the other side of the valley.\n", "msrc": "/static/images/2016/12/israel/jerusalem/thumbs/P1150549.JPG", "w": 4272, "h": 2856}]</script> </div> <p>And then we went to the Holy City, Jerusalem. First impression: it's noisy and full of people, especially in the souk and in the old city. Second impression: it's hilly. Like really hilly. I can't imagine how people got around before they had cars. You go up and down, up and down all the time. We visited a lot of stuff there, but I just want to point out a couple of highlights.</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Umbrellas in the air. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Spices in the souk " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Sweets. Oh the sweets. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/souk/P1140765.JPG", "title": "Umbrellas in the air.\n", "msrc": "/static/images/2016/12/israel/souk/thumbs/P1140765.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2016/12/israel/souk/IMG_2232.jpg", "title": "Spices in the souk\n", "msrc": "/static/images/2016/12/israel/souk/thumbs/IMG_2232.jpg", "w": 4032, "h": 3024}, {"src": "/static/images/2016/12/israel/souk/P1140760.JPG", "title": "Sweets. Oh the sweets.\n", "msrc": "/static/images/2016/12/israel/souk/thumbs/P1140760.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/souk/P1140790.JPG", "title": "Hustling and bustling in the souk.\n", "msrc": "/static/images/2016/12/israel/souk/thumbs/P1140790.JPG", "w": 4272, "h": 2856}]</script> </div> <p>In the souk we bought all kinds of sweets and exotic fruits. Really, really sweet ones. Yummy. It's really cool that you can try stuff before you buy. It's also a really good way for them to get you to buy their stuff. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="The Jewish quarter in the Old City " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The Muslim quarter in the Old City " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Heh. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/shops/IMG_2943.JPG", "title": "The Jewish quarter in the Old City\n", "msrc": "/static/images/2016/12/israel/shops/thumbs/IMG_2943.JPG", "w": 3024, "h": 4032}, {"src": "/static/images/2016/12/israel/shops/IMG_2985.JPG", "title": "The Muslim quarter in the Old City\n", "msrc": "/static/images/2016/12/israel/shops/thumbs/IMG_2985.JPG", "w": 4032, "h": 3024}, {"src": "/static/images/2016/12/israel/shops/IMG_2988.JPG", "title": "Heh. \n", "msrc": "/static/images/2016/12/israel/shops/thumbs/IMG_2988.JPG", "w": 4032, "h": 3024}, {"src": "/static/images/2016/12/israel/shops/IMG_2996.jpg", "title": "I wonder if the food comes on a flying rug\n", "msrc": "/static/images/2016/12/israel/shops/thumbs/IMG_2996.jpg", "w": 4032, "h": 3024}]</script> </div> <p>The place which got me to understand the topology of the city was when we went to the place where Peter betrayed the Lord Jesus and then we saw the supposed Upper Room, nearby, then Gethsemane, across the valley from there, and then Pontius Pilatus' hall on the other side of the city. So during that night, Jesus walked a loooooot. Also while being beaten and so on. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Future excavations under the Western Wall " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Supposed place of Golgotha (if you squint hard, you might see a skull) " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Western Wall " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/jerusalem_relics/IMG_2673.JPG", "title": "Future excavations under the Western Wall\n", "msrc": "/static/images/2016/12/israel/jerusalem_relics/thumbs/IMG_2673.JPG", "w": 3024, "h": 4032}, {"src": "/static/images/2016/12/israel/jerusalem_relics/IMG_2897.JPG", "title": "Supposed place of Golgotha (if you squint hard, you might see a skull)\n", "msrc": "/static/images/2016/12/israel/jerusalem_relics/thumbs/IMG_2897.JPG", "w": 4032, "h": 3024}, {"src": "/static/images/2016/12/israel/jerusalem_relics/P1150475.JPG", "title": "Western Wall\n", "msrc": "/static/images/2016/12/israel/jerusalem_relics/thumbs/P1150475.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/jerusalem_relics/P1150544.JPG", "title": "David's Statue\n", "msrc": "/static/images/2016/12/israel/jerusalem_relics/thumbs/P1150544.JPG", "w": 2856, "h": 4272}]</script> </div> <p>The other place was at the Western (Wailing) Wall. It's the only place that still remains from Herod's temple. Two kinds of people stood out in that area: those for whom this was just a fun thing, like kids having their bar-mitzvahs and dancing their butts off, for whom this is nothing more than a tradition, something you do to integrate with your family and friends. The other people were people who actually respect the Torah and they do their best to follow what it says, but they completely miss the person to whom it points: Jesus. So sad. :(</p> <div class="gallery clearfix" style="max-width:600px"> <img title="Cute metal sculpture. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="I too like to live dangerously " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Another kind of watch face " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/misc/P1150075.JPG", "title": "Cute metal sculpture.\n", "msrc": "/static/images/2016/12/israel/misc/thumbs/P1150075.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2016/12/israel/misc/mines.JPG", "title": "I too like to live dangerously\n", "msrc": "/static/images/2016/12/israel/misc/thumbs/mines.JPG", "w": 4032, "h": 3024}, {"src": "/static/images/2016/12/israel/misc/P1140788.JPG", "title": "Another kind of watch face\n", "msrc": "/static/images/2016/12/israel/misc/thumbs/P1140788.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/misc/P1150565.JPG", "title": "Funny statues in Joppa\n", "msrc": "/static/images/2016/12/israel/misc/thumbs/P1150565.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/12/israel/misc/rolladin.jpg", "title": "Rolladins :X:X\n", "msrc": "/static/images/2016/12/israel/misc/thumbs/rolladin.jpg", "w": 3024, "h": 4032}]</script> </div> <p>Underneath the Western Wall there are several layers of history. The first layer is what the Ottomans built there. They actually raised the whole city, so that access to the Temple Mount would be easier. Under that is what Herod did, who expanded the top of mountain, so that he could build a bigger temple. Under that are remnants from David's city. And you just look at all those 500 tonne stones and the 533 m long tunnel, built by Hezekiah, carved out of stone, and wonder how on Earth did they ever do that, without all the modern equipment that we have today. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Warning sign when entering Betlehem " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Modern Statue in Betlehem, with an Internet address " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/12/israel/betlehem/betlehem.JPG", "title": "Warning sign when entering Betlehem\n", "msrc": "/static/images/2016/12/israel/betlehem/thumbs/betlehem.JPG", "w": 3024, "h": 4032}, {"src": "/static/images/2016/12/israel/betlehem/P1150552.JPG", "title": "Modern Statue in Betlehem, with an Internet address\n", "msrc": "/static/images/2016/12/israel/betlehem/thumbs/P1150552.JPG", "w": 2856, "h": 4272}]</script> </div> <p>We also went to Betlehem, which is in the West Bank, under Arab control. It has several "scary" warnings on entry, but it doesn't have too much to see unfortunately.</p> <p><img alt="Tel Aviv beach" src="" width="100%" style="max-width:600px"/></p> <p>On our last day we went to Joppa and Tel Aviv, where we spent the day on the beach and then we said sad goodbyes to each other :(</p> <p><img alt="Simon the Tanner's house" src="" width="100%" style="max-width:600px"/></p> <p>I really miss the NYC crew (and the people from Portland and Seattle)! It was a really blessed, fun time together and I hope I can see them again soon!</p> Thu, 22 Dec 2016 19:00:00 GMT,2016-12-22:/2016/12/22/shalom-from-israel Noh hai la vot! <p><img alt="Me in a t-shirt with Che Olos" src="" width="100%" style="max-width:600px"/> <em>On Sunday there are parliamentary elections in Romania, so I'm doing my civic duty of encouraging people to go and vote.</em></p> <p>După cum probabil ați auzit, mâine, 11 decembrie, sunt alegeri pentru deputați și senatori. Eu o să merg mâine la vot în Berna, cum am fost și acum doi ani, la alegerile prezidențiale. Și vă rog și pe voi să mergeți să votați. </p> <p>Ieșiți la vot, pentru că încet, încet, parcă lucrurile în România se schimbă. Și până acuma toată lumea știa că se fac mișmașuri peste tot, dar în ultimii doi ani și DNA a aflat și a și arestat oameni pentru aceasta. Deci, se poate schimbare. </p> <p>Votează, ca să poată să continue Cioloș ce a început. Dacă într-un an a reușit următoarele:</p> <ul> <li>să reducă o parte din birocrația existentă</li> <li>să înființeze concursul pentru directorii de școli</li> <li>a crescut absorbția de fonduri europene de la 56% la 78% (ceea ce înseamnă vreo 3 miliarde de euro)</li> <li>a creat programul <a href="">Gov ITHUB</a>, care a pus online o mulțime de date și a crescut transparența statului</li> <li><a href="">etc.</a></li> </ul> <p>Atunci oare în 4 ani ce ar mai putea face? Mai ales dacă ar avea și suportul unei majorități parlamentare. </p> <p>Votează, ca să nu mori tu sau copilul tău într-un spital din România. Ca să nu scape Președintele Comisiei de Malpraxis pe ortopedie pediatrică, care a nenorocit zeci de copii cu operațiile lui experimentale și neaprobate. Citește articolul scris de <a href="">Casa Jurnalistului</a>, până la capăt! Chiar vrei să scape tipul ăsta? Sau vrei să te opereze într-o zi un profesor care nu dă niciodată pe la cursuri și nu știe să se spele pe mâini cum trebuie <a href="">înainte de operație</a>? DNA are acuma putere și e pe val, de la toate arestările pe care le-a făcut deja. Dacă iese PSD la putere, pot să distrugă tot, și majoritatea politicienilor corupți sigur vor scăpa, dar poate și alți doctori ca aceștia.</p> <p>Votează, pentru că PSD-ul are un număr relativ constant de oameni care îi votează. Dacă merg mai mulți la vot, procentajul obținut de PSD va fi mai mic. Așa că votează, pentru că votul tău chiar contează!</p> <p>Și, pentru cititorii mei creștini, mai am un argument. În 1 Timotei 2 scrie: „Înainte de toate, te îndemn să faci cereri, rugăciuni, mijlociri şi mulţumiri pentru toţi oamenii, pentru împăraţi şi pentru toţi cei ce sunt în poziţii înalte, ca să putem duce o viaţă paşnică şi liniştită, cu toată evlavia şi demnitatea.”. Deci să te rogi pentru Cioloș, Johannis, Dragnea, cine or fi conducătorii. Iar în Iacov 2 zice: „ Dacă un frate sau o soră sunt goi şi lipsiţi de hrana zilnică, iar unul dintre voi le spune: „Duceţi-vă în pace, încălziţi-vă şi săturaţi-vă!“, însă nu le dă cele necesare trupului, ce folos?”. Deci nu doar să te rogi, ci și să faci ce poți. Cum România e o democrație, poți să mergi să votezi. Așa că du-te și votează!</p> Fri, 09 Dec 2016 20:50:00 GMT,2016-12-09:/2016/12/09/noh-hai-la-vot Going places... <p><img alt="Old view" src="" width="100%" style="max-width:600px"/> ...but not too far. </p> <p>Last month I exchanged the view that can be seen in the above image, for this one:</p> <p><img alt="New view" src="" width="100%" style="max-width:600px"/></p> <p>I moved from Langnau am Albis, where I have lived for two years, to Wiedikon, a district in Zürich. The old place has been officially the place where I've lived the second most in my life :| I'll miss it, I had lots of good memories there.</p> <p>But I got bored of the long commute (half an hour by train), so I moved to a place 8 minutes walking from the office. And the week after I signed the contract, I found out that my team is moving to an office 20 minutes away on foot :)) But it's still fine, I'm in the city, there's a lot more stuff around me, while I still live on a really quiet street. </p> <p>The new apartment is smaller, so I will have to adopt a bit of a more minimalist approach and get rid of some things. I'm looking forward to living here (once I get rid of all the boxes and put everything in it's place) and to entertaining more guests here (hopefully I'll have more than in the other place).</p> Sun, 13 Nov 2016 14:57:00 GMT,2016-11-13:/2016/11/13/going-places Maltalavista <figure> <p><img alt="Malta" src="" width="100%" style="max-width:600px"/> <figcaption>View from the hotel</figcaption></p> </figure> <p>Last week I was in Malta, on an offsite with the new (extended) team. It was possibly even better than in <a href="">Nice</a>. </p> <p>Because I switched to this team "late", I couldn't find flights together with the rest of the team, so I went a day early, but I stayed at the same hotel. Several other people also came early, including the admins who organized it, so I wasn't bored there. Also, turns out that befriending the admins is quite useful! And they are super nice as well!</p> <figure> <p><img alt="Boat rides" src="" width="100%" style="max-width:600px"/> <figcaption>Why ride a boat when you can ride a banana?</figcaption></p> </figure> <p>It was hot in Malta. During the day it went up to 28 degrees. It's nice to be able to complain about hot weather in October. It warms up my bones really well. </p> <p><img alt="Google ad" src="" width="100%" style="max-width:600px"/></p> <p>There was a very interesting ad close to the hotel were everyone was saying. There were lots of debates whether it was targeted at us or if it was just a generic ad. But it was a really clever one for sure and next time I'll go to Malta I will call eCabs!</p> <p>Malta is an island, so it's surrounded by sea. And because it was really warm, you could go swimming. There was a beach close to our hotel. It wasn't that great, the sand was quite coarse, but it was a beach. So I swam for the first time in my life in the sea! Those swimming lessons I've been taking for the last one year have finally been paying off! \:D/</p> <p><img alt="Beach" src="" width="100%" style="max-width:600px"/></p> <p>The next day I did something even more crazy. Angela and Simo, two colleagues of mine, wanted to go <a href="">stand-up paddling</a> and I allowed myself to be fooled into joining them. It will be fun they said, go standup paddling they said. Bad, but completely predictable news: I fell into the water more times than I can count. Good news: I didn't panic and I always managed to recover on my own. The swimming lessons are really paying off! And it was fun in the end. So thanks Angela for showing me how to do SUP! But I was completely exhausted and I had several bruises on me from falling on the board. </p> <p>During the free time on the first day we went to play laser tag. Again, for the first time in my life. This was really fun as well! In one round I came out the 4th or 5th, out of 18-19 people! \:D/ I should really do this more often! Also, I should go to do paintball as well. </p> <iframe width="560" height="315" src="" frameborder="0" allowfullscreen class="youtube"></iframe> <p>For dinner, we went to an old mill to have traditional Maltese food. They also showed us some folk Maltese dances and I was surprised to see that some of them have moves similar to Hungarian folk dances! The best part was when they invited some of my colleagues to join in the dances and spin around. Some of them knew what they were doing, others were... clueless :)))</p> <p><img alt="Old mill" src="" width="100%" style="max-width:600px"/></p> <p>On the second day, we went by speedboat to the island of Gozo. The experience was like on a lowrider, except with water splashing on you. Even though I was sitting in the middle, I still managed to get a large part of a wave on me, from all the bouncing around. </p> <figure> <p><img alt="Speed boat racing" src="" width="100%" style="max-width:600px"/> <figcaption>Speedboat racing</figcaption></p> </figure> <p>On Gozo, we had to do a treasure hunt in a jeep. We were in teams of 5, given a list of instructions and we had to look for clues, take pictures and in general have fun. It was a quite old jeep, the roads were quite bad, the streets were narrow and I had the impression that I was Indiana Jones looking for lost treasures and I was missing only the whip and the wide brimmed hat. Extra fun because GPS and Malta are not good friends, so we took the wrong turn several times. It didn't happen to my team, but another team went on a very narrow one way street, from where it was quite difficult to get out! </p> <div class="gallery clearfix" style="max-width:600px"> <img title="St. Joseph Parish Church in Qala. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="Caves in Gozo. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="The beautiful city of Mgarr. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/10/malta/gozo/IMG_2010.jpg", "title": "St. Joseph Parish Church in Qala.\n", "msrc": "/static/images/2016/10/malta/gozo/thumbs/IMG_2010.jpg", "w": 3024, "h": 4032}, {"src": "/static/images/2016/10/malta/gozo/IMG_2001.jpg", "title": "Caves in Gozo.\n", "msrc": "/static/images/2016/10/malta/gozo/thumbs/IMG_2001.jpg", "w": 4032, "h": 3024}, {"src": "/static/images/2016/10/malta/gozo/IMG_2004.jpg", "title": "The beautiful city of Mgarr.\n", "msrc": "/static/images/2016/10/malta/gozo/thumbs/IMG_2004.jpg", "w": 4032, "h": 3024}, {"src": "/static/images/2016/10/malta/gozo/IMG_2015.jpg", "title": "", "msrc": "/static/images/2016/10/malta/gozo/thumbs/IMG_2015.jpg", "w": 4032, "h": 3024}, {"src": "/static/images/2016/10/malta/gozo/IMG_2029.jpg", "title": "Really nice water.\n", "msrc": "/static/images/2016/10/malta/gozo/thumbs/IMG_2029.jpg", "w": 4032, "h": 3024}, {"src": "/static/images/2016/10/malta/gozo/IMG_2033.jpg", "title": "Salt quarry.\n", "msrc": "/static/images/2016/10/malta/gozo/thumbs/IMG_2033.jpg", "w": 3024, "h": 4032}]</script> </div> <p>We did our best to find all the clues, until the point where we got to a beach. Pretty much all the teams decided to take a shorter or longer break there and just go for a nice swim and enjoy the red sands of Ramla beach. </p> <p>The next pit stop was getting lunch. Our team favored our bellies more than winning (the winning team didn't). Everyone was astonished by how cheap food is in Malta! You could get two huuuge ice cream globes for 3 euros!! And a slice (of admittedly meh) pizza for 2.5 euros! Yes, I know I come from Zurich, but still!</p> <p>On the long bus rides and at night we played a lot more of the game I learned in Nice: We didn't playtest this at all. This time I brought the game with me and it turned out to be quite popular. We also played a bit of Werewolves, with the Eros extension. And I found out as I was burning on the stake that the two Nicks were lovers and one of them betrayed me!</p> <p>As we were going to dinner on the second night, right in front of our hotel, two cars had an accident and they refused to move until the police came. Because the street was one way and narrow, the bus couldn't go any other way, so we had to wait there for about one hour. The sales of nearby shops skyrocketed, as a lot of hungry Googlers went there to get something to survive until we get to dinner. </p> <div class="gallery clearfix" style="max-width:600px"> <img title="Hilly streets, that remind me of San Francisco. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="View from the Saluting Battery. " src="" style="display:block" width="100%" style="max-width:600px"/> <img title="I guess this Aladin is a more honest man. " src="" style="display:block" width="100%" style="max-width:600px"/> <script type="application/json">[{"src": "/static/images/2016/10/malta/valletta/P1140651.JPG", "title": "Hilly streets, that remind me of San Francisco.\n", "msrc": "/static/images/2016/10/malta/valletta/thumbs/P1140651.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2016/10/malta/valletta/P1140647.JPG", "title": "View from the Saluting Battery.\n", "msrc": "/static/images/2016/10/malta/valletta/thumbs/P1140647.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/10/malta/valletta/P1140667.JPG", "title": "I guess this Aladin is a more honest man. \n", "msrc": "/static/images/2016/10/malta/valletta/thumbs/P1140667.JPG", "w": 4272, "h": 2856}, {"src": "/static/images/2016/10/malta/valletta/P1140665.JPG", "title": "Royal guard.\n", "msrc": "/static/images/2016/10/malta/valletta/thumbs/P1140665.JPG", "w": 2856, "h": 4272}, {"src": "/static/images/2016/10/malta/valletta/P1140671.JPG", "title": "Saint Elmo Breakwater (I'm Elmo and I know it \\:D/)\n", "msrc": "/static/images/2016/10/malta/valletta/thumbs/P1140671.JPG", "w": 4272, "h": 2856}]</script> </div> <p>On the last day, we went on a treasure hunt on foot in Valletta (the capital of Malta). This one included several challenges such as taking pictures with a stranger, giving a stranger a hug, spelling out letters with our bodies, asking someone for a piece of their food and proposing to someone. Because it was much hotter (and it was after some of my colleagues were out partying all night), our enthusiasm was much lower, so we did even fewer of the required items. </p> <p>We ended the day on chilling in the harbor, too drained to be able to do anything. Close to it was a building which we discovered was just a facade. It had a nice, old looking exterior, but in the inside there was just empty space (not even walls, just the sky above our head). </p> <figure> <p><img alt="Facade building" src="" width="100%" style="max-width:600px"/> <figcaption>The inside of the facade building</figcaption></p> </figure> <p>At the airport, I had several epiphanies. First, KFC in Malta is just awful!!!!! Horrible! Ugh. I couldn't even finish a 5 crispy strips menu! And they didn't have the amazing Glenn sauce! As the Swiss say, schrecklich! The other one was the question "How does checkin work?". Half my colleagues managed to do online checkin, but some only after repeatedly mashing the checkin button, the other half, including me, had to checking at the airport. Complete mystery how airline companies systems work. </p> <figure> <p><img alt="Cat feeding station" src="" width="100%" style="max-width:600px"/> <figcaption>Cats too should have a place to enjoy a coffee, right?</figcaption></p> </figure> <p>Two and a half hours later, the plane half full with Googlers landed in Zurich and our awesome offsite in Malta ended! It was a really good time and a nice relaxation!</p> Mon, 24 Oct 2016 20:27:00 GMT,2016-10-24:/2016/10/24/maltalavista Data and Goliath <p><img alt="Data and Goliath" src="" width="100%" style="max-width:600px"/></p> <p>Bruce Schneier is a well known American security researcher, who has written several books about this topic. Data and Goliath is his latest book about it. I bought it last year, but I only got around to reading it last month (one more win for the reading goal for the year \:D/). First observation: while the book is thick, with 383 pages, a third of it are notes, so it's not that long actually. </p> <p>While I've heard about various privacy issues and about the mass surveillance revealed by Edward Snowden, I never really did anything about it. I had an adblocker installed, but that was just because I was annoyed by ads and they slowed down browsing the Internet, but nothing else. This book was a coherent presentation of what both corporations and governments do, what effects it has on us, and why it's really, really, really, really bad. </p> <p>I don't want to go talk too much about what the book says about existing surveillance and what is going, except to call out the fact that the existing large scale governmental tracking is not effective against terrorists. The haystack is too big and the needles look more like twigs, so it doesn't help at all. Good old investigation work is what catches the bad guys. Mass surveillance is useful for tracking people who protest (legitimately) against the government. Also, corporate surveillance comes in many subtle forms and is used to build up big profiles about people, which are then often sold by data brokers, or hacked. Again, not really worth the benefits in most cases. </p> <p>So what can the average Joe like me do? There are several things, ranging from political to technical. First off, lobby, propose, discuss, raise awareness, vote about this. If enough people know about this and are worried about it, democracy can do it's thing. Hopefully it's not 1984 already. </p> <p>On the more technical side, there are some simple solutions. Use <a href="">HTTPS Everywhere</a>, which forces your browser to use encrypted connections whenever possible. It's a first, simple step towards avoiding dragnet surveillance. If it's encrypted, it can't be read in a straightforward way. Use either <a href="">Ghostery</a>, <a href="">Privacy Badger</a>(I use this one) or <a href="">Disconnect</a>. These extensions do as much as possible to disable tracking. Most importantly, they disable the automatic loading of social network share buttons, which would automatically report back what pages you browse, even if you don't click on them. </p> <p>Now, on to more complicated ones. You can do obfuscation, which means doing random stuff do create bogus data on your profile. Things like searching for TV models, even though you don't want to buy one, clicking on random search results, adding as friends people you don't know, creating fake profiles, interchanging store loyalty cards with friends, not giving out your real information when asked for (be careful about who's asking and if you can give out fake information) and so on. And, if you wanna go one step further, use the Tor browser. It's a pain to use, because many things are blocked there, it's quite slow, but it's definitely a good option. I won't be using it all the time, but sometimes I will. If you wanna go extreme, you can even run your own <a href="">Tor nodes</a>. </p> <p>That's it folks! Be safe and keep an eye out for surveillance!</p> Sun, 25 Sep 2016 19:37:00 GMT,2016-09-25:/2016/09/25/data-and-goliath Good bye, Alida <p><img alt="Alida" src="" width="100%" style="max-width:600px"/></p> <p>I’ll miss your funny quips. I’ll miss the long discussions we used to have about about the craziest topics (like the differences in mentality between people who are interested in the humanities versus the sciences). I’ll miss going to eat greasy, yummy food with you (Chez Papa was reeaaallly good. And just as unhealthy). I’ll miss your encouragements. Even though you had leukemia and had been through an awful lot of suffering, you still had the energy to lift others up and give them advice. </p> <p>You were a brilliant girl, who turned many heads and then put them in their proper place. In just 22 years of life, you’ve achieved many things. Your lot in the last three years hasn’t been an easy one, but you made it, and now you’ve earned your rest. You are with your Lord and you won’t suffer any more. No more neuropathies, no more headaches, no more bone marrow extractions, just the blissful presence of Jesus!</p> <p>The rest of us who are still here, we’ll miss you and we’ll remember you.</p> <p>Good bye, Alida dear!</p> Sun, 18 Sep 2016 21:07:00 GMT,2016-09-18:/2016/09/18/good-bye-alida Searching for something? <p><em>This post is "cu dedicatie pentru Ciprian de la Bistrita", who has asked for a search feature for some time now</em></p> <p>I didn't have a search on my blog for quite some time, because it's a static website, without any dynamic backend (except for comments, but those are well isolated, on a subdomain). But Javascript and the browsers are getting more and more features every day, so it's now possible to do all of this clientside. You just have to go to the <a href="">search page</a> (also linked in the menu).</p> <p>I had three options: </p> <ul> <li><a href="">Acrylamid</a> has a builtin feature that builds up at compilation some compressed suffix tries from your posts and allows you to search there. However, it's pretty raw, in the sense that it doesn't do query expansion, it doesn't support multiple terms, it doesn't do stemming and so on. Also, I just found out the Acrylamid is no longer maintained, so in a time frame of one year I will be moving away from it, so I didn't want to tie myself to it with this too.</li> <li><a href="">lunr.js</a> This is a purely in browser solution. It's like Solr, but smaller and less bright (Solr is one of the better known search engines). It does tokenization, stemming and stop word filtering. Then it builds up an inverted index, which allows for efficient querying, and bam, you've got a client side search.</li> <li><a href="">elasticlunr.js</a> This is an extension/copy/improvement over lunr.js, which claims to be faster, but is also less popular, so I decided to skip it for now. </li> </ul> <p>The total size of my posts is about 1.5Mb. If I build the inverted index offline, it's about 9Mb. Because I didn't want to send that over the network on loading the search page, I decided to send only a JSON document containing all the posts and then create the index on the client side. This was quite simple:</p> <div class="highlight"><pre><span class="k">class</span> <span class="nc">LunrSearch</span><span class="p">(</span><span class="n">View</span><span class="p">):</span> <span class="k">def</span> <span class="nf">generate</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">conf</span><span class="p">,</span> <span class="n">env</span><span class="p">,</span> <span class="n">request</span><span class="p">):</span> <span class="k">if</span> <span class="ow">not</span> <span class="n">env</span><span class="o">.</span><span class="n">options</span><span class="o">.</span><span class="n">search</span><span class="p">:</span> <span class="k">raise</span> <span class="ne">StopIteration</span><span class="p">()</span> <span class="n">docs</span> <span class="o">=</span> <span class="p">[]</span> <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">entry</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">request</span><span class="p">[</span><span class="s">&#39;entrylist&#39;</span><span class="p">]):</span> <span class="n">docs</span><span class="o">.</span><span class="n">append</span><span class="p">({</span><span class="s">&quot;url&quot;</span><span class="p">:</span> <span class="n">entry</span><span class="o">.</span><span class="n">permalink</span><span class="p">,</span> <span class="s">&quot;date&quot;</span><span class="p">:</span> <span class="n">entry</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">isoformat</span><span class="p">(</span><span class="s">&#39; &#39;</span><span class="p">),</span> <span class="s">&quot;tags&quot;</span><span class="p">:</span> <span class="n">entry</span><span class="o">.</span><span class="n">tags</span><span class="p">,</span> <span class="s">&quot;title&quot;</span><span class="p">:</span> <span class="n">entry</span><span class="o">.</span><span class="n">title</span><span class="p">,</span> <span class="s">&quot;content&quot;</span><span class="p">:</span> <span class="n">entry</span><span class="o">.</span><span class="n">content</span><span class="p">})</span> <span class="k">yield</span> <span class="p">(</span><span class="n">io</span><span class="o">.</span><span class="n">StringIO</span><span class="p">(</span><span class="n">json</span><span class="o">.</span><span class="n">dumps</span><span class="p">(</span><span class="n">docs</span><span class="p">,</span> <span class="n">ensure_ascii</span><span class="o">=</span><span class="bp">False</span><span class="p">)),</span> <span class="n">joinurl</span><span class="p">(</span><span class="n">conf</span><span class="p">[</span><span class="s">&#39;output_dir&#39;</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">path</span><span class="p">))</span> </pre></div> <p>This view is called for a route in my configuration and dumps there all the posts, in JSON format. </p> <p>The client side is more interesting.</p> <div class="highlight"><pre><span class="nt">&lt;input</span> <span class="na">id=</span><span class="s">&quot;search&quot;</span><span class="nt">/&gt;</span> <span class="nt">&lt;ul</span> <span class="na">id=</span><span class="s">&#39;results&#39;</span><span class="nt">&gt;&lt;/ul&gt;</span> <span class="nt">&lt;script </span><span class="na">src=</span><span class="s">&quot;/static/js/lunr.min.js&quot;</span><span class="nt">&gt;&lt;/script&gt;</span> <span class="nt">&lt;script&gt;</span> &#39;use strict&#39;; var index, docs, tasks; var input = document.getElementById(&#39;search&#39;); var resultdiv = document.getElementById(&#39;results&#39;); </pre></div> <p>We start by defining an input where we can type and a list where the results will be shown. </p> <div class="highlight"><pre><span class="nb">document</span><span class="p">.</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s2">&quot;DOMContentLoaded&quot;</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">event</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Set up search</span> <span class="kd">var</span> <span class="nx">xhr</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">XMLHttpRequest</span><span class="p">();</span> <span class="nx">xhr</span><span class="p">.</span><span class="nx">onreadystatechange</span> <span class="o">=</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nx">xhr</span><span class="p">.</span><span class="nx">readyState</span> <span class="o">===</span> <span class="nx">XMLHttpRequest</span><span class="p">.</span><span class="nx">DONE</span><span class="p">)</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nx">xhr</span><span class="p">.</span><span class="nx">status</span> <span class="o">===</span> <span class="mi">200</span><span class="p">)</span> <span class="p">{</span> <span class="nx">parseResults</span><span class="p">(</span><span class="nx">JSON</span><span class="p">.</span><span class="nx">parse</span><span class="p">(</span><span class="nx">xhr</span><span class="p">.</span><span class="nx">responseText</span><span class="p">));</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="nx">resultdiv</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">&quot;&lt;li&gt;Error loading search index! \</span> <span class="s2"> Please tell me about this! :(&lt;/li&gt;&quot;</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="p">};</span> <span class="nx">xhr</span><span class="p">.</span><span class="nx">open</span><span class="p">(</span><span class="s2">&quot;GET&quot;</span><span class="p">,</span> <span class="s1">&#39;/static/js/search.json&#39;</span><span class="p">,</span> <span class="kc">true</span><span class="p">);</span> <span class="nx">xhr</span><span class="p">.</span><span class="nx">send</span><span class="p">();</span> <span class="p">});</span> </pre></div> <p>Because I don't use jQuery, I had to load the JSON file with good ol' XMLHttpRequest (I can't wait for the <a href="">fetch API</a> to become more mainstream!), and then I call a function to parse the results (or show an error if that's the case). This function doesn't do much, except it initializes the index, schedules the indexing and adds a listener for the input tag to process user input. The index is initialized with the fields that we will want to search on and what should be the reference of a document. We boost the importance of the title and tags fields. </p> <div class="highlight"><pre><span class="kd">function</span> <span class="nx">parseResults</span><span class="p">(</span><span class="nx">response</span><span class="p">)</span> <span class="p">{</span> <span class="nx">docs</span> <span class="o">=</span> <span class="nx">response</span><span class="p">;</span> <span class="nx">tasks</span> <span class="o">=</span> <span class="nx">response</span><span class="p">.</span><span class="nx">slice</span><span class="p">();</span> <span class="c1">// Make copy of document list</span> <span class="c1">// Create index</span> <span class="nx">index</span> <span class="o">=</span> <span class="nx">lunr</span><span class="p">(</span><span class="kd">function</span><span class="p">(){</span> <span class="c1">// Boost increases the importance of words found in this field</span> <span class="k">this</span><span class="p">.</span><span class="nx">field</span><span class="p">(</span><span class="s1">&#39;content&#39;</span><span class="p">);</span> <span class="k">this</span><span class="p">.</span><span class="nx">field</span><span class="p">(</span><span class="s1">&#39;url&#39;</span><span class="p">);</span> <span class="k">this</span><span class="p">.</span><span class="nx">field</span><span class="p">(</span><span class="s1">&#39;title&#39;</span><span class="p">,</span> <span class="mi">5</span><span class="p">);</span> <span class="k">this</span><span class="p">.</span><span class="nx">field</span><span class="p">(</span><span class="s1">&#39;tags&#39;</span><span class="p">,</span> <span class="mi">10</span><span class="p">);</span> <span class="k">this</span><span class="p">.</span><span class="nx">field</span><span class="p">(</span><span class="s1">&#39;date&#39;</span><span class="p">);</span> <span class="c1">// the id</span> <span class="k">this</span><span class="p">.</span><span class="nx">ref</span><span class="p">(</span><span class="s1">&#39;id&#39;</span><span class="p">);</span> <span class="p">});</span> <span class="c1">// Schedule background indexing</span> <span class="nx">scheduleIndexing</span><span class="p">();</span> <span class="c1">// Add search handler</span> <span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">&#39;search&#39;</span><span class="p">).</span><span class="nx">addEventListener</span><span class="p">(</span><span class="s2">&quot;input&quot;</span><span class="p">,</span> <span class="nx">search</span><span class="p">)</span> <span class="p">};</span> </pre></div> <p>Indexing takes about 2-4 seconds, so if we were to do it here, it would block the UI thread, resulting in a janky UI. So, we use the shiny new API of requestIdleCallback, which allows us to do it in the background, during idle moments. Because this is also not well supported yet (<em>cough</em>Safari<em>cough</em>), I give an alternative of just doing the indexing in the main thread, by mocking the API. To add a document to the index, you just have to call the add function with a JSON object representing the document. </p> <div class="highlight"><pre><span class="kd">function</span> <span class="nx">scheduleIndexing</span><span class="p">()</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="s1">&#39;requestIdleCallback&#39;</span> <span class="k">in</span> <span class="nb">window</span><span class="p">)</span> <span class="p">{</span> <span class="nx">requestIdleCallback</span><span class="p">(</span><span class="nx">indexInBackground</span><span class="p">);</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="c1">// Mock the API and do the indexing in the main thread</span> <span class="nx">indexInBackground</span><span class="p">({</span><span class="nx">timeRemaining</span><span class="o">:</span> <span class="kd">function</span><span class="p">()</span> <span class="p">{</span> <span class="k">return</span> <span class="mi">1</span><span class="p">}});</span> <span class="p">}</span> <span class="kd">function</span> <span class="nx">indexInBackground</span><span class="p">(</span><span class="nx">deadline</span><span class="p">)</span> <span class="p">{</span> <span class="c1">// Run next task if possible</span> <span class="k">while</span> <span class="p">(</span><span class="nx">deadline</span><span class="p">.</span><span class="nx">timeRemaining</span><span class="p">()</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="o">&amp;&amp;</span> <span class="nx">tasks</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">entry</span> <span class="o">=</span> <span class="nx">tasks</span><span class="p">.</span><span class="nx">pop</span><span class="p">();</span> <span class="nx">index</span><span class="p">.</span><span class="nx">add</span><span class="p">({</span> <span class="nx">url</span><span class="o">:</span> <span class="nx">entry</span><span class="p">.</span><span class="nx">url</span><span class="p">,</span> <span class="nx">date</span><span class="o">:</span> <span class="nx">entry</span><span class="p">.</span><span class="nx">date</span><span class="p">,</span> <span class="nx">title</span><span class="o">:</span> <span class="nx">entry</span><span class="p">.</span><span class="nx">title</span><span class="p">,</span> <span class="nx">content</span><span class="o">:</span> <span class="nx">entry</span><span class="p">.</span><span class="nx">content</span><span class="p">,</span> <span class="nx">tags</span><span class="o">:</span> <span class="nx">entry</span><span class="p">.</span><span class="nx">tags</span><span class="p">,</span> <span class="nx">id</span><span class="o">:</span> <span class="nx">tasks</span><span class="p">.</span><span class="nx">length</span> <span class="p">});</span> <span class="p">}</span> <span class="c1">// Schedule further tasks if necessary</span> <span class="k">if</span> <span class="p">(</span><span class="nx">tasks</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="nx">requestIdleCallback</span><span class="p">(</span><span class="nx">indexInBackground</span><span class="p">);</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="k">if</span> <span class="p">(</span><span class="nb">document</span><span class="p">.</span><span class="nx">getElementById</span><span class="p">(</span><span class="s1">&#39;search&#39;</span><span class="p">).</span><span class="nx">value</span> <span class="o">!=</span> <span class="s1">&#39;&#39;</span><span class="p">)</span> <span class="p">{</span> <span class="nx">search</span><span class="p">();</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> </pre></div> <p>This requestIdleCallback API works by taking a function which receives a deadline object, which tells you how much more time you have left. You are supposed to return before the time expires. Because of this, it's good only for tasks that can be split into small chunks. Indexing is a perfect example: indexing one document takes very little, on the order of 5 ms, and when we detect we ran out of time, we stop and request another time slot. When the browser "takes a break", it will schedule us again. For more details on the API, read <a href="">this post</a>. We do this as long as there are tasks left. When we finished the indexing, we check to see if the user has written anything in the checkbox and trigger a search if that's the case.</p> <div class="highlight"><pre><span class="kd">function</span> <span class="nx">search</span><span class="p">()</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">query</span> <span class="o">=</span> <span class="nx">input</span><span class="p">.</span><span class="nx">value</span><span class="p">;</span> <span class="k">if</span> <span class="p">(</span><span class="nx">query</span><span class="p">.</span><span class="nx">trim</span><span class="p">().</span><span class="nx">length</span> <span class="o">&gt;=</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">result</span> <span class="o">=</span> <span class="nx">index</span><span class="p">.</span><span class="nx">search</span><span class="p">(</span><span class="nx">query</span><span class="p">);</span> <span class="c1">// Search for it</span> <span class="c1">// Output it</span> <span class="k">if</span> <span class="p">(</span><span class="nx">result</span><span class="p">.</span><span class="nx">length</span> <span class="o">===</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span> <span class="nx">resultdiv</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">&quot;&lt;li&gt;No result found! :(&lt;/li&gt;&quot;</span><span class="p">;</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="nx">resultdiv</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s1">&#39;&#39;</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="nx">result</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span> <span class="kd">var</span> <span class="nx">ref</span> <span class="o">=</span> <span class="nx">result</span><span class="p">[</span><span class="nx">i</span><span class="p">].</span><span class="nx">ref</span><span class="p">;</span> <span class="kd">var</span> <span class="nx">doc</span> <span class="o">=</span> <span class="nx">docs</span><span class="p">[</span><span class="nx">ref</span><span class="p">];</span> <span class="kd">var</span> <span class="nx">li</span> <span class="o">=</span> <span class="nb">document</span><span class="p">.</span><span class="nx">createElement</span><span class="p">(</span><span class="s2">&quot;li&quot;</span><span class="p">);</span> <span class="nx">li</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s1">&#39;&lt;a href=&quot;&#39;</span> <span class="o">+</span> <span class="nx">doc</span><span class="p">.</span><span class="nx">url</span> <span class="o">+</span> <span class="s1">&#39;&quot;&gt;&#39;</span> <span class="o">+</span> <span class="nx">doc</span><span class="p">.</span><span class="nx">title</span> <span class="o">+</span> <span class="s1">&#39;&lt;/a&gt;&#39;</span><span class="p">;</span> <span class="nx">resultdiv</span><span class="p">.</span><span class="nx">appendChild</span><span class="p">(</span><span class="nx">li</span><span class="p">);</span> <span class="k">if</span> <span class="p">(</span><span class="nx">i</span> <span class="o">&gt;</span> <span class="mi">30</span><span class="p">)</span> <span class="p">{</span> <span class="k">break</span><span class="p">;</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="p">}</span> <span class="k">else</span> <span class="p">{</span> <span class="nx">resultdiv</span><span class="p">.</span><span class="nx">innerHTML</span> <span class="o">=</span> <span class="s2">&quot;&lt;li&gt;Query is too short.&lt;/li&gt;&quot;</span><span class="p">;</span> <span class="p">}</span> <span class="p">};</span> </pre></div> <p>Searching is not too complicated. Too eliminate the case where there are too many results to be useful, we search only when there are at least three letters in the input form. We then loop over the results and add to the emptied list a link to their URL, with a title. We also limit the list to 30 items. Pagination could be added, but I don't think it's that useful to look at the long tail. lunr.js returns results sorted by score, so it's fine to cut off like this. </p> <p>Some posts that have inspired me:</p> <ul> <li></li> <li></li> </ul> Mon, 05 Sep 2016 21:19:00 GMT,2016-09-05:/2016/09/05/searching-for-something Two years at Google <p><img alt="Collage of last two years" src="" width="100%" style="max-width:600px"/></p> <p>A bit more than two years ago I was anxiously heading towards the reception of the Google Zurich office. I didn’t know what to expect, but I was very excited. One year ago, I was oncall, dying of heat in my home. Today, I am on my last oncall shift as an SRE, rejoicing that it’s not too hot and that I finally have some quiet time to clean out my bookmarks and my inbox. </p> <p>The last one year was very different from the previous one. The list of new experiences continued, but not all of them were positive. There was the weird realization that I might actually enjoy driving. There was the talk I gave at my university. There was the first relationship. There was the first time I set some quite ambitious goals and I managed to follow up on them. There was the first break up. There was the first orchestral concert I went to. There was the first depressive episode I had, along with a panic attack at work. There were limits discovered and pushed further than ever. There was me doing squats with 90 kg weights and running a 10k. There was me changing teams, so I could do machine learning and now I enjoy a lot more my work. There was me inviting some Swiss friends over for lunch and talking to them mostly in German for two hours. There was me reading a lot more Christian books and learning a lot more about God than before.</p> <p>Looking back, I would say that it was a year in which I grew up a lot. I went through what was the first really difficult time in my life and by God’s grace, I came out on the other side, still alive. I put under a question mark a lot of my faith and my belief. The conclusion was that most things are still true, that I still trust in God, I still want to walk in all His ways, I still love Him, I still want to follow Him with all my heart and with all my soul, to keep His commandments and statutes, for they are for my own good. There were things I no longer see the point of, things which I did just because that’s what I saw around me as I was growing up, but they are not as numerous. </p> <p>I step into the coming year with the same intention as last year, but a bit more wary of the fact that it will be hard and it will require constant abiding by the Lord to stay close to Him.</p> Sat, 03 Sep 2016 21:31:00 GMT,2016-09-03:/2016/09/03/two-years-at-google