BT
15th Tem 2010 | Posted in: BT, Linux 0

Bu yazımda Pardus 2009.2 ile nasıl GPRS bağlantısı kurduğumu anlatacağım. Birçok detayı atlıyorum, ileride eklemeye çalışacağım. İhtiyacımız olan şeyler:

  1. Bluetooth ve GPRS destekli cep telefonu
  2. Bluetooth adaptörü
  3. blueman ve kppp adlı programlar.

Öncelikle blueman programı ile cep telefonunuzu eşlemeniz gerekmekte. Bunu nasıl yapacağınızı şu anda anlatmayacağım, belki ileride eklerim. Eşleme gerçekleştikten sonra

sudo cp /etc/bluetooth/rfcomm.conf /etc/bluetooth/rfcomm0.conf

komutu ile bir kopyalama yapıyoruz. Blueman üzerinden (devices kısmında telefonumuza sağ tıklayıp Serial Ports->Dialup Networking ile DUN bağlantısı kuruyoruz. Cep telefonundan onay verdikten sonra kppp programını açıyoruz. Yeni modem oluşturuyor, modem olarak /dev/rfcomm0′u seçiyoruz. Kullanıcı adı/parola için rastgele bir şeyler girip telefon numarası olarak (Turkcell için) *99# giriyoruz. Bağlan diyoruz ve nete giriyoruz. Ayrıntılar’a basarak kaç byte harcadığınızı görebilirsiniz.

1st Nis 2010 | Posted in: BT 0

Birkaç yıldır barındırma hizmetimi (hosting) Rodosweb firmasından almaktayım. Sunucularının Türkiye’de olması, hızlı ve ucuz hizmet sunuyor olmaları sebebiyle tercih etmiştim kendilerini. Ancak her sene çeşitli zamanlarda, özellikle de ne tesadüfse bahar aylarında, paketimi 1 yıl uzatır uzatmaz çeşitli arızalar sebebiyle sitemin 1-2 gün kapalı kalma durumlarıyla karşılaşmıştım. Geçen sene paket süremin dolmak üzere olduğunu haber vermeden, yıldönümünde çat diye hesabımı dondurmaları da başka bir vaka…

Bu sene ise, yine paketimi uzattıktan 15 gün sonra, önce PHP arızası yaşandı. Kendilerine bildirdim, düzeldi. Ancak aynı günün gecesi siteme erişim tamamen kesildi. Sabaha durum düzelmeyince kendilerine sordum ve hard disklerinde Bad Sector olduğunu, bu sebeple yeni diske kopyalamanın 3-4 gün sürebileceğini söylediler. 3-4 gün! Ne kadar kısa bir süre. Ben de heralde ne olur ne olmaz diye en kötü ihtimali söylüyorlardır, 1 günde çözülür sorun diye geçici bir çözüm buldum: arkadaşımın Amerika’daki sunucusuna bir önbellek görüntüsünü html olarak aktardım, DNS ayarlarını da oraya yönlendirdim. Bir ara Rodosweb çalışır hale gelmiş, hemen giriş yapıp bir yedek indirdim ve yeni sunucuya yükledim. Aradan 5-6 gün geçti ve Rodosweb hala bir çöküp bir ayağa kalkıyor. Ben de birincil DNS’imi yeni sunucuya yönlendirdim.

Şu anda yeni sunucuda bazı ayarlar yapmam gerekiyor, mesela e-posta ile haber verme olayı şu anda çalışmıyor. Ayrıca sunucu yurt dışında olduğu için erişim biraz yavaş gibi geldi. Eğer hız çok sıkıntı olursa tekrar Türkiye’de kaliteli bir sunucu düşünebilirim ancak şimdilik bu şekilde idare edeceğim. Eğer son 5-6 günde yorum yaptıysanız yorumunuz maalesef silinmiş olabilir. Sunucu ayarlarını yaparken yazı ismini içeren URL (permalink) oluşturmak için /etc/apache2/apache2.conf dosyasına şu satırı eklemek gerekiyormuş:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

Yahut modülleri aktif/pasif yapmak için a2enmod rewrite olaylarına girmek lazımmış sonradan öğrendiğime göre ama adı üstünde, sonradan öğrendim. Google sıralamalarında ciddi kan kaybettiğimi de ifade etmeden geçemeyeceğim. Pff…

Hız sıkıntısını gidermek için memcached ve WP-Super-Cache eklentisiyle sistemi hızlandırmaya çalıştım. En azından sık ziyaret edilen sayfalar için faydası olur.

He, bu arada, bugün günlerden 1 Nisan ancak şaka değil bu, keşke olsa.

12th Şub 2010 | Posted in: BT, Okul 2

Java slaytları
C/C++ Programcıları için Java’ya Giriş

Geçen çarşamba günü üniversitede ilk dersimi verdim. Data Structures and Algorithms dersini verecek olan Cesim hocam ilk 2 hafta öğrencilere Java anlatmam için rica etti ve ben de memnuniyetle kabul ettim. Seminer vermeyeli uzun zaman olmuştu zaten :) Olley sonunda bir şeyler öğretebileceğim diye içten içe sevindim, her ne kadar Java’yı anlatmak zor olsa da.

Ders vakti geldiğinde önce öğrencilere Netbeans kurdurmaya çalıştım. Çoğu kişi internetten indirmekte sorun yaşadı. Ya bağlantı problemi ya da BİM engellemesi sebebiyle. Biz de USB Flash disk ile dağıttık. Millet kurmaya çalışırken baktım ki çok zaman geçiyor, hazırladığım sunum ile başladım anlatmaya. System.out.println’da sorun çıkmadı ancak Scanner sınıfını anlatmaya kalkınca Object Oriented’ın korkunçluğuyla yüzleştiler. Birkaç örnek yaptıysam da kendilerine çok yabancı gelen bu kavram kafalarını karıştırdı. Öyle olunca ben de madem öyle deyip doğrudan Object Oriented mantığını anlatmaya çalıştım. Class yapısını gösterdim, Python’da yaptığım gibi Insan sınıfı tanımladım ve bu sebeple o kısmı her zamanki gibi baya eğlenceli geçti diyebilirim ;)

Ders böylelikle bitti. Dersin sonuna doğru öğrencilerin geçen sene gördükleri C++’ı unuttuklarını fark etmem sebebiyle (Işık’ta 2. 3. ve 4. dönem üst üste programlama dersi olduğu için böyle olmuyordu sanki) çok da verimli olmadı gibi. Artık takviye birkaç belge hazırlayıp çalışmalarını bekleyeceğim, tabii bir de gelecek haftaki dersler var. Sanırım statik metodlar kullanarak nesne oluşturmadan gitmeyi deneyeceğim bu sefer. Bir öğrenciden de çok güzel bir geribildirim aldım, moral oldu :)

27th Oca 2010 | Posted in: BT 1

(P.S.: Download links are provided at the bottom)

Bugünlerde kabul edilen makalemiz için yazdığımız yazılımın arayüzünü yeni baştan yazmakla uğraşıyorum. Önceki arayüz LEDA kütüphanesinin eski görünümlü bir penceresi yerine PyQt4 ile geniş, birçok aracı bulunan bir arayüz yapmak amacım. Şu anda birçok özelliği çalışıyor. Sırada arayüz ile arkaplanda çalışan programın parametrelerini verebilmekte.

Getirmeyi planladığımız yeni bir araç ise Heatmap (ısı haritası). Baktım ki bunu değil PyQt4, Qt4 ile bile yapan yok, oturdum yazdım. Kendi yazdığım ilk QWidget oldu ve oldukça hoşuma gitti bu görselleştirme işleri. Örnek bir ekran görüntüsü (programda sağ tıklayıp resim olarak kaydet de diyebiliyorsunuz):

Normalde çok daha uzun ancak bu görüntü sadece bir kesit. Veriler bir Microarray bicluster’ından. Satırlar gen isimlerini, sütunlar ise koşulları gösteriyor. Böylelikle hangi koşulda hangi gen nasıl tepki vermiş onu görebiliyorsunuz. Burada açık yeşiller en küçük değerleri, açık kırmızılar en büyük değerleri, siyah renk tam ortayı (median), koyu renkler de ortaya yakın olanları temsil ediyor. Yaptığım şey tüm değerleri sıralı bir küme haline getirip ortadakine siyah renk, küçüklere yeşilin [255, 1] aralığında tonlarını, büyüklere de kırmızının [1,255] arasında tonlarını verdim. Bu tamamen kafamdan uydurduğum bir algoritma / yöntem. Başka renk ve algoritmalar da var ancak açık olarak belirtildiği yerleri bulamadım henüz.

Bu görüntüyü oluşturan girdi ise şöyle:

satır sayısı kolon sayısı

heatmap kolon 1 kolon 2 kolon 3 kolon 4
satır 1 değer 1 değer 2 değer 3 değer 4
satır 2 değer 1 değer 2 değer 3 değer 4

rowNum colNum
heatmap column1 column2 column3 column4 …
row1 value1 value2 value3 value4 …
row2 value1 value2 value3 value4 …

Henüz kod tamamlanmadı ancak şimdilik ulaşmak isteyen olursa diye kodu ve örnek bir girdiyi siteme koyuyorum: Heatmap Source File and Input.

Tamamlanınca da GPL lisansıyla bir proje sayfasında yayınlayacağım.

27th Eki 2009 | Posted in: BT, Hayat 5

Beyin fırtınası yapmayı severim. Çoğu zaman güzel bir fikir bulup bunu zaten yapan başka birisinin olduğunu görsem de yılmadan mantıklı-mantıksız, komik-ciddi, yapılabilir-zorluklarla dolu çeşitli fikirler üretirim. Ancak hayat koşuşturmacası sebebiyle sadece az bir kısmını gerçekleştirme fırsatı bulabiliyorum. Bu fikirlerin hepsini gerçekleştiremeyeceğim için belki bir yapan çıkar da insanlığa faydası olur ümidiyle paylaşım yoluna gitmek istedim. Bazıları saçma, yapılamayacak kadar zor, yapılmış, vs. olabilir. Ancak buradan esinlenerek başka fikirlerin de doğabileceğini düşünüyorum. Görüşlerinizi beklerim.

Özgür Yazılım

  • Site ve hesaba özel parola üreteci. Yapacağı şey sitenin URL’ini ve kullanıcı adınızı alıp seçeceğiniz bir algoritmayla şifrelemesi ve bunu parola olarak size sunması. Böylelikle her siteye özel parolanız olacak.
  • Yakuake’de çalışan/biten bir işlemi haber veren bir KDE4 plazmoid.
  • Linux için PPPoE /ADSL bağlantı kurulum arayüzü – Pardus için NetLink modülü. Işık Üniversitesi yurtlarında kalan insanlar artık kolaylıkla internete girebilmeli.
  • Python docstring parametrelerine (return vs) bakarak akıllı kod tamamlama yapılabilir.

Verimlilik – Sosyal Sorumluluk

  • Okullarda yıl başında kitap takas / 2. el satış / bağış fuarı yapılabilir. Çoğumuz okul kitaplarımızın yüzüne bir daha bakmıyoruz. En azından kitaplar bu şekilde değerlendirilmiş olur, döviz çıkışı engellenir.
  • Otistik insanların oldukça zeki oldukları söyleniyor. Günümüz yapay zeka / makine öğrenmesi çalışmalarında bu insanlar öğretmen (trainer) olarak hayata kazandırılabilir. Onların kullanabileceği tarzda görsel bir arayüz ile bir veritabanı oluşturulabilir. Bakınız: Open Mind Common Sense
  • Organik çöplerden enerji elde edilebiliyor. Bunun yanında plastik çöpler ise geridönüşümle yeniden kullanılabiliyor. Akşamları atılan çöplerden pet şişeleri toplayan çok sayıda insan var. Eğer bu atıklar bir şekilde ayrılabilseydi ikisi de zararsız bir şekilde değerlendirilebilirdi.
  • Ocakta pişen yemek/kaynayan su sıcak buhar üretir. Bu da aspiratör vasıtasıyla bir boruyla evin dışına atılır. Buradaki ısı enerjisi bir şekilde tekrar değerlendirilmeli, boşa gitmemeli. Uçuk bir fikir: çift katlı ocak. Alttaki ocağın ısısından üstteki, üsttekinin ısısından alttaki faydalanır.

Teknoloji

  • TV’de reklamların girdiğini tespit edip reklam süresince başka bir kanalın / kaydın izlenmesini, asıl kanalda reklam biterken ise bunu tespit edip o kanala dönüşünü sağlayan bir yazılım. (Kanallar boşuna kızmasın, yapılması çok zor bir proje :) )
  • Anadolu’da anız yakımları yasaklanmasına rağmen devam ediyor ve büyük tehlikeler arz ediyor. Yanan tarlalar ve hatta ormanlar uydudan tespit edilebilir (Orman yangını tespiti için böyle bir projeye başlanmış sanırım).
  • Piyasada bilinmemekle birlikte ufak panelleriyle güneşten şarj olan, ardından gece olduğunda içeriyi aydınlatan perdeler mevcut. Aydınlatıcı led yerine pervane konularak gündüz vakitlerinde içerinin serinletilmesi sağlanabilir.
  • Arabaların üstü güneş panelleriyle donatılıp klimaların bu güçten faydalanması sağlanabilir. Böylelikle arabaya nüfuz eden ısı da soğurulmuş olur.