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

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

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.

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.

16Jan/061

Singleton

Pek bir severim kendilerini, PHP'de kullanmak çoğu zaman kolay, ancak yinede dikkatli olmak gerekiyor.

hemen örnekleyelim.

static $hodo;

Class hede{
var $hodo;
function Instance(){
$test = &$hodo;
if(!is_object($test)){
$test = new hede();
}
return $test;
}
function setHodo($value = NULL ){
if ($value === NULL ){
return NULL;
}
$this->hodo = $value;
return $value;
}
function getHodo(){
if($this->hodo === NULL ){
return NULL;
}
return $this->hodo;
}
}

şimdide kullanalım bakalım.

$A = &Hede::Instance();
$A->SetHodo(5);
$B = &Hede::Instance();
echo $B->getHodo();

Peki bir güzel oldu.. merak edenler denesin efendim.
Elbette Static değişken yerine $GLOBAL['ClassName'] içerisine sınıfı yerleştirebilirsiniz o ayrı. Canınız isterse kardeşim alla alla.

11Oct/051

python vs. php

Efendim bir şekilde soap ve python kullanmak icap etmekte, php kodlayan biri olarak python'nun getirdiği OOo yapıya çabuk alıştım diyebilirim. Ancak birde php kadar kolay olsa idi keşke, ve daha iyi dökümantasyonu olsa idi. (benim gibi ingilizce bilmeden php öğrenebilirsiniz sadece dökümana bakarak ama python hıms.. zor (en azından benim için))

Örneğin Python kodu:
#!/usr/bin/python

from SOAPpy import SOAPProxy

remote = SOAPProxy(
"www.webservicex.net/geoipservice.asmx?WSDL",
soapaction="http://www.webservicex.net/GetGeoIP"
)

result = remote.GetGeoIP(IPAddress = "212.174.70.1XX")
print ("Result: %s" % result.ReturnCodeDetails )

Ve sonuç olarak çalışmıyor :) (ben 2 gün uğraştıktan sonra itiraf edebilirimki beceremedim )

ve PHP kodu:
< ?php
Class Ip{
var $IPAddress;
function __construct($Ip){
$this->IPAddress = $Ip;
}
}

$SoapClient = New SOAPClient("http://www.webservicex.net/geoipservice.asmx?WSDL");
$result = $SoapClient->GetGeoIP(New IP("212.174.70.1XX")); //nesnemizi verelim.
$result = $result->GetGeoIPResult;
echo $result->ReturnCodeDetails;
?>

Sonuç olarak çalışıyor.

Bu arada SOAP falan güzel şeyler bunlar. (XLM-RPC'yi tercih ederim o ayrı)

Biri buradaki yanlışı söylese, sevinsem çocuklar gibi... (beleşçilik gibi duruyo idare edin şimdilik)

Tagged as: , , 1 Comment