arşiv

yazılar buna göre etiketlendi; ‘Makalelerim’

Makale | Imagine Cup 2010

Cumartesi, 01 Ağu 2009 burakkanmaz yorum yok

Bu yazı Bilişim Dergi için yazılmıştır.

imaginecup

Bu yazımda sizlere Microsoft’un her yıl düzenlediği uluslararası teknoloji yarışması olan Imagine Cup’tan bahsedeceğim.

Imagine Cup, size hayallerinizi teknolojiyi kullanarak gerçekleştirme imkânı vermekte ve bu imkanın yanında sizin çok büyük maddi ve manevi gelirler elde etmenizi sağlamaktadır. Kafanızdaki küçük bir fikri yazılıma dönüştürerek hem çok güzel ve bedava bir yaz tatili yapabilirsiniz, hem de kendinizi uluslararası arenada yarıştırarak seviyenizi görebilirsiniz. Bunun yanında elbette maddi olarak çok büyük kazançlar elde edeceksiniz ve yepyeni arkadaşlıklar ve dostluklar edineceksiniz.

Imagine Cup, 2003 yılından bu yana her yıl farklı bir ülkede düzenlenmektedir. Geçtiğimiz yıl Mısır’da düzenlenen Imagine Cup, bu yıl Polonya’da düzenlenecek. Geçtiğimiz yıl yarışmaya 142 ülkeden 300.000’den fazla öğrenci katıldı. Bunun yanında Imagine Cup her yıl farklı kategoriler altında öğrencilerin yeteneklerini yarıştırmaktadır. Geçtiğimiz yıl; Yazılım Tasarımı, Gömülü Sistemler, Oyun Geliştirme, IT Yarışması, Robotik & Algoritma, MashUp, Fotoğraf, Kısa Film ve Tasarım kategorileri şeklinde düzenlendi. Bu yıl ise bu kategorilerin büyük bir kısmı tekrar düzenlenecek ve yeni kategoriler oluşturulacaktır.

Imagine Cup her yıl farklı bir tema üzerine düzenlenmektedir. Bu tema, bütün yarışma kategorilerinde geçerli olup, öğrencilerin bu temayla ilgili sorunlara çözüm sunmaları beklenmektedir. Geçtiğimiz yılki tema “Günümüzdeki zorlu problemleri teknolojiyle çözdüğünüz bir dünya düşleyin…” idi. Bu yıl ise yine aynı tema seçilerek öğrencilere her konuda proje geliştirme imkanı verildi. Yani aklınıza gelen herhangi bir soruna çözüm sunmanız, bu yarışmaya katılmanız için yeterlidir.

Imagine Cup yarışması Microsoft tarafından düzenlendiği için, sizden Microsoft’un teknolojileri ile çözümler bulmanız beklenmektedir. Örnek vermek gerekirse; Windows üzerinde çalışabilecek Visual Studio ile geliştirilmiş ve diğer yeni teknolojiler entegre edilmiş bir yazılım yarışma için uygun bir yazılımdır. Tabii, Fotoğraf ve Kısa Film kategorileri bu gerekliliğe tabi değildir. Fotoğraf ve kısa filmlerinizi istediğiniz yazılımlar ile yapabilirsiniz.

Bu kadar açıklama sanırım yeterli. :) Şimdi isterseniz başvurmak istediğinizde neler yapmanız gerektiğinden bahsedelim. Öncelikle http://imaginecup.com/ adresine girerek kayıt olmanız gerekmekte ve daha sonra hangi kategoride yarışmak istiyorsanız o kategoriyi seçmeniz gerekmektedir. Kategori seçtiğiniz zaman illa yarışmak zorunda değilsiniz. Bu nedenle sizlere tavsiyem bütün kategorilere kayıt olmanızdır. Kategorilerin son rapor gönderim tarihi 2010 başlarında (kesin tarih daha sonra resmi siteden duyurulacaktır) olacaktır. Raporunuzu gönderdikten sonra (Yazılım Tasarımı kategorisi hariç) beklemeye geçiyorsunuz ve uluslar arası komitenin raporunuzu incelemesini ve sonucunu merakla bekliyorsunuz. :) Tabii raporunuzu uluslararası bir komite inceleyeceği için İngilizce yazmanız zorunludur. Daha sonra eğer raporunuz beğenilirse ve finallere kalırsanız sizi her şeyiniz karşılanarak Polonya’ya götürüyorlar ve orada tekrar yarışıyorsunuz.

Yazılım kategorisini ise ayrı bölümde işlemek istiyorum çünkü yazılım tasarımı kategorisi en önemli kategoridir. Hatta Imagine Cup’ın öncelikli amacı Yazılım Tasarımı kategorisinde öğrencilerin yeteneklerini yarıştırmak ve herkes için faydalı ürünler ortaya çıkarmaktır. Yazılım kategorisine katılmayı düşünürseniz yine 2010 başlarına kadar süreniz bulunmakta ve açıklanacak son rapor gönderim tarihinde raporunuzu İngilizce olarak göndermeniz gerekmektedir. Raporunuz Microsoft Türkiye tarafından incelenerek onaylanacaktır. Eğer raporunuz beğenilirse, Mart ayı içerisinde (kesin tarih daha sonra belli olacak) yarı finaller (seyircisiz, sadece jüri) yapılacaktır. Yarı finallerde başarılı olan 7-10 ekip Nisan ayı içerisinde Türkiye finallerinde (seyircili ve jüri üyeleri karşısında) yarışacaktır. Türkiye finallerinde 1.olan ekip Polonya’ya ülkemizi temsil etmek üzere tüm giderleri Microsoft tarafından karşılanarak gönderilecek ve çok güzel bir tatil ve deneyim yaşayacaktır.

Hem kendinize benzersiz deneyim ve tecrübeler edinmek için, hem de dünyayı kurtarmak için neden hala bekliyorsunuz? Haydi, Imagine Cup’a kayıt olun ve yarışın. Siz Kazanın, Dünya Kazansın!

Imagine Cup Resmi Sitesi : http://imaginecup.com

Makale | Web Servisleri ve Kullanımı

Pazartesi, 01 Haz 2009 burakkanmaz yorum yok

Merhaba arkadaşlar, bu makalemde sizlere web servisleri hakkında kısa bir bilgi verip, küçük bir web servisi oluşturmayı anlatacağım.

Web servislerini basitçe, farklı dillerle ve platformlarla yazılan web siteleri arasında HTTP (80 numaralı port) protokolünü kullanarak bilgi alışverişi şeklinde tanımlayabiliriz. Örnek vermek gerekirse, yapacağınız bir masaüstü programınıza günlük döviz kurunu gösteren bir modül yapmak isterseniz, yapmanız gereken tek şey merkez bankasının günlük döviz kurunu veren web servisine bağlanıp verileri almak. Peki, bu nasıl olacak? Gelin hep beraber işin kodlama kısmına geçelim ve öğrenelim.

Öncelikle Visual Studio’muzu açalım ve File->New Project deyip aşağıdaki resimdeki ekrana ulaşalım. Daha sonra Web’i seçip ASP.NET Web Service Application’ı seçelim.

clip_image002

Visual Studio bizim yerimize Service1.asmx dosyası oluşturdu ve bu sayfanın kod kısmında (Service1.asmx.cs) bizim yerimize örnek bir metot oluşturdu. Gördüğünüz gibi oluşturulan örnek metodun başında [WebMethod] şeklinde bir tanımlama var. Bu bizim metodumuzun web servisi üzerinde kullanılabileceğini, yani dışarıdan erişilebileceğini belirtmektedir. Şimdi bu metodu değiştirelim ve kendisine gönderilen bütün sayıları toplayan bir Topla metodu tanımlayalım. Ek olarak da basit bir Carp metodu tanımlayalım.

[WebMethod]

        public int Topla(params int[] sayilar)

        {

            int sonuc = 0;

            foreach (int sayi in sayilar)

            {

                sonuc += sayi;

            }

            return sonuc;

        }

[WebMethod]

        public int Carp(int a, int b)

        {

            return a * b;

        }

Metodumuz, params int[] sayilar ifadesiyle kendisine gönderilen bütün verileri almaktadır. Daha sonra sonuc isminde bir değişken tanımlıyoruz ve sıfıra eşitliyoruz. Bu değişken bizim sonucumuzu tutacak. Daha sonra foreach (int sayi in sayilar) ifadesiyle metodumuza gelen sayıları alıyoruz. Ve bu sayıları sonuc değişkeni ile toplayıp return sonuc; ile sonucu gönderiyoruz.

 

Şimdi projemizi F5 ile çalıştırırsak aşağıdaki ekranı göreceğiz.

 

clip_image004

 

Buradaki “Service1” ismi bizim servisimizin adı, “Topla” ve “Carp”  ise bizim tanımladığımız metotlardır. Bizim bu web servisimizi kullanmak isteyen birisi “Service1” servisi altından “Topla” ve “Carp” metoduna erişebilecektir. Şimdi ise yaptığımız bu web servisini kullanacak bir örnek yapalım.

 

Basit olması açısından, bir konsol örneği olsun. Dikkat etmemiz gereken önemli bir nokta var. Bu web servisimiz şu anda local’de çalıştığı için eğer visual studio’yu kapatırsak web servisimizde kapanır ve erişemeyiz. Bu nedenle bu örneğimizi yapmak için yeni bir visual studio açalım ve bir tane konsol uygulaması oluşturalım.

 

Solution Explorer içerisindeki “References” a sağ tıklayalım ve “Add Service Reference…”a tıklayalım.

clip_image006

 

Açılan penceredeki adres satırına ise bizim web servisimizin adresini yazalım.

 

clip_image008

 

Adresi yazdıktan sonra “Go” butonuna basalım. Servisimiz aşağıdaki gibi listelenecektir.  Bir NameSpace verip tamam diyelim.

 

clip_image010

 

Daha sonra servisimizi kullanabilmek için önce o servisin bir nesnesini oluşturmamız gerekmektedir.

 

ServiceReference1.Service1SoapClient webServisimiz;

webServisimiz = new ServiceReference1.Service1SoapClient();

 

Bu 2 satır ile “webServisimiz” adında bir nesne oluşturduk. Şimdi ise servisimize erişebiliriz. Basit olarak önce Carp metodumuzu kullanalım.

 

Console.WriteLine("Çarpma Sonucu : " + webServisimiz.Carp(5, 4));

 

Altı çizili kırmızı renkli yerde gördüğünüz gibi basitçe web servisimizi çağırdık. Bu metot 5 ile 4 ü çarpıp sonucu int tipinde bize gönderecektir.

 

“Topla” metodumuzda durumlar biraz farklı. Çünkü bu metodumuza gönderilecek parametre sayısını değişken yaptık. Yani 1 tane sayı da gönderebiliriz, 1000 tane de. Bu nedenle öncelikle,

 

ServiceReference1.ArrayOfInt gonderilecekVeriler;

gonderilecekVeriler = new ServiceReference1.ArrayOfInt();

 

şeklinde “gonderilecekVeriler” şeklinde bir tamsayı dizisi oluşturmamız gerekiyor. Burada önemli olan kısım oluşturduğumuz değişken Service1’in belirlediği bir tipte (yani ArrayOfInt tipinde) olmasıdır. Daha sonra,

 

for (int i = 1; i <= 10; i++)

{

gonderilecekVeriler.Add(i);

}

 

kodu ile de 1 den 10 a kadar olan bütün sayıları “gonderilecekVeriler” tamsayı dizisine ekleyelim.

 

Console.WriteLine("Toplama Sonucu : " + webServisimiz.Topla(gonderilecekVeriler));

 

şeklinde de verilerimiz Topla metodumuza gönderip sonucu ekrana yazdıralım. Ekranımız aşağıdaki gibi olacaktır,

 

clip_image012

 

Gördüğünüz gibi, uzaktaki bir web servisine bağlanarak verip gönderip, gelen cevabı yönetebildik. Yine bu şekilde merkez bankasından günlük kurları çekebilir, TC Kimlik numarası sorgulayabilir ve daha birçok online hizmeti programınıza ekleyebilirsiniz.

Not : İsteyen arkadaşlar buraya tıklayarak bu örneklerin kodlarını indirebilirler.

Eğlenceli ve bol kodlamalı günler dilerim :)

Burak Kanmaz
Microsoft Student Partner / Turkey
Istanbul University Computer Engineering #3
www.burakkanmaz.net | burak@kanmaz.net
+90 538 778 9086 | +90 506 842 8976

Windows Azure

Cuma, 27 Mar 2009 burakkanmaz 4 yorum

Bu makale benim ilk makalem olduğu için çok heyecanlıyım :) Makale yazmaya hız verip yakın zamanda daha fazla makale ile karşınızda olacağım. Bu makalemi ayrıca Bilişim Dergi’nin Nisan 2009 sayısında da görebilirsiniz.

windows_azure_logo_thumb

Yakın bir gelecekte adını sıkça duyacağımız Windows Azure, Cloud Computing mantığı üzerine kurulmuş bir servisler platformudur. Burada “Cloud” interneti, “Cloud Computing” birleşimi ise farklı erişim yöntemleriyle internet üzerindeki bir servise erişim için yazılmış uygulamaları belirtmektedir.

Daha anlaşılır bir şekilde anlatmak gerekirse; son model bir bilgisayar aldığınızı düşünün. Bu sistemi ise sadece maillerinize bakmak ve internette gezinmek için kullandığınızı farz edin. Hem ödediğiniz ücret sizin için büyük bir gider olacaktır, hem de bilgisayarın gücünün büyük bir kısmını kullanmadığınız için verimsiz bir kullanım ortaya çıkacaktır. İşte Windows Azure bu noktada devreye giriyor. Çok temel minimum özelliklere sahip bir bilgisayarın İnternet Tarayıcısı (Internet Explorer, Firefox, Opera vb.) ile Windows Azure’a erişerek işlemci, depolama, hafıza ve grafik işlemlerinizi yaptırabileceksiniz.

Peki, avantajları nelerdir?

    Windows Azure’un genel bir bakışla avantajları;

  • Maliyet
  • Kullanım kolaylığı
  • Güvenlik
  • Ölçeklenebilirlik
  • Sürdürülebilirlik

Maliyet; Windows Azure, sizden kullandığınız sistem kaynakları kadar ücret talep eder. Normal bir kullanıcı (maillerine bakan, internette gezinen vs.) olduğunuzu düşünün…

  • Grafik ve tasarım alanı ilginizi çekti, sırf bu yüzden tonlarca para ödeyip yeni bir bilgisayar mı almak zorundasınız? Hayır, Windows Azure’u kullanarak sisteminizi yenilemeden, istediğiniz işlemleri sizin yerinize Windows Azure’a yaptırabilirsiniz.
  • En son çıkan oyunu oynamak mı istediniz? Normalde daha 2 ay önce aldığınız sistemi yenilemek zorunda kalırsınız. Ya da Windows Azure’u kullanarak oyunu hemen oynayabilirsiniz.

Yani kısacası siz yapmak istediğiniz işe odaklanın, işlemin nasıl yapılacağıyla ya da ne kadar yer kaplayacağıyla ilgilenmeyin. Ayrıca sistemin güvenliği, sürdürülebilirliği sizin yerinize yapılmaktadır. Kendi bilgisayarınızda hard diskinizin bozulması demek bütün verilerinizin kaybolması anlamına gelirken, Windows Azure kendi içerisinde sizin verilerinizin kaybolmaması garantisi vermektedir.

Şu anda Windows Azure üzerine kurulmuş Mesh uygulamasından bir görüntü aslında daha iyi ifade edebilir tüm bunları. Gördüğünüz gibi sanal bir Windows görünümü var. Normal Windows’ta yaptığınız tüm işlemleri burada yapabileceksiniz. Tek farkı ise Windows Azure kullanabilmek için herhangi bir internet tarayıcıdan başka bir şeye ihtiyacınızın olmaması.

mesh_thumb7

    Büyük şirketlerin ise hem veri bütünlüğü garantisi hem de performans açısından yakın bir gelecekte Windows Azure’a geçmeleri beklenmektedir. Windows Azure temelde 5 servis altında çalışmaktadır. Windows Azure ortamında uygulama geliştirmek için bu servisleri kullanabileceksiniz.

    1000002104_image004_thumb6 

    Son olarak Windows Azure hakkında resmi bilgiyi hatırlatalım. Microsoft’un başkanı Steve Ballmer’ın açıklamasına göre, Azure’nin bu yılın sonunda piyasaya çıkması planlanıyor. Bundan önceyse 30 Haziran’da yapılacak Professional Developers Conference’de sunulacak ve geliştiriciler için bir Preview sürümü piyasaya çıkacak.