Watching clouds in Dumbo

Just lying on my back on the lawn in Brooklyn bridge park and thought that this cloud looks like a poodle dog:

20120916-152857.jpg

Such a gorgeous day for a picnic in the park! There’s a smorgasbord food festival every Sunday here and it’s amazing: lots of great food and dessert vendors, park with a stunning view of all three bridges-Williamsburg, manhattan and Brooklyn.

Sean just got an arnold Palmer slush with raspberry! Gotta go!

Btw,Wordpress for iPhone is real neat and let’s me post pics and blog from anywhere

Water

Water is full of magic. Shapeless but incompressible, it is the only substance that can exist naturally as solid, liquid and gas inside earth’s temperature range. It’s called the “universal solvent” because it dissolves more substances than any other liquid – and yet is also harmless to drink and ultimately sustains life.
– from “Saltwater Buddha”

Cheers to weirdness

This struck a cord with me, as we talked about this with Mike the other day.

Don’t be normal. Sadly, normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you financed, in order to get to the job that you don’t really like, but that you need, to pay for the clothes and the car, and the house you leave vacant all day so you can afford to live in it. – Marc and Angel life hacks

Looks like Johnny Depp agrees:

Chicken kebab recipe

My dear friend Daph is having a party tomorrow (happy birthday again Daph!), and she asked for the chicken kebab recipe that we made when we went camping. Everyone just LOVED it, even Ohn who does not like chicken at all. She said herself that it was one time she ever liked chicken. It came out very juicy and not dry at all. Try it out and find out for yourself!

Marinade:

  • Soy sauce: 2 tablespoons
  • Brown sugar: 1 tablespoon
  • Olive oil: 1 tablespoon
  • Lemon zest: 1 tablespoon
  • Garlic: 2–3 cloves, minced
  • Onion (can be red onion or shallot): 1 large, minced
  • Ginger: 1 teaspoon, minced or grated
  • Ground cumin and/or ground coriander: 1 teaspoon

Meat:

  • 1 pound chicken breast or thigh, cut into bite-size pieces

Veggies:

  • Red and yellow bell peppers (1 each), cut in small bite-size pieces
  • Red onion (1 or half): cut in bite-size pieces
  • Zucchini (1): cut in bite-size pieces

Combine all marinade ingredients in a bowl. Cut the chicken, then mix with marinade and put in a ziploc bag for a few hours. Prepare veggies before grilling. Then put pieces of chicken mixed with veggies on skeweres and grill until ready.

Enjoy!

Recipe and photo courtesy of Apple valley girl

Fun Friday

Wow what a day at work, lots of love and fun projects.

A couple of weeks ago I put together a hosting recommendation our Bravo team (and we also did a bunch of other projects earlier), and look what I found today on my desk! A tshirt and an autographed Top Chef cookbook!

20120914-182907.jpg

Such a cool and sweet gift! I will have to cook something out of that book, how about this intriguing dessert:

The thing that cracked me up: this “orgasm” requires tapioca pillows, takes 3 hours and requires chilling overnight! :D

This one looks super yummy too:

Also, my insights team told me today that they were able to use the CSV file (genereated by my quick/dirty python script) and make some neat charts out of it!

And, to make it even better, I’ve finally got a bit of time to add URL parsing feature to my app, tested and deployed it. Wish more days were so focused and fun!

Web performance meetup notes

Today’s meetup was pretty damn good!

The speaker was a former Yahoo’er, who now runs his own startup on gathering performance metrics for clients (LogNormal, using Boomerang).

The talk reminded me of a really fun class in school, where a teacher would start from the basics, then ask questions to make students think before revealing and explaning the answer.

Philip started with explaning what latency is (network latency in our case), how packets travel between client and server, what factors attribute to the response time shown when you do a ping request.

Some of my favorite bits were:

  • network throughput vs network bandwidth:

    bandwidth: overall capacity of network connection = what the ISP is advertising and selling to you

    throughput: what you actually get, given factors like usage by other people, etc. So know what you’re paying for!

  • and a question about planes: is it smarter to travel on a 737 that has a capacity of 150 people or 747 which has capacity of 400? The answer is, if you want to board and deplane faster, go with 737 – less people and luggage to load/unload

Then he moved on to explain how he runs tests using JavaScript in browsers to determine how fast the network is.

He also touched on some advanced topics:

  • under-the-hood browser specifics: how many requests you could send at a time (used to be 2) and how speedier modern browsers adjust that number (it’s around 10 now), and apparently Opera Mini is the fastest mobile browser right now.
  • shared tips on working around DNS lookups by setting up a wildcard DNS entry
  • provided comparison charts of US network speeds vs India – majority of India still has up to 2mbps connections, compared to up to 10mbps in US

Full deck, courtesy of Philip

Thank you Sergey for organizing and Philip for sharing great info!

Lunch with Mike: from snakes to hedgehogs

Lunched with Mike today, and as always, we had a wonderful, curious and enlightening conversation about a variety of topics:

  • Unicode support in Python (version 3 supports by default)
  • History of the Middle East, how it is still tribal in nature and how some small event making its way accidentally into Koran still causes major stir by fanatics misinterpreting it (“Come on, have some sense of humor about it!” – Mike)
  • How Russia got christened by Vladimir – exerpt from the book I’ve just finished reading today, 2 steps from Heaven (will be a good topic for another post)
  • How Afghan war bit the US in the ass (also inspired by the book) and attributed to the whole mess that is Middle East right now
  • Curious question: why the domes of Russian churches look like Muslim minaret tops?

    Answer from Wikipedia:

    Some scholars postulate that onion domes were borrowed by Russians from Muslim countries – probably from the Khanate of Kazan, whose conquest Ivan the Terrible commemorated by erecting St. Basil’s Cathedral. Some believe that onion domes first appeared in Russian wooden architecture above tent-like churches. According to this theory, onion domes were strictly utilitarian, as they prevented snow from piling on the roof.


    *Photo of St. Basil’s Cathedral in Moscow – do not confuse it with Kremlin

  • Natural selection: are humans still evolving? The answer is yes. But maybe not all good, since our eyesight is getting worse :( And I guess humans are getting fatter too. Watch Idiocracy – a fictional interpretation of where that could take the human race
  • Also along the same line: since poor, less educated countries and social groups have high birth rates (and on the other end, smarter people have less kids), will the population in general become less smart?
  • European royal families have terrible teeth because they are so inbred, so fresh blood is good! Bring it on, Kate Middleton!
  • Any conquerors attribute to the mix of races – take Mongols invading Asia and Russia. In my home country, Kazakhs used to have light eyes. Right now everyone looks mongolish-asian, black hair, dark eyes. Once I saw a girl on a bus, and she was a green-eyed, reddish-haired super unique Kazakh (or Uzbek perhaps), which really surprised me
  • And then Mike sent me today’s post from Seth Godin about fast hedgehogs in UK that was a good end point to our conversation: even hedgehogs are still evolving and becoming faster!


    * Image from joystiq.com

TIL: Researching history of Kazakhs, I found out that they were traditionally exogamous = marrying outside of their social group, opposite of inbreeding. Go Kazakhs, no wonder you’re so strong! :)

Python > write to a CSV file with Twitter API lookups

As I wrote a couple days ago, I had a quick task at hand, where I needed to populate a CSV column with data from Twitter (lookup tweets given their IDs and find out source of each tweet).

First attempt to do it with node.js (for the sake of speed, plus I love node) did not quite work. So I decided to fallback on Python and write a quick and dirty script to get it done, forgetting about events and async calls.

The sample can be found on Github.

I’m still eager to get this done with node, so I can hook it up to Dropbox API and process those files automatically whenever the insights team needs them. And going to Python made me realize how awesome NPM for node really is! Painless module installs and a variety of modules to choose from – love!

Node.js: parsing CSV file and populating a column from Twitter API

I was trying to implement a simple script that would read data from a .csv file, then do a lookup for each row hitting Twitter API, then fill that additional info (API response) into a new column. Sounds pretty simple.

Found this great node-csv module that makes parsing and writing into a .csv file super easy.

Twitter API connection was also an easy part.

But try connecting those two and write into a file. Nada.

The reason it’s not working is because the ‘transform’ function included in node-csv finishes before all the data transform is complete. And in my case I need it to wait for the HTTP response to come back. I read that people have similar issues when writing into a database.

So I went and submitted an issue to the repo owner, who replied within hours, which is very nice. Hope that it’s actually doable. Meanwhile, I tried using another CSV parser module called ya-csv, and ran into the same result. Looks like both use similar methods to read and write data, and do not include support for data transform/write callbacks.

I googled it, and looks like people are creating async loops to get around this issue, but I’m gonna do it in Python first to save time, then try that loop workaround and compare results.

9th Company – the film that haunts you

Still shaken after watching the 9th Company. If you have not seen it and are interested in history, particularly Soviet war in Afghanistan, I highly recommend it (available as instant play on Netflix, with English subtitles). It’s loosely based on an actual battle that took place at the height of 3,234 meters in Afghan mountains.

No army, never, never ever, had successfully conquered Afghanistan.
- Army instructor teaching soldiers about Afghan history and culture

I was a small kid growing up in Soviet Union when the conflict in Afghanistan took place, so I don’t really recall how it was portrayed in the media. But I do remember boys playing guitar and singing those “street songs” about young guys giving their lives because “they were told to charge forward and die”. All kids kept quiet when those songs were played, listening to the simple sad melodies and lyrics about this strange unknown place.

Now, after witnessing the collapse of my former motherland (or fatherland?) the mighty Soviet Union, and living in the US for almost 9 years, I’m trying to gather facts and paint a clearer picture of what happened. It’s complicated, of course, and crazy incredibly sad, that wars like this had to take place, and there’s still instability in Afghanistan and people are still dying.

Additional reading:
- Two Steps to Heaven, which I’m reading now. Russian version, epub. English translation, incomplete, epub (original HTML text courtesy of ArtOfWar)
- Khaled Hosseini books: the Kite Runner and A Thousand Splendid Suns. I read both and loved them
- The Afghans by Rybakov (link to a PDF in Russian) – have not read yet