7 Ağustos 2012 Salı
Node.js nedir?
6 Ağustos 2012 Pazartesi
Java 7 - switch İfadelerinde String Nesnesi Kullanımı
public static final int MONTH_JAN = 1; public static final int MONTH_FEB = 2; // ... public void monthProcess (int month) { switch (month) { case MONTH_JAN: // ... break; case MONTH_FEB: // ... break; // ... } } Şimdi de aynı örneğin Java 7'de String nesneleriyle kullanımına bakalım; public void monthProcess(String month) { switch (month) { case "Jan": // ... break; case "Feb": // ... break; // ... } } Java 7'den önce bu örneği if-else if yapısıyla kullanıyorduk. public void monthProcessWithIf(String month) { if (month.equals("Jan")) { // ... } else if (month.equals("Feb")) { // ... } // ... } Artık doğrudan switch ifadelerinde kullanabiliyoruz. Ayrıca burada belirtildiğine göre Java derleyicisi switch ifadelerinde String kullanınca if-else if yapısına göre daha efektif byte-code üretiyor. Son olarak, switch ifadelerinde kullandığımız String ifadeleri büyük küçük harf duyarlı. Gözden kaçmasın. Ayrıca, Netbeans ve Eclipse (kullanıyorsanız) IDE'lerinin son versiyonlarını yüklemeyi unutmayın. Eski versiyonlar Java 7 desteği vermiyor. Doğrudan java derleyicisi kullananlar için bu açıdan sorun yok. Devamı için : Java 7 - switch İfadelerinde String Nesnesi Kullanımı
5 Ağustos 2012 Pazar
web hata ayıklama (debug) metodolojileri ve teknikleri
Hata ayıklama için çalışma Şekilleri
- Canlıda Çalışma : İnsan mecburda kalınca bazen canlıda çalışması gerekebiliyor diyebilirsiniz. Ancak benim bu konudaki tavrım net, canlıda bir şey çalışacak hale getirmeyin kendinizi. Yine de çalışmanız gerekiyorsa bu noktada, Sitenin hizmetini $_SERVER["REMOTE_ADDR"] yardımıyla sizin IP niz dışındakilere kapatınız. Sizin IP'niz dışındakilere güncelleme çalışması yapıldığını belirtiniz.
- Test ortamında çalışma : Gerçek Projenin aynısını kendi bilgisayarınıza veya test ortamınıza aktararak hatayı orada elde edip, düzeltmeye başlayın.
- Yayını Durdurun : Eğer hatanın nüksetmesi kritik önem arz ediyorsa, yayını ivedilikle durdurun. Ziyaretçilere bakım çalışması bilgisi verin. Bu müşterilerinize veya ziyaretçilerinize sizin hatadan haberdar olduğunuzu ve üzerinde çalıştığınızı göstererek, size çalışmak için zaman sağlayacaktır.
- Mevcut durumu Garanti altına alın : Hem dosyaları hem de veritabanını daha kötü bir senaryo için yedek alın. Yedek aldığınız veriler, önceki yedeklerin üzerine yazmamasına özen gösterin. Sıkışırsanız, veya daha kötü bir senaryo oluşursa en son state'e (hatanın oluştuğu ilk noktaya) geri döneceksiniz.
- Hata mesajlarını artırın , kapalıysa açın : Php hata mesajlarını ve Loglama hizmetlerini yazılım katmanından artırabiliyorsanız artırın. Kapalıysa açın.
- Sistemi kurtarmayı aşamalandırın : Hatayı tespit ettikten sonra ne yapacağınızı düşünmeniz gerekir. Madde madde bunları çıkarın. Mümkünse her maddeden sonra yedek alıp, durumu garanti altına alın.
- Yazılım hizmetlerini durdurun : Örneğin, yazılımınızda bir mail atma servii var. Siz hatayı tespit ederken sistem herkese mail atıyor olabilir. Bunun önüne geçmek için bu tarz hizmetleri durdurun veya sadece kendinizi ilgilendirecek şekilde düzenleyin.
- Log ekleyin : Hatayı tespit etmek için loglama yapın, varsa eğer, loglanan veri miktarını artırıp, logu detaylandırın.
- Çözümü Uygulayın : Bazı hatalar barizdir. Bazı hatalar ise bazen oluşur ki en beter hatalar bu şekilde ara-sıra oluşan hatalardır. Çözümü uygulayıp durum değerlendirmesi yapın.
- Sorunun çözüldüğünü Teyid edip, siteyi ayağa kaldırın : Artık işlemler bittiğinde, hatanın tekrar oluşmaması için tedbirinizi de alın. Ve siteyi tekrar yayına alın.
- Fazladan almış olduğunuz yedekler ile ilgilenin. (Dilerseniz silin, dilerseniz bir kaç gün sonra silmek üzere bir cronjob oluşturun)
dubluve.net guncel isletim sistemi oranlari
Birinci Windows!
Google analytics'ten edindiğim verilere göre, dubluve.net'i ziyaret eden kullanıcıların neredeyse %90 ı Windows işletim sistemi kullanıyor. Bunda %95 türkiye ağırlık ziyaretçimizin olmasının etkisinin büyük olduğunu düşünüyorum. İlk 3 veriyi de aşağıda paylaşmak istiyorum. Güncelleme : 05.08.2012| Browser | 4 Ağustos 2012 % Ziyaret | |
|---|---|---|
| 1. | Windows | 87.95% |
| 2. | Linux | 8.96% |
| 3. | Macintosh | 2.45% |
2 Ağustos 2012 Perşembe
MySQL Table is marked as crashed and last (automatic?) repair failed hatasi
repair table tablo_adi;komutuyla tablonuzu tamir etmeye çalışabilirsiniz. Ancak gelin görün ki bu işe yaramıyor diyorsanız, en azından MyIsam tablolarda çalışabilecek bir yöntem daha var. /var/lib/mysql/database_adi yoluna gidin. (veya veritabanınızın dosyaları her neredeyse..)
myisamchk -r -v -f --sort_buffer_size=128M --key_buffer_size=128M /var/lib/mysql/database_adi /tablo_adi.MYIşeklinde crash edilmiş bir myIsam motorlu tablonuzu kurtarabilirsiniz.
Tavsiye
Tabi ki bu hale gelip de bu yazıyı gördüyseniz, yedek alma sisteminiz henüz mevcut olmayabilir. Eğer kendinize ait bir sunucunuz var ise, Veritabanı yedekleme cronjobu eklemenizi tavsiye ederim. Buradan mysqldump ile yedek almayı öğrenin. Kendinize ait bir sunucunuz yok ise de hosting hizmeti aldığınız firmadan ISRARLA talep ediniz. Devamı için : MySQL Table is marked as crashed and last (automatic?) repair failed hatasiyazılımcı adayına tavsiyeler #2
Bu yazıda, yazılımcı olmak isteyen genç arkadaşlarımıza bazı tavsiyelerim olacak. Önceki tavsiyelerime şuradan ulaşabilirsiniz. Tabi belirtmek gerekir ki yine nacizane görüşlerimi paylaşıyorum. Bana katılan veya katılmayan olabilir.
Diğer yazının başında da belirttiğim gibi olmazsa olmaz bir madde söylemek istiyorum : İngilizce MUTLAKA Öğrenin!
1 - Şimdi ne yapsam deme, listeye bak!
Elinde her zaman bir @todo listen olsun ki, mevcut işin bittiğinde veya elinde bir iş olmadığında neler yapacağın konusunda kararsız kalma. Bunu ister bilgisayar ortamında tut, ister çok sevdiğin defterinde. Fakat tut!
2 - Community ve stackoverflow.com
Dünyada yazılımla ilgilienen çooook fazla kişi var. Türkiyede kulaktan dolma bilgiler biraz daha ön planda olsa da, yurtdışında hem kalite olarak hem de sayıca çok fazla kişi bulabilirsiniz sizin yaptığınız şey ile ilgilenen. Yardım isteyin. Fikir isteyin. Community dediğimiz şey, açık kaynak veya ücretsiz yazılımlarda özellikle ayrıca faydalanılması gereken bir konu. Bu kişileri (doğru kişileri) ve bu siteleri (doğru siteleri) takip etmeniz çok iyi olacaktır. stackoverflow.com da bunlardan birisi. Arkadaşlarınızla yarışma yapın. Örneğin stackoverflow.com da 1 ay içinde kim en yüksek puana ulaşırsa, ona kendi içinizde bir ödül alın. Bu 2 açıdan önemli. * 1. si başkalarının kodlarında veya sorunlarında, onların deneyimlerini görüp, tecrübelerini edinebiliyorsunuz. * 2.si başkaları da sizin kodlarınıza veya sorunlarınıza yönelik çözüm önerileri sunuyorlar. Siz probleminizi çözmeye uğraşırken bilin ki başkaları da bunla ilgileniyor.3 - Dünya Web'de buluşuyor.
Arkadaşlarınız ile bir yerde buluşackasanız bu cafe veya bir lokanta olabiliyor. Veya bir çay bahçesinde görüşebiliyorsunuz. Ancak ölçeği büyütürsek, tüm dünyanın bir araya gelebileceği tek yer Web (www).
Masaüstü yazılım devri azalıyor. İşletim sistemlerinin bile internetten açılması tasarlanan günümüzde, buna göre ya entgere sistemler üzerine ya da web üzerine çalışmanızı tavsiye ederim.
4 - Doğru çalışma ortamınızı (workbench) kurun
Bir işle ilgilenirken , o iş ile ilgili gereksinimler her ne ise, onu çalışma ortamınızda aynen simule etmeniz gerekiyor. Aksi takdirde canlı sistemde çalışmak ve hata üstüne hata yapmak zorunda kalabilrsiniz.
Örneğin facebook eklentisi geliştiriyorsunuz. Kendinize facebook ortamını simule edecek bir yapı kurun. Facebook api'sinden bir array bekliyorsanız, o array'i ilgili metodlarınıza siz gönderin. Facebook'a gerçekten bağlanma ihtiyacını local ortamınızda simule etmiş olursunuz.
5 - Hata loglama
Her ne geliştiriyorsanız geliştirin, kodunuzun bir yerinde hata olma olasılığını bilin. Ancak bu hatayı bize sadece geliştirici araçları raporlamaz. Bir şekilde canlıda çalışan kodlarınızda da hata meydana gelecektir.
Doğru bir hata loglama sistemi kurmanız gerekir demeden önce, sizi bunu önemini idrak etmeye davet ediyorum. ÇOK ÖNEMLİDİR.
Hataları doğru veya yanlış , bir şekilde loglamayı prensip haline getiriniz. Bir hata olduğunda ilk bakacağınız yerler buralar olması lazım. Daha sonra doğru loglamayı kendi ihtiyacınıza göre yaparsınız zaten.
Devamı için : yazılımcı adayına tavsiyeler #231 Temmuz 2012 Salı
cpanel eximstatsi otomatik bosaltmak - python
import MySQLdb as sql import sys connection = sql.connect('localhost','root','mysqlrootsifresi','eximstats') cursor = connection.cursor() cursor.execute("show tables") result=cursor.fetchall() for x in result: cursor.execute("truncate %s" % str(x[0])) Not : python 2.4 üzerinde geliştirilmiştir. 2.7 de veya 3.x te çalışacğaının garantisini veremeyiz. * python-mysql eklentsinin yüklenmiş olması gerekmektedir. Devamı için : cpanel eximstatsi otomatik bosaltmak - python