« Posts tagged JAVA

{iş ilanı} Mobil Uygulama Geliştirme Uzmanı

Nokta.com Ankara ofisimize, tam zamanlı olarak, mobil geliştirme ekibimizin içinde yer alacak, öğrenmeye hevesli, yeni teknolojileri ve gündemi takip eden, mobil dünyada gerçekleştirebilecek hayalleri olan ve bu yönde kendisini her zaman geliştiren takım çalışmasına uygun ekip arkadaşı arıyoruz.

Genel Nitelikler:
Mobil cihazlar için uygulama geliştirme,
Daha önce herhangi bir mobil platformda uygulama geliştirme tecrübesine sahip,
C++, Objective-C, Java programlama dillerinden en az birinde tecrübesi olan,
iPhone, Android, Symbian, Blackberry, Microsoft Phone 7, Bada SDKlarından en az birisine hakim,
Qt, XCode, Eclipse gibi geliştirme ortamlarını kullanmış,
Öğrenme kabiliyeti yüksek,
İngilizce bilen.

* En iyi uygulamanızın download linkini (appStore, Ovi, Android Market, App World vs..) başvurunuz esnasında ön yazıya ekleyebilirsiniz.

İş Tanımı:
Noktacom Medya bünyesinde mobil projelerin hayata geçirilmesi.

Başvuru:
basvuru@nokta.com

Java Teknoloji Saatleri [31 Mart 2010]

Bu ay Bahçeşehir Üniversitesi Yazılım ve Bilişim Kulübü‘nün katkılarıyla 7. si düzenlenecek olan Java teknolojileri saatleri 31 mart 2010 Çarşamba günü Saat 19.00 – 20.45 saatleri arasında Bahçeşehir Üniversitesi Beşiktaş kampüsünde gerçekleştirilecek.

Ücretsiz olarak düzenlenen etklink kapsamında son dönemde ismini sıkça duyduğumuz “Nosql” ve “Data Distribution” konularında sunumlar yapılacak.

Etkinliğin ayrıntılarına http://www.jtpd.org/blogs/101620 adresinden ulaşabilirsiniz.

Java ve C# ile çeşitli kodlamalar…

Son dönemlerde Java ve C# ile haşır neşir olmaya başladım. Tabi genel tercihim açık kaynak olması ve platform bağımsızlığı c#a göre daha iyi olması sebebi ile Java.

Fakat Java ile C# arasında çok ufak farklılıklar mevcut, ve bu farklılıklar C# lehinde basit kod yazımına yönelik (benim fark ettiklerim). Örneğin C# ile rastgele sayı oluşturmak Javaya göre daha kolay geldi.

Neyse gelelim kodlama kısmına…

Rastgele sayı üretimi (C#):

C#
private int RastgeleSayi(int baslangic, int bitis)
{
Random rasgele = new Random();
return rasgele.Next(baslangic, bitis);
}

Bu şekilde artık dilediğimiz iki aralıkta rastgele sayı üretmemiz yeterli oluyor.

Örnek kod olarak iki metin kutusundan alınan değerler arsında rastgele sayı üretimi yapalım:

C#
private void button1_Click(object sender, EventArgs e)
{
int baslangicsayisi = Convert.ToInt32(textBox1.Text);
int bitissayisi = Convert.ToInt32(textBox2.Text);
int[] dizi = new int[100];
for (int i = 0; i < dizi.Length; i++)
{
dizi[i] = RastgeleSayi(baslangicsayisi, bitissayisi);
}
}

Bu kod ile yukarıda tanımladığımız RastgeleSayi fonksiyonu ile baslangicsayisi ve bitissayisi aralığında 100 adet sayı üretip bu sayıları bir diziye atıyoruz.

Gelelim bu işin Java ile yapılmasına. Öncelikli olarak Javada rastgele sayı üretimi fonksiyonu yazalım:

Java
private static Random rn = new Random();
int[] dizi = new int[30000]; // bu tanımlamayi daha sonra kullanmak için yapıyoruz...
 
public static int rand(int lo, int hi)
{
int n = hi - lo + 1;
int i = rn.nextInt() % n;
if (i < 0)
i = -i;
return lo + i;
}

Artık rand() fonksiyonu ile rastgele sayı oluşturabiliriz. Gelelim bu fonksiyon ile sayı oluşturma kodlarına:

Java
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
int sayi1 = Integer.parseInt(jTextField1.Text());
int sayi2 = Integer.parseInt(jTextField2.getText());
for (int i =0; i< dizi.length; i++)
{
int sayi = rand(sayi1,sayi2);
dizi[i]= sayi;
}
}

Şeklinde bir kod karşımıza çıkıyor.

Aslına bakıldığında ikinci kısımlar (rastgele sayıyı diziye aktarma) her iki dil içinde yaklaşık olarak aynı. Fakat rastgele sayı oluşturma kısımları C# ile daha kolay geldi bana. Bu noktada Java ile daha basit bir yöntem var olabilir, fakat internet taramalarım, Java ile uğraşan arkadaşların yönlendirmeleri vb araştırma sonuçlarında bu yöntemin geçerli olduğunu gördüm :)

Bunun dışında Java ve C# ile yapmaya çalıştığım bir başka iş vardı. C# ile becerebildim, fakat Java ile yapamadım. Daha sonra tekrar bakacağım. Fakat burada yapmak istediğimi anlatayım. Bir işlem yapılıyor, bu işlem uzun sürebilimekte. Ve ben işlem sürerken bir etiket üzerine “İşlem Yapılıyor…” yazdırmak istiyorum. C# ta işe başlamadan hemen önce ilgili kodu yazdığımızda, işlem bittikten sonrada aynı etikete işlemin bittiğini yazan kodu yazdığımda çalışıyor. Fakat bu mantık Java ile oturmadı :) .

Javanın can sıkıcı başka bir tarafıda zamanlar(time) ile işlem yaparken milisaniye göstermesi için çeşitli fonksiyonlar vb. şeyler kullanmak gerekiyor anladığım kadarı ile. Fakat C#’ta işler çok daha basit. Şuanki zamanı alan DateTime.Now komutu ile aldığımız iki zaman arasında bulunan farkı TimeSpan kullanarak direk olarak milisaniyeleri ile birlikte alabiliyoruz.

Bu konuda daha geniş bilgisi olan arkadaşların yorumlarını ve eksik kalan noktalar konusunda bilgi vermelerini rica ediyorum….

Java ve Seçmeli Sıralama….

Son dönemlerde, sıralama algoritmaları üzerine kafa yormaya başladım. Aslında bu merakım üniversitede C# ile sıralama algoritmaları karşılaştırması yaparken başladı diyebilirim.

Neyse, üniversitede yaptığım C# seçmeli sıralama (selection sort) algoritması örneğini birde java ile yapmayı denedim. Bu sayede javayı da öğrenmiş olacaktım. Fakat olayı biraz geliştirip sırılama yapılacak olan diziye metin kutuları ile belirleyeceğim iki sayı arasından rasgele otuz bin sayı üretip koyulacak şekilde yaptım.

Kodları buradan görebilirsiniz…

Java ile C# dillerinde sevmediğim bir olay var. Sürekli değişkenleri bir türe çevirmeniz gerekiyor. Örneğin “integer” olarak tanımladığınız bir sayıyı bir etikete veya metin kutusuna yazdırmak istiyorsanız bu sayıyı önce “string” olarak değiştirmeniz gerekiyor. Bu durum benim pek hoşuma gitmiyor. Fakat işin birde, hangi tür ile ne yaptığın konusunda düzeni sağlıyor gibi gelmeye başladı bana.

Fakat şunu söylemeliyim, kodlar tam olarak çalışıyor fakat görsel tarafta bir kaç eksiklik var. Mesela işlemin başladığı saat ve bittiği saati gösteriyor fakat arasında ki farkı ekrana yazdırmıyor şuan.Ve birde metin alanlarının boş olup olmadığını kontrol ettirmiyor ve eksi sayılarda işlem yapmıyor :) . Bayağı eksiği var gibi durabilir, fakat temel olarak seçmeli sıralama ne iş yapar anlatıyor sanırım :) .

Bir karar anı…

Yaklaşık 2005 yılından beri PHP ile uğraşmaktayım. Son dönemlerde özellikle Ekip projesi ile birlikte PHP dilinde büyük adımlar attım. Fakat Ekip projesi sürecinde şu soru hep beynimi kemirdi durdu. Acaba PHP bu ve benzeri projeler için yeterli bir güç müydü? Aslında bu soru daha öncesinde kafamın içerisinde yer edinmiş olacak ki (ben hatırlayamıyorum şuan için) zamanında perl, python, cgi ile ilgili ve hiç açmamış olduğum kitaplar satın almışım. Gerçi python kitabında for döngüsü için “başınızın dönmesi gibi bir şey” ifadesini gördüğümde kitabı kaldırıp rafa koydum. Neyse bir kaç Perl denemem ve araştırmam sonucunda Perl’ün benim isteklerimi karşılayamayacağı kanısına vardım. Ve hep korkulu rüyam olmuş olan Java seçenekler arasına dahil oldu bir şekilde. Aslında lise dönemimden beri Javayı öğrenmek istiyorum fakat hep kaçıyordum. Son üç, dört aydır Python ve Java arasında değim yerindeyse gittim, gittim geldim. En sonunda şöyle bir yol izlemeye karar verdim. Python ile Java dillerini hangi amaçlarda kullanabilirdim sorusuna cevap aradım ve bu cevapları listeledim. Sonuçta ortaya şöyle bir manzara çıktı. Java ile ticari anlamda yazılım geliştirmeleri yapabilirdim (ee herkesin para kazanmaya ihtiyacı vardır değil mi?). Bunları Python ilede yapabilirdim ama Python’un kullanım alanı sektör açısından kısıtlı gibi duruyor. Madalyonun öbür yüzü olan Python tarafından bakınca, Pardus üzerinde geliştirme yapabilecektim. Çünkü Pardus’un bir çok aracı Python ile geliştirilmekte. Sonuç olarak şöyle bir yol çizdim. Java ile geliştirmelerimi yapacak, boş vakitlerimde Python ile vakit geçirerek bu dilide öğrenmeye çabalayacağım. Böylece hem hayatımı idame etme şansım daha yüksek olacak hem de Pardus’a ileride programlama anlamında katkı sağlayabileceğim. Yoğun bir süreç olacak bir tarafta zorlu Java bir tarafta Python… Sanırım bir süre sonra güzel şeyler çıkacak ortaya.

Bir PHP projesi serüveni…

2005 yılından beri PHP ile ilgileniyorum. Fakat bu proje için ilk “<?php” tagini ne zaman yazdım tam olarak hatırlayamıyorum. Fakat sanırım 2008 Ağustos başıydı. Merkezi Ostimde bulunan IG Group firması için bir işlem takip veri tabanı uygulaması yapılacaktı. Tabi projeye ilk adım olarak PHP ve MySQL tercihlerini yaptım. İlk arayüz, tabloların oluşturulması, kodlar, formlar, çerezler derken koskoca beş ay bitmiş ve altıncı aya girmişiz. Son gelinen nokta aslında oldukça iyi ve gayet başarılı. Elektronik Kart İşlem Takip Programı (EKİP) adı verdiğimiz bu uygulama şuan gerçekten istenilen işleri sağlam bir şekilde yerine getirmekte. Tabi henüz aktif olarak kullanılmaya başlanmadı. Planımız 1 Ocak itibari ile aktif olarak kullanmaya yönelikti fakat sistemde çıkan bir kaç eksiklik, yılbaşı telaşı gibi sebeplerden uzadı. Sanırım artık 9 Ocak tarihine kadar aktif olarak kullanılmaya başlanacağı gözüyle bakıyoruz. Son gelinen durumla birlikte, bir kaç iyileştirme çalışması kaldı diyebilirim. Uygulamanın iyileştirmeleri ve güncelleştirmeleri tabiki devam edecek zaman içerisinde. Fakat artık ortada somut olarak çalışan, raporlar veren, depo kontrolü yapabilen bir veri tabanı uygulaması var.Sürüm olaraksa EKİP 1.0 diyebiliriz.

»Read More

Özgür Kuru is Stephen Fry proof thanks to caching by WP Super Cache