Java ve C# Kodlarının Karşılaştırılması
Java veya C#’dan herhangi birisini iyi biliyorsanız, oldukça işinize yarayacak bir dökümanı sizlerle paylaşmak istiyorum. Dökümanı incelediğinizde, paylaştığıma değecek kadar güzel olduğuna kanaat getireceğinize inanıyorum.
Karşılaştırma tablosu için tıklayın.
Yazılım Akademisi 2010′a Katılın! Neden mi?
Yazılım Akademisi 2010 için start verilmiş. Geçen yıl katılıp, ciddi bir efor sarf ettiğimiz yarışmanın güzel şeyler kazandırdığını düşünüyorum. Zamanında IBM’de 9. Olduk yazısında da yazdığım gibi; “… yarışma kültürü gerçekten çok farklı oluyor. Hem heyecanı, hem telaşesi, hem beklentisi… Öğrenci arkadaşlara bu tarz yarışmalara girmelerini ve bu heyecanı tadmalarını şiddetle tavsiye ediyorum..“
Bu yarışmayı özellikle kimlere tavsiye ediyorum biliyormusunuz? Kıbrısta okuyanlara. Ya da kıbrıs gibi üniversitesi üzerinde önyargı olanlara. Çünkü sizde bir gün benim gibi okulunuzdan mezun olup, iş başvuruları yapacağınız zaman CV’lerinizin önüne ekleyeceğiniz “IBM Yazılım Akademisi 2010′da XX. derece sahibiyim” yazısına ihtiyacınız olacak. Bunu okuyan şirket yetkilisinin, ön yargısı kırılmayacak olsa da, en azından sizi bir görüşmeye davet edecektir. Ee, gerisi yapacağınız görüşmede size almış…
Bu yıl açıklanan projelere bakıldığında, gözüme çarpan Akıllı Aygıtların Çevrimiçi İzlenmesi projesi oldu. Projelerin ise -yine- tamamının web tabanlı olacak olması, proje belirlenmesi konusunda yine aynı yanlışlık üzerinde ısrar edildiği manasına geldiğini düşünüyorum.
Yarışma kültürü streslidir. Yarışmaya girmek için çalışmak, zaman ayırmak, emek sarf etmek gerekir ve bunlarda biraz yürek ister. Yazılım Akademisi 2010′a Katılın! Neden mi? Çünkü 1 satır yukarıda saydıklarım atlatıldığında, -sonucu bizimkisi gibi birinci olamamak bile olsa- geriye güzel bilgi birikimleri, çalışma disiplini, iş bitirebilme öz güveni, proje zamanlarına dair anılar ve CV’nizde yer kaplayacak bir kaç satır kalır. Bu saydıklarımı iş hayatına atılmadan önce elde etmenizin keyfini işe başladığınızda süreceğinize emin olun..
Bence değer…
C# Joystick Kullanımı
İşimin insansız araçlar üzerine ar-ge faaliyetleri olduğunu hakkımda bölümüne son zamanlarda göz atmış olanlar bilirler. İşimdeki ilk işlerden bir tanesi, bir joystick yardımı ile insansız su üstü deniz aracına ait dümenin manuel olarak yönlendirilebilmesi ve üzerindeki kameranın da aynı şekilde; X ve Y eksenlerinde dönebilmesi, kayıt yapabilmesi vs. gibi tüm fonksiyonlarının joystick üzerinden sağlanması gerekliydi.
Bu konuda internetten araştırma yaptığımda herhangi bir Türkçe makale ile karşılaşmadığım için bende bu yazıyı yazmaya karar verdim. C# Joystick gibi harici araçların kullanımının kolay olduğunu bu yazıyı souna kadar okuduğunuzda sizde göreceksiniz.
Classımıza öncelikle birkaç değşken tanımlayarak başlayalım. Bunlardan joystick değişkeni, bizim Device türünden, diğeri ise Joystick’in durum(state) bilgilerini saklayabileceğimizJoystickState değişkeni. Diğerleri ise joystick’ieksen olark durum bilgilerini saklayan değişkenler ve joystick üzerindeki tüm butonların durumlarını saklaya boolean tipinde buttons array’i. Son olarakta bilgisayara birden fazla bağlı olan joystick bilgisinin instance name’lerini tutabilecek bir String Array’i oluşturuyoruz.
private Device joystick; private JoystickState state; public int Xekseni; public int Yekseni public int Zekseni; public bool[] buttonsState; private string[] joystickStr;
Aşağıdaki kodu yazarak, şuan bilgisayarımıza bağlı bir oyun kontrol cihazlarını cihaz listemize eklemesini söyledik.
DeviceList gameControllerList = Manager.GetDevices(DeviceClass.GameControl, EnumDevicesFlags.AttachedOnly);
Eklediğimiz listenin sayısı sıfırdan büyükse (dahası…)
3 Aylık Blog İstatistiğim (Temmuz – Ağustos – Eylül)
Bunu neden yapıyorum bilmiyorum ama yine blog istatistiklerimi yayınlıyacağım. (mesela bir inşaatın zaman içerisinde yükselmesini takip etmek gibi, bir şeyin zamanla yükseldiğini görmek hoşuma gidiyor galiba bu yüzden yapıyor olabilirim:))
Aşağıda, Temmuz, Ağustos ve Eylül aylarına ait veriler mevcuttur:
(dahası…)
Java, MySQL Türkçe Karakter Sorunu
Şuan yaptığım projede, JSP sayfası içerisinde, textboxlar yardımı ile girdi olarak aldığım inputlarımı Servletler aracılığı ile mysql database’ime atıyorum. Fakat Türkçe karakter sorunu yaşadım. Internetten araştırdığımda bir kaç farklı yol buldum fakat hiç birisi derdime derman olmadı. Bulduğum yollardan bazılarını harmanlayarak kullanınca en sonun Türkçe karakter sorunumu aşabildim:)
Birilerinin işine yarar ümidi ile uyguladığım adımları paylaşayım;
1- Öncelikle mysql’den karakter setini UTF8 seçiyoruz.
2- Java class’ı tarafında, Connection’ı tanımlarken normal adresten daha fazlasını kullanıyoruz;
normal adres: jdbc:mysql://localhost:[portnumarası]/[db ismi]
kullanılması gereken:
jdbc:mysql://localhost:[portnumarası]/[db ismi]?useUnicode=true&characterEncoding=UTF-8
3 - Verileri JSP sayfasından verileri çekmeden önce; request.setCharacterEncoding(“ISO-8859-9″); yazıyoruz..
artık database’imize girdiğimiz Türkçe karakterler olması gerektiği gibi görüntülenecek.
Sorularla Android İşletim Sistemi
Android İşletim Sistemi Nedir?
2007 yılı içerisinde Google tarafından mobil cihazlarda kullanılmak üzere çıkartılmış olan bir işletim sistemidir. Daha sonra OHA (Open Handset Alliance) ismindeki birliğe devredilmiş olup, geliştirilmesi ve desteklenmesi bu birlik tarafından yürütülen faaliyetlerle sağlanmıştır.
Rakipleri Kimler?
En büyük rakibi tabi ki IPhone. Şuanki durumu ile, IPhone’dan sonra ikinci durumdadır. Üçüncü Symbian ile Nokia ve en geride ise MS Windows Mobile.
Android’in Piyasadaki Şuanki Durumu ve Geleceği Nedir?
Gelecek “Android” diyecek başlıklı yazıdan, ayrıntılı bilgi alabilirisiniz.
Neden Andorid?
1- Open source (linux üzerine kurulu) 
2- Ücretsiz olduğundan işletim sistemi maliyetini sıfıra düşürüyor ve cep telefonu şirketleri tarafından rağbet görüyor.
3- Android programları java dili kullanılarak geliştirildiğinden, javanın popülerliğinden faydalanılıyor.
4- Belli bir cep telefonu markasında değil, destekleyen tüm cep telefonlarında kullanılacağı için, marka bağımlılığından arındırılıyor.
5- İsteyen üretici, Android işletim sistemini kendisine özgü hale getirip, içerisine kendisine özgü programlar geliştirip telefonu ile beraber piyasaya öyle sunuyor.
6- IPhone’a rakip olabilecek düzeyde; Symbiandan güçlü ve microsft gibi paralı olmayan bir sistem. Kısacası, symbian ve microsoft kıskacından kurtulmak isteyen üreticiler için.
Türkçe dil desteği var mı?
Temmuz ayı içerisinde ilk etapta sadece Amerikaile aynı Türkiyede piyasaya sürülen DSLT1 telefonu içerisinde Türkçe desteği bulunuyor. Eylül ayı içerisinde Samsung i7500 içerisinde de aynı Türkçe destek bulunmakta.
Android ile Uygulama Geliştirmek
Android kodlamasını öğrenmek şuan için biraz meşakkatli diyebilirim. Java diline hakimiyetin yanı sıra, Android’e özel yapıların kavranması emek istiyor. Android’in geliştirilmesinde her ne kadar Java dili kullanılıyor olsada, kullandığı Virtual Machine, Java VM değil, kendisine has olan Dalvik VM’dir. Dolayısıyla bu yapının özelliklerinin iyi kavranması ve oyunu kurallarına göre oynaması için ilk başlarda biraz çaba sarf etmek gerekiyor.
Android’de User Interface’ler iki yolla kodlanabiliyor.
1-) java kodu ile
2-) XML ile.
genel olarak XML yolu tercih ediliyor. Bu sayede kodlarımız MVC yapısında oluyor. Gerek User Interface kodlamada gerekse de telefona ait permissionların verilmesinde XML aktif olarak kullanıldığından, XML teknolojilerine de hakim olmak işleri kolaylaştırıyor.
Android’e ilk adımı atmak için bu linkten faydalanabilirsiniz.
Android’e ait örnek kodlara bakmak için, Google Maps ve Android hakkında yazdığım inceleme yazılarına buradan ulaşabilirsiniz.
Şuan Piyasada olan Android işletim sistemli telefonlar hangileri?
İlk olarak HTC G1 telefonunu çıkardı. Fakat bu telefon Türkiye’de piyasaya sürülmedi.
İkinci olarak, General Mobile, ilk önce
Amerika ve Türkiye DSTL 1 isimli telefonu piyasaya sürdü (Temmuz 2009)
üçünkü olarak Samsung, i7500 modelini piyasaya sürdü. (eylül 2009)
Servlet + JSP + EJB = MVC
Bu yazımda, Java Teknolojileri ile web tabanlı uygulamalar geliştirebilmek için gerekli olan Servlet ve JSP’nin (JavaServer Pages) zaman içerisinde gelişiminden bahsedip, bu iki teknolojinin MVC ile beraber kullanılmasına değineceğim.
Web uygulamalarının temeline baktığımızda karşımıza Static İçerikli (yani değişmeyen) uygulamarı görürüz.
Yukarıdaki resimde de görebileceğimiz üzere, Web Browser’dan yapılan bir istek, network aracılığı ile Server’a ulaşır. Burada bizim içeriği görüntüleme talebimizi alan Web Server, dosya sistemine bağlanarak, static içerikli (değişmez içerikli) bilgiyi bize HTML sayfası olarak gösterir.
İlerleyen zamanlarda karşımıza, Java Applet’ler çıktı. Aşağıdaki resime bakıldığında, yukarıdakinden çok bir farkının olmadığını görebiliriz. Aradaki tek fark, Client tarafında, bizim applet’imizin görülebilmesi için lazım olan bir JVM. Appletli HTML sayfalarında da static bir içerik söz konusudur. Applet’ler bize static içeriğin görüntülenmesinde çeşitlilik sağladı.
CGI gibi, dinamik içerik sağlamaya yarayan teknolojilerin ardından, Java tarafında da Servlet yapıları oluşturuldu.
Servletler kısaca; web browserdan aldığı parametrelere yada kaynaklara göre, web server’a dinamik içerik üretip gönderirler. (dahası…)
AndroidProgramlama.com
Dün kendi içimde radikal bir karar aldım ve android konusunda bir web sitesi kurmaya karar verdim. Çocukluğumu html ile web sitesi yaparak geçirdiğim aklıma geldikçe, içimdeki isteksizlik miktarında artış olsa da, bu sefer gözlerimi kıstım ve böyle bir çalışma yapmak için elimi taşın altına koydum. Bu platformu oluşturmaktaki amacım, ilerleyen zamanlarda sayısında oldukça artış gözleyeceğimiz Android Programcılarının bir arada bulunabileceği ve birbirleri ile iletişim ve etkileşim sağlayabilecekleri bir zemin oluşturabilmek. Amacıma ulaşacak portalı yapabilirmiyim elbettte ki bunu zaman gösterecek ama şimdilik AndroidProgramlama.com sitesini, blogumun Android ile ilgili yazılarına yönlendirdim.
Ve son birşey daha, aynı zamanda FerhanAkman.com isminide aldım. Yakında kendi hostuma taşınacağım ve orada blogumu yayınlamaya devam edeceğim. Neden mi? bunu da zaman gösterecek:)
Lifeoverip.Net Güvenlik Bülteni
Huzeyfe Önal’ın hazırlamış olduğu Güvenlik Bülteni’nin 1.sayısı çıkmış…
Genel olarak güvenlik dünyasından haberlerinin, güvenlik açıklıklarının ve güvenlik yazılımlarının yer aldığı bültende, ilerleyen günlerde başka güvenlikçilerinde katılımıyla daha da güzel konuların işlenebileceğine inanıyorum… Yine bülten içeriği arasında, iş arayan güvenlikçilerinde unutulmamış olması hoş bir düşünce olarak göze çarpıyor…
Takip etmekte yarar gördüğüm bu bültene ulaşmak ve her sayının otomatik olarak mail adresinize gelmesini sağlamak için http://www.lifeoverip.net/newsletter/ sayfasını ziyaret etmeniz yeterli..
Delphi, Yükselen(!) Programlama Trendi mi?
Aşağıda alıntı olarak yazılan yerler, dün bana gelen mailden alıntı ve altında da bana gelen maile verdiğim yanıtlara yer verilniştir. Okumanızı Öneririm..
Merhaba Mustafa Ferhan Bey,
Yazılım mühendisliği alanında bir devrim yaratan Delphi programlama dili Türkiye’de çoğunluk küçük ve orta boy işletmenin yazılımlarının geliştirildiği progamlama dilidir. Bugün Türkiye’nin en önde gelen yerli muhasebe ve kurumsal kaynak planlama yazılımlarının arkasında Delphi programlama dili olduğunu biliyor muydunuz.
Peki merak ettiniz mi… Türkiye’de hemen hemen bütün küçük yazılım evlerinden başlamak üzere, bu konuda en büyük yazılımevlerine kadar Delphi programlama dili kulanılmakta. Peki neden?** Windows platformu için Windows işletim sistemi üreticisinden daha etkin bir platform olduğu için bu kadar büyük bir gelişme gösterdiğini biliyor muydunuz?
Merhaba Sevin Hanım,
Öncelikle mailiniz için teşşekürlerimi belirtmek isterim. Her ne kadar Delphi’yi hayatımın hiç bir alanında kullanmayacağımı düşünsemde en azından Delphi 2009 hakkında sayenizde bilgi edinmiş oldum. Bende aynı konu hakkındaki görüşlerimi sizinle paylaşmak isterim.
Siz mailinizde Delphiyi tanıtmışsınız, ben de genç bir yazılım mühendisi olarak neden kullanmayacağımı anlatayım;
** Delphi ile geliştirilen programlar son derece kolayca geliştirilebilmektedir. Bu yönden Delphi programlama dünyasında iyi bir çizgi yakalamıştır. Fakat, şunu kabul etmek gerekir ki, .Net’in uygulama geliştirme ortamı olan Visual Studio gerçekten süper özellikler içerir; hem öğrenmesi çok kolay olması nedeniyle hem programcı dostu olması dolayısıyla biz programcıların işlerini ziyadesiyle kolaylaştırır hem de 3. parti yazılımlarla desteklenebilecek çok güzel araçları vardır.
** Delphi ile hem native Windows, hem de .NET icin program yazabileceginizi biliyor muydunuz?
** Delphi ile native windows programları yazmak güzel bir seçenek fakat .NET ile uygulama geliştirmenin güzel olacağını düşünmek bence yarı açık ceza evinde yaşamayı hayal etmek olur. Her ne kadar delphi’nin ve .NET’in şuanki versiyonlarıyla ile %99 uyumlu çalışsa bile (%99 diyerek olaya ne kadar iyimser yaklaştığımın farkninındasınızdır umarım:)) delphinin ve .NET’in ayrı ayrı piyasaya çıkacak olan ileriki versiyonlarında birbirlerine uyumluluğunu herhalde kimse garanti edemez. Üstüne üstlük, piyasaya çıkış tarihleri penceresinden baktığımızda, .NET’in ileriki bir sürümünün delphi’nin eski bir sürümü ile uyumlu çalışmasını beklemenin hayalcilik düzeyinde iyimser olmak gerekir.
** Özellikle uzun vadeli yürütulen projelerde Delphi’nin surekli gelisen, ama gelisirken gecmiste yapilan tum yatirimlari koruyan ‘geriye uyumluluk’ politikasi sayesinde 1996′da Delphi 1 ile yazilan bir projenin bir kac basit mudahale ile Delphi 2009′da da compile edilebildigini biliyor muydunuz?
** Geriye uyumluluktan bahsetmişsiniz… Çok değil bundan 3 gün önce çalışmış olduğum firmanın bir kaç yıl önce hazırlamış olduğu bir kalite yönetim otomasyon programının bazı yerlerini editleyerek compile etmem istendi. Zamanında programın geliştirilmesinde kullanılmış olan tüm araçların elimdeki CD’de bulunmasının benim için büyük bir avantaj olduğunu düşünerek bilgisayarıma önce Delphi 6′yı yükledim ve daha sonra ilgili componentları install ettim. Otomasyon programında gerekli değişiklikleri yapıp sonra compile etmek istediğimde “ilgili componentın windows 2000′de derlenmek üzere hazırlandığı“‘nı belirten bir hata mesajı aldım. Görüyormusunuz? Programı derleyemememin tek nedeni işletim sistemimin windows XP olması? Sizce bu mudur geriye uyumluluk? Bildiğim kadarı ile Delphiyi Delphi yapan en büyük özellik, component desteğidir. Yani “ilgili componentin delpiyi hazırlayan şirket ile alakası yoktur” demek gibi de bir şansınızın olmadığınıda sanırım belirtmeme gerek yoktur.



