Author Archives


23
Oct 11

Changed my blog theme

RSS guys might not have noticed, recently I have changed appearance of my blog to a minimalistic theme. Theme is named Cleanr and I have changed it a lot and open-sourced the changes. Removed sidebar, all those Facebook, Twitter etc buttons, GitHub and Google Reader badges, much more readable (especially for long posts).

Hope you liked it.

Older crappy themes of my blog:  Continue reading →


16
Oct 11

The Replay Pattern

The problem comes from the following story: You have an application that stores incoming data in a database. However someday you have noticed that your database schema is not quite well-designed or there was a problem with your computation all the time which you have just noticed. So how exactly you can migrate your existing data to your new database schema or calculate something with your fixed computation logic?

The answer is replaying the logs. What I would sug logic gest is, for every user action that affects your database, you should have a separate “log table” or “log file” which you can parse and replay very easily. It can help you to migrate our database or recover from serious application logic mistakes. I would call this an architectural pattern.

Let’s see how it may be helpful in a few cases: Continue reading →


12
Oct 11

Why I don’t believe Google’s cloud strategy?

We all know Google is  full of talented engineers and great hackers, but it is not always the case about company strategy and marketing stuff. From a developer’s point of view, Google is very problematic about its cloud computing services strategy. Maybe I’m not an expert in this area but something is really obvious.

Google was one of the kick-starters of this cloud computing business. Google was doing everything today’s cloud sync services like Apple’s iCloud does in 2006 or so with Gmail, Google Calendar, Picasa etc. Those services are SaaS part of the cloud and it is for all users. Not so impressive. Then in 2006, Google came up with the idea of Google Apps, serving mails, calendars, chats on the cloud for companies, institutions and schools. It means almost nothing for a developer. 70% of companies with 500+ computers use Microsoft Exchange Server, so Google Apps share shouldn’t be that much, right?

Then Google developed bunch of developer tools, this time aimed developers, but again those services were not promising at all. I can count BigQuery, Cloud SQL, Cloud StoragePrediction API and most important of all Google App Engine. Continue reading →


7
Oct 11

On Principles and Inspiration

I’ve been passionate to computers and Internet since when I was a child. Okay, this post will be about lots of cliche words. This year was a notable one in my life. I earned my first money from this “computer” thing, after starting coding for twelve years. (such a touching moment!)

I met hundreds of good, brilliant and friendly people on the Internet. Almost all of my friends are from this developer, social media network around me. They’ve definitely changed my life, my career, the way I think and so on. This “computer” thing has been my entire life in time and it probably is going to be. (what a boring life!)

I owe a lot to computers. The well-designed computers and software made me obsessed with one thing in time: Perfection. If a poster is poorly designed, has inharmonious fonts and shapes, that bugs me even though I am not a designer. If some source code has wrong indentation, formatting, poorly-named methods, this bugs me.  I’ve always attempted to achieve the perfect, because just “doing it” is not enough and a great work is completely great with all its parts.

One more principle I followed in my life: Minimalism. Because everything, including the life itself, is better when it is minimal. As aforesaid, “less is more”. When you try to put something where it does not completely belong or required, it breaks everything in time. Yes, I certainly want a home just like in the picture below just because it is a enough and decent one.

Copyright, Diana Walker

(AT HOME IN 1982, Copyright: Diana Walker)

Thank you Steven Paul Jobs, for inspiring us, teaching us and making world a better place.


21
Sep 11

How is internship at Microsoft like?

Microsoft ABD’de hem staj hem de full-time başvuru, mülakat süreci ve iş fırsatları üzerine orada tanıştığım bir full-time çalışan arkadaşım olan Yenel ile Türkçe bir blog hazırladık. Umarım staja ve full-time’a başvurmak isteyenler için faydalı olur: msftturk.wordpress.com

This is my blog post after How is it like to work at Windows Azure?  During my internship at Microsoft, I learned, enjoyed, experienced and met new people a lot. For tl;dr guys; I don’t want to advertise Microsoft but I will be talking about what’s good and bad about working for Microsoft.

Is Microsoft evil?

I don’t know. I was such a open source and free software fanboy but I’m only a lover now. If you have a similar mind, probably your perception is telling you Microsoft is a bad and such an old-fashioned copycat company; Google and Apple is so cool. Yes they’re cool, I agree, I’m an Android and MacBook user. I develop free software. However, the point is, this is just a “company”.

I was also missing this point when I came here. Companies hire people and try to make money, that simple! 90% of the time, rest of the discussions are because of fanaticism.

If you’re looking for a real answer, let me tell you a recent news. You remember that Linux 3.0 kernel has just released and top contributor of 3.0 is a Microsoft employee and Microsoft is ranked 5th active Linux kernel developer company, and there are lots of similar stories you can hear about Microsoft’s open source contribution.

Continue reading →


7
Sep 11

Yanlış soru: ‘Kodlamayı öğrenmek istiyorum, ne yapmalıyım?’

Aşağıdaki metin Jared C. tarafından yazılmış bir blog yazısıdır. Bilgisayar Mühendisleri için Problem Çözme Yöntemi yazıma ek olarak bunu çevirme isteği duydum (aslında bu ikisi oldukça benzer yazılar), gerekli gördüğüm yerleri sadeleştirdim ve bir şeyler de ekledim, umarım faydalı olur.

Eğer kodlamayı öğrenmek ve bir şeyler ortaya çıkarmak istiyorsanız ve başkasına ne yapmanız gerektiğini soruyorsanız zaten yanlış düşünüyorsunuz demektir. Hemen şimdi, hiçbir hazırlığa gerek duymadan, göz açıp kapayıncaya kadar bu sorunuza bir cevaba ihtiyacınız olmadığını fark ederek hedefinize büyükçe bir adımla yaklaşabilirsiniz. Çünkü her şeyi kendiniz yapabilirsiniz. İhtiyacınız olan her şey bir yerlerde sizi bekliyor. Gidin alın, kimse sizi durduramaz. Hazır mısınız? Continue reading →


28
Aug 11

My first Windows Phone 7 app: Colorify

During my internship at Microsoft, I decided to create a Windows Phone 7 app in my spare times. The reasons I started this were to get familiar with C#, Silverlight and getting the idea behind Windows Phone 7 SDK, how it is designed and Microsoft’s approach to developing mobile apps from developers’ point of view. With this app I’m participating to #WPAppItUp contest organized by Windows Phone Team for students.

The ironic point is Windows Phone 7 is NOT being sold in Turkey. The first time I have seen WP7 is when I came to Microsoft, because as you may guess, considerable amount of MS employees use WP7. Sadly, a student has no chance to develop apps for WP7 except using the emulator. This is terrible and still many students participate to contests like Imagine Cup with WP7 apps.

So, my app is: Colorify

With Colorify you can choose or take pictures and then we make them black & white  for you and the you click on the screen to recolor specific parts of the image and then share it on your Facebook wall and Twitter. Similar apps exists on both Android and iPhone marketplaces, and that’s my first paid app, I’m selling it for $0.99 on Windows Phone Marketplace. There are a few screenshots below, you can find more on Marketplace page. Thanks to Yenel for mentoring during development of the app.

[Download Colorify from Windows Phone Marketplace]

Here’s a screencast of the app, thanks to Asli:

Continue reading →


26
Aug 11

Internship at Microsoft: How is it like to work at Windows Azure?

Finally, I decided to write a series of short blog posts about my internship at Redmond this summer, like I did last year. So this post will be covering only Windows Azure-specific topics. I hope you’ll get an idea about the company and may want to apply for jobs there.

What is Windows Azure? (boring part)

Good question. Formal definition: Windows Azure is Microsoft’s PaaS/IaaS cloud computing platform offering that is used to build and host scalable applications, databases and storages on Microsoft datacenters. It has SQL Azure, Azure Storage Service and AppFabric. Windows Azure is the Operating System (OS) for this system. The whole thing is called “Azure Services”.

Informal definition: It is like Google App Engine, but you’re deploying ASP.NET applications instead of Java, but you can access to your instance like Amazon EC2, it also has storage service offering like Amazon S3, but it is better and it also has a cloud relational-database like Amazon RDS. That means when you create an app, you can run it on 20 machines immediately. Everything is on the cloud, you have really less operations and migration costs. Continue reading →


12
Aug 11

Organizing an Intern Hackathon Day at Microsoft

The crew at last night's facebook developers hackathon at Iridesco's offices

How a Facebook hackathon looks like

I have always been so jealous of cool tech companies and startups (e.g. Facebook) that organize events in which many coders sit together and code their project ideas for all-day long or so– usually called hackathon.

Hack at Microsoft

First you might think that Microsoft is a juggernaut company but usually that is not the case. Microsoft is a company full of hacker-spirited coders (maybe not as much as Facebook or Google) and there are many Microsoft employees do side projects in their spare times and sometimes they open-source these. In fact, Microsoft even has an internal group called The Garage organization that has “thousands” of members and organizes many social coding events that project ideas can find contributors and new projects are incubated there. It is not always coders but marketing and program manager guys are also interested in contributing these projects with their skills in their fields.

This year I’m organizing an intern hackathon day which is going to be held at Microsoft campus starting 10pm today and will end tomorrow (Saturday) 10pm (24 hours!) with the help of The Garage. Continue reading →


2
Aug 11

How not to design a Social API

I’m a 21 year old person and I really don’t know anything about how to design an API. In my internship last year, I was asked to prepare a presentation on How to Design Social APIs (in Turkish). Today, I look at that presentation and laugh very loudly, indeed. :) Unfortunately, some of my points were just too preconceived and mainstream. Since that, I learned a few things more on this topic and maybe now I can prepare another presentation, but I won’t, because next year I’ll notice that how lame is that presentation, again.

Instead, I will show how not to manage a API design process for a social network, with a real life example of a multi-million dollar project.

Step 1. Be late, no hurries

Take your time and release API at least 1 year after you launch the social network. Who would use your API anyway? You don’t need a developer platform, mobile apps and lovely hacks, right? This might be one of the certain reasons of your failure. There are many hackers out there waiting to use your APIs and do cool stuff and utilize your network. Think about a Twitter without Twitpic.

Step 2. Do not use standards

Standards are for dummies. Dummy developers take advantage of standards just to write their apps easily. Don’t let them do this easily and make them read every damn line of your documentation.

Invent your own standards! Because you’re smarter than everybody in IETF and you are a perfect architect to design new authentication protocols 1 ][ 2 ] (RFC 5849), date-time formats (RFC 3339) and even a new JSON standard (RFC 4627)

Do not apply standards and engineering practices. They’re for lamers. Continue reading →


25
Jul 11

Old programmers never die

When a programmer dies, I feel kind of different than someone else has died, it is complicated to explain but when you are a programmer you might understand that.

(10/24/2011): We are having a sad month. John McCarthy, inventor of Lisp & garbage collection, father of Artificial Intelligence (AI) and Turing Award recipient has passed away. What a great life full of contributions to the world and starting a new era in computer science.

(old (programmers (never die) (they just (get one extra closing-paranthesis))))

(10/13/2011): We have just Dennis Ritchie (dms), creator of C language and developer of Unix and Turing Award recipient. His contribution to programming world was unarguably quite a lot. Very sorry to hear that. My condolences to his family and friends.

old programmers never die, they just cast into void*.

(7/25/2011) Today we all heard loss of Steve Lacey, a Google employee (formerly, Microsoft employee) after a car accident in Kirkland (very near to me). Steve worked in Flight Simulator which is really one of my favorite video games. Our thoughts are with his wife and 7 year old boy and 5 year old girl.

old software engineers never die, they just logout.

One month ago, we lost Robert Morris, another programming wizard and computer security pioneer worked on UNIX has passed away. Imagine now all Linux, Android, iOS, Mac OS devices are derived from UNIX. Such a great story of his life.

old unix programmers never die, they just mv-ed to /dev/null

When you go back a few years, in 2007, the father of database transactions processing and Turing Award receipent Jim Gray lost at sea after sailing with his boat. Before his loss, he worked on Microsoft Virtual Earth, and more importantly he was a pioneer in TerraServer (and WorldWide Telescope) which is a database for aerial world maps. After his disappearance, Microsoft, Google and Amazon collaborated to find him — and guess what, using WorldWide Telescope maps he had developed. Continue reading →