Digg Reader

Google Reader kapandıktan sonra AOL Reader‘a geçiş yapmıştım. Bir süredir mobil uygulamalarının çıkmasını bekliyordum ama çıkacak gibi görünmüyor. Öte yandan sayfalara abone olmak epey uğraştırıcı. Çoğu blog rss desteği sunmasına karşın link koymuyor siteye ve bunu kaynak kodundan çıkartmak gerekiyor (ne azim!). Bunun için bir Chrome eklentisi yazılsa mükemmel olacak ancak o konuda da elini taşın altına koyan çıkmadı şu ana kadar.

Bugün Digg Reader‘ı kurcalarken aradığım özelliklerin onda mevcut olduğunu gördüm. Hem Chrome eklentisi ile sayfalara kolaylıkla abone olmak, hem de mobil uygulaması ile abonelikleri yönetebilmek mümkün. İnsan daha başka ne ister ki!

Backbone.js ve Firebase Simple Login

Geliştirdiğim bir backbone.js projesi için Firebase’in sunduğu Simple Login servisini deneme fırsatı buldum. Simple Login javascript kütüphanesi diğer kütüphanelerin aksine oturum durumunu tek bir fonksiyon üzerinden kontrol etmenize izin veriyor. Referans dökümanına göz atarken, örneğin isAuthenticated gibi bir metoda rastlamadım. Backbone.js router yönetimini düzgün bir şekilde tanımlamazsanız oturum kontrolünde sorun yaşayabilirsiniz.

Aşağıdaki örnek kodlarda eğer Backbone.history.start fonksiyonuna silent değerini vermezseniz router sistemi otomatik olarak tetiklenecek. Bu durumda hem Simple Login için tanımlı callback hem de ilgili router çalışmış olacak. Haliyle bu farklı view sınıflarının çalışmasına yol açacak. Ancak silent değeri verildiğinde ilgili callback içinden dilediğiniz gibi oturum durumunu yönetebilirsiniz.

    App.Instances.firebase = new Firebase(FIREBASE_URL);
    App.Instances.router = new App.Router();
    Backbone.history.start({ silent: true });

    App.Instances.firebaseAuth = new FirebaseSimpleLogin(App.Instances.firebase, function(error, user) {
        if (user) {
            App.Instances.router.navigate('home', {trigger: true, reload: true});
        } else {
            App.Instances.router.navigate('login', {trigger: true, reload: true});
        }
    });

SSD ile Gelen Saadet

Geçen gün eski Macbook Pro(2011)’m için@aliozkn‘ın tavsiyesiyle dayanamayıp SSD satın aldım. Hız konusunda epey iyileşme oldu. 2-3 dakikada kendine gelemeyen makina 10 saniyede hazır durumda şimdi.

SSD için Samsung 250GB 840 EVO’yu tercih ettim. Arkadaş PRO sürümünü önermişti ama fiyat farkı çok olunca (ben alırken 200 liraya yakındı) EVO’da karar kıldım. Şu an gene fiyat artmış durumda. Ben alırken KDV dahil 453 TL’ye mal olmuştu. Şu an 523 TL fiyatı.

SSD takarken faydalanmak için şu videoya göz atabilirsiniz.

Bilgisayarımla yaşadığım diğer sorun ise fan sesi ve fanın sürekli çalışmasıydı. Temizlemek hiç aklıma gelmemişti bunca zamandır (3 yıl). Tekrar içini açıp fanın önünde biriken tozları temizledim. Neredeyse üçte birlik kısmını toz kaplamış. Temizleme işinden sonra herhangi bir sesle karşılaşmadım. Sadece PHPStorm ile proje açılışında indexleme yaparken fan çalışıyor, onun haricinde tık yok. Temizleme işlemi içinde şu videoya göz atabilirsiniz. Fan vidaları için küçük bir düz tornavidaya ihtiyacınız olacak. Orada garip bir şekille karşılaşabilirsiniz ama düz tornavida hallediyor olayı.

İlk videoda anlatılan diske bağlı vidaları söküp ssd’ye takmak içinde pense kullandım, bunuda bilgi notu olarak düşeyim ihtiyacınız olursa :) Orada da farklı bir uç gerekiyordu.

Ölü Yıllar : 2012 -2014

Son iki yılda verdiğim yanlış karar sayısı çok fazla. Bir süredir bu yanlış kararların etkilerini azaltmaya çalışıyorum. Maalesef bu konuda çok başarılı olduğum söylenemez. Aynı yerde dönüp dolaşıyormuşum gibi bir his var içimde. Buna rağmen tek teselli kaynağım bu durumu tersine çevirme azmim. Bakalım gelecek günler ya da haftalar neler gösterecek…

Bu kısa günlük girdisini güzel bir kitap önerisiyle sonlandırayım : Hackers & Painters, Paul Graham. Kitap 2004 yılında çıkmış, ben epey geç okuma fırsatı buldum.

Denizi Görmeye Çalışmak

Mutluluk asıl hedefi olmalı insanın. Mutlu olmadan, bir kere elde ettiğimiz bu yaşama şansını kendi doğrularımızla yaşamadan maalesef çok şey kaybediyoruz.

MFÖ’ün Bazen şarkısında geçen sözlerdeki gibi:

Deniz masmavidir ne güzel, ama insanlar görmez bazen.

İnsanın, her ne olursa olsun, kendisini mutlu eden hedefleri belirlemesi ve onlara odaklanması gerekiyor. Bu mutluluktan çevresindeki diğer insanlar da elbet nasibini alacaktır. Diğer türlü karamsar bir ruh hali ile kendimizi üzmenin bir anlamı yok.

Henüz tanışmamışsanız bikafalar isimli video ropörtaj sitesine kesinlikle göz atmalısınız. Bir süredir uğramıyordum ve geçen gün videoları ardı ardına izledim. Genelde “Başarısızlık Hikayeleri” altındaki videolar çok hoşuma gidiyor. Acaba bu kategori genel bir site altında, insanların kendi başarısızlıklarını anlattığı bir oluşuma dönüşebilir mi? Birileri belki akıl edip hayata geçirir ilerde. İnsanların geçtiği yollardan ilham almak, bazı şeyleri çözmede çok işe yarıyor.

Android Studio

Bir süredir IntelliJ IDEA‘yı android çalışmalarımda kullanıyorum. İşlerimi çok kolaylaştırdığını söylemem gerekiyor. Ancak geçenlerde Android Studio ile ilgili sayfaya denk geldim. Daha önce Google’ın JetBrains ile anlaştığı haberini okumuştum ancak IDE’nin indirilebilir olduğunu bilmiyordum.

Bugün geliştirmekte olduğum bir uygulamaya Maven desteği eklerken sıkıntı çıktı. Fırsattan istifade Android Studio’yu denemeye karar verdim. Eski projeyi import etmede bir sorunla karşılaşmadım. Çoğu şey eski IDE ile aynı neredeyse, firmadan ötürü. Ancak bağımlılık yönetimi kısmında Android için iyileştirmeler yapılmış. Maven ile yaşadığım sorun android-support v4 kütüphanesinden kaynaklanmıştı. Yeni IDE ile bir kaç tıklama sonucu kolayca bu kütüphaneyi projeye tanıttım. Henüz kararlı sürüme ulaşmamış olmasına rağmen IDE’ye bir şans vermenizi tavsiye ederim.

Android Universal Image Loader

Bir android projesine resimlerin asenkron olarak yüklenip önbelleklenmesi özelliğini eklemem gerekiyordu. Kodu yazmadan önce hazır bir kütüphane ararken Universal Image Loader isimli çok işlevsel bir kütüphane buldum. Kullanımı çok kolay. Öncelikle ayarları bir defalığına tanımlamamız gerekiyor. Bunu aktivitenin onCreate metodunda yapabilirsiniz.

ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(this).build();
ImageLoader.getInstance().init(imageLoaderConfiguration);

Ardından liste adaptörünüzün bindView metodunda (CursorAdapter kullandığımdan ötürü bu metod) ilgili ImageView elemanını aşağıdaki şekilde tanıtmanız mümkün:

ImageLoader.getInstance().displayImage(imageUrl, viewHolder.image);

Sadece bu kadarlık düzenleme ile istediğim özelliği eklemiş oldum. Çeşitli ayarları ile istediğiniz hale getirebilirsiniz.