Harun Reşit Zafer

bâki kalan bu kubbede bir hoş sadâ imiş

Sayfa 4 / 14

Java ile Geçen Sürenin Ölçülmesi

Java’da, geçen zamanın hesaplanması için iki temel metot System.currentTimeMillis() ve  System.nanoTime()’dır. Her ikisinin de kullanımı benzer şekilde.  Bu yazıda her ihtiyacımız olduğunda kullanabileceğimiz bir Kronometre (Timer) sınıfını tanıtmak istiyorum. Öncelikle bu iki metotun doğrudan kullanımlarını görelim:

currentTimeMillis

long startTime = System.currentTimeMillis(); 
 // ... zaman alan bazı işlemler ... 
 long endTime = System.currentTimeMillis();
 long estimatedTime = endTime - startTime; // Geçen süreyi milisaniye cinsinden elde ediyoruz
 double seconds = (double)estimatedTime/1000; // saniyeye çevirmek için 1000'e bölüyoruz.

okumaya devam

İngilizce Sözlük ve Kullanım Tavsiyesi

İngilizce sözlüğe ihtiyaç duyduğumda kullandığım iki sözlük Tureng ve Heinle’s American English Dictionary’dir. Tureng’i muhtemelen siz de kullanıyorsunuzdur. Sade ve kolay arayüzü, kelimelerin telaffuzunu içermesi ve sadece kelime değil aynı zamanda kalıplaşmış ifadeler,  deyimler ve bunların kullanıldıkları alanları (hukuk, bilişim, tıp vb.) da içeren çok zengin veritabanı Tureng’i tercih etmek için yeterli sebep. Heinle’s sözlüğüne gelince basit, sade ve anlaşılır bir açıklama ve aynı güzellikte bir örnek cümle içeriyor her bir kelime için. Benim asıl anlatmak istediğim ise bu iki sözlüğü birlikte nasıl kullanabileceğimiz. Ya da neden Tureng’in yanında çoğu zaman bu sözlüğe de ihtiyaç duyduğum. okumaya devam

Java ve SQLite: Örnek Veritabanı Uygulaması – 4

Bundan önceki üç makale MySql veritabanı kullanan küçük masaüstü uygulamalarıydı. Ancak MySql aslında masaüstü uygulamalarında kullanılmak için tasarlanmış bir veritabanı yönetim sistemi değil. Daha çok web ve dağıtık uygulamalar için kullanılan bir çözüm. Bu nedenle veritabanı bir sunucu üzerinden hizmet veriyor ve veritabanını kullanacak olan tüm uygulamalar veriye bu sunucu üzerinden ulaşıyor. Bir masaüstü uygulamasının ihtiyaç duyacağı yerel bilgileri MySql veritabanı kullanarak sakladığımızda, o uygulamayı kuracağımız her bilgisayara bir de mysql sunucu kurmamız, hatta veritabanını da sunucuda yeniden oluşturmamız gerekiyor. Sözün kısası uzun zamandır bu problemle ilgili sorular geliyordu ve çözüm olarak Sqlite’i öneriyordum. Bu yazıda bu önerimi örnek bir uygulama ile pekiştireceğim. Bu arada Sqlite veritabanını kullanan uygulama ve işletim sistemlerinden bazılarının Firefox, Opera, Chrome, Skype, Dropbox, Windows Phone 8, Apple iOS, Symbian Os, Google Android vs. olduğunu hatırlatalım. okumaya devam

Türkçe İmla Denetimi Üzerine

Geçenlerde üzerinde çalıştığım bir proje gereği kapsamlı bir Türkçe kelime listesine ihtiyaç duydum. Buradaki listeden kastım standart bir Türkçe sözlükte bulunan kelimelerin listesi değil bunların ek almış hallerinin de bulunduğu geniş bir listeydi. Mesela “ev” kelimesinin “evim”, “evimiz”, “evimdeki” gibi biçimlerini de içeren bir liste. Peki, böyle bir liste kaç kelime ihtiva eder?

Soruyu şu şekilde de sorabilirdik: Türkçedeki “mümkün” tüm kelimelerin sayısı nedir? Mümkün (imkân dâhilinde) kelimesi size garip geldiyse hemen birkaç örnek vereyim; “bardaklaşıyordum”, “dondurmalandırmacı”  gibi. Bu garip kelimeler teorikte mümkün ve Türkçenin gramer kuralları açısından doğru ancak hali hazırda anlamlı değiller ve kullanılmıyorlar. Ama ileride mesela “bardaklaşmak” deyimi geçerli bir anlam kazanabilir. Tıpkı bir zamanlar “havalandırmacı” kelimesinin bir anlam ifade etmediği gibi. okumaya devam

Java ile Tüm Veri Tipleri için Permütasyon ve Kombinasyon

Uzun zaman önce her veri tipi üzerinde çalışacak (generic) ve bir listedeki elemanların permütasyon, kombinasyon ve k’lı permütasyonunu bulacak bir Java koduna ihtiyaç duydum. Konu genel olduğundan Java’da aradığım gibi bir kodu hemen bulurum diye düşünmüştüm. Ancak gariptir ki bulduğum kodlar yalnızca tamsayı ya da string’ler üzerinde çalşıyor ve kolay bir kullanım sunmuyorlardı. Sonuç olarak tamsayılar üzerinde çalışan ancak belirli bir algoritmaya dayanan ve yinelemeli olmayan (non-recursive) bir kod üzerinde gerekli eklemeleri yaparak ihtiyacım olan sıfıları yazmıştım. Kodların bulunduğu sayfada kullanılan algoritmaya referans da verilmişti. Özet olarak etkili ve güvenilir bir çözüm idi.

Lafı neden bu kadar uzattım? Çünkü bu sayfalara olan linkler ölmüş. Ve ben kaynak göstermek adına bu sayfaları hiç bir yerde bulamıyorum. Yine o zamanlar yazdığım kodları stackoverflow’da paylaşmıştım. Uzun bir aradan sonra burada aynı paylaşımı Türkçe olarak yapmaya karar verdim. Konuya geçelim: okumaya devam

Yazılım Versiyon Numaraları

Bu yazıda geliştirdiğimiz yazılımların versiyonlarını numaralandırma  konusunda bir iki satır kelam etmek istiyorum. Amatör bir heyecan ile geliştirmeye çalıştığım ve bundan büyük zevk aldığım küçük, açık kaynak bir Java kütüphanesi var. Kütüphane küçük de olsa onu yayınlarken yazılım paketleme, lisanslama, versiyonlama ve versiyon numaralandırma (ikisi farklı şeyler) gibi konularda bayağı tecrübem oldu. Bu yazıyı da bu vesile ile yazıyorum. Konu ile ilgili yaptığım araştırmada bir şöyle bir makale buldum ki, İngilizce biliyorsanız muhakkak okuyun. Oradan da bazı alıntılar yapacağım.  Öncelikle yazılımcılar kendi içerisinde kullandıkları numaralandırma yöntemleri bir miktar karışık. Mesela aşağıdaki tip sıkça kullanılır: okumaya devam

« Önceki yazılar Sonraki yazılar »

© 2019 Harun Reşit Zafer

Temayı tasarlayanAnders NorenYukarı ↑