28 Kasım 2015 Cumartesi

Hayatı kolaylaştıran kısayollar

Merhaba, bu yazımda developerların işine yarayacağını düşündüğüm birkaç kısa yoldan bahsetmek istiyorum.

Belki farkındasınızdır, yazılım geliştirmede eylemlerinde yeni bir modul vb. bir şey yazmıyorsak, özellikle bug fix işlemlerinde aslında zamanımızın çoğunu problemi teşhis etmek için harcarız. Burada farkında olmadan aslında çok daha kısa sürede erişebileceğimiz bir bilgiye wizardları kullanarak fazladan zaman harcarız.

Senaryo 1
Veritabanı kaynaklı bir problem vardır ve bir stored procedure nin incelenmesi gerekiyordur. İncelemek için sql server mng studio üzerinden server explorer üzerinden sp mizi bulup sağ click yapıp modify diye erişebiliriz. Bu ortalama splerimizin fazlalığına göre 10 ile 30 saniyemizi alır.
Çözüm:
Bu işlemi 2 saniyede yapmak da mümkündür.  Öncelikle bir ayar yapmamız lazım.
Sql Server Mng Studio üzerinden Tools>Options>Environment>Keyboard Shortcust alanına giriyoruz ve istediğimiz bir kısayol kombinasyonuna "sp_helptext" yazıyoruz.

Şimdi Query ekranımıza sp mizi yapıştırdıktan sonra Ctrl+T ve Ctrl+f1 tuşlarından sonra Query Result ekranında prosedurun içeriğine erişmiş olacağız. Burada kullanılan Ctrl+T kombinasyonu işlemimizin text formatında output vermesi içindir. Bu işlem bittiğinde Ctrl+D yapıp query result ekranını tekrar grid formatına alabilirsiniz. Bu ekranda kullandığınız diğer komutlar için kısayollar tanımlayabilirsiniz.

Senaryo 2
Bunu aslında yazmayacaktım ama pek çok developerin halen bu durumun farkında olmadığını görünce yazmaya karar verdim. Jquery yada dom hatalarında çoğu developer console.log komutunu kullanarak hata tespiti yapmaya çalışıyor. Yanlış değil, ancak log ettiğiniz veriden başkasını göremiyorsunuz ve bu da kısa zamanda doğru teşhis yapmanızı zorlaştırıyor.
Çözüm:
Basit, problemli kodlarınızın arasına "debugger;" yazın ve inspect element modunda hatalı process i tekrar yapın, işlem debugger i gördüğünde duracaktır ve siz de ne gelmiş ne gelmemiş o scope üzerindeki tüm herşeye konsol üzerinden erişebileceksiniz.

Senaryo 3
Uzun satırlara sahip bir js dosyanız var, ancak bir yerlerde dalgınlıkla bir parantezi unutmuş yada silmişsiniz. Bu hatayı bulmak için tarayıcıyı açmalısınız ve dom hatasından yola çıkarak hatalı bölgeyi tespit etmeye çalışırsınız, ancak dom hatası da her zaman doğru yeri göstermez ve bir parantez için gereksiz yere nöron yakarsınız (:
Çözüm:
Bu link üzerinden ulaşacağınız Vs eklentisi ilgili dosyada sizi hiç uğraştırmadan hatalı satır ı size bildirecektir. Hata mesajını almak için Ctrl+S yapmanız yeterli.

Ve Ctrl+K+D, Ctrl+M+M, Ctrl+M+O. Bu kısayolları bilmeyen bir Jr. iseniz bunları da visual studio üzerinde deneyin (:

PostJSON metodu

Merhaba, jquery getJSON metodunu biliriz çoğumuz, tek satırda ajax get sorgusu yapmamızı sağlayan bir metot olur kendisi. Ama iş post yapmaya gelince postJSON gibi bir jquery metodu malesef yok, klasik ajax sorgusu yazmak zorundayız.

Ancak aşağıdaki fonksiyonu yazdığımız zaman nur topu gibi bir postJSON metodumuz olacak.

    $.postJSON = function (url, data, callback) {
        return $.ajax({
            url: url,
            type: 'POST',
            data: JSON.stringify(data),
            contentType: 'application/json',
            success: callback
        });
    };

 Artık uzun uzun post ajax kodları yazmamıza gerek kalmadı.

9 Kasım 2015 Pazartesi

Sql Server String Data Split Parse

Merhaba, bu yazımda birden fazla veriyi tek parametre üzerinde göndermek istediğimizde Sql Server tarafında bu verilerin nasıl parse edileceğini anlatacağım.

Bazı özel durumlarda application performansından fazla harcamamak adına birden fazla veriyi tek bir parametre olarak göndermek isteyebiliriz. Örneğin bir checkboxlist checked verisini.

Aşağıdaki fonksiyon gönderdiğiniz veriyi parse edip table formatında geri döndürdükten sonra içinde dönebilirsiniz.

Örnek Verimiz: "2_5_67_55_66" olsun

Fonksiyonumuz aşağıdaki gibi olacak;

CREATE FUNCTION FN_SPLIT_STRING

    @STRING NVARCHAR(MAX), 
    @DELIMITER CHAR(1) 

RETURNS @OUTPUT TABLE(SPLITDATA NVARCHAR(MAX) 

BEGIN 
    DECLARE @START INT, @end INT 
    SELECT @START = 1, @END = CHARINDEX(@DELIMITER, @STRING) 
    WHILE @START < LEN(@STRING) + 1 BEGIN 
        IF @END = 0  
            SET @END = LEN(@STRING) + 1 
        INSERT INTO @OUTPUT (SPLITDATA)VALUES(SUBSTRING(@STRING, @START, @END - @START)) 
        SET @START = @END + 1 
        SET @END = CHARINDEX(@DELIMITER, @STRING, @START) 
    END 
    RETURN 
END

Şimdi örnek veri üzerinden giderek aşağıdaki gibi bir sorgu çalıştıralım.

SELECT *from FN_SPLIT_STRING('2_5_67_55_66','_')

Output format aşağıdaki gibi olacaktır.

SPLITDATA
2
5
67
55
66

27 Ekim 2015 Salı

Freelance yazılım geliştirme çalışma stratejisi

 Merhaba, bu yazımda özellikle freelance çalışan ve çalışmayı düşünen arkadaşların işine yarayacağını düşündüğüm, freelance çalışırken uyguladığım çalışma metodolojisinden bahsedeceğim.


Fiyatlandırma nasıl yapılır?
Fiyat verirken şayet karşılaştığınız proje daha önce yaptıklarınızdan birine benzemiyorsa ve iş modeline hakim değilseniz en başlarda net fiyatlar vermekten kaçının. Ortalama max. min fiyatlar verin ve detaylar hakkında yapılacak toplantı sonrasında net fiyat verebileceğinizi söyleyin.

Fiyatlandırma hesabını şu şekilde yapabilirsiniz.
(maaşlı çalışıyor olsaydınız aylık maaşınız ve sigorta vb. değerleriniz)/22=X

Bu hesaplamada eğer maaşlı çalışmış olsaydınız yeteneğinizin bir aylık süreçte günlük değeri çıkacaktır. Sonrasında bu proje için harcayacağınız gün sayısını yukarıdaki X ile çarpıp fiyat verebilirsiniz. Ben örnek olarak günlük hesap yaptım, isterseniz saatlik hesap da yapabilirsiniz.

İlk toplantılar
İş modeli basit 5-10 parça ürünün satılacağı bir e-ticaret modeli gibi herkesin bilebileceği kolay bir yapı değilse, yabancı olduğunuz bir sektöre ait bir iş modeli üzerindeki bir projede çalışıyorsanız, iş modelini derin derin tartışmayın. Ne kadar toplantı yaparsanız yapın, anlatılan ve anlaşılan arasında farklar olacaktır.  Farklı bir sektörün dinamiklerine birkaç saatlik toplantıyla hakim olamazsınız. İş modeli hakkında eğer çok emin değilseniz özgün fikir vermekten kaçının, saçmalıyor olabilirsiniz.

Çalışma planı hazırlanması
Tanışma, sözlü olarak anlaşma faslının ardından proje başlangıcından bitimine kadar müşteriniz ile yapacağınız toplantılarda sırasıyla aşağıdaki gibi ilerlenmesi gerekir.

1- Proje sayfalarının wireframe leri

  •  Müşteriniz ile birlikte projede olacak tüm sayfaların wireframelerinin hazırlanması gerekir. Bunun için kullanabileceğiniz pek çok tool var,örn. balsamiq bunlardan biri. Mobil bir proje üzerinde çalışıyorsanız, pencil da oldukça kullanışlı.


2- Fiyatlandırma ve sözleşmelerin hazırlanması

  • Wireframe'ler hazırlandıktan sonra daha yüksek doğruluk oranı ile proje üzerinde ne kadar zaman harcayacağınızı hesaplayabilir ve net bir fiyat verebilirsiniz. Fiyatlandırma konusunda anlaştıktan sonra müşteriniz ve sizin yükümlülüklerinin net olarak anlatıldığı hukuki bir dil ile yazılmış bir sözleşme hazırlayın ve yaptığınız sayfa tasarımları mutlaka bu belgelerin içinde olsun. Sonradan müşteriniz hesapta olmayan ek işler çıkarttığı zaman maliyet çıkartmak için bir dayanağınız olsun, yoksa art niyetli müşteriler tarafında suistimal edilebilirsiniz. 

3- Yapılan Wireframelerin html tasarım üzerinde uygulanması ve onaylanması.

  • Yapılan wireframleri psd yada jpeg üzerinde web arayüzünde nasıl görünmesi gerekiyorsa hazırlayın ve müşterinize onaylatın. Buraya kadar tamam ise sayfaların html css halini hazırlayabilirsiniz.

4- Kodlama ve veritabanı hazırlama süreci

  • Şimdi elimizde arayüz çıktılarımız var, müşterimiz ile sözleşme imzaladık. Yapmamız gereken artık hazırlanan arayüzdeki input ve outputlara göre veritabanını tasarlamak ve verileri bağlamak. İstediğiniz teknolojiyi kullanın.

5- Proje güvenlik ve performans testleri

  • Projenizdeki olası güvenlik açıklarını kontrol edin ve performans testleri yapın. Bunun için de piyasada pek çok benchmark aracı var.

5- Projenin sözleşmede imzalanan şekilde host edilmesi

  • Bu en son basamak oluyor, projeyi test ortamından canlı ortama alın, son bir kez testleri yapın.

Dipnot olarak, eğer yaptığınız iş birkaç günde bitirebileceğiniz küçük bir iş ise  bu sıralamanın ve prosedürlerin pek bir önemi yok.

Son olarak
Yazılım eğitimi veren çoğu kurumda malesef bu süreç aşağıdaki gibi öğretilir. Bana da böyle gösterildi, örnek projemi bu hiyerarşiye göre yaptım (:

1- Veritabanı tasarımı
2- Kodlama standartlarının belirlenmesi ve proje katmanlarının hazırlanması
3- Html arayüzlerin hazırlanması
4- Kodlama ve verilerin arayüze bağlanması

Bu liste neye göre, hangi kabul edilmiş metodolojiye göre yapıldı bilmiyorum ama, bu yöntem pek mantıklı değil.
Çünkü; Veritabanından başlayabilmek için, sonrasında hazırlanacak olan arayüzün veritabanı modelini %100 desteklemesi, arayüzde veritabanı modelinin dışına çıkan input ve outputların olmaması gerekir, ki bu çoğu zaman imkansızdır.

Her zaman veritabanı arayüzü referans alıp oluşur, veritabanını referans alıp oluşan bir arayüz olmaz.(büyük projelere geliştirilen ek modüller haricinde).

Kodlama ve veritabanı tasarımı önemli konular olsa bile hiyerarşik olarak arayüz tasarımından daha sonra gelir. İş modelinin en can alıcı noktası her zaman arayüzdür. Arayüze göre tablo yaparsınız, arayüze göre kod yazarsınız. Arayüz baba'dır (: Tüm bu sebeplerden dolayı arayüz bitmeden veritabanı ve kodlama konularına geçildiği takdirde double work olayı kaçınılmaz olacaktır.

28 Ağustos 2015 Cuma

South Park gelmeyen bölüm


South Park  ülkemizden de birçok takipçisi olan sevilen bir dizi. Ancak dizinin takipçileri mutlaka farketmiştir, özellikle son iki sezona zorlama senaryolar ile girdiler. Dizinin en sevdiğim bölümleri Amerika ve dünya üzerindeki güncel trendlere olan giydirmeleriydi. Son iki sezon bu konuyla ilgili kayda değer bir şey olmadığı gibi dizinin fanı olmama rağmen birkaç kez bölümleri tamamlamadan kapattım.

Trey Parker ve ekibi eğlenceli bir iş yapıyormuş gibi değil de, sanki parasını aldıkları ama yapamadıkları bir işi bitirme telaşındaydılar. Ortadaki malzeme öyleydi. Zaten uzun bir süredir ortada yoklar, sanırım alacak verecek meselesi kapanmış (:

Bu dizide hep görmek istediğim bir senaryodan bahsetmek istiyorum. Aslında Trey Parker’dan hep umudum vardı, bir gün bu fikrin aklına geleceğini ve ortaya birkaç bölümlük bir efsane çıkacağını düşünmüştüm, ama olmadı.

Senaryo
Neyse uzun uzun dizi senaryosu içeriğinden bahsetmeyeceğim, özet geçiyorum sadece. Çalışkan karaktermiz Kyle parelel evrenlere ilgi duymaktadır ve sürekli bu konuyla ilgili araştırmalar yapmakta kitaplar okumaktadır. Tabi diğerleri tarafından farkedilirler ve özellikle Cartman tarafından yüksek dozda dalga konusu olmaya başlamıştır. Kyle bu problemi çözmek için Cartman’ın fikrini değiştirmesi gerektini farkeder, ve diğer arkadaşlarını bir araya toplayıp bir sunum yapar, parelel evrenlerin mümkün olduğunu hatta internette bulduğu birkaç fotoğrafın bunun kanıtları olduğunu söyler. Arkadaşlarına Kfc sosu ırmakları akan, Kfc kanatları olan meyveler veren ağaçlar gibi fake fotoğrafı gösterir. Cartman fotoğrafları görünce fikrini aniden değiştirir ve Stephen Hawking’e gidip daha fazla bilgi almaları gerektiğini söyler.

Kyle bu yaptığından pişman olup diğerlerinin fikrini değiştirmeye çalıştıysa da faydası olmaz. Gider Hawking i bulurlar, paralel evrenlerden ve fotoğraflardan bahsederler. Kyle şimdi rezil oldum diye düşünürken Hawking böyle yerlerin olabileceğini ve bunun için bir makine yaptığını ama
ayarlarını bilmediği için kullanmadığını söyler. Cartman Hawking in yüzüne biber gazı sıkıp makineyi çalar. Daha sonra kaçış son bulduğunda Cartman’ın bodrumunda buluşurlar, makinenin ayarları ile ilgili her yerine tavuklar ile ilgili şeyler yazarlar, ve ışınlanıp parelel evrenlerden birine geçerler.

Ancak bu parelel evren beklediklerinden çok farklıdır. Burada tavuklar hüküm sürüyordur ve insanlar ise tavuk gibi kesilip yemekleri yapılıyordur. Kfc ise Hfc olmuştur ve insan parçaları pişirmektedir. Kahramanlarımız kendilerini büyük bir insan çiftliğinde bulur. Sonrası en az iki bölüm eder (:

Konu dışı
Bu arada konu ile ilgisiz olacak ama Family Guy çakması made-in Turkey bir proje vardı, ismi Fırıldak Ailesi. Doğal olarak tutmadı tabi. Ciddi bir de kaynak ayırmışlardı bunun için, bölüm başı yaklaşık 130.000 TL.

Senaryosundan karakterlerine kadar çoğu şeyi ile tam bir Family Guy çakması. Bu karakterlerin biraz ülke kültürüne göre düzenlenmesi lazımdı. Yapımcı ben olsam temayı bir aile değil de içinde değişik kökenlerden gelen insanlardan oluşan bir arkadaş grubu üzerinde kurardım yapıyı. Mesela bir Kürt bir Laz, bir Adanalı, bir İzmirli vb. kültürel  kimliklerden oluşan bir arkadaş gurubu ve başlarına gelenler.

Bu lafım yapımcılara; Senaryo yazacak kafada elemanınız yok ve gittiniz Family Guy senaryolarını arakladınız amenna. Ama o dublaj nedir öyle ya (: Hiç mi bunun ile ilgili teknolojik bir araştırma yapmadınız, bunu yapanlar nasıl yapıyor demediniz be abi. Hiç mi arkadaşınız yoktu bu işlerden anlayan, bu b*k gibi olmuş abi yayınlama bunu diyebilen.


23 Ağustos 2015 Pazar

Yahoo ve Marissa Mayer etkisi

Yahoo internet firmaları arasında sempati duyduğum ve uzun geçmişine göre hak ettiği yerde olmadığını düşündüğüm bir firma. Hızlı büyüyen internet dünyasında hantal kaldıkları için doğal olarak dibin biraz üstündeler. Ama aslında eksik olan şey çok büyük bir şey değildi, paraları hala vardı, altyapıları ve sektördeki know-how ları diğerlerine göre çok daha fazlaydı. Yapılması gereken birkaç sihirli dokunuş, yeni bir kaç ürün ile gaza basmaktı.

Bir kaç sene önce Marissa Mayer ceoluk koltuğuna oturdu. Böylesine yaptığı işe aşık ve değişimleri seven birinin Yahoo nun tepesine gelmesi 12 den vurulan dart tahtası gibi bir şeydi. Bir yıl içinde ciddi bir değişim, gelişme bekliyordum. Bu süre içinde şirket içinde bir takım saçma kuralları kaldırması ve ekipleri motive edici bir takım ödüller etkinlikler yapması dışında bir şey duymadım.

Ama hala umutluydum. Ne de olsa hantallık abidesi Yahoo idi sözkonusu olan. Öyle sihirli değnek filan o kadar da kolay değildi o işler. Neyse hep böyle flaş bir ürün ne zaman çıkacak acaba diye takip ederken. WhatsApp a rakip ama içinde hem WhatsApp hem de Periscope den esinlenilen bir sohbet uygulaması üzerinde çalışıldığı dedikodusu düştü blog sitelerine. Sonunda buzu kırmayı başardı herhalde diye düşündüm.

Uygulama 6-8 ay sonra LiveText ismi ile yayınlandı, hemen indirdim. Ancak numaram ile register olamadım bir türlü, bug vardı uygulamada. Yeni uygulama herhalde bir kaç gün içinde düzeltirler diye önemsemedim. Bir hafta sonra tekrar baktım, herhangi bir update yok. Yorumlar da sürekli bu konudan bahsediliyor. Sonra bir kaç gün sonra tekrar bir update geldi uygulamaya. İndirdim ve problem halen devam ediyor.

Neyse telefon numaram ile register olmaktan vazgeçip yahoo hesabım ile giriş yapayım dedim. Bu kez başarılı oldum. Ancak uygulama rehberimdeki numaralardan uygulamayı indirmiş olanlar kişi listemde yoktu, hepsine ayrı ayrı davetiye göndermem gerekiyordu. Uygulamadan ümidi kestim.

Bu uygulama WhatsApp a rakip olamaz ve halihazır da varolan bugları bile düzeltmekte çok yavaşlar. Anlaşılan Marissa Mayer 3 yıldır Yahoo nun o kemikleşmiş hantal yapısına karşı pek de başarılı olamamış.

Startup yazılımcılarına tavsiyeler

Merhaba, bu yazımda startuplar ile yolu kesişen yazılımcılara kendi deneyimlerimden yola çıkarak işe yarayacağını düşündüğüm bir kaç kritikten bahsedeceğim.

Startup yazılımcısı nasıl olmalıdır?
Bu çalışacağınız firmaya göre değişir, eğer firmanın halihazırda bir ekibi varsa bu konuyu fazla düşünmenize gerek yok, sadece kendi yetkinlik alanınızda iyi olmanız yeterli. Ama ekibi iyi tanıyın, ekibin diğer üyelerinin yetkinliklerinden emin olun. Ancak konu startup olunca genelde ya tek yazılımcı siz olursunuz yada en fazla bir kişi daha vardır. Burada sorumluluk diğer çalışanda ise kıdem olarak o kişinin altındaysanız yine sorun yok. Ancak bu ihtimal ile de pek oluşmaz. Genelde tek yazılımcı siz olursunuz ve tüm teknik yük üzerinizde olur.


Bu en çok karşılaşılan durumdur. Burada sadece kod yazmanız yetmeyecektir. Server kurumundan ve ayarlarından da anlamalısınız, gerektiğinde tasarım yapmalısınız, gerektiğinde grafik işleriniz olacaktır. Ayrıca business modeli iyice kavramanız gerekecek ve en az fikir sahibi patronunuz kadar olaya hakim olmalısınız. İş geliştirme sürecinde de etkili olmalısınız.

 Peki yeni giriyoruz sektöre, tamam. O zaman yukarıda yazdığım konular ile ilgili sorunlarla mutlaka karşılaşacaksınız ve bunları bir şekilde çözmeniz gerekecek, bunu unutmayın. Yeni iseniz bu acılar olacak.

İşe başlamadan önce bilmeniz gerekenler
Eğer startup geçmişiniz varsa bu konuda deneyimliyim diyebiliyorsanız, sektöre yeni giren bir kişi ile iş görüşmesi yapıyorsanız muhtemelen sadece fikri ve parası vardır. Startup geliştirme sürecinden bihaberdir. Anlaşmadan önce bu kişiye projenin iyiliği için development sürecinde iplerin elinizde olması gerektiğine ikna edin. Zaten karşınızdakin de startup geçmişi varsa bunları konuşmanıza gerek kalmaz.

Zamanı iyi yönetin
Zaman startuplar için en önemli konudur. Zaten kısıtlı bir bütçe vardır, ve tahmin edilen süre içinde ürünün çıkması gerekir. Zamanın ne kadar dışına çıkılırsa olursa maliyet o kadar fazla olur, motivasyon o kadar bozulur. Bu durum her yer için böyledir gerçi, ama startupların kalbidir. Mutlaka bir çalışma takviminiz olsun. Bunu istişare edin ve amerikanvari bir laf ile "plana sadık kalın" (:


Yalnız bu planı tek seferde tüm proje için değil de 1 haftalık 15 günlük yada 1 aylık itrerasyonlar ile yapın. Zaten bir startup projesini tek seferde mvp ye kadar planlamak imkansızdır. Ancak herşeye rağmen öngörülemeyen aksiyonlar gelişecek ve zaman yönetimi planladığı gibi işlemeyecektir, bunun için tasklara bir miktar buffer ilave etmeyi unutmayın. Ben totalde %30 olarak hesaplıyorum. Bu planı bir şekilde yazılı döküman haline getirin ve yapılan işleri yapılmışları test edilecekleri vb.sınıflandırıp online bir ortamda tutun. Patronunuz, ekibiniz size bugün ne yaptık, yarın ne yapıyoruz gibi sorular sormamalı, bunlar hep gereksiz zaman maliyetidir. Bunları derli toplu bir biçimde tutmak için bir task yönetim tool u kullanın. Tavsiyem Jira. Zira her seferinde diğer ekip üyeleri hangi aşamada olduklarını anlamak için dakikalarca uğraşıyorlarsa bu yukarıdaki eylemlerin de hiç bir etkisi, önemi yok.

Kimlerle çalışılmamalıdır?
Genelde emekli ordu personeli olur bu tip (: Benim param var, fikrim de var. Ben söylerim sen yazarsıncılardan, yazılım geliştirmenin önemini hafife alanlarlardan uzak durun.

Bu önemli, eğer görüştüğünüz kişinin birkaç sene startup geçmisi varsa ve yazılımcısı yoksa kafanızda bir soru işareti olsun. Teklifin cazibesine kapılmadan geçmişte neler yaşanmış öğrenin. Sonra olan emeklerinize, harcadığınız zamana ve en önemlisi heyecanınıza oluyor. Malesef en çok karşılaşacağınız tipler bunlardır,(ben bunlara zombi diyorum) bizim piyasa da bolca vardır.


Araştırmanız sonucu işveren kaynaklı bir olumsuzluk kaynaklandığını anlarsanız teklif ne kadar cazip olursa olsun çalışmayın. Ekip çalışmasındaki en önemli şeylerden biri karşılıklı güvendir. Güvenmiyorsanız sürekli başka şeyler düşünmek zorunda kalırsınız, sürekli felaket senaryoları kurgular ve önlem almaya çalışırsınız. Bu da odaklanmanız gereken asıl konudan, projeden sizi uzaklaştırır.

Son olarak
Diyelim ki projeniz başarılı oldu, yüksek bir yatırım aldı. Burada artık sistemin değişmesi, yapının kurumsallaşması gerekir. İç operasyonlara daha fazla kaynak ayrılıp iş yükünün daha fazla parçalara ayrılması, işleyişin ve maliyetlerin daha stabil daha yüksek öngörülebilir olması gerekir. Ancak bu aksiyonlar alınmayıp hala startup kafası ile yönetim devam ederse bir süre sonra tüm işleyiş tıkanacak ve büyüme duracaktır. Bu daha fazla çalışma ama daha az iş, daha fazla stress ve startup firmasına göre daha fazla risk anlamına geliyor. Yöneticilerle fikrinizi paylaşın, baktınız olmuyor istifa edip tatlı tatlı ayrılın, yada zevk almaya çalışın. Tercih size kalmış.

22 Ağustos 2015 Cumartesi

Mr. Robot ve bir çuval incir vakası

Mr. Robot. Herkes bir şeyler yazıyor bu konuda şu aralar. Aslında pek öyle gereksiz trend olmuş konulardan bahsetmeyi sevmem ama son bölümde çığırından çıkan senaryoyu görünce yazmaya karar verdim. Öncelikle bir uyarı, bol spoiler içerir.

Daha dizi başlamadan bir sürü yerde haberi çıkmıştı, iyi bir pazarlama stratejisi uygulandığı her halinden belliydi. İlk bölümdeki senaryo baya aksiyon içeren ancak içerdiği saçma teknik kurgu yüzünden 10 yaşındaki bir çocuğun beyninden çıkmış bir hikaye gibiydi. Daha da absürt bir durum olarak konunun tartışıldığı bir gurupda bilişim güvenliği firması sahibi olduğunu iddia eden birinin şimdiye kadar izlediği en gerçekçi hack kurgusu olduğunu söylemesiydi (: Ne kadar kolaymış bu işler de haberimiz yokmuş.

Neyse bu konu hakkında daha fazla yazmak istemiyorum. Dizi 2. bölümden itibaren daha ayakları yere basan kurgusuyla çitayı yükseltmeye başladı. Gerek karakterlerin performansları, gerek akan senaryo, gerek ilginç sahne görüntü teknikleri diziyi her bölüm daha kaliteli bir hale getirdi. Ancak son bölüm de(9) senaristlere ağzımdan bip li cümleler çıkmasına sebep olan bir olay gelişti. Mr. Robot'un aslında şizofreni bir kafanın ürünü hayali bir karakter olduğu ortaya çıktı. Oysa geçmiş bölümlerde yaşanan olaylar bunun olamayacağını söylüyordu.

Eğer Mr. Robot karakterimiz hayali bir karakter ise aşağıdaki sahnede var olan kimdi?


   Ya bu kimdi?

 Anlaşılan bu karakter Elliot'un kendisinden başkası değildi. Yapımcılar Elliot'un şizofreni kafasını izleyicinin de yaşamasını istemişler ve ortaya böyle berbat bir şey çıkmış.

Ama, yine de bir yanılma payı bırakıyorum. Belki olay sadece şizofreni kafasının hayalinden ibaret değildir. Belki de daha başka bir supernatural bir konu vardır, ve bir ters köşe durumu yaşayabiliriz. Ama sanmıyorum. Yukarıda bahsettiğim gibi amaç Elliot'un şizofreni beynini izleyicilerin de yaşamasını istemek, onlara aktarabilmek, ama ortaya çıkan şey aşağıdaki gibi.

20 Ağustos 2015 Perşembe

Futuristik oyun teknolojisi

Oyun sektörü uzun ve ciddi bir gelişim evresi göstermesine rağmen halen arttırılmış gerçeklik konusunda o kadar başarılı oldukları söylenemez.

Örnek olarak bir savaş oyunu oynadığınızı düşünün. Pc başındasınız, görüş açınız dar, ortam ile fiziksel bir bağınız yok. İçeride kıyamet kopuyor, ama siz olayın dışındasınız. Oculus Vr ve Hololens vb. teknolojiler görüş açısı problemini kısmen de olsa çözmüş ama yine de yetmez. Artık biraz daha içeri girmemiz gerekiyor.


Nasıl bir oyun olmalı?
Öyle bir oyun olmalı ki Oculus Vr deki görüş açısını kask olmadan almamız lazım. Fiziksel etkileşim olması lazım. Mesela ağaçlık bir ormandan geçerken bir ağacın dalından güç alıp kendimizi yukarı çekebilmemiz lazım. Oradaki aksiyonu fiziksel olarak yaşamamız lazım. Ayağımıza takılan bir taş ile düşmemiz lazım. Kaçarken gerçekten koşmamız lazım. Kurşun geldiğinde bunu hissetmemiz lazım. Tekken oynarken suratımıza gelen tekme ile düşmemiz lazım. Böyle bir oyun koku alma haricinde tüm duyularımızı aldatabilir(gerçi o da çözülür). Arttırılmış gerçeklikte başarılıyız denilebilmesi için bu teknolojinin oluşması lazım.

Aslında bu senaryo için şu an uygulanan bazı teknolojiler var. Örnek olarak alışveriş merkezlerindeki arttırılmış gerçeklik kullanan(sanan) simulatörleri gösterebiliriz. Birde Oculus Vr ve Microsoft Hololens benzeri teknoloji görsel teknolojileri kullanan ve buna birazcık fiziksel etkileşim katmayı başarabilmiş bir iki proje de var.(Video'yu bulamadım, bulunca eklerim)

Bu şekilde bir arttırılmış gerçeklik projesini gerçekleştirebilmek için öncelikle pixel monitör gibi araçları çöpe atmamız gerekiyor, yıl olmuş 2015. Bunun yerine daha yenilikçi donanımlara ihtiyacımız var. Fiziksel gerçekliği yaşayabilmemiz için programlanabilir nesneler oluşturmamız gerekiyor.  Aklıma Terminator filmindeki kötü robotumuz T-1000 den esinlenerek şu şekilde bir çözüm geldi.

Bu teknoloji gerçek olabilir mi?
Burada nesnenin tam olarak eriyen T-1000 in tekrar oluştuğu evre gibi olması gerekiyor. Bunu yapabilmemiz için T-1000 de olduğu gibi bir süper sıvı kullanmak istersek bu günümüz teknolojisi ile imkansız. Ama ince programlanabilir sinirleri olan istediğimiz yerinden eğip bükebileceğimiz bir süper ipimiz olursa bu mümkün. Örnek olarak atıyorum 0.10 cm kalınlığında 1 km uzunluğunda istediğimiz yerinden bükebileceğimiz programlanabilir bir teknolojik süper ipimiz olsun. Bu ipimize uzunluğunun yettiği kadarı ile istediğimiz nesnenin şeklini verebiliriz. Ve bu her ne kadar geliştirilmesi zor bir ürün da olsa günümüz teknolojisi ile yapılabilmesi mümkün.

Gelelim bu teknolojinin oyunlar üzerindeki uygulanabilirliğine. Kapalı alanlarda ışık desteği ile bu süper iplemiz vasıtasıyla istediğimiz ortamı yaratabiliriz. Ayrıca oyun sektörü haricinde bu teknoloji bir sürü başka alanda da kullanılabilir, aynı nesne istenildiği takdirde başka bir nesneye dönüştürülebilir. Aslında kapalı ameliyat robotları, endoskopi robotları ve Amerikanın askeri alanda kullandığı süper solucan'ı bu teknolojinin ilkel ataları olarak kabul edebiliriz.

Bir sonraki büyük olay ne olacak?

Mark Zuckerberg'e göre bir sonraki büyük olay 3D içerikler olacak. Oculus VR in yakaladığı başarıdan sonra böyle bir fikir oluşmuş olabilir. Ama bence bu konuda yanılıyor. Benim tezime göre bir sonraki büyük olay Big Data Deep Learning vb. yapay zeka konuları olacak. Hatta bu teknolojilerin gelişimini tamamladığı zaman evrimindeki bir sonraki adımın insansı düşünme ve karar verme yeteneğine sahip olan teknolojiler olacağına inanıyorum.

Neden?
Şimdi tezimi doğrulamak için bir kaç açıklama yapacağım. Big data yapay zeka teknolojileri aslında uzun süredir hayatımızda olmasına rağmen daha çocukluk evrelerini yaşıyor. Şu ana kadar geliştirilmiş olan learning algoritmaları işe yaramalarına rağmen %20 30 oranına kadar yükselebilen hata payları ile output veriyor(image recognition örneği için). Hızlı output verebilmeleri için çok yüksel cpu ya sahip makineler gerekiyor. Şimdi biraz hayal gücümüzü çalıştırıp bu olumsuzlukların yaşanmadığı bir dünya ve bu teknolojinin yapabileceklerinden bahsedelim.

* Belirli bir alanı gözetleyen ve bir hırsızlık durumunda alarm veren akıllı kameralar(Bu şu an yapılıyor, ama başarısı tartışılır)
* Rüzgarın hızı ve havadaki bulutlara göre gerçek zamanlı hava durumu bilgisi
* Gidilecek bir güzergaha map datasından bağımsız olarak verilen yol tarifleri.
* İhtiyacınız olan besinler anlık beslenme durumu raporu.
* Yediğiniz yemeklerdeki besin değerleri kalori sayısı. Aldığınız gereksiz besinler.
* Akciğer muayenesi ve sonucu, kan tahlili, ekg, röntgen gibi testler ve raporu.
* Çocuğunuzun size ihtiyacı olan durumlarda olay gerçekleşmeden önce sizi uyaran bir sistem.
* Duygu durumu raporunuz ve iyileştirmek için neler yapabileceğiniz.

Bunlar şu anda aklıma gelenler. Daha bir sürü alanlar olacaktır bu teknoloji için, zaman gösterecek. Bu yukarıdakilerin akıllı telefonlarda yer alabilmesi için şu anki ivme ile en az bir 50 senesi var diye düşünüyorum. Muhtemelen bu verileri almak için gereken sensör teknolojisi daha önden gidecektir.

14 Ağustos 2015 Cuma

Windows 10 upgrade sorunsalı

Merhaba, bu yazımda Windows'un yeni gelen işletim sistemi Windows 10 ve upgrade maceramı anlatayım.

Efenim, 30 dan geriye Skynet gelecekmiş gibi saydık. Sadece başlat menüsünün bu işletim sisteminde olması cezbetmişti, çekmişti beni. Neyse 29 Temmuz geldi, Windows 10 Twitter'de trend topic oldu, ama benim update bildirimim gelmedi. Bir hafta sonra Twitter üzerinden yetkililere ulaştım ve bir takım manual ayarların anlatıldığı bir sayfaya yönlendirildim. Oradaki işlemleri de yaptım ve Windows'um yüklendi.


Makinem eski olmasına rağmen 7 çekirdekli 16 gb ram li, 2 gb ekran kartlı, ssd diske sahip bir Asus canavarı. İş yaparken makineyi beklemeyi sevmediğim için zamanında kıydım paraya aldım. Işık dengesine karşı hassas gözleri olan biri olarak gün içinde monitör parlaklığı ile sık sık oynarım. Makinem Windows ekran ışığı açma kapama kısayol işlemlerinde geç cevap vermeye başladı. Şüphelendim ama üstünde durmadım. Ne de olsa yeni bir işletim sistemiydi ve o kadar kusur kadı kızında da olurdu.

Bir hafta filan geçti aradan, yeni işletim sistemine çabuk alışmış ve bu güncellemeyi yaptığım için mutluydum. Bu sefer Windows 8 in aksine iyi iş çıkarmışlar diye düşünüyordum. Derken bir ses kartı update i geldi, yükledim ama ses gitti. Neyse yine üstünde durmadım, gittim sürücüyü manual indirip kurdum ses geri geldi. Ama sonra tekrar bu  update geldi yine. Windows 10 da malesef bir update i disable edemiyorsunuz ve kalıyor öyle. Neyse durmadım üstünde yine, yüklemedim. Aynı gün bir de ekran kartı update i geldi. Bu update i de yaptım, yeniden başlattım makineyi. Makine birden sürekli refresh olmaya başladı. Hah dedim bir yerleri bozduk.

Yeniden başlatıp kurtarma seçeneklerine göz attım, virüs filan olabilir diye güvenli modda başlattım, aynı. Sorun Windows da. Sonra tekrar kurtarma ekranına geldim. Değişik bir arayüz olmuş, dosyalarımı koru ve sistemi sıfırlayı seçtim. Ancak makinemde bir tane disk olmasına rağmen 2 sürücü var gibi bir uyarı verdi, yine üstünde durmadım. Kısa bir süre sonra kurtarma başarısız oldu diye bir mesaj geldi. Sinirlenmedim 3. kez kurtarma ekranına geldim. Dosyalarımı sil ve sıfırla seçeneğini seçtim bu kez. Direkt format gibi bir şey galiba diye düşündüm.

Bir yarım saat filan bekledim ve yine bir hata mesajı, "işleminiz tamamlanamadı bir hata oluştu."
Neyse buradan halledemeyeceğim anlaşılan tekrar başlatayım da başka neler yapabiliyorum bakalım diyerek makineyi tekrar başlattım. Ama o da ne. Ekranda gördüğüm mesaj aynen şöyle.
"İşletim sistemi bulunamadı". Kurtaracağım derken Windows u komple silmişim. Ama herşeye rağmen yine sinirlenmedim, hatta gülümsedim. Çünkü boyutu küçük diye değiştirdiğim içinde bir ay öncesinin Windows 7 si bulunan bir diskim daha vardı,verilerim de cloud da olduğu için hiç problem yoktu. Şimdi o diskimi taktım. Windows 7 ile mutluyum. Bir sene daha geçmem herhalde.

Kıssadan hisse. Windows 7 den Windows 10 a upgrade yapmayın arkadaşlar. İstiyorsanız msdn den indirip kurun ama upgrade yapmayın.

27 Haziran 2015 Cumartesi

Sinemaseverler için bir startup, Sinemia.

   Merhaba, bu yazımda benim gibi sinemaseverler için düşünülmüş bir startup projeden bahsetmek istiyorum.  Projenin ismi Sinemia, aylık abonelik modeli ile çalışıyor istediğiniz salonlarda ayda 59 TL gibi bir fiyata 30 kez film izleyebiliyorsunuz. 3 D gözlük maliyetleri de dahil.

  Projeyi sevdim. Çünkü hem bana hitap ediyor, ama daha çok özgün bir proje, ülkemizde çoğu girişimcinin cesaret edemediği bir durum özgünlük.  "Abi omorukada tutmuş bizde kozonuruz" gibi bir felsefeyle yola çıkılmadığı açık ve ciddi bir bütçe ile başlanmış. Bu da projeyi gözümde daha bir saygıdeğer hale getiriyor.

Nasıl kullanılır?
Site üzerinden LinkedIn yada Facebook yolu ile davetiyenizi istiyorsunuz. Projenin mobil uygulamasını indiriyorsunuz. Davetiyeniz birkaç gün içinde kabul ediliyor. Sonra paket seçiminizi ve ödemenizi yapıyorsunuz, bunu takiben 3-4 gün içerisinde kartınız adresinize ulaşıyor. Zarfımız aşağıdaki gibi.


Zarfımızdan kartımız ve faturamız çıkıyor. Sonra indirdiğimiz mobil uygulamadan giriş yapabiliyor oluyoruz. Mobil uygulama ekranında en yakın sistemi kullanabileceğimiz sinema salonları listeleniyor. Hemen hemen her yerde varlar. Ve yazmadan edemeyeceğim, eğer özel bir durum değilse benim tecrübe ettiğim, müşteri destek bölümü gerçekten 7x24 çalışıyor.

Sonrasında işin benim için zor kısmı şöyle oldu. Favori sinema salonlarımdan olan Levent Metrocity deki Cinemapink' e gittim. Görevli kıza gidip ben sinemia kullanıyorum onun için biletim ücretsiz olması lazım gibi bir cümle kurdum, kafasını öne eğip gözlerini bana doğru dikerek anlamsız anlamsız yüzüme baktı. Sonra kartımı gösterdim. Hayır bu bizde geçmiyor dedi ve ellerini açıp kafasını iki yana sallayarak yapabileceği bir şey olmadığını söyledi. Biraz sinirlerim bozuldu, sinema başlamak üzereydi ve tekrar sıraya girersem seansı kaçıracaktım.. Ama o anlık yapabileceğim daha fazla bir şey yoktu, çıktım sıradan.

 Destek departmanına hemen bir mail gönderdim. Birkaç dakika sonra gelen cevap da kartımı kredi kartı gibi kullanabileceğim ve başka bir açıklama yapmam gerekmediği söylendi. Ala, tekrar girdim sıraya. Bu kez kartım pin kodu istedi! Hay Allah. Yine çıktım sıradan tabi, yine yazdım. Gelen cevap da pin kodumun kartın son 4 hanesi olduğu söylendi.  Bu şekilde 3. kez sıraya girdiğim zaman biletimi alabildim. Zaferimi masaj koltuğu ile kutladım.


Çözüm?
Sizde bunları yaşamak istemiyorsanız kartı kredi kartı veriyormuş gibi verin, görevli sorarsa bu ne diye, kredi kartı gibi kullanabilirsin deyin. Pin kodunuz da kartınızın son 4 hanesi.

Projenin eksileri.
* Mobil uygulama tam olmamış, kapattığınız zaman tekrar giriş yapmaya çalıştığınızda kullanıcı bilgilerini her seferinde tekrar girmeniz lazım.
* Yine mobil uygulama da destek departmanına yazarken yazdığınız yazıları göremiyorsunuz. Input klavyenin arkasında kalıyor.
* Telefon destekleri yok.
* Kartın pin kodu ile ilgili bir açıklama gelen dökümanlarda yok.

Son olarak
Sahipleri kimdir bilmem, ama canı gönülden desteklediğim ve başarılı olmasını istediğim bir proje. Tahminim kısa vade değil ama orta ve uzun vade de her türlü kazanma potansiyeline sahip. Şayet sinemaya sıklıkla giden biri iseniz, ya da uygun bir maliyete gitmek isterseniz bu sistemi kullanmamanız için pek bir sebep yok.

İki yıl sonra gelen edit:
Yatırım alındı, proje büyüdü, ala. Ancak halen bir müşteri ilişkileri telefonunun olmadığı söylendi, kontrol ettiğimde ise bunun doğru olduğunu farkettim. Bu kafayla mı global olmayı düşündünüz pampalar. Olmuyor Sinemia, bu saçma sapan, shit!

25 Haziran 2015 Perşembe

Yeni Erke dönergecimiz HMSB

 Merhaba, bu yazımda millet olarak imkansızların insanı olduğumuz tezini haklı çıkaran daha önce de örneklerini gördüğümüz bir firmadan bahsetmek istiyorum. Firmanın ismi hmsbturk.

 Başlıktan  anlaşılacağı üzere yaptıklarını iddia ettikleri ürün çoğumuzun bir yerlerden aşina olduğu erke dönergeci modelinin çalışır hali. Bilimsel tahminler üzerine o kadar da radikal değilim, tamam termodinamik var Einstein var ama onlardan önce de birileri vardı. Yani bilimsel tahminler için imkansız kelimesi kullanmak bana göre sığ beyinlerin işi. Ancak bu bahsettiğimiz firmanın şarlatan olduğuna büyük ölçüde eminim.

Sadece kafamı karıştıran bu zamana kadar nasıl oldu da patlamadılar? Birkaç yıldır geliştirdik yasal sorunlar, patent gibi açıklamalar yapıyorlardı. Geçmişte bir iki mail gönderdim ve tabi ki cevap gelmedi. Şimdi de iddia ettiklerine göre satışa başlamışlar. Ama bu çok sağlam bir çıkış, bence o çok beklediğim patlama yakındır.

Birkaç olasılık var neler olup bittiği ile ilgili. Ya oldukça profesyonel bir toplum mühendisliği örneğine şahit oluyouz, ya yaptıkları hiçbir faaliyet yok dolayısıyla patlamaları için bir sebep de yok, ya da gerçekten bu ürün yapıldı ama kamillerin ne yaptıklarından haberi yok (:

Bence 2. seçenek. Ama yine de umarım gerçekten bu ürün yapılmıştır ve bende hiç gocunmadan bir özür yazısı daha yazarım. Şimdi bu ürünün yapılabildiğini farzedersek neler olabileceği hakkında kısaca fikir yürütelim.

Öncelikle normal fizik kurallarının abc si olan termodinamik yasaları toptan çöpe gidecek yada güçlü bir değişime uğrayacak. Teorik fizik çalışmalarında patlama yaşanacak. Dünya tekrar eskisi gibi yeşil ve mutlu olabilecek. En önemlisi bu makine yoktan var etme yeteneğine sahip, bilmem anlatabiliyormuyum. (:

Sonra buna bağlı olarak evren in içerisine kendi enerjisi haricinde, yeni enerji girişi olacağı için bu vucuttaki bir tümör misali büyüyecek ve evren kararsızlaşıp yok olacaktır, yada dünyanın merkezi olduğu yeni parelel evrenler oluşacaktır. Belki de bahsedilen kıyamet budur (:

Amerikanvari bir laf ile bitireyim. Adamım bu bilim kurgu yazarlarının bile işlemediği bir durum.

19 Mayıs 2015 Salı

Issue Tracking araçları ve önemi

  Merhaba, bu yazımda tech proje geliştirme sürecinde task yönetimi ve bunun öneminden bahsetmek istiyorum.

Task yönetim araçları nerede kullanılmalıdır?
Ekibiniz 2 yada daha fazla kişiden oluşuyorsa ve projeniz bir haftalık kısa bir proje değilse  bu araçlar kullanılmalıdır.

Neden?
Şöyle bir senaryomuz olsun. Önemli bir geliştirme görevimiz yada yeni bir projemiz olsun ve deadline miz 3 ay, ekibimiz 5 kişi. Normal Türk usulü olarak bu geliştirme nasıl yapılır tahmin edebiliriz az çok. Proje yöneticisi bir toplantıda görev paylaşımı yapar, Tasklar kağıt kalemler, word excel mail vb. araçlarla elektronik ve yazılı ortama aktarılır.

Başlarda her şey yolundadır. Ancak task sayısı yükseldikçe yavaş yavaş kazan kaynamaya başlar. Taskların bazıları unutulur, bazıları aslında tam yapılmamıştır. Hangi task yarım hangisi bitmiş hangisi başlanmamış gibi konular için oldukça fazla zaman harcanmaya başlar. Kimse projenin ne durumda olduğunu göremez, ne yapması gerektiğini bilemez. Sonu her daim kaos ve ekip içinde yüksek oranda negatif enerji yoğunluğudur.(bunu gördüğüm yerden kaçarım)

Ekip üyeleri anlayamadıkları tasklar için proje yöneticisi ile tekrar iletişime geçer ve task hakkında bilgi alır (burası en tahammül edemediğim kısımdır). Çünkü tamamen boşa harcanan bir zaman ve etkileşimdir.
Bu kullandığınız task yönetim tekniğinin sadece kıytırık bir mail kadar işe yaradığını gösterir.
Eğer bir task açılıyorsa bu taskın anlaşılabilir olması için harcanan zaman burada harcanmalıdır.

Task açıldığında görevlendirilen kişi tekrar bilgi için geliyorsa, ya iki taraftan biri ekipte çok yenidir, ya task aracı problemi ifade etmede yetersiz kalıyordur, yada task ı açan kişi bu konuda beceriksizdir.

Ne yapmamız lazım?
  Bize şöyle bir şey lazım. Öyle bir şey olması lazım ki, taskları açarken problemi herkesin anlayabileceği şekilde ifade edebilmemiz ve bunu yaparken sadeliği koruyabilmemiz lazım. Yani aynı zamanda task ile görevlendirilen kişi de görevi anlamak için fazla zaman harcamaması lazım.

 Öyle bir şey olmalı ki binlerce task olsa bile hangisinin ne durumda olduğunu çat diye görebilmem lazım. İstediğim bir filtrelemeyi kaydedip sonra tekrar aynı işlemi yapmadan bu sonuçları alabilmem lazım.

 Öyle bir şey olmalı ki, ekip üyeleri diğer üyelerin taskları arasında filtreleme yapmadan sadece kendi görevlerini görebilmeli, ama aynı zamanda diğerlerinin yaptıklarını da isterse takip edebilmeli.

Bunları başardık ne oldu şimdi?
Şimdi elimizde tıkır tıkır yürüyen bir sistem var. Görevler konusunda fazla konuşulmuyor çünkü gerek kalmıyor. Bu da ekibin stres yükünü önemli bir ölçüde alıyor. Ekip üyeleri ne yapmaları gerektiğini düşünmek zorunda kalmıyor, çünkü taskları var.
Ancak bu demek değildir ki kimse konuşmuyor herkes makineleşmiş çalışıyor. Aksine herkeste keyifler yerinde olduğu için ve eskisine göre çok daha fazla boş zamanları olacağı için, ekip eskisinden daha iyi birbiriyle etkileşim halinde.

Bu iş için hangi yazılımı kullanmalıyız?
Piyasa da ekip içi etkileşim ve task yönetimi ile ilgili pek çok araç mevcut. Ancak yukarıda bahsettiğim problemleri çözebilen, aslında komplex olup ayrıca basit olmasını becerebilen, pek çok task yönetim aracı kullanmış birisi olarak benim favorim Jira var. (İsteniyorsa Agile&Scrum metodolojileri ile harika bir şekilde kullanılabiliyor).

Daha önce bir iki firmada (bazı çalışanların bana ayar olmasına rağmen) ısrarım ile bu sistemi entegre ettim. O zamanlar bu süreç benim için problemli olsa da, eminim ki şu an bunu yaptığım için tüm kullanıcılar memnundur.
Son dipnot olarak bir şey daha, bu araçların içinden Trello kullanacaksanız, e-mail üzerinden devam edin, pek bir farkları yok. Trello kadar olamasa da Asana da öyle. Ve büyük bir ekip olup da task yönetimi aracı olarak bunlardan biri kullanılıyorsa o ekip yada firma için üç ünlem olsun beyninizde.

İlerideki günlerde Jira kullanımı ile ilgili eğitsel makaleler de yazacağım.


1 Mayıs 2015 Cuma

Talking.Zone

Merhaba,

Bir heves başladığım ve demosunu çıkarttığım sosyal medya projemi sonraki süreçlerde development için zaman ve iş geliştirme için maddi maliyetleri karşılayamayacağım için, projeyi devam ettirmeyi düşünen birine alan adıyla birlikte hediye etmek istiyorum.

Proje Adresi
https://talking.zone

Hedef Kitlesi Kimler? 
Ücretli müzik servisi kullanmayan sosyal medya kullanıcıları.

Neler var?
  •  Twitter e benzer bir arayüz var. Ancak tt kısımlarında müzikler var. Lokasyon bazlı trendler takip edilebilir.
  • Müzikler Youtube üzerinden geliyor ve Streaming yükü client ve Youtube sunucuları arasında. 1 milyon kişi müzik dinlese bile sunucunuz tık demez.
  • Questions kısmında kullanıcılar birbirleri ile soru cevap şekllinde etkileşime girebilir. Kullanıcı isterse bunu diğerlerinin görebileceği şekilde yayınlar. Sorular anonim kimlik ile de sorulabilir.
  • Yapılan yazılı paylaşımlar kategorize edilebilir. Aranılan paylaşımlara daha rahat ulaşılabilir.
  • Kod olarak .Net veritabanı olarak Sql Server Kullanıldı.


Eksik kısımlar
  • Mobil app ler.
  • Tasarımı ben yaptığım pek iyi durmadı ve genel olarak %30 civarında tarayıcı ve ekran çözünürlüğü problemleri var. Test edilirken mobil yada tablet tarayıcılardan denenmemesi tavsiye edilir.
  • Kodların normalize edilmesi gerekir. Ancak bu hali bir iki yıl gider.


Sonraki süreç de neler yapılmalı?
Benim kurguladığım modelde projenin piyasada kendine yer bulup bulamayacağı 1 yıllık development + iş geliştirme süreçlerinden sonra belli olacaktır. Siteye kullanıcı çekilip(add vb.) daha sonra oluşan tepkilerin analiz edilip geliştirme yapılması gerekmektedir. Development maliyeti hariç aylık min. 2500  max. 10.000 TL arasında bir iş geliştirme maliyeti olacaktır.

Şartlar

  • Bir isteğim var, o da 1 yıl boyunca yapılan tüm iş geliştirme aksiyonları, maliyetler ve tepkiler benim ile paylaşılacak.

İlgilenenler "serdarrah@gmail.com" üzerinden bana yazabilir.

Güncelleme:
Konu güncel değildir.



18 Nisan 2015 Cumartesi

Startup'lar için projeye başlangıç stratejisi nasıl olmalıdır?

Merhaba, bu yazımda yeni yapılacak Startup bir projenin development başlangıç aşamasında nasıl bir yol izlenmelidir, bu konu hakkında deneyimlerimlerimden yola çıkarak fikirlerimi paylaşmak istiyorum. Umarım birilerine faydası olur (:


Önemli olan nedir?

Eğer yeni bir startup girişiminiz varsa öncelikle bu konuyu netleştirmeniz gerekli. Sizin için zaman ne kadar önemli?  Bu durum cebinizdeki para ile direkt olarak orantılır. Paranız ne kadar çok ise o kadar zamanınız vardır.

Teknik yönü ağır basan birilerinden danışmanlık, fikir alıyorsanız  development aşamalarının önemine vurgu yapar, ve kaliteli kod yazmak ister. Kendince haklıdır, çünkü resmin diğer tarafını göremez. Cebinizde ne kadar para var bununla pek ilgilenmez. Ona göre kod kalitesi en az zaman kadar önemlidir. Peki hangi durumda kod kalitesi önemlidir, hangi durumda zaman kod kalitesinden daha önemlidir?

1. model = Az kod çok iş
Eğer projenizin lokasyon olarak başka bir örneği yoksa, örneğin Amerika da tutmuş bir projeyi Türkiye de denemeye çalışıyorsanız sizin 1. önceliğiniz üründür. Aynı projenin Amerika da ki etkisi ile Türkiye de ki etkisi aynı olmayacaktır. Bir an önce ürünü çıkarıp etkilerini izlemeniz ve daha sonra oluşan tepkilere göre projeyi revize etmeniz gerekli. Burada zaman çok önemli bir unsurdur, zaman ne kadar artarsa maliyet de o kadar artar. Elinizde uygulanabilirliği kanıtlanmış bir model olmadığı için de proje development aşamasında başlangıçta düşünülenden çok daha farkı modellere dönüşebilir. Bu durumda kodunuzun kalitesi ne olursa olsun bazı yerleri tekrar yazmak zorunda olacaksınız. Yani projeye başlarken mümkün olduğunca az kod ve çok iş yapmanız gereklidir.

Ancak bu metodolojinin de dezavantajları var tabi ki. Diyelim ki temel ürünü çıkarttınız ve modeli stabil hale getirdiniz, ışığı gördünüz. Ancak işiniz burada bitmiyor, daha fazla büyüme için daha fazla geliştirme gerekli. İşte burada bu sistem kısa bir süre sonra tıkanır. Eğer az kod çok iş felsefesiyle başladığınız projenin üzerinden yürümek isterseniz, geliştirme maliyetiniz kaliteli yazılmış koda göre çok daha fazla maliyetli olacaktır.

Nasıl bir maliyet? 
Örneğin aynı geliştirme iterasyonu kaliteli kod ile yazılmış bir projede 1 gününüzü alıyorken, bu modelde bir haftanızı alabilir. Hatta bir süre sonra geliştirme yapılamıyor hale gelebilir. Proje yazılımcıya bağımlı bir hale gelecektir, yeni gelen bir developer in projeye entegrasyonu çok uzun bir zaman alacaktır. Neresinden bakarsanız bakın problem yani (:

Bunun önüne geçmek için de versiyon 2 projesinin versiyon 1 den bağımsız olarak tekrar yazılması gerekir. Yani aynı projeyi 2 kez yazmış olacaksınız. Bu 2. aşama 1. aşamanın %20-30 u kadar zaman maliyeti oluşturabilir. Ama bu kabul edilebilir bir maliyetdir. Sonuçta ürünüz çıkmış, iş modelinizin etkilerini izlemiş ve uzun vadede oluşturabileceği etkileri artık görebiliyorsunuz. Proje yönetim modeli olarak en uygun Spiral model kullanılabilir.

2. model = Çok kod, çok zaman
Eğer yapacağınız projenin lokasyon olarak başka bir örneği varsa, mesela yemek sepetinin bir klonunu yapacaksanız projeye başlamadan nasıl bir ürün çıkacağına dair elinizde bir modeliniz vardır. Projenin potansiyel etkileri hakkında bir know-how a sahipsiniz. Yani çıkacak ürün belli, ki en büyük problem budur zaten. Bu model de az kod çok iş yerine, çok ama kaliteli kod, çok iş felsefesi ile gitmek en mantıklısı olacaktır. Çünkü çıkacak ürün belli olduğu için ve development aşamalarında iş modelinde bir değişim olmayacağı için extra zaman maliyeti oluşmayacak,  kaliteli kod yazdığınız içinde yazdığınız kodu tekrar yazmak zorunda kalmayacaksınız. 1. model de bahsettiğim olumsuzlukların da önüne geçilmiş olacak. Proje yönetim modeli olarak Waterfall modeli uygulanabilir.

Son olarak en fazla karşılaştığım bir yanılgıdan bahsetmek istiyorum. Developer maliyeti zaman maliyetinden daha önemli bir konu değildir. Yani bir developer 3 ister diğeri 7 istiyorsa kısa vadede 3 isteyeni seçmek yerine 7 isteyen neden bu kadar fazla istiyor bunu anlamaya çalışın. Tabi bu durum teknik bir co-founder yoksa geçerli, varsa zaten bu konuya kafa yormanıza gerek yok.

6 Nisan 2015 Pazartesi

Herkesin anlayabileceği şekilde Cern laboratuvarı

 Merhaba, bu yazımda Cern' de bulunan dünyanın en büyük parçacık çarpıştırma laboratuvarı hakkında konuya meraklı herkesin anlayabileceği şekilde neler olduğundan bahsetmek istiyorum.

Yanlış Bilgiler

 Öncelikle birkaç yanlış bilgi var internet üzerinde dolanan bunlar hakkında yazayım istedim. Çarpışma sonrası çok büyük muazzam bir enerjinin açığa çıkması durumu yanlış bilgi. Evet burada bir çarpışma ve patlama oluyor, çarpıştırıcı makinenin soğuması ve bir başka deney için hazır hale gelmesi aylar sürebiliyor. Ancak çarpışan maddeler atom altı çok küçük maddeler ve açığa çıkan enerji de çok düşük.

En son pupuler bir blog sitesinde çarpıştırıcı tünelinde sadece iki proton parçacığının bulunduğunu ve bunların çarpıştırılacağını anlatan bir makale okudum. Bu da yanlış bilgi. Evet aslında incelenen çarpışan iki atom altı parçacığın çarpışıp patlaması. Ancak bu çarpışma matematiksel olarak iki parçacığının da birbirine eşit şekilde baskı yapması sonucu oluşabiliyor. Şöyle düşünün, siz iki kurşunun havada çarpışıp birbirine kaynak olmasını istiyorsunuz. Bunu yapmanız için karşılıklı ateşlenen iki silahın da açılarının mikro ölçülerde ayarlanması gerekli. Yoksa kurşun birbirine vursa bile sekebilir.

Ama atom altı parçacıklar için bu matematiksel ölçümün yapılması ve iki parçacığın hatasız bir şekilde çarpıştırılması günümüz teknoloji ile imkansız. Burada hızlandırıcı tüneli devreye giriyor. Yapılabilen en iyi matematiksel ayarlama ile parçacık demetleri hızlandırılıp birbiri üzerine gönderiliyor ve çarpışma sağlanıyor. Çoğu çarpışma yukarıda bahsettiğim gibi sekme ile sonuçlanıyor ki istenilen bu değil. Ama arada bir kaç tane parçacık mükemmel matematiksel açılarda birbirine çarpıyor ve patlıyorlar.

Sonra Ne olacak?

İşte tüm olay çarpışma sonucu oluşan patlamadan sonraki mikro saniyeler diliminde neler olduğu. nelerin açığa çıktığı, nelerin değiştiği ile ilgili. Bilim adamları bu sayede Big Bang sonrasındaki birkaç saniyede nelerin olup bittiği hakkında yeni kanıtlar bulabilecekler, kozmik şişme denilen evrenin Big Bang sonrasındaki yüksek hızla gerçekleşen(ışık hızının milyon katı) genişlemesini açıklayabilecekler.

Teorik fizikçiler arasında da populer olan string teorisi hakkında da deney sonuçlarında teoriyi doğrulayan kanıtlara ulaşılması hedefleniyor. Eğer somut kanıtlara ulaşılabilirse insanlık tarihinin açık ara en önemli buluşu olacak. Neden bu kadar önemli olacağı konusuna kısaca değinirsek, uçan arabalar ve ışık yılı uzaklığındaki mesafeye birkaç saniye içerisinde gitmek mümkün olabilecek. Zaman nasıl bir şeydir konusu daha net açıklanabilecek.

Aslında Cern gibi, ondan daha eski başka laboratuvar da daha var. Cern' i bu kadar özel ve populer yapan çarpıştırma tünelinin diğerlerine göre çok daha büyük olması ve ekibin diğerlerine göre çok daha kalabalık olması. Büyük tünel, daha fazla çarpışma ve daha hızlı sonuç anlamına geliyor.

Not: Fizikçi değilim ve fizik birikimim de internet ve belgeseller sayesinde, sadece meraklıyım. (:  Yanlış bilgi verdiğimi düşünenler bana yazabilirse sevinirim.

29 Mart 2015 Pazar

Smartface App Studio İnceleme

 Merhaba, bu yazımda çoklu platfom mobil uygulama geliştirme aracı Smartface App Studio'dan bahsedeceğim. Türk Amerikan ortaklığı bir girişim.  Beklentimin üzerinde bir ürün ile karşılaştığımı söyleyebilirim.

Nedir, Nasıl kullanacağız?
Özellikle mobil uygulama geliştirmeye yeni başlayacaklar için çok uygun bir Ide. Windows platformunda Android ve IOS native projeleri geliştirebiliyorsunuz ve Eclipse gibi toolların arasında boğulmuyorsunuz.
Yükleme kısmı da oldukça kolay  internet sitesinden setup dosyasını indirip çalıştırdığınız zaman çıkan wizard zaten yüklenmesi gereken her şeyi yüklüyor. Size sadece next butonuna basmak kalıyor.

Beğendim
Windows platfomunda IOS yazmak uzun zamandır var olan bir problemdi. Bu kısmı test edemedim ancak eğer Android bölümü gibi basitse Smartface Studio piyasada bulunan diğer ürünlere göre daha ucuz ve daha kullanışlı. Kurup çalıştırmak için de 40 takla atmak zorunda kalmıyorsunuz.
Android uygulaması geliştirmek de oldukça basit. Bilgisayarınızı kasmıyor. Çat diye çalışıyor. Sıkıştığınız yerlerde dökümanlara bakıp problemi çözebiliyorsunuz. Ücretsiz bir ide olduğu için community si de hiç fena değil.

Daha iyi olabilir
Ide yi kapatıp açtığım zaman boş bir project browser geldi karşıma. En azından son çalıştığım projeyi görebilsem iyi olacaktı.
Design objelerini sabitleyip sürükle bırak yaptığım zaman her defasında insert menusunun altından son aldığım obje ekleniyor.
General mobile telefonumu emulator olarak kullanırken biraz sorun yaşadım. Bir kaç kez kapandı uygulama.

Benim hoşuma gitti. Benim gibi başlangıç seviye mobil geliştiriciler için kullanışlı bir ürün.

27 Mart 2015 Cuma

İdealist Matrix teorisi ve çürütülmesi

Merhaba, bu yazımda uzun zaman önce yaşadığım ilginç bir anımı yazacağım. Umarım hoşuna gider.

Matrix serisini izlemişizdir bir çoğumuz. Kahramanımız Neo bir koltuğa bağlanıyor ve beynine bağlanan elektrotların gönderdiği sinyaller sayesinde  bambaşka bir ortamda ortaya çıkıyordu. Doğal olarak bende filmdeki felsefi bakış açısından etkilenip bu felsefi teori için kim neler demiş araştırmaya başladım. Hatta itiraf etmek gerekirse filmi ilk izleyişimde birçok repliğin hangi anlama geldiğini pek çözememiştim.


Teoriden ilk Platon bahsetmiş. Sonra George Berkeley ismine rastladım.Teorinin bahsettiği kısaca, dünya evren hatta madde denilen bir şeyin olmadığı, dışarıda gördüğümüz hissettiğimiz her şeyin aslında sadece beynimize gönderilen sinyallerden ibaret olduğu. Yani teoriye göre hepimiz bir Matrix'in içindeyiz ama bundan haberimiz yok.

Düşünüldüğü zaman olmayacak şey değil. Etrafımızdaki her şeyi duyu organlarımızın beynimize gönderdiği elektrik sinyallerine göre yorumluyoruz. Tek referans noktamız bu sinyaller. Duyu organlarımız çalışmasaydı muhtemelen bir hiçliğin içinde olduğumuzu hissediyor olacaktık. Nesnel olarak neye benzediğimizi bile bilemiyor olacaktık. Eğer duyu organlarımızın gönderdiği sinyallerin teknoloji yardımıyla beynimize gönderilmesi bir şekilde mümkün olsaydı, beynimiz de gelen sinyallere sorgulamadan inanacak ve nasıl bir ortam isteniyorsa orada olacaktık. Eşittir Matrix.

Teori çürütülmüş mü, nasıl olmuş da çürütülmüş biraz da bunlara bakayım istedim. Akademik bir şey bulamadım. Birkaç yerde karşıma şöyle bir örnek çıktı. Berkeley döneminde teori karşıtlarından biri gözünü kapatıp bir taşa tekme atıyor ve bu sayede teoriyi çürüttüğünü iddia ediyordu. Taş sadece kendi zihninde olan bir şey ise gözü kapalı halde taşa tekme atamaması taşın orada olmaması gerekiyordu. Bu çok saçma bir iddiaydı. Çünkü gözleri kapatmak bilinci kapatmak, yada duyu organlarını kapatmak anlamına gelmiyordu. Yani bu hareketin teoriyi çürütmesi pek mantıklı değildi.

Gerçekten böyle miydi acaba? Aslında 21. yüzyılda değil de teknolojinin çok daha ilerlediği bir dönemde mi yaşıyorduk? Aslında bir beyinden mi ibaretiz sadece? Neo gibi bir tüpün içinde uykuda mıyız? Tanrı bizi bir monitörden izliyor olabilir mi? Bende bug mı var?


Bunları düşünürken bilgisayar karşısında uyuyakalmışım. Kafamı bilgisayarımın toucpad ine vurarak uyandım. Karşımda ise son okuduğum makale duruyordu. Ama galiba bu şekilde uyanarak teoriyi çürütmüştüm.

Çünkü uyuduğumun farkında değildim, ve rüyamda yine kafasını kopartmadan öldüremediğim siyah tüylü hızlı yaratıklardan biri ile karşılaşmıştım. Bilinç ve duyu olarak bambaşka bir ortamda olmama rağmen kafam yer çekiminin etkisiyle düşmüş ve bilgisayarıma vurmuştu.

Bu da şu anlama geliyor. Bilincim ve algılarım değişse bile, dünya var, bilgisayarım var, kafam var, yer çekimi gerçek. Yani madde var.

Güncelleme:
Gelen bir kaç mail sonrası teorinin bu şekilde neden çürüyeceğini biraz daha açıklamak istiyorum.
Bilinç ve duyu olarak başka bir boyutta bir canavar ile kapışmak üzere olduğum halde, dünyadaki halim yine dünyaya özgü bir şey olan yerçekiminden etkilenip beni diğer boyuttan çıkartabiliyor.

Eğer teoride biraz kuantum fiziği eklenseydi, yani bilincin aynı anda birden fazla yerde olabileceğinden bahsedilseydi bu eylem teoriyi çürütmeye yetmeyecekti. Bu eylem şu ihtimalleri oluşturur. Ya kuantum fiziğinde bahsedilen aksiyonlardan birini yaşıyorum, bir boyutta uyurken diğer boyutta bir canavar ile kapışıyorum, yada sadece rüya görüyorum.  Teori her iki durumu da desteklemiyor.




22 Mart 2015 Pazar

Benim Bilim Kurgu Senaryom

 İki gündür yaşadığım performans düşüklüğünü olabildiğince odaklanmaya çalışmama rağmen yenemeyince, bir şey düşünürken aralara girip girip kendini geliştiren bir bilim kurgu senaryomu yazayım dedim. Belli mi olur, özet geçtiğim senaryo Hollywood'da birilerinin ilgilisini çeker ve yukarıda kullandığım "performans düşüklüğü" terimi yerine bu durumu "tükenmişlik sendromu yaşıyorum" olarak da açıklayabilirim..

Neyse, sadede gelelim.. Hikayemizin lokasyonu tabiki Amerika. Teknolojik olarak yapay zeka teknolojisi oldukça gelişmiş ve insan beynini taklit edebilen makineler var, ancak hiçbiri bağımsız değil. Tek bir merkez üzerinden uzun vadeli komutlar geliyor. Enerji problemi ise çözülmüş ve herkesin evinde radyoaktif atık bırakmayan taşınabilir reaktörler var. Fosil yakıt devri bitmiş, sera gazları sıfırlanmış. Tüm iş gücü makineler üzerine yıkılmış. Dünya'da çoğu yer güllük gülistanlık.

Kötü adamımız ise yapay zeka teknolojisinin fikir babası olduğu halde hükümet ve diğer bilim adamları tarafından kazıklanmış, kendi geliştirdiği yazılım sisteminde işçi olarak çalışan bir mühendis yazılımcı. Uzun yıllar kusursuz bir plan hazırlıyor ve dünyanın tek yapay zeka yönetim merkezini tek başına ele geçiriyor. Yönetim merkezinin geri alınması çok zor. Ağır silahlı robotlar tarafından konuyor. Her türlü hava saldırısını bertaraf edebilecek güce sahip hatta nükleer saldırılara dahi karşı koyabilecek bir savunma sistemi var.

Dünya üzerindeki tüm iş gücü ve askeri olarak olarak kullanılan robotlara merkez üzerinden komutlar göndererek olabildiğince kargaşa yaratıyor. Kaos çıkıyor, cinayetler işleniyor. Ancak robot isyanı askeri birlikler tarafından bastırılıyor. Ama...!

Kötü adamımız robotların bozguna uğrayacağı senaryoyu da düşünmüş. Yine kendisinin planladığı bir projede araştırma uydusu olarak kullanılan bir uydu da görülmemiş bir silah mevcut(ismini Galeos verdim). Bu uydu kandaki ph dengesini ölümcül olacak şekilde bozan kuvvetli bir radyo dalgası üretip dünyaya gönderebiliyor..

İlk önce yönetim merkezini kuşatmış olan askeri birlikler üzerinde deniyor silahı. Binlerce asker aniden pili bitmiş makineler gibi kalıyor. Yeni silah karşısında dehşete kapılan insanlar uyduyu yok etmek için füzeler gönderiyor, ancak bu füzeler ele geçirilen yönetim binasından fırlatılan savunma füzeleri ile havada imha ediliyor.

Sonra başarılı bir uçak pilotu kahramanımız çıkıyor(bu Tom Cruise olabilir), ve yörüngedeki uyduya yapılacak bir intihar saldırısında başarılı olabileceğini yetkilileri ikna ediyor. Uçağımız yola çıkıyor, ve arkasından gelen pek çok füzeyi imha ediyor, fırlatılan füzeleri bertaraf etmenin tek yolu vurmak, ve maalesef yerden fırlatılan füze sayısı kendi cephanesinden daha fazla. Uçak vuruluyor, iyi adamımız ölüyor.

Sonrasını bende bilmiyorum henüz.