Mar 11

Web Teknolojileri dersi Ödev1′i indirmek için tıklayın.

Mar 05

Uzun bir aradan sonra Hüseyin hocamın sayfasına yeni bir yazı yazmanın zamanı gelmişti. Bu yazımda zamanında benim çok işime yarayan ve yazıp optimize etmesi benim hayli zamanımı alan bir fonksiyonun kodunu paylaşacağım. Kod C++ kullanılarak yazılmış ama algoritmasına bakılarak kolayca diğer dillerede çevrilebilir. Fonksiyonun görevi verilen bir indekse göre N tane sayının K uzunluğundaki kombinasyonları sıralı bir şekilde yazıldığında o indekse karşılık gelen sayı kombinasyonunu bulmak. Bir örnek verecek olursak;

Sayılarımız 0 dan 4 e kadar olan sayılar olsun. Üretmek istediğimiz kombinasyonların uzunluğu ise 3 olsun. O halde toplamda 10 tane (C(5,3)=10) kombinasyonumuz oluyor. Bu kombinasyonlar sıralı bir şekilde üretilmek istenirse;

0 1 2
0 1 3
0 1 4
0 2 3
0 2 4
0 3 4
1 2 3
1 2 4
1 3 4
2 3 4

şeklinde bir sıra oluşuyor. Bu fonksiyonun görevi ise verilen indekse göre bu sıradaki sadece o indekse denk gelen kombinasyonu üretmek oluyor.

Bu kombinasyonların hepsini sıralı bir şekilde üretmenize yardımcı olacak kütüphaneler çoğu dillerde mevcut fakat belirli bir indekse göre kombinasyon üreten bir fonksiyon bulmak o kadar kolay olmuyor. Benim aşağıda linkte paylaştığım kod üzerinde bir çok kez iyileştirme yapılarak bu en son halini almıştır. Kullanmak veya kodu daha da geliştirmek isteyen herkese açıktır.

Kodun bulunduğu link:
İndeks bazlı kombinasyon üretmek

Teşekkürler,
Hanefi Mercan

Mar 03

Google Cloud Messaging uygulamasının Android kısmına geçelim.

Öncelikle yeni bir android projesi oluşturalım. Projenin SDK Manager kısmına gidelim, açılan pencerede Extras sekmesinin altında Google Cloud Messaging Library ‘i kuralım.sdk_manager

Ardından proje dosyasının libs klasörü altına gcm.jar dosyasını eklemeliyiz. Bu jar dosyasını registration id değerini üretirken kullanacağız.

Gcm.jar dosyasını anlatımın sonrasında projenin kod dosyasını paylaşacağım için, oradan erişebilirsiniz.

Bir sonraki adımda uygulamamızı test edeceğimiz sanal cihazın ayarlarına değinelim. Sanal cihazın hedef olarak Google APIs seçilmesi gerekir ki GCM işlemi başarıyla gerçekleştirilsin.

avm_gcm

Ardından projemizin Androidmanifest.xml dosyası içerisine girelim. Gerekli izinleri tanımlayalım.

INTERNET : Uygulama içerisinde internet kullanımına izin verir.

ACCESS_NETWORK_STATE : Network durumuna erişmek için gerekli izindir.

GET_ACCOUNTS : GCM için gerekli olan Google Accounts iznidir

WAKE_LOCK : Uygulamanın uyku vaziyette iken uyanması gerekirse bu izin gereklidir.

VIBRATE : Notification geldiğinde titreşim özelliğine izin verir.

Şimdi AndroidManifest.xml dosyanın tamamını paylaşalım.

Burada belirtmem gerekir ki benim oluşturduğum android uygulamasının proje adı : “com.project.gcmproject” Devamını Oku »

Etiketler:
Mar 02

Öncelikle Google API Console sayfasını açıyor ve “Create Project” butonuna basarak yeni bir proje oluşturuyoruz.

create_new_project
Android projemizin içerisinde kullanacağımız sender id bilgisi, Project Number olarak gösterilen değerdir. Bu değeri bir kenara not ediyoruz.
project_number

API & auth altındaki API sekmesine giriyoruz ve Google Cloud Messaging for Android servisini aktif hale getiriyoruz. Devamını Oku »

Etiketler:
Mar 01

gcm1

Google Cloud Messaging (GCM), geliştiricilerin, sunuculardan kendi android uygulamalarına veri göndermelerine yardımcı olan ücretsiz bir hizmettir. Bu hizmet kullanılarak, sunucudan android uygulamasına 4 KB’a kadar yük verisi içerebilen iletiler taşınılabilir.

Peki, bu teknoloji neden kullanılır?

Bir android uygulaması yazdığınızı ve bu uygulama aracılığıyla anlık maç skorlarını uygulamanıza çektiğinizi varsayalım.

Uygulamanızın belirli aralıklarla, kullandığınız sunucuya gidip anlık bilgileri alması gerekir.

“Gol olmuş mu?” , “Maçın kaçıncı dakikası?” , “Kart gören futbolcu var mı?” vb. birçok durum için uygulamanın sunucu ile sürekli haberleşmesi gerekir.

Peki, böyle bir durumun dezavantajları nelerdir?

  • Bu durum, sunucu yoğunluğuna neden olur.
  • Cihazın mobil veri aktarımı yüksek olur.
  • Sürekli bir aktivite mobil cihazın daha fazla ram kullanmasına neden olur.
  • Cihazın şarjı fazla kullanılacağından, bu durum bataryanın çabuk bitmesine neden olur.

Öyleyse bir teknoloji kullansak da uygulamamız sürekli sunucuya çıkacağına, maç sırasındaki olası değişikliklerde sunucu uygulamaya erişip “maç bilgilerinde değişiklikler var git onları al” dese. Yâda o değişiklikleri (boyut problemi yoksa) beraberinde getirse.

İşte Google Cloud Messaging tam da bu işe yarıyor. Sunucudaki verilerde olan olası değişiklikleri kullanıcının cihazına bildiriyor. Hem sunucu yoğunluğu azalıyor, hem cihazın mobil veri, ram ve batarya tüketimi azalmış oluyor.

Şimdi GCM teknolojisini biraz yakından inceleyelim. Devamını Oku »

Etiketler: