Cloud computing yeni bir fikir değil: Temelinde, çok uzun süre önce ortaya atılan SaaS (Software as a Service) fikri var. Yani, yazılımı bir “servis” gibi kullanmak. Google Apps’i, Gmail’ı, Google Office’i, hatta Facebook’u düşünün. Cloud computing, en primitif haliyle bu.
Web 2.0 ile şekillenmeye başlayan RIA (Rich Internet Application) yönelimi de bunun için; Internet’te gezinirken şık ve hızlı arayüzler istiyorsanız zaten AJAX yeterli. .Net platformu ve JAVA da aslında adı koyulmadan önce RIA deneyimi sunmayı hedefliyorlardı ama olmadı. Adobe AIR ise, bastırıyor. Microsoft, Silverlight ile bebek adımları atıyor.
Cloud Computing fikrinin arkasında Yahoo,Google,Amazon,HP,IBM,Intel,Microsoft ve SAP gibi şirketler var…
Herşey web tabanlı olacak-yazılarınızı web tabanlı bir editör ile yazacaksınız. Grafik tasarım programınız, “cloud” içindeki sunucu üzerinde çalışacak. Aslında bunu bir tür Terminal Server-Thin Client uygulaması gibi de görebilirsiniz. Masaüstünde çok kuvvetli bir bilgisayara ihtiyacınız olmadığı gibi, kullandığınız işletim sisteminin de bir önemi yok. Hatta, masaüstü bilgisayarınız kendini Internet üzerinden bile boot edebilir. Kısacası, işletim sistemine bile ihtiyacınız olmayacak.
Bu, RFID fikrinden sonra en büyük kölelik sistemi!
Yaptığınız herşeyden, saydığım endüstri devleri, kuvvetle muhtemel kendi devletiniz, ve neredeyse kesin olarak ABD’yi yönetenler -minik Bush gibi kuklalar değil, o zaten gidiyor!- haberdar olacaklar.
Bu “babalar”, neyle meşgul olduğunuzu, kimden kıllandığınızı, neye gıcık olduğunuzu, çalışma ve uyku alışkanlıklarınızı, cinsel fantezilerinizi, nelere para harcadığınızı ve hayatınıza dair ne varsa akla gelen gelmeyen herşeyi öğrenecekler.
Bütün dünya artık masaüstü bilgisayarları terketmeye başlayınca, yapabilecekleriniz de denetim altında olacak!
Yazılıma sahip olma hakkınızı tamamen kaybedeceksiniz. Zaten kapalı kaynak kodlu yazılımların hemen hiçbiri size yazılımın gerçek anlamda mülkiyetini vermiyor. Ama Cloud Computing gerçek ve alışıldık bir şey olursa, kullandığınız yazılımın fiyatı üzerinde de bir denetiminiz olmayacak. Mesela, faturayı geç yatırdığınız için PDF okuyucunuzun kesilmesi gibi komik durumlarla karşılaşabilirsiniz! Hele, Türkiye’de bu işin komedi ve rezalet boyutunu hiç düşünmeyin!
Şu an Internet kesildiğinde nasıl da kıvrandığınızı düşünün.
“Adı lazım değil”, bazı devletler, bu sefer insanların hangi sitelere girebileceğini değil, hangi faaliyetlerle uğraşıp uğraşamayacağını da denetleyecek.
Bir de işin para kısmı var.
Komik olan, “bu yola baş koyanlardan” olan Oracle’ın kurucusu Larry Ellison’ın da işin çivisinin çıktığına ve herşeyin laf salatasına dönmeye başladığına inanması..
“The computer industry is the only industry that is more fashion-driven than women’s fashion. Maybe I’m an idiot, but I have no idea what anyone is talking about. What is it? It’s complete gibberish. It’s insane. When is this idiocy going to stop? “
(Bilgisayar endüstrisi kadın modasından bile moda etkisinde. Belki ben gerizekalıyım ama bu konuşulanlar hakkında hiçbir fikrim yok. Tamamen zırva. Delilik. Bu aptallık ne zaman bitecek?)
Fuarın birinde Microsoft yetkilileri KDE standını ziyaret etmiş ve KDE’yi çok beğendiklerini söylemişler. KDE, bunu haber filan yapmış ve beni de hem güldürmüş, hem kızdırmıştı.
Windows Vista, hem Mac OS X, hem de Linux’un Compiz projesinden birşeyler alıp işletim sistemine koymaya kalktı; sonuçları gördük. Zayıf Vista efektleri, Compiz’in yanından bile geçemiyor ve Mac OS X’in olgunluğundan,zerafetinden ve kullanım kolaylığından yoksun.
KDE, senelerdir K Desktop’ın Windows üzerinde kurulabileceğini söylüyordu ki, bu elbette mümkündü-zira, QT, Windows üzerinde senelerdir sorunsuz çalışıyor. Lakin, KDE ekibi projeleri duyurmak konusunda hep aceleciydi; örneğin embedded Konqueror sürümünden senelerdir haber yok. Keza, Windows üzerinde KDE’de çoook uzun bir hikayeydi. Gördüğüm kadarıyla gerçek olmaya başlamış.
Windows üzerinde KDE…Aslında, Windows’un Explorer’ına entegre olmuyor; Kwin, Kdocker gibi uygulamalar ise çalışmamakta. Konqueror hata veriyor ve kısmi çalışıyor; özellikle kioslave’lerin çalışmaması çok da doğal.
KDE’nin yeni dosya tarayıcısı Dolphin, KDE for Windows projesinde de yer alıyor ve sorunsuz
çalışıyor. Başlarda Dolphin’i hiç sevmedim; örneğin kioslave’ler Dolphin’de çalışmıyordu. Dolphin ve KDE entegrasyonu çok yol almış; yine de, Konqueror sistemle bu derece iyi entegre olmuşken bana bir geri adım gibi geldi. Dolphin, KDE’den çok GNOME mantığına uygun bir araç.
Kopete de çalıştı. Lokalize, Kalzium, Kget,Kate,Kwrite da çalışanlar arasında. Koffice’in durumu ise parlak değil: komain.dll hatasından dolayı, Kivio’dan Krita’ya kadar bir dizi program çakılıyor. Bu durum, indirme sırasında karşılaştığım bir problemden kaynaklanıyor olabilir.
1.65 MB’lık KDE kurulum programı, seçtiğiniz özelliklere bağlı olarak KDE’yi indiriyor ve kuruyor. KDE 4 kurulum programını buradan indirebilirsiniz.
Via, Linux potansiyelini değerlendiremiyor. Bundan defalarca bahsettim. Karmakarışık, ITX platformu Via’ların driver’larını bulmanın ve derlemenin ne kadar zor olduğundan da. Tüm dünya, kolay ve modüler olmasından dolayı hemen her embedded cihazda Linux kullanırken, işlemci ve ITX platformunu neredeyse sadece embedded ya da yarı embedded uygulamalar için pazarlayabilecek Via, bu konuya gereken önemi vermiyor.
Üstelik, Intel bu alana da el atmışken…Yakında, gumstix benzeri kartlarıyla piyasaya çıkacaklar. Bunlar, Via’dan çok daha az enerji tüketen ve daha yüksek işlem gücüne sahip cihazlar. Anlaşılan Intel, ARM’ın tozunu attırdığı cep telefonu pazarına girmeye niyetli. Via, UMPC’lere Via C7 işlemcileri ile girmişti ama, Intel’in pazara çıkmasıyla kısa sürede oradaki satışlarını kaybedecektir. Özellikle de, bu pazardaki en iddialı oyuncu Asus, Intel’in “has adamıyken”…
Via’nın “portalı” bir sayfadan ibaret. Yine 2-3 dağıtım üzerine, derlenmesi ve kurulması şansa bağlı bir dizi driver paketleri var. Bu dosyaların tam olarak hangi ITX anakart için olduğu, her zamanki gibi, belli değil.
Buyrun bir de siz bakın:
http://linux.via.com.tw/support/downloadFiles.action
Blogmani projemden daha önce bahsetmiştim.
İki gündür, projeyi kendi bilgisayarıma aldığım için hızlı ilerleyebiliyorum. Yaklaşık 20 gündür, sunucu üzerinde değişiklik yapıp, sonuçları bekleyerek boşu boşuna debelendim. Yarım saatlik bir emekten sonra, çok daha hızlı çalışabilmeye başladım. Her kodcunun bazı komik tembellikleri vardır; benimkisi de, çalışma hızı ve rahatlığını artıracak basit işlemlerden sürekli kaçınıyor olmak.
Şu an, basit bir komünite sistemi için “yeterli” olan bazı geliştirmeleri tamamladım. Umuyorum, gece server’a upload edeceğim. Şu haliyle site feci görünüyor ve bazı şeyler darmadağınık. Puanlama sistemini de halledince, Serhan’la birlikte tema gibi konulara da eğileceğiz ve biraz biraz kullanılabilir bir altyapı çıkacak ortaya.
Zamanımın çoğu, WordPress’in bazı saçmalıklarıyla debelenmekle geçiyor. Bunlardan bir tanesi, usermeta isimli veritabanı tablosu. Nedense, bilinen tüm veritabanı tasarım kurallarına karşı gelerek, kullanıcı bilgilerinin tutulduğu tuhaf bir tablo hazırlamışlar. WordPress, kullanıcı adı ve şifre gibi temel bilgileri users tablosunda tutarken, isim,soyad gibi bilgileri usersmeta isimli bir başka tabloda tutuyor. Bazı durumlarda, kullanıcı bilgilerini çekmek, deveye hendek atlatmaktan beter. Mümkün değil demiyorum; ama öylesine “çakma” çözümler geliştirmek zorundasınız ki, site büyüdüğünde (özellikle ziyaretçi sayısı arttığında) verdiğiniz yanlış kararların altında ezilmeniz işten bile değil. Bu yüzden, usersmeta’yı olduğu gibi bırakarak -çünkü bazı eklentiler ve iç fonksiyonlar onu kullanıyor ve hepsini değiştirmeye kalkmak, sistemi yeni baştan yazmaktan daha zor-, kritik alanları users tablosuna taşıdım.
Neyse ki, şu an için sorun yok. Aslında, kontrol panelinin tasarımı da ciddi zorlayıcı etkenlerden biri. Buna daha sonra geleceğim; sistem tamamlandıktan sonra, şayet kullanıcı sayısı artarsa, oraya da el atacağım.
Az önce, puanlama sistemine başladım.
Blograzzi’nin izinden gideceğim: Google, Technorati verilerini çekip, bunu başka parametrelerle birlikte kullanıp, puanlama sistemini yazacağım. Daha önce de bahsettiğim gibi, puanlama sır filan olmayacak. En sonunda algoritmayı açıklayacağım; bununla oturup kendi puanınızı kendiniz hesaplayabileceksiniz.
İlk olarak, Technorati verilerini çekmeye karar verdim…hatta çektim de. (Resmi büyütün).

Verileri çekerken izleyebileceğim birkaç metod vardı.
1.Kullanıcının sayfasını technorati içinden açıp, gelen HTML sayfayı parse ederek istediğim alanları çekmek. Bu daha önce yapmadığım iş değil. Hala birileri farkında olmasa da, PHP, RegEx (Regular Expressions – Düzenli İfadeler) konusunda neredeyse PERL kadar iyi; üstelik POSIX ya da PERL uyumlu Reg Ex kullanabiliyorsunuz.
Bunu yapmadım. Çünkü Technorati API’nin varlığından haberdarım ve daha önce bahsettiğim gibi, “uydurma” işleri sevmiyorum (mecbur değilsem, vaktim varsa)
2.Blograzzi’den verileri “çalabilirdim”. Bunu da doğal olarak yapmadım. Birincisi, özellikle veri, fikir ve bilgi hırsızlığına karşıyım. İkincisi, pragmatik bir çözüm olmasına rağmen, bu bir klon site değil. Aslında amacım bir yandan, daha önce Pozitif Linux’ta ve Pozitif PC’de yaptığım gibi, insanları teşvik etmek; birşeylerin sanıldığından çok daha kolay olduğunu göstermek.
3.Son olarak, Technorati API’yi kullanabilirdim ve bunu yaptım.
Gelgelelim, bunun bazı sakıncaları var.
Eğer para ödemezseniz, Technorati, API’si üzerinden, günde 500 query yapmanıza olanak tanıyor. Bunun anlamı şu: sonuçları günlük güncelleyeceksem, üye sayım 500′ü geçemez. Ya da para ödemem gerek, ama para kazanmadan doğal olarak Technorati’ye para verecek halim yok(!).
Birkaç API key almak da bir başka çözüm; kodda minik bir oynamaya bakar;)
Aslında API key’i limitsiz kullanabilsem, Blogmani içine çok çok daha kullanışlı bir dizi fonksiyon ilave edebilirdim. Öte yandan, buna zamanım ve isteğim de yok. Eminim, bir gün projeyi açarsam, birsürü insan bu tür siteler yapacaktır.
Technorati API’lerini kullanmak kolay olsa da, kod hamallığından kaçınmak için hazır bir kütüphane buldum. Duck Soup, bu işi hakkıyla yapıyor. Kodu inci gibi yazılmış. Gelgelelim, Technorati sunucuları pek hızlı sayılmaz; böylece Blograzzi’nin neden sonuçları anlık değilde günlük güncellediğini de keşfetmiş oldum.
Bundan sonra yapacağım şu: bir tablo açıp, Technorati’den çektiğim verileri günlük olarak buraya kaydedeceğim. Bunu da, günün “ölü saatlerinde” yapmam gerek ki, sunucum isyan etmesin. Bu arada, Linux tabanlı sunucumun Cron hakkında bana ne gibi haklar tanıdığını da öğrenmem gerek. Aslında, sunucu elimde olsa, yapacağım iş çok basit: cron.daily içine bir script atacağım; bu da PHP ile yazdığım, verileri toplayıp veritabanına giren PHP kodunu çalıştaracak (komut satırından, ya da shell script içinden, “php phpscriptim.php” şeklinde PHP kodu çalıştırabilirsiniz). Elbette, bu kadar hakkın, paylaşımlı bir sunucu içinde bana tanınmış olacağını sanmıyorum; ama birkaç saat içinde çözebileceğim, basit bir problem bu…
Debian Amerikan malımıdır, insanlığa mı aittir, milli midir yoksa Red Hat’çiler daha mı milliyetçi çocuklardır? Ya da Arch Linux hakkında daha fazla yazarsam, Pamela Anderson’ı Google’da arayan kitleyi çekebilir miyim? Elbette dünya bu sorulara yanıt filan aramıyor. Senelerdir “forum” ve “liste” denen nuh nebiden kalma, çöp Internet teknolojilerini takip etmiyorum. Lütfen forum ve liste de açmayın, Internet’i çöplüğe çevirmeyin (Pozitif PC forumunu en yakın zamanda kapatıyoruz).
Gelgelelim, seneler önce forumları “magazin” anlamında zaman zaman takip etmişimdir. Debian kitlesi, UNIX aleminin “daha bir elit” adamları olarak bilinir. Artık onlar da ideolojik tartışmalardan sıkılmış görünüyorlar. Son yıllarda konular daha teknik ve “para” içerikli. Bu arada, özgür yazılım geliştiriciler rahatsız, top tüfekleri yok ama yakında Internet ve bilgisayar dünyasının (üretken olmayan) dinamizmi durma noktasına gelebilir. Bunun hakkında yazacağım, biri bana hatırlatsın!
Derdimiz “Linux geç açılıo abi”
Benim böyle bir derdim olmadı; zira uptime ortalamam 7-9 gün arası. (Bayağı sağlam bir sistem diyebilirsiniz, bu kadar uzun süre açık kalan yerli hosting firması sunucusu bile azdır herhalde). Onun için, ekstradan 10-20 saniye beklerken kanser olmuyorum. Gerçi ben MTV çocuğu da değilim.
Debian forumlarında zamanında enteresan bir tartışma vardı; enteresan diyorum, çünkü zeki görünen birçok adam, Linux kernelinin monolitik olup olmadığını uzun süre tartışmıştı. “Hem monolitik, hem modüler” diyerek kısaca noktayı koyayım. Eğer başarabilip tüm sürücüleri kernele entegre ederseniz, muhtemelen 5-6 MB boyutlarında (sıkıştırılmış) monolitik bir kerneliniz olur. Beceremezseniz, modül olarak yüklemek zorundasınız; o zamanda kerneliniz modüler olur.
Eğer Linux kerneli monolitik olsaydı, initrd ve initramfs denen şeyle uğraşmak zorunda kalmayacaktık. Hızlı açılan dağıtımla yavaş açılan dağıtım arasındaki en ciddi farklardan biri, bu initrd ya da initramfs’in ne kadar iyi oluşturulduğuyla ilgili. Bu arada, artık hemen hemen tüm dağıtımlar initramfs kullanıyor ve herhalde birsüre sonra, initrd’yi kimse hatırlamayacak. 2.4 serisiyle devam edenler hariç; zira initramfs 2.6x serisinde desteklenmekte.
initramfs ne işe yarar? Kernel kendini boot ettiği ilk anda, bootloader sıkıştırılmış kerneli RAM’de belli bir alana açar. Bu esnada kernel, sürücüler yüklü olmadığı için (bunların modül olarak derlenmiş olduğunu varsayarsak) diskinize, dolayısıyla dosya sisteminize erişememektedir. UNIX benzeri sistemlere yeni başlayanlar bunun mantığını kolayca anlayamaz; çünkü dokümanlar açık değildir. Mesela, sorulan en güzel ve mantıklı soru şudur: dosya sistemine erişemiyorsa, kernel’i nasıl okuyor? GRUB gibi bir bootloader, BIOS fonksiyonlarına erişerek, kerneli okuyabilir, zira aslında kendi içinde mini bir dosya sistemi sürücüsü bulunmaktadır. Nitekim, GRUB’daki stage’lere bakarsanız, erişebildiği dosya sistemlerine dair ipuçları yakalayabilirsiniz. GRUB, çok sayıda formatı tanısa da, örneğin GFFS gibi “sofistike” disk bölümlerine erişemez. Kernel, ham haliyle bu destekten bile yoksundur. Çok sayıda dosya sistemi olabileceğinden, dağıtım geliştiriciler kerneli büyütmemek adına bu dosya sistemlerini modül olarak derlerler.
Initramfs’in yüklenmesi, mantık olarak bootloader’ın kernel’i yüklemesine benzer. Initramfs, kısaltmadan da anlaşılacağı üzere, bir RAM disk’tir; kernel bunu ilk anda dosya sisteminin bir uzantısı olarak görmez. Initrd, initramfs gibi RAM disk kullanmanın mantığı, özellikle dosya sistemi sürücüleri (ext2,ext3,xfs,jfs,reiserfs,vs) ve disk-IDE-SATA-SCSI gibi sürücülerin bu alan içinden yüklenerek, sistemin açılmasıdır. Bahsettiğim sürücüler yüklendikten sonra, kendi içinde UNIX dizin yapısının bir kısmına sahip olan Initramfs, bağlanan / disk bölümüne mount edilir.
Inıtramfs, oldukça iyi bir sıkıştırma algoritması ile geliyor; diskinizde 6 MB gibi bir yer kaplayan initramfs dosyasını açarsanız (ki bir CPIO arşividir), muhtemelen 25 MB civarında yer kaplayacaktır. Dağıtım geliştiricilerin en büyük derdi, initramfs’i hem küçük tutmak, hem de mevcut birçok sürücüyü eklemek zorunda kalmaları. Örneğin yeni çıkan bir anakartın SATA sürücüleri initramfs içinde bulunmuyorsa -ki kernelde entegre olması çok daha düşük ihtimal- sisteminiz açılmaz.
Sorun bununla da bitmiyor. Düşününki, mevcut SATA kontrolörüm yetmedi ve ek bir SCSI kartı takarak, /home dizinimi bu karta bağlı yeni bir diske aktardım. Üstelik bu kartın sürücüsü de initramfs içinde değil. Bu durumda, sistem açılırken /home dizinimi mount edemeyecektir. (Hatta o diski bile görmeyecektir!). Normalde yapmanız gereken, initramfs’i elle açıp, sürücüyü açılan arşiv altındaki /lib/modules dizininde uygun yere koymanız. (Ki muhtemelen kerneli tekrar derleyeceksiniz; kullandığınız kernelde bu sürücü derlenmiş değilse). Ama zaman içinde bunu otomatik yapabilen araçlar çıktı; çünkü bahsettiğim işlem, bizim gibi eskiler için bile sıkıcı ve zaman alıcıyken, yeni başlayanlar için kabul edilemez derecede zor. Elbette “tam otomatik” bir mekanizma yok; ama örneğin TrekStor sürücüsünü Debian paketi olarak kuruyorsanız, paketi hazırlayanlar tembel değilse, bir “güzellik yapıp”, yeni initramfs’i otomatik oluşturacak düzenlemeleri yapıyorlar.
Debian temelli sistemlerde initramfs’i oluşturan iki araç var: yaird ve mkinitramfs.
Sorun ise, ikisinin de birbirinden beter çalışması.
Aslında, bu geliştiricilerin suçu değil. Dediğim scriptlerin işleri son derece zor; çünkü anlattığım süreç bu kadar basit de değil. Bunun içinde udev filan da var. En azından benim karşılaştığım sorun şu: mkinitramfs, eline ne geçerse, initramfs içine tıkıyor ve koca koca dosyalar oluşturuyor. Yaird, gerekli bileşenleri seçme konusunda çok daha başarılı. Gerçekten de, yaird ile yapılan bir initramfs içinde, gereksiz ıvır zıvıra nadiren rastlıyorsunuz. Gelgelelim, busybox’ı doğru kuramıyor: Komik şekilde, busybox’ı initramfs’e attıktan sonra, gerekli soft ya da hardlinkleri yaratmak yerine, bu programların orjinallerini kopyalıyor!
Sonuç olarak, iki aracında oluşturduğu initramfs, çok büyük olmakta.
İnitramfs, sistemin açılırken en çok yavaşladığı nokta. Zira yavaş sistemde bile, 1.5 MB civarındaki standart bir kernelin yüklenmesi 5 saniye civarında iken, sırf initramfs’in RAM’e açılması bile bu süreyi geçiyor. Sonra sürücüleri yüklemeye başlıyor, burada probing gecikmeleri devreye giriyor (özellikle bazı sürücülerin etkin hale gelmesi, yüklendikten sonra 3-5 saniye ek zaman alabiliyor)
Yani hızlı bir sistem açılışı için, initramfs’i elle düzenlemeniz şart. Boşu boşuna init scriptleri optimize etmeye çalışarak zaman harcamayın; zira asıl sorun orada değil, initramfs’in içinde. Ayrıca, sürücüleri donanımı geç algılayan bir bilgisayarınız varsa, ne yaparsanız yapın sisteminiz geç açılacaktır. Kısacası, Linux ve GNU, aşırı modüler yapısı yüzünden hem birçok avantajı, hem de birçok dezavantajı beraberinde getiriyor.