Tonguç Yumruk'un Weblog'u
Anlık olaylar, fikirler, gudik ismail vs...

Sun, 28 Nov 2004

Sonunda sınav derdinden kurtulup tekrar gerçek! işlere dönebildim. Bir bakalım ToDo listesine:
- Uludağ'cıların son yazdıkları belgeler okunacak
- LaTeX kitabı bitirilecek
- Free Culture kitabı bitirilecek
- Madwifi indirilip AP kurma denemeleri yapılacak
- Dbus konusunda gerçekçi bir test uygulaması yapılıp ardından log-i'ın yazılmasına başlanacak.
- log-i'ın ne olduğu blog'a yazılacak
- Nefes alma sırası unutulmayacak (önce içeri, sonra dışarı)
- Dünya ele geçirilecek
- Collector için bir tasarım hazırlanıp yayınlanacak.
- Bağlantı hızı artar artmaz SVN deposu public hale getirilip açılacak.

[15:02] | [/misc] | # | G! |

Sat, 20 Nov 2004

Evet, sonunda Firefox 1.0'ı da kutladık. Peki nasıl dı? Güzelmiydi? Açıkçası Shadow gibi gürültülü müzik, bol sigara dumanı içeren havasız ortamlardan pek hazzetmem. Fakat buna rağmen orada 1.5 saat kaldıysam bence bu orada güzel vakit geçirdiğimin göstergesidir.

Sadece LKD insanları değil çok çeşitli insanlar kutlama için biraradaydı. Fire-Fire-Firefox diye bağırıldı, eğlenildi. Hiperaktif penguenler hiç yerlerinde durmadılar. Gecenin en güzel süprizi ise şüphesiz üzerinde firefox logosu olan pastaydı. Böylece Firefox'un bir parçasını da yemiş oldum... Bir diğer süpriz ise Firefox CD'leri idi... Devrim Gündüz sağolsun masann üstüne bir sürü Firefox CD'si koymuştu. Tabii aşağı yukarı herkeste halihzırda Firefox bulunduğundan çok alan olmadı. Aslında merak etmiyor değilim acaba CD'inin içerisinde sadece Fedora rpm'leri mi vardı diye hehehe...

Firefox partisi geçti. Sıra diğer özgür yazılımlarda... Thunderbird 1.0 ve OpenOffice.org 2.0'ı kutlamak için sabırsızlanıyorum doğrusu... Bakalım istanbul partisi nasıl olacak.

[00:18] | [/linux] | # | G! |

Thu, 18 Nov 2004

Sonunda network'ümdeki makinaları otostopçu'nun galaksi rehberini baz alarak isimlendirmeye karar verdim. Domain'i galaxy olarak seçtim, bilgisayarlarım ise şöyle sıralandı:

marvin: Firewall ve server olarak kullandığım, blog'umu da içeren makina. En eski ve bozuk bilgisayarım olduğu için bu ismi seçtim

deepthought: Desktop makinam. Sadece geceleri kapanıyor, gündüz evde olmasam bile sürekli açık... Neden deepthought? çünkü colin'i biraderim aldı...

colin: Biraderimin bilgisayarı. Evdeki en güçlü bilgisayar. Aslında deepthought bu olmalıydı ya neyse...

dna: Tahmin edileceği gibi Douglas Noel Adams'ın kısaltması. Tüm galaksi rehberinin ve içindeki herşeyin yaratıcısı olarak babamın bilgisayarına başka bir isim vermem düşünülemezdi herhalde.

Silinen WindowsXP boot loader'ını hayata döndürmek

Geçenlerde Windows XP ile Windows 98'i dual boot kullanan bir arkadaşım C'de duran Windows 98'i formatlamak hatasına düşmüştü. Sonuçta hep birlikte keşfettikki sadece XP kurulum CD'sinden açıp FIXMBR demek işi çözmüyor. Önce FIXBOOT ile biraz ilerleme kaydedildi. Sonra Google'da yapılan binbir arama sonucunda ntldr, boot.ini, ve ntdetect.com dosyaları yedekten yüklendi ve XP açılmaya başladı. Burada bir işletim sisteminin açılabilmek için diskin kendisine ait olmayan bölümündeki dosyalara olan bağımlılığı konusunun saçmalığına hiç değinmeyeceğim. Fakat beni asıl aşırtan o 9 terabyte olduğu söylenen kocca (bu bir yazım hatası değildir) MSDN vs... kitaplıklarında bu konuda hiçbir bilgi bulamamam oldu. Sonunda Google'ın yardımıyla internetin kıyısında, köşesinde bir yerde bu dosyalara ihtiyaç olduğunu öğrendik te sorun çözüldü. Ah bir de Eğer NT loader'ı geri yükledikten sonra Windows 98'i açmaya devam edebilmek istiyorsanız biryerlerde bootsect.dos dosyasının yedekli olmasına dikkat edin derim.

[23:21] | [/misc] | # | G! |

Mon, 15 Nov 2004

Ondan sonra bana GNU/Linux'u neden bu kadar sevdiğimi soruyorlar. Söylermisiniz bana 2 sene içinde 3 defa komple donanım değiştirip, diskten diske sadece cp ile aktarılıp sonra da sadece fstab ve lilo.conf'u değiştirince hiçbirşey yokmuş gibi çalışmaya devam eden bir sistemi nasıl sevmeyeyim?

Debian GNU/Linux'um hayatına 533mhz bir celeron üzerinde Woody yeni çıktığı sıralarda başladı. Ondan sonra kendisini önce 30gb Quantum'dan 80gb Western Digital'a sonra da Celeron 533'ten AMD 2500+'e taşıdım bu arada Woody'den Sarge'a geçtim. Dün akşam da uzun zamandır planladığım kardeşimle disklerimi ayırma eylemini gerçekleştirdim. Zaten Onun Windows XP'si fiziksel olarak Quantum'da, benim Debian'ım da Western Digital'da duruyordu. Sonunda bir monitör daha alınca emektar Cel533'ü Firewall'luktan azlettim ve kendi masaüstü sistemim haline getirdim, sakat 200mmx'imi yeniden firewall olamak üzere eski yerine koydum. Böylece Debian'ım bir kere daha bu seferde AMD'den Celeron'a geçiş yaptı. fstab'ı değiştir, lilo'yu ayarla ve sistem çalışmaya devam ediyordu...

Şimdi ben bu sistemi sevmeyeyim de neyi seveyim?

Not: Celeron'dan AMD'ye geçerken XP'yi formatlamam gerekmişti.

Not2: Yeni sistemime hala bir isim bulamadım. HAL, HAL9000, DeepThought ve colossus arasında kararsızım. Yoksa isimleri X-Men'den mi versem? Sanki daha kolay olur gibi.

[12:20] | [/linux] | # | G! |

Sun, 14 Nov 2004

Sonunda şu meşhur G.O.R.A.'yı dün seyrettim, rahatladım. Şimdi filmi izlemeyenlerin tadının kaçamaması için film hakkında birşey yazmayacağım. Fakat genel olarak sıradan ama eki eki diye güldüren komik bir filmdi diyeyim. Yine de çok büyük beklentilerle gitmemek lazım.

[11:12] | [/misc] | # | G! |

Wed, 10 Nov 2004

knghtbrd: there may be no spoon, but can you spot the vulnerability in eye_render_shiny_object.c?

-- rcw

[09:32] | [/misc] | # | G! |

Sun, 07 Nov 2004

Lisp ile uğraşmaya başlayalı çok olmadı. Şimdilik kod yazan kod işlerine ve makrolara çok bulaştığımı söyleyemeyeceğim. Fakat Barış Metin'in bu konuda yazdıklarını okuduktan sonra benim de birşeyler karalamam gerektiğini hissettim.

Dediğim gibi Lisp'te çok yeniyim. Bu nedenle örneği hem daha iyi hakim olduğum bir dil olduğundan, hem de Lisp'e benzer bazı fonksiyonel programlama özellikleri içerdiğinden Python ile vereceğim. Kod yazan kod mantığı oldukça ilginç bir yapıdır. İyi kullanıldığınızda kodunuzda oldukça ilginç taklalar attırabilirsiniz. Kod yazan kodların en tipik örneği sonuç olarak bir fonksiyon döndüren fonsiyonlardır. Bunu bir örnekle açıklamak gerekirse:

>>>def jenerator(carpan):
...    return lambda x: x * carpan
>>>onla_carp = jenerator(10)
>>>onla_carp(5)
50

Bu mantığın daha da gelişmiş haline ise metaclass programlama deniyor. Aslında Metaclass programlama basit bir blog yazısına sığmayacak kadar uzun, detaylı ve benim çok ta uzman olmadığım bir konu. Metaclass programlama için basitçe kod yazan kod mantığının nesne yönelimli programlamaya uyarlanmış hali diyebiliriz. Bu anlamda meta sınıflar sınıf üreten sınıflar olarak tanımlanabilir. Bu knouda daha çok bilgi edinirsem yine yazarım.

[00:12] | [/kod] | # | G! |

Thu, 04 Nov 2004

Postacılara yazılan ilkokul şarkıları boşa değilmiş. Ben bugün bunu öğrendim. Zira e-posta, faks, SMS, IM, Zopik gibi binbir çeşit yolla iletişim kurduğumuz bu "modern" zamanlarda dahi beklemediğiniz bir zamanda kapınızı çalan bir postacı güne güzel bir başlangıç yapmanızı sağlayabiliyor. (Arka plana bir Louis Armstrong - What A Wonderful World lütfen)

Sabah geç uyandım. Eski yazdıklarımı okuyanlar hatırlayacaktır Mp3 player'ımın Linux'tan mı yoksa benim USB yuvalarımdan mı kaynaklandığını tam olarak bilemediğim bir sorunu vardı. Bu sorun Muzio'nun 1.90K firmware'i ile tamamen çözülmüş sayılmasa da oldukça azalmıştı. Fakat ben kaşındım ve ne yaptım? Daha yeni, daha güncel, uçan, kaçan 2.00K firmware'ini (buna bir türkçe karşılık bulmalı) yükledim. Ve ne yaptıysam khubd'yi "defunct" hale geçmekten kurtaramadım. Her seferinde reboot atmaktan GDM'in reboot düğmesi yalama oldu desem yeridir. Sonunda 8 tane USB yuvasından birinde çalışmaya karar verdi. Ben de bun üzerine elimdeki Önder Focan - Reminisce (Orjinal - RIAA'ya duyurulur) CD'sini Ogg Vorbis'e çevirmeye karar verdim. Fakat ne yaptıysam grip'in data track'ten hemen önceki son şarkıyı cd'den okumasını sağlayamadım. İşin tuhafı cdda2wav komut satırında aynı işi rahatlıkla yapıyordu... Biraz grip ile kavga ettikten sonra vazgeçtim ve başka şarkılar yüklemeye karar verdim... Bu arada da oldukça gerilmiştim... Tam kılık kıyafet değişme haline girmişken kapı çaldı. Bana irice bir paket gelmişti. Aceleyle tekrar pijamalarımı giyip kapıya çıktım. Postacı elinde irice bir paketle gelmişti. Paketin üzerinde FSF logosunu görünce heyecanlanmadım desem yalan olur. Postacı gidince aceleyle açtım ve paketin içinden Lawrence Lessig'in Free Culture adlı kitabının ciltli falan oldukça fiyakalı bir baskısı çıktı. Bütün bunların üzerine nasıl bir yatıştırıcı gibi geldi anlatamam. Uzun zamandır güne bu kadar keyifli başlamamıştım...

Not: Bu arada RMS'te bloglamaya başlamış

Not2: Bu RMS kesinlikle sert mizaçlı bir insan, ama sanki onunki biraz "Dost acı söyler" sertliği...

Not3: Yine çok saçmaladım...

Not4: Saçmalanmaz, taranır...

[23:04] | [/misc] | # | G! |

Tue, 02 Nov 2004

Aylar süren arama inceleme, o olur, bu olmaz, bu çok kompleks gibi şeylerden sonra Mambo'da karar kıldım. Kurdum, şimdi herkes çok mutlu.

Python ve Unicode hakkında

Geçen hafta hem Robert Love hem de Gürer Özen Python ile aynı problemi yaşamışlar. Bir dönem beni de Python'dan vazgeçmenin sınırlarına getiren bu konu hakkında bir açıklama yapma ihtiyacı duydum. (Robert oğlum evladım öyle çevrene bakma dersi dinle)

Python'da metinleri ifade etmek için iki fgarklı veri tipi vardır. Biri bildiğimiz tek byte'lık karakterlerden oluşan string tipi, diğeri ise Unicode verilerini ifade etmekte kullanılan unicode tipi. Böyle iki farklı veri tipi olmasının sebebi ise 1.5.1 sürümünde Python'a Unicode desteği ekleneceği zaman Guido'nun string'i unicode destekleyecek hale getirmektense unicode diye ayrı bir veri tipi icat etmiş olması.

Şimdi gelelim print meselesine. Print anahtar sözcüğü kendisine verilen değişkenlerin __str__ fonksiyonunu çağırarak sonuçta dönen string nesnesini ekrana yazar. Bildiğim kadarıyla bu noktada şöyle bir sorun vardır. Unicode nesnesinin __str__ fonksiyonu içerdiği unicode verisini utf-8 değil ascii olarak encode (bunun türkçe bir karşılığı olmalı) etmeye çalışır ve eğer ascii karakter seti dışından bir karakterle uğraşıyorsanız o meşhur Exception'ı yaratır. Bunun en basit çözümü Unicode nesnelerini direkt olarak yazdırmaktansa print u"şŞğĞıİ".encode("utf-8") şeklinde kullanmaktır. Tabii bunun yerine string gibi davranıp, veriyi unicode olarak saklayan sonra da utf-8 olarak size iade eden bir sınıf yazabilirsiniz. Tabii bu durumda her seferinde benimstring = utfstring("yağış") yazmanız gerekecektir ki bu da u"yağış" yazmanın yanında hamallıktır, ama belki yerelleştirme gibi bazı özellikleri de içine yükleyerek oldukça kullanışlı bir sınıf elde edebilirsiniz. Gerisi size kalmış...

[09:41] | [/kod] | # | G! |
Elektrikli Posta
Uptime
1 yıl, 26 gün, 4 saat, 31 dakika
Çocuklara Bilgisayar
Kategoriler
/ (201)
  dev/ (13)
  kod/ (28)
  life/ (2)
  linux/ (38)
    freedays/ (2)
    senlik/ (0)
      2006/ (15)
  misc/ (58)
  mobil/ (3)
  musiki/ (18)
  net/ (10)
  tech/ (9)
  web/ (5)
Zaman Makinesi
< November 2004 >
SuMoTuWeThFrSa
  1 2 3 4 5 6
7 8 910111213
14151617181920
21222324252627
282930    
Kapı Komşuları
Güzel Siteler
Ivır zıvır
XML Feed

FSF Associate Member: 2040

Powered by PyBlosxom

Valid XHTML 1.0!