Artık Tumblr'ı kullanmıyorum. Yeni adresim : http://ugur.ozyilmazel.com

roma★
Not today Justin
No title available

@theartofmadeline
let's talk about Bridgerton tea, my ask is open
he wasn't even looking at me and he found me
NASA
cherry valley forever
Today's Document

Origami Around
trying on a metaphor
PUT YOUR BEARD IN MY MOUTH
dirt enthusiast
Lint Roller? I Barely Know Her

No title available

No title available

#extradirty
Mike Driver
KIROKAZE

祝日 / Permanent Vacation

seen from Taiwan

seen from Iraq
seen from United States

seen from Hong Kong SAR China
seen from Malaysia
seen from Israel
seen from South Africa
seen from Kenya

seen from Oman

seen from Kazakhstan

seen from Brazil

seen from Brazil

seen from Switzerland

seen from United States
seen from United States
seen from United States
seen from United States
seen from United States
seen from United States

seen from United States
@ugurozyilmazel
Artık Tumblr'ı kullanmıyorum. Yeni adresim : http://ugur.ozyilmazel.com
webkit2png ile ekran görüntüsü almak!
Uzunca bir zamandır yazmak istediğim fakat fırsat bulamadığım bir konu:
webkit2png
Python'la yazılmış "CommandLine Tool"u yani Terminal'den çalışan bir script. Bu script sayesinde istediğiniz bir web sayfasının ekran görüntüsünü istediğiniz boyutlarda PNG formatında almanızı sağlıyor. Bu proje aynı zamanda harika bir Python + ObjectiveC örneği. PyOBJC köprüsünü kullanarak WebKit objesine bağlanıyor. WebKit bildiğiniz gibi Safari ve Chrome web browser'ının temeli.
Script, sanki Safari web browser'ıyla verdiğiniz URL'i açıyor ve gelen sayfayı komple kaydediyor. Bu işi normal şartlarda yapmak için çeşitli browser extension'larına ihtiyacınız var. Daha önceleri Safari extension olayını desteklemiyordu. Chrome'a da extension olayı bildiğiniz gibi sonradan geldi. Mevcut tek sistem Firefox ve Screengrab extension'ıydı.
Firefox'un çılgınlar gibi yeni veriyon çıkartması Screengrab extension'ını yazan arkadaşı delirtmiş olacak ki artık destek vermiyor.
An itibariyle bu işi yapmak için Chrome ve Google tarafından yazılan "Screen Capture" iyi bir alternatif.
Eğer siz de benim gibi Shell'ciyseniz webkit2png'yi kullanabilirsiniz. Projenin orijinal yazılımı Paul Hammond'a ait. https://github.com/paulhammond/webkit2png.git
Ben, MacPorts ve Homebrew için küçük bir fix yapmıştım. İster orijinali ister benim fixlediğim versiyonu kullanabilirsiniz.
https://github.com/vigo/webkit2png
MacPorts ve Homebrew paketi olarak mevcut.
$ sudo port install webkit2png # macports'dan kurulum $ brew install webkit2png # homebrew'dan kurulum # benim ~/bin folder'ım local executable'lar için eğer sizde böyle yapmak isterseniz # mkdir ~/bin yapıp $PATH'e bu folder'ı eklemeniz gerekir. $ git clone httxs://github.com/vigo/webkit2png # kendi kurulumunuz
Kullanımı çok basit;
$ webkit2png -h
Hemen açıklaması geliyor. Default olarak 3 versiyon oluşturuyor. Fullsize, Thumbnail ve Clipped. Default ekran genişliği 800x600 pixel geliyor, aynı şekilde default clip 200x150 pixel. Ekran görüntüsünü kaydetmek istediğiniz folder'a gidin:
$ cd ~/Desktop $ webkit2png -o test1 httx://ugur.ozyilmazel.com # tüm siteyi alır 3 dosya üretir... $ webkit2png -o test2 -C --clipwidth=800 --clipheight=600 httx://ugur.ozyilmazel.com
test1 dev gibi ekran görüntüsü aldı. Toplam 3 dosya üretti:
test1-clipped.png # 200x150 test1-full.png # ben yaptığımda 960x31024 verdi test1-thumb.png # test1-full'ün thumbnail'i 240x7756
test2 ise sadece 800x600'lük alanı verdi. Son dönemde, web siteleri hep JavaScript kullandığı için, sitenin tam olarak yüklenmesi bazen saniye bazında da olsa zaman alıyor. Bunun için webkit2png'nin delay özelliğini kullanacağız...
$ webkit2png --delay=5 httx://google.com
Bu sayede google.com adresi request edildikten sonra 5 saniye bekleyecek ve 5 saniye sonunda ekran görüntüsü alınacak. Başka bir örnek;
$ webkit2png -o bilgi -F -W 1024 httx://bilgi.edu.tr # sayfa tam yüklenmemiştir. $ webkit2png -o bilgi-delay --delay=5 -F -W 1024 httx://bilgi.edu.tr # sayfa tam olarak yükledi
--delay ile sayfa tam olarak yüklendi...
Çok işe yarayan bir tool. Umarım sizin de işinize yarar... Yazı içinde httx şeklinde kullandığım kelime aslında http. Tumblr metin olarak girilen tüm url'leri <a href='e çeviriyor bu bakımdan da shell script garip görünüyor. Bunun için http yerine httx yaptım siz deneme yaparken düzeltmeyi unutmayın.
Gerçekten çok üzüldüm. Rahat uyu bay Steve Jobs
Mac OS X: CFUserTextEncoding ve UTF-8 sorunsalı
Mac OS X'le tanıştığım günden beri sinir olduğum ve kimsenin çözümünü bilemediği bir sorunum var. Aslında bu sorun, Amerikalı olmayan herkesin sorunu. Bu sorun yüzünden ne Python'la ne de Ruby'le bile işlem yapmakta sıkıntı oluyor.
Bu sorunu ilk kez Quicklook'la tanışınca yaşamıştım. Çok sevdiğim bir özelliktir quicklook. Dosyayı açmadan içine bakmak. Bir tür hızlı önizleme. UTF-8 olarak kaydedilmiş text dosyalarına quicklook'la bakmak istediğimde Türkçe harflerin bozuk olduğunu görmüştüm.
Başladım aramaya google'da... Sonra gördümki bu sorun sırf Türkçe için geçerli değil. Fince, Almanca, Norveç dili vs, İngilizce olmayan yani ASCII'nin dışında kalan her dilde bu sorun varmış.
Çeşitli çözümlemeleri var. Örneğin her oluşturduğunuz text dosyası için elle, manuel olarak "bom" yani byte order mark eklemek. Bu delilik. Hele hele Mac OS'un pek çok harika özelliğini düşünürsek bu kabus gibi bir şey!
FriendFeed'den takip ettiğim developer Deniz "Bluesign" Edincik, ilgili bir friendfeed yorumunda:
eğer ... içine 0x08000100:0x08000100 yazarsanız quicklook'da türkçe sorununu çözersiniz.
demişti. Home folder'ınızda bulunan .CFUserTextEncoding (ilk karakter nokta işareti) dosyasını Terminal'den görebilirsiniz:
cd ls -al # ya da ls -al .CFUserTextEncoding
Evet, söylediği de doğruydu. Denedim, çalışmıştı. Fakat daha sonra garip problemler çıkmaya başladı sistemde. DVD-ROM çalışmamaya başladı, Safari ara ara sapıtmaya başladı vs. Geriye dönüp düşündüğümde; en son yaptığım şey neydi? dediğimde bu CFUserTextEncoding olayını hatırladım ve tekrar eski/orijinal değeri olan 0:0'a geri döndüm ve herşey düzeldi.
Araştırdım günlerce. Meğerse bu CFUserTextEncoding çok ciddi anlamda sistemin "core" elementlerindenmiş. XXX:XXX şeklinde verilen iki parametre şu anlama geliyormuş;
ilk değer kullanıcının tercih ettiği encoding, ikinci değer de default encoding. Aslında 0x08000100:0 da yazsak; yani ilki Türkçe (kullanıcı tercihi), ikinci 0 (default) olarak da çalışan bir durum var ortada. Bu bakımdan her iki değeri de 0x08000100:0x08000100 yapınca sistemdeki diğer uygulamalar hatta donanıma kadar giden bir zincir içinde sorunlar çıkabiliyormuş. Akıllara durgunluk verecek bir durum. Bu olaylar Windows'da bile olmuyor...
Her ne kadar da System Preferences'dan Language listesinde Türkçe olsa da, Finder türkçe file/folder adlarını doğru sort etse de Terminal/Shell'deki sorunlar hiç bitmiyor.
Aynı sorunu iDisk'te yaşadım. iPhone için Apple iDisk uygulaması çıkarttığında hemen bu durumu kontrol ettim. Aynen Mac OS'da olduğu gibi iDisk'te de Türkçe karakterler bozuk çıktı. Bu olay beni gerçekten çok sinir etti. Koskoca Apple daha doğru dürüst UTF-8 desteğini veremiyor.
İşin komiği, ücretsiz servis veren Dropbox'da (iPhone/iPad app) böyle bir sıkıntı yok! Aslanlar gibi Türkçe / UTF-8 dosyaları görebiliyorsunuz. Yani yıllık $100'a yakın para ödediğim servis daha doğru dürüst UTF-8 text dosyasını dahi gösteremezken ücretsiz servis/uygulama sorunsuz çalışıyor...
Üşenmedim, bu durumları Apple'ın ilgili sitesine bug-report yaptım. 18 Aralık 2009'dan beri (2 yıl neredeyse) bu ticket açık halen... Muhtemelen Apple, kendi halinde bir Türk yazılımcısının hata raporunu; Türkçe sort vs gibi sorununu kaale almadı? sallamadı...
Şoklar devam etti. Snow Leopard çıktı. Sorun aynen devam ediyor. Hatta daha acı şeyler oldu. OS ile birlikte gelen unix tool'larının hiç birinde Türkçe karakter kullanılamıyor! Örneğin sistemle gelen Python... Python'un interaktif shell'i var. Açtım ve ilk olarak ğ harfine bastım. Tabiik basmadı. Daha sonra "nano" text editor'ü açtım aynen... Türke yazamıyorsunuz.
python.org'dan mac os için hazırlanmış installation paketini indirip kurdum, Python'un versiyonunu yükseltmek için. Baktım aynı sorun onda da var???????? Yani Ubuntu'da Gentoo'da ya da Debian'da olmayan her türlü sorun bunda...
Demekki sorun ne python'da ne de nano'da... Çünki sistemin (unix) kalbi sayılabilecek kütüphanelerden biri olan "readline" apple tarafından derlenirken UTF-8 desteği atlanmış... Yazdığım önceki python derleme yazılarımda bundan bahsetmiştim.
Zaten kendi kendine derlemek ve macports'a homebrew'a yöneliş hep bu eksiklikler yüzünden oldu.
Neyse, sözü uzatmadan, 2 hafta önce OS X Lion (10.7)'i ofisteki test makinesine kurdum ve ilk yaptığım iş nano'yu açıp ğ yazmak oldu ve gözlerim yaşardı! Evet bu kez *nix tool'ları için "readline" doğru derlenmişti. Hemen python'ı denedim. O da sorunsuz çalıştı ama yine 2009'da submit ettiğim sort işini yapamama, shell locale sorunu aynen olduğu gibi duruyordu.
Pek çok şey denedim, Shell'den LOCALE, LC_ALL set edilemiyor. Edilmiş gibi görünüyor ama çalışmıyor. Bu locale olayları yüzünden sisteme eklediğim fontlarla bile sorunlar yaşadım. (Başka bir blog post olur bundan!)
Quicklook'a gelince, takip ettiğim bir blog'da konu hakkında güzel yorumlar ve çözümler yazılmış. Arkadaşların çoğu İskandinav ülkelerinde yaşadıkları için onların da bizim gibi kendi dillerinde karakter sorunları var. Oradaki arkadaşlardan biri demişki:
Quicklook, text dosyasını preview edeceği zaman gidip TextEdit'i kullanıyor. Bu bakımdan eğer TextEdit'in default dosya açma özelliği UTF-8 değilse Quicklook'da sorun oluyor.
Denedim, hakikatten arkadaş haklıymış.
Quicklook için text dosyalarını TextMate ile preview yaptırabiliyorsunuz hatta bunun için TextMate'in süper bir Quicklook Plug'ini bile var. Tek dezavantajı arka planda TextMate'in hep açık olması gerekiyor aksi taktirde space'e basında text dosyası üzerinde, ekrana hiç bir şey çıkmıyor...
Bu yazıdaki amacım Apple'ı kötülemek değil. Ben büyük bir Apple / Mac OS sever olarak, diğer Unix/Linux türevlerinde yıllar yıllar önce çözülmüş sorunları neden 2011 yılında dahi Mac'de yaşıyorum? Bu konular o kadar basit konularki. Beni nasıl mı etkiliyor?
Yazılım geliştiricisi olarak, python'la ya da ruby'le ya da 2007'den beri kullanmadığım php ile bir proje yaparken, saydığım dillerin hiç birinde array/list/tuple/hash vs sort özelliğini kullanamayacağım. Elimde 10 kişinin adı soyadı olacak bir listede (ya da array'de) ve ben bunları tek bir hareketle sort edemeyeceğim.
Bu en basit örnek. Olay sırf sort değil. Upper/Lower case için özel yöntemler icat etmem gerekecek vs vs vs... Bir dünya dert.
Tek avunduğum nokta production server'larımız ya gentoo ya da ubuntu. Yani kaya gibi Linux... Bu bakımdan local'de buglı çalışan sort işleminin en azından remote'da sorunsuz olacağını biliyorum.
Sonuç;
.CFUserTextEncoding ile oynamamak lazım
Quicklook'da Türkçe text için TextEdit'e ayar yapmak lazım
Dua edelim Apple sesimizi duysun ve unix tarafında gerekli ayarlamaları yapsın!
Rails İstanbul Buluşması #2
Biraz gecikmeli de olsa sonunda yazımı yazabildim!
İlki 11 Mayıs 2011'de yapılan etkinliğin yenisini iple çekiyordum! Geçtiğimiz günlerde 2.si duyuruldu. 18 Haziran 2011, saat 14:00'de Helsinki Yurttaşlar Derneği'nde yapılacaktı. Bu defa geçen seferkinden farklı olarak "workshop" tadında, ufak demolar, daha önceden yapılmış uygulamalar ve sunumlar olacaktı.
İstanbul Anadolu yakasında yaşıyan biri olarak, karşı (Avrupa yakası) tarafı çok iyi bilmeyen biriyim. Yani yüzeysel olarak biliyorum ama detayları bilemiyorum. Geçtiğimiz yıllarda (2006) katıldığım demoscene partisi 7D6 da Rails buluşmasının yapılacağı yerdeydi. Bu bakımdan çok zorlanmadım diyebilirim mekanı bulma açısından.
Saat 13:30'da mekana check-in oldum (: Geldiğmde 2-3 kişi vardı. Ev sahiplerinden sadece Demirhan Aydın vardı. Hemen muhabbete başladık. İnsanlar gelmeye başladı. Seyfeddin Başsaraç'la muhabbet ettim. Saat 14:30'a doğru buluşma organizatörlerinden Dara geldi. Sağolsunlar arkadaşlar gelirken soğuk içecekler ve kurabiyeler getirmişler.
Hemen projeksion makinesi ayarlandı. Uzun masanın etrafında insanlar toplanmıştı ve bilgisayarlarını yanında getirenler hemen makineleri açıp hazırlık yapmaya başlamıştı.
İlk olarak Lütfi Demirci, Promoqube'de bir kampanya için geliştirdikleri bir uygulamayı tanıttı. Facebook login ile çalışan, fotoğraf gönderme / paylaşma üzerine kurulu uygulamayı anlatırken ısrarım üzerine (katılımcıları çoğu rails'ci olduğu için ben ve benim dışımda bir kaç kişi rails'den habersiz) crash-course hızla minik bir rails uygulaması demosu yaptı.
Herzaman olduğu gibi ben devamlı olarak aklımdaki soruları sordum (8. Soru sormaktaki amacım:
Rails'i Django ile karşılaştırmak
Rails hakkında neleri yapıp yapamayacağımı anlamak.
Sağolsunlar, arkadaşlar sorularımı yanıtsız bırakmdılar. Sabırla cevap verdiler. Daha sonra sevgili Barış Gümüştaş backup işlemlerini otomatik hale getirmek için ofislerinde kullandıkları kendi geliştirdiği uygulamayı anlattı bize.
Barış'ın github'da yaptığı projeleri takip edebilirsiniz : https://github.com/matrushka Özellikle "dropp" adlı combobox implementasyonu çok hoşuma gitti. Keza, Mac OS'da kullandığı MySQL Client'ı da acaip hoşuma gitti. Sequel Pro harika bir tool hem de ücretsiz!
Son olarak Burak Arıkan, üzerinde uzun zamandır çalıştığı Graph Commons'u anlattı. Bir tür ağ/bağlantı analiz sistemi. Çok enteresan bir uygulama. Henüz beta aşamasında. Davetiye ile çalışıyor. Anlatmakla olmuyor girip kendiniz denemelisiniz.
Genel olarak çok zevkli geçti etkinlik. Yeni arkadaşlarla tanıştım. Birlikte proje yaptığım ama yüzyüze tanışma şansı bulamadığım sevgili Fatih Küçükbaltacı ile de tanıştım en sonunda.
Katılımcılar arasında benim gibi Python'cu biri daha vardı. Muhammed Sena Aydın. Kendisi de benim gibi Django'cu + Python'cu hatta benden fazla olarak da Ruby + Rails'ci (: Ortak özellikler çok olunca hemen kaynaştık. Ortak arkadaşlarımız da çıktı.
Şuan için adını hatırlayamadığım sıkı muhabbetçi (arkadaşlar umarım bana adınızı hatırlamadım diye gücenmezsiniz) 2 tane Php / Symphony'ci arkadaş vardı. Buradan kendilerine selam söylüyorum.
Bol bol Mac OS X, TextMate, MacVim, Vim sohbeti yaptık. Sevgili Onur Bozkurt'a da selam gönderiyorum.
Keşke daha çok vakit olsaydı sohbete muhabbete doyamadım. 3.sünü iple çekiyorum. Herkese tavsiye ediyorum bu tür etkinliklere katılmayı.
İleriki buluşmalarda ben de minik bir Django crash-course yapmayı planlıyorum. Umarım buna hazırlanmak için zamanım olur.
Faydalı Linkler:
http://railsistanbul.heroku.com
Rails İstanbul Facebook sayfası
Rublyer
Küp Yazılım
Yepyeni bir dergi: Smart Developer
Genelde iyi bir dergi bulduğumda, hep içimde bir hüzün oluşur:
Acaba önümüzdeki ay bu dergi tekrar gelir mi?
Genelde benim çok sevdiğim dergiler pek fazla okuyucu bulamıyor ve bazen tek sayı bazen de iki sayı geliyor ve bir daha gelmiyor.
Yine dergicime yani Dünya Store'a gittim. (Aslında bu yazıyı 2 hafta önce yazmayı planlamıştım ama bir türlü fırsat bulamadım) Yepyeni bir dergi:
Smart Developer
adında da anlaşılacağı gibi, "Smart Phone" yani akıllı telefonlara uygulama geliştiren insanlara hitap eden bir dergi. iPhone / Android ve Nokia başta olmak üzere, popüler cihazlara hitap ediyor.
Derginin bu 2.sayısı. Daha çok yeni. Amerikan menşeyli dergi fakat bizim dergici dergileri İngiltere'den getirdiği için üzerindeki fiyat paund (sterlin) şeklindeydi.
Ben bizzat işin iPhone tarafıyla ilgilendiğim için hemen bu konu ile ilgili nelerin olduğuna baktım dergide. Bu sayı için sadece bir adet konu vardı. Genelde Android ve Nokia ile ilgili örnekler ve projeler bulunuyordu.
Dergide verilen tüm örneklerin ve projelerin olduğu bir dvd çıktı içinden.
Bu sayıdaki konular kısaca şöyle:
HTML5: Multi-platform web uygulaması geliştirme (Jo, PhoneGap ...)
MeeGo
Harita servisini iPhone uygulamasına entegre etmek
Android için Adobe Flex ve Air
Samsung Bada
Geocoding
Tablet tanıtımları
gibi konular bulunmakta. Dergideki bazı diğer dergi reklamları çok ilgimi çekti:
Admin: Network & Security
Ubuntu User
Linux Shell: Handbook
Linux Magazine
Sonuç olarak, Smart Developer dergisinin İngiltere fiyatı: £7.99 yani bizim paramızla yaklaşık 20 TL. Satış fiyatıysa 33.5 TL.
Birikmiş bonuslarımla aldım dergiyi. Bu bakımdan bana maliyeti 5 TL oldu. Eğer 33.5 TL verseydim biraz canım sıkılabilirdi. Bekliyorum yeni sayısını. Bir şans daha vereceğim...
Rails İstanbul Buluşması
Geçen çarşamba akşamı (11 Mayıs 2011) çok harika bir etkinliğe katıldım. Adı;
Rails İstanbul Buluşması
Adında da anlaşılacağı gibi Ruby programlama diliyle uğraşanların olmazsa olmazlarından olan web uygulama framework'ü Rails'i sevenler biraraya geldi!
Promoqube firmasının Beyoğlu'ndaki ofisinde gerçekleşen etkinliğe katılım tahminimden de fazla oldu. Etkinlik Facebook sayfasından duyuruldu.
Ben bizim ofisten arkadaşım Tarık Kavaz'la birlikte katıldım. Saat 19:00 - 22:00 saaatleri arasında geçmesi planlanan etkinliğe biz 19:38 gibi dahil olabildik. Saat 21:45 gibi de ayrıldık. Keşke daha çok kalma imkanım olsaydı!. İçeri girdiğimizde pizzalar söylenmiş hatta yenmiş bitmişti bile! Neyseki biz önceden yemiş ve tok gelmiştik.
Bizi sevgili Dara Kılıçoğlu karşıladı. Hatta yukarıdaki fotoğrafta Dara, Japon asıllı (tahmin ediyorum) Amerika'lı bir arkadaşla konuşuyor. İçerisi tahmin ettiğimden daha kalabalıktı. Yaklaşık 40-50 kişi vardı sanki.
Anladığım kadarıyla biz yokken, katılımcılar sırayla kendilerini tanıtmışlar ve ne işle uğraştıklarını anlatmışlardı. Biz tam yemek arasında gelmişiz. Yemek bittikten sonra sohbet kaldığı yerden devam etti. Katılımcılar kendilerini tanıttı, ne işle uğraştıklarını ya da halen hangi okulda okuduklarını, Ruby ya da Rails ile nasıl tanıştıklarını anlattılar.
Katılanlar arasında halen lisede okuyan öğrenciler olduğunu gördüm. Bilgisayarla yeni yeni uğraşmaya başlayan ve programcı olmayı planlayan genç arkadaşlar da vardı. Üniversite öğrencileri / çalışanları, dijital ajans kurucuları gibi ilginç bir yelpaze vardı ortamda...
Genel durum herkesin önce Php dilini terketmesi ya da windows dot net'te tükenip yeni arayışlara geçmesiydi. Bizim dışımızda birkaç Python kullanıcısı da vardı toplantıda.
Bildiğimiz kadarıyla bu tarz bir etkinlik (Rails / Ruby ile ilgili) ilk kez gerçekleşiyor. Hepimiz anladıkki böyle organizasyonlara ihtiyacımız var. Hem bildiklerimizi paylaşmak, hem de iş/bağlantı anlamında kendi yazılım topluluğumuzu oluşturmak için.
FriendFeed ve Twitter dünyasından da birbirimizi takip ettiğimiz arkadaşlarla da karşılaştım. Mobil DNA'dan Ercan'ı sonlara doğru farkettim. Bana göre en uzak köşede karanlıkta kaldığı için göremedim ilk etapda. Burak Arıkan'la tanışmak beni çok sevindirdi. Kendisi de zaten bizim eski demoscene dünyasını yakından bilen bir arkadaşmış. Umarım diğer toplantıda daha uzun vakit olur ve daha çok sohbet etme şansımız olur.
Mind Function'dan Cihan Özçelik'le tam giderken hızlı bir 8bit sohbeti yaptık. Commodore sever olunca benim de çenem düşüyor tabiiki... Hasan Başusta'yı gördüm. Başka tanıdıkları da gördüm ama şuan isimlerini hatırlamıyorum umarım bana kızmazlar!
Katılımcıların neredeyse %99'u Mac OS kullanıcısıydı. Birkaç kişi Linux kullanıcısıydı ve neredeyse Windows'cu hiç yok gibiydi. Bu ilk buluşma, tanışma ve kaynaşma havasında geçti. Tahminimce bir sonraki buluşmada, "hands-on" workshop'lar, sorun çözümleri gibi konuların konuşulacağını düşünüyorum.
Meraktan çatlıyorum, insanlar mac'de hangi tool'ları kullanıyor, hangi IDE, bash_rc'lerinde neler var? Ne tür trickler ??? Umarım sonraki etkinlikte daha çok fırsatımız olur bu tür olaylar için.
Bu güzel akşamı organize eden sevgili Promoqube çalışanlarına ve Dara'ya çok teşekkür ederim. Etkinliğin yenisini sabırsızlıkla bekliyorum!
Etli dolma yaptı(k)m!
Bana sorsalar; hiç bıkmadan her öğün gece-gündüz hangi yemeği yiyebilirsin? hiç tereddüt etmeden şu cevabı veririm:
DOLMA
İster zeytin yağlı olsun ister etli olsun ister yalancı dolma olsun isterse konserve olsun! Küçüklüğümden beri hastası olduğum yemektir.
Sağolsun eşim de çok güzel yapar bu yemeği. Yemek pişirmeyi çok seviyorum. Aslında hiç anlamıyorum ama deniyorum işte. Atmasyon yemekler lezzetler vs...
Uzun zamandır hep hayalimdi. Acaba dolma yapabilir miyim? diye düşünüyordum. Dün gece bu hayalim gerçek oldu! Artık kimseye! muhtaç olmadan, canım her istediğinde dolma pişirebileceğim! (ya da en azından böyle umuyorum!)
Hemen gerekenleri sayıyorum:
1kg Dolmalık kıyma (et reyonundaki abi bunun ne demek olduğunu biliyor)
Kafanı göre miktarda karışık: Dolmalık biber, Kırmızı Çarliston, domates, patates vs
1 demet maydanoz
1 demet dereotu
1 demet fesleğen
1 paket dondurulmuş / doğranmış beyaz soğan (bu pratik olsun diye... eğer istersniz normal beyaz soğanı küpküp doğrayabilirsiniz!)
1 su bardağı beyaz prinç
Kırmızı biber, tuz
Biraz salça
Çok az zeytin yağı
Olay bunlardan ibaret...
Önce Mutfak Robotu tezgaha koyulur.
Sebzeler güzelce seçilir ve içleri oyulur...
Yeşillikler yıkanır. (Dereotu, maydanoz ve fesleğen)
İçleri oyulan sebzeler iyice temizlenir bol su ile yıkanır.
Robot'u kullanma zamanı. Şimdi yeşillikleri robottan geçireceğiz.
Bu kıvama geldi yeşillikler...
Şimdi kıymaları katacağız...
1Kg kıymayı ekledik. Sırada soğan var.
Superfresh'in tatlı beyaz soğanı. Bu paketin yarısını ekliyoruz!
Soğan eklendi.
Evde az prinç vardı. Sıcak suyla princi yıkadım. Biraz bekledim.
Karışıma ekledim princi. Şimdi yoğurma zamanı...
Hijyene çok önem veririm(!) bu bakımdan eldivenlerimi taktım ve olaya girdim.
Tencereye 2 çorba kaşığı salça ve 1 tatlı kaşığı zeytin yağı koyup hafifce kavurdum. 1-2 dakika kavurup altını kapattım.
İç malzemem hazır. Hani aynı lahmacunun içi kıvamına getirdim harcı.
Şimdi içleri dolduruyorum. Fazla sıkıştırmadan yeteri kadar harçla dolduracağız.
Bu artanlarla eşim yaprak da saracak. Yaprak sarma tekniğini bilmiyorum!
Dolmalar pişmeye hazır.
Tencereye güzelce dizip içine bir su bardağı ile su ekledim. Kapağı kapatıp yaklaşık 55 dakika kadar pişirdim. Ara sıra kapağı açıp kontrol ettim. Siz de süreyi ara kontroller yaparak sağlayabilirsiniz.
Merhabalar. http://ugur.ozyilmazel.com/post/1715158652/turkce-tumblr Bu makalenizi okudum, pek bu tür html'di falandı filandı anlamam. -sözde programcılık okuyorum. Benim de gözüme türkçeleşmeyen yerler takılıyor kendi blogumda. Tarih olsun, notların gösterimindeki show/hide falan olsun, anonim soruların anonymously olarak gösterilmesi falan. Acaba bu konuda yardımcı olabilmeniz mümkün müdür? Şimdiden teşekkür ediyorum. :)
merhabalar... tam sizin mesajınızı gördüğüm an tumblr'ın Türkçe desteğinin başladığını öğrendim. bu bakımdan extra işlem yapmaya gerek kalmadı (8
MobileMe takvim güncelleme skandalı!
Bugün itibariyle 17 gün sonra artık MobileMe yeni takvim sistemine geçecek. Güzel. Fakat şöyle bir sıkıntı var. Eşimin kullandığı işletim sistemi Mac OS X 10.5 yani Leopard. Takvim güncellemesi için web'den "Upgrade Calendar" yapmak gerekiyor.
Geçen gün eşime MobileMe üzerinden yolladığım "invitation"ı neden alamadığını farkettim. Çünki takvimi güncellemek gerekiyordu. Şimdi hazır bilgisayarın başındayken hemen bu gerekli güncellemeyi yapayım dedim.
me.com'a giriş yaptım. "Takvimi güncelle" dedim. Bir de ne göreyim?
Bu takvim eski işletim sistemi olan 10.5 ile senkronize ediliyor. Eğer 10.6'ya yani Snow Leopard'a geçilmezse MobileMe takvim senkronizasyonunu "manual" yani elle ayarlamak gerekiyor. Dikkat!
uyarısı ile karşılaştım. Sonuç olarak bu tarz otomatik olmayan ayarlama işlemleri bir noktadan sonra sorun çıkarabilir. Keza kaldıki eşim ne anlar bunları yapmaktan?
Şimdi MobileMe kullanıcısı olarak ne yapmamız lazım? Eşimin bilgisayarını aldığımız zaman mevcut os Leopard idi (10.5) Şimdi 10.6'mı satın alacağım? 10.5 gayet güzel yetiyordu. Keza os'un içinden çıkan iLife'ı filan da yeterliydi...
Yani senkronizasyon servisine zaten para veriyorum. Şimdi OS yetersiz kalıyor diye bir de gidip hiç ihtiyacım olmamasına rağmen 10.6'mı satın alacağım ???
Bazen Apple, Microsoft gibi takılıyor ve beni deli ediyor...
İnanılmaz bir şey oldu! Bugün 2011 Mart'ın 31'i ve Digiturk Nisan 2011 dergisi geldi! Ocak ayından beri gelemeyen dergi ilk kez olması gerektiği gibi zamanında geldi! Duygularımı tarif edemiyorum!
Mutluluktan ağlamak üzereyim!
Teşekkürler Digiturk! Son 3 ayda en az 5-6 kez arayıp "kayıt" açtırdım ve sonunda sanırım başardınız!
Umarım önümüzdeki aylarda da bu harika performansı gösterirsiniz!
PYTHONPATH'e ilave
AppleScript ile pek çok uygulama (tabi desteği varsa) kontrol edilebiliyor. Yine daldan dala atlarken python için yazılmış appscript diye bir modül gördüm. Hemen pip'den kurayım dedim. Kurulum tamamlanmış gibi göründü fakat kontrol ettiğimde sorun olduğunu gördüm. Bazen pip'de bile bu tarz sıkıntılar oluyor. Biraz baktım etrafa çözüm aradım.
En azından source'u indirim kendim kurayım dedim.
python setup.py install
Kurulum oldu... aa, bir de baktım ki, klasik site-packages'ın altına değilde, şuraya kurmuş:
~/.local/Python/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages
Tabi bu alan benim path'de olmadığı için bir türlü import edemiyordum. Yine yeni bir şey öğrendim. Hemen PYTHONPATH'e ekleme yaptım:
export PYTHONPATH=~/.local/Python/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages:$PYTHONPATH
Bu appscript kısaca şu işe yarıyor; iTunes'u açıp bir parça çalmaya başlayın. Bu sırada da ipython'u açıp aşağıdakileri yazın:
from appscript import * iTunes = app(u'/Applications/iTunes.app') iTunes.current_track.name.get()
Yukarıdaki script http://www.libertypages.com/clarktech/?p=77 sitesinden alınmıştır.
Mutlu programlamalar!
TextMate ve Path sorunsalı...
TextMate'in sevdiğim özelliklerinden biri in-line olarak programlama yapabilmek. Örneğin html ile uğraşıyorsunuz, hemen bir div ve o div'in içinde 15 tane p ve p'lerin içinde de span'e ihtiyacınız var (iyi uydurdum dimi?) basit bir hareketle bunu programatik olarak yapabilirsiniz. Keza Zen Coding adında bir bundle var. Bununla da benzer hareketleri yapıyorsunuz ama çok pratik olmuyor bazen.
Bu tür işleri Ruby ile yapıyorum. Dökümanın içinde herhangi bir yere Ruby script'i yazıp bunu execute edebiliyorsunuz. Sadece Ruby değil neredeyse OS'daki her dilden istifade edebilirsiniz.
Ağırlıkta Python kullandığım için işlerimi Python ile halletmek daha kolayıma geliyor. Kendime sordum, neden bu işlerimi de Python ile yapmıyorum? Hemen menüye baktım elimde neler var diye
Kntrl + Shift + E ile "Execute Line/Selection as Python" komutunu gördüm. Hemen denedim, Hata mesajı verdi. Denediğim şey:
print "vigo"
yazmaktı. Invalid syntax filan. Hemen Bundle Editor'ü açıp baktım ne yazılmış diye. Bir baktım eval() kullanılmış. Pek çok dilde benzer komut vardır. Evaluate'in kısaltmasıdır ve string olarak verilen şeyi execute etmeye çalışır. Fakat Python'da mevzu bu şekilde değil. Eval, sadece ifadeleri evaluate ediyor. Yani
print eval("5+5")
yazdığınızda size 10 yazıyor. Yani string olarak verilen ifadeyi değerlendiriyor sadece. Şimdi bu işlerle uğraşırken birden farkettimki TextMate, benim Python'umu değilde sistemdeki default'u kullanıyor. Nasıl yani?
#!/usr/bin/env python
ile başlayan Python scriptini çalıştırırken gidip /usr/bin deki python'u kullanıyor. Halbuki benim environment'ımda python'un path'i
/Users/vigo/.local/Python/Library/Frameworks/Python.framework/Versions/Current/bin/python
Hemen TextMate'in Shell Environment ayarlarındaki PATH'e ekledim kendi path bilgilerimi. Gidip sona ekledim. Yani orada yazanların sonuna... (8 Meğerse sona değil başa eklemek gerekiyormuş!
aynen şu aşağıdaki gibi yaptım
/Users/vigo/.local/Python/Library/Frameworks/Python.framework/Versions/Current/bin:/Users/vigo/.local/Python/bin:/Users/vigo/.local/Python/Packages/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Kullanıcı profilimdeki path bilgisini ve macports'dan kurduğum executable'ların için gereken /opt/local/bin'i de ekledim.
Sorunun bir kısmını çözmüştüm. Şimdi diğer tarafı çözmem gerekiyordu. Bundle editöre geri döndüm. Biraz kolaya kaçtım, hatta biraz da tavsiye edilmeyen bir yöntemi kullandım. eval() yerine exec() kullandım.
Zaten basit işlerde kullanacağım için çok da sorun değil. Belki sizin de işinize yarar:
#!/usr/bin/env python import os from sys import stdout, stdin, exit, version from traceback import format_stack py = stdin.read() if 'TM_SELECTED_SCOPE' in os.environ: stdout.write(" ") else: stdout.write("\n") # original # try: # scope = {} # result = eval(py, globals(), scope) # except: # exc = format_stack() # stdout.write(exc) # exit(206) # exiting with this code show's output in a tooltip # else: # stdout.write(repr(result)) # mine exec(py)
Kntrl + Shift + E ile artık python scriptlerimi basitce execute edebilirim.
Kendi Ruby'ini gem'ini kendin kur!
Sıcağı sıcağına hemen yazmak istiyorum. "Kendin kur" kampanyamızın devamı yeni bir maceraya daha hoş geldiniz. Amacımız Mac OS X'e Ruby kurmak. Öncelikle macports'un kurulu olması gerekiyor! Bilmem daha önceki yazımlarımda belirttim mi? ama macports'u kurabilmek için MacOS SDK kurulu olması gerekiyor. SDK, Mac aldığınız zaman yanında verilen dvd'lerde mevcut. En kötüsü developer.apple.com'a üye olup ücretsiz indirebilirsiniz.
Önce gereken port'ları kuralım; (Bu bilgi tabiiki macports'dan)
libiconv
readline
openssl
zlib
ncurses
libyaml
libffi
Eğer libyaml ve libffi dışındaki tüm portlar çok sık kullanılanlardan olduğu için muhtemelen kurulu olabilir. Port'un kurulu olup olmadığını anlamak için:
$ port installed PORT_ADI
yapapabilirsiniz. Gerekli port'ları kurduktan sonra, hemen Ruby'nin source'unu indirelim. Ben bu yazıyı yazdığım sırada versiyon 1.9.2-p180 vardı. Hemen;
http://www.ruby-lang.org/en/downloads/
adresinden indirebilirsiniz. Hemen gerekli folder'ları açalım:
$ cd ~ $ mkdir -p .local/Ruby
ve configure satırı:
LDFLAGS="-L/opt/local/lib" CPPFLAGS="-I/opt/local/include" ./configure --prefix=/Users/KULLANICI_ADI/.local/Ruby --with-rubylibprefix=/Users/KULLANICI_ADI/.local/Ruby/lib/ruby1.9 --enable-shared --enable-pthread --program-suffix=1.9 CFLAGS=-D_XOPEN_SOURCE=1
KULLANICI_ADI yazan yere kendi kullanıcı adınızı yazmayı unutmayın! Dikkat ettiyseninz program-suffix'e 1.9 yazdık. Bu şu anlama geliyor, sistemdeki Ruby'e dokunmadan, ruby ile alakalı tüm dosyaların sonuna 1.9 eki gelecek. Yani sistemde hem ruby hem de ruby1.9 diye iki farklı şey olacak. Keza bu irb, gem vs herşey için geçerli.
configure başarılı olduysa şimdi;
$ make $ make install
yapalım. Bu işlem bittiğinde (eğer error ile karşılaşmadıysanız) .local folderınızda;
Ruby/ bin/ include/ lib/ share/
folder'ları oluşmuş olacak. Hemen ~/.profile ya da ~/.bashrc (her ne kullanıyorsanız) dosyasını açıp PATH'e ek yapmak lazım:
export PATH=~/.local/Ruby/bin:$PATH
ya Terminal'i açıp kapatın ya da;
$ source ~/.profile # eğer .profile kullanıyorsanız $ source ~/.bashrc # eğer .bashrc kullanıyorsanız
Şimdi ruby yazıp TAB'e basın ve ruby1.9'u görün! hemen IRB (Ruby interactive shell) için fix yapalım. Renkli görüntü için;
gem1.9 install wirble
diyin... sonra ~/.irbrc dosyası oluşturalım;
$ cd ~ $ touch .irbrc $ nano .irbrc
aşağıdakileri paste edelim:
require 'rubygems' require 'wirble' Wirble.init({ :skip_prompt => true, }) Wirble.colorize
Detaylı bilgi için http://pablotron.org/software/wirble/README adresine bakabilirsiniz.
Denemek için;
["test", {:hash_key => proc { nil }}, Class, 5]
Keza, RUBY yazıp TAB'e basın ve otomatik tamamlama olayını görün!
Bu defa son!
Biliyorum daha dün (ya da önceki gün) bu konu ile ilgili bir güncelleme yapmıştım fakat asıl yapmam gerekeni daha yeni hatırladım. Hatta kendi tarafımda pek çok şeyi de düzeltmek zorunda kaldım.
Kendi Ruby'ni kendin kur olayına gireceğim bu bakımdan aklımda bir lamba yandı.
Aslında bu lamba çok daha önce yanmıştı ama ben unutmuşum.
Sırasıyla;
Kendi Python’unu, Django’nu, paketlerini kendin kur
“Kendi Python’unu kendin kur” yazımda eksik yerler buldum!
yazılarına son bir ek geliyor!
Tüm ayarlamalarımızı ~/.local üzerine kurmuştuk ya, işe başlamadan önce;
$ cd ~ $ mkdir .local $ mkdir .local/Python $ mkdir .local/Python/Packages # ya da $ mkdir -p .local/Python/Packages
Şeklinde ilerleyeceğiz. Bu sayede, ileride Ruby kurmaya karar verirsek, .local/Ruby altına derleyeceğiz Ruby'i...
Hemen configure satırını da düzeltelim:
$ ./configure --enable-unicode=ucs4 --prefix=/Users/KULLANICI_ADI/.local/Python --enable-framework=/Users/KULLANICI_ADI/.local/Python/Library/Frameworks
.bashrc için gereken düzeltmeler:
export PATH=~/.local/Python/Packages/bin:$PATH export PATH=~/.local/Python/bin:$PATH export PATH=~/.local/Python/Library/Frameworks/Python.framework/Versions/Current/bin:$PATH # pip kurulumundan sonra ekleyin... export PIP_INSTALL_OPTION="--prefix=/Users/KULLANICI_ADI/.local/Python/Packages/" export PYTHONPATH=~/.local/Python/Packages/lib/python2.7/site-packages
Aslında önceki yazılara göre tek fark, .local folder'ının altına Python diye bir folder açtık ve tüm derleme ve kurulum işleri için o yeri gösterdik.
"Kendi Python'unu kendin kur" yazımda eksik yerler buldum!
Geçtiğimiz günlerde yazdığım yazımda çok önemli bir eksiklik yaptığımı bugün farkettim. Neden bugün? Bugün yeni makine kuruyordum ve sıra Python'u kurmaya gelmişti. Hemen blog'umu açıp kendi yazdığım yazımı okumaya başladım.
Herşey güzel güzel ilerledi. Sıra python'un PIL paketini kurmaya gelmişti ki jeton düştü! Python Image Library'nin ihtiyacı olan 2 kütüphane eksikti... bunlar:
jpeg freetype
Bu kütüphaneleri ports'dan kurmak gerekiyor öncesinden:
$ sudo port install jpeg freetype
şeklinde kurmak gerekiyor Jpg ve Font desteği için...
Nano ve Syntax Highlighting
Geçenlerde Computer Networking adı iTunes-U videosunu izlerken harika birşey gördüm. Mac üzerinde, Virtual olarak Ubuntu'dan adam terminal'i açmış birşeyler anlatıyor. Dikkat ettim, açık olan text editörü Nano. AAaa... text rengarenk? Nasıl olur dedim? hemen google'ladım... Bir de ne göreyim? Nano'da Syntax Highlight olayı varmış.
Linux'da, uzaktaki makinelere bağlanınca en kolay ve rahat kullandığım editör olan Nano'nun bu desteği süper hoşuma gitti... Neredeyse tüm dosya tipleri için bu özellik var. Python'dan Ruby'ye, Apache Config'e kadar pek çok dosya için sağdan soldan config'leri toplayıp kendime bir config dosyası oluşturdum. Bu dosyayı home folder'ınızın altına .nanorc olarak koyun...
$ cd ~
İşte renkli NANO!