Zırvalama Tahtası symfony, debian, PHP5, SQL ve pek çok ayrıntı

5Nov/080

Yeni bir başlangıç

Son bir senedir çalıştığım firma olan Cetech‘deki görevimden 1 Kasım 2008 itibari ile ayrılmış bulunuyorum. Çalıştığım dönem boyunca kimi zaman neşeli kimi zaman ise yoğun ve yorucu tempo ile birlikte olduğum iş arkadaşlarıma teşekkür ediyorum.

Ayrılma nedenim ise kişisel bir projemi gerçekleştirmek için zaman oluşturabilmek idi, projenin sadece teknik yönüyle değil tüm ilerleyişini paylaşmak istediğimden girişim günlüğü isimli günlüğü açtım, sadece bana ait projelerin durumlarını değil, kendi girişimleri olan diğer insanların da yazabilecekleri, projeleri ile ilgili durum bilgisini yayınlayabilecekleri bir günlük olmasını istiyorum ancak henüz tam anlamı ile olgunlaşmadığından bu beklentimin gerçekleşmesi oldukça güç.

Üzerinde çalışmak istediğim proje ile her şeye yeni bir başlangıç yapmak istiyorum, umarım yürümek istediğim yere doğru gidebilirim.

Tagged as: No Comments
3Aug/080

php 5.3 alpha 1

Yeni duyurulan 5.3 alpha 1 versionunu gerçekten ilginç özellikler barındırıyor, bunlardan en ilginç olanı ise, namespace, late static bindings ve lambda closures desteği,

namespace‘ler sayesinde artık aynı isimde sınıfların kullanılması problem olmaktan çıkacaki,, tıpkı python’da olduğu gibi.

lambda closures desteği sayesinde ise bloklar içerisinde fonksiyonlar tanımlanabilecek
ve late static bindings sayesinde extend edilen sınıf içerisinde hangi sınıf bizi extend etmiş bilebileceğiz artık.

31Oct/070

Yardım sayfaları

Servis veren şirketlerin en büyük problemi kullanıcılar için hazırlanan yardım sayfalarıdır, bu görevi en düzgün biçimde yapılmasını sağlamak için bu konu ile ilgili hazır bir ürün olup olmadığını bilmiyorum açıkcası, elbette bir servis hazırlıyor iseniz daha en başından sık sorulan sorular ve basit yardım sayfaları oluşturabilirsiniz ancak servis kullanıldıkça veya servis üzerinde iyileştirme / geliştirme devam ettikçe en başta hazırlanan sık sorulan sorular ve yardım sayfalarının eksik kaldığıda bir gerçek, peki biz yazılımcılar en ufak bir konuda bile yanımzda biten çağrı ve yardım merkezi personelini nasıl olurda yanımıza gelmesini en aza indirgeyebiliriz? Bu konuda aklıma gelen yöntemlerden biri bu merkezlere gidip gelen e-posta trafiğini izleme altına alarak "öğrenen spam önleyici" yazılımların kullandığı algoritmalarında yardımı ile yazılımlar ile bu sayfaların hazırlanabilmesini sağlayabiliriz. Belki bu işi yapan bir yazılım/sistem zaten mevcuttur öyle olsa bile böyle bir projeyi gerçekleştirmek oldukça keyifli, öğretici, zevkli ve kazançlı olacaktır ;) Elbette bu tür bir sistemin/yazılımın insan kontrolünden mutlaka geçmesi gerekecektir ancak hem bu işlemler sonrasında hem yardım / çağrı merkezleri daha az yoğun olacak hemde bir yazılımcılar her gün en az 3/4 kere "yaa şu soruna bir baksana, ne diyo bu adam" diye dürtülmekten kurtulacağız, nasıl sizcede akıl kârı bir iş değil mi?

(Yazar) Sevgili günlük,
(Günlük) söyle, can ciğer kuzu sarması...
(Yazar) Peki ya sence?
(günlük) Bence bmc, ar yu rediii...

24Sep/070

Nefret ediyorum,

Id'nin ne halta yaradığını bilmeyen geri zekalı insanlardan, işi yazılım olup bir işi olabildiğince amelelik ile halledenlerden (kendilerine göre kolay kaçanlardan), olabildiğince aptal yazılım ve aptal mantığı kuran insanlardan, nefret ediyorum. Bu insanlara yazılım işi vermek bir ayıp hatta günah... Elimde olsa hepsini kurşuna dizdirirdim...

1Sep/070

Kod yazma sanatı

Çoğu zaman bir şeyler yazarken kendimi bir hikaye yada roman yazarı gibi düşünürüm (çoğunlukla şair olarak), bunun en önemli nedenlerinden biri kod yazımı sırasında dikkat ettiğim yazım biçimi, genel olarak kendimi belirli bir yazım biçimine alıştırdığım için her satır kod'un düzenli görünmesi önemli bir hal aldı, bunların en başında virgül, satır sonundaki boşluklar ve tab karakteri oluşturuyor. Eski hacker'lar vim ile çalıştığından kodlarının altına vim için set komutları bulunurdu ve böylece hangi makinedeki vim ile açarsanız açın aynı görünürdü, modern editörlerde de benzeri ayarları bir yerlerde saklama yeteneği olsa bile dosya içerisinde bu bilgiyi bulundurmadığı için büyük bir sorun oluşturmakta, acaba bir gün birileri bu satırları modern editörler için uygulanabilir hale getirirmi? Elbette kod üzerindeki her şeyi bir editör ayarlayamaz ama insanı biraz zorlasa? Sanırım Python'u daha fazla sevmeye başlamamım nedenlerinden biri bu. İnsanlardan her yerde aynı görünen ve okunabilir kod beklemek sanırım harici istekler dahilinde ve bunun için tanrıya dua etmem gerekiyor. (o kadar umutsuzum). Henüz şimdiye kadar kod sitilini önemseyen yerli bir firmaya rastlamadım ve rastladığım tek firma ise yabancı bir firmanın Türkiye ofisi idi. Üniversitelerde ne öğretiyorlar acaba? Boşa nasıl vakit geçirilir, nasıl özensiz iş yapılır bu derslerin başında olmalı. Cehenneme hoş geldiniz.

30Aug/070

Kendime notlar…

Hey yolcu,
htmlspecialchars seni SQL injection'dan korumaz,
bunu unutma,
yolunda giderken...

28Apr/070

Arıyorum. İst. dışı tercihim olur.

Tagged as: , No Comments
2Dec/060

# Eaccelerator

PHP yazılımlarının hızı meşhurdur ancak çok hit alan bir web siteniz varsa ve bir süre için donanımsal yatırım yapamıyorsanız yapılacak ilk şey kodunuzun optimizesini arttırmak için (sql sorguları öncelikli) çalışmalara başlamaktır.

Elbette uzun zaman alan bu işleme başlamadan önce yapılacak ilk şeyler arasında kullandığınız veri tabanında optimizasyona gitmek ve SQL sorgularını düzenlerken aynı zamanda veri tabanının cache ve bellek miktarını arttırmaktır. Elbette bunlarda uzun bir süreçtir. Peki en kötü ihtimalle %15 / %25 arasında performans'ı en kısa zamanda almak isterseniz ve çok fazla zamanınız yok ise? İşte yardımınıza Eaccelerator koşar adım gelir ve hayatınızı kurtarmak için ilk yardımı size sunar.

Kurulumu oldukça basit olan (elbette unix türevleri için kolay win32 için bilmiyorum denemedim ) bu eklenti sayesinde PHP kodlarınız çalışma zamanında optimize edilir ve bir süre için cache'de tutulur. Kullanımı ve parametreleri için bir ara yine yazarım burada bir şeyler ama siz beni beklemek yerine kendi sayfasından bilgi alabilirsiniz.

Not: PHP5 için 0.9.5 sürümünü kullanmanız gerekiyor.
Not2: Bu tür eklentiler hayatınızı kolaylaştırabilir ve günü kurtarmanıza yardımcı olabilir ancak bu sizin düzgün ve optimizasyonu eksik kod yazmanız için bir gerekçe değildir.

12Aug/060

Ahh bu patronlar…

Eğer yazılım işi ile uğraşıyorsanız ve çalıştığınız proje kesin çizgilerle belirlenmemiş ise şöyle bir durumla karşılaşabiliyorsunuz, -tamam bu fena değil ama business konsept değişti. Buna göre tekrar yazılması lazım bunun. Haa birde şu bu ve o yazılımlarla (ki onları siz yazmamışsanız vay halinize) entegre çalışacak.(Yazar) Sevgili günlük…
(Günlük) Efendim?
(Yazar) Karpuz var yermisin?
(Günlük) (ahanda kafayı yedi bu..) tabi tabii…
3Jun/060

Taşınabilirlilik

Taşınabilirlik bir yazılım için en önemli unsurlardan biridir. Herhangi bir işletim sisteminde kullandığınız ve
başka bir işletim sistemindede olmasını istediğiniz her hangi bir yazılım oldumu hiç?
Taşınabilirlik bir yazılımın yaygınlaşmasını, kullanıcı sayısının artmasını sağlarken bazı şeyleri göz ardı edebilirmi?
Elbette konu bir sistem yazılımı değil, daha çok web yazılımları hakkında.

Şu sıralar ORM sistemlerini incelerken fark ettim ki, taşınabilir olmak adına desteklenen platformlardan tam verim
alamıyoruz. Örneğin A veri tabanında bulunan fakat B veri tabanında bulunmayan bir özelliği ORM sistemine dahil etmiyor,
dışarıda tutuyoruz bunun nedeni ise taşınabilirliliği azaltması olarak gösteriyoruz. Ancak enterprise bir ürün üzerine kod yazıyor isek
kullandığımız tüm sistemlerden (veri tabanı vs. ) tam ve doğru şekilde faydalanmak isteriz, ORM sistemlerinin pek çoğu
(farklı diller için yazılmış olanlar dahil ( python, php, vs.)) bazı açılardan birbirlerine üstünlük sağlasada bunları tek bir
ORM sistemine toplayan bir yazılım ne yazıkki yok. Bunda elbetteki bu veri tabanı üreticilerinin ANSII içerisinde bulunmayan
ancak kullanışlı ve faydalı olduğunu düşündükleri (ki öyleler) veri türlerini sistemlerine dahil etmeleri yada ANSII standartlarında bulunan
bazı veri türlerini belki, henüz dahil etmemeleri. ORM sistemler genel web yazılımları için iyi olabilir ama
web yazılımı sadece bir kaç işlem demek değildir. özelliklede şu sıralar.

Bir ORM sistemi evet taşınabilir olmalıdır ama bunu çok fazla dert etmeye kalkarsa bir sorun ortaya çıkar, performans sorunu.
Bunu aşmak içinde benzer kodları yazar dururuz, elbette bir ORM sistemi geliştirmiyorsak. Desteklenen her platformun her özelliğinin
ORM sistemleri tarafından desteklenmesi gerekir ve bu ORM sistemi ile bir yazılım geliştiriliyor ise ve eğer yazılan yazılımın taşınabilir
olması dert ediliyor ise bunu yazılımın yazarına yani programcıya devretmek gerekiyor.
ORM sistemler yazılımcıya pek çok kolaylık sunabilir, ama bunun bedeli olarak performanstan vaz geçmemelidir.