Archive for the 'Genel' Category

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.
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??

Web dünyasını gün geçtikçe daha çok gerçek dünyayla birleştirmeye başlıyorum. Gerçek hayatta iş hayatımızda, özel hayatımızda neleri yaşıyorsak webde de aynılarını yaşıyoruz.

Canımız sıkılınca film izliyoruz, arada bir sanat galerine gidiyoruz, haber kanallarını açıp şöyle bir bakıyoruz neler olup bitmiş diye… Yatkın olanlarımız “gece hayatı” (!) ‘na takılıyor.

İlgi alanlarımıza giren sosyal gruplara takılıyoruz, sonra bu topluluklarda bazı gruplaşamalar olmaya başlıyor. Kimi kimini sevmiyor, bazen bir bakıyoruz “buralar da bozuldu artık abuk subuk insanlar doldu” diyoruz küsüyoruz bir süre gitmiyoruz.

Güzel bir kız gördük mü dönüp bakıyoruz, efendi olanlar çaktırmadan bakıyor, ayılar bakmakla kalmayıp sözle taciz ediyor. Allahtan internette elle taciz biraz zor :P

İş hayatında ise türlü türlü stratejiler geliştirmek gerekiyor. İyi bir ürün üretmeniz yetmiyor. Müşteri ilişkilerinden pazarlamasına, halkla ilişkilerine, işbirliklerine ve stratejisine kadar birçok alanda çaba göstermeniz gerekiyor.

İnternet çok büyük bir mecra. “Word of mouth marketing” (ağızdan ağıza pazarlama olarak çevirilebilir belki) dediğimiz pazarlama o nedenle çok etkili oluyor.

Halkla ilişkiler için, nasıl profesyonel firmalar medyada şirketleri ile ilgili haberlerin çıkması için çaba gösteriyorsa, web2.0 projeleri de bloglarda tartışılabilmek için yarışıyor. Ego tatmini için değil, pazarlama ve markanın benimsetilmesi için. Projeler artık yayına çıkmadan önce blog yazarlarına “özel gösterim”ler sunuyor. Blog yazarları da kendi medyalarında çıkmak üzere olan bir projeyi diğerlerinden erken yayımlamak için yarışıyorlar…

Dünyadaki web2.0 projeleri markaya çok büyük önem veriyor. “Sana” nasıl bir marka olduysa, Vakko, Beymen nasıl ismini kafalarımıza kazıdıysa flickr, yahoo, google, facebook, dig, technoratti de web dünyasında kafalara kazınıyor. Jenerik isimlerden uzak duruyor markalar…

Pazarlama için ise web2.0′da farkı yaratan şüphesiz ki widget’lar (kutucuk)…
Viral pazarlamanın en etkili yönü olan kutucuklar, aynı gerçek hayatta burnumuzun akmasına neden olan grip virüsü gibi siteden siteye yayılıyor. Hem markalaşmaya katkı sağlıyor, hem bedava reklam yapıyor hem de Google pagerank’imizin artmasını sağlıyor.

Komik bir şekilde bu projelerin gelişmesinde en küçük etkeni ise reklam sağlıyor. Diğer alanlarda hazırlık yapmadan yaptığınız reklam kampanyaları projelerinizi sadece bir noktaya kadar geliştirebiliyor. Gerçek hayatta nasıl reklam stratejisi belirlenmeliyse web’de de öyle. Gerçek hayatta takip eden ürün olarak çıkıp devasa reklam bütçeleriyle kendini batıran bir sürü firma var. Bir o kadar web projesi de var.

Web2.0 projesini patlatmanın “modern” yöntemleri var. Ben sadece aklıma geldiği gibi 1-2 anahtar terimden bahsettim. Umarım bu anahtar kelimelerden ilham alanlar olur…