obenplus.com | oben+ | Hikayesi bol bir yazılımcının kaleminden, teknoloji dünyasını en önemli ve en ince ayrıntısına kadar takip etmek, bir yazılımcının hayatını, yaşantısını gözlemlemek isteneyenler için...

Archive for Ocak, 2014

Bu yazıyı 2009 yılında yazmıştım. Google aramalarında ilk sayfadaki 3-4 kayıt arasında çıkıyor. O zamanlar blog yazmadığım için başka blogda yayınlamıştım. Şimdi kendi bloguma da eklemeye karar verdim.

Bu yazımda ağaç (tree) veri yapısını irdeleyeceğiz, hem de ne irdeleme!

Şunu en baştan söylemekte fayda var; bir çok veri yapısı zaten Standart Template Library (STL) de olan veri yapıları yani hazır olarak var fakat bizim amacımız bedava kullanmayı değil de işin mantığını öğretmek.

Mantığı öğrenmek sizin için çok önemli olacak çünkü belki ilerde başka bir veri yapısını da siz üreteceksiniz ve millet sizin hazır kütüphanenizi kullanacak, hoş olmaz mı? 😀 Read more


Hiç merak ettiniz mi, 3 boyutlu yazıcılar nasıl çalışıyor diye ?

Aslında günümüz teknolojisinin son bir kaç yılda bize sunduğu en önemli teknolojilerden birisi 3 boyutlu yazıcılar. Aslında temel prensip, bir modelleme yazılımı ile tasarlanan dijital verinin, yazıcı üzerinden gerçek bir objeye dönüştürülmesi üzerine kuruludur. Günümüzde bir çok alanda kullanım potansiyeline sahiptir. 3 boyutlu yazdırma teknolojisi, tıraşlama ve geleneksel nesne tasarımı anlayışının aksini, yani elde edilmek istenen nesnenin parçalar eklenerek ortaya çıkarılması prensibiyle çalışmaktadır. Tasarımın 3D yazıcıya gönderilerek ortaya çıkarılmasında, yazıcının teknik özelliklerine bağlı olarak plastik, kauçuk, poliüretan ve kağıt türevi malzemeler kullanılabilmektedir. Yazdırma prosesi, daha çok sprey uygulanarak gerçekleştirilmektedir. Bu prosesin tamamlanması, tasarlanan objenin büyüklüğüne ve karmaşıklığına bağlı olarak saatler ya da günler sürebilmektedir.

 

3 boyutlu yazdırma teknolojileri sağlık alanı ve uzay teknolojilerinde önemli bir katma değer sağlanmasına imkan vermiştir. Özellikle sağlık sektöründe, protez üretiminde 3D yazıcıların kullanılabileceği düşünülmektedir. Endüstriyel tasarımlardan sağlık alanına, ihtiyaç duyulan birçok malzemenin 3 boyutlu yazdırma teknolojisiyle hangi boyutlara ulaşacağını yakında daha net olarak görebileceğiz.


Merhaba arkadaşlar,

Bu konu aslında benim de uzun zamandır merak ettiğim fakat öğrenme fırsatı bulamadığım bir konuydu. Size bu yazıyı değişik bir teknikle hazırlama kararı verdim. Öğrenirken, bir yandan da parça parça size bu yazıyı hazırlayacağım. Burada dikaktinizi çekmek istediğim bir konu var, artık Google Cloud Messaging SDK sı yenilendi. Eski SDK kaldırıldı ve bloglarda bulunan tüm yazılar halen eski sdk ya göre. Ben bu sebeple hiç bir kaynaktan faydalanamadığım için doğrudan resmi dökümantasyonu okuyarak orada öğrendiklerimden yola çıkarak geliştirme yapacağım. Bu sebeple biraz  zor bir süreç olacak benim için, fakat tamamlandığında komple yeni SDK ya göre ve Türkçe bir kaynak olarak bence herkesin faydalanabileceği bir yazı oldu.

Google Cloud Messaging hakkında detaylı ön bilgi sahip olmak istiyorsanız resmi dökümantasyonundan faydalanabilirsiniz. Yazımın bir kısmında Ravi Tamada’nın bu yazısından da destek aldım.

Google Cloud Messaging – kısaca GCM – aslında sunucu görevindeki bilgisayarlardan gönderilen verilerin, android tabanlı cihazlardan (akıllı telefon olur, tabletler olur) almaya yarayan bir teknolojinin adıdır. GCM, adından da anlaşılabileceği üzere bulut teknolojisini kullanarak uygulamalara veri göndermeyi sağlar. Neyse, bu bulut sistemi dedikleri birşey var, herşey oraya birşey atıyor, gelen de oradan birşey alıyor özetle. Abur cubur dolduruyorsun, herkes ihtiyacını oradan alıyor. Bu bilişim konularına da fazla kafayı yormayalım bence, yoksa sıyırırsınız, kafayı taktınız mı o zaman işiniz kötü aslında… Bu sebeple çok detaya inmek istemiyorum 🙂

GCM’nin sağladığı en büyük faydayı anlamak için birlikte düşünelim. Örneğin bir android uygulaması yazdınız, maç sonuçlarını gösteriyorsunuz. Uygulamanızın skor bilgisini kullanıcılara güncel bir şekilde göstermesi gerekiyor maç oynandığı süre boyunca. Burada GCM’den haberi olmayan bir kişi, uygulamasına her 10 saniyede bir serverdan “Maç sonucu var mı?” diye sormak suretiyle yanıt bekler. Bu durum hem server yoğunluğuna sebep olur (Uygulamanızı kullanan herkesin telefonunun 10 saniyede 1 servera skorlarda bir değişme var mı diye sorduğunu düşünün) hem de telefonlar sürekli data alıp gönderdiği için mobil veri aktarımı yüksek olur. Ayrıca sürekli bir aktivite hem telefonun ram kaybına sebep olur, hem de akıllı telefonların şarj ömrünün zaten çok kötü olduğu günümüz teknolojisinde, bataryanın çabuk bitmesine sebep olur. GCM aslında tam bu noktada devreye giriyor. GCM sayesinde, server, skorda bir değişim olduğunda telefonlara “Skorlar Değişti!” mesajını gönderiyor.

Şimdi de gelelim GCM’deki aktörlerin kim olduğuna. Aslına bakarsanız 3 aktör ile süreç yönetilebiliyor.

  1. Android Uygulamanız
  2. Google’ın GCM Sunucuları
  3. Sizin Sunucunuz

Aralarındaki ilişkiyi de kendi hazırladığım bir grafikle ele alalım;

 

Şimdi buraya kadar, GCM nin telefon ve server ile arasında geçen süreci aktardık. Şekilden de göreceğiniz üzere a ve b şeklinde 2 ok da var. Read more


HTTP request ve response süreçlerinde HTTP Exceptionlar almamak için, hemen öncesinde internet bağlantı kontrolü yapmak önemli bir konu. İnternette çok çeşitli kodlar mevcut bağlantı kontrolü için. Ben de sizlere, uygulamalarımda sıklıkla tercih ettiğim bağlantı kontrol kodunu paylaşmak istiyorum;

  1. Bağlantı kontrolüne geçmeden önce Android’de yeni bir proje oluşturuyoruz. (File -> New -> Android Project)
  2. Burada HTTP bağlantıları ile ilgili bir durum olduğu için, uygulamamızın alması gereken izinler var
    ->  <uses-permission android:name="android.permission.INTERNET" />
    ->  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  3. Yukarıdaki izinleri almak için AndroidManifest.xml dosyamıza eklememiz yeterli. İlk izin uygulamamızın internet bağlantısı yapabilmesi için, ikinci izin ise, network ün durumunu öğrenebilmemiz için kullanılıyor. Read more

Merhaba arkadaşlar,

Bu yazımda sizlere yakın zamanda yenilenen bir çok popüler uygulamanın sıklıkla başvurduğu bir özelliği göstereceğim. “Navigation Drawer” adını verdiğimiz bu özellik ile uygulamanın menü özelliğini aslında alandan büyük kazanç sağlamak amacıyla implemente edebiliyoruz.

Örnek Uygulamalar

Yeni Proje Oluşturuyoruz

  1. Eclipse kullanarak (File -> New -> Android Application Project) yeni bir android projesi yaratın
  2. Ben genel prensip olarak uygulama ilk açıldığında kullanacağım activity için MainActivity.java ismini seçiyorum. Siz de dilerseniz o şekilde activity oluşturun.
  3. İlk önce Navigation için kullanacağımız listview’de yazacak metinleri strings.xml dosyasına yazıyoruz. (Bu aşama çok şart değil fakat, önemli olan kaliteli kod yazmak. Bu sebeple best practice leri alışkanlık haline getirmekte önemli fayda görüyorum.)

Read more