Geleceği Yazanlar projesi Android, iOS ve Windows Phone eğitimleriyle mobil yazılım geliştirmek isteyen ve bilişim dünyasına adım atmak isteyen herkes için büyük bir fırsat. Hiç programlama bilgisi olmayan biri bile bu proje sayesinde çok fazla şey öğrenebilir.

Continue Reading...

PostgreSQL’de sürekli erişilebilir (HA) bir küme yapılandırması (cluster configuration) kurmak, çeşitli replikasyon (replication) metodları ile mümkündür. Sıklıkla Warm Standby veya Log Shipping şeklinde anılan replikasyon modellerinde sürekli arşivleme (continuous archiving); birincil/ana (primary/master) sunucu başarısız olursa işlemleri devralmaya hazır bir ya da daha fazla yedek (replica) sunucu olması ile sağlanır.

Bu yazıda, ana (master) sunucuyu çeşitli sebeplerden dolayı kaybedersek (fail scenarios) replika (yedek) sunucuyu nasıl birincil/ana sunucuya yükseltebileceğimizi (promote) göreceğiz.

Öncelikle yük dağıtma (failover) senaryosunun düzgün tamamlanabilmesi için ana sunucudaki postgresql servisinin durmuş olduğundan emin olmalıyız. Aynı anda çift master rolü olan bir replikasyon beklenmedik sonuçlar doğuracaktır. O yüzden imkan varsa -sunucu erişilmez hale gelmiş olabilir; donanımsal sorunlar vs-, önce ana (master) sunucudaki postgresql servisini durdurmalıyız.

Continue Reading...

Cron, Unix tabanlı işletim sistemlerinde zaman bazlı çalışan bir görev planlayıcısıdır (job scheduler). Sistem tarafında yaptırmak istediğimiz görevi belirlediğimiz zaman aralıklarında çalıştırır. /etc dizini altındaki crontab dosyası ise cronların çalışma zamanını ve görevlerini barındıran yapılandırma dosyasıdır. Windows’ taki karşılığı ise zamanlanmış görevlerdir.

Continue Reading...

İşlerin sistematik olarak yürütülmesinin istendiği her çalışmanın bir proje analiz süreci vardır. Proje analiz sürecinde yapılacak işin net olarak belirlenmemesinin doğuracağı kafa karışıklıkları, işin ortasında gelecek revizyon taleplerinin sizi X yolundan çıkarıp Y yoluna sokmasının yaşatacağı zaman kayıpları ve tasarım sürecinde istenilen işlevlere sahip bir ürünün ortaya konulamaması gibi durumlar muhtemelen can sıkıcı olacaktır.

Wireframe, tek satır kod yazmadan, tabiri caizse tasarımın ‘T’ sine dahi dokunmadan projenin kurgusu ve işlevselliği hakkında hem yazılımcıya hem de müşteriye fikir sahibi olma imkanı sağlayan proje ön hazırlık aşamasıdır. Proje hakkında düşündüklerinizin görsel taslağı niteliğindedir ve projenin özellikleri ve fonksiyonalitesi hakkında bilgi verir. Proje içeriğinin nasıl konumlandırılacağını, neyin ne kadar yer kaplayacağını aşağı yukarı ortaya koyacağı için planlamanın doğru oranlarla yapılmasını sağlar.

Continue Reading...

Logrotate komutu /usr/sbin klasörü altında yer alan bir komuttur. Bu komut ile

    • Dosya boyutu belirli bir büyüklüğe ulaştığında log dosyasını rotate(çevrim) etme
    • Rotate işleminden sonra yeni log bilgileri için dosya yaratma
    • Rotate edilmiş log dosyalarını sıkıştırma
    • Eski log dosyalarını kaldırma
    • Log dosyalarını tarihe göre saklama

gibi işlemler yapılabilir.
Logrotate komutunun çalışma yapısı aslında cronun çalışma yapısıdır. /etc/cron.daily/logrotate dizininde günlük olarak çalışan bir shell betiğidir (script).

Continue Reading...

Android uygulama geliştirirken; gerek tasarım, gerekse yazılım geliştirmesi sırasında uygulamanın sınırlarını belirlemek gerekiyor. Net bir şekilde belirlenen isterler, uygulamanın geliştirme ve tasarım süresini kısaltacak ve mevcut sürenin verimli kullanılmasını sağlayacaktır.

Bir uygulamanın tablette mi telefonda mı ya da daha doğrusu hangi büyüklükteki ekrana sahip cihazlarda çalımasını istiyorsak, buna göre çeşitli ayarlamalar yapmalıyız.

Continue Reading...

Directive’ler AngularJS’in temel taşı ve en kuvvetli özelliğidir. Bu sayede, kendi işimize yarayacak html tagler üretebiliriz. AngularJS kütüphanesiyle yazılmış kodlara baktığımız zaman `ng-app`, `ng-repeat`, `ng-controller` diye gördüğümüz her şey aslında birer `directive`dir. Şimdiye kadar ben de bu `directive`lerin son kullanıcısıydım. Artık kafama koydum ufak da olsa bu deryaya bir adım atacağım :)

Detaylı bilgi edinebilmek için bir çok kaynak okudum, teknik konuşmalar izledim ve aslında directivelerden önce `linking`, `compiling`, `scope`, `data binding` gibi kavramların da iyice sindirilmesi gerektiğini fark ettim. Bu araştırma sürecinde AngularJS’in yazarlarından Misko Hevery’nin bu video kaydını oldukça faydalı buldum. Gerek `directive`ler olsun, gerek AngularJS’in çalışma prensibi olsun oldukça basit bir dille ifade edilmiş. `Scope`larla ilgili olarak bu günlük yazısına bir göz atmanızı tavsiye ederim. AngularJS’te tek yönlü bağlama (one way binding), iki yönlü bağlama (two-way binding), metin bağlama (text binding) diye üç tip yöntem var. Bütün bu yöntemler bu kaynakta güzel açıklanmış. Vaktiniz olursa bu kitaba da bakmanızı öneririm.

Bu kadar araştırma yaptıktan sonra artık sağ-tık directive’ini yazmaya başlayalım derim.

Continue Reading...

İki haftadır bankanın kaos ortamı yüzünden çözümlenememiş probleminin geçici çözümünü uygulamak için gece yarısını beklerken, biraz maillerimi kontrol edeyim istedim http://www.kadinyazilimci.com sitesinin fikir annesinin bir sorusu ile karşılaştım, şöyle diyordu;

Merhabalar,

‘Olay mahaline geri döndük’ http://www.kadinyazilimci.com/olay-mahaline-geri-donduk/ yazımın sonunda Yalova’da konuştuklarımıza dayanarak bir konuyu tartışmaya açtım. Sizler ne düşünüyorsunuz merak ediyorum. Okuyup fikirlerinizi yazarsanız sevinirim.

Sevgiler,

Elif

 

Elif, “Niye derslerde kızların başarısı daha düşük sizce?” diye sormuştu. Gecenin köründe çoktan çözümlenmiş olması gereken ama saçma salak sebeplerden çözümlenmemiş sabır testinin başında beklerken, yıllardan beri yaptıklarımının karşılığını almak için daha fazla efor sarf etmek zorunda kalmış bir kadın olarak bir anda aşağıdaki satırlar kesintisiz dökülüverdi.

Continue Reading...

Sıfırdan Başlamak

Eda Çatamak —  23 Haziran 2014 — 1 Comment

Hayatımızda “başarı” ismini verdiğimiz olgu, çabalarımızın ve emeklerimizin cesaret ile harmanlanıp istediğimiz sonucun elde edilebilmesidir. Başarıyı yakalamak için çabalamaktan vazgeçmemek, emek vermek ve cesaret göstermek gerektiğine inanan ben, hiçbir şeyde olmadığı gibi başarının da kendi kendine size geleceğini düşünmemekteyim. Bir insanın yürüme aşamasını düşünelim bunun için. Var mıdır bana emeklemeden, düşüp kalkmadan, ağlamadan annesinin şefkatli kollarına doğru yürümeye başlayan bir çocuk gösterebilecek olan? Yürümek için bile önce emeklemek, dengeyi ve ayakta durabilmeyi öğrenmek, bu sırada durmadan düşüp kalktıkça çekilen acıya rağmen bir daha ayağa kalkıp denemek gerekirken başarının kendi kendine size geleceğini umarak beklemek olur iş midir? Peki ya bir yazılımcı olabilmek için, bu alanda başarıyı yakalayabilmek için ve de insanların gözünde olabilmesi bunlardan daha zor olan kadın yazılımcı olabilmek için yılmadan daha çok çabalamak, daha çok emek vermek ve cesaret göstermek gerekli olan aşamalar değiller mi?

Continue Reading...

Merhabalar,

Sizlere bu yazımda Android uygulama geliştirmeye başlamak isteyenler için adım adım Ubuntu bilgisayarınıza nasıl Android kurabileceğinizden bahsetmek istiyorum.

Android uygulamaları, Eclipse üzerinde Java programlama dili ile yazıldığı için öncelikle Eclipse’i indirmemiz gerekiyor elbette.

Continue Reading...