Things I Read This Week

http://blog.wilshipley.com/2016/05/pimp-my-code-book-2-swift-and-dynamism.html

People are all upset about the lack of dynamic-ness in Swift, but they’re dumb and wrong.

http://www.jasonshen.com/2016/new-napster-sci-hub-academic-publishing/

Big evil academic journal publisher is evil.  Also, it better get with the times, or it’s going to be napstered.

http://www.bloomberg.com/view/articles/2016-06-01/michael-dell-bought-his-company-too-cheaply

Dell (the company) was undervalued in the public stock market, so Dell (the person) decided to buy it back.  Everyone agreed that it was undervalued, so once he bought it back, some of them sued claiming he didn’t buy it back for enough, and won. The legal system is stupid.

http://yosefk.com/blog/evil-tip-avoid-easy-things.html

Working on things perceived as “easy” is bad, because if you fail you look bad, and if you succeed you don’t get much recognition.  The worst is things perceived as “easy” that are actually “hard”.  One way to avoid this is to postpone working on “easy”/“hard” things, because the eventual urgency changes their perception to “hard”.

http://www.tedunangst.com/flak/post/browser-ktrace-browsing

You might think that software used by millions (billions?) of people would be well written, but you would be wrong.

Things I Read This Week

Summarized in three sentences or less.

http://blog.wix.engineering/2015/12/10/scaling-to-100m-mysql-is-a-better-nosql/

MySQL is actually pretty fast, and in most cases you can probably use it instead of one of those newfangled “NoSQL” databases. But, for the best performance in those situations, store all the data that you’re not querying on in a denormalized JSON blob to avoid JOINs and transactions.

https://medium.com/@sandofsky/why-big-apps-arent-moving-to-swift-yet-f8e9a89ef661

Porting a large codebase to a new language is a lot of work (…), and is especially annoying when the language keeps changing.  Swift isn’t done changing yet.

http://zef.me/blog/6023/who-needs-git-when-you-got-zfs

ZFS is cool.

http://www.wsj.com/articles/goldman-sachs-dumps-employee-ranking-system-1464272443

Having an annual review where your performance for the past year is ranked from 1-9 is not very helpful.  Instead, Goldman will focus on telling employees what they can do to improve.  They’ll also experiment with using online tools for continuous performance feedback (7geese???)

https://stratechery.com/2016/the-curse-of-culture/

Organizations have a set of cultural “underlying assumptions” built up from beliefs and values that resulted in repeated success.  However, these cultural assumptions can prevent an organization from changing direction, which can destroy it if the assumptions no longer work/are no longer valid.  Therefore, in addition to helping define/create the culture of an organization, a leader must also be responsible for destroying the culture if it’s no longer working.

Chicken Soup

Want to take four hours to make chicken soup, as opposed to the customary five minutes? Read on.

20130525-014756.jpg

The following is an illustrated guide to the chicken soup recipe from Ad Hoc at Home, by Thomas Keller.

Start by saving up chicken carcasses for a few months so that you can make some chicken stock (see Ad Hoc for recipe).  Allow several hours for preparation.  Or, if you’re exceedingly lazy, buy some chicken stock from the store.

To begin the actual recipe, melt 4 tbsp of unsalted butter in a large pot.

20131014-082325.jpg

 

Next, thinly slice 1 cup of carrots:

20131014-082420.jpg

Coarsely chop 1 cup of celery:

20131014-082507.jpg

Coarsely chop 1 cup of leeks.  To chop the leeks, first cut off the green leaves. Then, slice the remaining whitish stalk in half, and wash between the layers thoroughly. Once clean, it can be chopped.

20131014-082619.jpg

And chop 1 cup of onions (pro tip: stick the onion in the freezer for awhile prior to chopping to avoid horrible eye water).

20131014-082745.jpg

Once everything is chopped, toss it in the pot with the melted butter (in reality, the chopping will take awhile, so you probably don’t want to start melting the butter until you’re ready). Season with a little bit of kosher salt.

20131014-082855.jpg

Reduce the heat on the pot to low, and cook for 30-35 minutes, until the vegetables are tender.  Stir once in awhile.

While the vegetables are cooking, start boiling a chicken breast in a small pot of lightly salted water. Once the chicken is fully cooked through, take it out of the pot and let it sit for a few minutes to avoid damaging your hands.  Once it’s cool enough to handle, start tearing it apart into strips, and set aside.

20131014-083430.jpg

 

To make the dumplings, fill another large pot with salted water, and bring it to a simmer. Measure out and prepare your ingredients:

  • 1/2 cup water
  • 4 tbsp unsalted butter
  • 1.5 tsp kosher salt
  • 2/3 cup all-purpose flour
  • 1 tsp dijon mustard
  • 2 large eggs
  • 1 tbsp and 1 tsp minced chives

In a medium saucepan, combine the water, butter and 1tsp of salt and bring it to a simmer over medium high heat. Reduce the heat to medium and add the flour, then stir rapidly until the dough is no longer sticking to the pan. Continue stirring for 4-5 minutes, until steam rises from the dough and there is a “nutty aroma” of cooked flour.

20131014-084503.jpg

Transfer the dough to a stand mixer with the paddle attachment and add the mustard and remaining 1/2 tsp of salt and mix for a few seconds. With the mixer on the lowest speed, add the eggs one at a time and then add the chives.

20131014-084709.jpg

Line a baking sheet with parchment paper, and use two soup spoons to begin forming the dumplings. Use one spoon to scoop up a portion of dough, then scrape the dough from the first spoon into the second, forming one long smooth side. Repeat this process several times until the dough forms a pleasing shape. Then, drop the dough into the simmering water (don’t do too many at a time).

20131014-084738.jpg

As with gnocchi, once the dumplings rise to the surface they are done. Use a slotted spoon to transfer them to the baking sheet, and allow them to cool.

20131014-085000.jpg

 

Once the vegetables have finished cooking and are nice and soft, add 4 quarts of chicken stock to that pot. Simmer the vegetables in the chicken stock for 30 minutes to extract their flavour, then strain the liquid through a mesh strainer, and discard the vegetables (aren’t you glad you spent so long chopping them?)

Now for the vegetables you’ll actually eat. Take 5 stalks of celery, and peel them with a vegetables peeler. Cut each stalk crosswise on the diagonal into thin slices, until you have around 1.5 cups of chopped celery.

20131014-085433.jpg

Cook the celery in a large pot of boiling salted water (I hope you have a lot of pots and burners) until it’s tender.  Then, drain it and cool it quickly in an ice bath (to preserve a nice green colour), and drain again.

Take three large carrots, and chop them lengthwise into quarters. Then, cut them crosswise into bite sized pieces (you need about 1.5 cups again).

20131014-085606.jpg

Once the carrots are chopped, toss them in a pot along with a bay leaf, 1 tsp of honey, 2 thyme sprigs, 1 large garlic clove which has been crushed with the skin left on, and a little bit of salt and pepper.  Cover with cold water, bring to a simmer, and cook for 4-5 minutes, until the carrots are just starting to get tender.  Drain and dry on a paper towel.

20131014-085709.jpg

Bring the soup base (which you had previously strained the vegetables out of) to a simmer. While that’s happening, make a quick roux.  Melt approx. 5 tbsp butter in a pan, then slowly add 1/3 cup of flour, stirring frequently. Once the soup base is simmering, whisk in the roux a little bit at a time.  Simmer the soup base for 30 minutes.

While it’s simmering, mince 1/4 cup of chives.

20131014-090343.jpg

Finally, add the dumplings, chicken, carrots, celery and chives to the soup, and heat everything back up. Season with salt and pepper and vinegar if you have the energy, then serve and enjoy (or pass out and go to sleep).

20131014-090421.jpg

You may have noticed the tasty whole wheat baguette in the picture above.  Rather than being a chump and buying it from the store like some sort of peasant, make one yourself in parallel with the soup. Here’s how:

Combine the following ingredients (in the following order) in your bread machine:

  • 1/2 cup warm water
  • 1/2 tsp salt
  • 1 1/2 tsp white sugar
  • 1 1/4 cup of whole wheat flour
  • 1/8 cup of vital wheat gluten (will make it much less rock like)
  • 3/4 tsp bread machine yeast

Set your bread machine to the dough setting, and start it up.  Once the dough is ready, stretch it out into an oval shape. Fold in half and seal the edges, flatten it a bit, and then fold and seal again.  Then, roll the dough into a log shape.

20131014-090732.jpg

If you want a crustier bread, paint the outside with an egg white and water mixture. Cover the loaf with a cloth, and let it rise for about half an hour.  Cut some slashes in the top of the loaf, then toss in the oven at around 400 for 20 minutes (or until it looks done). 20131014-090744.jpg

 

Day 15 – Stockholm

Had another good hotel breakfast, then set out on our subway station tour. The stockholm metro features art in a lot of the stations.  The coolest ones are fairly deep underground (the escalators are very long and steep) and have stone walls which are unfinished (i.e. not smoothed out) and painted in various interesting way.  We found a guide online which pointed out the more interesting stations, and spent a few hours riding around looking at them.

Photo-5387D1AF-A766-42DA-AB22-2903B91ED0E4-20120811-141900-2048

 

Photo-0E8ABB44-5A57-4AF3-A3A0-0BB32C8E69AC-20120811-141759-2048

After we got tired of looking at subway stations, we found a cafe for some food (I had lemon meringue), then walked to T-Centralen and took a train to globen station, where we walked to the Ericsson Globe. The globe is a big, cool looking, indoor arena, which is used for concerts and sports. There is a funicular railway (Skyview) which goes along the outside of it, providing nice views of Stockholm. From the top we were able to see what seemed like most of Stockholm.  The car had maps pointing out what everything was, which was helpful.  We were able to see (and laugh at) the Stockholm ski hill, which was roughly the size of the kids learning area at Whistler.

Photo-7AE21863-0168-4278-81DB-5B2A6DCF2809-20120811-142030-2048

Photo-804464AC-EA97-4A48-B6A1-46D7E1FC71CE-20120811-142248-2048

After Skyview, we went and looked at a few more subway stations which we’d missed previously, then headed back to the hotel to get changed for dinner.  For dinner we went to Kryp In, which was a restaurant in Gamla Stan that I had thought looked good when we were walking around the first day, and which Roman had independently found on trip advisor (it was ranked #1 in Stockholm, and I didn’t realize it was the one we’d seen the first day until we got there).  It did turn out to be quite good.  I had duck with porcini risotto and truffles and a cheesecake in a little jar for dessert.  Roman had the Reindeer which was also pretty good.

Photo-A885636B-3351-468C-9705-658E68A2455A-20120811-142432-2048

After dinner we walked back to Sergel Torg to see it in the dark, and then back to the hotel.

Photo-8F91E16A-A87B-499B-8F31-B246D53BE246-20120811-143247-2048

This was basically our last full day of the trip. The next day we wandered around the city a little more and visited a market. Then I got a delicious hot dog in a baguette, and we sat around in a nice park for a little while. In the afternoon we took a taxi to an airport hotel, as our flight home the next morning was fairly early.

Photo-981F2397-7005-455C-A90D-AA335E373C47-20120811-143351-2048

Photo-7D7CC5C7-DE30-475D-9383-1EC38F9AB137-20120811-143617-2048

Day 14 – Stockholm

Our Stockholm hotel also included breakfast, which was even better than that in Riga.  It included such delights as pancakes, bread, bacon, tomatoes, pineapple, etc..  After breakfast, we went and bought 24 hour bus passes, with a plan to take the bus to the vasa museum, then do a subway tour.  However, the bus never showed up at the stop, so we started walking instead, and decided to watch the pride parade for a little bit.

Photo-394E2265-526D-4228-83B3-D7095DFF6581-20120811-135337-2048

A little bit turned into two hours, so we revised our plans and decided to go to the museum in the afternoon and do the subway tour the next day instead.  We went for lunch, and then walked to the stop for a local ferry to the museum, which was supposed to provide nice views of the city.  However, continuing the trend of not finding things, we couldn’t find it and after talking to some random people, determined that it might not run anymore. So, we caught a tram instead.

At the vasa museum (which is basically a building built around a salvaged ship called the Vasa, which sank on its maiden voyage in 1628), we took a free guided tour and watched a movie about the ship, and then wandered around to look at it.  It was actually surprisingly cool and interesting.

Photo-04DBD52A-16CF-4B4D-9825-2516564904B4-20120811-141130-2048

After the museum (which is on an island), we decided to walk back to the mainland, stopping on the way in a nice park with a view of the waterfront.  We caught a tram to Sergel Torg and walked back up the pedestrian street looking for pastries (we’d seen lots of good ones the other day), but everything was sadly closed.

Photo-B7DEC63C-4FB2-4C21-ADE2-53BB46D30494-20120811-141438-2048

 

Photo-3FD2879A-A6D7-4CCA-A387-6912E0172A4F-20120811-132156-2048

We went back to the hotel, then went for dinner at a restaurant called Pelikan. I ordered a bacon dish, not really knowing what to expect.  It turned out to basically be a whole bunch of bacon strips in a creamy onion sauce with some potatoes, which was basically the best thing you could have hoped for (although I assume it probably knocked about a year off of my lifespan).  Had blueberry pie with a vanilla sauce for dessert.

Photo-D6919DFB-1862-4681-8A85-E8B1D38A5260-20120811-142734-2048

Day 13 – Stockholm

Pictures from Stockholm

We woke up on the ferry to a recorded snoring noise and an announcement that breakfast was now available (and that the duty free shop was back open).  So, we got up and went upstairs to the deck to see Sweden.

After awhile, the boat docked, and we eventually managed to get off (there were long lines through the terminal).  After some debate about how to get to the hotel (taxi vs. bus), we wound up walking for awhile because we couldn’t figure out how to pay for the bus (or where to catch it) at the ferry terminal.  We eventually walked past a 7-11 where we bought a strip of bus tickets (which you stick into a machine which stamps up to a certain point, similar to Amsterdam) and then found a bus to the hotel.

Our room wasn’t ready yet, so we left our bags with the front desk and wandered around to find lunch. We went to a pizza and pasta place, where I had a really good (and large) ham and mushroom pizza (although I had ordered ham and pineapple). We went back to the hotel, where our rooms were ready, so we were able to have a shower.

We then went back out and walked along a nice pedestrian street, which led us to Sergel Torg, which is a really nice, big square.

Photo-388EFBC2-4CED-4F46-B6DE-0701A661A901-20120805-020819-2048

From there we walked to a nice park with a big pond, and some gardens.

Photo-87D37A37-D53D-4B67-9219-CC0E5182A88E-20120811-133028-2048 Photo-CAD8AC3A-75FD-421E-8B25-A4E2349FA9BA-20120811-132431-2048

After sitting around in the park for a bit, we walked to the Stockholm waterfront and around some government-looking buildings, and then over to Gamla Stan (old town).

Photo-B1F4C42B-56AD-4B0C-B90D-9AAD0304674B-20120811-133514-2048

We wandered around in old town for awhile, and eventually it started pouring (this was starting to become a theme).  We got a bit wet until we were able to find a coffee shop to hide out in.  We had some tea while waiting for the rain to stop, then went back out and found the narrowest street in Stockholm.

Photo-D0682C51-A674-4127-8D49-0849C92CF2A9-20120811-134143-2048

We then walked back to the downtown area, and decided to go to an irish pub for dinner because it was cheap-ish, well rated on tripadvisor, and most importantly, close by.  I had chicken, which wasn’t very memorable.  After dinner we walked back to the hotel and went to bed.

 

Day 12 – Riga

We had our final breakfast at our Riga hotel, then walked across the street to visit a big public market which was housed in what used to be zeppelin hangers (so it looked pretty cool).  I got a tasty pastry to eat, and we looked at all sorts of meats and cheeses and so on.

After the market we went and wandered around some nearby malls, then went back to old town and had lunch in a Latvian cafeteria-style restaurant, where I had pork kabobs and a mediocre salad.  We bought some jewellery from street vendors to take home for gifts, then went back to the hotel to pick up our luggage.

From the hotel, we took a taxi to the ferry terminal (the taxi, like everything else in Riga, was surprisingly cheap, only $6). Once we arrived at the ferry terminal, we got to take a number and wait forever to pick up our tickets, as the automated ticket dispensing machines were broken.  Once we got our tickets, we were able to board our overnight ferry to Stockholm.  Another fun fact: the disposable paper boarding tickets were also the keys to our room, which was kind of neat (they had a magnetic stripe on the back).

Photo-8A1D1BA1-0A3E-4634-BB9A-11C68224BB9E-20120811-132004-2048

We went to the top deck as the ferry was leaving in order to get a last look at Riga, then went for dinner at a pseudo-Italian restaurant on the ship, where I had chicken wrapped in prosciutto. After dinner we went to the duty free store where I bought a giant toblerone bar. The duty free store was packed with people buying 24-packs of beer, so I assume it must have been pretty cheap.

Photo-DFE96F56-7CCA-4683-972F-049B6D7E61C9-20120804-010615-2048

We went for dessert (cake) from a cafe on the ship, then went to bed.  Luckily, the beds on the ship were quite a bit more comfortable than those on the train (and there weren’t customs people waking us up), so I actually got a fairly good sleep. As an added bonus, our room even had a small bathroom/shower, although I can’t remember if we actually tried using the shower.

Day 11 – Riga

Had another good breakfast in the hotel, then walked to the train station and caught a train to Jurmula, which is a beach resort fairly close to Riga (30 minutes by train).  Once in Jurmula, we met up with Roman’s childhood friend Liza, who is a lawyer in London but recently had a baby and was spending her maternity leave in Jurmula.

Photo-C64FE8D2-5691-41F4-9E6A-DF9774D293AA-20120803-224110-2048

She took us for a walk along the main street of the town, and then down to the beach. Michelle and I waded in the water a bit (another body of water to check off the list). Shortly after we got to the beach, it started pouring rain, so we went to the Havana lounge club, which was covered, and got some drinks (a mojito in my case).

Photo-676002CF-E0D8-4D7C-93E7-4933D601BB35-20120803-224057-2048

Once the rain stopped, we walked back into town and went for lunch (I had meat dumplings and a caprese salad). After lunch we went for a walk through the town and along a road that ran somewhat parallel to the beach and had lots of fancy houses.  Near the end of the road we stopped for snacks at a cafe, then caught the train back to Riga.

Photo-B5F6B0E7-BF90-4B5D-B7E9-FD91C89E183B-20120803-224119-2048

Once we were back we met up with another one of Roman’s childhood friends, and went for dinner at a pizza place in the big mall near our hotel. After dinner, we met up with Roman’s cousin and went for drinks at a restaurant in one of the big squares in old town.

Photo-1F51A92B-5ADC-41EC-A45C-EAAE6538266A-20120803-224136-2048

Day 10 – Riga

Riga was the first stop in which the hotel included breakfast.  It was actually pretty good, and included a buffet with a fair bit of selection, in contrast to your typical North American “included” breakfast, which usually consists of some muffins.

After breakfast, we walked through the park along the canal, which was pretty nice. People were riding those rentable paddle boats through the canal, and the park was nice and green.

Photo-4819718C-C136-489B-AC7B-2C7BBE0C29F2-20120802-203913-2048

 

After walking through the park for awhile, we left and walked to a neighbourhood with nice old buildings, and then to Roman’s old neighbourhood where we saw his old apartment and school. We wandered around the school and his old neighbourhood for a bit in order to properly envision what his childhood was like.

Photo-68B8AEFC-8346-4F05-8EE3-1D25F1B9CA8F-20120802-205656-2048Photo-A5B56BE9-74D8-4F51-B56B-FBD41546A7C3-20120803-224042-2048

At some point it was lunchtime, so we went to Stockpot. I had the greek stew, which was pretty good. After lunch, we wandered around a bit more, then went back to the hotel.  Michelle and I had dinner at the hotel restaurant, and Roman and Cynthia went to meet up with Roman’s aunt (he wanted to minimize the number of people that he had to translate for).  Once they returned, we went for dessert at a coffee shop in old town, then wandered around old town a bit to see what it was like at night.

Photo-018E8709-B426-475E-8021-AC1066396CD5-20120803-224050-2048

Day 9 – Riga

Pictures from Riga

Once the train arrived in Riga, we were able to walk from the station directly to our hotel. We were still a bit tired from the train ride, but unfortunately were too early to check-in to the hotel.  So, we left our luggage in storage, and walked around “old town“. First stop was an ATM to get some Lats (fun fact: all three of the countries on our Europe trip used different currencies, and none of them were Euros).

Once we had some money, we stopped at a cafe to get some breakfast (I had a raisin pastry and another one with bacon bits in it).  After breakfast, we walked around old town some more and saw some really old buildings (i.e. churches from the 1200’s), a bunch of different squares, a building with cat statues on the roof, the old city walls, etc..

Photo-DC088542-8702-444A-B6A3-1D4C22E33832-20120803-223923-2048 Photo-C4564DF4-87CF-46B3-BE44-E790F42746D8-20120801-075206-2048

We walked over to the canal/river (which I think was out of or on the edge of old town), then back again and went for lunch at a nice (and very cheap) restaurant.  I had a chanterelle risotto with smoked chicken, a raspberry smoothie, and shared a salad with Michelle.

Photo-D5F79C4F-8278-4FF6-B2B4-4234CF3F73B1-20120801-075803-2048

While we were eating, it started to rain, and by the time we finished and got back to the hotel it was pouring.  Once we were checked in, we went back out (where it was still raining) and went to a restaurant in the basement of a building for dinner.  I forget the name, but it was pretty good (I had duck with apples).  After dinner, we met up with Roman’s Mom’s friend’s son (and his wife and son) for coffee, then back to the hotel for some much deserved sleep.

Photo-F12BE06C-AFEE-4006-9782-ACBE862DA8D9-20120801-075432-2048