June, 2013 | Engin Polat'ın Windows, Web, Mobile ve Game içerikli programcılık sitesi

Arşiv

2013 June ayı için arşiv

Listedeki Her X’inci Elemanı Çekmek

27 June 2013 1 yorum

Bu yazıda elimizdeki listenin her x’inci elemanını çeken extension method yazacağız.

Örneğin, bir ankete cevap veren katılımcılardan her 5000’inci katılımcıyı seçmek istediğimiz durumlarda böyle bir method’a ihtiyaç duyarız.

TakeEvery() extension method‘u, Language Integrated Query (LINQ) method’larından Skip() ve Take() gibi çalışacak, fakat listenin belli sayıda öğesini atlayıp, belli sayıda öğesini seçmek yerine, her x’inci elemanı seçecek.

İlk olarak TakeEverySample isimli projeyi oluşturalım;

IEnumerable<T> sınıfına TakeEvery() method’unu eklemek için projemize ExtensionMethods isimli sınıfı ekleyelim;

public static class ExtensionMethods
{
	public static IEnumerable<T> TakeEvery<T>(this IEnumerable<T> list, int every)
	{
		if (list == null)
		{
			throw new ArgumentException("list parametresi boş geçilemez");
		}
		if (every < 1)
		{
			throw new ArgumentException("'every' parametresi en az 1 olabilir");
		}

		var step = 0;

		var enumerator = list.GetEnumerator();
		while (enumerator.MoveNext())
		{
			step++;
			if (step == every)
			{
				yield return enumerator.Current;
				step = 0;
			}
		}
	}
}

İlk olarak method'a geçilen parametrelerin değerlerini kontrol ediyoruz, eğer uygun olmayan bir değer verilmişse ilgili mesaj ile bir hata fırlatıyoruz.

list parametresinin enumerator'unu GetEnumerator() method'u ile aldıktan sonra MoveNext() method'u ile liste üzerinde ilerliyoruz.

step değişkeni every değişkeninin değerine eşit olduğunda aradığımız kaydı bulmuşuzdur, ilgili kaydı geri döndürüyoruz.

Örnek kullanım;

var rakamlar = Enumerable.Range(1, 1000000);

var her50000 = rakamlar.TakeEvery(50000);

// her50000 = { 50000, 100000, 150000, 200000, 250000, 300000, ... }

Windows Phone 8 telefonu uzaktan kilitleme-silme-çaldırma

13 June 2013 3 yorum

Windows Phone 8 kullanıyorsunuz ve önemli bir toplantıya girdiniz, telefonunuzu masanızda unuttuğunuzu farkettiniz. Çalışma arkadaşlarınızın telefonunuzu kullanarak adınıza email veya tweet atmasınından endişeleniyorsunuz. (Başıma geldiği için, ne kadar sıkıntı verici olduğunu biliyorum)

Hatta telefonunuzu kaybetmiş olabilirsiniz ve bulan kişilerin telefonunuzu kullanmasını istemiyorsunuz.

Windows 8 işletim sistemi kullanıyorsanız, telefonunuzu bilgisayarına bağlamışsınızdır mutlaka, Windows Phone uygulaması bilgisayarınızda kuruludur;

Uygulamayı başlatıp ekranın sağına doğru kaydığınızda, Kayıp telefon bulma kutusunu göreceksiniz;

Alternatif olarak internet tarayıcınızın ile Find My Phone adresini ziyaret edebilirsiniz.

İlk ziyaretinizde ekrana telefonunuzun markası, modeli ve verdiğiniz isim gelecek, yanında da Çaldır, Kilitle ve Sil linkleri yer alacak.

Linklerden herhangi birine tıkladığınızda telefonunuz ile ilgili bir defa yapmanız gereken ayarları içeren pencere karşınıza gelecek;

Gerekli alanları doldurduktan sonra Çaldır, Kilitle ve Sil linklerini kullanabiliriz.

Çaldır linkine tıkladığınızda ekranın altında bir bar belirecek ve gittikçe dolacak, benim durumumda yaklaşık barın yarısı dolduğunda telefonumdan tiz bir melodi duyulmaya başlandı;

Kilitle linkine tıkladığınızda, telefonunuz kilitlendiğinde ekranda belirecek mesajı belirleyebildiğiniz, kilidi açmak için kullanılacak şifre kombinasyonunu belirleyebildiğiniz ayar penceresi ekrana gelecek;

Gerekli alanları uygun şekilde doldurup Kilitle butonuna tıkladığınızda, ekranın altında bir bar belirecek ve gittikçe dolacak.

Bir noktada telefonunuzun kilitlendiğini ve eğer ayar penceresinde ilgili kutucuğu işaretlediyseniz tiz bir melodinin duyulduğunu farkedeceksiniz;

Kilidi açmak için ayar penceresinde belirlediğiniz kilit kombinasyonunu kullanmanız gerekmektedir.

Son olarak Sil linkine tıkladığınızda telefonunuzun fabrika ayarlarına döndürüleceğini, içerisindeki tüm ayarların, uygulamaların ve dosyaların silineceğini belirten bir uyarı gelecek;

Telefonumu ve içindeki uygulamaları sevdiğim için Eminim kutusunu işaretleyip bu noktadan öteye gitmedim. Eğer deneyen olursa yorumunu aşağıdaki yorum alanına bekliyorum.

Windows Phone 8 ekran çözünürlüğünü bulmak

06 June 2013 Yorum yapılmamış

Windows Phone 8, 3 farklı ekran çözünürlüğünü destekler; WVGA, WXGA, 720p


WVGA
480 x 800
15 : 9

WXGA
768 x 1280
15 : 9

720p
720 x 1280
16 : 9
Eğer programatik olarak ekran çözünürlüğünü bulmak istiyorsanız, App.Current.Host.Content altında tanımlı olan ScaleFactor özelliğini kullanmanız gerekiyor;

var cozunurluk = App.Current.Host.Content.ScaleFactor;

Yukarıdaki örnek kodda, cozunurluk değişkenine 100 (WVGA), 160 (WXGA) veya 150 (720p) değerlerinden biri atanacaktır.