Archive for the ‘Sıkıştırma’ Tag

Yeni Proje (T|Storm)

Evet. Yeni bir projeye başlıyorum. Esasında olan bir projeyi geliştiriyorum… Bitirme projesi için Java’da yazdığımız sistemi C++ a port edip geliştireceğim ve GPL lisansı ile açacağım.

Ne projesi mi? Olgunlaşana kadar saklamaya karar verdiğim bitirme projemiz, bir sıkıştırma algoritması. Sadece yazı sıkıştırmak için. Özellikle Türkçe için tasarlandı, geliştirildi. İlk versiyonunu açmamamın nedeni tüm kodunun bana ait olmaması ve şu anki performansından pek memnun olmamam (Ayrıca ilk uygulamasını da biz yapıyoruz Türkçe için. Tasarımı da bize ait, evet). Daha düzenli, hızlı ve makina koduna çevrilebilir bir sürümünü çıkartınca koyacağım buraya.

Bu arada maalesef, sistem GNU/Linux için geliştirildi. Java mı? Hayır win32API yüzünden en önemli modulü olması gerektiği gibi çalışmıyor. Belki C++ versiyonu çalışır ya da port ederim.

Görüşmek üzere, iyi geceler.

Bir platform olarak Windows.

Her şey benim son stajımda linux kullanmak zorunda kalmam ile başlamıştı… Staja gittiğim ilk gün elime debian CD sini tutuşturup “hadi kur bakalım” demişlerdi. Benim için çok zor olmamıştı zaten. Bilmediğim bir şey değildi Debian kurmak. Bilmediğim şey, bu kadar zamandır öğrenmeye üşendiğim işletim sisteminin hayatımı değiştireceği idi…

Staj başladıktan bir hafta sonra proje kodlarıma evde devam edebilmek için fedora kurdum. Bir kaç ay önce de SuSE 10.0 a geçtim. Başka hiç bir işletim sistemi kullanmıyorum artık, zaten ihtiaç duymuyorum. Zaten bu yazının linux ile alakası bu açıdan değil.

Bitirme projesinin önümüze konması da bu zamanlara denk geliyordu. Bir yandan konu üzerinde araştırma yapmak, bir yandan da projeyi yazacağımız dili seçmemiz gerekiyordu. Benim kalbimde yatan dil C++ olmasına rağmen, portable olmasını sağlamak çok zor olabilirdi. .NET kullanan arkadaşım C# diye tutturdu ama benim windows kurmama ve .NETi sevmeme fikirlerimi kıramadı. Ben ise yeni yeni Java öğreniyordum ve Java’da yazalım dedim. Hem cross platform hem de senin çok sevdiğin o .NET diline benziyor. İkna çabalarım başarılı olmuştu. Arkadaşımın eline bir paket eclipse tutuşturup evine yolladım.

Proje gelişmeye başlıyordu… Düşe kalka ilerliyor, bir şeyleri çalışır hale getiriyorduk. Hiç bir sorun yoktu. Kodlar tamamen cross-platfom şekilde derlenebiliyor, çalışıyor, test edilebliyordu. Sevinçliydik… Ta ki, ben proje’nin dosya formatını ve yazma okuma sistemlerini yazmaya başlayana kadar. Sıkıştırma algoritmasının hesapları ile dosyaya yazılan boyutlar arasında durmadan sorunlar çıkıyordu. Zaten binbir zorlukla ve numara ile geliştirilen dosya formatı, nedense olması gerektiği gibi çalışmıyor; linux sistemde sıkıştırma elde ederken, windows sistemlerde dosya sadece şişiyordu. Sıkıştırma sadece yazı üzerine olduğu için dosyanın bazı yerlerine özel “karakterler” yazmak gerekiyordu ve ben bunları UTF-16BE (endian sırasını kendim belirlemiştim çünkü böylece java her harf başına byte-sırası karakterleri yazmıyordu) olarak gömüyordum dosyaya… Ayrıca aynı sorunlar dosya çözülürken de çıkıyordu. Benim koymadığım o karakterlerin dosyada ne işi vardı?

Biraz uğraşı biraz vi sonucu gördük ki, o karakterler byte-sıra karakterlerinden başka bir şey değildi. Yani kısacası; benim özellikle seçtiğim encoding; java’nın ve benim istediğim gibi çalışmıyordu. Windows yine bildiğini yapıyor, istediğini istediği gibi yazıyor, okuyordu… Dünyanın en popüler işletim sistemini yazan amcalar size istediğiniz gibi program yazma özgürlüğü de bırakmamışlardı anlaşılan…

Sonuç olarak, arkadaşın makinasına da SuSE kurup geliştirme işine o şekilde devam edip bitirdik ve ben Windows’dan bir program, bir işletim sistemi olarak iyice soğudum… Bu nedenle programcı olmak isteyenler bence hangi platformu kullanacağını, o platformun getirdiklerini iyi bilsinler, ona göre seçim yapsınlar.

İyi Akşamlar…