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.
Okumaya devam edin...İş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.
Okumaya devam edin...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).
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.
Okumaya devam edin...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.
Okumaya devam edin...İ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.
Okumaya devam edin...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?
Okumaya devam edin...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.
Okumaya devam edin...Fonksiyonel programlama dillerinde yaygın teknik; fonksiyonları mümkün olabilecek en alt fonksiyonlara ayırarak problemi çözme yönündedir. Yineleme yani ” recursion” fonksiyonları da bu noktada en iyi çözümlerden biridir. Yineleme fonksiyonu bildiğimiz üzere kendi kendini çağıran fonksiyondur.
Fakat yineleme fonksiyonları performans açısından yavaştır. Sebebi ise; fonksiyonlar, kendini her çağırdığında bellekte yeni bir yer açılır ve bu tarz fonksiyonlar, çağrılar sonucunda dönen değerleri kullanarak hesaplama yaptığı için hesaplama yapılana kadar tüm parametreler ve dönüş değerleri bellekte tutulur. Daha açık bir şekilde ifade edersek; son yineleme de dahil olmak üzere tüm yinelemeler bir değer döndürdükten sonra hesaplama yapıldığı için tüm değerler işlem sonuna kadar bellekte tutulur.
Böyle bir yöntem kullanınca da bellek fazla kullanıldığı için “StackOverflowException” ile karşılaşmak kaçınılmaz oluyor.
Okumaya devam edin...Kadın yazılımcı olmak neden zor? Bu zorluk nereden kaynaklanıyor düşündünüz mü?
Zannediyorum ki bunu en çok düşünenlerden biri bendim. Ta ki cevabını bulana kadar. Aslında bir çok sebep mevcut. İnsanların hala kadın yazılımcı fikrini kabullenememesi bu sebeplerin en başında geliyor bana göre. Kadın yazılımcı olmaz ve benzeri cümleleri çok sık duyuyorsanız eğer dikkat edin. Moralinizin bozulmasıyla başlayıp, bu fikri kabullenmenizle son bulacak bir süreçle karşı karşıya olabilirsiniz. Böyle bir durumda ne yapılmalı peki? Okumaya devam edin…








