Author Archive

Ruby on Rails’i ilk gördüğümde çok etkilenmiştim ancak Ruby’nin hantallığı ve yıllardır süregelen PHP alışkanlıklarım Rails’i boş zamanlarımda minik uygulamalar yaptığım ve tasarlayanların bulduğu kolaylıkları öğrenme amaçlı kullandığım bir araç mertebesinde bıraktı.

Daha sonra Zend Framework çıktı (Symfony ve Cakephp de var framework olarak ama onları seçmeme nedenim ayrı) ama açıkçası ZF benim için hep “hiç yoktan iyidir” framework’ü oldu zira şu haliyle ZF’yi anlamak için bol bol araştırma yapmak ve debugger’ınızı açıp adım adım nasıl çalıştığını görmeniz gerekiyor.

21 Aralık’ta ZF ekibinin duyurduğuna göre ZF v1.5′te bence en büyük eksiklik olan “programcıyı yönlendirme” işine eğilmiş gözüküyorlar. Zend Framework’ün diğer framework’lerden farkı programcıyı kendi altyapısına uymaya zorlamaması. Kütüphaneleri veriyor ve programcıyı istediği yapıda kullanmakta özgür bırakıyor ancak MVC Model 2′nin karmaşıklığı, framework’teki kütüphanelerin çokluğu öğrenme zorluğu yaratıyor. Özellikle projenin organizasyonu hakkında (modeller nerede duracak, kontroller yapısı nasıl olacak vs.) Öğrenip kullanmaya başladığınızda ise birçok şeyi kopyala - yapıştır yaptığınızı fark ediyorsunuz.

ZF v1.5′te opsiyonel olarak proje yapısını otomatik sunma betiklerle işlemleri kolaylaştırma üzerine yoğunlaşmışlar gibi gözüküyor. Rails’i inceleyenler bu tür betiklerin getirdiği kolaylıkların farkındadır zaten, ZF’de de artık bu kolaylıkları görebileceğiz gibi duruyor.

Benim öngörüm ileride framework’lerin etkisiyle web tabanlı yazılımların üretilme zamanları oldukça kısalacak. Rails, ZF, Django, CakePHP, Symfony derken bunların IDE’lere entegrasyonu önplana çıkacak. Biz web2.0 geliştiricileri performans, güvenlik ve stabilite kaygılarıyla kendi yapılarımıza bağlı kalacağız belki, ancak web tabanlı servis veren diğer yazılımlar için bu altyapılar geliştirme sürelerinin azalmasına ve dolayısıyla maliyetlerin düşmesine destek olacak…

Diğer taraftan Javascript framework’leri de büyük bir hızla gelişiyor. Katmanlı yapı sayesinde birçok geliştirici artık projelerini en az 5-6 katmanda düzenliyor: CSS, Javascript, (X)HTML 3 ayrı katmanda semantik webi de destekleyerek önyüz mühendisliği adı altında gelişirken arkada template sistemi ile önyüze bağlanan page/interaction logic, application logic, data store gibi katmanlar birbirinden ayrı ve düzenli bir yapıya giriyor.

Javascript framework’leri RUI (Rich User Interface) oluşturulmasını hızlandırıyor, hatta biraz iddialı olacak belki ama birçok kişi için mümkün kılıyor. Javascript IDE’leri bile yavaş yavaş ortaya çıkmaya başladı: Bkz. Aptana

Sektör artık framework’lere doğru yönlenmiş vaziyette. Kullanmayacaksak bile altlarındaki çözümleri iyi öğrenmemiz gerek…

Dec 06

Yeni balon…

No comment - Post a comment

Here Comes Another Bubble - The Richter Scales

Süper video…

“Teknoloji’de balon yoktur”

Facebook 15 milyar $
Ford 16.8 milyar $

peh :)

Oct 16

Güvenlik…

No comment - Post a comment

Anne exploit’i :P

En çok rastlanan güvenlik açıklarına bir göz atalım:

  1. SQL Injection
    SQL cümlesi içerisine parametre olarak gönderilen değişkenin saldırgan tarafından değiştirilerek gönderilmesiyle oluşan açıktır.
  2. Session Fixation
    O an siteye giriş yapmış ziyaretçinin session id’sini bir şekilde alarak ziyaretçinin aktif session’ından yararlanma felsefesine dayalı bir güvenlik açığıdır.
  3. Session Poisoning
    Programcının gönderilen parametreleri kontrolsüz bir şekilde session değişkenlerine ataması nedeniyle oluşan açıktır.
  4. XSS (Cross Site Scripting)
    Saldırganın sayfaya bir açıktan yararlanarak javascript, css, html kodu yazabilmesi nedeniyle oluşan açıktır.
  5. XSRF (Cross Site Request Forgery)
    Saldırganın o an siteye giriş yapmış ziyaretçiye farkında olmadan istediği aksiyonu yaptırması ile ilgili bir güvenlik açığıdır.
  6. RFI (Remote File Inclusion) ve LFI (Local File Inclusion)
    Programcının gönderilen parametreleri kontrolsüz bir şekilde çalışan koda “include” etmesi nedeniyle oluşan bir güvenlik açığıdır.
  7. Referrer Spoofing
    HTTP_REFERER ziyaretçinin bir önce ziyaret ettiği sayfayı tutan bir environment değişkenidir. Ancak bu değişken istemci tarafından gönderildiği için bu değişkene dayanarak yapılan güvenlik kontrolleri kolayca aşılabilir.

Performansın sayfa ziyaret istatistiklerine etkisi ile ilgili bir yazıma gelen bir yorum ne zamandır aklımda olan web teknolojileri üzerine genel bir bilgilendirme yazısını yazma fikrini getirdi aklıma pazar pazar… Zaten sıkılıyordum :)

Konuya tamamen yeni olan kişiler için derinlemesine fakat mümkün olduğunca kısa bir şekilde anlatmaya çalışacağım…

Bu yazıda şunlar var:

  • Tanımlar
    Web teknolojileri ile ilgili tanımlar. Kulak aşinalığı olsun diye…
  • İstemci Tarafı Teknolojiler
    HTML, CSS, JavaScript, DHTML, Flash nedir
  • Sunucu Tarafı Teknolojiler
    PHP, ASP, JSP, ColdFusion, CGI, Apache, IIS, MySQL, Oracle, PostgreSQL

Bu yazı kimler için?

Eğer web hakkında kulaktan dolma birşeyler bulduysanız ama toparlayamadıysanız, bir sürü terim duyuyor ve “bunlar da ne ola” diyorsanız kendi kendinize, bu doküman sizin için diyebilirim.

Ayrıca birçok geliştiricinin, hatta çok tecrübeli olanların bile, işin arkaplanını bilmedikleri için bariz hatalar yaptıklarına sürekli şahit oluyorum. Bu uzun sıkıcı yazıyı “aman biliyorum ben bunları zaten” demeden okuma sabrını gösterebilirseniz 1-2 ipucu da yakalayabilirsiniz belki…

» Read more after the jump →

Oct 05

Virütik Oyun

No comment - Post a comment

Viral pazarlama 1996′da netleştirilen bir konsept ve en yaygın uygulaması da internet üzerinde görülüyor. Aslında web2.0′ı başarıya götüren en etkili yöntemlerden biri. API’ler, widget’lar, Facebook Application’ları aslında birer viral pazarlama stratejisi diyebiliriz.

Dün katıldığım bir eğitimde Starwars’ın 1,2 ve 3. bölümleri yayına sokulmadan önce nasıl 1970′lerde çıkan 4,5 ve 6. bölümlerin tekrar hatırlatıldığı ve fan gruplarının ateşlendiğinden bahsediliyordu. Fan grupları ateşlendikten sonra insanlar heyecan içerisinde yeni 3 bölümü beklemeye başladılar. Fan siteleri viral pazarlama yöntemi olarak kullanılmıştı.

FanKit ScreenShotBugün StarCraft II‘nin RSS beslemesinde fan sitesi yapmak isteyenler için “fansite kit” görünce ilk önce “Türkçe StarCraft sitesi yapmak” geldi aklıma…

Keyifli olur hakkaten, iş yoğunluğu arasında keyif için site yapmanın kendime çok şey kattığına inanırım. Keyif için site yaptığınızda yaklaşımınız çok daha farklıdır çünkü…

… sonra bir anda viral pazarlama stratejisinin beni nasıl içine çekiverdiğini hissettim.

Türkçe bir StarCraft II sitesi yapacağım, sonra kendi yaptığım bu siteyi insanların kullanması için haliyle birçok kanaldan duyurmaya çalışacağım ve aslında StarCraft’ın çok etkili bir reklamını yapmış olacağım… Çok etkili diyorum çünkü reklamın inandırıcılığı azdır. Yani, bir arkadaşınızdan methini duyduğunuz bir cep telefonunu sabah akşam reklamı yapılan bir telefona tercih edersiniz.

Tabii bundan olumsuz bir anlam çıkmasın, bu şekilde yazınca sanki Blizzard fan sitesi yapanların sırtından geçiniyormuş izlenimi verebilir. Ancak görselleri orijinal StarCraft ekibi tarafından sağlanan, site yapma ve başarıya ulaştırma ipuçları da yer alan bir dokümana sahip “fansite kit” sayesinde amatör bir web tasarımcısı, başarılı ve belki üzerinden reklam geliri elde edebileceği bir site ortaya çıkarabilir…

Viral pazarlamanın, API’lerin, widget’ların etkili olmasının nedeni zaten bu: Karşılıklı kazanç…

Projemiz hızlı çalışsın diye muhtelif performans optimizasyonları yapıyoruz. PHP, apache, MySQL ve sunucuya ince ayarlar çekip optimizasyonun yeterli ya da ekonomik olmadığı durumlarda donanım güçlendiriyoruz.

Optimizasyonun fazlası gereksiz pahalı oluyor, çünkü optimizasyon için ayırdığınız vakit aslında bir maliyet (personelin saatlik ücreti üzerinden düşünebiliriz). Belli bir temel optimizasyondan sonraki ince ayar yerine donanıma yatırım yapmak daha ekonomik olabilir.

Ne Kadar Hızlı?

Peki ne kadar hızlı? “Hızlı”nın sonu yok aslında… 10Mbps yerine 20 Mbps, 4GB ram yerine 16GB ram, quadcore bir sürü cpu, sunucu “çiftliği”… ve hatta Yahoo’nun site hızıyla ilgili 13 prensibinden bir tanesi yerel sunuculardan bahsediyor. Yani her şehre bir sunucu koyarsanız çok daha hızlı sunabilirsiniz projenizi.

Yahoo’nun diğer bir prensibi web sunucusuna yapılan istemleri (request) sayıyor. Javascript, CSS ve imajlar gibi statik öğelerin yüksek sayıda olması demek, tarayıcınızın web sunucusuna bir sürü istek yapması demek. Ancak bu statik içeriklerin aslında “cache”de tutulduğu düşünülür ve KeepAlive’ın doğru düzgün ayarlandığı hesaba katılırsa atılan istem sayısının performansa etkisi çok da abartılı değil… Bu da istem sayısını düşürmeye yönelik önlemlere ne kadar vakit ayırmak gerektiği konusunda ikilemde bırakıyor insanı…

Bütün bunların geri dönüşü ne kadar etkiliyor peki?

FotoKritik

Bugün FotoKritik’e ek bir sunucu daha ekledik. Son zamanlarda 1 sn’nin üzerine çıkmaya başlayan php işlem hızı (exec time), tekrar 0.05 mertebelerine düştü.

Anlık ziyaretçi sayılarını karşılaştırdığımızda düne göre 1.5 ~ 2 kat arasında daha çok ziyaretçi gözlemliyoruz. Bunun sayfa gösterimini etkisini önümüdeki günlerde göreceğiz ve önemli bir yükseliş olacağı kesin.

Aslında sitenizin performans nedeniyle ziyaretçi kaybettiğinizi istatistiklerden de görebilirsiniz. Tekil kullanıcı sayınız artıyor ancak sayfa gösterimleriniz düşüyorsa, ya da tekil kullanıcıdaki değişimle kıyaslandığında sayfa gösterimlerinizdeki değişim eksi yönde açılıyorsa performans nedeniyle ziyaretçi kaybettiğiniz sonucuna varabilirsiniz.

Tabii ki ziyaretçi ve gösterim sayılarını etkileyen bir sürü faktör var, bunların içinde gündemden tutun tatillere, benzer içerikteki rakip sitelerin durumundan Türkiye’nin yurtdışı çıkışlarına kadar bir sürü değişken var. Bu değişkenleri takip edip istatistikleri yorumlamak da tabii ki ilgili projenin ekibine kalıyor…

En son wordpress’e erişim mahkeme kararıyla engellenmişti.
Bugün izlesene.com‘a erişimin yakında engellenme ihtimali olduğu duyumunu aldık.
Az önce ise rastgele gezinirken flickr blog’unun (http://blog.flickr.com) erişiminin engellendiğini gördüm hayretle.

Bunun adı rezalet, başka bir şey değil.
Bu şartlar varken Türkiye internetini nasıl geliştirebiliriz biri söyler mi bana?
Temiz internet önünüze gelen siteyi kapatarak sağlanmaz.
Bunun adı temiz internet değil düpedüz sansürdür.

Hadi wordpress‘i anladık, youtube bir derece, izlesene tamam ama flickr.com sitesinin resmi blogunda Türkiye’den erişimin yasaklanmasını gerektirecek ne gibi bir içerik olabilir?


Ey büyüklerim, büyüklere saygım sonsuzdur ama üzgünüm, artık bunu yazmalıyım!

Ben sizden utanıyorum.
Uygulamalarınızdan utanıyorum.

Yargısız infazları kınıyorum, hangi hukuk devletinde önce cezalandırıp sonra yargılanır??!?
Geri kalmış ülkelerin zihniyetiyle mi gireceğimizi zannediyorsunuz AB’ye ?
Böyle mi ulaşacağız muhassır medeniyetler seviyesine…

Yazıklar olsun…

Gülsem mi ağlasam mı bilemiyorum.
Ağlayasım geliyor…
Ama gülenler de var biliyorum:
Gerçekten interneti kirletenler gülüyor bu uygulamalara, üstelik ağızlarıyla gülmüyorlar…
Nereleriyle güldüklerini de siz bulun!

Web gelişiyor. Web2.0 diye isim koydu buna O’reilly, bundan da iyi ekmek yiyor ama olay 2.0, 3.0 değil. Web gelişiyor ve gelişmeye devam edecek.

Gelişirken de tasarımcının en büyük kabusu, kullanıcıya sunulması gereken bir sürü fonksiyonu çok basit bir şekilde sunmak, ortaya çıkartılan komplike aksiyonları kullanıcının kolaylıkla anlayabileceği gibi sunmak.

Bu konuda hepimiz deneme yanılma ile, yapılan örnekleri inceleyerek, tecrübe ederek birşeyler yapmaya çalışıyoruz.

Yahoo bunu kütüphaneleştirme yoluna gitmiş:
http://developer.yahoo.com/ypatterns/index.php

Tasarımın robotlaştırılmasına, bu tarz kütüphanelerle belirli limitlere sokulmasına karşıyım ancak bu kütüphaneyi takip ederek güzel çözümlere ulaşılabilir ve tasarım çözümleri konusundaki dağarcığımız geliştirilebilir…

Bu ülkede internet sektöründe çalışmanın en büyük zorluğu, büyük bir çoğunluğun interneti keşfetmemesi. 11 yıldır bu işi yapıyorum ve başından beri ne yaptığımı insanlara anlatmakta zorlandım.

Web sitesi tasarlarken “bilgisayarcı” zannedildim bilgisayarı bozulan beni arardı.
Web tabanlı yazılım geliştirirken “programcı” oldum, muhasebe programıyla işim olmadığını anlatmaya çalıştım hep.
Web2.0 projelerine odaklandığım şu aralar ise “web tasarımcı” zannediliyorum…

Bu işe başlayalı 11 yıl oldu, 3-4 sene önce bıraktığım “web tasarımcısı” ünvanını (!) yeni bahşetti bana insanlar.

10 yıl geriden geliyoruz ne acı…

Gezinirken bir bakayım dedim Arda Kutsal’ın Blograzzi’si son neler yapmış diye, Wordpress’e erişimin engellendiğini öğrendim…
Üzüldüm açıkçası…

Daha önce ekşisözlük ve youtube yasaklanmıştı. Bu yasaklardan web2.0 projesi geliştiren herkes birgün nasibini alacak çünkü eminim ki bu yasakları koyan yargı üyelerinin internetten, internetin doğasından haberi bile yok ve öğrenmeleri korkarım bir 4-5 yılı bulur…

Weble uğraşan bu kadar kişi, bu kadar firma var…
Bir şeyler yapsak artık insanları uyandırmak için??