İmkansız denen şeyler çoğunlukla denenmemiş olanlardır.
Jim Goodvin
Delicious StumbleUpon Digg Twitter Facebook

Sonunda

Yazan : admin Tarih : June 8, 2009-9:34 pm Etiketler :
0

Cumartesi günü kurulumunu yaptığımız proje ile bugün çalışılmaya başlandı. Bir kaç sorunu tespit edip, ardından yapılan düzenlemelerden sonra şu an sorunsuz bir şekilde çalışmakta. Umuyorum uzun bir sürede böyle devam eder. Çünkü "sorunsuz şekilde çalışmaya başladı" cümlesini kullanıp büyük sorunlarla karşılaşmak epey kötü oluyor doğrusu.

Birde iki haftadır socket bağlantılarıyla uğraşıp duruyorum. Olmadık yerde karşımıza çıkan hatalar yüzünden yazılan servisler tekrar tekrar elden geçirildi. Jython, java, python ve php kaynakları arasında dolanıp durduk. Şu sıralar java ile bir çözüm bulduk gibi. Biraz daha çözümü geliştirip bu hafta içi bir deneme yapabiliriz. Son deneme olacağını umuyoruz. Şu anki hali idare ediyor ama kesin çözüm için biraz daha zorlamamız gerekiyor.

Yazmayalı epey olmuş bu arada. Zaman öyle hızlı geçiyor ki farkına bile varamıyorum. Eve geldiğimde (ve kendime geldiğimde) saat 22:00-23:00 olmuş oluyor. Hal böyle olunca dinlenmek için kendime zaman ayırmam gerekiyor. Bunun sonucunda da malesef bir şeyler yazmaya fırsat bulamıyorum. GoogleDoc üzerinde asterisk ile ilgili bir kaç yazı yarım kaldı. Jython ve java ile ilgilide aklımda bir kaç konu var ama zaman yok.

Herhalde Haziran ayının sonlarına doğru boş zaman konusunda sıkıntı çekmeyeceğim. O günleri iple çekiyorum doğrusu. Hem bir şeyler yazmak için hem de kullanılmayan bir iki sunucu ve üzerindeki trunk kartlarla oynama imkanım olacağı için :)

Google App Engine İçin Özel Şablon Yardımcıları

Yazan : admin Tarih : May 9, 2009-9:14 pm Etiketler :
0

GAE ile bir uygulama geliştirirken şablon kısmında ekrana yazılan değeri biçimlendirmem gerekti. Bu konuyla alakalı daha önce Django için bir yazı yazmıştım. Google App Engine de ise durum Django dan biraz farklıymış. Özel şablon yardımcıları oluşturmak için ilk olarak ana dizinde ya da herhangi bir dizinde bir dosya oluşturuyoruz. Örneğin ana dizinde customfilters.py adında bir dosya oluşturalım:
(more...)

Bilgi Servisi

Yazan : admin Tarih : May 2, 2009-11:57 am
0

Sitenin yeni tasarımına, üye olduğum bir kaç siteden bilgi (twitter, last.fm, delicious) almak için bir bilgi bölümü eklemiştim (sitenin en altında). İlk başta, rss ile ilgili sitelerden bilgileri alıp ayıklayarak bilgi bölümünü güncelliyordum. Ancak her defasında bu sitelere istek göndermek sitenin açılış süresinde soruna neden oluyordu. Bunu bir önbellek sistemi ile aşmak için çalışmaya başlayacaktım. Tabi aklıma google app engine ile bir servis yazıp bunu genel kullanıma açma fikri gelmeden önce.

Normalde Cumartesi günü çalışıyoruz (bir hafta arayla). Bu Cumartesi izin gününün bana gelmesinden ötürü tüm gece boş zamanım vardı. Oturup servisi tamamlamak için çabaladım. Şu an tamamlanmış durumda. Sitesinde pek detaylı örneklendirme yapamasamda js ile veri alım örneği epey açıklayıcı olmuştur sanırım.

Bu servise daha başka neler eklenebilir diye düşünürken aklıma bir kaç özellik de geldi. Fırsatım olursa bunlarıda ekleyebilirim.

  • Servisi rss için özellştirmek ve bağlantı ile gönderilen parametrelere göre verileri almak.
  • 120 sn olan veri alım aralığını kullanıcının belirlemesine olanacak sağlamak.
  • Hazır araçlar hazırlamak.
  • İstatistik sistemi

Bu arada çok çekişmeli geçen Boston Celtics - Chicago Bulls serisinin son maçı yarın gece 03:00 da NTV Spor ekranlarında. Kaçırmayın derim.

Bu Sefer Boşluk

Yazan : admin Tarih : April 23, 2009-1:13 pm Etiketler :
0

Bir önceki girdide bir tane virgül yüzünden javascript kodlarının IE üzerinde çalışmadığıyla ilgili bir şeyler yazmıştım. Bugünde neredeyse tüm tarayıcılarda test edip çalıştırdığım kodlar gene IE üzerinde soruna neden oldu. Bu seferki sorun ise php kodlarındaki bir yerlere gizlenen(!) boşluktan kaynaklanıyordu. Aşağıdaki kodların ikisi arasında pek fark olmasa gerek:

 
header('Content-type: text/html; charset= utf-8');
 
 
header('Content-type: text/html; charset=utf-8');
 

utf-8 den önceki boşluk herhalde gözünüzden kaçmamıştır! Bu boşluk ajax ile alınan verilerin IE ile gösterilmesi sırasında soruna neden oldu. Böyle ilginç sorunlarla karşılaşmakta epey ilginç bir durum. Hep beni buluyorlar.

Javascript ve Liste Kopyalama

Yazan : admin Tarih : April 18, 2009-3:11 pm Etiketler :
0

Böyle basit bir şeyi bilmemek bana iki saat harcattı neredeyse. Liste kopyalama işlemi şu şekilde olmuyormuş javascript ile:

 
var test1 = new Array(1,2,3);
var test2 = test1;
test2.push(4);
alert(test1);
alert(test2);
 

Bu kodlar sonucunda test1 listesinede 4 elemanının eklendiğini göreceksiniz. Kopyalama işlemi için slice fonksiyonunu kullanmamız gerekiyormuş:

 
var test1 = new Array(1,2,3);
var test2 = test1.slice(0);
test2.push(4);
alert(test1);
alert(test2);
 

dotProject ve Linutop

Yazan : admin Tarih : April 17, 2009-9:46 pm Etiketler :
0

dotProject'i bugün deneme imkanım oldu. Bazı hataları ve çok fazla etkileşimli olmaması bir yana bırakılırsa proje ve görevleriniz için kullanabileceğiniz bir yazılım. Görünümü hoş bir şeyler isterseniz opengoo ve collabtive'yi deneyebilirsiniz.

Geçen gün iş yerinde sıkılıp StumbleUpon ile linux kategorisi altındaki sitelere göz atarken LINUTOP adlı bir ürün ile karşılaştım. Gayet kullanışlı ufacık bir kutuya, ubuntu tabanlı dağıtımı yerleştirmişler. Özellikle çağrı merkezlerinin çok işine yarayacak bir ürün diyebilirim. Yakında, %70 ihtimal bir tane sipariş edip test edeceğiz. Bakalım, performans konusunda bir sıkıntı çekecekmiyiz.

Bu arada dil kursunun ilk kuru bitti. Hızlıca nasıl geçip gitti bir ay anlamadım pek. Yaklaşık bir haftalık dinlenme sonunda ikinci kur için yine hayatım hareketlenecek.

İş yerinde çok fazla format atıyorum. En sonunda Pardus'a geçtim :) . Şu an için pek bir sorun yok. Eclipse biraz sorunlu çalışıyor hepsi o.

003

Sabah uyandıktan sonra perdeleri açtığımda aşağıdaki manzara ile karşılaştım. Sis çoğu zaman kaplıyordu her yeri. Telefon ile çektiğim için biraz kalitesiz olmuş. Sonunda yakaladım bu görüntüyü :)

006007

Ne kadar karışık bir girdi oldu. Neyse :)

Virgül

Yazan : admin Tarih : April 1, 2009-9:09 am Etiketler :
1

Firefox ile bir sorun çıkarmadan çalışan kodlar IE 7 üzerinde nedense soruna neden oluyordu. Çabalarım sonuçsuz kalınca tüm javascript kodlarını baştan yazmaya karar verdim. Sorunun kaynağını ise kodları yeniden yazma işlemi sırasında bulabildim. Buda biraz şans eseri oldu. Tüm sorun bir virgülden kaynaklanıyormuş. Bakalım aradaki farkı bulabilecek misiniz?

Aşağıdaki kodları Quick Diff ile karşılaştırabilirsiniz.

Çalışan Kodlar:

 
        $('#facebox .message').hide();
        $('#facebox .ajax_loading').show();
        $.post("ajax.php",{
            add_language : 'true',
            language1 : $('#facebox input[name=language1]').val(),
            language2 : $('#facebox input[name=language2]').val()
        },function(data){
            $('#facebox .message').html(data.message);
            $('#facebox .message').show();
            $('#facebox .ajax_loading').hide();
            $('#facebox input[name=language1]').val('');
            $('#facebox input[name=language2]').val('');
            if (data.status!='error'){
                languages.list(0);
            }
        },"json");
 

Çalışmayan Kodlar:

 
        $('#facebox .message').hide();
        $('#facebox .ajax_loading').show();
        $.post("ajax.php",{
            add_language : 'true',
            language1 : $('#facebox input[name=language1]').val(),
            language2 : $('#facebox input[name=language2]').val(),
        },function(data){
            $('#facebox .message').html(data.message);
            $('#facebox .message').show();
            $('#facebox .ajax_loading').hide();
            $('#facebox input[name=language1]').val('');
            $('#facebox input[name=language2]').val('');
            if (data.status!='error'){
                languages.list(0);
            }
        },"json");
 

Kelime Hazinesi

Yazan : admin Tarih : March 30, 2009-11:42 pm Etiketler :
0

Dil öğrenimi sırasında kelime bilgimi arttırmak için geliştirdiğim bir proje, Kelime Hazinesi. Geçen hafta sonu bir kısmını tamamlamıştım. Bu hafta sonuda ilk sürüm için gereken bazı şeyleri tamamladım ve test sürümünü yayına koydum.

Siteye üye olarak dil ve kelime ekleyebilirsiniz. Sitedeki çalışma alanı üzerinden kelimeler üzerinde çalışma imkanınız bulunmakta. Şu an tahmin oyunu adlı bir bölüm mevcut çalışma alanında. Önümüzdeki haftasonu bir aksilik çıkmazsa adam asmaca ve bulmaca bölümleri eklenecek. Fikir ve önerileriniz olursa iletişim bölümünden bunları bana iletebilirsiniz.

İlk test sürüşü sonucunda dil ve kelime ekleme işlemlerinin epey insanı sıktığını ve buna bir çözüm bulmam gerektiği yorumu ile karşılaştım. Bununla ilgilide bu haftasonuna kadar bir şeyler yapmayı planlıyorum.

Şu tahmin oyununu biraz açıklamaya çalışayım. Bir dil altına en az 2 kelime ekleyerek bu oyunu oynayabilirsiniz. Sistem seçili dil altındaki kelimelerden herhangi bir tanesini seçiyor ve bu kelimenin anlamını bulmanız için size iki seçenek sunuyor. Cevabınıza göre yanlış ya da doğru cevap verdiğinizle ilgili bilgi veriliyor ve dil altındaki tüm kelimeler tamamlanana kadar farklı kelimelerin anlamı sırayla bu şekilde size soruluyor.

Site yurt dışındaki sunucuda bulunduğu için erişim sırasında biraz yavaşlık hissedebilirsiniz. Yurt dışındaki sitelere erişimde epey zorluk yaşanıyor şu sıralar (Kablo internet haricinde).

Geç Kalmaktan Daha Vahim Bir Hata

Yazan : admin Tarih : March 21, 2009-11:53 pm
0

Bugün ofiste 16 ya kadar o site benim bu site senin diyerek gezinmek zorunda kaldım. Asıl iş 16 dan sonra başladı çünkü. Her neyse. Bu gezinme sırasında arada sırada yazılarını okuduğum Melih Arat'ın arşiv yazılarına göz atma fırsatı buldum. Bazıları sıkıcı bazıları idare eder türden bir kaç yazı okuduktan sonra başlığını kullandığım bir yazı ile karşılaştım. Açıkçası insanı motive eder türden, şöyle bir köşeye bağlantısı sıkıştırılıp ihtiyaç halinde ya da arada sırada okunacak türden bir yazı olmuş (tamam çok abarttım, ama güzel).

Buda bir başka yazıdan alıntı :
İki arkadaş, bir kafeteryaya gidip oturup birer gazoz ısmarlarlar. Çantalarından çıkardıkları sandviçleri yemeye başlarlar. Garson gelir ve der ki: "Efendim, burada kendi sandviçlerinizi yiyemezsiniz." Arkadaşlar gayet sakin bir şekilde 'sandviçlerini değiştirir ve yemeye devam ederler'.

Uzun süredir geliştirme konusunda epey durgunluk yaşıyordum. Projeler nedense hep yarım kalıyor... Bu dönemimin en kötü tarafıda, kodlarken aşırıya kaçıp yapılması gereken şeye ek bir çok özellik katıp sonra işin içinden çıkamamak olsa gerek. Neyseki bugün "birazda günlüklere takılayım" kısmında Ferruh Mavituna'nın günlüğünde bulunan Über Programcının Hayat Rehberi başlıklı yazı ile karşılaştım. Kendi kendime dur diyerek şöyle bir geri adım attım. Bayağı iyi oldu.

Bu geri adımdan sonra geliştirmeye çalıştığım kelime öğrenim sisteminin kodlarını sildim ve sil baştan işe başladım. Kimsenin ve hatta benim bile işime yaramayacak olan modül sistemli yapıdan klasik eski tip sisteme dönüş yaptım. Sabah başlamıştım, yani yazıyı okuduktan sonra, şimdi proje neredeyse bitti.

Durgunluk sorununu aştık derken havalar yüzünden malesef hasta oldum. Tam değil ama hissetmeye başladım hafiften. Yılda iki kez hasta olan birisi için sayının artması pek de hoş değil. Çünkü daha geçen hafta limiti doldurmuştum. Neyse umarım fazla uzun sürmez.

Ubuntu 8.10 Üzerinde MySQL İle Asterisk Arama Kayıtlarını Tutma

Yazan : admin Tarih : March 12, 2009-3:16 pm Etiketler :
0

Ubuntu 8.10 üzerine Asterisk kurarken postgresql ile ilgili modüller hazır geliyor ancak mysql için ayrıca asterisk-mysql paketini kurmanız gerekiyor. Bu paket sadece Asterisk arama kayıtlarının mysql veritabanı üzerinde tutulması işlemi için gerekli(Malesef gerçek zamanlı mysql işlemleri için odbc üzerinden verilerin alınmasını sağlamalısınız.). Yalnız bu paketi kurduktan sonra ayar dosyasına aşağıdaki bilgileri ekleyerek, cdr_mysql.conf adlı dosyayı /etc/asterisk/ dizininde oluşturmanız gerekiyor. Çünkü paket kurulduktan sonra bu dosya oluşmuyor.

 
[global]
hostname=localhost
dbname=asterisk
table=cdr
password=password
user=user
 

Sistemin kayıtları veritabanına ekleyebilmesi için, dbname kısmında yazan veritabanı içinde table kısmında yazan tabloyu oluşturmanız gerekmekte. Bu işlemler içinde aşağıdaki sql kodları işinizi görecektir.

 
CREATE TABLE cdr(
    calldate datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
    clid varchar(80) NOT NULL DEFAULT '',
    src varchar(80) NOT NULL DEFAULT '',
    dst varchar(80) NOT NULL DEFAULT '',
    dcontext varchar(80) NOT NULL DEFAULT '',
    channel varchar(80) NOT NULL DEFAULT '',
    dstchannel varchar(80) NOT NULL DEFAULT '',
    lastapp varchar(80) NOT NULL DEFAULT '',
    lastdata varchar(80) NOT NULL DEFAULT '',
    duration int(11) NOT NULL DEFAULT '0',
    billsec int(11) NOT NULL DEFAULT '0',
    disposition varchar(45) NOT NULL DEFAULT '',
    amaflags int(11) NOT NULL DEFAULT '0',
    accountcode varchar(20) NOT NULL DEFAULT '',
    userfield varchar(255) NOT NULL DEFAULT ''
);
 

Bu özelliğin aktif olabilmesi için asterisk sunucusunun yeniden yüklenmesi (CLI ile reload) ya da yeniden başlatılması(/etc/init.d/asterisk restart) gerekiyor.

Kolay, GAE ve Django kullanarak yazılan uygulamaların grafiksel ortamda çalıştırılabilmesini ve yönetilebilmesini sağlar.

http://kolay.googlecode.com
Günümüzde bir çok site ya da e-posta servisine üye olmamız gerekebiliyor. Tüm bu üyeliklerde aynı şifreyi kullanmak güvenlik açısından ne yazık ki bir risk oluşturmakta. Ayrıca tüm bu şifreleri akılda tutmak büyük çaba gerektirirken, bunları bir yere not etmekte birilerinin eline geçmesine fırsat vermektedir.

Hatırlat programı ile şifrelerinizi kategorilendirerek kayıt altında tutabilirsiniz. Verileriniz kaydedilirken sizin belirlediğiniz bir anahtar vasıtasıyla gizlendiği için birileri veritabanına erişse bile bunu çözmesi epey güç olacak.

İşletim sistemi değişikliklerinde ya da yeni sistem kurulumunda, programdaki yedekleme/geri yükleme özelliğini kullanarak bilgilerinizi taşıyabileceksiniz (Bu özellik henüz projeye dahil edilmemiştir).

http://hatirlat.googlecode.com
Yapılacak işlerle ilgili küçük notlar almanızı sağlar.

http://notal.googlecode.com