22 Nisan 2006

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

11 Nisan 2006

Bir eğitimcinin mühendislik görüşü üzerine denemeler

Bugün, mesleki sertifika eğitimi veren bir eğitimci ile biraz sohbet ettim. Kısa bir sohbet olmasına rağmen neden olduğunu anlayamadığım halde, ciddi şekilde sürtüşmeyi başardık. Sohbet, benim açık kaynak kodlu yazılım ve GNU/Linux sempatimin ortaya çıkması ile alevlenmeye başladı ve bu insanın ağzından bir çok görüş öğrendim. Mesela....

Türkiye'de .net kullanılıyor çünkü; bu ülkede bundan para kazanılıyor. IBM ve büyük firmalar açık kaynak "kullanıyorlar" çünkü bundan ekmek yiyorlar. Yoksa açık kaynak ile bir gönül bağları yok. Açık kaynağa gönül verenler bir tek GNU cular ve komik şeyler söylüyorlar. Evet haklı ama; ikinci cümlenin başına kadar. IBM ve benzeri firmalar açık kaynaklı yazılım kullanmaktan öte, bu yazılımların üretimine, korunmasına (OIN, open innovation network) ve desteklenmesine (kendi yazılımlarını değil, genel olarak açık kaynağın desteklenmesine) ciddi anlamda para yatırıyorlar. Hiç bir ücret alınmadan dağıtılan bu yazılımların bütün teknolojilerinin açık olması ise bu adamların bunun üzerinden para kazanmalarını engelliyor. Peki, bu adamlar nereden ve nasıl para kazanabiliyorlar?

Açık kaynak kodun en büyük özelliklerinden biri, program ile beraber desteğinin indirilemiyor oluşu. Yani sizin yeterince yetenekli ve bu işi seven bir ekibiniz yoksa; bu adamlardan destek ve eğitim almalısınız. Adamlar bu noktada yazılımdan para kazanıyorlar. Adamlar kodu satarak daha çok para kazanabilecekken neden peki daha az para kazanıyorlar? Cevabı basit. Çünkü adamlar kodu açarak maliyetten düşüyorlar. Açık kaynaklı yazılımların belli bir ekibi ve belli gönüllüleri var. Gönüllüler, böcek ayıklama ya da geliştirme yapıyorlar. Sonuç olarak programın kodu daha geniş bir kitleye yayılıyor ve daha kolay böcek temizleme (kod ve tasarım seviyesinde) ve alana göre özelleştirilme / yerelleştirme çalışmaları yapılıyor. Bu değişiklikleri uyarlayan insanlar bunu firmaya geri gönderdiği zaman bunlar da firmanın sistemine göre (eğer böyle şeyler kabul ediliyorsa) koda ekleniyor. Böylece çift yönlü döngü başlıyor. Profesyonel programcılar, diğer gönüllü "code hacker" lardan görüş, öneri ve destek de alabiliyorlar böylece. Sonuç olarak yazılım hızlı evriliyor, hızlı gelişiyor ve daha stabil bir noktaya geliyor.

Türkiye'de .net kullanılıyor çünkü; bu ülkede bundan para kazanılıyor. IBM ve büyük firmalar açık kaynak "kullanıyorlar" çünkü bundan ekmek yiyorlar. Yoksa açık kaynak ile bir gönül bağları yok. Açık kaynağa gönül verenler bir tek GNU cular ve komik şeyler söylüyorlar.


Bu kadar paralel şey söyledikten sonra benim bu adamla ne diye anlaşamadığımı da merak edeceksiniz, eminim. Sorun şu: bana göre açık kaynak dünyasını bu kadar dinamik, firmaları da bu işe bu kadar istekli tutan bir şey var. Bu işin amatörlüğü. Plana programa bağlı olsa bile bir kültürü var. Kişisel hırslardan çok ortak geliştirme ve anlaşabilme disiplinine dayalı, saydam ve eğlenceli. Programcı ekibiniz sürekli değişken. Mutlaka işi iyi bilen biri var ve en önemlisi severek yapılıyor (en azından gönüllüler tarafından). Bana göre ayrıca bir yazılım profesyonel bir sekreterlikten (özel bir dilde özel bir metni şekline uygun şekilde yazmak) çok gönüllü bir sanatçılık. Kendi imzanı kendi kodlama stilin ile birleştirip ortaya istenilen işi yapan ama senin zeka ve anlayşını yansıtan bir ürün çıkarmak. Bu ürünü çıkartırken karşılaştığın sorunlarla kendi çözüm anlayışını ve bilgini uygulayarak metodoloji olarak bu kodu bir kere daha imzalamak. Böylece hem kendini hem çalıştığın yeri memnun edip hayatına devam etmek.
Bugün konuştuğum insana göre ise programcılık daha basit. Yapılması istenen işi, eğitim ya da çözüm dökümanlarındaki en popüler yöntemle yazıp, karşılaşılan sorunları internetten ulaşılabilen çözümlerden basitçe devşirmek. Bu tamamen yeniden kullanılabilir kod konseptine otursa bile bu kadar saf şekilde bu yöntemin uygulanması sadece ve sadece günü kurtaran, n. revizyonda "sphagetti code" olup, programınızı hazmedilemez bir pelteye çeviren bir metodoloji. Benim özel sektör ve şu zamanlarda çok popüler olan yazılım mühendisliği (otomatikleştirilmiş programcı yetiştirme bölümü de diyebiliriz) ile anlaşamamaktaki temel nedenim bu.

Bir de GNU cuların komik olmak gibi bir özellikleri olduğunu öğrendiğimden bahsetmiştim. GNU cuların komik olmalarının sebebi ise idealist olup, bir şeyi gönülden desteklemek ve diğer firmalara bu ciddi alternatifi kabul ettirebilmeleri sanırım. Eğer bir insan 70lerdeki iyi niyeti özleyip bu hayalini gerçekleştirip IBM gibi bir firmaya eclipse gibi bir teknolojiyi açtırıp, kocaman bir işletim sistemi yazıp bunu dünyanın en büyük firmasının karşısına çıkarabilecek bir örgütlenme yaratabiliyor ise, buna "komiklik" diyen insanların aynaya bakıp "lan acaba..." demelerinde fayda olduğunu da düşünüyorum.

Ayrıca bir insanı "bu ülkede" "ar-ge" yapmak istediği için ve "her şey para değil, yaşayabileceğim kadar para kazanıp sevdiğim işi yapıp dünyanın en mutlu insanı olabilirim" dediği için, "küçüksün sen, 25 ine gel konuşalım." Diyerek aşağılamasını da tasvip etmiyor, bu konunun kişisel olması ve karşı tarafa cevap hakkı verdiği için ise bu yazıda yeri olmadığını düşünüyor, kendisini aynaya davet edip yazımı bitiriyorum...


Unutmadan size iyi bir geceler küpesi: "Hayalleri olmayan insanlar yaşayamazlar." (ya da onun gibi bir şeydi, hatırlayamadım şimdi.)

24 Mart 2006

Paint My Pixels - Just for $1

It all started with milliondolarhomepage. The idea of selling screen real estate to make money and some kind of art. The idea was unique and gave birth to other unique ideas. One of them is the "paint my pixels" page that sells 10x10 pixel areas for $1 but the idea is a bit different here. when canvas gets full, it's replaced and the resulting image is stored in the page archives and also available for print.

Like every website, this page needed some attention. I found the site in a local /. like IT site and headed to that direction. Only ten pixels were painted and there was also a giveaway for first ten comers. I asked for one free position and since it was available I got my small space in the internet history (after selecting a valid color since my first color choice was out-of-palette beacuse I didn't looked to color palette of the site). Thanks again.

Why this stuff was important for me? Actually, this is a matter of taste. I'm using computers since 1992 and using internet since 1998. This means that I've used BBSes, loved ASCII art, watched 64K assembly demos, seen some of the hacker things and the rise of postmodern computing. Sometimes I miss that years of simplicity. Text consoles, ASCII art, real and warm community etc. This site reminded me those things and I've dived in with an insane instinct. "I should get a small retro place in this site cos I remember the smell of this."

IMHO, these pixels for $1 is not expensive for the geeks or retro lovers like me. Since people like me are a minority in the world, these kind of sites attract the big advertising crowds to itself but it's not the subject of this post. I hope that the canvas will fill slowly and we'll be able to watch the formation of the color mosaique.

Good nite.

Gerçek programlama editörleri ve programcılığa katkıları

Bir şekilde elime geçen gif dosyasını izledikten sonra düşündüm... Acaba programcıyı programcı yapan editör mü, yoksa editörü editör yapan programcı, kullanıcı mı diye... Linux üzerinde düzenli program yazan biri olarak iyi bir programlama editörü gerçekten ihtiyaç duyduğum bir aparat.

Açıkçası vi ve emacs'i çok severim. ufak conf dosyalarını C vb. dosyalarımı editler, eklemeler yaparım. görünüşleri de güzeldir bu editörlerin. Bana nerelerden geldiğimizi, terminalin gücünü görünüşün her şey olmadığını hatırlatır ama; bence bu toollar ile kişisel bile olsa çok dosyalı projeleri yönetmek zor bence. Ayrıca proje üzerinde bir genel bakış kurup, iki adım geri çekilip, "hmm evet dur şurasıydı işte" diyip dalmak biraz zor. Ben şahsen eclipse kullanıyorum. Windows'da çalışabilmek için flash diskimde win32 kopyasını taşıyorum. makinamda ise linux versiyonu kurulu ve çok da iyi anlaşıyoruz kendisiyle ama; bu editörü kullanmam beni ne "gerçek programcı" ya da "kolpa programcı" yapıyor...

Acaba programcıyı programcı yapan editör müdür, yoksa editörü editör yapan programcı mıdır?


Pekala, gerçek programcı "kimdir, nedir?". Bana göre gerçek programcı O.S. ve editör bağımsız bir insandır (yani windowscular gerçek programcı olamaz diye bir şey yok ama gerçek programcı bütün osları öttürecek diye de bir şey yok) . Bir kere amacına uygun ve gerçek (bu benim platfom bağımsız (cross platform ya da portable) diller için kullandığım bir tabir. bana göre her platformda yazılıp derlenemeyen bir dil "gerçek" bir dil değildir, siz ne kadar katılırsınız bilemem) bir dil kullanması gerekir. kullandığı dilin nasıl çalıştığını (semantics) bilmesi gerekir. Programı yazdığı O.S. i tanıması ve onun altında yatan donanımın avantaj ve dezavantajlarını bilmesi gerekir. Eğer bunlara göre program yazabiliyor, bunları düşünebiliyor ve kodunu buna göre tasarlayıp, ona göre yazabliyor, yazdığı kodun nasıl çalışacağını bilip optimizasyon yapabiliyorsa gerçek programcı bence odur. Yani eğer, yazdığı programla sisteme istediği gibi hükmedip sistemi en verimli şekilde dize getiriyorsa gerçek programcı odur...

Sistemi nasıl dize getirdiği de kendi yoğurt yemesi ile alakalı bir konudur, stilidir, tekniğidir. vi kullanır, gedit kullanır, emacs kullanır, eclipse kullanır, notepad ++ kullanır...

Bu yüzden bence "cool programcılar emacs kullanır, üşengeçler gedit" diyebilirsiniz ama eclipse kullanan bizden değildir diyemezsiniz.

Zaten eclipse olmadığı zaman hepmiz vi kullanmıyor muyuz? (şahsen ben zevkle kullanıyorum)

İyi geceler...

Not: bu post'a ilham kaynağı olan arkadaşa da özellikle teşekkür etmek istiyorum. Programcılığı editörlere endekslemeyi başarabildiği için.

04 Mart 2006

İşletim sistemlerinde özenmek üzerine...

Bir çoğumuz işmiz ya da eğlence gereği her gün saatlerce bilgisayar başında kalıyoruz. Oyunlarla işimiz yoksa en çok muhattap olduğumuz şey masaüstümüz ve yazılımların pencereleri. Eğer duvar kağıdımıza bakamayacak kadar meşgul değilsek ya da sanata çok az ilgimiz varsa mutlaka belirli sürelerde duvar kağıdımızı, ikonlarımızı ve sistem renklerini (windows'da ne kadar zor olsa da) değiştiririz. Bu işi yaparken de genelde şikayet ederiz. Windows ne kadar tekdüze, efektler az, renk sayısı sınırlı, diğer programlar gereksiz sistemi yavaşlatıyor, mac ne kadar güzel diye... ve evet, insanlar genelde mac arabirimini taklit eden pencere temaları kullanırlar.

Bu işi düzenli olarak yapan bir başka güruhta Linux kullanıcısı olan insanlardır ama; onların hayatları nedense daha kolay gibi görünmektedir çünkü; bu işi çok fazla yapacakları düşünülerek daha pratik bir yapı hazırlanmıştır o insanlara. Linux kullanıcılarının bir kısmı mac'e, bir kısmı da windows'a çok ciddi şekilde özenirler ve arabirimi ona göre değiştirirler. Bu özenmenin nedeni alışkanlık ya da güzel görünüm olabilir ama ben şimdiye kadar "Linux diye bir şey var hacı arabirimi şöyle güzel, Windows'u buna benzetelim..." diyeni duymamış, görmemiştim.

Bugün arkadaşımın (deliriumstragedy) "=)" diyerek gönderdiği linkte bunu yapan bir programın varlığından bahsedilmiş. Ekran görüntüleri verilmiş, bilgisayara yüklemek için programın kendisi verilmiş... Bu bence öyle çok basit bir şey değil. Bu kadar zamandır Windows ve .NET severler tarafından "Üçüncü parti ya da fason (daha da amiyane terimle kolpa)" olarak adlandırılan bir işletim sisteminin masaüstüne özenmek, onun bir çok özelliğine özenmenin başlangıcı bence. Zaten Windows Vista da *nix vari bir çok özelliğin olduğunu düşünürsek, bu özenmenin sadece masaüstü seviyesinde olmadığı belli ama; sadece masaüstünde özenenler için link aşağıda.. Demekki hiç bir zaman bir işletim sistemini ücretsiz, bağırsakları (yani kodları) ortada, özgür diye eleştirmemek lazımmış. Bazıları farketmeden beğenebiliyormuş.

iyi orta gol getirir... «bu post'a ilham olan blog»

10 Kasım 2005

ADSL Hızlanması, Ders Programları ve Projeler Üzerine...

Uzun zamandır buraya bir şeyler karalayamıyorum bazı nedenlerden dolayı. Bunların arasında ders programının sıkışması, ödevler, iki adet proje, okul, yorgunluk ve üşengeçlik (bunların bir sonucu olarak) var. Neyse bu sefer üşenmekten vazgeçtim de bir şeyler yazıyorum.

Son zamanlarda bir çok şey oldu bilgisayar dünyasının benim ilgilendiğim kısmında... Google OpenOffice'i www üzerinden kullanıma açma kararı aldı, kesmedi OpenOffice için developerlar almaya başladı (gerçi lazımdı bu hizmet için); bu da kesmedi, biz sadece web değil masaüstü versiyonunun da gelişimine katkıda bulunmak istiyoruz diye ekledi... Bu olaylar micros~1 u sinirlendirmiş olmalı ki, micros~1 Office Live adında reklam destekli ve www üzerinde çalışacak bir office sürümü çıkaracağını duyurdu ve Bill Gates sonunda geçen salı açıklamayı patlattı "Evet. Gerçekten Rakiplerimizin gerisinde kaldık..."
Bill Gates sonunda geçen salı açıklamayı patlattı "Evet. Gerçekten Rakiplerimizin gerisinde kaldık..."


Peki ne demek bu şimdi? micros~1 un şimdiye kadar böyle bir açıklama yaptığını ben duymadım, duyduysam da pek hatırlamıyorum orası ayrı ama; bence bu açıklama bazı değişimlerin habercisi. micros~1 un batması ya da open source olması gibi komik ütopyalarım olmasa da, Linux'u çok seven iki firma olan Google ve Sun'ın artık bazı insanların pazar tekelini yavaş yavaş kemirdiklerini düşünüyorum. Ayrıca bu olaylar, bilgisayar ile yeni tanışan insanlarda ister istemez oluşan "Önce micros~1 vardı galiba. O yüzden heryerde onun programları var" ve "diğer işletim sistemleri ayıp, orjinali varken" düşüncelerini de yavaş yavaş kemiriyor. Bu da dünyanın daha çeşitli bir yer olması açısından olumlu bence. Bu sayede Linux da daha fazla gelişeblir ve daha deneyimsiz kullanıcıların aklını çelebilir (Linux'un akıl çelebilmek dışında kat etmesi gereken pek bir yol yok aslında çünkü; artık yeterince kolay kullanılıyor ve çok gelişkin bir yapı bence.). Bu yüzden bu olan ufak değişikliklerin yararlı olduğunu ve daha büyük olayları tetikleyeceğini düşünüyorum. Bir de buna micros~1 denemesi olan .NET in java karşısında (Java'nın hızlı 5.0 tepkisi ve şu anda geliştirlen 6.0 "mustang") pek bir şey elde edememişliği eklenince sanırım bill abi kabul etmek zorunda kaldı bu durumu...

Yaklaşık 10 gün önce ADSL de en düşük tarifeyi 512Kbps ye çıkartmıştı Türk Telekom ince bir numara yaparak. Limitsiz ADSL kullanıcılarının fiyatlarını düşürmek yerine o fiyatı ikinci kez sabit tutup (99YTL dir kendisi) isteyenlere 256 Kbps limitsizde kalma imkanı sunarak ve 256Kbit limitli olanların hızlarını 512Kbps ye yükselterek... Ayrıca bundan sonra 256Kbps abonesi almayacağını da açıkladı (olmayan tarifeye adam alamazdı tabii). Bunun sonucu olarak 256Kbps limitsiz ADSL kullanıcıları ayağa kalktı (ben dahil). "İnterneti yaygınlaştırmak adına kullananların önünü kesmek" diye adlandırmıştım ben bu TT politikasını. Peki neden 256 kullananlar ayağa kalktı ki? Birincisi, limitsiz ADSL kullanan insanların bir çoğunun kota kelimesine ve olgusuna allerjisi var. İkincisi ise hız sadece daha hızlı download demek değil. Aksine daha hızlı surf, bilgisayarla daha iç içe bir internet demek... (Bu arada belritmekte fayda var ki, bilgisayarlarını sadece download için kullanan insanlar için hız artışı sadece ay içerisinde daha fazla download ve bir kenara atılacak dosya demek ve onlar da daha fazla dosya çekmek için ayağa kalktılar). Bir evde iki kişinin kullandığı bir ADSL hattının çok rahat 9GB sınırını geçmesi (ki bu TT nin sunduğu en büyük kotalı tarife) de bu duruma tuz biber ekti. Peki TT bu duruma bir açıklama getirdi mi? Hayır. Peki müşteri yararına bir harekette bulundu mu? Evet.
256Kbps limitsiz tarifeyi yeniden yürürlüğe soktu... Sanırım bu insanları biraz da olsa yatıştırdı.
Sanırım limitsiz ADSL kullanıcılarının 512Kbps hayali seneye kaldı ama ne yapalım? En azından uygun bir limitsiz tarifemiz hala var.

Bunlar dışında pek çok gelişme oluyor Dünya'da tabii. Quake-4 çıktı, insanlar pek sevemedi; Half-Life 2: Aftermath çıkmak üzere, Half Life-2: Lost Coast bir demo bölümü olarak ortaya çıktı, HDR teknolojisini gösterdi ve "haha bu ne biçim motor" diyenlere özür diletti.

Half Life-2: Lost Coast bir demo bölümü olarak ortaya çıktı, HDR teknolojisini gösterdi ve "haha bu ne biçim motor" diyenlere özür diletti.
Şu aralar okulda iki tane proje ile ilgileniyorum. Onlar ile ilgili bir şeyler yazarım belki daha sonra.

Görüşmek üzere.

05 Kasım 2005

Yazdın bıraktın diyenlere...

Bu aralar bitirme projem, yazılım mühnedisliği projem ve yaklaşan sınavlarım yüzünden hiç bir şey yazamıyorum ama; yakında başlayacağım sanırım.

Görüşmek üzere.

14 Ekim 2005

ADSL Hızlanıyor(mu?)...

Bu sabah bir yerlerde okudum. "En düşük tarife olan 256kbit limitli tarife kaldırılacak, fiyatlar değişmeden, hız 512kbit e yükseltilecek". Ne demek şimdi bu? Sadece limitli olan tarifeler hızlanacak, ciddi kullanıcılar, limitsizler aynı hızlarla devam edeceker.

Fazlamesai'de
de denildiği gibi. Yüksek kapasiteyi altyapıdan dolayı kullanamıyoruz, diğer ülkere göre fahiş fiyatlarla internet erişimi satın alıyoruz, bu altyapıyı adam gibi çalıştıramıyoruz (hala DNS problemleri çeken bölgeler çok fazla), ondan sonra da sadece limitli tarifeleri hızlandırıp, internet'in yayilimini hizlandiracağiz diyoruz...

Evet gelişiyoruz ama; hangi hızla, nereye?

Bunu bilmek ve görebilmek dileği ile...

Welcome to all

Hi,
This is my first post and this is an traditional "hello" message.
I will try to share my thoughts with you from this little cute space.

c u l8r
bye.