19 Aralık 2013 Perşembe

Microsoft Teknolojileri Etkinligindeki Sunumum


Bugün bölümdeki msp arkadaşlarımızın düzenlediği etkinlikte ben de Kinect oturumum ile katkı vermeye çalıştım. Aslında bu etkinliğin amacı Teknopark'ta haftasonu ERU ACM, Erciyes Teknopark ve Microsoft'un ortaklaşa düzenleyeceği en uzun gecede yapılacak hackhaton etkinliğine gitmeden Windows Phone uygulama geliştirmeye giriş yapmaktı, bu açıdan Kinect biraz ekstra oldu :) umarım faydalı olmuştur. Kod yazmadık belki ama örnek projeleri inceleme fırsatımız oldu. Etkinliğe katılan herkes en azından basit düzeyde Kinect ile uygulama (hatta oyun :)) yazabilir duruma geldi diye düşünüyorum. Etkinlikte anlatmaya çalıştığım (hazır) uygulamalara tekrar göz atmak isterseniz diye linklerini ekliyorum:

Eklem açılarına ulaşım: http://www.uerkal.com/post.aspx?pid=107
İskelet yapısına ulaşım: http://www.uerkal.com/post.aspx?pid=96
Temel Ses Tanıma İşlemleri: Speech Basics

Hackhaton'da görüşmek dileğiyle :)

5 Aralık 2013 Perşembe

Socket Programming Using Boost Asio

Boost birçok uygulamada tercih edilen oldukça kullanışlı bir kütüphane.
Asio ise network uygulamalarında kullanmak için geliştirilmiş Boost'un alt kütüphanesi diyebiliriz. Daha önce Winsock Kullanarak C++ ile Socket Programlama başlığında Boost'un kurulumunun uzun olduğu ve Intelisense'in saçmalamasına sebep olduğunu bahsetmiştim. Yeni versiyonlarla (1.55.0) bahsettiğim ikinci sorun düzelmiş gibi görünüyor ancak Intellisense'in tepkisi yine biraz yavaş.

Öncelikle Windows 8 ve Visual Studio 2012 yüklü bir makinede Boost kurulumunun nasıl gerçekleştirildiğine bakalım:

Video sonunda oluşturulan konfigüre edilmiş projenin bir kopyasını saklamanızı tavsiye ederim. Böylece yeni projeler için tekrar nasıl konfigüre ediyorduk diye düşünmek zorunda kalmazsınız.

Kod kısmına geldiğimizde ise elimizde bir client bir de server var. Tahmin edeceğiniz üzere server'dan gelecek veriyi client dinleyecek. Bunları yaparken senkron bir UDP bağlantısı kullanacak. Temel bir uygulama olması adına ben yalnızca aldığım veriyi ekrana yazdırmayı tercih ettim.

Kodlaru şu şekilde: (Yorum satırlarını okursanız anlaşılır olacağını düşünüyorum.)

SyncUDPServer.cpp


SyncUDPClient.cpp

Burdaki örneği alıp Visual Studio'da compile ettiğinizde client'a string'in gelmediğini farkedeceksiniz. Bunun sebebi client'ın komut satırı parametresi olarak (hatırlatma: argc, argv) host'un adresini istemesi. Bende iki program da aynı makinede çalıştığı için host'umun adresi "localhost".

"localhost" parametresini gönderirken ister komut satırından;
SyncUDPClient.exe localhost yazabilir parametreyi elle gönderebilirsiniz.
İsterseniz proje özelliklerinde küçük bir konfigürasyonla bu işi halledebilirsiniz:


Böylece Boost Asio ile temel düzeyde, senkron çalışan, UDP üzerinden haberleşen sender ve receiver fonksiyonları yazmış olduk.

20 Ağustos 2013 Salı

Okudum: Code - Hidden Language of Computer Hardware And Software

Bilgisayar yazılımı ve donanımını ve aralarındaki ilişkiyi iyi bir şekilde anlamak isteyenlerin kesinlikle okuması gereken kitaplardan biri. İlk chapterlar Braille alfabesi ve telegrafın icadını konu alıyor, elektrik sinyallerini nasıl anlamlı hale getirebileceğimizden bahsediyor. Sonraki chapterlarda logic design konularına yer veriyor. Son olarak microprocessors ve operating systems konularıyla bitiriyor Charles Petzold. Yer yer de konularla ilgili ufak ilginç bilgilere yer veriyor. Örneğin;

"Almost everyone knows a little Morse code. Three dots, three dashes, and three dots represent SOS, the international distress signal. SOS isn't an abbreviation for anything-it's simply an easy-to-remember Morse code sequence. During the Second World War, the British Broadcasting Corporation
prefaced some radio broadcasts with the beginning of Beethoven's Fifth Symphony- BAH, BAH, BAH, BAHMMMMM-which Ludwig didn't know at the time he composed the music is the Morse code V, for Victory."

Kitap Amazon'dan uygun bir ücret karşılığında edinilebilir. Ayrıca konuyla ilgili daha fazla bilgi sahibi olmak istiyorsanız NandToTetris'e de bir göz atmanızı tavsiye ederim.

3 Temmuz 2013 Çarşamba

Booken Cybook Opus unboxing, inceleme

Uzun süren e-kitap okuyucu araştırmamdan sonra geçtiğimiz ay hepsiburada'dan bir Booken Cybook Opus siparişi verdim. Bir aylık kullanıcı deneyimimi bu yazıda anlatmaya çalışacağım.

Kutunun içinden cihazımız, bilgisayar bağlantı kablosu, şık bir kılıf ve e-reader'ı eğimli tutmaya yarayan plastik bir platform çıktı:
Booken Cybook Opus'u tercih etme sebebim parlamayı en aza indirgeyen ve gözü asla yormayan e-ink teknolojisine sahip ekranı oldu. Kullandığım süre boyunca da ürünün bu özelliklerinden oldukça memnun kaldım. Gözü hiç yormadığı gibi güneşte bile asla parlama yapmıyor, bir kağıttan farksız diyebilirim, hatta dünyanın parasına aldığımız kuşe kağıda basılı kitaplardan çok çok daha iyi.

Beni hayal kırıklığına uğratan tarafı ise içinde bulunan yazılım oldu. Öncelikle yazılım oldukça yavaş çalışıyor, internetten biraz araştırdığımda ise Booken'ın sitesinden firmware güncellemesini yaptığınızda bu sorunun ortadan kalktığını söylüyorlar, ben yapmadım o yüzden bu konuda bir fikrim yok. 

Cihazı almaya karar verirseniz düşünmeniz gereken ilk nokta cihazı hangi amaçla kullanacağınız. Benim cihazı almaktaki en büyük amacım ders kitaplarımı yüklemek ve okumaktı. Bunun için alıyorsanız almayın. Çünkü ders kitapları genellikle pdf formatında oluyor ve cihazın ne yazık ki pdf yazılarını büyütmek gibi bir özelliği yok. Bunun yerine zoom yapabiliyor ancak o da oldukça yetersiz kalıyor, özellikle bazen yazılımın yavaşlığından dolayı işkenceye dönüşebiliyor. Booken Cybook Opus aynı zamanda ders çalışırken altını çizme, üstüne not alma gibi alışkanlıkları olanlar için de tercih edilmemesi gereken bir ürün. 

Peki bu cihazı kimler tercih etsin? Cihazın pdf'in aksine ePub formatında çok başarılı olduğunu söylemeliyim. ePub uzantılı dosyalarda yazıyı istediğiniz puntoya büyütebiliyor ve yazı stilini de istediğiniz gibi değiştirebiliyorsunuz. Yani bu cihaz roman okumak için ideal.

Cihazın bir diğer güzel yanı ise pil ömrünün oldukça uzun olması. Dosya aktarımı yaparken yaptığım şarjlar ile bir aydan fazla süredir kullanıyorum. Çünkü e-ink teknolojisinde cihaz siz yalnızca kitap sayfasını değiştirmek için tıkladığınızda yeni sayfayı getirmek için enerji harcıyor. Onun dışında bir sayfa üzerinde 3 dk ya da 5 dk kalmanız harcanan pil miktarını değiştirmiyor.

Şunu da eklemeliyim ki, internette yaptığım araştırmalarda öğretim üyelerinin cihazı makale okumak için kullandığını ve oldukça memnun kaldıklarını okudum.

Tabi bunları anlattıktan sonra herkesin aklına pdf dosyalarını epuba çevirip okusak olmaz mı sorusu gelmiştir. O konuda da biraz araştırma yaptım. Ancak bunu yapan yazılımlar da oldukça yetersiz. Bu yazılımlarla convert işleminizi gerçekleştirdiğinizde genellikle kelimeler arasında büyük boşluklar kalıyor. Aslında bu sorun ufak bir kod yazılarak çözülebilir gibi duruyor, ancak kitap bol grafiklerin olduğu şemalarla anlatılmış bir kitap ise converterlar bu noktada iyice saçmalıyor ve kitabı anlaşılmaz hale getiriyor. Yine de denemek isteyen bu konuda en iyi olduğu iddia edilen calibreyi deneyebilirler.

Sonuç olarak eğer roman okumak için alıyorsanız alın, mutlaka memnun kalırsınız; ancak diğer kullanımlar için pek uygun değil Booken Cybook Opus.

Ücretsiz epub edinebileceğiniz iki kaynak ile yazımı sonlandırıyorum:

11 Haziran 2013 Salı

"Uzaktan Fizyoterapi" adlı projemiz Tübitak 2209 kapsamında destek aldı

Sayın Yrd. Doç. Dr. Mete Çelik danışmanlığında mart ayında başvurusunu yaptığımız projemiz bugün itibariyle Tübitak 2209 kapsamında desteklendi. Sevgili arkadaşım Mert Kavi ile birlikte sene boyunca çalışmaları sürdüreceğiz. Bu güzel haberi blogumdan duyurmak istedim :) Diğer destek alan projeler için linke tıklayabilirsiniz.

18 Mart 2013 Pazartesi

II. ACM Türkiye Öğrenci Kurultayı'nın Ardından


ACM Türkiye Öğrenci Kurultayları'nın ilki geçen sene ACM Hacettepe tarafından düzenlenmişti. Hacettepe'de 2.'sini yapmaya gönüllü olmuştuk ve 15,16,17 Mart tarihlerinde 2. ACM Türkiye Öğrenci Kurultayı Kayseri'de ERU ACM tarafından düzenlendi.

ERU ACM adına oldukça keyifli 3 gündü. İlk gün İbrahim Kıvanç'ın Windows 8 workshopu ile başladık. 2. ve 3. günler ise yazılım mühendisliği (Ferhat Savcı), mobil teknolojiler (İbrahim Kıvanç), Orman Genel Müdürlüğü Web Tabanlı Yangın Yönetim Sistemi (Vehbi Tutmaz & İlhami Aydın), robotik ve özgür yazılım (Dr. Necdet Yücel) konu başlıklarıyla devam ettik. Pazar günkü oturumlardan sonra Erciyes Dağı'na çıktık ve programımız burda sona erdi.

Birbirimizle fikir ve bilgi alışverişi yapmak adına çok verimli bir kurultay geçirdiğimizi düşünüyorum. Bu alışveriş sayesinde hem Türkiye'deki chapterlar hem de kurultay bundan sonraki yıllarda adından daha da söz ettirecek hale gelecektir.

Seneye Kurultay'ı Bilkent Üniversitesi düzenleyecek. Şimdiden sabırsızlanmaya başladık doğrusu :)

Yazımı bitirirken yoğun programına rağmen bizi kırmayıp kurultayda bizle birlikte olan ACM Avrupa Konseyi üyesi Reyyan Ayfer Hocamıza çok teşekkür ediyorum. Kurultay sonrasında hocamızın göndermiş olduğu mailden alıntı yapmak istedim :)

"Etkinliginizde yer almis olmaktan buyuk mutluluk duydum. 
Sana, arkadaslarina ve hepsinden onemlisi yaninizda canla basla destek veren hocaniz Mete Bey'e sonsuz tesekkurler ediyorum."

Reyyan Ayfer

Seneye Bilkent'te görüşmek üzere!