PhpKonf istanbulda php konferansı

Her gün işe gitmek için kalktığımdan 1 saat erken kalkarak, işe giderkenki yolun 100 katını katederek (iş yeri arka sokakta) ulaştığım konferans mekanı beşiktaş meydandaki bahçeşehir üniversitesi. Gişini uzun süre dolanarak tahayüll ederek en berduş yere doğru yöneldim, ki %40 doğruymuş, %60 biraz daha ara sokaktan, starbucks ve başka bir kafenin ortasından girince olan yer.

Bu kadar kalabalık beklemiyordum. Tmm merkezi bir yerdeyiz, beşiktaş, tatil günü (tabiki normal çalışanlara göre tatil, bana değil normalde) olan cmt, Ama belki de bu kadar popüler bir dil hakkaten php. Bilmsellikten ve yaparızcılık, hallederiz abicilikle örülü ama gerçekten herkesin hayran olduğu bir dil.


Herkes lafını etkinliğin düzenleyicisi ubit'e dair kullanıyorum. Eğer hızlı bir şekilde çıkmak, uygulamanızı çalışır yapmak istiyorsanız kullanacağınız en sağlam seçenek PHP. Php programcının isteklerini en basit şekilde "çalışır" kod üretmek için hazırlanmış. Doğal olarak bu konferansın amacı da ortaya çıkıyor: Php ile nasıl güzel kod yazılır. Nitakim bu kadar hızlı ve esnek serbestlik sağlayınca dil, bir toparlama gerekiyor.

İlk konuşmada Osman Ürgür Adam olacak kod böyle bir gereksinimi dillendiriyordu. Hızlıca kötü yazılmış kodu, adam etme işi. Limango'da ellerinde almanca değişkenler, veritabanı yapısı ve spagetti kodla karşı karşıya kalmışlar. İhtiyaçlar gelecek düşünülmeden koda eklenmiş. Hızlı bir oldu/tamam doğal olarak gelecekte kodun anlaşılmamasına, değişiklik yapılma zorluğuna ve hata üretebilirliğe yol açar. php versiyonu ile (5.1 hakkaten eski) cebelleşmelerinden, laravel'in custom sürümünü kullanarak api geliştirmelerinden ve api ile önce servisleri sonra mobil tarafı yazarak bir yandan da front endde geliştirerek eski koddan kurtulma macerasını anlattı.

Bence konferansın en ilginç konuşması Php ile Test güdümlü geliştirme sunumuyla Osman Yükselindi. Hani duyduğum, denemek istediğim bir konsept, fakat nasıl yapılır, ne ediliri göremiyordum. Örneklerle üzerinden gittik. Test driven yazmak için kodu, önce kod yazmamak lazım olduğunu, önce testleri yazma gerekliliği hakkaten çok ilginçti. Bir de aklıma takılan, yaw peki mail atmıcaksak boş sınıfları nasıl yaratıcaz sorumu, mock'ladı.

Elasticsearch ve Solr ile Hüseyin Mert kulağımıza  su kaçırmak istediğini ifade etti. Emir Karşıyakalı, rest'den bahsetti. Kısaca soad metodlarınızı gösterir, çalışmayı ifşa eder, sadece post kullanır, http hata kodları ile çalışmaz rest iyidir dedi. Tayyar Beşikçi, MongoDB anlattı. İbrahim Gündüz, Tatil.com'da beraber çalıştığımız arkadaşım, yük altında asenkron hayat şeklinde, yüksek performanslı uygulamalarda, hemen yapılmayabilecek işlemleri Message Queue atarak asenkron kod çalıştırmadak konseptual bahsetti. Log, Mail, sms, ödeme, belki search asenkron çalışabilir. Siz mesaj kuyruğuna isteği yazarsınız, consumer/subscriber program kuyruktan işleri alarak gerekeni yapar. Böylece mesela mail atacaksanız, işlemi kuyruğa atıp kendi prosesinizi kapatırsınız.

Muhittin Özerin sunduğu İlişkisel veritabanları ve Doctrine'de çıktım. Ne yazıkki nginx sunumunu kaçırdım.


Doctrine ORM Sunumu hakkında

PhpKonf istanbulda php konferansında Muhittin Özerin  İlişkisel veritabanları ve Doctrine sundundu.

Sunumuna uzun uzun orta okul db bilgileri anlatarak başladı. İlişkisel veritabanı nedir, aralarında neler var vb. Sonra orm'nin faydasını sıraladı, bir veritabana mahküm kalmamak, kodun güzel gözükmesi. Tabi dezavantajlarına gelip performans yazınca ekranda, suç programcının oldu: "Bazıları der yavaştır. Tabi kötü yazılırsa kod yavaşlık olur, ormler hızlıdır aslında, tek sayfalık bir site yapıp orm kullanırsanız yavaşlar, orm'ler büyük kapsamlı projeler içindir, böyle projelerde hız farkını anlarsınız. Ama sorguların güzel yazılması, db indekslerinin hazırlanmış olması gerekir".  Doctrinin diğer frameworklerle karşılaştırılmasında salondan çıkmak zaruret oldu. stackoverflow'dan soruları almış, 4500 doctrin sorusu var, en yakın rakibi 800 soruda. Bir arkadaş cevaplar da önemli dedi. Bu "Muhittin" arkadaş, 4500 soruda elbette 800 cevaptan fazla yanıt vardır. (süper!) olmadığını düşünmek saçmalık olur" (batırdın arkadaş!) dedi. Sonra topladım eşyaları çıktım.

ORM hakkında düşüncelerim:
Kod içinde sql sorguları çok kötü. model katmanında bile php yazıyoruz, sql nerden çıktı diyoruz. Aynı zamanda mysql'den mongo'ya yada postgresql'e sorunsuz bir geçiş stratejisi çizemem.

Fakat Orm özellikle php'de büyük dert. db şemalarını çıkarması, bizi uğraştırmaması, şemaları koda yansıtması, koddaki değişklikleri db'ye yansıtması. Bunları yaparken hızlı initialize olması, hafızada az yer tutması vb.

Yok böyle bir orm. Orm ortaya kocaman kütlesi, onlarca yan destek sınıfları ile oturan hantal bir yapıdır. Siz gereksinimlerinizi php kod olarak yazarsınız, orm araçları bundan sql üretir. Native yazmadığınızda da kodun nerede patladığını görme şansınız azalır.Bir kodu siz normal sql araçları ile optimize edemezsiniz. Kodda deneyip yanılabilirsiniz. Php kullanma nedenimiz zaten koder'a yüklenmemekti, şimdi en ufak hatanın ceremesini çeker hale geldi. Ve bunu hız ve memory kayıplarına rağmen yaptık. Şöyle bir gerçek var ki, çalıştığım şirket, 10 yıldır db değiştirmedi. Memcache veya mongo destek için geldi. E hakkaten model katmanına baktığımızda native mysql sorguları ne olacak? Sanki o katman bunları görmek için var. E biz view'da aman html olmasın, js css karışmasın diyo muyuz?

Bu kadar laf saydım. Fakat gerçek hayatta kodun db bağımsız olmasını istersek ne yapacağız? Ya orm kullanmadan tüm modelleri diğer db için de yazacağız yada projede orm kullanacağız. :) Gerçek hayat ihtiyaçları, teoriyi döver!

Scrum eğitimi

Scrum bir tür agile yaklaşımı. Geçen eğitimine katıldık. Kısaca eskiden diyor, (hala türkiyede bir çok ekip böyle çalışıyor) projeyi baştan oturup çizmek ister. Gereksinimler çıkarılır, tasarım yapılır, uygulanır ve müşteriye teslim edilir, sonrasında ufak hata düzeltmesi vb. uygulanır.

Bu hala uygulandığından bahsetti, mesela bina yaparken, yada üretimi organize ederken (günde 3 ton hammadde bitiriyorsan, 90ton hammadden varsa, bir ay sonra üretim duracak yada sen gene sipariş edicen.)
Inline image 1
Grafikler güzeldi, %29 oranında projenin başarısız olmasına neden oluyormuş. Zamanlar tutmuyor, kullanılabilir bir ürün çıkmıyor, buddget'lar aşılıyor.
Inline image 2

Çünkü müşteri aslında ne istediğinden emin değil, yeni işlevler eklemek istiyor, kendini düzgün ifade edememiş. Bir araba istediğinizde aklınıza tekerleği olmasını istemek gelmeyebilir.

Scrum ne söylüyor:
İnsan var projelerde. O yüzden yapılacakları "zamanlamadan" baştan sona kadar listeleyin. Bunlara zorluk atayın. 10 günlük süre zarfında ürüne giden yolda kaç özellik yapılabileceğini ekiple birlikte kararlaştırın. 10 gün sonunda müşteriye çalışan demo gösterin, gelişmeleri ve eksiklikleri alarak diğer 10 günlük iş döngüsüne başlayın. Ekip her gün 15 dakikalık ayak üstü toplantılar yaparak önceki günden eksik/tamam işlerini ve varsa engellerini anlatıyor. Bir şekilde tıkanma yaşarsa, mesela gelmeyen login bilgileri, server'a erişim kısıtları, aldığı parçanın  çok büyük/detaylı çıkması gibi anlattığı için gecikmeler çok önceden (daha önceki modele göre aylar sonra) görülebiliyor. Aksiyon alınabiliyor.

10günlük döngü ve günlük kısa toplantılar Agile'ın özellikleri. Baktığımızda herşey diyalogun artması ve söyleneceklerin söylenmesine zorlamaktan geçiyor. 


Bitcoin kazanci

Bugün ilk bitcoin kazançimî yaşadım(5tl komisyondan geriye 2tl kalıyor), fakat şimdi satarsam 20tl kaybım olacak.

Bakalım nasıl bukadar büyük bir kazanç yaptığıma

Tanesi 2060'dan 0.12135922tane bitcoin aldım (250tl harcadım), 2083tlden hemen satışâ koyarak satım. Yaklaşık 15dakika içinde yaptığım bu işlemden dediğim gibi 5tl kâra geçim ( işyerim bana da 15dakika için bu kadar ödüyor) sonra tekrar alım işlemi için ilan bıraktım. Hooop 0.12277312 bitcoinim oldu. Satış için ilan verecektim ams busefer satış için verilen en ucuz teklif 2080olmuştu (en ucuz satarsanız ilk sizinkini alırlar) ilanı verdim. Satıldı mı diye izlerken benden daha ucuz teklifler gelmeye başladı. Daha düşüğe satmak için azalttım. 2070e kadar indim. Teorik olarak 254tl param var. Fakat sürekli daha düşüğe vermeye başladılar. Nedense sürekli artacağına olan inancım var, bu ilan verenlerin çocuk veya kafası çalışmayan salaklar olduğunu düşünüp kapattım.

Eve gittiğimde fiyat çok düştü, 1873tl. Benim paralar 230tl nominal değer sahip oldu. Bunun dibi varmı, ne zaman 10kat değer kazanır, ben bukadar bitcoinle ben 10kat hayali kuruyorsam, 1000coini olanlar ne yapsınlar... hikayemde anlatmadıgim site komisyonu var. Bu işten en karlı onlar çıktı. Düşse de yüzde alırlar çıksada, işlem yapınca hooop komisyon .















Şubat ayında batıkent

Güneş oldukça açılı ve ısıtıcılı şekilde odaya girip ısıttığında, aklıma 2012 ankara şubatı geliyor.

Sandviç dükkanında oturmuş sipariş beklerken sipariş geldi. Menü istemişti, araba ile atladım gittim, Pazar günüydü ve başka sipariş gelebilirdi.

O gün 60tl fln olmuştu. Adres bi garipti koşturuyordum, yoldan kola almak zorunda kalmıştım yada evinden çıkıcakmış, kolasını unutmuştum,Bir koladan 1 tl kadar kazandığımız için alırım demiştim ve koşturup almıştım. Umarım kötü yorum yazmaz, umarım yemekleri beğenir, bir daha ister., 10 olan toplam müdavimlerimiz 11 olur vb.
Adamın da derdi atıştırıp çıkmak. Cumartesinin tadını "Kızılay" da çıkarmak.

Pis kış güneşi, sıcakla birleşince hatıraları bir adım öteyi yapamamayı, azı maksimize etme oyalamacasını, skalanın darlığının insanı darlamasını kısacası Batıkentte iş kurmayı aklıma getirdi, bu pis yazıyı.

Not: Sanırım kasım ayıydı ama bana şubat ...

Git eğitimi

Git eğitimine katıldım, eğitimdi çünkü Levi gerçekten çok detaylı bilgilerle birlikte anlatım yaptı.

2saate anca sığan eğitimde ağırlıklı olarak gitin mantığı özet olarak da kullanılan komutlar yeraldı.

başlıklar halinde bahsetmek isterim,
Svn ile analoji kurmak hata, git ve svn aynı işi çözen çok farklı mantıklar,

Git ile çalışırken, gui yardımı almak büyük hata olur, komutları tam anlamıyla bilmeliyiz, aktif memoryde tutmak için sürekli mesai harcamalıyız, her takımda enaz bir git guru olmalı.

Sistem çok esnek, bu yüzden bilgisayara değil, kullanıcıya dayanıyor. Yani her hangi bir adımda hata yapabilirsiniz.

commitle immutable, yani değişmez, onunun haricinde herşey değişebilir.

asla kod kaybetmezsiniz, en azından gc(garbage collection) temizlemesinden önce 2haftanız var.

Sürekli development branchindan pull almak ve yeni özellik geliştirirken branch yaratmak önemli.



Linus Tovards yazdi ve git üzerine: işimi gören basit bir program demiş.

Genel gözlemim, git arkasında birçok guru olduğu ve github projesi birçok advenced özellik sunduğu için çok revaçta.
Kullanımı 10tane komutla kotarilacak kadar. Ama learning curve uzun, sizi programin kullanımından ziyade kendi mantığına zorluyor. Unutacaginiz, sonradan değişecek birçok bilgiyi ezberlenemize zorluyor.

development

Test, staging   branch versiuinlari takip etmeyikolalayıp



Tag readonly
Branch ileler


Bramch yaratıp silinirse, ppinter gider, loglarda yok , branch tarafindan erişilenleri gösterir. Eflogdan branch alinirsa geri gelir.

Feature branch ,


Fetch degidikleri getirir, kodda yok, entegre için

git pull rebase
Pull, fetch, merge

Rebase yeni sal oluşturmamış, kendiniz feature geliştirirken,
Cpmmitler gözükmüyor

Masterdayi

Checkout -b development
Git fetch origin
Git push origin development

Dutchout development working copy değiştirir


Git dutchout -b feature-x

Git rebase origin/development

Daha güzel gözüken history

Git chechout development
Git pull
Git merge feature-x
history de gözüksün

Git branch -b feature-x
Tabiki push etmedik.

Git merge tool

Squash biçok commit tiplansin

Stashing commit edilmemiş kodu kaybetmemek için


Samsung Mobile tarafından gönderildi

Vodafone Tablet


3 gün önce vodafone tablet aldım. İlk tabletim olması dolayısiyle pek güzel geldi cihaz.

Swype diye parmak sürükleyerek yazması, uygulamaları dergi mergi işleri pek hoş gerçekten.
Fakat alet çalışma konusunda çok isteksiz.
Açılırken,
müzik dinlerken,
internette gezinirken,
kenara bırakmışken
ve daha aklıma gelmeyen bir çok durumda kendini kapatıyor.

Dili ingilizceye çevirdim,
mail check'i kapattım,
bir kaç uygulama sildim,
sesi kapadım,
döndürmeyi engelledim
takla fln bile attım ama
cihaz kendini kapatıyor, reset atıyor.


Eğer iş amaçlı kullanacaksanız, bacağı kırık ata bahis oynayın daha çok kazanırsınız.

Sektörün öncülüğü



Elektronik bilet için vesikalık fotoğraf lazımmış. Fotoğrafçıya gittim. Gözüme bir şey takıldı.

İş planı ne demek öğrendim!!!

Arakadaşlar artık iş planı nedir biliyorum. Bir vahiy yada bir şey tetiklemedi!

Olay şöyle gerçekleşti: bir sebepten arkadaşlarıma gaz vermek için proje yazdım.  Yazdığım projede ne gerektiğini anlatmaya başladım. Tevazu göstermek ve aslında benim yaptığın işin, genel plan içinde ufak kalacağını gösterme niyetindeydim. Böylece diğer arkadaşlarım işin diğer taraflarından tutabilecek, herşey üzerimde kalmayacaktı.

Planım doğrultusunda ne gerekir dedim, benim bilmediğim şeyler (astronomiden, nano parçacıklara kadar herşeyi biliyorum ama bu büyüklüklerin arasındaki normal şeyler ve sosyal konularda bilgim pek az). Tamam proje yönetimi var, programlama lazım sonrasında, tabiki birinin grafikleri halletmesi lazım, hey duyuru yapılmalı (Pr), site içindeki metinleri kim girmeli (pr), herşeyi hazırladıktan sonra para bulmak lazım (Fund), bir de operasyon lazım.

Bu mail askıda kaldı. Çok da üzerinde durmaya gerek yok. Bana ne ben işin %30'luk kısmındayım, işimi yaparım, gerisi için insanları dürterim ama daha ileri gitmem. Fakat genede üzerinde düşünüyorum, arada konuşuyorum.

Şimdi kendi projelerimi çıkarmak istedim. Her biri bir aşamada, birisinde fikri geliştirmek lazım, birinde grafik lazım birinde metinler vb. Hey dedim benim daha önce çıkardığım pattern var burada. Hey tüm web projeleri aslında bir patterne uyuyor.

Yakında yayınlayacağım :)

Orjinal fikir yoktur


Ben anlamıyorum etrafta dönen orjinal fikirler yok muhabbetini. O yüzden yazma ihtiyacı duyuyorum: 1) orjinal yoktur, 2)fikrin orjinal olmasına gerek yok. 3)Orjinal olmayan fikirler clone değildir.

sosyal demokrasi

Ankarada patlama oldu. Ersin, bro güvende mi, o erken kalkmaz güvendedir, ama tanıdık birisine bişey olmuş olabilir mi? Sakin dikkat hemen Ersini aradım. Ersin iyi olduğunu söyledi.

Haberler çok çelişkili, tüp mü yoksa bomba mı? Vali ve diğer çalışanlardan bomba olabilir ama tüp atıldığını gören var açıklaması, ama Bülent Arıç bunun bir bomba olduğunu açıkladı. Şimdi ciddi bir fark var, bomba mı tüp mü?

Zirve yapmamak

Odtü dağcılıkta, zirve yapmamak terimini duymuştum. Çok ilginç gelmişti. Zirve çıkabileceğiniz en yüksek nokta. O noktadan sonrası yok. Bir insan dağcı olur, aylarca eğitimden  (teknikler, performans vb.) geçer, zorluklarla (zaman, para) geziye gider ve zirveye çıkmadan gelir.

Parmak dansı

Fransız Jayfunk'un elektornik müzik üzerinde gecenin köründe paramk dansı yapması ile 1 milyon izlenmesi :

Seth Godin - Tribes (Dyno)

Seth Godin Tribes'dan muhteşem bir hikaye : Dyno. Düz kaya tırmanışında, ileri doğru sıçrama.

Olay şöyle: Normalde tırmanışta 3 destek kuralı vardır: bir uzvunuz (el veya ayak) boşta iken diğer uzuvlar sağlam şekilde tutunması gerekir. Bu kural hata yapmanızı çok düşürüyor. Kayma veya düşmenizi engelliyor.  Daha ileri teknikler kullanan dağcılar parmak ucu tırmanışı geliştiriyor. Özel ayakkabılar ile çıplak elleri ile düz kayalara tırmanıyorlar.

Seth Godin - Tribes

Aldığım notları (aslında kendim için) yazmak istiyorum. Her bi not aslında ayrı ayrı açılarak detaylandırılabilir. Ben özet olarak şu maddeleri çıkarttım:
  • Herkes lider olabilir, istemek yeterli
  • Bir liderin işi aslında düşüncelerini açıklamak ve kendine yakın liderleri bulmak

Çıkardığım notlara gelelim:

Girişimcilik dersleri

Stratejikİşler'de partner (ortak), JCI dünya başkan yardımcısı İsmail Haznedar'dan girişimcilik seminerine katıldım.

Heyecanlı, katılımcıl, 3 saatin nasıl geçtiğini anlamadık, demekki güzel bir seminerdi.

Girişimcilik üzerine bilgim ve düşünmüşlüğüm var, çok boş değilim, ama birkaç yönden geliştirdi, düşüncelerimi değiştirdi.

Viral videolar

Geçen aylarda yayınlanmış viral videolar, jenifer lopez reklamından, kia'nın rap söyleyen savaşlı hamster  filmine 14 tane..

Mağzacılığın 2 çözümü

Mağzacılık sektöründen bir deneyimim oldu. Arkadaşım bana mağza rotasyonunun %60 olduğunu söyledi. Müşterilerin %60'ı geri dönüyor, yok bu olamaz, müşteri ölçtüklerini düşünmüyorum, %60 geri dönüş de çok çok fazla. Ürünlerin %60'ı mı? %10'dan fazla geri dönüşün sürdürülebilir olmadığını biliyorum.


%60 rotasyon ne demek?

Umut Sarıkaya Ev

Umut Sarıkayadan 1990'lar ev manzarası. Sıcacık sobasıyla, yırtık donla kapı çerçevesine tırmanmayla, televizyonda bir çok gereksiz programıyla, soyulan elması, el batıran portakalıyla, uyuyan babasıyla, kütür kütür yanan sobasıyla mutluluğun resmine aday bir karikatür.

Çok saol Umut Sarıkaya.