Uğur Özyılmazel

Kendi meşrebinde hem blog, hem Türkçe dökümantasyon

Etiketler

29 Kasım 2010 Pazartesi

Yeni sitem / blog'um...

Bu günden itibaren faaliyetlerime Tumblr'da devam ediyorum. Lütfen bookmark'larınızı güncelleyiniz: http://ugur.ozyilmazel.com

11 Eylül 2010 Cumartesi

Herkes "KODIR" herkes "KOD YAZIYOR"

Evet, ben kıl ve gıcık biriyim. Neden mi? doğruları söylediğim için. Çok uzunca zamandır süper nefret ettiğim, sinir olduğum, hatta delirdiğim bir konu hakkında yazmak istiyorum. Pek çok kez de fikrimi çeşitli ortamlarda belirtmiş olmama rağmen, "söz uçar, yazı kalır" misali, bir kez daha bu konudaki fikirlerimi belirtmek istiyorum.

"KOD YAZIYORUM" demek havalıdır!

Öncelikle dünyanın oluşumuna kadar geri dönüyor ve "CODE" ( kod ) nedir kısaca bu konuya değinmek istiyorum.

Bilgisayarın ilk çıktığı dönemlerden gelen bir tabirdir. Günümüzdeki modern programlama dillerinin olmadığı çağlarda (!) bilgisayarı programlamak için kullanılan, gerçekten de "KOD"lardan oluşan yazım dilidir Assembly. ( Yani makine dili )

Benim şahsen tanışmam 1985-1986 yıllarına tekabül eder. 2010 yılı itibariyle ekrana bir yazı ( hello world ) yazırabilmek için yapmanı gereken;
// Commodore 64 BASIC ise
PRINT "HELLO WORLD"

// php ise
echo "hello world";

// asp ise
response.write "hello world"

// python ise
print "hello world"
şeklindedir. Ama bu işlemi, gerçekten "kod" yazarak Commodore 64'te yapmak için; önce hafızada bir yere bu yazıyı koymalı ve daha sonra ekranın ilgili koordinatına byte byte harfleri taşıyıp adreslemeniz gerekmektedir.

HAYDİ BİRAZ KOD YAZALIM


Hafızanın durumu: "M 2000 2020" yani $2000 ile $2020 arasındaki byte'lar görüntüleniyor. Gördüğünüz gibi 08-05-0C-0F gibi gerçektende "KOD"lar bulunuyor. Bunlar, 0-255 arasında ( yani $00-$ff arasında HEXDECIMAL yani 16'lık sayı sistemi ) ki byte'ları ifade eder. $0C aslında 10'luk sistemde 12, $0F'de 15'i ifade eder.

Hani bugün bu tarz şeyleri CSS renk kodlarında ( background-color: #ff0; )da kullanıyorsunuz... Hafızaya "I 2000 2020" komutu ile baktığımızda ( CBM-CODE olarak hafızaya bakarız ) HELLO WORLD yazdığını görürüz.
Yukarıdaki "CODE"da, minik bir loop ( döngü ) ile $2000'den önce 0. sonra 1. daha sonra 2., 3. ... harfi alıp, $0400'e, $0401'e $0402'ye yerleştiriyoruz. Ne zamana kadar, X 11 olana kadar. ( 11 = $0B )

Sonuç olarak ekranın sol üst köşesine "HELLO WORLD" yazdırıyorsunuz CODE yazarak.

Eğer bu işi Amiga'da yapmak isteseydik, iş çok daha korkunç boyutlara ulaşacaktı. Önce grafik ekranını açacaktık ( ekran moduna göre - hi/lo/med res ) daha sonra rom'dan ilgilili library'i kullanarak ekranın ilgili yerine byte byte harfleri taşıyacaktık. ( ki ben bile şuan bunu nasıl yaparım hatırlamıyorum (: )

Olur olmaz her duyduğunuz lafı kullanmayın!

Bugün 2010 itibariye, ne makine dili kaldı, ne makine kodu ne Assembly ne Assembler vs... Çünki bu şekilde "code" yazmak gerçekten de çok zahmetli ve gereksiz. Günümüzün modern programlama dilleriyle çok rahat yazılım geliştirmek mümkün...

PHP gibi, PYTHON gibi, JAVASCRIPT hatta C, JAVA, C++, C# vs vs vs bu yazılım dillerinin hiç biriyle yazılım geliştirdiğiniz zaman KOD YAZMIŞ OLMAZSINIZ! lütfen bunu unutmayın...

2005 yılında Gameboy Advance ( GBA ) ve Playstation Portable ( PSP ) için "INTRO" / "DEMO" yaparken ( Ansi-C dilinde ) örneğin çizgi çizdirme rutinlerini ( rutin lafı bile eski bir terimdir ve "code yazma" geleneğinden gelir ) çok daha hızlı olması için ASSEMBLY dilini kullanarak yapmıştım. Bunların dışında da son 5 yıldır ( Commodore 64 / Amiga dışında ) ne kod yazdım ne de etrafta "CODER" gördüm. ( 2010 Breakpoint Demoscene Party Commodore 64 Demo-Compo 1.si GLANCE grubunu hariç tutuyorum bu mevzulardan... Gerçek coder'lar halen yaşıyor! )

Zamanında, Amiga'da grafik işlerini, Blitter'ı DMA'yı Audio işlerini hızlı yapmak ve MULTI-TASK işlem yapabilmek için, arada YORUMLAMA olmadan, bilgisayarın, işlemcinin, ANA-DİLİNDE yazılım geliştirmek için kullanırdık makine dilini.

Amiga'da PASCAL, C vs vardı fakat bunların çalışması için önce derlenmesi ve daha sonra da makine diline çevrilmesi gerekiyordu. Demo/Intro gibi grafik/ses özelliklerini kullanmak ve hızlı işler yapmak için tek yok "CODE" yazmaktan geçiyordu.

Sonuç olarak "code" yazmak "coder" işidir. Lütfen herkes haddini bilerek kelime sarfetsin. Sırf havalı orijinal bişi diye, yada insanların anlamadığı ama "koool" bişi diye "KOD yazıyorum" denmesi benim delirmemi sağlıyor. Çünki hiç biriniz "CODE" yazmıyorsunuz!

Twitter'dan yüzlerce developer'ı takip ediyorum. Çoğu da çok acaip işlere imza atan, çığır açan insanlar... Objective-C'yi yemiş yutmuş, tonla framework yazmış onlarca API'da contributer olarak çalışıyor, işletim sistemi geliştiriyor filan... 2-3 yıldır takip ediyorum daha bir tanesi de kalkıp "kod yazıyorum" gibi bişi demedi...

Ey TÜRK YAZILIM GELİŞTİRİCİLERİ...

LÜTFEN haddinizi bilerek konuşun. Yaptığınız iş altı üstü script yazmak. ( keza ben de uzunca zamandır evime ekmeği script yazarak götürüyorum ve bundan da gurur duyuyorum ) Hava olsun diye, karizma olsun diye ulvi mertebe "CODER"lığı harcamayın lütfen!

Teşekkürler...

12 Mayıs 2010 Çarşamba

TextMate için minik bir tool!

Komple AppleScript ile yaptığım süper basit bir tool. Hatta "Show Package Contents" diyerek, script'i dahi görebilir hatta gaza gelip kendiniz de işinize yarak şeyler yazabilirsiniz... Ne işe yaradığını anlatan minik bir video da yaptım.

Şu an için sadece 4 ekran destekliyor...





İlgili dosyayı : http://files.me.com/vigo/d735qg adresinden indirebilirsiniz...

6 Nisan 2010 Salı

Poğaça yaptıydım...

Geçenlerde işten eve dönerken, sevgili ofisdaşım Lale, bana, "diyet pooooooooooça" nasıl yapılır onu anlattı... Tarif verdi... Ben de yaptım o tarif üzerine poooooçamı (:

Un lazım, görüldüğü gibi TAM BUĞDAY...

Kabartma tozu lazım...

Önce, bir kabın içine 1 su bardağı ( standart ) Light-Yoğurt ve yarım çay bardağı zeytin yağını koyup karıştırın... Sonra bu karışıma, kabartma tozu paketinden çıkan ( sanırım 5'li minik paketler var içindde ) bir paketi katıp tekrar karıştırın..

Sonra bu karışıma 1 bardak "UN" koyup karıştırmaya başlayın... Aynen tarifdeki gibi yazıyorum "Eline yapışmayacak hale gelene kadar yavaş yavaş un ilave et" ilk başta ben de bunun ne demek olduğunu tam anlamamıştım. İnsan tecrübelenince anlıyor olayı... Ben fazla un katmamak için yarım bardak un hazırlayıp yavaş yavaş ekledim. Hem yoğurdum hem ekledim ve gerçekten hamur oluşunca anlıyorsunuz... Elinize yapışmıyor sahidende!

Bir kase için 1 çorba kaşığı su koyun ve bu kase içine yumurtanın sarısını katıp karıştırın. Bunu poooçalarımızın üzerine süreceğiz...

Poğaçanın içine ne koymak istersiniz? Sade mi ? Beyaz Peynirli mi? Kaşarlı mı? Zeytinli mi? Neşenize göre... Bir kaba light-beyaz peynir , light kaşar ( ya rendeleyin yada küçük küp küp doğrayın ) koyun... Dereotu yada maydanoz da ilave edebilirsiniz... Kafanıza göre bir karışım hazırlayın... Beyaz peyniri çatalla ezin... Sonra bu uydurmasyon karışımı poooçaaanızın içine koyun...

Ben beceriksiz olduğum için yamuk yumuk şekiller verdim (:


( Bu ikinci denememden! )

Yumurtalı karışımı bir fırça yada kaşık yardımıyla sürün üzerlerine...

Fırını 180-200 derece gibi bir ısıya getirip "fırın" modunda açın... Fırın tepsisi içine yağlı kağıt koyun... Poğaçaları üzerine yerleştirin ve verin fırına... Yaklaşık 20, bilemediniz 25 dakika sonra misler gibi kokular yükselicek mutfaktan!


Sonuç olarak, hiç kimseye muhtaç olmadan "Anne Poğaçası" yapmak mümkünmüş... Tecrübeniz arttıkça daha da kreatif şeyler yapabilirsiniz... Bu tarifin tüm hakları sevgili Lale Tantuğ Yetgin'e aittir... Afiyet olsun!

28 Şubat 2010 Pazar

Python kitabı



Cuma günü, her cuma olduğu gibi, İstanbul Cevahir AVM'ne gittik. Cuma bizim ofiste "CEVO" günüdür, öğlen Çin yemeği yeriz Great Dong Fang adlı restoranda. Bir ritüel misali, yemek biter, hemen karşıdaki Kahve Dünyası'na gidilir(di) çukulata! alınır, sonra Starbucks'dan kahve, Teknosa ve D&R'a uğranır...

Genelde Teknosa ve D&R'dan eli boş döneriz. Hepimiz MAC kullanıcı olduğumuz için, ilgimizi çeken hiç bir donanım bulamayız Teknosa'da... D&R'ada her defasında "belki" ilgilendiğim konularda bir dergi / kitap birşey bulurum ümidiyle uğrarım. Arkadaşlarım artık "ya tüm D&R'lar aynı hiçbir şey yok işe yarar" şeklinde beni doldursalar da, ben, o gün, yine gazlı bir şekilde girdim D&R'dan içeri. Her zaman olduğu gibi, yazılım ve bilgisayarla ilgili kitapların olduğu bölüme gittim. Umutsuzca bakarken ( belki 2-3 yıldır her cuma bu işi yapan biriyim!, neredeyse hiç yeni kitap çıkmıyor! ) bir baktım "Python" diye bir kitap!

Daha geçen cuma, ofis arkadaşım Tarık Kavaz, bana, Python ile ilgili türkçe kitap olup olmadığını sormuştu. Ben de ona, galiba geçen yıldı, Suadiye'deki İnkilap Kitapevi'nden şans eseri şu kitabı aldığımı, başka da kitap bulamadığımı söylemiştim. ( Mustafa Başer tarafından yazılmış... ) Ne güzel tesadüftür ki, bir sonraki hafta, sanki Tarık hissetmiş, yepyeni bir Python kitabı!

Kitap, Kodlab yayınevinden çıkmış. Bu yayınevinden çıkan, aldığım ilk kitap. Hep raflarda ürünlerini gördüğüm, bildiğim bir yayınevi. Kitabın yazarı Fırat Özgül. 1980, Adana doğumlu. ( Bu bilgiler kitabın arka kapağında yazıyor ) Eve gelir gelmez, hemen Fırat beye teşekkür mesajı gönderdim, emek verip böyle faydalı bir iş yaptığı için. Kendisi de hemen mesajıma cevap yazmış, teşekkür ettim.

Kitap, python diline yeni başlayacak olan biri için çok faydalı olur. Hoşuma giden unsurların başında gelen ilk şey, kitabın ve kullanılan python'nun tarih bakımından çok güncel olmasıydı. Kitap tahminimce Kasım/Aralık 2009'da yazılmaya başlanmış ( Bunu tamamen uyduruyorum, çünki bu tarihi kitabın başındaki python interpreter'da gördüm ). Bu bakımdan kullanılan python versiyonu 2.6.4, yani çok güncel. Diğer hoşuma giden unsur, yazarın tüm konuları linux platformunda anlatması. Ben sıkı bir "Terminal" / "Shell" hayranı ve seveni olarak kitap içinde de bolca terminal görmek hoşuma gitti.

Sakın Windows kullanıcıları yanlış anlamasın, kitap tüm işletim sistemlerini kapsıyor. Windows'da da "nasıl yapılır" resimli örnekleriyle anlatılıyor. Kitap 25 bölümden oluşuyor. Hemen minik bir açıklama, ben her zaman ikileme düşerim, örneğin; array mi desem dizi mi? diye. Kendim, yazılım dilinin, ne yazıkki, İngilizce olduğu için, evrensel olmak adına, tüm terimlerin orijial kullanılmasından yanayım.

Bu bakımdan, görsel açıdan pek hoş olmayan sahneler çıkabiliryor... Yarı İngilizce, yarı Türkçe gibi. Sevgili Fırat bu konuda gayet başarılı olmuş anlatım dili olarak. Beni hiç rahatsız etmedi. List , Tuple ve Dictionary objelerini; Liste, Demet ve Sözlük nesneleri olarak tanımlamış.

Kısaca;
  • Girişte Python'un kısa tarihçesi, nasıl doğdu, nereden çıktı vs...
  • Gereken environment, ilgili platforma nasıl kurulur...
  • Python Interpreter nasıl çalışır? ilk python programımızı yazalım,
  • Fonksiyonlar, Modüller, Dosya Sistemi, Error Handling,
  • Python built-in objeleri ( String,List,Tuple,Dict vs... )
  • Regular Expressions
  • OOP ( Object Oriented Programming - giriş seviyesi )
  • String Formatlama, Unicode işlemleri
  • Python ve OpenOffice
  • Python ve PDF işlemleri
  • Python ve GUI programlama ( Tkinter , Window / Widget / Button vs... )
şeklinde özetleyebilirim. Başta da belirttiğim gibi, kitap, python'a yeni başlayan yada başlamak isteyen biri için ideal! Gereken temel bilgilerin tümü, neredeyse, kitapda mevcut. Keza, python ile gündelik pek çok işi, basitçe nasıl halledebilirsiniz, pek çok otomasyon işlerinizi, 1-2 satır python script'i ile nasıl çözebilirsiniz gibi faydalı bilgiler mevcut.

Eğer eleştirmem gerekirse, yada öneride bulunmam gerekirse, gözüme çarpan ufak tefek şeyler şunlar;
  • Regular Expressions ve OOP bölümleri biraz "light" kalmış, belkide okuyucunun seviyesi öngörülerek bu şekilde hazırlandı bilemiyorum ama naçizane fikrim, bu iki konunun herbiri bir kitap olacak kadar geniş (: Yeni başlayan biri için çok ciddi fikir/fayda verebilir yinede...
  • Python ve Web dünyasına değinilmemiş. Bu, belkide yazarın ilgilenmediği bir konu olabilir, ben bizzat bu dünya ile çok ilgili olduğum için heyecanla aradım, acaba python'un web dünyasındaki gücünden bahsedildi mi? diye... Bu da bir kusur değil sadece benim naçizene gözüme takılan bir husus.
Kitabı okuyup, örnekleriyle yapan biri, idda ediyorum 1-2 hafta içinde, GUI'li mini uygulamalar geliştirebilecek kıvama gelebilir! Ben yerli yabancı pek çok yayını takip ediyorum, Türkçe yayınlanan hiç bir kitap/dergi yoktur ki, Python ile GUI programlamanın anlatıldığı... Bu bakımdan, bu ve buna benzer kitaplar TÜRK Bilişim Dünyası için çok yararlı ve önemlidir.

Python'a ilk başladığım zamanlarda ( hatta web uygulama işlerine ilk girdiğim günlerden beri ara ara hep bela olmuştur, neyseki linux ortamına geçtiğimizden beri rahatız - 2005 ) her script dilinde olduğu gibi, python'da da "TÜRKÇE KARAKTER" sorunu yaşamış ve çözmek için çok debelenmiştim. Kitapda, neredeyse ilk bahsedilen konuların başında geliyor bu sorunun çözümü.

Kitabın baskı tarihi Şubat 2010,
ISBN'i : 978-605-4205-10-3

Kitabın yazarı Fırat Özgül'ün web sitesi : http://www.istihza.com/ sitesini görünce, Fırat beyin pek çok konuda faaliyet gösterdiğini ve ciddi bir python evangelist olduğunu gördüm, çok hoşuma da gitti!

Kitap KDV dahil 33.5 TL. Değer mi? evet , yeni başlıyan biriyseniz değer! Sadece yeni başlayan biri olmasanız bile değer çünki pek çok güzel konuda bilgi var kitapta. Ben genelde amazon'dan kitap alan biriyim. Kitaplar genelde hep pahalı oluyor. Bu bakımdan, kendi dilinizde python kitabı için 33.5 TL gayet uygun!

İzleyiciler

Blog Listem

Yazılacak Yazılar

  • Snow Leopard için service yazıyoruz!
  • MacPorts nedir?
  • Virtualbox , Ubuntu ve Host'da duran web folder'ı
  • Django'ya giriş?
  • Dashcode ile MobileSafari uygulaması
  • Quicklook için Plug-in yazalım?
View blog authority