16
Mar

Last week has mostly been taken up with QCon London. I really had a great time and I would like to give a big thanks to Google for supporting my travel and registration costs.

QCon is a conference focusing on 19 different tracks. Some to mention: Architectures You’ve Always Wondered About, Software Craftsmanship, Functional programming Irresponsible Architectures and Unusual ArchitectsPragmatic Cloud Computing, Agile Evolution, How do you test that? and Browser as a Platform. I attended to one or two talks from almost every track except .Net and Java oriented ones. Keynotes from Dan Ingalls (Forty Years of Fun with Computers), Ralph Johnson (Living and working with aging software) and Robert Martin, aka Uncle Bob (Bad Code, Craftsmanship, Engineering, and Certification) were inspring.

I also got the chance to chat with Dan Ingalls (principal architect of five generations of Smalltalk). I asked him if he follows a method while working (like Pomodore that Dan North recommended in his “Simplicity – the way of the unusual architect” talk). Hopefully, we share a similar characteristic: we can’t work if we don’t like the job but when we like it, we can’t stop working from morning till night.  He recommended me to go where I think I would have the most fun. If something bothers you, it is ok: “If it’s hot, it is hot. If it’s not, it is not!” There’s always something to do when you can’t work; empty the rubbish or wash the dishes. And when you concentrate, start to work again -but know yourself very well.


Me and Dan Ingalls

We also talked about the lack of women in computing. He shared some of his observations; for example in a conference about Wikipedia, he observed there are almost same number of women and men. But when it comes to more technical and less social conferences and events, there are really very few women participating. He also added maybe there’s a genetic factor about this. He has two boys who cannot stop being “boys” –always breaking/fixing things but in fact, that’s what all about the computers!

There are lots of ideas and keys to share, here are some main ideas:

From Uncle Bob’s keynote (slides are available here):

  • Follow the Boy Scout rule: Always leave things a little better than you find.
  • Methods should be less than 20 lines.
  • Don’t have a function that takes a boolean. It is clear that it does two things; one if its false, another if its true.
  • Cut/Paste is bug replication
  • Extract until you drop! Keep extracting until all functions only do one thing
  • Source code represent the design -not the UML tools.

Architectures You’ve Always Wondered About was one of the tracks I wondered about =] Some gems from (Facebook: Architecture and Design) by Aditya Agarwal (Director of Engineering at Facebook):

  • Services of philosophy: choose the tool for the right task. They use Thrift, a lightweight software framework for cross-language development (C++, PHP, Python, Ruby, Erlang, Haskell, etc.)
  • Most important thing in their engineering team: How quickly can you move?

Agarwal said despite being a small team (over 1 million active users per engineer) they do great because of the Facebook culture. There are three very important things in FB:

  • Move fast and break things
  • Huge impact with small teams
  • Be bold and innovate

Agarwal also gave some important tips for MySQL. They have about 6k server-years of runtime experience without data loss or corruption (can you believe it?!) Here are my notes:

  • Don’t ever store non-static data in a central database
  • Data driven schemas make for happy programmers and difficult operations.
  • Logical migration of data is very difficult. Create a large number of logical databases, load balance them over varying number of physical nodes.

There are 1,200,000 photo requests a second in Facebook and scaling takes iteration. They serve 20 billion photos in 4 resolutions =  80 billion photos (which would wrap around the earth more then 10 times!)

  • They use cachr: cache the high volume smaller images to offload the main storage systems, and only cache 300 million images in 3 resolutions. Then disribute these through a CDN to reduce network latency

There are 400 million unique home pages and 50 million operations per second in Facebook. They have a love-hate relationship with memcache; it is easy to corrupt and has a limited data model. But it is simply crucial and it does what it does, really good.

At the end of the talk, I asked to Agarwal about their operating system choice and he told me they are probably  going to use Centos.

One of the most interesting talks was Building Skype. Learnings from almost five years as a Skype Architect by Andres Kütt (architect of Skype). First, some stats:

  • There are about 650 employees at Skype (which makes 800k users per employee)
  • 27.2 billion minutes of Skype to Skype calling per quarter.
  • 210k minutes of calls each minute (71k contains video)

Points Kütt made:

  • Rules of thumb does not apply: It is always tempting to use patterns that have worked previously but they should be used as a starting point for discussion – not as a solution.
  • Functional architecture is important. You neglect how the functionality of your system is organized at your own peril.
  • Simply things work. The simplier things are the more intelligent they are.
  • Buzz words are dangerous: They are both dangerous as carriers of meaningless chance but also as a catalyst for breaking down relationships.
  • Architecture needs to fit your organization. There’s no such thing as a beautiful system design. The design either fits what your organization needs or it doesn’t.

Dan Ingalls keynote was very entertaining. He showed his early codes and he made all the demonstration in Squeak and also shared demonstrations of lively kernel. One wise quote from Ingalls talk:

We’re bad at learning the lessons from the past because:

  • we don’t have enough storytellers and
  • our generation doesn’t listen very well.
  • I have a lot more notes in my Moleskine but I need to take some time to transfer them into the blog.

    I also had the chance to visit the gorgeous O’Reilly stand and buy some books (I even have Erlang Programming and 97 Things Every Project Manager Should Know signed by the authors!)

    I had a great time and I look forward to being back the next time. Thanks to Google, again!

    1
    Kas

    Last week I attended to Google Summer of Code Mentor Summit at Googleplex, Mountain View. It was definitely one of the best time I had in recent years.

    First of all, thanks to Leslie, Ellen, Cat, Chris DiBona and Google Open Source program office and everyone who made this happen (I should also thank to Sam Lantinga (writer of SDL) who let me to use his travel stipend.)

    My adventure started at Los Angeles; thanks to my Google Summer of Code t-shirt, I met with Fridrich (from Go OpenOffice project) at Los Angeles and we made all way to Sunnyvale from San Francisco with Thorsten (also from Go-OO). After travelling for 20 hours, I went to the opening party at Wild Palms on Friday. It was really nice to see some familiar faces from last year’s summit; Donnie Berkholz (Gentoo), Sam Lantinga (SDL), Selena Deckelmann (PostgreSQL), Jacob Appelbaum (Tor), Gary (Pidgin), Marty (Etherboot) and many others that I cannot name now.


    Women in Open Source session (bottom + left)

    On Saturday, the sessions got started and everybody who wanted to lead a session wrote their ideas and proposed them for vote: the more people add badges to your session, the bigger conference room you get. I proposed a session; Reversing the Trend: Women in Open Source and hopefully, there was quite a lot interest for the session and I found the chance to lead it at the biggest conference room, Tunis. There were really interesting ideas and experiences about the topic and we continued the session on Sunday, too. (I will write about the session and share the notes and thoughts in another blog post, soon.)


    Photo by John ‘Warthog9′ Hawley.

    When I got tired of participating to technical sessions, I spent some time at Casablanca session :) Casablanca is a room with full of Play-dohs, toys and this kind of things (as appears in the picture above) and it’s for discussing things while playing with toys =)

    Also I should mention Sam’s Solar System session, which we discussed solar system and astronomy applications under Linux and examined some stars and build a solar system with play-dohs for Sam’s daughter =)

    During the summit I had the chance to meet with awesome people (I wish I could mention all of them, but thanks to jet-lag!), Ryan and Lionel (GNOME \m/), Alistair and Erik (WorldForge), Jason (Limesurvey), Lydia and Leo (KDE), Jon, Josh and his wonderful wife Erin (Inkscape) and Nicolas (GIMP) and many others.

    After two days of hacking, summit ended on Sunday and we took the traditional group photo together:


    Photo by John ‘Warthog9′ Hawley.

    I really appreciate to Leslie and other Googlers who made me to have that awesome time.

    Also thanks to everyone who participated to write Google Summer of Code Mentoring Guide, so we can read the fraking manual instead of asking the same questions to Leslie. ;)

    I also had awesome time after the summit with Lionel, Ryan and Jason. Maybe I can write about that trip later, but here’s our awesome photo with Android and its releases: cupcake, donut and eclair. \m/

    19
    Oca

    Whenever I try to be a stable blog writer (one post each month seems fine, huh? =)) I just FAIL. So I’ll write a summary of last few months, ..

    • A couple of days ago, I got the following e-mail from Google Diversity Team that was saying I am one of six award winners to attend linux.conf.au:

      Thank you for your application to the Google-Linux.conf.au Diversity Delegates Programme. After careful review by a committee made up of Linux.conf.au organizers, Linux Chix, and representatives from Google – your application has been selected as one of the 6 award winners!

      I had a list of talks in mind to attend @linux.conf.au. But unfortunately, it seems I can hardly get the visa on time (remember the MySQL case -and other side of the coin.. *click*)

      Wonderful news.. but,.. well.. just news. =)

    • * It’s 19th of Jan. but I forgot to tell you Project 366 was succesfully finished! I started Project 366 just for want of trying, but lately it became a long-year album. I see how Photojojo was right. It’s an amazing way to document travels and accomplishments, relationships, .. and so on. Time moves surprisingly fast.

      Btw, i made a video from all Project 366 photos:


      Project 366 (2008) from Pinar on Vimeo.

    • I have some supercalifragilisticexpialidocious plans about school, ah.. frak school.
    • And at last, I started to use KDE4 on my daily system, but it’s more like a mutant (using Nautilus as a file manager is enough?)