Google Nasıl Yönetiliyor


Google kurucularının yazdığı ‘Google Nasıl Yönetiliyor’ adlı kitabı okudum.

kitap

Kitap, mutfağından Google’da işlerin nasıl gittiğini anlatıyor. İşte bazı detaylar:

googleglass

İlk prototipi ışık hızında hazırlayın

Kitaba göre Google Glass’ın ilk prototipinin hazırlanması 90 dakika sürmüştür. Bu durum günümüzde artık bir iş fikrinin donanımsal üretimi içermesi halinde dahi çok kısa sürede bittiğini gösteriyor. Peki bu kadar hızın amacı ne? Fikir aşamasındayken mükemmelleştirmek yerine daha taptaze fikir halindeyken o fikri hayata geçirip test etmek galiba en doğrusu. Maliyetli mi? 3D yazıcıların var olduğu yazılımın kolaylaştığı ve insanların yazılımsal sorunları hızla çözebildiği bir dünyada artık zor değil.

piramit

Piramitler başarılı yönetimin sonucudur.

Peter Drucker, “Binlerce yıl önce inşa edilen piramitleri tasarlayıp inşa eden Mısırlı sadece başarılı bir yöneticidir” demiştir. Kitap bu sözden ilhamla gerek kişisel düzeyde gerekse gerçekten organizasyonel anlamda yönetim kavramının çok önemli olduğunu vurguluyor. Çağımızda da çok sayıda yükselmemiş piramidin olduğunu söyleyerek herkesin ‘değerli’ bir fikrinin olduğunu ve girişimci olarak her ne pahasına olursa olsun bu fikirleri hayata geçirmesi gerektiğini ifade ediyor. Öyle ki Google’a ait birçok ürünün ilk başlarda başta ‘olağan’ olarak görüldüğünü söylüyor. Aslında yalan da değil. Google kurulmadan önce birisi ‘bir site çıkacak internette istediğin şeyi yazıp arayacaksın’ dese eminim birçok kişi başarısız bir iş fikri olarak değerlendirecekti.

inek

Bir inek yılda 200MB veri üretiyor

Kitabın aktardığına göre Londra’da su hatlarına takılı sensörlerle nerede su patlağı, boru sızdırması var anlaşılabiliyor. Aynı şekilde çiftçiler ineklere takılı sensörlerle ineklerin konum bilgisini, süt sağma makinelerine taktıkları sensörlerle ineğin süt verimini takip ediyorlar. Bir inek yılda 200 MB veri üretiyor.

Şunu demeye geliyoruz: Artık veri çağındayız. Artık ‘Bence’ ile başlayan bir cümle olamaz. İddianız her ne ise veri ile destekleyin. Veri ile ilgili konular özellikle de olasılıklarla ilgili olarak çok kötü olduğumuzu Risk Savvy adlı kitaptan okumuştum. Örneğin köpek balığı saldırısı mı, uçak kazası ile ölmek mi daha sık rastlanır sorusuna insanlar gerçek verilere göre değil maruz kaldıkları haberlere göre kestirim yapıyor.,

70/20/0 Kuralı

Google her gün aynı şeyleri devam ettirerek uzun süre var olunamayacağını biliyor. Bu nedenle çalışanlarına 70/20/0 kuralı adlı kuralı uygulatıyor. Bu kural mevcut mesai saatlerinin %70’ini personelin kendisine tanımlı görevlere, %20’sini ise bu personelin tamamen kişisel tercihine kalmış yepyeni bir projeye ayırmalarını öngörüyor. Bu süre zarfında kimse bu personele yapması gerekeni söylemiyor. Google bu %20’lik zaman dilimini psikologlar Dyan&Reci’nin Özerklik Teorisi adlı teorisine dayandırıyor. Bu teori insanların harici baskılara boyun eğmeden sadece kendi istedikleri şeyleri yapmaya yönelik kuvvetli bir ihtiyaçları olduğunu söylüyor. Dolayısıyla bu süre zarfında personel kesinlikle çok daha fazla motive oluyor. Bu süre kuşkusuz sadece personele yönelik bir yazılımsal ‘hobi’ ile ilgilenmekten çok daha fazlasını içeriyor. 20’lik dilimde başlayan ve bugün hayatlarımıza giren çok önemli projeler var: Google Maps’taki sokak görünümü ile Gmail bu 20’lik zaman diliminde ortaya çıktı. İnanabiliyor musunuz? Bazı şirketlerin milyon dolarlarca yatırım yaparak başaramadığı uygulamalar Google tarafından ek ücret ödenmeyen bu kişisel zaman dilimlerinde ortaya çıktı. Peki bu süreler bu kadar verimli ise neden daha fazlası sunulmuyor. Kitap bunu Frank Lloyd Wright’ten yaptığı alıntı ile tanımlıyor: İnsanoğlu, en büyük yapıları, en çok sınırlandığı zaman inşa etmiştir.

Peki bu 20’lik dilimlerde hiç mi başarısız proje yok? Epey var. Google bunu hiç bir zmaan boşa harcanmış bir süre olarak görmüyor. Bu süre zarfında başarısız projeler dahil her şeyden tecrübe ve yeni yeteneklerin elde edildiği vurgulanıyor. Örneğin Google Wave adlı proje bu başarısız projelerden biri. Bu projenin gerçekten başarısız olduğu Google tarafında da kabul ediliyor. Ancak bu proje rafa kaldırılmadan önce Gmail ve bir çok Google hizmet için çok önemli yeni özellikler ortaya çıkarılmış.

Başarısız projelerle ilgili güzel bir diğer yaklaşımı Google’ın kurucularından ve kitabın yazarlarından biri olan Eric Schmidt Nasrettin Hoca’nın söylediğini öğrendiği bir söze atıf yaparak aktarıyor: Doğru kararlar tecrübe ile verilir, tecrübe ise yanlış kararlar vererek edinilir.

Güzel bir diğer atıf ise Dilbert Karikatürist’i Scott Adams’tan: Başarısızlığı bir duvar olarak değil bir yol olarak görmek her zaman faydalıdır.

Peki kalan 10’luk dilimde ne yapılıyor. Bu süre en uçuk projelere ayrılan bir zaman dilimi. Bu sürede yapılan projeler gerçekten artık bilim kurgu düzeyinde ve şirketin onyıllar sonra işine yarayacağını umduğu projeleri içeriyor. Google X adlı bir ekip ise sırf bu projeler üzerine çalışıyor. Bu ‘çılgın projelerin’ kitaptaki genel tanımı şöyle: Google X kalkıp da %10 daha az benzin yakan araba üretmeye kalkmaz Google X kalkıp tek depo ile 1000km gitmeyi sağlayacak bir teknoloji peşine düşer. Bu ise her şeye yeniden başlamayı gerektirir.

Google personelinin geliştirdiği ve sonradan parlayan bu ekstra projeler için prim vermiyor. Sebebini ise şöyle açıklıyor: Gerek yok. Prim vermek inovasyonu tetiklemiyor. İnovasyonun doğal olarak ortaya çıkmasını engelliyor.

Yetişkin içerik nasıl Google’ın işine yarar

İlginç sorunların nasıl ilginç çözümlere vesile olabileceğine dair en ilginç örneklerden biri de Google’ın resimler içerisinden yetişkin (adult) içerikleri filtrelemesi gerektiğinde ortaya çıkmış. İlk dönemler bu uygunsuz içeriklerin resim arama sonuçlarından kaldırılması için Google mühendisleri resimlerin içinde insan bedenini gördüğünde algılayacak bir algoritma geliştirmişler. Bu algoritma tıp kitabındaki çıplaklıkla müstehcenliği ayıracak kadar ilerlemiş. Bu algoritma daha sonra bu amaç dışında da nesne tanıma alanında kullanılmış.

Tüm Planlarınız Yanlıştır

Şirketlerin yaptıkları tüm planların yanlış olduğunu güzel örneklerle açıklayan kitaba göre her plan insanı tek bir yere kanalize ederek geri kalanı görmesini engeller. Bunun gerçek dünyadan örnekleri de mevcut. MBA tipi ayrıntılı planlar yerine ‘her planın yanlış’ olduğu varsayımı ile geleceği planlamak ve planlara tapmamak kuşkusuz önemli bir içgörü.

Çirkin Bebek

Kitapta adını öyle koymasalar da hatırımda tutmak için ‘çirkin bebek sendromu’ adını verdiğim onlarca hikâye var. Her inovasyon genellikle ilk ortaya çıktığında ya ilgisiz görünür ya hiç beğenilmez. Öyle ki lazer ilk keşfedildiğinde Bell labratuvarları patentini almaya bile değer görmemiş. Bu ise inovasyonun çıktığında hemen kendini belli eden bir şey olmadığını ve aslında dönüştürülerek ‘harika’ bir şey haline geldiğini anlatıyor.

Açık Olun

Açık kaynak ruhunun eğer şirkete has gerçekten özel bir durum yoksa şirket dahil tüm tarafların karına olduğu kitapta vurgulanıyor. Buna en bariz durum internet, pc ağları ve Android platformu. Kuşkusuz IOS işletim sistemi bunun istisnası ancak geri kalan tüm göstergeler açık kaynak mantığının başarılı olduğunu ortaya koyuyor. Açıklık herkesin bir arada çalışmasını sağlıyor. Bu da Homo Deux yazarı Yuval Harari’nin “insanı güçlü kılan şeyin IQ’sü değil eşgüdüm yeteneği” olduğu tezi ile uyumlu.

Peki Google neden kaynak kodlarını açmıyor? Açıklamaları şu: Eğer açarsak birileri en üste çıkmak ve daha fazla reklam almak için ‘kötü’ kodlar yazar.

Rekabet Değerlidir

Bing çıktığında Google’dakiler ne yapmıştır? Ya nasılsa en büyük biziz dememişler anlaşılan. Nietzsche’nin şu sözü ilke olmuş: Düşmanınızla gurur duymalısınız; işte o zaman düşmanınızın başarısı sizin de başarınız olur ama sakın onları takip etmeyin.*

Kimler Google’da çalışır

Kitapta bu da anlatılıyor. Açık cevap: Öğrenen, tutkulu ve çılgın kişiler. Bu durum için ne ‘şu bölüm mezunu olmak’ şartı var ne de ‘şu belge sahibi olmak’. Google’da çalışan astrofizikçiler var…

Google’da personel almak en hayati fonksiyon ve bu asla sadece insan kaynaklarına bırakılmıyor. Kurucular bile mümkün olduğunca mülakatlara katılıyorlar.

Özet

Kitap aslında startupla deneyim paylaşmak için yazılmış. Hatta kitap kim bilir Google’ı bitirecek startup’u kuracak kişi şu anda bu kitabı okumaktadır diyor. Güzel bir empati… Kitabın her yerinde vurgulanan husus; en iyileri işe al, onları kendi hallerine bırak, kullanıcıya odaklan, başarısızlığı her zaman doğal kabul et, tutku ile çalış, hayal edilemeyeni hayal et.

Reklamlar

HTML sayfası içinden CSS ve Javascript dosyalarına nasıl link verilir?


Basit bir HTML dosyasını dışarıdan stilize etmek için CSS kullanırız. Aynı şekilde sayfamıza etkileşim katmak için ise Javascript kullanırız. Her ikisi de mevcut html dosyası içerisinde dışarıdan linkle ithal edilmeksizin direkt olarak tanımlanabilmektedir. Ancak bu kod okunabilirliği ve modülerlik bakımından tercih edilen bir yöntem sayılmaz.
Peki nasıl tanımlarız dış CSS ve Javascript dosyalarını: Aşağıda gösteriliyor:

https://gist.github.com/suatatan/f2fc490f01359d2cc13f.js

Web.Py için kullanıma hazır dizin


Yandex gibi büyük internet sitelerinin de kullanmakta olduğu Web.Py adlı meşhur, basit ve kullanışlı python web framework’u bilindiği üzere Google App Engine’nin kendi framework’unun da ruhunu oluşturmaktadır. Bu noktada Web.py’nin nasıl kullanıldığına girmeden; (vakit az, eğer talep olursa onun için ayrı bir post açarım) Web.py framework’ünü bilgisayarıza indirip hemen kullanabilmeniz için hazırladığım aşağıdaki dosyayı sunuyorum.

Web.py framework’ün güzel taraflarından biri de; ek bir sunucu kurulumuna gerek bırakmamasıdır. Dosyayı indirdikten sonra Windows altında run dosyasını çalıştırdıktan sonra: web browserinızda http://localhost:1234 adlı url’ye girdiğinizde web.py framework’unun çalışan ana sayfasını göreceksiniz.
Dizinde; templating sistem ve statik dizin ayarlamaları yapılmıştır.

Soru olursa memnuniyetle cevaplanacaktır.

Dizinin linki:

Python ile XML verisini işlemek (parse etmek)


Aşağıda bir projemde kullandığım ve işinize yarayabilecek bir örnek var. İteratif XML verilerini ayıklamak işinizi görecektir
XML değişkenine atanmış XML satırları bir sonraki kodlarla işlenmektedir:
Burada kullanılan kütüphane Minidom’dur. Python’un standart kütüphanesidir ve Google App Engine içinde de kullanımı mümkündür.
https://gist.github.com/3e64fdc2a0586943a0ed.js



Bu işlem aşağıdaki gibi de yapılabilir:


dom = parseString(XML)
        
        questions=dom.getElementsByTagName(‘question’)
        for question in questions:
            #NVAL=node.getElementsByTagName(“id”)[0].toxml()
            id=question.getElementsByTagName(“id”)[0].firstChild.data
            text=question.getElementsByTagName(“text”)[0].firstChild.data
            
    
            RESULT=RESULT+id+“
”;

        self.response.out.write(RESULT)

Google App Engine kitabımda bazı okurlarımızın 7. bölümde karşılaştıkları hata hakkında


Okurlarımdan Cemali Gencer Bey şöyle sordu:

Merhaba Suat Bey, Kitabınızdaki 7 Bölümde bulunan uygulamada problem yaşadım. Users kütüphanesi ve üye oturum yönetimi örneği (projem6 örneği) örneğini çalıştıramadım.Karşıma anlamadığım hatalar çıktı ekran görüntüsünü de bir adrese yükledim vaktiniz varsa inceler misiniz?


Cevabım:

Sorunun kaynağı; anaprogram.py dosyasındaki # ile başlaytan yorum satırlarında geçen bozuk karakterlermiş. Bu 2. kere sizde oldu. Sebebi kullandığınız kod editörlerindeki codeset ayarları olabilir. Ancak ayrıntıya hiç gerek yok. Hata raporunda dikkat ettiyseniz ‘ascii codec’ can’t decode hatasına bir daha denk gelirseniz python dosyanızdaki bozuk karakter varsa silin.

Düzeltilmiş kaynak kodlar şuradan indirilebilir.

Kendisine teşekkür ederim.

Google App Engine’de dosya upload etme


Google App Engine ile dosya upload etmek için aşağıdaki kodları kullanabilirsiniz. Bu kodları test ettiğinizde önce dosya ekleme arayüzü açılır sonra dosyanız yüklendikten sonra “dosya yüklendi” diye ifade çıkar. Ayrıca bir link çıkar bu linke tıklayınca dosyanızın sunucadaki halini geri indirebiilirsiniz.
Peki dosyanız nereye kaydedilmiş oluyor?
Google App Engine’de bildiğimiz anlamda bir FTP yoktur. Bu nedenle dosya herhangi bir dizin içine değil, blobstore denilen bir nevi dosya veritabanına kaydedilir. Bu blobstore’a gerek lokalde gerek gerçek sunucuda “Yönetici Dashboard” üzerinden erişip görebilirsiniz.

https://gist.github.com/171af1a0a8486d488a13.js

Generating custom unique id with python:


You can generate custom unique key for databases in python

from datetime import *
from random import *  
def generate_uniqid(self,prefix=“S”,suffix=“F”): now=datetime.datetime.now() SEC= str(now.second) m = str(now.minute) H = str(now.hour) D = str(now.day) M = str(now.month) Y = str(now.year) rn=str(randint(0,10000)) return prefix+Y+M+D+H+m+SEC+“-”+rn+suffix