[email protected]
Transkript
[email protected]
ED‹TÖR Merhaba IBM Özgür Yaz›l›m Dergisi’nin bu say›s›nda da yine dopdolu bir içerik ile karfl›n›zday›z. IBM’in y›llard›r istikrarl› bir flekilde deste¤ini sürdürdü¤ü bu dergi, Türkiye’de kendisine ciddi ve genifl bir okuyucu kitlesi de bulmufl durumda. Aç›k kaynak kod dünyas›ndaki önemli geliflmelerin haberleri ve teknik makaleler, dergimizin bu say›s›nda bulabileceklerinizin sadece bir k›sm›. Ayr›ca IBM Türk Genel Müdürü Eray Yüksek ile yapt›¤›m›z röportaj› mutlaka okuman›z› öneririz. Zira IBM’in yapt›rd›¤› Global CEO Araflt›rmas›'n›n sonuçlar›n› ve bu sonuçlar›n ne anlama geldi¤ini kendisi ile konufltuk. Tam 40 ülkeden 1.130 CEO ile görüflülerek yap›lan bu büyük araflt›rman›n sonuçlar› elbette ki çok de¤erli bilgiler içeriyor. Bir di¤er röportaj›m›z› da IBM Türk Ülke Teknoloji Lideri Suat K›z›ltafl ile gerçeklefltirdik. Özgür Yaz›l›m Dergisi olarak bu say›da Innovation Jam 2008 isimli dev bir etkinli¤i ele almak ve sizlere de tan›tmak istedik. IBM’in internet üzerinden gerçeklefltirdi¤i beyin f›rt›nas› toplant›s› InnovationJam 2008, 5-8 Ekim tarihleri aras›ndaki 72 saatlik sürede gerçeklefltirildi. ‹fl dünyas›n›n küresel liderleri, düflünce liderleri ve rol modellerinin kat›ld›¤› etkinlikte, “Günümüzün iflletmeleri nas›l gelece¤in iflletmesi haline gelecek?” sorusunun yan›t› arand›. Elbette yine teknik makalelerimiz, dergimizde önemli bir yer tutuyor. Bu da magazinsel içeri¤e sahip dergilerden bizi ay›ran belki de en önemli özellik... Her say›m›zda konusunda uzman yerli veya yabanc› yazarlar›n yazd›¤› teknik makalelere yer vermeye çal›fl›yoruz. Bu dergide gördü¤ünüz içeri¤e IBM Türk’ün web sitesinden de eriflebilirsiniz. Özellikle yaz›lar içerisindeki kod bloklar›n›, IBM web sayfas›na girerek eriflmek sizlerin denemeler yapma konusunda çal›flmalar›n›z› bir hayli kolaylaflt›racakt›r. Keyifle okuman›z dile¤iyle… Umut Kavurmac› [email protected] IBM ÖZGÜR YAZILIM 3 ‹Ç‹NDEK‹LER 18 KAPAK: 36 MAKALE: 46 MAKALE: 56 MAKALE: ‹NOVASYON ‹LE GELECE⁄E ‹LERLEY‹N! WEB UYGULAMALARINDA DJANGO DÖNEM‹! KOMUT SATIRININ GÜCÜNE HÜKMED‹N! DAHA ÇOK DE⁄‹L, DAHA AKILLI ÇALIfiMA IBM Türk ‹stanbul'da hizmete açt›¤› inovasyon merkezi ile konuya verdi¤i önemi bir kez daha gösterdi. Web uygulamas› gelifltirmek Django ile eziyet olmaktan ç›k›yor. Django ile web uygulamalar›na yeni bir bak›fl geliyor. Do¤açlama programlar oluflturmak için UNIX yard›mc› programlar›n› kar›flt›r›p efllefltirin Kabuk k›sayollar›, daha az ifl yap›p zamandan tasarruf etmenizi sa¤lar 8 YÖNET‹M 42 PROJE 26 ‹NCELEME 52 FRESHMEAT 32 RÖPORTAJ 64 AC‹L SERV‹S Say›: 3 • Kas›m 2008 IBM’in ücretsiz dergisidir Yay›n Sahibi IBM Türk Limited fiirketi ad›na temsilcisi Zehra Jale Akyel Tasar›m ve Uygulama Sorumlu Müdür Burak Sualp Adnan Saygun Caddesi Belediye Sitesi A5 Blok Befliktafl/‹stanbul Yönetim Yeri IBM Türk Limited fiirketi Büyükdere Cd. Yap› Kredi Plaza B Blok Levent 34330, Befliktafl, ‹stanbul Esans ‹letiflim Dan›flmanl›k Ltd. fiti. Telefon Faks : (0212) 352 41 92 : (0212) 352 43 40 Yay›n Türü : Yerel Süreli Yay›n Telefon Faks HABERLER : (0212) 317 10 00 : (0212) 278 04 37 32 42 52 64 Renk Ayr›m›-Film Ç›k›fl ve Bask› IBM Özgür Yaz›l›m Dergisi’nin bir önceki say›s›na www.ibm.com/tr/ adresinden ulaflabilirsiniz. 4 IBM ÖZGÜR YAZILIM ÖZGÜN OFSET SAN. ve T‹C. LTD. fiT‹. Aytekin Sk. No:21 34418 4. Levent / ‹STANBUL Tel: 0 (212) 280 00 09 • Faks: 0 (212) 264 74 33 IBM ÖZGÜR YAZILIM 5 Geek'lerin iktidar›! ‹nsanlar lisede ne yapar? Ergenli¤e yeni girmifl gençler, nas›l bir davran›fl sergilerler? K›zlar o¤lanlar›n ilgisini çekmeye, daha güzel, daha hofl olmaya çal›fl›rlar, erkekler de daha haval› olup, daha “cool” tak›lmaya çal›fl›r, bu sa¤layan, koskocaman bir ortam, medya kazanm›fl be¤enmediklerini, art›k ihtiyaçlar›n› karfl›layamayanlar› durumdalar. nefes kesici bir h›zla piyasadan silen (bir anlamda yok Ne mi bu imkânlar? IRC'den tutun, MSN'e, Skype'den görüntü, dosya paylafl›m›na, daha da do¤rusu bilgi paylafl›m› konusunda s›n›rlar gittikçe yok olmakta. fiu an haks›zl›¤a u¤rayan biri bloguyla bütün Ya da ifl dünyas›ndaki de¤ifliklikleri; Yetmiflli y›llarda do¤anlar›n bile oldukça aflina oldu¤u "memuriyet iyidir" laf› tarihe kar›fl›rken, günümüzde dünyaya derdini anlatabiliyor. Geneli ma¤dur eden garanti ifl diye bir kavram kalmam›fl durumda. ‹fllerimizi bir durum oldu¤unda insanlar yüzbinlerce kat›l›m koruyabilmek için bu rekabetçi ortamda devaml› sa¤lanabilen online kampanyalar düzenleyerek sesini mücadele etme, daha güncel, daha rafine bilgilere duyurabiliyorlar. ‹nternet'in yayg›nl›¤› virütik bir ulaflmak durumunday›z. Bunun için de en önemli flekilde artarken, bu ortam› kullanmaya daha yatk›n arac›m›z ‹nternet. olanlar›n gücü de ayn› derecede artmakta. Pirate Bay isimli siteyi belki duymuflsunuzdur. Veya t›p dünyas›n›; yolda ailenin arabas›n› kaç›rmaktan, futbol tak›m›n›n aranan oyuncusu Yeni ç›kan dosyalar› tan›tarak, Bittorrent üzerinden olmaya kadar çeflitli eylemlerde bulunurlar. Bunlar› yaparken baz› indirilebilmeleri için gerekli ç›k›fl noktas›n› sa¤layan bu yapabilece¤ini prospektüsünden bile anlayamayan fleylerden de özellikle uzak dururlar. Mesela bilgisayar oyunlar› inekler site, radikal özgürlükçü tav›rlar› ile isimlerini duyurdular. hastalar, günümüzde de¤il ilac›n etkilerini, tedavi içindir, ya da çizgi roman toplamak, bilgisayarla u¤raflmak, Internet'te Sitelerini bir "performans sanat eseri" olarak tarz›n› bile ‹nternet'ten bak›p ö¤renebiliyorlar. dolaflmak, hele hele program yazmak. O kadar inek ifli ki... tan›mlayan grup üyeleri, Pirate Party'nin kurulmas› Efendim? Öyle de¤il mi? Nas›l olur, gençlik filmlerini gözünüzün önüne getirin, okulun “Geek”leri/ineklerinin gerek popüler k›zlar, ile politik bir kimlik de kazanm›fl durumda. Gandhi'nin meflhur sözü "Önce sizi görmezden Bundan on y›l önce yanl›fl bir ilac›n neler Ya da medyay›; 90'l› y›llarda -terim yerindeyse- enformatik terör gerek sporcu o¤lanlar taraf›ndan alay konusu olup, boynu bükük gelirler, sonra sizinle alay ederler, sonra sizinle estiren medya kartelleri, günümüzün bloggerlar› bir flekilde bilgisayar odas›n›n yolunu tuttu¤u sahneleri savafl›rlar, sonra da kazan›rs›n›z" geliyor akla. karfl›s›nda devaml› geri ad›m atmakta. Biraz vizyon hat›rlam›yor musunuz? Nas›l? Bunlar 80'lerin filmleri mi? H›mmm... San›r›m hakl›s›n›z. Dönüp bakt›¤›m›zda gerçekten flafl›rt›c› de¤ifliklik söz sahibi olanlar çoktan mücadele etmeyi b›rakm›fl ve konusu… Günümüzde bilgisayar kullanmak (ve hatta iflbirli¤ine gitmifl durumdalar; CNN IReport projesi ile Günümüz filmlerinde durum biraz farkl› san›r›m. Chuck gibi bir aslen ‹nternet'i kullanmak) geliflmifl ülkelerde okuma Gustav kas›rgas›n›n göbe¤inden webcam ile yay›n bilgisayar dehas› her gün dünyay› kurtar›yor, Superman bile, bütün o yazma k›stas›n›n yerini alm›fl durumda. Bunun izini yapabilmekte. ‹talya'da bir grup gazete, Google'a gücü ve yeteneklerine ra¤men bir bilgisayar hacker’› olan Chloe'nin reklâmlardan, televizyondan, gazetelerden hatta ona sa¤lad›¤› bilgiler olmad›¤›nda eli kolu ba¤l› çiftlik iflleri ile suç dünyas›ndan bile takip etmek mümkün. u¤rafl›yor. ‹lkokul arkadafllar›m›z› yana yak›la arad›¤›m›z, ayn› flehirde Bilgisayar destekli doland›r›c›l›k, günümüzde olmam›za ra¤men biraraya gelemedi¤imiz arkadafllar›m›zla bizi uyuflturucu ticaretine dayal› ekosistemi yak›nlaflt›ran Facebook'un CIA'in operasyonlar›ndan biri oldu¤u geride b›rakt›. konufluluyor. Ne ifl yapt›¤›n›, nerden para kazand›¤›n› bir cümle ile ifade edemedi¤imiz Google dünyan›n en çok gelecek vadeden K›saca söylemek gerekirse, art›k durumu yeniden de¤erlendirmenin zaman› geldi. flirketlerinden biri olarak adland›r›l›yor. ‹çinde sistem k›rma olmayan bir tek soygun filmi yok, Peki, ne oldu bu süre içinde? Dünün ineklerini bugünün gözde el üstünde tutan ne? Hepinizin tahmin edebilece¤i tek bir cevab› var bu sorunun; ‹nternet. ‹nternet, bilginin insanlara yay›lmas› konusunda dünyan›n bugüne 6 IBM ÖZGÜR YAZILIM eden) kat›l›mc› bireyler olmas›n›. tutun GTalk'a, ftp’den tutun Bit torrente, yaz›, ses, "haberlerini çald›¤›" sebebiyle dava açarken, birçok insan gazetelerden daha sonra ç›kan haberleri zaten bayat diye okumamakta. K›saca art›k zaman›nda matbaan›n yayg›nlaflmas› ile ne yaflan›yorsa, ‹nternet'in yayg›nlaflmas› ile de benzer bir geliflim yaflanmakta, fakat bu sefer devasa Neyi mi yeniden de¤erlendirece¤iz? Kullan›c›lar›n, illa da tüketici olmad›¤›n›, bir kenarda kendisi için ürün gelifltirilmesini bekleyen kadar görmedi¤i bir ortam sa¤lad›. ‹nsanlar daha önce birbirleriyle y›¤›nlardansa, ne istediklerini iletiflim kurmak için çok daha k›s›tl› imkânlar dâhilinde çabalarken, her geçen gün biraz daha günümüzde yeni bir yöntem bir yana, her geçen gün yeni imkânlar iyi de¤erlendirebilen, boyutlarda. Peki, bizi ne bekliyor? Çok de¤il önümüzdeki on y›llarda bu geliflim tepe yapt›¤›nda Yeni Biny›l'›n Rönesans'› bafllayacak. K›v›lc›m Hindistan IBM ÖZGÜR YAZILIM 7 OpenGL art›k özgür SGI firmas›, haklar›n› elinde tuttu¤u üç boyutlu h›zland›rma teknolojisi OpenGL'i Free Software Foundation'›n kabul etti¤i flartlarda yeniden lisanslad›. Linux.com'da yer alan habere göre bu, ticari bir firman›n Özgür Yaz›l›m Dünyas›'na bugüne kadar verdi¤i en büyük hediye. Kaynak: http://www.linux.com/feature/148339 “BT Hizmet Yönetimi” LKD'de yeni yönetim uzmanlar› yetiflecek! IBM ve Bahçeflehir Üniversitesi, BT hizmet yönetimi uzmanlar› yetifltirmek amac›yla Bilgi Teknolojileri Hizmet Yönetimi Yüksek Lisans Program›’n› (BTHY / IT Services Management) bafllat›yor. ‹flbirli¤ine ait sözleflmenin imza töreni, 26 A¤ustos 2008 tarihinde, IBM Türk Genel Müdürü Eray Yüksek, Bahçeflehir Üni. Rektörü Prof. Dr. Deniz Ülke Ar›bo¤an, IBM Türk Üniversite ‹liflkileri Lideri Jale Akyel ve Bahçeflehir Üni. Fen Bilimleri Ens. Müdürü Prof. Dr. A. Bülent Özgüler’in kat›l›m›yla gerçeklefltirildi. IBM Üniversite ‹liflkileri ekibi, ö¤rencilere sunulacak müfredat›, IBM’in Kaliforniya’daki Almaden Araflt›rma Merkezi’nde çal›flan uzmanlar, Bahçeflehir Üniversitesi ve Northeastern Üniversitesi’yle birlikte haz›rlad›. ‹ngilizce ve tezsiz olarak sunulacak programda, ö¤renciler Bahçeflehir Üniversitesi’nden 6 adet 3’er kredilik ders alacak. Ayr›ca, uzaktan e¤itimle 8 adet 2’fler kredilik dersi de Northeastern Üniversitesi’nden alarak, iki diplomaya birden sahip olacak. 8 IBM ÖZGÜR YAZILIM Haziran ay›nda yap›lan 5. Genel Kurul sonras›nda Linux Kullan›c›lar› Derne¤i'nin (LKD) yeni yönetim kurulu seçildi. Seçim sonucunda dernek baflkanl›¤›na Doruk Fiflek, genel sekreterli¤e Volkan Evrin, saymanl›¤a Shane Shields seçilirken, di¤er genel kurul üyeliklerine de Alper O¤uz, Hakan Uygun, Bar›fl Özyurt ve Onur Küçük seçildi. Seçildi¤i günden bu yana çok aktif bir çal›flma anlay›fl› içinde görevine devam eden yeni yönetim, ilk ifl olarak bir günlük oluflturdu. http://gunluk.lkd.org.tr/yk adresinden de takip edilebilen günlük sayesinde LKD'nin çal›flmalar›ndan haber almak mümkün. S›kça güncellenmekte olan günlükten ald›¤›m›z haberlerden baz›lar›, üyeleri sevindirecek gibi gözüküyor. Uzun süredir beklenen ama bir türlü çözülemeyen sanal pos al›m›n›n tamamlanmas›yla art›k LKD üyeleri, internet üzerinden üye aidatlar›n› ödeyebilecekler. 1. Özgür Yaz›l›m Konferans› kitapç›klar›n›n da¤›t›m› için de çaba gösteren yönetimin bu aktifli¤i üyeler aras›nda da bir heyecan yaratm›fl olacak ki, derne¤e gönüllü katk› yapmak isteyen kifli say›s›nda ciddi bir art›fl göze çarp›yor. Son güzel haber ise, 26 A¤ustos Sal› günü, derne¤in 1.000 üye say›s›na ulaflt›¤›n›n duyurulmas› oldu. Kaynak: http://gunluk.lkd.org.tr/yk/ IBM, MEB iflbirli¤i Netbook, Linux kalesi olabilir mi? Son derece ucuz dizüstü bilgisayarlar›n aç›k kaynak Linux iflletim sistemleri için ortam› nas›l haz›rlad›¤›na iliflkin çarp›c› notlar var. “Linux Foundation yöneticisi Jim Zemlin'e göre son derece ucuz kiflisel bilgisayarlar sayesinde, perakendeciler gibi her türlü flirketin kendi bilgisayar markas›n› yaratmas›na olanak sa¤layacak bir ortam olufltu. Windows’tan farkl› olarak Linux, kiflisel bilgisayar üreticilerinin ve yetkili sat›c›lar›n›n bilgisayar›n görünümü ve stili üzerinde pek çok de¤ifliklik yapmas›na olanak sa¤l›yor. Güçlü iflletim sistemlerinden çok, internet ba¤lant›l› hizmetlere dayanan Web 2.0 ve “Cloud Computing” kavram›n›n benzer e¤ilimleri, Windows’un önemini gittikçe azalt›yor. Zemlin'e göre daha güvenilir ve kullan›m› daha kolay olan Linux’u kullanma zaman› geldi. Zemlin, ‘Teknolojinin olgunlaflm›fl olmas›n›n bunda pay› büyük” diyor. 10 IBM ÖZGÜR YAZILIM Türkiye’deki 70. y›l›n› kutlayan IBM Türk, KidSmart Okul Öncesi E¤itim Program›’n›n ülkemize getirilmesi amac›yla, Mili E¤itim Bakanl›¤› (MEB) ile iflbirli¤i protokolü imzalad›. 7 Ekim 2008 tarihinde yap›lan imza törenine, Milli E¤itim Bakanl›¤› Müsteflar› Muammer Yaflar Özgül, IBM Genel Müdürü Eray Yüksek, Avrupa, Ortado¤u ve Afrika Bölgesi E¤itim Programlar› Müdürü Carol Berry ve Türkiye Yat›r›m Destek ve Tan›t›m Ajans› Baflkan› Alpaslan Korkmaz kat›ld›. IBM’in KidSmart Okul Öncesi E¤itim Program›, 2008-2009 ö¤retim y›l›nda, MEB ile ortaklafla seçilen 25 okula ünitelerin kurulmas› ve ö¤retmenlerin e¤itilmesiyle bafllayacak. Program›n, önümüzdeki y›llarda daha çok okula ulaflt›r›lmas› ve yayg›nlaflt›r›lmas› hedefleniyor. Dünyada 56 ülkede kullan›lan ve IBM taraf›ndan kritik öneme sahip okul öncesi e¤itiminin desteklenmesi amac›yla gelifltirilen KidSmart Okul Öncesi E¤itim Program›, Türkçenin de aralar›nda bulundu¤u 14 dilde sunuluyor. BT, kurumsal aç›k kaynak toplulu¤una kat›l›yor BT, Linux Foundation’›n kurumsal aç›k kaynak toplulu¤u ve çal›flma grubu olan FossBazaar bünyesine kat›ld›. “‹letiflim ve bilgi teknolojileri devi, 2005’ten bu yana zaten Linux Foundation üyesi. Çarflamba günü yap›lan bir aç›klamaya göre BT’nin FossBazaar’a kat›lmas›n›n nedeni, “ifl dünyas›nda ücretsiz özgür ve aç›k kaynak yaz›l›m›n›n benimsenmesini h›zland›rmak”. Linux Foundation’›n yan› s›ra HP, Novell, Google ve SourceForge da FossBazaar sponsorlar› aras›nda yer al›yor.” Özgür yaz›l›m›n hukuk zaferi ABD Federal Mahkemesi verdi¤i kararda alt dereceli mahkemenin karar›n› bozarak hobi amaçl› yap›larak internet üzerinden ücretsiz da¤›t›lan ve Artistic License ile lisanslanan özgür yaz›l›m›n haklar›n›n korunaca¤›n› belirtti. Federal Mahkeme, karar›n›n gerekçesinde Artistic License taraf›ndan belirlenen koflullar›n uygulanmas›n›n fikri mülkiyet kanunu ile mümkün oldu¤unu belirtti. geliflti; Robert Jacobsen adl› özgür yaz›l›mc› gelifltirdi¤i e¤itim modelini Artistic License ile lisanslad›¤›n› belirterek, internet üzerinde yay›nlad›. Bu lisansa göre lisanslanan malzeme di¤er kifliler taraf›ndan özgürce kullan›l›p de¤ifltirilebiliyor. Bunun karfl›l›¤›nda kaynak kodda kodu ilk yazan›n belirtilmesi, kodun de¤ifltirilmeyen k›s›mlar›n›n gösterilmesi ve kodun nas›l de¤ifltirildi¤inin anlat›lmas› gerekiyor. Stanford Üniversitesi'nde Hukuk Profesörü olan Larry Lessig yapt›¤› aç›klamada; "Hukuk ile ilgili olmayanlar için önemsiz olarak görülse de bu asl›nda büyük bir geliflme. Teknik olmayan terimlerle anlatmak gerekirse; yüksek mahkeme özgür yaz›l›mlar›n hukuken korunmas› için ilk ad›mlar› belirlemifltir. Buna göre e¤er özgür yaz›l›m lisanslar›nda belirtilen flartlara uymazsan›z lisanstan art›k faydalanamazs›n›z ve bu da sizi basit bir terimle telif haklar› ihlalcisi haline getirir. Bu karar önemli bir zaferdir" dedi. Davaya konu olan olaysa flöyle Kodunun Matthew Katzer adl› bir baflka programc› taraf›ndan haz›rlanan ticari bir yaz›l›mda lisans koflullar›na ayk›r› kullan›ld›¤›n› fark eden Jacobsen, konuyu mahkemeye tafl›d›. Konuya bakan ilk dereceli mahkeme, davac›n›n iddias›na kat›lmayarak lisans koflullar›n›n anlaflmalar hukuku ile ba¤daflmayacak kadar genifl olmas› nedeniyle bir lisans ihlalinin olmad›¤›na karar verdi. Temyiz safhas›nda ise Federal Mahkeme, Artistic License'da belirtilen koflullar›n telif haklar› hukuku kapsam›nda uygulanabilece¤ini söyleyerek yerel mahkemenin karar›n› bozdu. 12 IBM ÖZGÜR YAZILIM Yarg›ç Jeffry White taraf›ndan kaleme al›nan 15 sayfal›k karar gerekçesi metninde: "Aç›k kaynak kodlu lisanslamada telif hakk› sahipleri telifi korunan materyaller üzerinde de¤ifltirme ve da¤›t›m› kontrol alt›na alma hakk›na sahiptir. Aç›k kaynak kodlu lisanslama sistemi ço¤u kiflinin hayal bile edemeyece¤i bir flekilde günümüzde kullan›lmakta ve bilim-sanat çal›flmalar›nda ortak katk› ile elde edilen geliflmelere katk› sa¤lamaktad›r." ifadeleri yer buldu. Uzmanlar bu karar›n her ne kadar sadece Artistic License'› kapsad›¤›n› belirtse bile bu karar›n tüm özgür lisanslar için bir emsal olabilece¤ini söylüyor. Creative Commons Vakf› ise yapt›¤› aç›klamada yüksek mahkemenin baz› haklar›n kullan›m›n› özgürlefltirmenin bu haklardan vazgeçmek olmad›¤›n› anlamas›n›n sevindirici oldu¤unu kaydetti. Kaynak: http://www.ozgurlukicin.com/ HABERLER Roadrunner, petaflop engelini ezdi geçti! Ad›n›, New Mexico eyaletine has bir kufltan alan Roadrunner, 100 milyon ABD dolar›na mal oldu. 278 buzdolab› büyüklü¤ünde, 226 ton a¤›rl›¤›nda ve dünyan›n ilk “hibrid” süper bilgisayar› olarak petaflop engelini aflt›. 2006 y›l›nda, ABD Enerji Bakanl›¤› Ulusal Nükleer Güvenlik ‹daresi, Los Alamos National Laboratory’yi (Los Alamos Ulusal Laboratuar›) Roadrunner’› gelifltirme yeri ve IBM’i de bu bilgisayar›n tasar›mc›s› ve oluflturucusu olarak seçti. Ad›n›, New Mexico eyaletine has bir kufltan alan Roadrunner, 100 milyon ABD dolar›na mal oldu ve dünyan›n ilk “hibrid” süper bilgisayar›n› oluflturan (bir tanesi bir petaflop (saniyede 1 katrilyon ifllem) h›zda çal›flacak kadar güçlü) üç aflamal› bir projeydi. Bu, Lawrence Livermore 14 IBM ÖZGÜR YAZILIM Ulusal Laboratuar›nda bulunan ve flu anda 1 numara olarak de¤erlendirilen, (dünya çap›ndaki TOP500 süper bilgisayar listesinde lider konumdaki rakiplerinden yaklafl›k üç kat daha h›zl› olan) IBM Blue Gene sisteminden iki kat daha h›zl› bir bilgisayar. • Roadrunner öncelikle ABD’nin nükleer silah stoku konusunda güvenlik ve güvenilirlik sa¤lamak için kullan›lacak. Ayr›ca Roadrunner, uzay bilimleri, enerji, insan genom bilimi ve iklim de¤iflikli¤i konular›nda araflt›rma için de kullan›lacak. • Roadrunner, dünyan›n ilk hibrid süper bilgisayar›. Bu türün ilk örne¤i olarak tasarlanan Cell Broadband Engine (ilk olarak Sony Playstation 3 gibi video oyunu platformlar› için tasarlanm›flt›), AMD x86 ifllemcilerle birlikte çal›flacak. • Ticari Parçalardan oluflmaktad›r. Toplamda Roadrunner 6.562 çift çekirdekli AMD Opteron çiplerini ve bununla birlikte 12.240 Cell çipini (IBM Model QS22 Blade sunucular›nda) ba¤l›yor. Roadrunner sistemi 98 terabayt belle¤e sahip ve bin 585 metrekare yer kaplayan, 278 buzdolab› büyüklü¤ünde IBM BladeCenter raflar› içinde bulunuyor. Hem Infiniband, hem de Gigabit Ethernet’ten oluflan 10 bin ba¤lant› için 88,5 kilometre fiber optik kablo gerekiyor. Roadrunner’›n a¤›rl›¤› 226 tondur. Bileflen ve teknoloji aç›s›ndan katk›da bulunan flirketler flunlard›r; Emcore, Flextronics, Mellanox ve Voltaire. • Özel Yap›land›rma. Roadrunner için iki IBM QS22 Blade sunucusu ve bir IBM LS21 Blade sunucusu özel bir “Tri-blade” (üçlü blade) yap›land›rmas›yla birlefltirildi. Makine IBM’in Minnesota, Rochester’daki fabrikas›nda üretilmifl olan toplam 3 bin 60 Tri-blade’den oluflmaktad›r. Standart iflleme (örne¤in, dosya sistemi G/Ç) Opteron ifllemciler taraf›ndan gerçeklefltirilmektedir. Matematiksel ve CPU’nun yo¤un oldu¤u ö¤eler Cell ifllemcilerine yönlendirilmifltir. Her bir Tri-blade birimi saniyede 400 milyar (400 Gigaflop) ifllem çal›flt›rabilir. • Makine, flirketin 1990’lar›n sonunda ABD devleti için üretti¤i ASCI serisi süper bilgisayarlar›n bulundu¤u IBM’in New York Eyaleti, Poughkeepsie’deki fabrikas›nda oluflturuldu, test edildi ve karfl›laflt›rmal› de¤erlendirmelere tabi tutuldu. IBM’in Minnesota, Rochester’daki tesisinde özel Triblade sunucular› yap›land›r›ld›. Yaz›l›m gelifltirme ifllemleri Teksas, Austin’deki IBM mühendisleri ve IBM’in New York Eyaleti, Yorktown Heights’taki araflt›rma laboratuar›ndaki araflt›rmac›lar taraf›ndan yürütüldü. Bu yaz›n sonlar›nda, Roadrunner New Mexico’daki Los Alamos Ulusal Laboratuar›’na gönderilirken 21 adet TIR’a yüklenecek. • Roadrunner, Red Hat’in aç›k kaynakl› Linux yaz›l›m›yla çal›fl›r. • Enerji tasarrufu sa¤lar. Birçok geleneksel süper bilgisayar tasar›m›yla karfl›laflt›r›ld›¤›nda, Roadrunner’›n hibrid biçimi gücü azar azar kullan›r (2,35 megawatt) ve dünyada lider konumda verimlilik (watt bafl›na 437 milyon hesaplama) sa¤lar. Haziran ay›nda resmi “Green 500” süper bilgisayar listesi yay›nland›¤›nda, IBM, Roadrunner’›n en üst düzeyde enerji verimli¤ine sahip sistemler aras›nda yerini almas›n› bekliyor. • IBM, Cell destekli hibrid bilgi ifllemin yayg›n olarak eriflilebilir olmas› için yeni yaz›l›mlar gelifltiriyor. Roadrunner’›n büyük yaz›l›m çabas›, hibrid süper bilgi iflleme iliflkin ticari uygulamalar› hedef al›yor. fiirketin kurumsal ve akademik Çözüm Ortaklar›yla IBM, hibrid süper bilgi ifllemi di¤er sektörler aras›nda finansal hizmetler, enerji araflt›rmalar› ve t›bbi görüntüleme sektörlerine sokacak bir aç›k kaynak ekosistemi gelifltiriyor. Cell tabanl› hibrid süper bilgi ifllem uygulamalar› flunlar› içeriyor: sermaye piyasalar›nda gerçek zamanl› neden ve etki hesaplanarak, finansal hizmetlerdeki süper bilgisayarlar, menkul k›ymetler borsas›ndaki de¤iflikli¤in, pazarlardaki dalgalanma etkisini hemen tahmin edebilirler. T›pta, dokular›n ve kemik yap›lar›n›n karmafl›k 3 boyutlu görüntülenmesi hastalar muayene edilirken gerçek zamanl› olarak gerçeklefltirilebilir. Bir petaflop ne kadar h›zl›? Roadrunner bir petaflopu (saniye de 1.000 trilyon hesaplama) aflan bir h›zda çal›fl›r; baflka bir deyiflle saniyede 1.000.000.000.000.000 ya da saniyede bir katrilyon hesaplama yapar. • Çok say›da dizüstü bilgisayar. Bu kabaca, günümüzün en h›zl› 100 bin adet dizüstü bilgisayarlar›n›n birleflimine eflittir. Roadrunner’›n performans›na eflit bir performans için 2,4 kilometre yükseklikte üst üste y›¤›lm›fl dizüstü bilgisayara gereksinim duyars›n›z. • Roadrunner’›n bir günde yapt›klar›n› yapabilmek için dünya nüfusunun tamam›n›n (yaklafl›k alt› milyar kifli) elde tafl›n›r hesap makinesi ile saniyede bir ifllem yaparak 46 y›ldan fazla zaman harcamas› gerekir. Geçen 10 y›lda, süper bilgisayarlar›n gücü yaklafl›k olarak bin kat artm›flt›r. Bugün, yaln›zca üç Roadrunner 3 bin 456 Tri-blade birimi en h›zl› 1998 bilgisayar›n gücüne sahiptir. Roadrunner’›n bir haftada tamamlayaca¤› karmafl›k bir fizik hesaplamas›n›, 1998 makine 20 y›lda tamamlar. Son on y›lda otomobillerin benzin harcama performans›n› süper bilgisayarlar›n maliyet ve verimlili¤i ile ayn› oranda gelifltirmek olanakl› olsayd› bugün yaklafl›k 4 litre benzinle 322 bin kilometre yol al›yor olurduk. IBM ÖZGÜR YAZILIM 15 IBM Yaz›l›m Zirvesi '08, ‹stanbul ve Ankara'da yap›ld› De¤iflime olan açl›k büyüyor! Türkiye’deki 70. y›l›n› kutlayan IBM, Yaz›l›m Zirvesi’08 ile firmalara 13. kez seslendi. ‹stanbul ve Ankara’da 15-16 Ekim tarihlerinde düzenlenen Zirve’nin konusu IBM CEO Study 2008’in en önemli sonuçlar›ndan biri olan “Hungry For Change – De¤iflim Açl›¤›” oldu. Zirve’de bu ortak temada buluflan konuflmac›lar, küresel anlamda baflar›l› olmak için sadece de¤iflime ayak uydurman›n yetmeyece¤ini, de¤iflimin flekillendirilmesi ve ona liderlik edilmesi gerekti¤inden bahsettiler. Birçok yerli ve yabanc› konuflmac› ile Türkiye’de tan›nm›fl firmalar›n temsilcilerinin ifltirak etti¤i Zirve’ye ilgi büyüktü. IBM Yaz›l›m Grubu, müflterileri ile birlikte yaz›l›m dünyas›ndaki en son yenilikleri ele al›p, olas› uygulama alanlar›n› tart›flt›. Geçti¤imiz dönemde gerçeklefltirilen projeler ve bu projelerin firmalar üzerinde yaratt›¤› de¤iflimler de kat›l›mc›larla paylafl›ld›. ‹ki tam gün süren etkinlik kapsam›nda aç›l›fl ve ana oturumlar d›fl›nda ‹stanbul’da 35, Ankara’da 15 olmak üzere toplam 45 paralel oturum gerçeklefltirildi. Aç›l›fl konuflmas›n› gerçeklefltiren IBM Türk Genel Müdürü Eray Yüksek’in ard›ndan Türkiye’de y›llard›r de¤iflik kurumlarda yönetici olarak çal›flan ve halen Hexagon Yönetim Kurulu Baflkan› olan Jan Nahum, de¤iflimden ve gelece¤in firmalar›nda bulunmas› gereken de¤iflim ihtiyac›ndan bahsetti. Tümleflik iletiflim konusunda dünyadaki en yetkin isimlerden IBM Bilgi Teknolojileri Üst Düzey Mimar› Ron Sebastian, iletiflimde girilen yeni dönemi ele ald›. IBM ‹nternet Güvenli¤i Sistemleri Veri ve ‹çerik Güvenli¤i ‹fl Kolu Teknik Ürün Yöneticisi Sean Brown da internet ve e-posta güvenli¤i hakk›nda aç›klamalarda bulundu. Günümüzde bütün firmalar›n üzerine çal›flmalar yapt›¤› Servis Odakl› Mimari (SOA) konusunda IBM’in en önemli isimlerinden Mike McCarthy, firmalara yol gösteren bir sunum yapt›. Ayr›ca zirvenin Ankara aya¤›nda AK Parti Milletvekili ve Genel Baflkan Yard›mc›s› Reha Denemeç de geleneksel çizgiden 16 IBM ÖZGÜR YAZILIM küresel yenilikçi yörüngeye konulu bir konuflma gerçeklefltirdi. Sadece konuflmac›larla de¤il, kat›l›mc› firmalarla da dikkat çeken IBM Yaz›l›m Zirvesi’08, birçok dev firmaya ev sahipli¤i yapt›. IBM tecrübelerini anlatan Coca Cola, Türk Telekom, Vodafone, ‹fl Bankas›, Alternatif Bank, Mercedes ve Kerevitafl gibi flirketlerin gerçeklefltirdi¤i oturumlar›n yan›nda, IBM çözüm ortaklar› da en son gelifltirilen yaz›l›mlardan ve yeniliklerden bahsetti. Kat›l›m›n üst düzeyde gerçekleflti¤i IBM Yaz›l›m Zirvesi’08, bilgilendirmenin yan›nda ziyaretçilere IBM Yaz›l›m Zirvesi’08’de konu “De¤iflim Açl›¤›” idi. 15 Ekim’de ‹stanbul, 16 Ekim’de Ankara’da gerçeklefltirilen zirvede, firmalar›n bugün ve gelecekte nas›l ayakta kalabilece¤i anlat›ld›. Server Tanfer, Eray Yüksek ve Jan Nahum gelece¤in ifl yapma flekilleri hakk›nda ipuçlar› verdi. Müflteriden h›zl› düflünmek Konuflmas›nda firmalar›n gelece¤e dair bak›fl aç›lar›ndan bahseden IBM Türk Genel Müdürü Eray Yüksek, küresel ekonomide de¤iflimin önemine dikkat çekti. IBM’in global olarak 1.200 CEO’yla gerçeklefltirdi¤i araflt›rmaya göre firmalar de¤iflimin ve sürdürülebilir baflar›y› yakalamak için kendilerini sürekli olarak yenilemeleri gerekti¤inin fark›ndalar. De¤iflimin h›z›na ayak uydurabilmeyi bir numaral› öncelik olarak belirleyen CEO’lar›n gündeminde inovasyon en önemli konu. “CEO’lar›n tan›m›yla ‘gelece¤in iflletmesi’, de¤iflimi kal›c› bir durum olarak kabul ediyor. Yöneticiler küresel rekabette kazanan tarafta olmak için, de¤iflimi yönetme kapasitelerini art›r›yor, yeni oluflan müflteri s›n›flar›na ulaflmak ve ifl modellerini küresel bütünleflik ilkelere uydurmak için cesur at›l›mlar yapmaya haz›rlan›yor. Küresel ifl dünyas›, de¤iflime direnmenin de¤il, onu do¤ru yönetebilmenin baflar›y› getirece¤inde fikir birli¤ine var›yor.” dedi. IBM’den inovasyona büyük destek! Türkiye’de 70. y›l›na girmekte olan ve yat›r›mlar›n› aral›ks›z sürdüren IBM Türk, BT sektörü ve akademik çevrelerin yan› s›ra tüm ifl dünyas› için büyük önem tafl›yan ‹stanbul ‹novasyon Merkezi’ni açt›. Barcelona, Helsinki, Stuttgart, Zürich, Dublin, Kopenhag, Oslo gibi birçok kentte bulunan merkezlere bir yenisi de ‹stanbul’da eklenmifl oldu. IBM ‹novasyon Merkezleri Rekabetçi konumda kalabilmek için, aç›k platformlu, son teknolojiye sahip uygulamalar ve yenilikçi ifl hizmetleri sunman›z gerekir. Buna ulaflman›z için dünya çap›ndaki IBM ‹novasyon Merkezleri, uygulama gelifltirme döngüsünün her aflamas›nda yerinde ve uzaktan teknik yard›m sa¤l›yor. Umut Kavurmac› Çözümlerinizi IBM ve Linux platform-lar›nda planlaman›za, tasarlaman›za, kodlaman›za, yerlefltirmenize ve s›naman›za yard›mc› olmak üzere bu merkezlerde profesyonel ekipler gözetiminde özellefltirilmifl hizmetler sunuluyor. Uygulamal› çal›flmalar (workshop), birden çok ürün Gereksinim duydu¤unuz teknik yard›m›, gereksinim duydu¤unuz zaman ve gereksinim duydu¤unuz yerde al›n bütünlefltirme dan›flma hizmetleri, çapraz platform s›nama ortamlar›, uygulama yard›m› da içinde olmak üzere yerinde ve uzaktan teknik destek konusunda derin bilgiye sahip IBM Çözüm Ortaklar› da yard›ma haz›r. IBM, ifl f›rsatlar›n› geniflletme, gelifltirme maliyetlerini azaltma, inovasyon yoluyla fark yaratma ve ürünlerinizin pazara ç›k›fl›n› h›zland›rma konusunda flirketlere yard›mc› olmay› hedefliyor. Peki ne kazanacaks›n›z? IBM ‹stanbul’da önemli bir merkeze daha imzas›n› at›yor. Tüm dünyada “Innovation Center” olarak isimlendirilen bu merkezlerden sonuncusu “‹stanbul ‹novasyon Merkezi” olarak 22 Temmuz 2008 Çarflamba günü ‹stanbul Levent’te bulunan IBM 18 IBM ÖZGÜR YAZILIM Türk Genel Müdürlük Binas›’nda aç›ld›. ‹fl ortaklar›n›n yeteneklerini gelifltirebilecekleri, etkinliklerin, tan›t›m toplant›lar›n›n, e¤itimlerin yap›labilece¤i bu merkezin sa¤layaca¤› faydalar saymakla bitecek gibi de¤il. ‹novasyon ve iflbirlikleri için fiziksel bir ortam sa¤layan bu merkez, global kaynaklara eriflmek için de yerel bir eriflim noktas› olarak görülebilir. Teknik yeteneklerin ve deste¤in gelifltirilebilece¤i bu merkezde kat›l›mc›lar›n yetenekleri de gelifltirilebilecek. Dünya çap›ndaki IBM ‹novasyon Merkezleri arac›l›¤›yla beceri oluflturabilir, bilginizi art›rabilir ve yüksek kaliteli ürünleri h›zl› flekilde teslim edebilirsiniz. IBM ‹novasyon Merkezi, ‹stanbul’un Web sitesini ziyaret etmek için: http://ibm.com/partnerworld/iic/istanbul.html IBM ‹novasyon Merkezleri ile flunlar› yapabilirsiniz. • H›zl› flekilde üretken hale gelebilirsiniz. En yeni IBM teknolojileri hakk›nda e¤itim al›p, çal›flmaya haz›r teknik ortamlarda s›namalar›n›z› yapabilirsiniz. • Bilginizi art›rabilirsiniz. IBM ve Linux platformlar›nda çözüm gelifltirmenin tüm yönleri hakk›nda IBM uzmanlar›ndan bilgi alabilirsiniz. • Yeni f›rsatlarla h›zl› flekilde ilgilenebilirsiniz. Çözümünüzü en son IBM donan›m ve yaz›l›m platformlar›yla bütünlefltirebilirsiniz. • Platform seçeneklerinizi en üst düzeye ç›karabilirsiniz. Genifl platform deste¤i sunarak müflterinize seçenek tan›yabilirsiniz. • Gelifltirme harcamalar›n› azaltabilirsiniz. Gelifltirme döngüsünü k›saltabilir ve s›nama ortamlar›na uzaktan eriflebilirsiniz. • Kaliteyi art›rabilirsiniz. Yüksek kaliteli, ölçeklenebilir ve güvenilir çözümler planlay›p, gelifltirip, bunlar› s›nayabilir ve çözüm mimarisini do¤rulayabilirsiniz. • Riski en aza indirebilirsiniz. Uyumluluk sorunlar›n› önceden saptay›p, çözümlerinizin kalitesini ve güvenilirli¤ini art›rabilirsiniz. • Müflteri memnuniyetini art›rabilirsiniz. Bütünlefltirilmifl, ölçeklenebilir ve güvenilir çözümler sa¤layabilirsiniz. S›namay› müflterinizle de¤il IBM’le yapm›fl olursunuz. • Çapraz ürün deste¤i hizmetlerinden yararlanabilirsiniz. Bu hizmetlerin ve özel olarak ayr›lm›fl BT mimarlar›n›n ve uzmanlar›n›n ve IBM’in son teknoloji ürünü tesislerindeki uzmanlar›n yard›m›yla uygulamalar›n›z› gelifltirebilir ya da Sanal Özel A¤ (VPN; Virtual Private Network) arac›l›¤›yla birçok farkl› hizmetten uzaktan yararlanabilirsiniz. • Gelifltirme döngüsü boyunca yard›m alabilirsiniz. ‹novasyon Merkezleri gelifltirme döngüsü boyunca uçtan uca destek sa¤lamakta. • Uzmanlardan e¤itimler alabilirsiniz. Temel ya da derinlemesine bilgi edinmek için e¤itim s›n›flar›na kat›labilirsiniz. • Çapraz ürün uzmanlar›ndan destek alabilirsiniz. Uygulamal› özellefltirilmifl mimari dan›flmanl›k, geçifl deste¤i ve kodlama konusunda yard›m alabilirsiniz. • Kavram kan›tlama ve örnek model oluflturma konusunda destek alabilirsiniz. Uzmanlar›n yard›m›yla, kod oluflturmada beceri kazanabilirsiniz. • IBM platformlar›nda gelifltirme yapabilirsiniz. Gereksinim duydu¤unuz IBM platformunda kendi ofisinizden ya da laboratuar›n›zdan gelifltirme yapabilirsiniz. • Verilerinizi IBM platformlar›na tafl›yabilirsiniz. Verilerinizi herhangi bir platformdan IBM platformlar›na aktarabilirsiniz. • Do¤rulama yapabilirsiniz. Aç›k ve endüstri standard› tabanl› uygulamalar›n›z› IBM yaz›l›m ve donan›m›nda do¤rulayabilirsiniz. • Bütünlefltirebilirsiniz. Çözümünüzü karmafl›k bir ortamda bütünlefltirip, s›nayabilirsiniz. • Performans ve ölçeklenebilirlik s›namas› yapabilirsiniz. Performans› de¤erlendirip, IBM ürünlerindeki çözümleriniz için boyutland›rma k›lavuzlar› oluflturabilirsiniz. • Uygulamal› çal›flmalar ve teknik seminerlere kat›labilirsiniz. Ürün gelifltirme çabalar›n›z› do¤rudan etkileyebilecek, yüksek talep gören, son teknoloji IBM ürünleri ve teknolojileri ile ilgili uygulamal› çal›flmalara ve yüz yüze ya da sanal teknikteki seminerlere kat›larak becerilerinizi güncel tutabilirsiniz. IBM ÖZGÜR YAZILIM 19 Dünyan›n en büyük beyin f›rt›nas›! Fikirlerin bulufltu¤u dev bir forum olan Innovation Jam 2008, internet ortam›nda 5-8 Ekim tarihleri aras›nda gerçeklefltirildi Umut Kavurmac› Özgür Yaz›l›m Dergisi olarak bu say›da Innovation Jam 2008 isimli dev bir etkinli¤i ele almak ve sizlere de tan›tmak istedik. IBM’in internet üzerinden gerçeklefltirdi¤i beyin f›rt›nas› toplant›s› InnovationJam 2008, 5-8 Ekim tarihleri aras›ndaki 72 saatlik sürede gerçeklefltirildi. ‹fl dünyas›n›n küresel liderleri, düflünce liderleri ve rol modellerinin kat›ld›¤› etkinlikte, “Günümüzün iflletmeleri nas›l gelece¤in iflletmesi haline gelecek?” sorusunun yan›t› arand›. Günümüzde ekonomileri ve toplumlar› flekillendiren küreselleflme, yeni teknolojilerin ortaya ç›kmas›, müflterilerin bilgilerinin ve taleplerinin artmas› sonucunu do¤uruyor. ‹flletmeler, de¤iflikliklerle bafl etmeye çal›fl›rken, cesur ve radikal ad›mlar atam›yor. Ancak, müflterileri için kal›c› de¤erler yaratabilmek, h›zla büyüyen pazarda rekabetçi konumunu koruyabilmek için, daha h›zl› çal›flarak ifle yarar fikirler bulmak zorundalar. Bu görüflten yola ç›kan IBM, 2006’da bafllatt›¤› küresel diyalog arac›l›¤› ile, yarat›c› fikirlerin ortaya ç›kar›lmas› için bir kez daha iflbirli¤ine davet etti. IBM Türk Ülke Teknoloji Lideri Suat K›z›ltafl Innovation Jam 2008 hakk›nda sorular›m›z› içtenlikle yan›tlad›. Gelin hep birlikte Suat K›z›ltafl’›n a¤z›ndan “Innovation” ve “Jam” kelimelerinin anlamlar›n› ve Innovation Jam buluflmalar›n›n IBM ve toplum için önemini dinleyelim. Özgür Yaz›l›m Dergisi: “Innovation Jam” nedir ve hangi zaman aral›klar›nda gerçeklefltirilmektedir? Suat K›z›ltafl: ‹novasyonun küresel, aç›k ve disiplinler aras› oldu¤u 20 IBM ÖZGÜR YAZILIM günümüzde süregelen sorunlar için yeni çözümler üretmek için farkl› beyinleri ve farkl› bak›fl aç›lar›n› bir araya getirmek gereksinimi var. Bu, iflbirli¤ine dayal› (collaborative) inovasyonun temelini oluflturmakta. IBM’in Jam’leri ve di¤er web 2.0 araçlar› fark› endüstrileri, farkl› disiplinleri, farkl› uluslar› bir araya getirerek iflbirli¤ine dayal› inovasyon için inan›lmaz olanaklar sunuyorlar. Innovation Jam’in ölçe¤i nedir, ortalama kaç kifli kat›l›r? K›z›ltafl: Innovation Jam IBM’in düzenledi¤i, küresel düzeyde, büyük ölçekli ve internet tabanl› bir forum asl›nda. Daha önceden duyurulan 72 saatlik saat diliminde, kat›lanlar›n görüfllerini b›rakabilecekleri ya da canl› sohbetler yapabilecekleri bir etkinlik. Öncelikle Jam ad› nereden geliyor biraz ondan bahsedeyim. Amerika’da birbirini önceden tan›mayan, de¤iflik yerlerden gelmifl jaz müzisyenlerinin toplanarak emprovize müzik yapt›klar› toplant›lara “ jam session” deniyor. Bu toplant›larda s›k s›k yarat›c›l›¤›n güzel örnekleri sergilenir. Innovation Jam de benzer flekilde kolektif çal›flman›n yarat›c›l›¤a dönüfltürüldü¤ü genifl ölçekli bir sanal toplant›. IBM bu toplant›lar› iki y›lda bir tekrarlanacak flekilde yap›yor. Bu y›l beflinci kez yap›lacak olan Innovation Jam 2008’in tarihi, 5-8 Ekim olarak belirlendi. Daha önceki Jam’lerde Türkiye'den kat›l›m say›lar›na dair bir bilginiz var m›? K›z›ltafl: Innovation Jam’e kat›l›m her seferinde artarak devam ediyor. Bundan önce 2006 y›l›nda yap›lan Innovation Jam’e 150 bin civar›nda kat›l›m oldu. Bu say›n›n içinde IBM çal›flanlar› d›fl›nda aile üyeleri ve müflte- rileri de var. Bu kat›l›mc›lar taraf›ndan 50 bine yak›n öneri ve 3 milyonun üzerinde görüfl dile getirildi. 2008 y›l›ndaki Innovation Jam’e özellikle IBM d›fl›ndan kat›l›m›n daha fazla artmas› ile çok genifl kitlelere ulaflmas› bekleniyor. En fazla kat›l›m hangi ülkelerden sa¤lan›yor? K›z›ltafl: Innovation Jam 2006’ya Türkiye dâhil tam 104 ülkeden kat›l›m gerçekleflti. Innovation Jam 2008’in temalar› nelerdir? K›z›ltafl: Innovation Jam 2006, IBM’in yeni teknolojilerini ve gerçek dünyadaki gereksinimleri birlefltirerek pazara ne gibi yeni çözümler sunulabilece¤i konusuna odaklanm›flt›. Bu y›l ise 4 ayr› tema belirlendi. Görüfller ve tart›flmalar afla¤›daki 4 tema etraf›nda geliflecek. Bunlardan ilki “De¤iflim; ‹fl dünyas›nda ifl modelleri inovasyonunu ön plana ç›karan de¤iflim dalgas›na yön vermek” bafll›¤›n› tafl›yor. ‹kincisi ise “Yeni Küresel ‹flletmeler; Küresel organizasyonlarla bütünleflerek, ortakl›klar kurarak yeni pazarlara ve yeni becerilere ulaflmak”. Üçüncüsü ise “Yerküre’de Yaflam; Çevre sorunlar›na ve toplumsal sorunlara duyarl›l›¤› artan tüketicilerin ihtiyaçlar›na yönelik çözümler, hizmetler ve ürünler gelifltirilmesi. Son olarak ise “Müflterilerimiz ‹fl Ortaklar›m›z; Bilgili ve talepkar olarak geliflen yeni müflteri profili ile iflbirli¤ini art›rarak kurulufllar›n farkl› k›l›nmas›. Innovation Jam 2008’e kimler kat›labiliyor? K›z›ltafl: Innovation Jam’e dünya’n›n her yerinden, gerek IBM’de gerekse davet edilen farkl› flirketlerde Jam 2008 s›ras›nda paylafl›lan tüm bilgiler aç›kt›r ve herhangi bir kifli taraf›ndan sonradan gelifltirilebilir. Kat›l›mc›lara sunulacak rapor haz›rlanana kadar geçen süre içinde ortaya ç›kan tüm görüfller kat›l›mc›lar›n okuyabilmeleri için eriflime aç›k olacak. IBM Innovation Jam 2008’e ait bulgular›n yer ald›¤› raporu kat›l›mc›lara sa¤lamay› planl›yor. çal›flan kifliler veya ba¤›ms›z uzmanlar kay›t yaparak kat›labilirler. Bu forum herkesin eriflimine aç›k bir etkinlik olmay›p, düflünce liderlerinin, konusunda uzman kiflilerin, davet edilen kurulufllar›n çal›flanlar›n›n katk›lar› ile iflletmelerin nas›l küresel lider konumuna dönüfltürülebilece¤inin yollar›n›n aranaca¤› bir forum. Innovation Jam 2008, hangi dillerde yönetiliyor? K›z›ltafl: Innovation Jam’deki tart›flma forumlar›nda teknik olarak her dilde görüntüleme yap›labilmesine ra¤men, içerik ve yönergelerin tümü ‹ngilizcedir ve etkinlik ile ilgili olarak desteklenen ana dil ‹ngilizcedir. Forum ortamlar›nda dile getirilen görüfllerin de ‹ngilizce olmas› hem etkileflimin etkinli¤ini hem de görüfllerin jam sonras› analizlerde de¤erlendirilmesi flans›n› art›racakt›r. Öneriler ne flekilde yap›l›yor? Jam’in sistemi nedir? K›z›ltafl: Kat›l›mc›lar belirlenmifl ana temalardan herhangi birini seçip, bu bafll›k alt›nda yeni bir öneri sisteme girebiliyorlar veya daha önce sisteme girilmifl önerilere iliflkin görüfllerini dile getirebiliyorlar. Eflzamanl› olmayan bu tart›flma forumlar› d›fl›nda, konu uzmanlar›n›n yönlendirece¤i ve bir grup kat›l›mc›n›n yer alaca¤› eflzamanl› sohbet toplant›lar› da yer al›yor. Kat›l›mc›lar jam s›ras›nda içerik aramas› yaparak ilgi konular›ndaki tart›flma metinlerine do¤rudan ulaflabiliyorlar. Tart›flma metinleri çok say›da uzman taraf›ndan an›nda izlenerek öne ç›kan bafll›klara dikkat çekilecek. Her konuda öneri ve fikir belirtilebiliyor mu, yoksa belli temalar etraf›nda m› konufluluyor? K›z›ltafl: Bir aç›k tart›flma ortam›n›n yararl› sonuçlar üretebilmesi ve konular›n derinlemesine her boyutuyla ele al›nabilmesi için belirlenmifl konular etraf›nda disipline edilmesinin büyük yarar› var. Bu nedenle gö- rüfllerin duyurulmufl 4 ana temadan biri ile iliflkili olmas› gerekiyor. Seçilmifl olan temalar›n belirlenmesinde IBM’in her bölge ve sektörden bin 100 CEO’nun kat›l›m›yla yapt›¤› “Küresel CEO araflt›rmas› 2008” adl› çal›flma esas al›nd›. Dolay›s›yla, ifl dünyas›n›n öncelikli ve gelece¤e yönelik konular›n›n Jam’de ele al›nd›¤›n› söyleyebiliriz. Önerilerin uygulanmas› için bir bütçe ayr›l›yor mu? K›z›ltafl: Bir önceki Innovation Jam ile ilgili olarak flu bilgiyi verebilirim. Etkinlik sonras›nda 10 tane öncelikli alan belirlenip bunlara 100 milyon Dolar bütçe ayr›ld›. 10 yeni proje bafllat›ld›. Bu projelerden baz›lar›n›n sonuçlar›n› da görmeye bafllad›¤›m›z› söyleyebilirim. Çal›flanlar hangi yollarla öneri veriyorlar? K›z›ltafl: IBM çal›flanlar›n›n veya di¤er kurulufllar›n›n çal›flanlar›n›n Innovation Jam’e kat›l›m›, çal›flma flekli, öneri girme ve forumlarda görüfl bildirme flekli aras›nda bir fark yok. IBM çal›flanlar›n›n bu jam d›fl›ndaki konularda inovasyona katk›da bulunmalar›na yard›mc› olacak IBM’in çok say›da baflka iletiflim araçlar› ve süreçleri de mevcut. Innovation Jam sonucunda ortaya ç›kan bir proje örne¤i verebilir misiniz? K›z›ltafl: Bir önceki Innovation Jam sonucunda ç›kan projelere iki örnek vermek istiyorum. Birincisi “gerçek zamanl› tercüme hizmetleri”... ‹ngilizce-Çince ve ‹ngilizce-Arapça dilleri için bu sistem gelifltirildi ve di¤er diller için de çal›flmalar sürüyor. Konuflmalar›n an›nda di¤er dile çevrilmesi ile birbirinin dilini hiç bilmeyen iki kiflinin anlaflmas›n› sa¤layan bu sistem konuflma ile yaz›l› metin aras›ndaki dönüflümleri de sa¤layabiliyor. Di¤er örnek ise “Yeflil ‹novasyonlar” bafll›¤› alt›nda toplanan yenilikler. IBM özellikle bilgi ifllem merkezlerinde, enerji tasarrufunu sa¤layacak çok say›da yenilik getirdi. Öneriler nas›l bir de¤erlendirme sürecinden geçiriliyor? K›z›ltafl: Innovation Jam 2008 etkinli¤inin sona ermesinden hemen sonra IBM çal›flanlar›ndan oluflan kalabal›k bir ekip analiz çal›flmas›na bafll›yorlar. Bu çal›flma ile fikirler tasnif edilecek, benzerleri birlefltirilecek ve gelecek için en fazla potansiyel vaat edenleri belirlenecek. Innovation Öneri getirenler ya da önerisi hayata geçenler ne flekilde ödüllendiriliyor? K›z›ltafl: Innovation Jam 2008’in amac› kolektif çal›flma ile birlikte, ortak çözüm üretmektir. Forum sürecinde çok say›da kat›l›mc›n›n görüflleri ile flekillenecek olan görüfller de yine herkesin kullan›m›na aç›k olacakt›r. IBM ÖZGÜR YAZILIM 21 IBM Yaz›l›m Akademisi ilk mezunlar›n› verdi HERBERT GAVE LINUX VIRTUALIZATION CAPABILITIES Akademi kapsam›nda yap›lan yaz›l›m yar›flmas›nda en iyi 3 proje, Galatasaray, Dokuz Eylül ve Sabanc› Üniversitelerinden ç›kt› Umut Kavurmac› IBM Türk’ün gelece¤in yaz›l›mc›lar›n› yetifltirmek üzere Ekim 2007’de bafllatt›¤› “IBM Yaz›l›m Akademisi”nin 2007-2008 ö¤renim y›l›, kapsaml› e¤itim, proje gelifltirme ve yaz›l›m yar›flmas› aflamalar›ndan sonra sona erdi. Akademi’ye Türkiye ve KKTC’deki 57 üniversiteden kaydolan 1.335 ö¤renciden 515’inin oluflturdu¤u 175 tak›m›n gerçek ifl senaryolar›na göre yaz›l›m gelifltirdi¤i yar›flmada, en iyi projeye sahip ilk 3 tak›m, s›ras›yla Galatasaray Üniversitesi’nden Nadin Kökciyan, Ozan Günalp, Zeynep fiagar, Levent Dane’den oluflan Medid Volvox, Dokuz Eylül Üniversitesi’nden Meltem Çelik, ‹smail Yürek’den oluflan Deim ve Sabanc› Üniversitesi’nden Turhan Karadeniz, Onur Can Ulusel, Berker A¤›r’dan oluflan Imaginares olarak belirlendi. IBM Yaz›l›m Akademisi’nde dereceye giren ilk 10 tak›m›n ödülleri ile e¤itimleri veren kurumlar›n plaketleri, Y›ld›z Teknik Üniversitesi’nde düzenlenen törenle verildi. Törende, birinci tak›m›n bölümü, en çok tak›m ç›karan bölüm ve en çok dan›flmanl›k yapan ö¤retim görevlisinin bölümüne de ödül verildi. Bu kapsamda, s›ras›yla Galatasaray, Dokuz Eylül ve Baflkent Üniversitelerinin Bilgisayar Mühendisli¤i Bölümleri ödül ald›. Çanakkale Onsekiz Mart Üniversitesi’nden Kübra A¤gön ve Zeliha Özfliray’›n oluflturdu¤u Rota adl› tak›m ise 22 IBM ÖZGÜR YAZILIM IBM Yaz›l›m Akademisi Jüri Özel Ödül’üne lay›k görüldü. Törende konuflan IBM Türk Genel Müdürü Eray Yüksek, “Türkiye’nin gelece¤i, küresel rekabete haz›r, iyi yetiflmifl iflgücünde yat›yor. Bu nedenle, IBM Türk olarak yapt›¤›m›z tüm çal›flmalarda, Türkiye’nin insan kayna¤›na katma de¤er yaratma amac›n› güdüyoruz. IBM Yaz›l›m Akademisi projesiyle, ö¤rencilere 21. yüzy›l›n ifl dünyas›n›n arad›¤› becerileri kazand›rmay› amaçlad›k. Proje boyunca ö¤rencilerimiz akademik birikimlerinin üzerine ifl dünyas›n›n yeni beklentilerine uygun becerileri de ekledi. Bu y›l ilkini gerçeklefltirdi¤imiz Yaz›l›m Akademisi arac›l›¤›yla binlerce gencimize ayn› becerileri kazand›rabilmeyi hedefliyoruz” dedi. IBM Türk Üniversite ‹liflkileri Yöneticisi Jale Akyel ise “‹fl dünyas›nda küresel bazda muazzam bir de¤iflim var. Araflt›rmalar›m›z, bize ifl liderlerinin, de¤iflimin h›z›na ayak uydurabilmeyi, 1 numaral› öncelik olarak gördü¤ünü gösteriyor. Bu de¤iflime paralel olarak, endüstrilerde de yepyeni meslekler ortaya ç›k›yor. Bu meslek- WE GAVE IT ENTERPRISE SENSIBILITIES Your Linux is ready.™ Introducing SUSE Linux Enterprise Server 10 from Novell . Built by a global community and ® ® secured, supported, tested and proven by Novell. With built-in virtualization, advanced clustering capabilities and certifications for more enterprise applications, SUSE Linux Enterprise Server 10 is the reliable alternative to UNIX that makes consolidating servers easy and affordable. And changes the way the world works forever. Get it at www.novell.com/linux IBM Türk Genel Müdürü Eray Yüksek Copyright ©2008 Novell, Inc. All rights reserved. Novell, the Novell logo, and SUSE are registered trademarks and This Is Your Open Enterprise, Your Linux is ready, and the gecko logo are trademarks of Novell, Inc. in the United States and other countries. *Linux is a registered trademark of Linus Torvalds. All third-party trademarks are the property of their respective owners. Novell wishes to thank the thousands of developers who contribute to Linux every day. UZMAN GÖRÜfiÜ Serkan fiahin IBM Sunucu Servisleri Operasyonu Müdürü [email protected] Genç kayg›lar ve haz›rl›ks›z yakalan›lan hayat! Bafllarken tek hedefim "Hizmet Bilimleri" konusunda sizlere daha detayl› bir yaz› yazmakt› ama olmad›, neden mi? Biliyorsunuz hepimiz zaman›m›z› modern kahvehanelerde geçirmeye bafllad›¤›m›zdan bu yana, piflpiri¤in yerini dizüstü bilgisayarlarla oturup kahve yudumlamak ald›. Ben de ald›m kahvemi elime, bafllad›m bilgisayarda yaz›m› yazmaya… Özellikle genç nüfusun u¤rak yerleri olan bu mekânlarda, etraf›n›zda gençli¤in kokusu, y›llar öncesinde b›rakt›¤›n›z birçok konunun etraf›n›zda tart›fl›lmas›, gözünüzün önünden y›llar›n bir film fleridi gibi geçmesine neden oluyor. 1. Tak›m Medid Volvox (Galatasaray Üniversitesi) 24 IBM ÖZGÜR YAZILIM IBM Yaz›l›m Akademisi hakk›nda “IBM Yaz›l›m Akademisi” projesi, gelece¤in yaz›l›mc›lar›n› yetifltirmek amac›yla IBM Türk taraf›ndan oluflturuldu. Proje, 2007 y›l›n›n Ekim ay›nda, Türkiye ve KKTC’deki toplam 14 flehir ve 29 üniversitenin dersliklerinde bafllat›ld›. IBM Yaz›l›m Akademisi, 4 aflamal› olarak gerçeklefltirildi. Ö¤renciler, ilk aflamada 22 Ekim 2007 - 1 fiubat 2008 tarihleri aras›nda projenin www.yazilimakademisi.org adresindeki sitesinden akademiye kay›t oldu. ‹kinci aflamada bafllayan dersler, 1 Kas›m 2007 ile 1 fiubat 2008 tarihleri aras›nda, ‹stanbul’da Bilgi, Yeditepe ve Y›ld›z Teknik, Ankara’da ODTÜ ve Baflkent, ‹zmir’de Ege, Adapazar›’nda Sakarya, Eskiflehir’de Osmangazi, Trabzon’da Karadeniz Teknik, Adana’da Çukurova, Bursa’da Uluda¤, Diyarbak›r’da Dicle, Kayseri’de Erciyes, KKTC’de Yak›ndo¤u ve Edirne’de Trakya üniversitelerinde gerçeklefltirildi. Ö¤renciler bu aflamada, Java, Eclipse, Rational, DB2 ve Wepshere yaz›l›mlar› üzerine IBM’den teknik dersler ald›. Projenin 1 fiubat - 15 May›s 2008 aras›nda devam eden 3. aflamas›nda, ö¤renciler, üniversitelerinden bir akademisyenin dan›flmanl›¤›nda oluflturduklar› en az 2 en çok 4 kiflilik ekiplerle, IBM’in sa¤layaca¤› gerçek ifl senaryolar›na uygun yaz›l›mlar gelifltirdi. Bu projeler, daha sonra seçici kurul taraf›ndan de¤erlendirildi ve en iyi ilk 10 proje tespit edildi. Nereden geldik buraya, sorusunu sordu¤unuzu duyar gibiyim. Asl›nda arkamdaki masada oturan gençlerin üniversiteye ek kontenjan yerlefltirmesi konusundaki yapt›klar› tart›flmalar›n ve "nereyi seçece¤im" ç›rp›n›fl›ndaki bir genç bayan›n konuflmalar›ndan geldim. Tahmin edece¤iniz üzere ancak k›sa bir süre hâkim olabildim kendime ve çok geçmeden arka masada buldum kendimi birden bire… 3. Tak›m Imaginares (Sabanc› Üniversitesi) 2. Tak›m Deim (Dokuz Eylül Üniversitesi) ler, IBM Yaz›l›m Akademisi’nde baflar›l› olabilmenin flartlar› gibi, profesyonellerden hem derinlemesine dikey bir uzmanl›k, hem de farkl› disiplinlere yatay bir hâkimiyet gelifltirmelerini istiyor. Yaz›l›m Akademisi için Türkiye’nin dört bir taraf›ndan ald›¤›m›z ola¤anüstü talep ve akademide birlikte çal›flt›¤›m›z gençlerin bahsetti¤im de¤iflime zihinsel olarak çok aç›k olmalar›, bizi çok heyecanland›rd›” fleklinde konufltu. Yar›flmada en iyi 10 ekip aras›nda dereceye giren ilk 3 ekibin üyeleri, IBM’in Zürih’teki Araflt›rma Laboratuar›’na düzenlenecek özel geziye kat›larak, gelifltirilen ileri teknolojileri yerinde görecek, ihtiyaç duyuldu¤unda IBM Türk’te yar› zamanl› çal›flma olana¤›na da sahip olacak. 4. ve 5. ekipler, Bilgi - IBM ‹leri Araflt›rmalar Merkezi’nde ya da KKTC’deki Süper Bilgisayar ‹leri Araflt›rmalar Merkezi’nde staj yapacak. ‹lk üç tak›m d›fl›nda s›ralamaya giren 7 tak›m›n üyelerine ise iPod arma¤an edildi. IBM, yar›flmada en çok say›da proje sunan, en baflar›l› ekip ç›kartan ve en çok dan›flmanl›k yapan bölümlere de 1’er adet Sistem p Power6 tabanl› Unix sunucusu hediye etti. Projelerini sunan tüm ö¤renciler, IBM’in küresel iflgücü al›m› için yararland›¤› özel CV havuzuna kaydedildi. Ufak bir tan›flma ve "nereden ç›kt› bu flimdi" bak›fllar›ndan sonra, sohbetlerine ald›lar beni de. Hepsinin hangi üniversite ve bölümleri seçti¤ini ö¤rendim önce. 4 bayan ve 6 baydan oluflan bu kalabal›k masadaki bayanlar›m›zdan 3’ü ‹flletme ve Psikoloji bölümlerini seçmifllerdi (belki de kazanm›fllard›!!!). Bir bayan ise Türkiye'nin en iyi üniversitelerinden birinde "Bilgisayar Mühendisli¤i" bölümünü kazanm›flt› (ama bu seçiminden mutsuzdu). Baylar ise Bilgisayar Mühendisli¤i, Elektrik-Elektronik Mühendisli¤i vs. özetle hepsi mühendislik seçimi yapm›fllard›. Masadaki tart›flma Bilgisayar Mühendisli¤i kazanm›fl bayan arkadafllar›n›n bu bölümde okumak istememesinden kaynaklan›yordu. Sorular›m› ard› ard›na yönelttim onlara. As›l konu fluydu asl›nda; masadaki muhabbete dayanarak söylemek gerekirse "yetenekli, zeki k›z›m›z" ailesinin iste¤i, dershanedeki baflar›s›, deneme s›nav›ndaki puanlar› okuldaki hocalar›n›n yönlendirmesi sayesinde mühendislik a¤›rl›kl› seçim yapm›fl ve kazanm›flt› iflte! Ancak gözlerindeki mühendislik korkusunu, konuflurken sesinin titremesini ve “ben ne büyük bir hatan›n efli¤indeyim” bak›fllar›n› görmenizi isterdim do¤rusu. Sohbetimiz ilerledikçe mühendisli¤in korkulmas› gereken bir bölüm olmad›¤›nda anlaflt›k belki de fakat k›z›m›z›n içindekinin bu olmad›¤› kesindi. Herkesin kendi için isteyerek yapaca¤› seçimleri olsayd› ve keflke herkes bu kadar sorgulay›c› olsayd› hayat› için. Acaba nas›l olurdu o zaman çevremiz? fiunu söylemeliyim, yapt›¤›m›z sohbet onun derdine çare olamad› belki fakat flunu anlad›m ki, pek de bilinçli bir nesil yetifltirmiyoruz. Temele ait olanlar› ö¤renmelerini sa¤layam›yoruz belki de temel olanlar› ö¤renmelerine imkân veremiyoruz. Onlardan edindi¤im en önemli bilgi, mühendisli¤in, bilimin ve teknolojinin ne oldu¤unu anlatamam›fl›z. Dahas› bu konularda sevgiyi de afl›layamam›fl›z onlara. H›zla tükettikleri teknolojiyi besleyen, insanl›¤a geçen yüz y›lda yön veren, mühendisli¤i ve bilimi onlara baflka aç›lardan bakmalar›n› sa¤lamak ve severek yap›labi- lece¤ini anlatmaya çal›flmak benim için de¤iflik ve çok keyif verici bir deneyim oldu do¤rusu. Bu sohbet sonras›nda, art›k baflka bir konuda makale yazman›n benim için imkâns›z hale geldi¤ini söylememe gerek yok san›r›m. Gerçekten de mühendislik ve bilim insan› olma yolunu seçen gençlerin say›s›n›n azald›¤›n› hepimiz bir yerlerde okumufluzdur. Ancak sizde benim gibi biraz araflt›rma yapmaya ve incelemeye bafllarsan›z, bayan ö¤rencilerde bu say›n›n dramatik bir flekilde düfltü¤ünü ve ilgilerinin kay›p oldu¤unu göreceksiniz. Bu konuda kurulmufl internet siteleri sayesinde durumu incelemenizi öneririm. Ülkemizde durumun daha kötü oldu¤unu söylememe gerek yok san›r›m. Üstelik çok büyük bir genç nüfusa sahip olmam›z, durumumuzu daha dikkat çekici bir hale getiriyor. Ben sizlere say›lar› ve durumu anlatan rakamlar› vermeyece¤im, sizlere flu soruyu soraca¤›m "Bayan ö¤rencilerimizin teknolojiyi sevmesi, mühendisli¤e ilgi duymas› ve bilimle ilgilenmesi için sizce ne yapmal›y›z?" Teknolojide ve mühendislikte bayanlar›n olmas› gereklili¤ini anlatsam, bana ayr›lan yere pek s›¤abilece¤imi zannetmiyorum. Bütün dünya bunun öneminde hem fikir olmufl, peki biz gençlerimiz ve bayan ö¤rencilerimiz için ne yapmal›y›z? Önerilerinizi bana ulaflt›rman›z dile¤i ile... Hizmet Bilimleri, Bahçeflehir Üniversitesi’nde hayata geçti. Umar›m bu konuda yazacaklar›ma gelecek say›da yer kal›r! Gelecek say›da görüflmek dile¤iyle… IBM ÖZGÜR YAZILIM 25 Go gle’dan 1 kromajl› yeni web taray›c›s›! 2 K›v›lc›m Hindistan Son y›llarda Google'› gittikçe artan bir merakla izliyoruz. fiimdi de web taray›c›s› ile huzurlar›m›zda… Siz uygulamalar› iflletim sisteminin üstünden kald›r›p, web taray›c›s›na yüklerseniz bilinen birçok kavram› da yerinden oynatm›fl oluyorsunuz. Uygulaman›z iflletim sistemlerinden ba¤›ms›z hale geliyor. Zaten bir taray›c›da çal›flan Ajax uygulamas›n›n bir baflka taray›c›da da çal›fl›r hale gelmesi, platformlar aras› uyumlulukla karfl›laflt›r›ld›¤›nda çok basit bir fley oldu¤u için, bir anda uygulaman›z çok daha fazla kifliye hitap edebilir, de¤iflik zamanlarda, de¤iflik bilgisayarlarda aç›ld›¤›nda hiçbir s›k›nt› ç›kartmadan çal›flabilir oluyor. Önce arama al›flkanl›klar›m›z› de¤ifltirmelerini izledik, daha sonra web reklâmlar›n›... Sade bir arama motorunun gittikçe güçlenen bir uygulamalar toplulu¤una ulaflt›¤›n› gördük y›llar içinde. fiu an birçok kifli gündelik iflini gerçeklefltirmek için Google Earth kullanmakta, Sketch Up dünyan›n en çok kullan›lan üç boyutlu tasar›m program› olma yolunda h›zla ilerliyor, Google Docs ise birçok fonksiyonu ile ofis programlar› ile yar›fl›r durumda. Google ve Gmail'i ise saymaya bile gerek yok. Javascript'e dayal› Ajax teknolojilerinin son birkaç y›lda yapt›¤› at›l›mla, Google'›n sa¤lad›¤› hizmetler çok daha geliflti, çok daha etkileflimli hale geldi. fiu anda ise Google, web uygulamalar›n›n asl›nda, bildi¤imiz uygulamalardan çok da bir fark› olmad›¤›n›, dahas› Cloud Computing kavram› sayesinde çok ciddi avantajlar›n›n da bulundu¤unu her geçen gün yeni bir kan›tla bizlere ispat etmekte. 26 IBM ÖZGÜR YAZILIM 3 Bu noktada Google'›n uzun süredir aktif bir flekilde Mozilla / Firefox ekibi ile iflbirli¤i yapt›¤›n›, her f›rsatta Mozilla ürünlerini ön plana ç›kartt›¤›n› da unutmamak gerekir. Google Chrome sundu¤u yeteneklerle kullan›c›lar› flafl›rt›yor. Stratejisini bu flekilde web taray›c›s› üzerinden servis veren uygulamalara dayayan bir firman›n günün sonunda kendi web taray›c›s›n› üretmek çabas›na girmesini de herkes bekliyor- 4 IBM ÖZGÜR YAZILIM 27 5 9 7 6 10 du. Fakat as›l beklemedi¤imiz, bunun Firefox gibi güçlü, eklentileri ile birçok yeni özelli¤e sahip olabilen ve camian›n kabul etti¤i bir taray›c› ile nas›l yar›flaca¤›yd›. ‹lerde ne olur bilemeyiz fakat ilk günler gösterdi ki Google Chrome, gerek hafifli¤i gerek iyi düflünülmüfl özellikleri ile k›sa sürede birço¤umuzun masaüstünde yerini alacak. Chrome'un ilk göze çarpan özelli¤i, ekran› oldukça verimli kullanmas›. Her ne kadar Firefox'un “Fuller Screen” ve “Tiny Menu” gibi “extension”lar› çok daha fazla ekrandan tasarruf ettirse de, Chrome'un bu konuda yapt›klar› da göze oldukça hofl gözüküyor. 28 IBM ÖZGÜR YAZILIM 8 Daha iyi bir taray›c› sunan Chrome'un en dikkat çekici yan› ise Sandbox yap›s›. Daha h›zl›, daha iyi bir web tecrübesi vaat eden Chrome'un belki de en büyük yenili¤i getirdi¤i Sandbox yap›s›. Ajax uygulamalar›n›n daha h›zl› çal›flmas›na imkân sa¤lamak için kullan›lan bu özellik, V8 ismindeki sanal Javascript makinesi ile birleflince, bu tür uygulamalarda size ciddi bir h›z kazand›r›yor. Bu konuda en IBM ÖZGÜR YAZILIM 29 11 12 önemli uygulamalardan biri olan Tiddlywiki ile yapt›¤›m›z basit kullan›m testlerinde gerçekten de bir miktar h›zlanma oldu¤una flahit olduk. Basit ama ifle yarar bir baflka geliflme de, art›k her bir “tab”›n ayr› bir “thread” de¤il, “process” olarak çal›flmas›. Bu sayede her bir “tab” kendi için ayr›lm›fl belli kaynaklar› kullanabiliyor ve bunun d›fl›na ç›kam›yor. Bu yüzden bir “tab”da herhangi bir sorun oldu¤unda di¤er “tab”lar› kaybetmiyor, iflinize devam edebiliyorsunuz. Chrome'un çok do¤ru yapt›¤› bir baflka ifl de, Firefox'daki konfigürasyonunuzdan birçok ayar› do¤rudan üzerine alabilme özelli¤i. “Bookmark”lar ve dolafl›m tarihçeniz bir yana, Flash ve di¤er “plugin”leri yeniden kurmak durumunda kalmaman›z oldukça iyi bir art›. Google bu taray›c›n›n lansman›nda da yine kendine özgü bir fley yapt› ve standart özellikleri alt alta yazd›klar› bir sayfa yerine, bir çizgi roman ile kullan›c›lara ulaflmay› seçtiler.. Bu çizgi roman›n tamam›n› http://www.google.com/googlebooks/chrome/index.html adresinden okuyabilirsiniz 30 IBM ÖZGÜR YAZILIM Gelece¤in iflletmesine do¤ru! IBM Türk Genel Müdürü Eray Yüksek ile Global CEO Araflt›rmas›n› ve bunun sonuçlar›n› konufltuk. Acaba 40 ülkede binlerce insan› yöneten ve ekonomiyi flekillendiren CEO’lar gelece¤in iflletmesi hakk›nda ne düflünüyorlard› ve nas›l yorumlar yapm›flt›? En önemlisi bu araflt›rma bizlere neler gösteriyordu? Bu araflt›rmaya Türkiye’den CEO’lar›n da kat›lm›fl olmas› iflin bir di¤er ilgi çekici yan›. ‹lk kez 2004 y›l›nda 465 CEO’nun görüflü al›narak yap›lan bu araflt›rma bugün 40 ülkeden 130 CEO’nun görüflünü içerdi¤inden çok daha çarp›c› ve global mesajlar içeriyor. Eray Yüksek, IBM Özgür Yaz›l›m Dergisi olarak sordu¤umuz sorular› içtenlikle yan›tlad›. Özgür Yaz›l›m: Global CEO Araflt›rmas› kapsam›nda kaç CEO ile görüflüldü? Araflt›rma kapsam›nda görüflülen CEO’lar hangi k›staslara göre seçildi? Eray Yüksek: Bugüne kadar dünya üzerindeki CEO’lara yönelik yap›lan en kapsaml› araflt›rma olan “Global CEO” araflt›rmas› kapsam›nda 40 ülkeden bin 130 CEO ile görüflüldü. Aralar›nda Türkiye’den 7 üst düzey yöneticinin de bulundu¤u, bin 130 CEO, “Gelece¤in ‹flletmesi”nin özelliklerini tan›mlad›. Araflt›rmaya kat›lan CEO’lar, özel ve kamu sektörünü temsilen çeflitli endüstrilerden seçildi. Kat›l›mc› flirketlerin yüzde 19’u 50 binden fazla, yüzde 22’si ise binden az personel çal›flt›r›yor. Global CEO Araflt›rmas›ndan hangi sonuçlar ç›kt›? “Gelece¤in ‹flletmesi”ni Türk CEO'lar› nas›l de¤erlendiriyor? ABD'li ve Avrupal› CEO'lar aras›nda görüfl farkl›l›klar› var m›? Eray Yüksek IBM Türk Genel Müdürü 32 IBM ÖZGÜR YAZILIM Yüksek: Araflt›rmada öne ç›kan en önemli sonuç, CEO’lar›n iflletmelerinde büyük de¤iflimler bekledikleri oldu. Araflt›rmaya kat›lan CEO’lar›n yüzde 83’ü, yak›n gelecekte müflteri profili, pazar flartlar› ya da flirketleri- Umut Kavurmac› ‹kinci müflteri grubu ise Sosyal nin iflletme modellerinin tamamen de¤ibilmek” oldu¤unu söyledi. 32 endüsBilince Sahip Olan müflteriler (Sociflece¤inde birleflti. Dünyan›n dört bir tatride dünyan›n en büyük flirketlerini ally Minded). CEO’lar kurumsal sosraf›ndaki farkl› ekonomilerde faaliyet yöneten CEO’lar, müflterilerinin deyal sorumlulu¤a iliflkin müflteri bekgösteren küçük, orta ve büyük ölçekli ¤iflen beklentilerini karfl›lamak için lentilerinin artt›¤› ve sosyal sorumlukurumlar›n CEO’lar›yla görüfltü¤ümüzbelirgin yat›r›mlar planlad›klar›n› lu¤un gelecekte bir iflletmeyi farkl›de, ifl önceliklerinin ayn› oldu¤u gördük. aç›klad›. laflt›rmada önemli bir rol oynayaca¤› CEO’lar›n tan›m›yla “Gelece¤in ‹flAraflt›rmaya kat›lan CEO’lar›n konular›nda hemfikir. Müflteriler orletmesi”, de¤iflimi kal›c› bir durum olayüzde 83’ünün, yak›n gelecekte iflleganizasyonlar›n sosyal sorumluluk rak kabul ediyor. Yöneticiler küresel rine dair “devasa” de¤iflimler bekleprofillerine odaklan›yor ve giderek rekabette kazanan tarafta olmak için, di¤i ortaya ç›kt›. IBM’in iki y›l önceki daha fazla, topluma duyarl› ürünleri, araflt›rmas›na göre yüzde 28 artan de¤iflimi yönetme kapasitelerini art›r›hizmetleri ve hatta tedarik zincirleride¤iflim beklentisi, öncelikle müflteriyor, yeni oluflan müflteri s›n›flar›na ni talep ediyor. CEO’lar, sosyal bilinlerin davran›fllar›na odakland›. ulaflmak ve ifl modellerini küresel büce sahip müflterinin sat›n alma karartünleflik ilkelere uydurmak için cesur lar› vermeden önce, bir iflletmenin at›l›mlar yapmaya haz›rlan›yor. KüreDaha önceki araflt›rmalar›n sosyal sorumluluk profilini göz önünsel ifl dünyas›, de¤iflime direnmenin desonuçlar›ndan da k›saca bahde bulundurdu¤unu belirtiyor. Yeni ¤il, onu do¤ru yönetebilmenin baflar›y› sedebilir misiniz? sosyal bilinç sahibi müflteriyi daha iyi getirece¤inde fikir birli¤ine var›yor. Yüksek: IBM’in küresel ifl dünyas›anlamak ve ona ulaflmak için, önüAraflt›rmaya kat›lan CEO’lar›n yüzna yönelik gerçeklefltirdi¤i 2004 y›l›nmüzdeki üç y›lda yat›r›mlar›n› yüzde de 83’ü, yak›n gelecekte ifllerinde büdaki ilk araflt›rmaya 465 CEO kat›lm›fl25 art›rmay› planl›yor. Bu oran, araflyük de¤iflimler bekliyor. Bu oran, t›. Araflt›rmada CEO’lar›n bütçe k›s›nt›t›rmada belirlenen e¤ilimler içinde en IBM’in iki y›l önceki araflt›rmas›na göre s› politikalar›n› b›rak›p büyümeye geççok artan›. yüzde 28 artm›fl durumda. meye haz›r olduklar› belirlenmiflti. KüKurumlar, müflterilerin de¤iflen Küresel ifl dünyas›na göre 2 yeni resel krizin sona erdi¤ini ortaya ç›karmüflteri s›n›f› tan araflt›rma, olufluyor: Birinflirketlerin sa¤l›kl› IBM’in yapt›¤› Global CEO Araflt›rmas› 40 cisi, tükettikleri büyüme planlar›ürünlerle ilgili ülkeden bin 130 CEO ile görüflülerek tamamland›. na ›fl›k tutmufltu. her tür bilgiyi Amerika, AvAmaç gelece¤in iflletmesini tan›mlamak idi ve edinmek isteyen, rupa ve Asya’dasonuçlar gerçekten de flafl›rt›c›… görüfllerini ve ki 765 CEO’nun beklentilerini çokat›ld›¤› 2006 beklentilerini karfl›layabilmek ve büyü¤unlukla internet üzerinden dünyaya araflt›rmas›nda ortaya ç›kan üç temel yen ekonomilerin artan al›m gücünü yayan Bilgi Oburlar› (Information Ombulgu, “de¤iflimin zorunlu olmas›”, de¤erlendirebilmek için, tüm operasnivore)... Bu müflteriler, sat›n alma ka“inovasyonun birinci öncelik ve temel yonlar›n› küresel ölçekte de¤erlendirrarlar›nda pasif rolleri terk edip sürece baflar› faktörü haline gelmesi” ve meye bafll›yor. CEO’lar›n yüzde 83’ü müdahil olmak istiyor. “Bilgi Oburu Tü“stratejik fark› ifl modelinin yaratmaflirketlerinin üretim, operasyon ve ‹K ketici”, ürünler hakk›nda kendi sosyal s›” olmufltu. Araflt›rma, 2 y›l önce büsüreçlerini küresel ba¤lamda de¤erçevrelerinde dikkate al›nan görüfllerini yümeye karar veren küresel ifl dünyalendiriyor. yay›nlayarak bir nevi “üretici”ye dös›n›n, bunun öncelikli yöntemi olarak CEO’lar›n yüzde 86’s›, önde gelen nüflüyor ve birlikte ifl yapmay› seçtikinovasyonu benimsedi¤ini ortaya ç›organizasyonlar› di¤erlerinden ay›ran leri flirketlerden esneklik ve çabuk yakarm›flt›. yeteneklerde, yani bilgi ve varl›k kar›n›t verme yetene¤i talep ediyor. Bu Bu y›l yap›lan araflt›rmada da, kafl›mlar›nda köklü de¤ifliklikler yapmay› müflteriler çok talepkar olsa da, CEt›lan bin 130 CEO, de¤iflimin iflletmeplanl›yor. O’lar›n ço¤u onlar› bir tehdit de¤il, bir lerin bir yap› tafl› olmas› gerekti¤ini f›rsat olarak görüyor. Grubun yüksek vurgulad›. CEO’lar›n yüzde 86’s›, flirbeklentilerine yan›t verebilmenin kenketlerini di¤erlerinden ay›ran yete‹fl dünyas› için en önemli dilerini farkl› k›laca¤›n› ve ortaya ç›kaneklerde, yani bilgi ve varl›k kar›fl›mgündem maddesi nedir? cak yeni pazar f›rsatlar›n› paraya çevilar›nda, köklü de¤ifliklikler yapmay› Yüksek: CEO’lar, önceliklerinin rebileceklerini düflünüyor. planlad›klar›n› belirtti. “de¤iflimin artan h›z›na ayak uydura- IBM ÖZGÜR YAZILIM 33 Web uygulamalar›nda Django dönemi! Web uygulamas› gelifltirmek Django ile eziyet olmaktan ç›k›yor. Django ile web uygulamalar›na yeni bir bak›fl geliyor. R. Emre Baflar - [email protected] Arfl. Gör. ‹stanbul Bilgi Üniversitesi Bilgisayar Bilimleri Bölümü fiunu kabul edelim: Web tabanl› uygulama gelifltirmek bir eziyettir! Neden? Web tabanl› uygulama gelifltirmenin bir eziyet haline gelmifl olmas›n›n en önemli sebebi World Wide Web (WWW - K›saca Web) olarak bilinen yap›n›n çok h›zl› bir flekilde ve sürekli olarak de¤iflmesidir. Düflünürsek ilk baflta web sadece belgeleri birbirine ba¤lamaya yarayan basit bir sistemdi. Ard›ndan önce CGI ve dinamik sayfa kavramlar› ortaya ç›kt›, sonra PHP ve benzeri diller yayg›nlaflt›, ard›ndan Javascript'in sahip oldu¤u yeteneklerin keflfedilmesi ile AJAX kavram› hayat›m›za girdi. Dahas› bu kadar uzun bir cümle dahi Web'in geçirdi¤i de¤iflimin sadece küçük bir k›sm›n› bize yans›t›r. Web'in tamam›n›n geçirdi¤i de¤iflimi görmek ise bafll› bafl›na ayr› bir araflt›rma konusudur. Peki yukar›da, ortalama bir Türkçe ö¤retmeninin saçlar›n› dökecek kadar uzun bir cümle ile aç›klad›¤›m fleylerden hangisi Web uygulamas› gelifltirmeyi eziyet haline getiren etkendir? Cevap: Hiçbiri. Tek bafl›na bu teknolojilerin hiçbiri insanlara iflkence etmek için tasarlanmam›flt›r. Öte yandan ayn› zamanda bu teknolojilerin tamam› yarat›c›lar›n›n öngördü¤ünden çok daha ileriye gitmifltir. ‹flte bu tasarland›¤› amac›n ötesine taflan kullan›m› bu teknolojileri kullanan uygulamalar gelifltirmeyi eziyet haline getirir. Bilgisayar bilimleri, bilgisayar programc›l›¤›, yaz›l›m mühendisli¤i... Ne isim verirseniz verin bu 36 IBM ÖZGÜR YAZILIM alanlar›n hepsinin temelinde yatan önemli bir kavram vard›r: Soyutlama. Günümüzde biliflim dünyas›n›n bulundu¤u noktaya gelebilmifl olmas›n›n temel sebebi insanlar›n üst üste binen iyi tasarlanm›fl soyutlama katmanlar› üretmesidir. Örne¤in günümüzün tüm modern iflletim sistemlerinin temelinde yatan C dili icat edildi¤i y›llar›n Assembly dillerinin bir soyutlamas›d›r. TCP/IP ve OSI katman yap›lar› a¤ ba¤lant›lar› üzerine birçok soyutlama içerirler. ‹flte web uygulamalar› gelifltirmeyi eziyet haline getiren fley klasik yöntemle gelifltirilen web uygulamalar›nda bu soyutlamalar›n bulunmamas›d›r. Bu nedenle klasik yöntemlerle, Python/Perl tarz› CGI veya PHP tarz› sunucu taraf› uygulamalar› gelifltirirken uygulaman›n boyu belirli bir limiti aflt›ktan sonra çeflitli, özellikle metin biçimlerine yönelik SQL Injection ve uzaktan kod çal›flt›rma gibi hatalara s›kça rastlamak mümkün olmaktad›r. Bu hatalar ço¤unlukla programc› hatas› olarak an›lsa da asl›nda sebebi programc›n›n "yeteneksiz" veya "aceleci" olmas› de¤il elindeki araçlar›n bu önlemleri almak için kendisine gerekli imkânlar› sunmamas›d›r. K›sacas› uygun bir soyutlama sunmayan ortamlarda karmafl›k web uygulamalar› gelifltirmeye çal›flmak Assembly dili ile da¤›t›k çal›flan, çoklu veritaban› destekleyen modüler bir ERP uygulamas› gelifltirmeye çal›flmaktan farks›zd›r. E¤er karmafl›k bir web uygulamas› gelifltirmek istiyorsan›z, elinizdeki IBM ÖZGÜR YAZILIM 37 platformun size ihtiyaç duydu¤unuz soyut, modüler, yeniden kullan›labilir yaz›l›m gelifltirme imkân›n› sunmas› gerekir. Django ile tan›fl›n! Django dünyas›na buyurun. Django yukar›da aç›klad›¤›m›z sorunlar› gören bir grup yaz›l›m gelifltirici taraf›ndan, bu sorunlar› ortadan kald›rmak amac›yla tasarlanm›fl bir web uygulama gelifltirme platformudur. Django sundu¤u Model-View-Controller tarz›ndaki tasar›m› ile gelifltirece¤iniz uygulaman›n bileflenlerini kolayca birbirinden ay›rman›z› sa¤lad›¤› gibi, bir anlamda sizi buna mecbur tutar. Bunun yan›nda sundu¤u "Uygulama (Application)" kavram› ve buna ba¤l› olarak sundu¤u imkânlar ile modüler ve yeniden kullan›labilir uygulama parçalar› gelifltirmenizi mümkün k›lar. Django'nun di¤er platformlara göre en önemli avantaj› sundu¤u yap›tafllar›n›n son derece düzgün biçimde birbirinden ayr›lm›fl, fakat bir bütün oluflturacak kadar da entegre olmas›d›r. Böylece bir anlamda Django'nun sunduklar›n› görüp "Django havas›na" girdikten sonra sistemin geri kalan›n› kolayl›kla çözmeniz mümkün olmaktad›r. Django'nun baflar›s›n›n ard›nda yatan en önemli etkenlerden biri aktif kullan›c›lar› taraf›ndan gelifltiriliyor olmas›d›r. Django'nu›n gelifltirilmeye bafllamas› Washington Post gazetesinin web sitesinin haz›rlanmas›d›r. Editoryal yap›dan web tasar›mc›s›na oldukça kar›fl›k bir ifl ak›fl› ve ifl bölümü içeren bu tip bir uygulaman›n Django'nun gelifltirilmesine önayak olmufl olmas› ve flu anda Django'ya katk›da bulunanlar›n önemli bir k›sm›n›n ayn› zamanda aktif olarak Django ile çeflitli web uygulamalar› gelifltiriyor olmas›d›r. Gelifltirici ve kullan›c› kitlesinin ayn› olmas› Django'nun kullan›c› ihtiyaçlar›n› karfl›layacak birçok özelli¤e h›zla sahip olmas›na imkân sunmaktad›r. Django'nun modüler yap›s› sayesinde kullan›c›lar taraf›ndan eklenen özellikler kolayca Django'nun parças› haline gelebilmektedir. Bu yaz› yaz›ld›¤› s›ralarda Django'nun "kararl›" sürümü 0.96 idi. Ancak Django, yukar›da da bahsedildi¤i gibi, çok h›zl› bir flekilde geliflmektedir ve 0.96 sürümü flimdiden tarihi eser say›lacak kadar eskimifltir (karfl›laflt›r- 38 IBM ÖZGÜR YAZILIM ma için flöyle düflünebilirsiniz: Debian'›n Etch sürümü Django 0.96'y› içerir). Tahminen bu yaz›n›n yay›nland›¤› günlerde 1.0 sürümünün ç›kmas› planlansa da flimdilik Django'nun gelifltirme sürümünün kullan›lmas› tavsiye edilmektedir. 1.0-beta2 olarak geçen bu sürüm en son güncelleme ve gelifltirmeleri içermektedir. Django kurulumu oldukça kolayd›r. Django'nun çal›flmas› için sisteminizde gerekli paketlerin yüklü oldu¤undan emin olduktan sonra tek yapman›z gereken Django'yu Subversion deposundan çekmek ve kurulum beti¤ini çal›flt›rmakt›r. Django'nun çal›flmas› için sisteminizde bulunmas› gereken tek kritik paket uygun bir veritaban› kütüphanesi ve bu kütüphanenin ba¤lanabilece¤i bir veritaban›d›r. Özellikle girifl seviyesinde, deneme amaçlar› için SQLite veritaban› yeterli olacakt›r. Bunun için tek ihtiyac›n›z sisteminizde pysqlite2 Python modülünün ve iflinizi kolaylaflt›rmak ad›na SQLite veritaban› araçlar›n›n kurulu oldu¤undan emin olmakt›r. Bunun ard›ndan Django'nun son gelifltirme sürümünü indirmeniz ve yüklemeniz gerekir. Bunun için Linux/UNIX/MacOS X gibi sistemlerde komut sat›r›ndan flu komutlar› vermeniz yeterli olacakt›r. veti olmas› flart›n› kolayca ekleyebilirsiniz. Bu flekilde veriye iliflkin kontrolleri tek bir merkezde toplayarak herhangi bir noktada yap›lacak girdi kontrolünün atlanmas› gibi olas›l›klar ortadan kalkar. Model API kulland›¤›n›z sürece elinizdeki verinin iste¤inize uygun oldu¤undan emin olabilirsiniz. Database API Django birbiriyle oldukça uyumlu çal›flan birçok parçadan oluflmufltur. fiimdi bu parçalara bir göz atal›m. Model API Daha önce de bahsetti¤imiz gibi svn co http://code.djangoproject.com/svn/django/trunk/ django-trunk cd django-trunk python Setup.py install Bu komutlardan sonuncusu sistemde yönetici yetkileri gerektirdi¤inden yetkili kullan›c› modunda çal›flt›r›lmas› gerekecektir. Django kurulumu hakk›nda daha detayl› bilgi için Django kurulum dokümantasyonuna baflvurabilirsiniz. Django Model-View-Controller yap›s›na göre gelifltirilmifl bir platformdur. Bu yap›n›n en kritik parças› olan modelin yani uygulaman›z›n kullanaca¤› veri yap›lar›n›n do¤ru tasarlanmas› uygulaman›z›n geri kalan›n›n tutarl›l›- ¤› aç›s›ndan hayati bir öneme sahiptir. Django bu konuda iflinizi gayet kolaylaflt›racak iki araç sunar: Model API ve Database API. Database API ayr› bir bafll›k alt›nda incelendi¤inden önce Model API'den bahsederek bafllayal›m. Model API uygulaman›z›n kullanaca¤› veri yap›lar›n› düzgün ve tutarl› biçimde tasarlaman›z› sa¤layan bir Django modülüdür. Model API kabaca düflünüldü¤ünde klasik uygulamalardaki veritaban› flemas›na denk düfler. Temelde Model API ile yapt›¤›n›z ifl bir “veritaban› flemas› tasarlamaktan farkl› de¤ildir”. Ancak tablolar ve sütunlar yerine nesne yönelimli bir biçimde s›n›flar›n›z› ve bu s›n›flar aras›ndaki iliflkileri tan›mlaman›z› sa¤layarak size bir soyutlama sunar. Model API'nin size sundu¤u en büyük imkân tablolar ve sütunlar yerine size programlama dilinizin terimleriyle, s›n›flar, s›n›flar›n alanlar› ve ba¤lant›lar› üzerinden düflünmenizi sa¤lamas›d›r. Bu sayede arka planda yatan veritaban› motorunun nitelikleri ve destekledi¤i özellikler gibi fleyleri düflünmenize gerek kalmaz. Django, Model API kullanarak tasarlad›¤›n›z s›n›flar›n›z› SQL ifadelerine çevirerek gerekli flemalar› otomatik yaratacakt›r. Model API ile tasarlad›¤›n›z s›n›flar ve iliflkiler en az SQL kullanarak do¤ru- Django ile yaratt›¤›n›z modellerin alanlar› üzerinde diledi¤iniz k›s›tlamalara uyup uymad›¤›n› kontrol etmeniz mümkün. dan tasarlad›klar›n›z kadar esnektir. Modelinizin bir alan›n›n türü, bofl olup olamayaca¤›, modelinizin di¤er modeller ile olan bire-bir, bire-çok, çoka-çok ba¤lant›lar› gibi klasik tan›mlar› Model API'nin size sundu¤u imkânlar ile kolayca tan›mlayabilirsiniz. Model API'nin as›l gücü ise SQL s›n›rlar›n›n d›fl›na taflan içerik do¤rulama sistemi ile ortaya ç›kar. Django ile yaratt›¤›n›z modellerin alanlar› üzerinde diledi¤iniz k›s›tlamalara uyup uymad›¤›n› kontrol etmeniz mümkündür. Örne¤in SQL ile bir tabloda say› içeren bir sütun yarat›rsan›z veritaban› sisteminiz en fazla buraya ifllenen verinin gerçekten bir say› olup olmad›¤›n› kontrol edecek ve daha ötesinde bir kontrol için sizin ek kod yazman›z gerekecektir. Model API size bu kontrolü do¤rudan verinin merkezine oturtma imkân› sunar. Örne¤in girilen verinin bir say› olmas› flart› yan›nda 2'nin bir kuv- Database API, Model API'nin hayata geçti¤i, canl› örneklerini gözümüzün önüne sundu¤u noktad›r. Model API ile tan›mlad›¤›m›z modeller birer s›n›ft›r. ‹flte Database API bizim bu s›n›flardan objeler üretmemizi, veritaban›nda saklanan objelerimize eriflmemizi ve var olan objelerimizi düzenlememizi sa¤lar. Bu anlamda Database API klasik anlamda bir ORM (Object Relational Mapping) sistemidir. Database API sayesinde veritaban›nda saklanan objelerimize tek bir sat›r SQL kodu yazmadan eriflmemiz, ihtiyac›m›za göre filtrelememiz mümkündür. Database API'nin bize sundu¤u haz›r metodlar sayesinde tek sat›r SQL kodu yazmadan objelerimiz üzerinde diledi¤imiz gibi filtreleme yapabiliriz. Database API bu metodlar yard›m›yla uygun SQL tümcelerini bizim için otomatik olarak oluflturacakt›r. Yine kullan›c›lar› taraf›ndan gelifltirilmesinin bir sonucu olarak Database API son derece esnek bir sistemdir. O kadar ki kendi içerisinde bir "Alana özel programlama dili" gibi görülebilir. Database API sayesinde objelerinizi kendi özniteliklerine veya ba¤l› olduklar› di¤er objelerin özniteliklerine göre filtreleyebilirsiniz. Örne¤in bir Modele ait objeleri ba¤l› olduklar› kullan›c›n›n hesab›n›n aktif olup olmad›¤›na göre seçebilir ve bunlardan sadece en yak›n tarihli 5 tanesini isteyebilirsiniz. Üstelik bunu yaparken ayn› zamanda ö¤enin bir niteli¤inin bir düzenli ifadeye uyup uymad›¤›n› kontrol etmeniz dahi mümkündür. Bunu yapacak bir sorgu yazman›za gerek yoktur. Sadece modelinizin uygun metodlar›n› ard arda ça¤›rman›z yeterli olacakt›r. fiablon motoru Tabii ki Model-View-Controller yap›s› sadece modellerden oluflmaz. ‹çeri¤i görüntülemek için bir görünüm katman›na ihtiyaç duyar›z. Django'nun flablon motoru (template engine) bize bu ihtiyaçlar›m›z› sa¤layacak fonksiyonaliteyi IBM ÖZGÜR YAZILIM 39 n›lan bloklar› tan›mlar. Bir flablon di¤er flablonlar taraf›ndan extends anahtar kelimesi ile geniflletilir. Bir flablonu geniflleten flablon geniflletti¤i flablonun içindeki istedi¤i bloklar› yeniden tan›mlayarak içeri¤ini doldurur. Bu flekilde her flablonun sadece kendi parças›yla ilgilendi¤i düzenli bir hiyerarfli yard›m›yla içeri¤in görüntülenmesi modüler bir flekilde, bir parçadaki de¤ifliklikler di¤erlerini etkilemeden baflar›labilir. sunar. Görünüm katman›n›n görevi kendisine sa¤lanan içeri¤i uygun biçimde sunmakt›r. Bu noktada flablon iflleme iflini iki ayr› ad›ma ay›rmam›z gerekir. Biri flablonlar› tan›d›¤›m›z flablon dili, di¤eri ise flablonu uygun biçimde görüntüleyen görünüm fonksiyonlar›d›r. Görünüm fonksiyonlar› Görünüm fonksiyonlar› uygulamam›zdan bir ç›kt› üretmek için kullan›lan fonksiyonlard›r. Bu ç›kt› HTML/XML/RSS/JSON gibi bilinen bir dosya biçimi olabilece¤i gibi herhangi bir baflka dosya biçimi de olabilir. Görünüm fonksiyonlar› içerik üretmekten sorumludurlar. Bir görünüm fonksiyonu içeri¤i tamamen tek bafl›na üretebilir, ancak genellikle bu çok tercih edilen bir yöntem de¤ildir. Bunun yerine tavsiye edilen yöntem bir flablon dosyas› kullan›larak içerik üretme k›sm›n›n flablon taraf›ndan yap›lmas›d›r. Bu anlamda görünüm fonksiyonunun tek amac› do¤ru flablona do¤ru içeri¤i sa¤lamakt›r. fiablonlara içerik "fiablon Ortam› (Template Context)" adl› bir yöntemle aktar›l›r. Bir görünüm fonksiyonu bir flablonu çal›flt›r›p ç›kt›y› üretmeden önce onun ortam içeri¤ine ihtiyaç duyulan içeri¤i de¤iflkenler olarak ekler. Daha sonra flablon dosyas› bu de¤iflkenleri kullanarak gerekli ç›kt›y› üretir. Bu yöntemin en büyük faydas› flablon içeri¤inde kod çal›flt›rma imkân›n›n k›s›tlanmas›d›r. fiablonlar en basit hesaplamay› dahi yapamayacak biçimde tasarlanm›flt›r. Bu sayede flablon sistemi ile uygulaman›n geri kalan› birbirinden kal›n çizgilerle ayr›larak uygulaman›n Model-View-Controller yap›s›na sad›k kalmas› sa¤lanm›fl olur. E¤er bir fonksiyonun bir flablon fonksiyonu olarak kullan›lmas› isteniyorsa buna uygun özel bir biçimde yaz›lmas› gerekir. fiablon ortam› yönteminin di¤er bir katk›s› ise uygulaman›n her noktas›nda ihtiyaç duyulacak verilerin flablon ortam› iflleyici (template context processor) olarak adland›r›lan fonksiyonlar taraf›ndan tür uygulamaya sunulabilmesidir. Tüm flablonlar içerisinde ihtiyaç duyulacak ortak bir veri (örne¤in o anki kullan›c›y› gösteren kullan›c› nesnesi) bu iflleyiciler yard›m›yla tüm flablon ortamlar›na yerlefltirilerek tüm görünüm fonksiyonlar›nda tekrar tekrar kullan›lmas› ihtiyac› ortadan kald›r›l›r. 40 IBM ÖZGÜR YAZILIM Temiz URL'ler Kahvenizi yudumlay›n ve Django ile web uygulamas› gelifltirmenin tad›na var›n. fiablon dili Di¤er web uygulama gelifltirme platformlar› taraf›ndan kullan›lan XSLT ve TAL gibi flablon sistemlerinin aksine Django'nun flablon dili XML tabanl› de¤ildir. Bunun sebebi Django gelifltiricilerinin bu flablon motorunun XML tabanl› olmayan her türlü içeri¤in üretilmesinde de kullan›lmas›n› istemesidir. Bu nedenle Django'nun flablo dili kendine özgü, oldukça basit, bir sözdizimine sahiptir. fiablonlar içerisindeki de¤iflkenlerin de¤erlerine ulaflmak için o de¤iflkenin ad› "{{" ve "}}" iflaretleri aras›na yaz›l›r. fiablon fonksiyonu ça¤r›lar› veya for, if gibi kontrol yap›lar› ise "{%" ve "%}" aras›nda yaz›l›r. Django flablon dili for döngüsü ve if yap›s› gibi al›flt›¤›m›z kontrol yap›lar›n› destekler. Ancak flablonlar›n içinde fonksiyon tan›mlamak veya özyinelemeli bir yap› oluflturmak mümkün de¤ildir. Bu gibi fleylerin flablonlar›n d›fl›nda yap›lmas› gerekir. fiablonlar di¤er flablonlar›n içinde include fonksiyonu ile kullan›labilir. Ancak genellikle bunun yerine flablon kal›t›m› mekanizmas›n›n kullan›lmas› tercih edilir. fiablon kal›t›m› kavram› web sitelerinin büyük bir ço¤unlu¤unun belirli baz› blok yap›lar üzerine kuruldu¤u düflüncesiyle yarat›lm›flt›r. Bu yöntemde flablonlar ayn› nesne yönelimli programlamada oluflturulan s›n›f hiyerarflilerinde oldu¤u gibi hiyerarflik bir biçimde oluflturulur. Hiyerarflinin kök k›sm›nda yer alan flablon o hiyerarfli içerisinde kulla- Web'in yarat›c›s› Tim Berners Lee'nin de dedi¤i gibi: “Haval› URL'ler de¤iflmez”. Birçok web uygulamas›na bakt›¤›m›zda oldukça korkutucu, eski çizgi romanlardaki küfürlere benzeyen bol miktarda &, #, ? gibi karakterleri içeren adreslerle karfl›lafl›r›z. Bu adresleri ço¤unlukla ak›lda tutmak mümkün olmad›¤› gibi büyük olas›l›kla bir sonraki giriflinizde adres de¤iflmifl olacakt›r. Django "haval›" ve de¤iflmeyen adresler kullanabilmenizi sa¤lar. Böylece sitenizdeki bir haberi görüntülemek isteyen bir kullan›c› /index.php?t=4&aid=42 gibi tuhaf bir adres yerine "oku/cok-ilgincseyler-oldu gibi daha anlafl›l›r bir adresi kullanabilir. Django bunun için geliflmifl bir URL tan›mlama sistemine sahiptir. Temelde Django'nun URL sistemi görünüm fonksiyonlar›n›n her birine bir adres vererek çal›fl›r. Örne¤in /oku ile bafllayan tüm adreslerin read_article adl› fonksiyon taraf›ndan ifllenmesini sa¤layabilirsiniz. Peki ya fonksiyonun parametreleri? Fonksiyon parametreleri, kullan›c›n›n istedi¤i adres üzerinde çeflitli düzenli ifadeler çal›flt›r›larak bulunur. Bu sayede kullan›c›n›n ba¤land›¤› adreslerin gayet okunakl› hale gelmesi mümkün olacakt›r. URL sisteminin di¤er bir güzel yan› ise size bir fonksiyonu istedi¤iniz parametrelerle çal›flt›rmak istedi¤inizde hangi adrese gitmeniz gerekti¤ini de söyleyebilmesidir. Ters çözümleme ad› verilen bu yöntem sayesinde Gerek flablon dosyalar›n›z gerekse uygulaman›z›n kaynak kodu de¤iflen adres tan›mlar›na an›nda ayak uydurabilir. Formlar Formlar›n olmad›¤› bir web uygulamas› düflünmek birçok web uygulama gelifltiricisinin hayali olsa da ne yaz›k ki k›sa zamanda gerçekleflecek gibi gözükmüyor. Bunu gören Django geliflti- ricileri de form problemini kökten çözmek için bir form kütüphanesi gelifltirmifllerdir. Django'nun Forms sistemi her türden formu kolayca üretmenizi sa¤lar. Bir form tan›m› aynen bir model tan›m›na benzer. Form bir s›n›f olarak tan›mlan›r ve uygun tipte alanlar içine eklenir. Django ise bu alanlar› kolayca do¤rulay›p size temiz ve geçerlili¤inden emin olabilece¤iniz bir veri sunar. Bunun yan›nda Django formlar›n›n di¤er bir ilginç çözümü ise bir sayfada ayn› formdan birden fazla say›da bulunmas› gerekti¤inde ortaya ç›kar. Örne¤in kullan›c›n›n ayn› formun belirsiz say›da kopyas›n› doldurmas› gerekiyorsa FormSet adl› bir yap› ile bu birden fazla defa tekrarlanan formlar kolayca ifllenebilir. Web uygulamalar›nda kullan›lan formlar ço¤unlukla belirli bir modele yöneliktir. Örne¤in bir web sitesindeki haber yollama formu sadece haber modelinden bir obje yaratma amac›na hitap eder. Bu gibi durumlarda modelde zaten yap›lm›fl olan tan›mlar›n bir defa daha yap›lmas› gerekebilir. ‹flte Django bu tekrarlamay› engellemek için ModelForms adl› bir yöntem sunarlar. ModelForms'un temel amac› kendisine verdi¤iniz bir model yap›s› için uygun bir form üretmesidir. Bu form üretilirken sistem o modelin di¤er modellerle olan ba¤lant›lar›n› da otomatik olarak çözümler ve uygun bir formu oluflturur. Uygulamalar Django bütün bu "çekirdek" özelliklerinin yan›nda "uygulama" olarak adland›r›lan çeflitli modüler yap›lar da içerir. Bu uygulamalar sayesinde kendi uygulaman›za kolayca kullan›c› do¤rulama özelli¤i ekleyebilir, uygulaman›z için bir yönetici arayüzü oluflturabilir veya RSS/Atom beslemeleri sunabilirsiniz. fiimdi Django ile gelen bu uygulamalardan birkaç›na bir göz atal›m. Django sayesinde tekrarlanan s›radan iflleri otomatize etmek mümkün. Kullan›c› ve izin yönetimi Django kendi içinde bir kullan›c›, grup ve izin yönetim sistemi içerir. Bu sistem sayesinde kendi uygulaman›za kolayl›kla kullan›c› ve hak yönetimi ekleyebilirsiniz. Django'nun kullan›c› yönetimini basit halde örne¤in siteye sadece kay›tl› kullan›c›lar›n eriflebilece¤i bölümler eklemekte kullanabilece¤iniz gibi kendi uygulaman›za özel izinler tan›mlay›p kullan›c›lar›n bu haklara sahip olup olmad›klar›n› da kontrol etmek mümkündür. Basit kullan›c› yönetimi için tek yapman›z gereken sitenize bir kullan›c› girifl formu ekleyip birkaç flablon koymakt›r. E¤er sitenizin belirli görünüm fonksiyonlar›n› anonim kullan›c›lardan gizlemek isterseniz tek yapman›z gereken bu fonksiyona tek bir sat›r ile bu bilgiyi eklemektir. Otomatik yönetici arayüzü Bir web uygulamas›n› gelifltirdikten sonra genelde iflin en s›k›c› k›sm› o uygulama için bir yönetici arayüzü tasarlamakt›r. Oldukça standart ifllerin tekrar›ndan oluflan yönetici arayüzlerinin oluflturulmas› gelifltiriciler için oldukça s›k›c›d›r. Django sayesinde bu tekrarlanan, s›radan ifli otomatize etmek mümkündür. Django modellerinizi otomatik olarak tan›y›p bunlar için bir yö- netici arayüzü oluflturabilir. Haz›r gelen yönetici arayüzünü kullanman›z mümkün oldu¤u gibi bu arayüzü diledi¤iniz gibi uygulaman›za uygun biçimde de¤ifltirmeniz de mümkündür. Otomatik üretilen yönetici arayüzü sayesinde tüm arayüzü s›f›rdan yazmaktansa sadece küçük de¤ifliklikler yapman›z yeterli olacakt›r. Statik sayfalar En dinamik web uygulamalar›nda dahi genelde birkaç sabit sayfan›n bulunmas› gerekebilir. Örne¤in sitenin kullan›m sözleflmesi veya iletiflim bilgileri bu tip sayfalard›r. Bunlar için ayr› görünüm fonksiyonlar› tan›mlamak Django'nun statik sayfalar sunmaya yarayan arac›n› kullanabilirsiniz. Bu sayede tek sat›r kod yazmadan ve tüm flablonlar›n›zdan faydalanarak statik içeri¤i sunman›z mümkündür. RSS/Atom beslemeleri Bir RSS/Atom beslemesi temelde bir objenin standart bir biçimde d›flar›ya sunulmas›ndan ibarettir. Her ne kadar bu ifl tan›m olarak çok basit olsa da gerek standart uyumlulu¤u, gerekse sunulmas› gereken besleme say›s›n›n çoklu¤u bak›m›ndan bir gelifltiriciyi birçok küçük detayla bo¤abilir. Django içerisinde gelen syndication uygulamas› sayesinde sadece uygulaman›z›n modelini sisteme tan›tarak diledi¤iniz model için RSS/Atom beslemesi üretebilirsiniz. Django daha bunun gibi içinde haz›r gelen ve hayat› kolaylaflt›ran birçok uygulamayla doludur. Haz›r gelen uygulamalar›n yan›nda içerik etiketlemeden görsel malzeme yönetimine birçok ifl için çeflitli Django uygulamalar› mevcuttur. Bu uygulamalar sayesinde sadece kendi içeri¤inize konsantre olarak geri kalan birçok detayla ilgilenmeden web uygulamalar› gelifltirmek mümkündür. Bu yaz›n›n bir sonraki bölümünde iflte tam olarak bunu yapaca¤›z. IBM ÖZGÜR YAZILIM 41 CELL ifllemcisi üzerinden kanserli hücre tespiti! Süperbilgisayarlar›n içinde kullan›lm›fl bir ifllemci olmas›n›n yan›nda, günümüzde yayg›n olarak karfl›laflt›¤›m›z oyun konsolu PlayStation 3’lerin ifllemcisi olarak da tasarlanan CELL ifllemcisini kullan›larak kanserli hücre tespitine katk›da bulunmaya çal›flt›k. Yazan ve Haz›rlayan: Proje Grubu Ça¤›m›z›n en yayg›n ve tedavisi zor hastal›klar›ndan biri olan kanser, her sektörün dikkatini çekti¤i gibi, yaz›l›m dünyas›n› da bu konuyla ilgili çözüm üretme merak›na sürüklüyor. Bizler de IBM bünyesinde Ar-Ge ö¤rencileri olarak bu konuda günümüzün son teknolojisi olan CELL BE ifllemci mimarisini kullanarak çözüm gelifltirmeye çal›fl›yoruz. Amac›m›z, matematiksel hesaplamalar› hücre resimlerinin boyut ve flekil analizinde uygulayarak puanlay›p hücrenin kanserli olup olmad›¤›n› tespit etmek. CELL nedir? CELL BE; IBM, Sony ve Toshiba ortakl›¤›nda ortaya ç›km›fl olan yeni bir mikroifllemci mimarisidir. CELL ifllemcisi, CELL Blade, IBM System 42 IBM ÖZGÜR YAZILIM z9 Anabilgisayar› ve RoadRunner Süperbilgisayarlar›n içinde kullan›lm›fl bir ifllemci olmas›n›n yan›nda, günümüzde yayg›n olarak karfl›laflt›¤›m›z oyun konsolu PlayStation 3’lerin ifllemcisi olarak da tasarlanm›flt›r. Neden CELL? CELL BE mimarisi içinde buludurdu¤u yönetimden sorumlu bir adet ana ifllemci PPE(Power Processing Element) ve hesaplamalar ile ilgilenen 8 adet SPE (Synergistic Processing Elements) ifllemcilerinin paralel çal›flma gücünden yaralanarak, güç verimlili¤i ve yüksek performans› uygun maliyetle sa¤l›yor. SPE’ler sahip olduklar› 256 KiloByte’l›k yerel bellek ile k›s›tlan›yorlar ancak paralel çal›flabilme ve vektör- IBM ÖZGÜR YAZILIM 43 lefltirme özelliklerine sahip olduklar› için ifllem yapabilme h›zlar› oldukça art›yor. Biz bu projede daha ucuz ve daha yayg›n olarak bulabilece¤imiz, her birinde 1 adet PPE ve 6 adet SPE bulunan 2 adet PlayStation 3 kulland›k. PlayStation 3’lerin avantaj›, küme yap›s› kullan›larak dünyan›n en h›zl› bilgisayar›n›n h›z›na denk bir ifllemci kümesi elde edilebilmesi. Bizim de bundan sonraki hedefimiz 8 adet PlayStation 3’ü küme yap›s› haline getirip daha güçlü bir ifllemci yap›s›na sahip olmak. Projede neler yapt›k? Öncelikli olarak PlayStation 3 üzerine Linux iflletim sistemi kurduktan sonra proje için gerekli olan birtak›m programlar› yükledik. Kanserli hücre tespitinde kullan›lacak fonksiyonlar tek ifl- lemcili bir bilgisayar üzerinde C dilinde skaler olarak, hiçbir haz›r fonksiyon kullan›lmadan yaz›ld›. Bu fonksiyonlar› kullanarak çekirdek sitoplazma oran›, çekirdek üzerindeki granüllerin çekirde¤e oran›, çekirdeklerin boyut ve flekil olarak deformasyonlar›n› puanlayarak kanserli olma riski yüzdesini elde ettik. Fonksiyonlar›m›z›n do¤ru çal›flt›¤›n- dan emin olduktan sonra, bu kodlar› PlayStation3 üzerine uyarlayarak resmi 12 eflit parçaya bölüp, her ifllemciye bir parça düflecek flekilde ayarlay›p, bu fonksiyonlar›n paralel olarak çal›flmas›n› sa¤lamakt›. Bu paralellefltirmenin yan› s›ra, vektörlefltirme (SIMD = Single Instruction Multiple Data) prensiplerini de kullanarak birkaç fonksiyon üzerinde uyarlanmas›n›n amac› temel olarak paralel çal›flt›rmakt›. Burada temel olarak karfl›laflt›¤›m›z en büyük problem, SPE lerin yerel belleklerinin 256 KiloByte olmas› sebebiyle iflleyebilecekleri resim miktar›n›n k›s›tl› olmas›yd›. Ancak bu problem daha fazla PlayStation 3 kullan›larak 1 SPE ye düflen resim boyutunun azalt›lmas› ile çözüme kavufltu. fiekil 1 - Resmin PlayStation 3 üzerine da¤›l›mlar› PlayStation 3’ler aras›ndaki iletiflim MPI (Message Passing Interface) ile sa¤lan›rken, PlayStation 3 içerisindeki PPE ve SPE’ler aras›ndaki iletiflim, DMA (Direct Memory Access) ve posta kutular› (Mailbox) yard›m›yla sa¤land›. DMA, PPE – SPE iletiflimi için kullan›fll› bir araç olmas›n›n ra¤men, fazla kullan›lmas›yla zaman aç›s›ndan dezavantajlar getiren bir yap›ya sahip. Projemizi en etkin bir flekilde sunabilmek için GTK (Gimp Toolkit) kullan›larak kullan›m› kolay, kullan›c› dostu bir arayüz tasarland›. ulaflmak mümkün olacakt›r, detayl› bilgi ve sorular için ayr›ca Serkan fiahin "[email protected]" ile temasa geçebilirsiniz. PROJE L‹DER‹ Turhan Karadeniz Delft University of Technology Onur Can Ulusel Sabanc› Üniversitesi PROJE GRUBU CELL BE üzerinde kod yazmak! CELL BE üzerinde kod yazmak, yaz›l›mc›ya birçok sorumluluk yüklüyor. Kodlar C dilinde yaz›lm›fl olsa da, yaz›l›mc›n›n düflük seviye dillerdeki gibi düflünmesi gerekiyor. Bir baflka deyiflle, yaz›l›mc›n›n “Mimari Bilinçli Programlama” yapmas› mutlak önem tafl›yor. CELL ifllemcisinden tam verim alabilmek için, SPE’lerin efl zamanl› çal›flmas›na yönelik ve SIMD seviyesinde kod yazmak gerekiyor. SPE’ler üzerinde efl zamanl› çal›flan kod takibi yapmak oldukça zor. Proje Bilgi-IBM ‹leri Araflt›rmalar merkezinde devam etmektedir, projenin ikinci aflamas› olan ve Cell ifllemciler ile kurulacak High Power Computing ile yaz›l›m gelifltirmesi devam edecektir, her türlü detayl› bilgiye Kas›m ay›nda http://cas.bilgi.edu.tr veya https://www-927.ibm.com/ibm/cas/sites/ istanbul/index.shtml sayfalar›ndan 44 IBM ÖZGÜR YAZILIM Sanem Arslan Marmara Üniversitesi Esin Çeti Sabanc› Üniversitesi Birkan ‹çaçan Sabanc› Üniversitesi Cihan Gürsoy Sabanc› Üniversitesi Cihan fiimflek Sabanc› Üniversitesi Ümit Can Bekar Sabanc› Üniversitesi Ça¤r› A¤cal› Orta Do¤u Teknik Üniversitesi Oytun Yücel Northwestern University IBM ÖZGÜR YAZILIM 45 Komut sat›r›n›n gücüne hükmedin! Do¤açlama programlar oluflturmak için UNIX yard›mc› programlar›n› kar›flt›r›p efllefltirin Düzey: Bafllang›ç Martin Streicher ([email protected]), fief Editör, Linux Magazine UNIX kabu¤unun temellerini ö¤renin ve s›n›rl› UNIX yard›mc› programlar› kümelerinden say›s›z veri dönüfltürmeleri oluflturmak için komut sat›r›n› nas›l kullanabilece¤inizi keflfedin. find . -type f -print | sort | uniq 46 IBM ÖZGÜR YAZILIM Groucho Chico Chico Groucho Harpo Zeppo Zeppo uniq komutu, liste ö¤elerini afla¤›daki flekilde azalt›r: UN‹Q KOMUTU Groucho Chico Groucho Harpo Zeppo Ancak, özgün Marx Brothers listesi önce s›ralansayd› (bir ad›n tüm örneklerinin arka arkaya yeniden s›ralanmas›) uniq komutu flu sonucu verecekti: UN‹Q KOMUTUNUN ÇALIfiTIRILMASI Chico Groucho Harpo Zeppo Liste 3 Bu komut sat›r›, üç ayr› yard›mc› program› birlefltirir: • find, ad› belirtilen dizinin derinliklerini araflt›r›r -- bu durumda, . ya da nokta (geçerli çal›flma dizininin k›sayolu) ile bafllayan dosya sistemidir -- ve belirtilen ölçütlerle eflleflen tüm girifllerin adlar›n› gösterir. Burada -type f, find komutunu yaln›zca düz dosyalar› bulmak üzere yönlendirir. • sort, ad›ndan da anlafl›laca¤› gibi bir listeyi ifller ve alfabetik olarak s›ralanm›fl yeni bir liste görüntüler. • uniq ("unique" gibi okunur) bir Groucho Liste 2 Bir UNIX sisteminin en yeni ve farkl› özelliklerinden biri komut sat›r›d›r. Biraz "birlefltirici" (glue) ile birlikte birkaç tufl vurufluyla s›n›rl› UNIX yard›mc› program› tak›m›n›, say›s›z do¤açlama veri dönüfltürmelerine dönüfltürmek için komut sat›r›n› kullanabilirsiniz. Örne¤in, geçerli çal›flma dizininden bafllayan klasör hiyerarflisinde benzersiz dosya adlar› listesini bulmak için kabuk komut sat›r›na afla¤›dakileri yazabilirsiniz: ÖRNEK L‹STE Liste 1 UNIX Dilinde Konuflma: Merhaba, kabuk listeyi tarar, listedeki bitiflik ö¤eleri karfl›laflt›r›r ve yinelenen ö¤eleri kald›r›r. Örne¤in, listenizin afla¤›daki gibi oldu¤unu düflünelim: IBM ÖZGÜR YAZILIM 47 find, sort ve uniq komutlar›n›n kapsaml› özellikleriyle ilgili ek bilgi almak için her bir yard›mc› program›n UNIX sisteminizdeki man sayfas›na bak›n. Veri girifli, veri ç›k›fl›, verilerle ilgili her fley Liste 4 Ba¤›ms›z olarak kullan›ld›¤›nda find, dosya sisteminin içeri¤ini her zaman girifl verileri olarak al›r. Ancak, hem sort, hem de uniq komutu veri giriflinin standart girifl ayg›t›ndan (stdin) yap›lmas›n› gerektirir. Genellikle standart girifl klavye kullan›larak sa¤lan›r: Örne¤in, sat›rlarda s›ralanmas›n› istedi¤iniz verileri yazars›n›z. Varsay›lan de¤er olarak find, sonuçlar› standart ç›k›fl ayg›t›nda (stdout) (bu genellikle uçbirim pencerenizdir) yazd›r›r. sort ve uniq, sonuçlar› standart ç›k›fl ayg›t›na yazd›r›r. Standart girifl ve ç›k›fl› göstermek için afla¤›daki metni uçbirim pencerenize yaz›n (bafltaki yüzde iflaretinin [%] kabuk komut isteminiz oldu¤unu düflünün): STD‹N VE STDOUT % sort mustache horn hat Control-D find gibi baz› yard›mc› programlar verileri stdin'den okumaz. Bunun yerine, ifllemeleri gereken verileri, dosya sistemi ya da sistem çekirde¤i gibi sistem kaynaklar›ndan okurlar ve sonuçlar› stdout'ye yazarlar. find komutunun nas›l çal›flt›¤›n› görmek için afla¤›da fiekil 2'ye bak›n. fiekil 3 içinde gösterilen flekilde, ço¤u UNIX komutu giriflleri uçbirimden okur, sonuçlar› uçbirime gönderir ve hatalar› uçbirime yazd›r›r. Varsay›lan de¤er olarak ve siz, tersi bir durumu belirtmedi¤iniz sürece, uçbiriminiz stdin için veri kayna¤›, stdout ve stderr için de hedef olarak kullan›l›r. fiekil 2. Baz› yard›mc› programlar verileri sistem kaynaklar›ndan okurlar ve stdout'ye yazarlar fiekil 4 içinde find . -type f -print | sort | uniq komutunun kavramsallaflt›r›lmas› gösterilmektedir. karakterini kullanabilirsiniz (varsa, dosyan›n var olan içeri¤i ortadan kald›r›l›r). Sonuçlar› var olan bir dosyaya eklemek için >> karakterini de kullanabilirsiniz. Baflka bir yararl› yeniden yönlendirme < karakteridir. fiekil 5 içinde, stdin'nin verileri bir dosyadan okumak için nas›l yeniden yönlendirebilece¤i gösterilmektedir. sort komutu, ad› belirtilen bir dosyadan bir sözcük listesini okur ve alfabetik s›rayla bu listeyi düzenler. veri toplama görevi çal›flt›r›yorsan›z, geçici ç›k›fl› ve yürütme s›ras›nda ortaya ç›km›fl hatalar› gözden geçirmek isteyebilirsiniz. Bunu yapmak için yeniden yönlendirme sözdiziminin de¤iflkenlerini kullanabilirsiniz: |&, >&, >>&, dikey çubuk, eflzamanl› olarak stdout'u oluflturur ve stderr'yi ekler. fiekil 6'da bir ç›k›fl ak›fl›nda stdout ve stderr'nin nas›l birlefltirildi¤i gösterilmektedir. fiekil 5 Z kabu¤una girifl Genellikle stdout ve stderr'yi yakalamak istersiniz. Örne¤in, büyük bir Modern UNIX kabuklar›n›n ço¤u -Bourne kabu¤u (bash) ve Korn kabu¤u fiekil 6 fiekil 4. Dikey çubuklarla birbirine ba¤lanm›fl üç yard›mc› program›n kavramsal bir modeli Stdin ve stdout'un kullan›lmas›na ek olarak UNIX komutlar›, tan›lama için ayr›lm›fl (uzlaflma ile; zorunlu de¤ildir) özel bir ç›k›fl noktas›na hata iletilerini gönderebilirler. Ç›k›fl noktas›na standart hata ayg›t› (genellikle stderr) denir. fiekil 3 içinde bir yard›mc› program›n çal›flt›r›ld›¤› basit bir komut sat›r›n› görebilirsiniz. Ak›fl›n yönlendirilmesi Ancak, stdin kayna¤›n› ve stdout ve stderr'nin son hedeflerini de¤ifltirebilirsiniz. Stdin'i, verileri bir metin dosyas›ndan, bir ayg›ttan (bilgisayara ba¤l› bir probe'dan) ya da bir a¤ ba¤lant›s›ndan okumaya zorlayabilirsiniz. Benzer bir flekilde, ç›k›fl› bir dosyaya, bir ayg›ta ya da bir ba¤lant›ya gönde- fiekil 3. UNIX komutlar› hatalar› özel bir kanala gönderir, standart hata sort komutu, standart girifl ayg›t›ndan yazd›¤›n›z üç sat›r› okur, bunlar› s›ralar ve sonucu standart girifl ayg›t›na yazar. fiekil 1 içinde sort komutunun ve ço¤u UNIX komut sat›r› yard›mc› programlar›n›n komut sat›r›ndan çal›flt›r›lmas›na iliflkin kavramsal bir resim sunulmufltur. fiekil 1. Stdin'den okuyan ve stdout'a yazan tipik bir UNIX komut sat›r› yard›mc› program› 48 IBM ÖZGÜR YAZILIM programlardan ve di¤er yard›mc› programlar için veri tüketmek ve üretmek üzere yeniden yönlendirebilirsiniz. Dikey çubuk (|) karakterinin amac› budur. Bir komutta, bir komutun verilerini sonraki komuta göndermek için, bak›r boru parçalar›n›n suyu su ›s›t›c›n›zdan muslu¤unuza getirdi¤i gibi, dikey çubuklar› kullanarak siz de ifllemleri birbirine zincirleme ba¤layabilirsiniz. rebilirsiniz. Her fleyin bir dosya oldu¤u UNIX'te, bir kayna¤› ya da hedefi oluflturmak, baflka bir kayna¤› ya da hedefi kald›rmak ya da oluflturmak kadar kolayd›r. Bir ifllemin verilerinin kayna¤›n› ve hedefini de¤ifltirmeye yeniden yönlendirme denir. Stdin'i, bir dosyadan ya da baflka bir kaynaktan veri okumas› ve stdout ve stderr'yi (ayr› olarak), verileri uçbirim penceresinden farkl› bir yere yazmak için yeniden yönlendirebilirsiniz. Yukar›da gösterilen özgün find komutu gibi birçok durumda, yard›mc› programlar› da di¤er yard›mc› find komutunun stdout'u uniq komutunun stdin'i ve uniq komutunun stdout'u sort komutunun stdin'i olur. Son olarak, sort, sonuçlar› uçbirime ba¤l› kalan standart ç›k›fl ayg›t›na yazd›r›r. Komutlar›n stderr'si yeniden yönlendirilmez; bu nedenle, üç yard›mc› program da hata iletilerini uçbirime yazd›r›r. (Üç yard›mc› program›n hata iletileri kar›fl›k kullan›l›r, ancak iletilerin s›ras› do¤ru olur.) Gerekirse, yukar›da gösterilen ard›fl›k ifllemi daha da geniflletebilir ve uniq yard›mc› program›n›n ç›k›fl›n› baflka bir yard›mc› programa yeniden yönlendirebilirsiniz. Dönüfltürmeyi daha da geniflletmek için yeni bir dikey çubuk eklemeniz yeterlidir. Örne¤in, less yard›mc› program›n› kullanarak ç›k›fl› sayfaland›rmak için | less ya da benzersiz dosya adlar›n›n say›s›n› bulmak için | wc -l komutunu ekleyebilirsiniz. (wc, sözcük say›s›n›n k›saltmas›d›r; wc, karakterleri, sözcükleri ve sat›rlar› sayabilir.) Buna alternatif olarak, tüm s›ran›n ç›k›fl›n› bir dosyaya kaydetmek için > fiekil 5. Standart giriflin verileri bir dosyadan okuyacak flekilde yeniden yönlendirilmesi fiekil 6. Standart girifl ve standart hata ayg›tlar›n›n birlefltirilmesi IBM ÖZGÜR YAZILIM 49 Liste 6 (ksh) dahil -- burada belirtilen yeniden yönlendirmeleri destekler, ancak bu kabuklar›n her ikisi için gerekli özel sözdizimi biraz farkl› olabilir. (Özellikler için kabuk belgelerinizi denetleyin.) Yeniden yönlendirme iflleçlerinin ço¤u, en az 25 y›ld›r tüm UNIX kabuklar›nda kullan›lan tutarl› özelliklerdir. Ancak, bu kabuklar›n ço¤u yeniden yönlendirme için yeni zemin oluflturma ve yeniden yönlendirmeyi uygulama aç›s›ndan yeni yollar keflfetme konusunda baflar›s›z olmufltur. Örne¤in, kabuklar›n ço¤u yaln›zca tek bir dosyan›n giriflini yeniden yönlendirebilir ve ç›k›fl› birden çok hedefe yönlendirmek için tee gibi bir yard›mc› program kullanman›z gerekir. (Tesisatç›lar›n kulland›¤› T ba¤lant› parças› gibi tee'nin bir girifl ve iki ç›k›fl› vard›r.) Afla¤›da, kabuk (komut sat›r› yorumcusu) olarak bash kabu¤unun kullan›ld›¤› bir örnek gösterilmifltir: Z KABU⁄U zsh% bash < tellme > log | mail -s "Who you are" 'whoami' bash: line 4: systemname: command not found zsh% <log Your current login, working directory, and system are... strike /home/strike stderr'sini, stdin'ini stdout'u ve dosya günlü¤üne yazd›ran tee yard›mc› program›na ba¤lar. Peki, bash kabu¤unun birden fazla girifl dosyas›n› ifllemesini isterseniz ne olacak? Belki de çal›flacak tek çözüm cat file1 file2 file3 | bash olacakt›r; çünkü bash, bash < file1 < file2 < file3 gibi bir sözdizimini desteklemez. Bununla birlikte, bash, ç›k›fl› birden fazla hedefe yeniden yönlendirmez. Örne¤in, bash komut sat›r›ndan bighairyscript > ~/log | mail -s "Important stuff" team gibi bir yönerge giremezsiniz. BASH ÖRNE⁄‹ bash$ ls Liste 5 tellme bash$ cat tellme echo Your current login, working directory, and system are... whoami pwd systemname bash$ bash < tellme |& tee log Your current login and working directory are... strike /home/strike bash: systemname: command not found bash$ ls tellme log bash$ cat log Your current login and working directory are strike /home/strike komutunu çal›flt›r›r ve bu komutun sonucunu, sözcük grubunun yerine yerlefltirir. Komut sat›r›n›n geri kalan›n› çal›flt›rmadan önce küçük bir kabuk komutunu çal›flt›rmaya benzer.) Önceki komutu soldan sa¤a do¤ru gözden geçirelim. bash komutu, log dosyas›n› oluflturur ve tellme içinde bulunan komutlar›n stdout'unu size postalar. Stderr, > ya da dikey çubuk karakteriyle yeniden yönlendirilmedi¤inden, hata iletileri stdout'a yazd›r›l›r. <log komutu, baflka bir Z kabu¤u k›saltmas›d›r; cat ile ayn›d›r. (Ve evet, > file komutu cat > file komutu ile ayn›d›r.) Z kabu¤u birden çok girifl yeniden yönlendirmesini de iflleyebilir. cat < file1 < file2 < file3 Z kabu¤u komut sat›r›, cat file1 file2 file3 ile ayn›d›r. Kuflkusuz, önceki sözdizimi ikincisinden daha hantald›r ve genellikle, birden çok stdout yeniden yönlendirmesi daha s›k kullan›l›r. Ancak, çal›flt›rmak istedi¤iniz yard›mc› program birden çok girifl ba¤›ms›z de¤iflkenini kabul etmiyorsa, Z kabu¤unun birden çok girifli yeniden yönlendirmesi ifle yarayabilir. Z kabu¤u, daha iyi globbing (genel arama karakteri efllefltirmeleri), geliflmifl kal›p efllefltirmeleri ve komut sat›r›na yazman›z gerekenleri en alt düzeye indiren kapsaml› otomatik tamamlama sistemini de içeren di¤er yeni inceliklerle doludur. Bu dizinin sonraki iki makalesinde Z kabu¤uyla ilgili daha ayr›nt›l› bilgi verilecektir. bash: systemname: command not found Kabukla ilgili incelikler UNIX kabuklar› yüksek oranda özellefltirilmifltir ve genellikle klavye ile etkileflimli bir flekilde kullan›l›r; ancak, bash gibi bir kabuk da girifli bir dosyadan okuyabilir. (Sonuçta, stdin yaln›zca bir dosyad›r.) Önceki ufak parçada, bash < commands sözcük grubu, bash komutunun tellme dosyas›nda buldu¤u komut listesini yürütmesini sa¤lar. |&tee log sözcük grubu, bash komutunun stdout ve 50 IBM ÖZGÜR YAZILIM Kesinlikle daha üretken bir flekilde Ancak, nispeten yeni bir kabuk olan çal›flman›z› sa¤layacak baz› güçlü koZ kabu¤u (zsh; bkz. Kaynaklar), ayn› mut sat›r› birleflimlerini afla¤›da bulakomut sat›r›nda birden çok girifl ve ç›bilirsiniz. Komutlar yaln›zca zsh içinde k›fl yeniden yönlendirmesini iflleyebilir. de¤il tüm kabuklarda çal›fl›r. Örne¤in, afla¤›da stdout'u log (günlük) • tar ile herhangi bir dizininin simadl› bir dosyaya kaydeden ve bunu, egesel ba¤lant›lar› da içeren bire bir posta ile size gönderen bir komut göskopyas›n› oluflturun: terilmifltir: Liste 6. ('whoami' söztar cf - /path/to/original | \ cük grubu, whoami (mkdir -p /path/to/copy; cd /path/to/copy; tar xvf -) ‹lk tar, /path/to/original dizinini arflivler ve stdout'a arfliv dosyas›n› gönderir; oluflturma (c) seçene¤iyle kullan›lan tire (-) iflareti stdout'u belirtir. Parantez içindeki komut bir alt kabuktur: Alt kabuktaki komutlar, geçerli kabu¤un ortam›n› etkilemez. mkdir -p komutu, oluflturulmas› gereken ara dizinlerle birlikte adland›r›lan dizini oluflturur ve cd komutu yeni dizine geçilmesini sa¤lar. ‹kinci tar, stdin'den bir arflivi okur ve yerinde açar; ay›klama (x) seçene¤iyle kullan›lan tire iflareti stdin'e baflvurur. • Bir komut s›ras›n›n stdout'unu kaydetmek ve ayn› zamanda görüntülemek için less -O file komutunu kullan›n. -O seçene¤i, stdin'i adland›r›lan file dosyas›na kopyalar. Afla¤›daki örne¤i inceleyin: sort /etc/aliases | less -Osorted • Bir dizinde binlerce dosya bulunuyorsa, kabu¤unuz (zsh dahil, dosyalar›n say›s›na ve adlar›na ba¤l› olarak) tüm dosyalar› genel arama karakteri efllefltirmelerini kullanarak numaraland›ramayabilir; çünkü, komut sat›r› genellikle belirli say›da karakterle s›n›rland›r›lm›flt›r. Bu nedenle, foreach i (*) ... end gibi kabuk komut dosyas› sözcük gruplar› baflar›s›z olabilir. (Komut sat›r›n›z›n uzunlu¤unu geçti¤inizde, Sat›r uzunlu¤u afl›ld› gibi bir ileti görebilirsiniz.) Böyle bir hata ortaya ç›karsa, bir dikey çubuk karakteri ve xargs yard›mc› program›n› kullan›n. xargs, verileri bir dikey çubuktan okur ve okunan her bir sat›r için belirli bir komutu çal›flt›r›r. Örne¤in, www.example.com sitesine baflvuran sunucunuzdaki tüm Web sayfalar›n› bulmak için afla¤›daki komut sat›r›n› kullanabilirsiniz: % find / -name '*html' -print \ | xargs grep -l 'www.example.com' \ | less -Opages xargs, find komutundan dosya adlar›n› kullan›r ve her dosyay› ifllemek için yeniden grep -l komutunu çal›flt›- r›r; adland›r›lan dosyalar›n say›s› önemli de¤ildir. (Bir eflleflme bulundu¤unda, grep -l dosyan›n ad›n› yazd›r›r ve bu dosyada, daha fazla efllefltirme yapmaz.) less, sonuçlar› sayfalara bölmenizi sa¤lar ve listeyi, ad› belirtilen dosyan›n sayfalar›na kaydeder. Sonuçta, "www.example.com" dizesini içeren dosya adlar›ndan oluflan bir liste ortaya ç›kar. Yolculuk bafll›yor Bu makalede, UNIX kabu¤unun temellerini ö¤rendiniz. Sonraki makalelerde, komut sat›r› araçlar› ve kendi yönetiminizdeki teknikler daha ayr›nt›l› olarak incelenecektir. Dosya sistemlerinden tüm yerel a¤lara kadar, hemen hemen tüm bilgiler ve sistem yönetimi, UNIX komut sat›r›ndan verimli bir flekilde kullan›labilir. Bizi izlemeye devam edin! Kaynaklar Bilgi Edinme • UNIX Dilinde Konuflma Bu dizinin di¤er bölümlerini de inceleyin. • zsh posta listesi arflivi: Z kabu¤u incelikleri ve ipuçlar›yla ilgili daha fazla bilgi için bu listeyi okuyun. • AIX ve UNIX: Daha ayr›nt›l› bilgi ister misiniz? developerWorks AIX ve UNIX alan›, bilgi içerikli yüzlerce makaleyi ve girifl düzeyindeki, orta ve ile- ri düzeydeki ö¤reticiyi içerir. • developerWorks teknik etkinlikler ve web yay›nlar›: Güncel developerWorks teknik etkinliklerini ve web yay›nlar›n› izleyin. • Podcasts: ‹lgili ayarlar› yap›n ve IBM teknik uzmanlar›n›n bilgilerine ulafl›n. Ürün ve teknoloji edinme • Z kabu¤u: Z kabu¤unun en son sürümünü Z kabu¤u ana sayfas›ndan yükleyin. • IBM deneme yaz›l›m›: developerWorks'deki yaz›l›m› do¤rudan yükleyerek bir sonraki gelifltirme projenizi oluflturun. Tart›flma • Zsh Wiki: ‹flbirli¤i yap›n, tart›fl›n ve zsh deneyiminizi paylafl›n. • AIX ve UNIX forumlar›na ve developerWorks Web günlüklerine kat›l›n ve developerWorks toplulu¤unda yer al›n. Yazar hakk›nda Martin Streicher, Linux Magazine adl› dergide fief Editör'dür. Purdue University'den bilgisayar bilimi konusunda master derecesi alm›fl ve 1982 y›l›ndan bu yana UNIX benzeri sistemlerde Pascal, C, Perl, Java ve (en son) Ruby programlama dillerinde programlama yapmaktad›r. IBM ÖZGÜR YAZILIM 51 Yeni uygulamalara bir göz at›n! Bu say›m›zda yer alan Freshmeat köflemizde, her say›m›zda oldu¤u gibi yine en taze ve en yeni uygulamalar› görücüye ç›kar›yoruz. Sizlere önerimiz üflenmeyin ve tan›t›m yaz›lar›n›n hemen alt›nda yer alan web sayfas› linklerine t›klayarak uygulamalara bir göz at›n. Mutlaka sizin de ilginiz çekecek ve e¤lenceli bulaca¤›n›z bir uygulama olacakt›r. Bundan sonraki say›larda da sizlerin karfl›s›na en yeni uygulamalarla ç›kmaya devam edece¤iz. BitlBee 1.2.2 TrueCrypt amigadepacker 0.04 eSpeak 1.38 BitlBee IRC sunucusu emüle ederek, herhangi bir ORC istemcisi ile MSN, ICQ, Jabber, Yahoo!, AIM a¤lar›na ba¤lanman›z› sa¤l›yor. Sana bir irc kanal›na listenizdeki tüm arkadafllar›n›z›n eklenmesi ile grup sohbetleri ve özel sohbetler yapman›za olanak sa¤lan›yor. http://freshmeat.net/projects/bitlbee/ An›nda disk flifreleme arac›d›r. TruerCrypt ile bir disk bölümünü flifreleyebilir ya da bir dosya ile sanal flifreli disk oluflturabilir ve bunu gerçek bir disk gibi sisteminize ba¤layabilirsiniz. Yaz›l›m›n MacOS X ve Windows sürümleri var. http://freshmeat.net/projects/truecrypt/ Amiga ortam›nda oluflturdu¤unuz arfliv dosyalar›n›z› hala sakl›yor musunuz? ‹flte bu dosyalara ulaflmak için bir araç. Amigadepacker, AmigaOS ortam›nda kullan›lan PowerPacker, XPK SQSH, MMCMP, StoneCracker 4.04 formatlar›n› ve PowerPacker ile flifrelenmifl dosyalar› destekliyor. http://freshmeat.net/projects/amigadepacker/ eSpeak, metinden konuflma üreten bir araç. Herhangi bir metin dosyas›n›, seçece¤iniz bir dile uygun olarak okuyan araç, komut sat›r› kullan›m›na ve di¤er sistemlere alternatif olarak kullan›ma uygun. Türkçe deste¤i kabul edilebilir düzeyde. http://freshmeat.net/projects/espeak/ 52 IBM ÖZGÜR YAZILIM IBM ÖZGÜR YAZILIM 53 Florence Florence, GNOME için tasarlanm›fl, sanal bir klavyedir. Klavye kullanmakta zorluk çekip ancak iflaretleme arac› kullanabilenler için birebir. http://freshmeat.net/projects/florence/ Gammu Cep telefonu ve modemi yönetmeye yarayan Gammu birçok markay› destekliyor. Telefonunuzun melodi, telefon rehberi, SMS, logo, WAP, tarih/zaman, alarm, aramalar ve daha birçok özelli¤ini yönetebilir, yedeklerini alabilirsiniz. E¤er bunun için bir arayüz iyi olurdu diyorsan›z Wammu'yu (http://freshmeat.net/ projects/wammu/) deneyin. http://freshmeat.net/projects/gammu/ Fotoxx 5.1 Eclim 1.4.1 Vim editörüne Eclipse özelliklerini tafl›may› sa¤layan bir eclipse ve vim eklentileri bütünü. Eclim, Eclipse özellikleri bir sunucu arayüzünden sunuyor ve vim'in baz› eklentiler sayesinde bu arayüz üzerinden Eclipse ile iletiflime geçmesini sa¤l›yor. Vazgeçemedi¤inizi editörünüzde, Eclipse özelliklerine ulaflabilmek için mutlaka deneyin. http://freshmeat.net/projects/eclim/ FET 5.6.3 FET (özgür zaman çizelgesi arac›) zaman çizelgelerini otomatik olarak oluflturur. Pahal› yaz›l›mlara alternatif olma iddias›ndaki yaz›l›m Türkçe de destekliyor. Fotoxx dijital foto¤raflar› gelifltirmeyi sa¤l›yor. Parlak ve karanl›k foto¤raflar› birlefltirerek, karanl›k ve parlak alanlardaki detaylar› gelifltirmek, panorama oluflturmak, k›z›m›z› göz temizlemek, keskinlefltirmek, boyutland›rmak baflar›yla yapt›¤› ifller aras›nda. http://freshmeat.net/projects/fotoxx/ bbJewel 1.0 bbJewel seçece¤iniz MP3 dosyalar› için PDF format›nda cd kapa¤› oluflturur. Bunu yaparken dosyalardan ald›¤› bilgileri ve bulabilirse kapak resimlerini kullan›yor. http://freshmeat.net/projects/ bbjewel/ Mosait 0.4 Mosait bir resim veritaban› ile mosaik resim oluflturmay› sa¤layan bir yaz›l›m. http://freshmeat.net/projects/mosait/ DeVeDe 3.11 DeVeDe Python, MPlayer, Mencoder, DVDAuthor, VCDImager, mkisofs kullanarak hemen hemen tüm videolar›n›zdan kolayca DVD yapman›z› sa¤l›yor. http://freshmeat.net/projects/devede/ 54 IBM ÖZGÜR YAZILIM http://freshmeat.net/projects/fet/ IBM ÖZGÜR YAZILIM 55 Daha çok de¤il, daha ak›ll› çal›flma Kabuk k›sayollar›, daha az ifl yap›p zamandan tasarruf etmenizi sa¤lar Düzey: Orta Martin Streicher ([email protected]), fief Editör, Linux Magazine UNIX® kabu¤unun sa¤lad›¤› birçok k›sayoldan nas›l yararlanaca¤›n›z› ö¤renin. Birkaç al›flt›rmayla, daha çok de¤il, daha ak›ll› çal›flacaks›n›z. Beceri gerektiren her iflin kendi s›rlar› vard›r -- bunlar, en karmafl›k görevi bile kolaylaflt›ran küçük incelikler, teknikler ve araçlard›r. Örne¤in, komflum usta bir marangoz. Ç›plak gözle aç›lar› büyük bir do¤rulukla ölçüp aktarabiliyor, köfleleri kesintisiz olarak birlefltirebiliyor ve iflçili¤i yerel gazetelerde be¤eni toplad›. Ancak, daha da önemlisi (en az›ndan - ifli bilmeyen ve her an bafl›na bir kaza gelebilecek bir kifli olarak - benim için) komflumun çal›flmas›ndaki rahatl›k. ‹flinde geçirdi¤i 20 y›ldan sonra, ustalaflmad›¤› hiçbir k›sayol yok. K›sayollar buradan biraz zaman, fluradan biraz iflçilik kaç inceli¤i bilerek ve birkaç arac› kullanarak büyük miktarda zaman ve çabadan tasarruf edilebilir. UNIX Dilinde Konuflma dizisinin ilk yaz›s›nda UNIX komut sat›r›n›n gücünü tan›tm›flt›k. Bu makalede, kabuk komut istemindeki ustal›¤›n›z› art›racak baz› ifle yarar kabuk k›sayollar› gösterilecektir. Parmaklar›n›z› yormay›n, biraz dinlendirin Bölüm 1'de gösterildi¤i gibi UNIX komut sat›r›n›n gücü benzersizdir. Birkaç tuflla ve biraz sözdizimsel birlefltirici (glue) ile (dikey çubuklar› (|), tee ve yeniden yönlendirme dahil), her bir kabuk komut isteminde kendi do¤açlama veri dönüfltürmelerinizi oluflturabilirsiniz. Örne¤in, afla¤›daki komut, ana dizininizdeki, Ayl›k Rapor sözcüklerini içeren tüm metin belgelerini bulur: $ find /home/joe -type f -name '*.txt' -print | xargs grep -l "Aylık Rapor" tasarrufu yap›lmas›n› sa¤lar. Kesim, çivilerin çak›lmas› ve çerçevenin oluflturulmas› gibi tekrarlanan görevlerde, bu küçük tasarruflar gerçekten de fark yarat›r. Programc›lar›n, sistem yöneticilerinin ve UNIX® ile profesyonel olarak u¤raflan di¤er bilgisayar çal›flanlar›n›n kendi özel araçlar› vard›r: • CPU'lar • RAM • ‹flletim sistemleri • Uygulamalar • Kabuk Deneyimli bir marangoz gibi bir- 56 IBM ÖZGÜR YAZILIM Komut, .txt sonekli tüm düzenli dosyalar› bulmak için (-type f) tüm ana dizininizde (find /home/joe) arama yapar ve daha sonra, Ayl›k Rapor dizesini aramak için grep komutunu çal›flt›r›r. -l seçene¤i, bir eflleflme bulunursa dosyan›n ad›n› yazd›r›r. Bu nedenle, komutun ç›k›fl› eflleflen dosyalar›n bir listesidir. Yukar›daki komut oldukça yararl›d›r; bununla birlikte, komutu hat›rlamak ve düzenli kullan›yorsan›z, yeniden yazmak güçtür. Dahas›, e-posta, dosyalar, araçlar (düzenleyiciler, derleyiciler, izleme prog- IBM ÖZGÜR YAZILIM 57 ramlar› gibi) ve uzak sistemler için birincil arabiriminiz komut sat›r› oldu¤unda, komut sat›r›nda tasarruf edebilece¤iniz her an ve her çaba, yapmakta oldu¤unuz görevde daha iyi bir flekilde harcanabilir. Sonuçta, bir saniyenin bin küçük parças› da toplamda fark yarat›r. Yinelenen görevleri azaltmak için UNIX kabu¤u çeflitli yard›mc› k›sayollar sa¤lar: • ‹flaretler • Genel arama karakterleri • Komut geçmifli • Ortam de¤iflkenleri • Di¤er adlar • Bafllang›ç dosyalar› Örne¤in, ana dizininizi ~ (tilde) iflaretiyle belirtebilirsiniz. Liste 1 içinde gösterilen flekilde $HOME ortam de¤iflkenini kullanarak ana dizininize de baflvurabilirsiniz. Liste 1 UNIX KABU⁄U KISAYOLLARI $ whoami strike $ echo ~ /Users/strike $ echo $HOME /Users/strike Kabuk iflaretleri Birçok komut sat›r› ba¤›ms›z de¤iflkeni o kadar s›k kullan›l›r ki, kabuklar k›saltma olarak birtak›m iflaretler (sigils) ya da simgeler sa¤lar. Ba¤›ms›z de¤iflken yerine iflareti girmeniz yeterlidir. Yukar›da belirtildi¤i gibi ~, ana dizinizi belirtir. Benzer bir k›sayol olan ~username, kullan›c› ad›n›z›n ana dizinini belirtir. Örne¤in, ~joe, joe'nun ana dizinini belirtir. Dolay›s›yla, joe'nun doc dizininden kendi info dizininize bir dosya kopyalamak için afla¤›daki komutu yazabilirsiniz: $ cp ~joe/doc/report.txt ~/info Joe'nun ana dizinin /guests dizininde ve sizin ana dizininizin /staff/bobr dizininde oldu¤unu düflünürsek, ~joe, /guests/joe ile de¤ifltirilir ve ~ karakteri, /staff/bobr olarak sonuçta cp /guests/joe/doc/report.txt /staff/bobr/info komutunu oluflturur. (Komut sat›r›n›n nas›l önizlenece¤ine iliflkin bilgileri görüntülemek için kenar çubu¤unda "Çal›flman›z›n sa¤lamas›n› yapma" konusuna bak›n.) sayol olan .. (iki nokta) iflaretidir. .. ve geçerli çal›flma dizinine iliflkin iflaret olan . iflaretiyle, dosya sistemindeki dosyalara ve dizinleri geçerli çal›flma dizininize göre belirtebilirsiniz. Örne¤in, geçerli çal›flma dizininiz ~/jane/projects/lambda diziniyse, ../.. k›sayolu iki üst dizin ya da ~/jane dizinini belirtir. ~/jane dizinini içeren dizine baflvuruda bulunmak için ../../../ ("üç dizin yukar›") ya da ~jane/../ yolunu kullanabilirsiniz. ‹kinci yol, ~jane dizininden bafllanaca¤›n› ve bir dizin yukar› ç›k›laca¤›n› belirtir. Geçerli dizininize bir dosya kopyalamak için dosyan›n ad›n› belirtmenize gerek yoktur; dosyay› yaln›zca . ("nokta") ile belirtebilirsiniz: $ cp -pr /path/to/lots/of/stuff . Önceki komut özyinelemeli olarak /path/to/lots/of/stuff dizinini geçerli dizininize kopyalarken özgün tarih ve saat damgalar›n› da korur. .. ve . karakterlerinin belirtti¤i yol adlar›na göreli yol adlar› denir. Bir / (sa¤a e¤ik çizgi) ya da bir ~ (tilde) karakteriyle baflla- Çal›flman›z›n sa¤lamas›n› yapma Komut sat›r› iflaretlerinin aç›l›mlar›n› görmek istiyorsan›z echo komutunu kullan›n: $ echo ~joe/doc/report.txt ~/info /guests/joe/doc/report.txt /staff/bobr/info lunmak için kullan›lan baflka bir k›sayol biçimidir. Örne¤in, bir dizininizin içinde 100 dosyan›n bulundu¤unu varsay›n. Bunlardan baz›lar› .c sonekiyle biten C kaynak kodu dosyalar›, di¤erleri, .o sonekiyle biten nesne dosyalar› ve bir k›sm› da metin belgeleri (.txt), komut dosyalar› (.sh) ve yürütülebilir dosyalard›r (yürütme izni olan dosyalar). Yaln›zca C dosyalar›n› listelemek için afla¤›dakini yaz›n: echo $HOME /Users/strike Son komut olan !! (iki ünlem iflareti) biraz garip görünebilir, ancak bu, önceki komutu harfi harfine yineleyen bir komut geçmifli iflaretidir. (Birçok kabuk yukar› ok tuflunu kullanarak ya da Control+P tufllar›na basarak önceki komutlara göz atman›za olanak tan›r.) Her bir kabuk k›sayolu türüne daha ayr›nt›l› bir flekilde bakal›m. Bu makale, genellikle /bin/zsh dizinine kurulan Z kabu¤una dayan›r (zsh -- bkz. Kaynaklar). (Sisteminizde Z kabu¤u yoksa, sistem yöneticinizden kabu¤u kurmas›n› isteyin.) Z kabu¤una özgü birkaç özellik vard›r; bunlar d›fl›nda, burada gösterilen tüm örnekler tüm modern UNIX kabuklar›nda çal›fl›r. 58 IBM ÖZGÜR YAZILIM $ ls architecture.txt services.txt * genel arama karakteri (genellikle asterisk yerine y›ld›z denir), herhangi bir karakter dizisini efllefltir anlam›na gelir. .c dosya ad› uzant›s›, yaln›zca bir nokta iflaretini izleyen küçük c harfiyle eflleflen tam bir kal›pt›r. Bu nedenle, *.c, bir nokta ve küçük c harfi ile biten herhangi bir karakter dizisi anlam›na gelir. *.c belirtildi¤inde, kabuk geçerli dizine (önünde bir mutlak ya da göreli yol ad› belirtmezseniz) bakar, kal›pla eflleflen her dosya ad›n› bulur, *.c'yi ad listesine geniflletir ve listeyi ls komutunun ba¤›ms›z de¤iflkenleri olarak geçirir. Liste 2'de komut sat›r› karfl›dan yükleme yard›mc› program› olan wget kaynak koduna dayal› *.c kullan›m› gösterilmektedir. $ echo */**/Makefile doc/Makefile po/Makefile src/Makefile util/Makefile windows/Makefile B‹R D‹Z‹NDEK‹ C KAYNAK KODU DOSYALARINI BULMAK ‹Ç‹N GENEL ARAMA KARAKTERLER‹N‹ KULLANIN Services.pdf Schema.pdf $ echo *.txt architecture.txt services.txt $ ls *.c alloca.c ansi2knr.c cmpt.c echo komutu, komut sat›r›na yazd›klar›n›z› gösterir. Ancak, kabuk herhangi bir program› ça¤›rmadan önce (ço¤u) komut sat›r› ba¤›ms›z de¤iflkenini açt›¤›ndan, tüm ikame karakterlerinden de sonuçlar›n› gösterir. (Kabuk ortam› de¤iflkeni $SHELL, çal›flmakta olan kabu¤un ad›n› içerir.) Baflka bir de¤erli iflaret de, geçerli dizinin hemen üstündeki dizin için k›- yan yol adlar› mutlak yol adlar›d›r; bunun nedeni, dosyaya dosya sisteminin ya da bir dizin hiyerarflisinin en üstünden baflvuruda bulunman›zd›r. Genel arama karakterleri ve kal›plar ‹flaretlerle yazma süresini azalt›r ve belirli bir dizini h›zl› ve kesin olarak belirtebilirsiniz. Genel arama karakterleri, bir dizinin içeri¤ine baflvuruda bu- $ echo **/Makefile Makefile doc/Makefile po/Makefile src/Makefile util/Makefile windows/Makefile Geçerli çal›flma dizinini içermek istemiyorsan›z, afla¤›daki örnekte gösterilen flekilde yaln›zca */**/ yaz›n: Liste 2 /bin/zsh Z kabu¤unda birkaç tane benzersiz ve harika glob iflleci vard›r. Göze çarpan birkaç tanesi flunlard›r: **/ glob iflleci, afla¤›daki tüm dizinleri açar ve geçerli çal›flma dizinini içerir. **/ ifllecini, yerleflik find komutu olarak düflünebilirsiniz. Yeniden wget kaynak koduna bakarsak, komutla tüm Makefile'lar› bulabilirsiniz: $ ls *.c $ !! $ echo $SHELL Z kabu¤u glob'lar› connect.c convert.c Baflka bir yararl› Z kabu¤u glob iflleci, dosya tiplerini efllefltirir. Önceki gibi bir kal›p sa¤lay›n, ancak düzenli dosyalar için (.), dizinler için (/), yürütülebilir dosyalar için (*) ya da simgesel ba¤lant›lar için (@) karakterini ekleyin: $ ls -d -F *(/) ChangeLog-branches/ doc/ po/ src/ util/ windows/ Z kabu¤u, (/) ifadesi için de bir k›sayol sa¤lar. Sonuçlar› dizinlerle s›n›rland›rmak için kal›b› bir sa¤a e¤ik çizgiyle sona erdirin: $ ls -d */ ChangeLog-branches/ doc/ po/ src/ util/ windows/ • * (y›ld›z) glob'u, herhangi bir karakter ya da bofl bir s›ray› da içeren karakter s›ras›n› efllefltirir. • ? (soru iflareti) glob'u herhangi bir tek karakteri efllefltirir. • [ ] (köfleli parantez) glob'u önü ve arkas› kapat›lm›fl karakterleri efllefltirir. Parantez içinde - (tire) iflaretini kullanarak bir karakter aral›¤›n› belirtebilirsiniz; örne¤in, [a-z] ya da tüm küçük harfler. (Z kabu¤u benzersiz birçok glob ifllecine sahiptir. Ek bilgi için kenar çubu¤unda Z kabu¤u glob'lar›na bak›n.) Gerekti¤inde glob iflleçlerini yineleyebilirsiniz. Liste 3 içinde ek örnekler sa¤lanm›flt›r. ... Liste 3 (Arka Sayfada) Bir genel arama karakterini eflleflen dosya adlar› listesine geniflletme ifllemine globbing denir ve UNIX kabuklar›n›n, arad›¤›n›z fleyi ifade etmenize yard›mc› olacak çeflitli globbing iflleçleri (sözde glob'lar) vard›r: Liste 3 içinde Komut 1, uzun bir listede . (nokta) ile bafllayan girifllerin de içinde bulundu¤u dizindeki tüm giriflleri gösterir. (-a seçene¤i, sözde nokta dosyalar›n› gösterir; -1 seçene¤i, bir sütundaki her fleyi listeler ve -F seçene¤i, dizinleri / (sa¤a e¤ik çizgi) ile ve yürütülebilir dosyalar› * (y›ld›z) iflareti ile vurgular.) Komut 2, ad› bir nokta ile bafllayan (.*) her bir girifli bulur. Üçüncü komut yaln›zca soneki bir harften oluflan ö¤eleri bulur. Dördüncü komut yaln›zca dört karakterin ard›ndan bir nokta ve bir karakterin geldi¤i ö¤eleri bulur. Son olarak Komut 5, küçük a, küçük b ya da küçük c ile bafllayan ve ard›ndan s›ras›yla en az bir harf, herhangi bir karakter, bir nokta ve daha sonra herhangi bir sonek gelen ö¤eleri bulur. Görebilece¤iniz gibi gerekti¤inde glob iflleçlerini yineleyebilirsiniz. Dolay›s›yla, ls *.z komutu hangi sonuçlar› getirirdi (böyle dosyalar›n olmad›¤›n› düflünürsek)? Yararl› bir hata iletisi görüntülenirdi: $ ls *.z zsh: no matches found: *.z Biraz komut geçmifli fiimdiye kadar yollar› nas›l belirtece¤inizi ve dosyalar› nas›l seçece¤inizi IBM ÖZGÜR YAZILIM 59 Liste 3 GENEL ARAMA KARAKTER‹ ÖRNEKLER‹ 2 $ ls -a -F .* ./lib 3 $ ls -1 *.? alloca.c ansi2knr.c cmpt.c cmpt.o config.h connect.c connect.h connect.o convert.c convert.h convert.o ... 4 $ ls -1 ????.? cmpt.c cmpt.o 5 $ ls [a-c]?*.* alloca.c ansi2knr.c cmpt.c cmpt.o config.h config.h.in connect.c connect.h connect.o convert.c convert.h convert.o cookies.c cookies.h cookies.o 60 IBM ÖZGÜR YAZILIM $ HISTSIZE=500 $ SAVEHIST=500 Burada komutlar, hem kabu¤un hem de devam eden geçmifl dosyas›n›n son 500 komutu içermesi gerekti¤ini belirtir. (Varsay›lan de¤er olarak Z kabu¤u yaln›zca son 30 komutu kaydeder.) Komut geçmifllerini almaya ve devam ettirmeye iliflkin bilgiler için kabu¤unuzun belgelerine bak›n. Kabukla bir süre çal›flt›ktan sonra yaln›zca history yazarak komut geçmiflinizi görüntüleyebilirsiniz: $ history ... 781 /bin/ls 782 /bin/ls 783 /bin/ls 784 /bin/ls 785 /bin/ls -d -F -d -d -d */ *(/) -F *(/) -F */ */ Çal›flt›rd›¤›n›z her bir komuta s›ral› bir say›sal tan›t›c› atan›r. Bir komutun tamam›na ya da her bir komutun parçalar›na baflvurmak için bu tan›t›c›y› (örne¤in, 782) kullan›rs›n›z. Bir komutun ayn›s›n› yeniden çal›flt›rmak için ! (ünlem iflareti) karakterini ve ard›ndan komutun numaras›n› yaz›n: $ !785 ChangeLog-branches/ doc/ po/ src/ util/ windows/ Geçmiflte girilmifl bir komuttaki belirli bir ba¤›ms›z de¤iflkeni istiyorsan›z, komuta bir ! (ünlem iflareti) ile baflvurun ve :N de¤erini sa¤lay›n; burada 0 komut ad›n›, 1 ilk ba¤›ms›z de¤iflkeni, vb. belirtir. Örne¤in, geçmifl günlü¤ündeki 782 numaral› komutun ikinci ba- ¤›ms›z de¤iflkenini ay›klamak için Liste 4 içinde gösterilen kodu yaz›n. Liste 4 782 NUMARALI KOMUTTAN ‹K‹NC‹ BA⁄IMSIZ DE⁄‹fiKEN‹N AYIKLANMASI $ echo !782:2 echo *(/) ChangeLog-branches doc po src util windows $ ls AUTHORS COPYING INSTALL MACHINES AUTHORS COPYING INSTALL MACHINES history -2 komutu, önceki iki komutu görüntüler. K›sayol olarak bir komutun ilk ba¤›ms›z de¤iflkenine (komut ad›n›n kendisine de¤il) ^ (flapka) ve geçmiflte girilen bir komutunun son ba¤›ms›z de¤iflkenine $ (dolar iflareti) karakteri ile baflvurabilirsiniz. Bir ba¤›ms›z de¤iflken aral›¤›na, Liste 5 içinde gösterilen bir aral›k gösterimini kullanarak da baflvurabilirsiniz. $ history -2 788 ls AUTHORS COPYING INSTALL MACHINES 789 echo INSTALL $ echo !788^ echo AUTHORS AUTHORS $ echo !788$ $ echo AUTHORS COPYING INSTALL MACHINES AUTHORS COPYING INSTALL MACHINES $ echo !!:1-2 echo AUTHORS COPYING AUTHORS COPYING Geçmiflteki komutlar› geri ça¤›rmak için baflka do¤rudan yöntemler de vard›r. Bunlardan biri komutu aramakt›r: $ ls I* echo MACHINES MACHINES Ortam de¤iflkenleri Komut sat›r›n› ak›c› bir flekilde kullanmak önemli bir UNIX becerisidir. UNIX dilini konuflma kabuk isteminde bitmez - say›s›z UNIX yard›mc› program›yla da iletiflim kurman›z gerekir. UNIX'te, ortam de¤iflkenleri kabu¤unuzun ayarlar›n› tutar ve komut sat›r›ndan bafllatt›¤›n›z her bir yard›mc› program›n tercihlerinizle bafllat›lmas›na olanak tan›r. Baz› ortam de¤iflkenleri (bunlara kabuk de¤iflkenleri denir), davran›fl›n› denetlemek için yaln›zca kabu¤unuz taraf›ndan kullan›l›r. Örne¤in, Z kabu¤u yukar›da gösterildi¤i gibi komut geçmifllerini yönetmek için $HISTSIZE ve $SAVEHIST de¤iflkenlerini kullan›r. Kabuk de¤iflkenlerini ayarlar gibi düflünebilirsiniz. Di¤er ortam de¤iflkenleri d›fla aktar›l›r ya da genel olarak kullan›labilir k›l›n›r ve komut sat›r›ndan bafllatt›¤›n›z her komutun ifllem alan›na (ortam) kopyalan›r. Örne¤in, $HOME, ana dizinini- Liste 5 ARALIK GÖSTER‹M‹ $ echo !!:3 echo INSTALL !?M yap›s›, bir büyük M harfi içeren en son geçmifl komut sat›r›n› arar. $ ls M* $ echo !?M ls INSTALL ORTAM DE⁄‹fiKENLER‹N‹N GÖRÜNTÜLENMES‹ $ printenv PATH=/Users/strike/bin:/Applications/xampp/xamppfiles/bin:/Users/strike/bin:/usr/bin:/ bin:/usr/sbin:/sbin HOME=/Users/strike SHELL=/bin/zsh USER=strike TERM=xterm-color LOGNAME=strike SHLVL=1 PWD=/Local/src/versions/wget/wget-1.9 OLDPWD=/Local/src/versions/wget/wget-1.9/src PERL5LIB=/Applications/xampp/xamppfiles/lib/perl5/site_perl/5.8.7:/Projects/IGSP/src CLICOLOR=true MANPATH=/Local/root/share/man:/usr/share/man:/opt/local/share/man INFOPATH=/opt/local/share/info LESS=-n Liste 6 1 $ ls -1 -a -F ./libs ChangeLog ChangeLog-branches/ Makefile Makefile.in alloca.c ansi2knr.c cmpt.c cmpt.o config.h config.h.in connect.c connect.h connect.o convert.c convert.h convert.o ... wget* gördünüz. Komut sat›r›nda kendinizi ifade edebilirsiniz. Ancak, tüm komut sat›rlar› k›sa ve güzel olsa bile, ayn› fleyi sürekli olarak yeniden yazmaktan yorulma olas›l›¤›n›z yine de vard›r. Özellikle, birçok seçene¤in bulundu¤u ya da de¤iflkenlerin s›ras›n›n belirli bir flekilde olmas› gereken uzun, karmafl›k komut sat›rlar› yazmaktan yorulabilirsiniz. Neyse ki ço¤u kabuk, önceki komutlara iliflkin bir geçmifl sa¤lar. Bir komutu yeniden çal›flt›rmak için yaln›zca geçmifl listesindeki giriflini bulun ve yeniden çal›flt›r›n. Kabu¤un di¤er k›s›mlar› gibi k›sayollar burada da h›zl› ve kolay baflvurular yapman›z› sa¤lar. Z kabu¤unda komut geçmiflini etkinlefltirmek için afla¤›dakileri yaz›n: zin konum bilgilerini saklayan özel bir ortam de¤iflkenidir. UNIX oturum açma s›ras›, $HOME de¤iflkenini (ve di¤er ortam de¤iflkenlerini) ayarlar ve daha sonra, kabu¤unuzu bafllat›r. Kabu¤unuz da tüm kabuk bafllatma dosyalar›n› bulmak için $HOME de¤iflkenini kullan›r. SSH ve FTP gibi bafllatt›¤›n›z di¤er uygulamalar, .netrc dosyan›z› (gizli, uzaktan eriflim parolalar›n› saklamak için kullan›l›r) bulmak için $HOME de¤iflkenine baflvurur. Baz› ortam de¤iflkenlerini -- $HOME, $PATH ve $SHELL gibi -her uygulama kullan›r. Di¤er ortam de¤iflkenleri bir uygulamaya özel olabilir. Geçerli tüm ortam de¤iflkenlerinizi görmek için Liste 6'da gösterilen flekilde printenv yaz›n. (Sistem yöneticinizin sisteminizi yap›land›rmas›na ba¤l› olarak burada gösterilenlerden çok daha fazla ya da çok daha az ortam de¤iflkeniniz olabilir.) Liste 6 Bu de¤iflkenlerin birço¤unu tan›yabilirsiniz; di¤erleri yeni olabilir. Kabuk IBM ÖZGÜR YAZILIM 61 Liste 8 Liste 9 B‹R ORTAM DE⁄‹fiKEN‹N‹N KALDIRILMASI düzeyi ($SHLVL), kaç kabuk derinde oldu¤unuzu gösterir. 1 bir oturum açma kabu¤unu; 2 oturum açma kabu¤unuzdan baflka bir kabuk bafllatt›¤›n›z› gösterir, vb. Her bir ard›fl›k, iç içe geçmifl kabu¤a iliflkin isteminizi de¤ifltirmek için $SHLVL de¤erini kullanabilirsiniz. $TERM, uçbirim (uçbirim öykünme program› olabilir) ayarlar›n›z› gösterir - bas›lan tufllar›n do¤ru yorumlanmas›n›n yan› s›ra metin ve renklerin do¤ru biçimde görüntülenmesini sa¤lama aç›s›ndan önemlidir. $PWD geçerli çal›flma dizininiz, $OLDPWD ise önceki çal›flma dizininizdir. ‹ki dizin aras›nda h›zl› bir flekilde ileri ve geri gitmek için her iki de¤iflkeni de Liste 7'de gösterildi¤i gibi kullanabilirsiniz. Liste 7 D‹Z‹NLER ARASINDA GEÇ‹fi YAPMA $ echo $PWD /Users/strike $ echo $OLDPWD /Local/src/versions/wget/wget-1.9 $ echo $PWD /Local/src/versions/wget/wget-1.9 $ echo $OLDPWD /Users/strike $ MYVARIABLE=$HOME/projectX $ export TMPDIR=/tmp/projectX Birinci komut $MYVARIABLE adl› bir kabuk de¤iflkeni ayarlar. (Önündeki dolar iflareti kabuk komut istemidir. 62 IBM ÖZGÜR YAZILIM Di¤er adlar ve bafllang›ç dosyalar› Önceki bölümlere bak›p komut sat›r›na ne kadar çok girifl yapman›z gerekti¤i konusunda endiflelenmifl olabilirsiniz. Evet, ö¤renilecek çok fley var -- bunun nedeni, kabuk ortam›n›n çok zengin olmas›d›r. Ancak yine de büyük gücün büyük bir üretkenlik sa¤layaca¤›n› unutmay›n. UNIX kabuklar›, bas›lan tufl say›s›n› azaltmak için di¤er adlar ve yapt›¤›n›z tüm ayarlar› saklamak için bafllatma dosyalar› sa¤lar. Di¤er adlar, oluflturdu¤unuz k›sayollard›r. Bafllatma dosyalar›, kabu¤unuz her bafllat›ld›¤›nda okunur ve kabuk de¤iflkenleri (seçenekler), ortam de¤iflkenleri ve di¤er adlar gibi tüm kabuk ayarlar›n›z› saklamak (ve paylaflmak) için en uygun yerdir. Di¤er ad, daha uzun bir komut yerine kulland›¤›n›z k›sa bir karakter dizisidir. Di¤er ad›, bir komut sat›r›n›n takma ad› olarak düflünebilirsiniz. Afla¤›dakini yazmak yerine: $ set HOME=/Users/strike .... Her bir di¤er ad, tek t›rnak iflaretleri içine yerlefltirilmelidir. Di¤er ad›n içinde t›rnak iflaretlerinin bulunmas› gerekiyorsa, çift t›rnak iflaretlerini kullan›n. Z kabu¤u di¤er adlar›, de¤iflkenler, dikey çubuklar, yeniden yönlendirme, di¤er adlar ve di¤er kabuk ifllenenleri gibi birçok temel kabuk ö¤esini içerebilir (bkz. Liste 9). Liste 9 ll di¤er ad›, /bin/ls yoluna baflvurur -- mutlak yollar›n yerine hiçbir zaman di¤er adlar kullan›lmaz. ll yazd›¤›n›zda, bunun yerini di¤er ad› al›r ve kalan komut sat›r› ba¤›ms›z de¤iflkenleri sona eklenir. Bu nedenle, ll -d 2002*, gerçekte /bin/ls -l -d 2002* komutudur. lt di¤er ad›, ll di¤er ad›n› belirtir ve oluflturma tarihine göre s›ralama yapmak için -t iflaretini ekler. lt di¤er ad›n›n aç›l›m› /bin/ls -l -t d 2002* komutudur. m di¤er ad› bir dikey çubuk içerir. snap di¤er ad›, bir komutun ç›k›fl›n› bir dosyaya eklemek için yeniden yönlendirmeyi kullan›r. Kabu¤unuzdaki ayarl› tüm di¤er adlar› görmek için Liste 10'da gösterildi¤i gibi yaln›zca alias yazman›z (ba¤›ms›z de¤iflkenler olmadan) yeterlidir. Liste 10 Bir di¤er ad› kald›rmak istiyorsan›z, unalias yaz›n ve kald›rmak istedi¤iniz di¤er ad› belirtin. Liste 11'de gösterilen flekilde bir defada birden çok di¤er ad› da listeleyebilirsiniz. $ find /home/joe -type f -name '*.txt' -print | xargs grep -l "Aylık Rapor" komut istemine, oluflturdu¤unuz bir takma ad› yazabilirsiniz: Liste 11. Son olarak, ortam›n›z› oluflturmak için bu kadar çal›flt›ktan sonra ayarla$ findreports r›n›z› sonraki oturumlar›n›z için korufindreports di¤er ad›n› aç›l›m›yla mak isteyebilirsiniz. Gerçekten de, kade¤ifltirerek a¤›r ifli kabuk yapar. finbu¤unuzun tüm oturumlar ve örnekdreports di¤er ad›n› oluflturmak için lerde tutarl› olmas›n› isteyebilirsiniz -afla¤›daki komutu yaz›n: örne¤in, ifl isalias findreports='find $HOME -type f -name "*.txt" -print | W tasyonunuzxargs grep -l "Aylık Rapor" da birden çok uçbirim aç›ld›¤›nda. Kabuklar, kabu¤unuz bafllat›ld›¤›nda ortam›n›z› (yeniden) bafllatan bafllatma dosyalar›n› içerir. Bafllatma dosyalar› basit -- yaln›zca bir de¤iflken ve de¤er listesi -- ya da oldukça karmafl›k olabilir -- özellefltirme mant›¤›n› ve ayr›nt›l› ifllevleri içerebilir. Baz› kullan›c›lar›n birçok bafllatma dosyas› seti olabilir. Her bir proje için bir set ayarlanabilir. Z kabu¤u, .zshrc ve .zprofile bafllatma dosyalar›n› kullan›r. Bu dosyalar›n ikisi de ana dizininizde bulunur. (Di¤er kabuklar›n benzer adlara sahip benzer dosyalar› vard›r ve özel bilgiler için kabuk belgelerinizi okuyabilirsiniz. Baz› kabuklar, kapatma dosyalar› ya da kabuktan ç›karken çal›flt›r›lacak dosyalar da sa¤layabilir.) .zshrc dosyas›, yeni bir kabuk bafllatt›¤›n›zda kaynak olarak kullan›l›r ya da okunur ve ifllenir; .zprofile dosyas›, yaln›zca bir oturum açma kabu¤u bafllatt›¤›n›zda kaynak olarak kullan›l›r. Kabu¤unuzu yap›land›rd›ktan sonra ayarlar›n›z›n bir anl›k görünümünü al›n ve bunlar›, kabuk bafllang›ç dosyalar›ndan birinde saklay›n: $ set >> $HOME/.zshrc $ alias >> $HOME/.zshrc Not: .zshrc sonuç dosyas›n› düzenlemek ve oturuma özgü de¤iflkenleri kald›rmak isteyebilirsiniz. Daha fazla güç Vay! UNIX Dilinde Konuflma'n›n bu makalesinde çok fazla konu üzerinde durduk, ancak bu gayretiniz size büyük ödüller kazand›racak. Daha çok de¤il, daha ak›ll›ca çal›fl›p gerçekten önemli fleyleri yapmak için -- örne¤in PS2 oynamak gibi -- fazladan zaman kazanabilirsiniz. Bir sonraki UNIX Dilinde Konuflma makalesinde daha geleneksel konulara de¤inilecek. Bu gözde taray›c›lar› b›rak›p komut sat›r›ndan nas›l ba¤lant› kurulaca¤›n›, yükleme yap›laca¤›n›, aktar›m› ve iletiflim kurmay› tam olarak inceleyece¤im. Bizi izlemeye devam edin. Kaynaklar Bilgi Edinme • UNIX Dilinde Konuflma: Bu dizinin di¤er bölümlerini de inceleyin. • zsh posta listesi arflivi: Z kabu¤u incelikleri ve ipuçlar›yla ilgili daha faz- drwxrwxr-x drwxrwxr-x drwxrwxr-x drwxrwxr-x ... 2 2 2 2 www-data www-data www-data www-data $ alias lt='ll -t' $ lt -d 2002* drwxrwxr-x 2 www-data drwxrwxr-x 2 www-data drwxrwxr-x 2 www-data drwxrwxr-x 2 www-data www-data www-data www-data www-data www-data www-data www-data www-data 4096 4096 4096 4096 4096 4096 4096 4096 Apr Apr Jan Jan Jan Jan Apr Apr 19 15 22 16 16 22 15 19 2002 2002 2002 2002 2002 2002 2002 2002 2002-02 2002-03 2002-04 2002-05 2002-05 2002-04 2002-03 2002-02 $ alias m='pinky | grep mstreicher' $ m mstreicher Martin Streicher ... $ alias snap='pinky >> ~/.pinky' $ snap $ snap $ cat ~/.pinky Login Name mstreicher Martin Streicher Login Name mstreicher Martin Streicher TTY pts/0 TTY pts/0 Idle When Where Jun 18 16:40 cpe-071-065-224-025.nc.res.rr.com Idle When Where Jun 18 16:40 cpe-071-065-224-025.nc.res.rr.com KABU⁄UNUZDAK‹ TÜM D‹⁄ER ADLARIN GÖRÜNTÜLENMES‹ $ alias alias findreports='find $HOME -type f -name "*.txt" -print | xargs grep -l "Monthly Report"' alias ll='/bin/ls -l' alias lt='ll -t' alias m='pinky | grep mstreicher' alias snap='pinky >> ~/.pinky' ... B‹RDEN ÇOK D‹⁄ER ADIN EfiZAMANLI OLARAK GÖRÜNTÜLENMES‹ $ unalias m snap $ alias alias findreports='find $HOME -type f -name "*.txt" -print | xargs grep -l "Aylık Rapor"' alias ll='/bin/ls -l' alias lt='ll -t' la bilgi için bu listeyi okuyun. • AIX ve UNIX: Daha ayr›nt›l› bilgi ister misiniz? developerWorks AIX ve UNIX alan›, bilgi içerikli yüzlerce makaleyi ve girifl düzeyindeki, orta ve ileri düzeydeki ö¤reticiyi içerir. • developerWorks teknik etkinlikler ve web yay›nlar›: Güncel developerWorks teknik etkinliklerini ve web yay›nlar›n› izleyin. Liste 11 Yukar›daki listede yer alan di¤er ortam de¤iflkenleri uygulamaya özgüdür. Her biri, iliflkilendirildikleri uygulama bafllat›ld›¤›nda nas›l çal›flaca¤›n› denetleyen tercihleri içerir. $PERL5LIB, Perl'ün özel kitapl›klar› bulmas› için kullan›lan bir arama yoludur. ls komutu, $CLICOLOR de¤iflkenini dosya tiplerini renkli (dizinleri mavi, yürütülebilir dosyalar› yeflil, vb.) görüntülemek için kullan›r. Özel uygulama ortam de¤iflkenleri, genellikle program›n "man" sayfalar›nda bulunur. Bir ortam de¤iflkeninin ayarlanmas›, kabuk de¤iflkeninin ayarlanmas›yla ayn›d›r. Ancak, de¤iflkeni genel olarak kullan›labilir k›lmak için d›fla aktarman›z gerekir: Liste 8 $ unset MYVARIABLE TMPDIR $ alias ll='/bin/ls -l' $ ll -d 2002* Liste 10 $ cd $OLDPWD Bir de¤iflken ayarlad›¤›n›zda, $ iflaretini sa¤lamazs›n›z. Ancak, $MYVARIABLE de¤iflkeninde oldu¤u gibi, de¤iflkeni kullan›rken dolar iflaretini de kullanman›z gerekir.) $MYVARIABLE, d›fla aktar›lmad›¤› için yaln›zca kabukta görünür. Tüm kabuk de¤iflkenlerinin bir listesini görmek için set yaz›n. set komutunun ç›k›fl›, ortam de¤iflkenlerini içerir. Bunun nedeni, bu de¤iflkenlerin kabukta da kullan›labilir olmas›d›r. ‹kinci komutta, $TMPDIR ayarlan›r, d›fla aktar›l›r ve kabuktan bafllat›lan tüm uygulamalar için kullan›labilir k›l›n›r. $TMPDIR de¤iflkenini kullanan bir uygulama, GNU Compiler Collection (GCC) derleyicisidir. GCC, $TMPDIR de¤iflkeninde saklanan dizin de¤erinde geçici dosyalar›n› oluflturur. Bir ortam de¤iflkenini kald›rmak istiyorsan›z, Liste 8'de gösterildi¤i gibi unset ve de¤iflkenlerin ad›n› yaz›n. $ set HOME=/Users/strike MYVARIABLE=/Users/strike/projectX TMPDIR=/tmp/projectX ... Z KABU⁄UNUN TEMEL Ö⁄ELER‹ Yazar hakk›nda Martin Streicher, Linux Magazine adl› dergide fief Editör'dür. Purdue University'den bilgisayar bilimi konusunda master derecesi alm›fl ve 1982 y›l›ndan bu yana UNIX benzeri sistemlerde Pascal, C, Perl, Java ve (en son) Ruby programlama dillerinde programlama yapmaktad›r. Martin'e [email protected] adresinden eriflebilirsiniz. IBM ÖZGÜR YAZILIM 63 Acil Servis Merhaba, Bu say›m›zda yine sizlerden gelen çeflitli problemlere özgür yaz›l›m dünyas›n›n bizlere sunmufl oldu¤u olanaklar çerçevesinde birlikte çözümler bulmaya çal›flaca¤›z. rasyonunun kolay olmas›, masaüstü arka plan›nda yer almas› ve çok az kaynak tüketmesi ile oldukça baflar›l› bir yaz›l›m. Örnek bir konfigürasyon dosyas› afla¤›da yer al›yor. 64 IBM ÖZGÜR YAZILIM web sayfas›nda da gerekti¤i kadar bileflen çal›flmas› ilkesinden harekete geçen NoScript yazarlar›, temel birçok bilefleni (Java, Javascript, Flash, Silverlight vs.) sayfalardan yasakl›yorlar. Dolay›s›yla, e¤er ziyaret etti¤iniz sayfada bir fonksiyon eksikli¤i hissetmedi¤iniz sürece bütün sayfalarda Javascript'in kapal› olmas›nda fayda var. Buna ek olarak, sayfada muhtemel bir baflka zafiyet varsa bu konuda da uyar›l›yorsunuz. ‹lla da (bu zafiyete ra¤men) sayfay› görüntülemek istedi¤inizde ise size izin veriliyor. ‹lk bafllarda biraz al›flmakta zorlansan›z da, NoScript oldukça faydal› bir eklenti ve uzun vadede bu tür zay›fl›klar›n artaca¤›n› düflünürsek sizi birçok sald›r›dan koruyabilir. Bilgisayar›mda o anda neler oldu¤unu takip etmeyi seviyorum. Bunun için daha önce çeflitli araçlar kulland›m, fakat hiçbiri yeteri kadar tatminkâr gelmedi. fiu ana kadar kulland›klar›m›n içinde en iyisi GKRellm'di. Bu konuda daha iyi bir yaz›l›m önerebilir misiniz? Bir müddettir bu ihtiyaç için Conky kullan›yorum. Konfigü- IBM ÖZGÜR YAZILIM 65 kutu-1 Son zamanlarda web sayfalar›ndan kaynaklanan sald›r›lar›n artt›¤› söyleniyor. Normal gündelik siteler bile birçok aç›dan riskli hale gelmifl. Bunlardan korunmak için ne yapabiliriz? Mesela Firefox'un en son versiyonunu kullanmak yeterli olur mu? Bir öneriniz var m›? Söz konusu endiflede gayet hakl›s›n›z. Çok masum görünen siteler bile art›k “crosside scripting” (ya da XSS) denen sald›r›lara ev sahipli¤i yapabiliyor. Zira zaman›nda çok basit, ancak kabul edilen Javascript, son birkaç y›l içinde baflta Ajax olmak üzere birçok platformda ne kadar güçlü bir dil oldu¤unu (ve dolay›s›yla ne kadar dikkatli kullan›lmas› gerekti¤ini) ispat etmifl durumda. Bu konuda bizim önerimiz her zaman için yine Firefox. Bu Firefox'un güvenlik yamalar›n› en h›zl› uygulayan taray›c› olmas›n›n yan› s›ra, NoScript eklentisini kullanabilir olman›zdan da kaynaklan›yor. Güvenli¤in en temel yaklafl›mlar›ndan biri bileflenlerin "Bilmeye ihtiyac› oldu¤u kadar›n› bilmeleri". Keza bir # Conky, a system monitor, based on torsmo alignment bottom_left background no border_width 1 cpu_avg_samples 2 default_color white default_outline_color white default_shade_color white draw_borders no draw_graph_borders yes draw_outline no draw_shades no font 6x10 gap_x 5 gap_y 60 minimum_size 5 5 net_avg_samples 2 no_buffers yes out_to_console no own_window yes own_window_class Conky own_window_type normal stippled_borders 0 update_interval 3.0 uppercase no use_spacer none -a -a -a -a -a -a -a -a -a -a -a XV_CONTRAST -v 64 XV_BRIGHTNESS -v -23 XV_CONTRAST -v 60 XV_SATURATION -v 128 XV_PIPE -v -1 XV_GAMMA0 -v 526344 XV_GAMMA1 -v 1052688 XV_GAMMA2 -v 2105376 XV_GAMMA3 -v 4210752 XV_GAMMA4 -v 8421504 XV_GAMMA5 -v 12632256 66 IBM ÖZGÜR YAZILIM Bir komut sat›r› ile internet'te bir sayfaya ulafl›p ulaflamad›¤›m› anlamak istiyorum. Komut sat›r› kullanmam laz›m, çünkü söz konusu bilgisayarda X kurulu de¤il. Bunu yapman›n birçok yolu var. ‹lk akla geleni, wget www.google.com Bir baflka yol ise echo -e "GET http://www.google.com HTTP/1.0nn" |nc www.google.com 80 Burada yap›lan, netcat'i bir taray›c› gibi kullanmak. Zira web taray›c›lar› aynen yukarda yaz›ld›¤› gibi iletiflim kurarlar. ‹kinci yöntem üzerine biraz daha çal›flarak, daha kompleks ifller yapt›rman›z, mesela sayfadan bir form doldurman›z, ya da bir arama sonucunu download etmeniz mümkün. IBM Venture Capital Group. Empowering technology innovators. IBM PartnerWorld. Empowering business innovators. IBM developerWorks. Empowering communities of IT professionals. BREAKTHROUGHS. BRAIN WAVES. CONNECT CREATE SWH14002-USEN-00 EXCITEMENT. BUILD DELIVER SUCCESS. IBM Academic Initiative. Empowering academic innovators. xvattr xvattr xvattr xvattr xvattr xvattr xvattr xvattr xvattr xvattr xvattr Linux sistemimde flimdiye kadar Mplayer ile film seyrediyordum. Fakat geçenlerde SMPlayer'› kurdum ve ilk çal›flt›rd›¤›m andan itibaren filmlerdeki görüntü sanki y›kanm›fl gibi, afl›r› derecede aç›k renkte ve silik. ‹flin garip yan› Mplayer ile seyretti¤imde de art›k görüntü bu flekilde. Bu problemin yeniden kurulum yapmak d›fl›nda bir çözümü var m›? Bu genelde bir program›n X-Windows gama ayarlar› ile oynamas›ndan kaynaklan›yor. Tam olarak hangi ayarlar›n de¤iflti¤inden emin olmad›¤›m›z için, afla¤›daki bütün komutlar› girmeniz gerekebilir. kutu-3 Bunlar sisteminizi makul bir görüntü de¤erine getirecektir. Filmleri izledi¤iniz ön tan›ml› görüntü de¤erleri konusunda deneme yapmak isterseniz, yine bu komutlar iflinizi görür. EXPLORE POSSIBILITIES. STIMULATE SOLUTIONS. SWH14001-US kutu-3 Ubuntu 8.04 sistemimde baz› oyunlar› oynamak için Wine kullan›yorum. Fakat baz› oyunlar› bir türlü çal›flt›rmay› baflaramad›m. Ç›kan hata mesaj›n› internet'te arat›nca bile bir fley bulam›yorum. Acaba ne tür bir sorun olabilir. Kiflisel tecrübeme dayanarak söyleyebilirim ki "Ç›kan hata mesaj›n› internet'te arat›nca çözüm bulam›yorum" vakalar›n›n birço¤u LOCALE ayarlar›ndan kaynaklan›yor. Evet inanmas› zor biliyorum, ama ben flimdiye kadar bunu IRSSI'da, Wine'da ve birkaç programda daha yaflad›m. Yapman›z gereken asl›nda çok basit. Söz konusu program› ça¤›rd›¤›n›z komut sat›r›nda program›n önüne LANG=EN koyman›z. Yani Wine ile Warcraft III çal›flt›racaksan›z mesela, LANG=EN wine war3.exe yazman›z yeterli oluyor. LEARN NEW TECHNOLOGIES. GROW REAL-WORLD SKILLS. kutu-2 $nodename - $sysname $kernel on $machine $hr ${color grey}Uptime:$color $uptime ${color grey}Frequency (in MHz):$color $freq ${color grey}Frequency (in GHz):$color $freq_g ${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4} ${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4} ${color grey}CPU Usage:$color $cpu% ${cpubar 4} ${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes $hr ${color grey}File systems: / $color${fs_free /}/${fs_size /} ${fs_bar 6 /} ${color grey}Networking: Up:$color ${upspeed eth0} k/s${color grey} - Down:$color ${downspeed eth0} k/s $hr ${color grey}Name PID CPU% MEM% ${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}