Chris Stephenson ve “Bilgisayar Bilimleri’nin Başarısı”

“Bilgisayar Bilimleri ‘nin başarısı”, 2012 ‘de yayınlanan ve CS alanını hem bilimsel, hem de tarihsel ve sosyolojik açıdan ele alan, küçük sorular ve şakalarla renklendirilmiş, şaşırtıcı ve bu alana ilgiliyseniz kanımca 1 saatinizi almaya değecek bir konuşma. Konuşmanın içeriği şu şekilde özetlenmiş:

Bilgisayar Bilimleri’nin aslında masamızdaki (ya da cebimizdeki) küçük makineyle sadece dolaylı bir bağı var. Temel ve geniş bir bilim alanı. 60 dakika içinde felsefeden cinsiyete, cinsellikten siyasete, sosyolojiden tarihe ve nihayet kaplanın çizgilerine varan bir yolculuk yapacağız. Sizi şaşırtacak en az bir şey öğreneceğinizin garantisini veriyoruz.

Konuşmayı veren hoca, Chris Stephenson, Bilgi Üniversitesi Bilgisayar Bilimleri bölümünün başkanıydı, yanılmıyorsam bölüm kapatıldıktan sonra da üniversitede akademisyen olarak kaldı. Kendisi yaptığı bazı dersler ve konuşmaları da Vimeo ‘da yayınlamış. Ayrıca bu Ocak ayında T24 ‘te yayınladığı ve günümüz Türkiye ‘sine güzel bir paralel çeken, IRA üzerine bir yazısı da var.

Bilmek isterseniz eğer: 25 yıl Türkiye ‘de yaşamış bu hoca, dün bu saatlerde “Bu suça ortak olmayacağız” bildirisine imza attığı için, muhtemelen piyango usulüyle seçilen, işini kaybeden ve tutuklanan üç akademisyene destek olmak için gittiği adliyedeki arama esnasında, çantasında an itibariyle ülkenin üçüncü büyük partisine ait bir davetiye bulunduğu için sınırdışı edildi. Çünkü, Türkiye’de hiçbir başarı cezasız kalmaz.

Pushbullet nedir? SSH ve Transmission ile Pushbullet Kullanmak

pushbullet

Pushbullet, tamamen ücretsiz bir push notifikasyon servisi. Google hesabınızla kayıt olup giriş yapabildiğiniz Pushbullet sayesinde, bir metni, dosyayı ya da bağlantıyı, birden çok tanımlı hedefe ulaştırabiliyorsunuz, kendi bildirimlerinizi yapabildiğiniz gibi, bu sayede tarayıcınızdan iPhone ‘unuza bir dosya göndermek de son derece kolay.

Ben Pushbullet ‘i kendi push notifikasyonlarım için aylardır kullanıyorum, bir bildirim oluşturduğunuzda bu bildirimi, Pushbullet sizin için bir iPhone ‘a, Android ‘e, Windows ‘a, Firefox tarayıcıya veya ağdaki başka bir arkadaşa ulaştırabiliyor. Tabii asıl kullanışlılık sizin Pushbullet.com ‘a girip oradan diğer cihazlarınıza bir şey  göndermenizle oluşmuyor, asıl kullanışlı olduğu yer, API sayesinde otomatik bildirimler oluşturabilmeniz.

Kendi kullanım alanlarımdan örnekle, aşağıdaki durumlarda bir bildirim iPhone ‘uma gönderiliyor:

  • SSH üzerinden bir bağlantı kabul edildiğinde
  • Sunucu üzerindeki bir servis başarısız olduğunda
  • Transmission üzerinden bir Torrent ‘in indirilmesi tamamlandığında
  • Belli aralıklarla IP kontrol edilip, sunucunun IP’si değiştiğinde

Bunlar sadece birkaç örnek, bunlar gibi pek çok bildirim oluşturabiliyorsunuz. Mesela SMARTD, bir diskinizde sorun tespit ettiğinde bildirim alabilirsiniz, ya da herhangi bir yazılımınıza entegre ederek olaylardan haberdar olabilirsiniz, bir RSS feed ‘i takip edebilirsiniz, kargo takibinize entegre edebilirsiniz, gibi.

Bunun için ben, aşağıdaki örnekteki gibi, bir curl komutu kullanıyorum, tek komutta bildirim gönderilmiş oluyor:
Devamını oku…

Bir Harfi Fazla Yazmak ve PHP5 Oturum Çöp Toplayıcısı

1778_large

Bugün, MeeGo Türkiye’ye göz attığımda bir gariplik fark ettim. Forum başlıklarının tasarımı bozuk görünüyordu. Tabii bu durumda ilk suçlayacağınız muhtemelen tarayıcıdır. Önce bir CTRL + F5, sonra da iPhone ‘dan girdiğimde tasarımdaki aynı sıkıntı hala önümde duruyordu.

Bu noktada yönetici hesabıma giriş yaptım. Daha iyisi, ben giriş yapar yapmaz sağ barın kaybolduğu gibi sayfalar da bozuldu. İşte buradan sonra o can sıkıcı yarım saati okuyorsunuz:

İlk önce Drupal ‘in Cache temizleyicisini denedim. Birkaç dakikalığına işe yaradı da, sonra yeniden bozuldu. Daha sonra Drupal ‘in tüm hataları ve olayları kaydettiği DBLOG ‘a (Yakın zamanlı kayıtlar) ‘a girdim. DBLOG ‘un avantajı, sunucunuza giriş yapıp logları elle kontrol etmeden, buradan PHP hata kayıtlarını görebiliyor oluşunuz. Burada kolaylıkla dikkat çeken PHP hatalarından birine tıkladığımda ise:


taxonomy.module dosyası 21 satırında Can't create/write to file '/tmp/#sql_36a_0.MYD' (Errcode: 28)

Devamını oku…

How Linux is Built

The Linux Foundation tarafından yapılmış, kısa, çoğumuzun bildiği ama yine de ilginç bir çalışma. Böyle daha çok materyal olsa, daha iyi anlatılsa ya Linux.

Sublime Text 2: Hayalimdeki IDE

Arabalara, balıklara, hatta posta pullarına ilgi duyabilecekken, evet şu bir gerçek ki benim hobilerimden biri IDE’ler. Hatta bazı günler, ortaya bir iş çıkarmaktansa sadece açıp onların arayüzüne bakmak, sağını solunu kurcalayıp çalışmayı takdir etmek geliyor içimden. Öyle ya, rahatınıza düşkünseniz, hesap makinesi yazmak için bile, a ile b ‘yi toplamak için bile rahat bir koltuğa, 23″ er inç iki ekrana, üst seviye mouse/klavye ikilisine, hızlı bir bilgisayara ve Linux’unuzun üzerinde koşan sağlam bir IDE’ye ihtiyaç duyabiliyorsunuz. Her ne kadar göze takım elbiseyle araba tamir etmek gibi gelse de gerçek bu, uğraştığınız işi eğlenceli bir aktiviteye dönüştürmenin yolu, içine birazcık lüks katmaktan geçiyor.

Sadece bunlar da değil, sanırım bugüne kadar piyasaya çıkmış, bir şekilde birileri tarafından kullanılmış çoğu editörü denemişimdir; NetBeans, Geany, Eclipse, Qt Creator (bunun amacı farklı tabii), hatta Kate, Nano ve kısa süreliğine Vim de, bunların arasına Windows ‘da kullandıklarımı, bir gün kurcalayıp attıklarımı, bugünlerde yeni yeni sayıları artan WebIDE ‘leri de eklerseniz, evet, IDE kurcalamak bence bir hobi. En azından geçen birkaç haftaya kadar böyle düşünüyordum.

Ve sonra.. Ve sonra hayatıma Sublime Text girdi, anladım ki IDE değiştirmek bir hobi değil, bir arayış. Yukarıda saydığım kamyon yüküyle editör, pek çok farklı amaca ve kullanıcıya hizmet peşinde, Nano bu listedeki belki de en özelliksiz, sade editörken, NetBeans ‘in özelliklerinin %10 ‘u kadarını keşfettiğimi sanıyorum. Hepsini bağlayan ortak nokta nedir? Hepsi kötü görünüyor! Yazılım da yazsanız, roman da yazsanız (niye romanı bir editörde yazacağınız bu yazının konusu değil) bu editörlerin arayüzleri bir felaket. Üstelik hepsi çok ağır, açılışları da, çalışmaları da, hantallığı illa ki hissediyorsunuz. Hantal olmayanları da neredeyse hiçbir özelliğe sahip değil, şanslıysanız sentaks renklendirme yapıyorlar sadece, gerisi size kalmış. Sadece bunlar da değil, bu editörler kendi aralarında kamplaşmış gibiler, ya özelliksizler, ya da korkunç karmaşık arayüzleri ve işlevsellikten tamamen uzak yaklaşımlarıyla özelliklerini kullanasınız gelmiyor bile.
Devamını oku…

myTinyTodo ile Yapılacakları Yönetmek

Yaklaşık 3 gündür, yapılacak listesi sorunuma bir çözüm arıyordum. Bunun bir sorun halini almasının asıl sebepleri; hem N9’daki TO-DO uygulamalarının yetersizliği, hem de benim bu alanda hiçbir çözümü tam olarak benimsememem oldu. Uygulamaların kimi yetersiz, kimi fazla yeterli/karmaşık, kimisi de fazlasıyla “fantastik” geldiler ki, kendi basit liste tutma amacıma hizmet ettiremedim bunları. myTinyTodo ise, şimdiye kadar bulduğum en iyi çözüm, ve her anlamda işimi görüyor. Peki, yapılacaklarımızın listesini tutacaksak, neden myTinyTodo?

myTinyTodo, basit bir PHP betiği. Sunucunuza kurup, dileğinize göre SQLite veya MySQL üzerinden kullanabiliyorsunuz. İlk avantajı da burada, diğer bir çok çözümün aksine, Web ‘de çalıştığınız için platform-bağımsız çalışabiliyorsunuz, üstelik tüm veriler sunucunuzda saklanıyor, ve kodlar açıkta olduğu için kendinize göre bir yön verme şansınız mevcut. Son derece basit bir kurulumdan sonra, myTinyTodo ile hemen çalışmaya başlamak mümkün, üstelik oldukça da yetenekli.

  • Ayrı listeler ve etiket mümkün. İsterseniz benim gibi, tüm yapılacaklarınızı Genel adında bir listede toplayabileceğiniz gibi, çok yapılacak işiniz varsa, bunları farklı listelere dağıtabiliyorsunuz. Daha önemlisi, her yapılacak notunuza bir etiket verip, etikete göre arama yapabiliyorsunuz. Mesela “Blog”, “MeeGo”, “ITStuff”, “Angarya” gibi etiketler yaratıp, basitçe sadece angaryaları, veya blog işlerini takip edebiliyorsunuz.
  • Bütün yapılacak maddelerine bir deadline verebiliyor, öncelik belirtebiliyorsunuz. Verdiğiniz bitiş süresi size “3 gün içinde”, “yarın” gibi mantıklı kelimelerle sunuluyor. Önceliklerde ise daha da mantıklı bir şekilde, +2, +1, 0 ve -1 seçenekleri mevcut. Böylece neyin önemli olduğunu bildiğiniz gibi, neyin önemli olmadığını da bilip, dikkatinizi dağıtmamış oluyorsunuz. İsterseniz maddelere not eklemeniz de mümkün.
  • Yapılacaklar size son derece sade bir arayüzde, gerekli her şeyi (öncelik,madde,bitiş tarihi ve not) tek satırda, renklendirilmiş şekilde veriliyor. Anlamak için bir bakış yeterli.
  • Listelerinizi isterseniz parola korumalı hale getirebiliyorsunuz, ayrıca yine isterseniz, bazı listeleri halka açık hale getirmek, hatta RSS üzerinden besleme vermek de mümkün. Böylece, kapalı kapılar ardında kalması gerekmeyen işlerinizi, etrafınızdakilerle paylaşmanız mümkün hale getirilmiş.
  • MyTinyTodo ‘nun harika uyumlu bir mobil versiyonu da var, http://kurulumunuz.com/?pda yapıp, akıllı cihazlarınızdan bu kullanımı son derece kolay arayüze erişebiliyorsunuz ki, büyük bir artı. N9 için konuşursam, şimdiye kadar gördüğüm en iyi TO-DO web arayüzü bu yazılımda. Daha da iyisi, arayüzün tamamı dinamik, sayfalar arasında gezinmiyorsunuz. Üstelik eklediğiniz yeni maddelerde “/” işaretiyle akıllı özellikler kullanmak mümkün. Mesela, “/+1/ MyTinyTodo’dan bahset /Blog/” yazıp, Blog etiketine +1 öncelikte bir madde eklemek mümkün.
  • Bunların dışında, myTinyTodo, isterseniz yapılacaklarınızı sıralama ve CSV veya iCalendar olarak dışa aktarma yeteneğine de sahip. Türkçe dil desteği de myTinyTodo ‘da mevcut.

Özetlemek gerekirse; myTinyTodo son derece sade, pratik, oldukça fonksiyonel ve de güvenli. Üstelik senkronizasyon derdiniz olmadığı gibi, mobil kullanmak da mümkün.

Beni myTinyTodo ‘ya kadar getiren yol oldukça sıkıcıydı, açıkçası MTT ‘ye de fazla güvenmemiş, kurduktan sonra kendime göre yeniden dizayn etmeyi düşünüyordum. Biraz kullandıktan sonra, işin gerçeği şu ki, bu küçük web yazılımında ihtiyacım olan her şey, fazlasıyla iyi düşünülmüş ve entegre edilmiş bile!  myTinyTodo,  yaklaşık 1 yıldır yeni sürüm vermemiş olmasına rağmen, benim nezdimde en başarılı TO-DO uygulaması.

Demo ve indirmek için:  myTinyTodo.net

Python Mechanize ile Hayatı Kolaylaştırmak

3-5 satır Python yazmayı bilen herkesin ilk öğrenmesi gereken şey, bana kalırsa Mechanize kütüphanesi. Mechanize hem hızlı, hem etkili, hem çok kolay hem de Python üzerinde kullanıyorsunuz, ki bu da onu daha da kolay yapıyor. Peki nedir Mechanize? Mechanize, -daha çok benim onu kullandığım ve öğrendiğim haliyle- web tabanlı işlemlerinizi, 10 satırlık kodlarla otomatikleştirebileceğiniz bir araç. Tamamen metin tabanlı, sisteminize en ufak bir etki etmeden, bir tarayıcıymış gibi sayfalara bağlanıp, istediğiniz yerlere tıklıyor, formları doldurup gönderebiliyor.

Kullanım alanları neredeyse limitsiz. Mesela bir veriyi sürekli kontrol etmeniz gereken bir sayfa var, Mechanize ile otomatik bağlanıp o veriyi her seferinde kontrol ettirebilir, basit bir Python koduyla değişmeleri günlükleştirebilir, kendinize mail atabilir, wall komutu (ve KDE’nin wall komutlarını okuması) yardımıyla tek satır kodla uyarı kutuları oluşturabilirsiniz. Sadece değişimleri takip etmek ya da bir  veriyi okutmak değil, onu bir monitoring aracı olarak da kullanabilirsiniz. Ya da sizin için ısrarla bir sayfayı zorlayıp, formları doldurmasını sağlayabilirsiniz, mesela dershanelerde, üniversitelerde vardır bu, gecenin bir saati açılan sistemlere uyumaksızın girip ders almak. Mechanize sizin için gecenin bir saatine kadar bekler, defalarca kez ardı ardına dener ve diğer adaylar tek tek formu doldururken, formu saniyede doldurup gönderir, ne isterseniz onu almış olursunuz. Ki bu da neredeyse her daim çöken devlet sitelerinde sizin baş yardımcınız olabileceği demek oluyor.

Bunlar sadece bazı örnekler. Bir başka örnek olarak, benim N900 için yazdığım VodaSMS, Mechanize  yardımıyla Vodafone’un sitesine giriş yapıp bedava SMS hizmetini tüm o menüler, reklamlar arasında dolaşmadan tek tıkla yapabilmenizi sağlıyordu mesela. Bu basit bir örnek, isterseniz mechanize ile fatura detaylarını okutursunuz, isterseniz onu bir site için istemci yapmakta kullanırsınız. Gzip sıkıştırma, cookieler, HTTP refresh gibi badireleri sorunsuz atlattığı gibi, isterseniz User-agent ‘ı bir satırla değiştirir, kendisini bir Firefox veya Chrome olarak göstermesini sağlarsınız ki, ısrarlı denemeleriniz loglarda göze çok batmasın. Örnek arttırılabilir, bir web örümceği de yapmaya çalışabilirsiniz, YemekSepeti’nden sipariş de verdirebilirsiniz.

Övülebilecek daha çok yanı var, sağolsun hayatımı birden fazla kez kurtardı şimdiye kadar, göz önünde olmayışına daha  fazla izin veremezdim. Mechanize ile ne yapılamaz/yapması 10 satırdan fazlasını alır derseniz, aşırı JavaScript’li sayfalar, Flash, CAPTCHA gibi olaylar mechanize’ın kabiliyet alanının dışına çıkıyor. En büyük artısı, neredeyse hiç zamanınızı almadan, masal yazar gibi kod yazıp hayat kurtaran sonuçlar alınabilmesi, ki benim Python ‘a bakış açım zaten bu yönde olduğu için, ne kadar memnun olduğumu anlatmaya kelimeler yetmez. Hazırda karman çorman bir örnek olarak VodaSMS ‘in kodlarını inceleyebilirsiniz,  Vodafone Türkiye sitesini değiştirmediyse halen çalışıyor olmalı.

Nokia, Özgür Yazılım Dünyasından Ayrıldı


Nokia ve Microsoft’un sunduğu canlı webcast birkaç dakika önce bitti, sanıyorum ki FOSS’un, özellikle mobil Linux’ların yiyebileceği en ağır darbelerden biri oldu bu, Maemo ile birlikte ilk kez ana akım cihazlarda GNU/Linux görmeyi beklerken, Nokia tüm FOSS camiasından ayrıldığını açıklamış oldu.

Kısaca gelişmeler şöyle: Artık Nokia R&D (Araştırma/Geliştirme) bütçesini kısacak, Symbian’ın gelişimine tamamen son verilecek, Ovi mağazası Microsoft Marketplace’e entegre edilecek, MeeGo’ya yapılan yatırım %50 oranında kısılacak, Qt için bir açıklama gelmedi sanıyorum ama, ona da Nokia’nın destek vermek için bir amacı yok, çünkü Nokia Windows Phone kullanan yeni cihazlarında Qt kullanmayacak. MeeGo ilk defa bu kadar büyük bir güçle, mobil cihazların etrafını (netbook,IVI,smartphone,tablet..) saracakken Nokia’nın bu yaptığına küfür etmemek çok zor. Sonuçta Nokia, Dell gibi, HTC gibi sadece cihaz üreten uyduruk bir üreticilerden biri olacağı gibi, tüm geliştirme projelerinin fişini çekiyor ve FOSS desteğine son vererek baş düşmanlarından biri olan Microsoft ile anlaşıyor.

Devamını oku…

1 Yılda Maemo/N900 Gelişmeleri (veya: OSS 101)

Bundan yaklaşık 1 yıl kadar önce N900 ve Maemo üzerine bir inceleme yazmıştım. Halen muhtelemen Nokia N900 üzerine bulabileceğiniz en detaylı incelemedir, ve oldukça da tuttu, amaç sadece dökümantasyon eksiğini gidermek iken Maemo üzerine yazdığım üç yazı, blogumun en çok yorumlanan üç yazısı oldu, yine ilk 10’da Maemo ile ilgili 5 yazı var. İncelemeyi bitirirken sonlara doğru Maemo’nun açık bir platform oluşunun bu cihazı daha çok daha geliştirebileceği ve açık kaynak mobil cihaz tasarımının faydalarını dilim döndüğünce anlatmaya çalışmıştım. O gün incelemeyi yazarken insanları çok fazla heveslendirip yanlış bir alışverişe yol açmaktan kaçındığımı söyleyebilirim ama bugün için aslında ne kadar doğru konuşmuşum, keşke detaylıca anlatsaymışım diyorum. Bu yazımda Maemo bir yılda ne kadar ilerledi ve OSS (Açık Kaynak Yazılım) bu gelişime ne kadar katkıda bulundu, biraz bunlardan bahsedeceğim. İşin mutfağıyla ilgilenmeyenler için sıkıcı olabilir, uyarımı yapayım.

Devamını oku…

Maemo, Moblin ve MeeGo

Bilmeyen için özet geçelim; Nokia ve Intel bu Mobile World Congress’de Maemo ile Moblin platformlarının güçlerini birleştirip MeeGo adında tek bir isim altında yeni bir projeye başladıklarını duyurdu, böylece Nokia, henüz Maemo platformunu yeni oturtabilmişken yeni bir projeye başlamış oldu. Maemo’nun 6.sürümü (Harmattan) MeeGo’nun bir nevi “tanıtımı” rolü üstlenecek ve son Maemo sürümü olacak. Yeni MeeGo’nun bilinen en önemli farkları şöyle:

  • MeeGo sadece mobil cihazlarda değil, televizyonlar, netbooklar ve gömülü sistemlerde de çalışabilecek. Nokia ve Intel, MeeGo’nun her alanda kullanılabilmesini istiyor. Bu da demek ki, internet tabletinizle televizyonunuz aynı işletim sistemi üzerinde çalışabilecek ve aynı uygulamaları paylaşabilecek.
  • Maemo’nun aksine, MeeGo sadece Nokia tarafından değil Intel ve The Linux Foundation tarafından desteklenecek. Arkasında bir büyük şirket ve bir vakıf olan projenin önem verildiğinde başarısız olması pek mümkün değil.
  • MeeGo, Maemo gibi DEB değil RPM kullanacak, yani Debian çizgisinden çıkıp Fedora-tarzı anlayışı kabul edecek. Debian’dan gayet memnunken ve Ubuntu ile ana akım dağıtım tabanı halini almışken Fedora yolunun seçilmesinin sebebi belirsiz.
  • MeeGo hem ARM hem X86 işlemcilerde çalışabilecek. Ancak gelecekte Intel’in baskısıyla sadece X86 platformuna dönülmesi de şaşırtıcı olmaz.
  • MeeGo, Maemo’nun aksine geniş bir yelpazede ve farklı işlemci arabirimlerinde çalışabildiğinden ticari yazılım sektörünün ilgisini çok daha fazla çekecek. Maemo 6 Harmattan ile gelecek DRM fonksiyonu sayesinde üreticiler yazılımlarını sorun yaşamadan pazarlayabilecekler.
  • MeeGo, Maemo gibi herhangi bir kapalı uygulama barındırmayacak, sürücülerine kadar her şeyiyle %100 açık kaynak olarak geliştirilecek ve sunulacak.

Devamını oku…