Sessizliğimi Bozdum

Şu çok popüler gazetelerin internet sayfalarına attıkları başlıklar gibi dikkatinizi çekmek istedim.Hani şöyle ‘Ünlü oyuncudan şok itiraf!’ ya da ‘Canlı yayında inanılmaz kaza!’ tarzı sikimsonik başlıklar atıp hit kasmaya çalışıyorlar ya, bitiyorum onlara …

Her neyse.Yazıda aslında bir nevi sessizliğimi bozacağım çünkü farkettim ki epeydir bu bloga uğramamışım.Yeni yıla girer girmez’in verdiği küçük bir zamanı bu yazıya adıyorum.

En son motosiklet falan demiştik.O iş güzel güzel gidiyor.En son 30 bin bakımına falan soktum YBRmi.Mis oldu mis ! Si’si yükseltme işlerine falan başlayacağım yakında, ama önce “Money money money,must be funny …” 🙂 Yayınladığım son yazıdan itibaren 3 kişilik hackathon grubumuzla beraber değişik hackathonlara katıldık.Bunlardan bizim için en keyiflisi MasterCard’ın düzenlediği Masters of Code oldu.Runner Up (ikinci) grup olarak seçildiğimiz hackathon , bizim grupça katıldığımız en profesyönel şekilde organize edilmiş hackathon oldu diyebilirim.

Ekip olarak 7-8 hackathona katıldık bugüne kadar.2015 Mart ayında Ankara T2 Hackathon’da başladığımız bu hackathonlara katılma maceramıza hala devam ediyoruz.Katıldığımız bütün hackathonlardaki maceralarımızı paylaşacağım güzel bir blog serisi hazırlıyorum sizler için.Hangi hackathonda ne eksikti , ne fazlaydı , ne olmuştu , ne olmamıştı … Bir bir ifşa edeceğim 😛 Bi kere organizatörlerinin hackathon yerine “HACKATHLON” kelimesini kullandıkları firmalar tamamen çöp , onu belirteyim. -90 puanla yarışa başlıyorsunuz haberiniz olsun.

Katıldığımız her hackathonda projeyi MVP (Minimum Viable Product) tadında bitirmeye özen gösteriyoruz.Kodlarımızı canlı olarak hackathonda verilen süre içerisinde yazıp , Github üzerinde paylaşıyoruz.Ekip olarak her zaman ödül için katılmadığımızı; beleş yemek ve eğlencenin, sohbetin, üretmenin bol olduğu ortamlardan keyif aldığımızı belirtiyoruz.

Sanırım bu kadar hackathon konuşmak yeter.Sessizliğimi hackathon için bozmadım ben ! 🙂

Şu an itibariyle yeni yıla girmiş bulunduğumuz için aslında bir 2015 değerlendirmesi yapmak benim için iyi olacakmış gibi geliyor.2015 için benim söyleyebileceğim benzetmeler tam olarak şu şekilde anlatılabilir : Gösterip vermeyen kız, yanına limon konulmayı unutulmuş bir çiğ köfte, şarjı %80gösterip 30 sn konuştuktan sonra %3’e düşen cep telefonu ve iPhone diye aldığınız kutudan hıyar çıkması …

2015 mikemmel geçti diyemeyeceğim, ama daha kötülerine alıştığımız için artık pek de koymamaya başladı sanırım.Kaşarlanma meselesi , evet evet , tütün tütün meselesi.Hakket nolcek bu tütün tütün meselesi?

2014’ün Aralık ayında Fitbit aldığımı söylediğimi hatırlıyorum.Charge olanından, HR’sız (O zamanlar HRlısı vardı da biz mi almadık be kardeşim …) Her neyse, Mayıs gibi bunun kayışında yıpranmalar oldu.Yapışkanı söküldü falan.Ben bir de üstüne şarj kablosunu kaybettim.Satan eden vs.’de yok ki Türkiyede.eBaydeki yakışıklı bir Hong Konglu kardeşimizden 2 tane kablo siparişi verdim geçenlerde, ikisi de bozuk çıktı.Ya da artık alet bozuldu tam emin değilim.Ben o kayışın yapışkanı için törkiş möhendislik yöntemlerimi kullanırken bozmuş da olabilirim 🙂

Fitbit supporta mail attım dedim kardeşim böyle böyle… “Sizin mal fiyasko çıktı, oysa ki ne umutlarla almıştım, miehmet ali bey biraz yardımcı olun n’lur” tarzı bir yazıyla kendilerine ulaştım.Adamların söylediği tek şey şu : “Senin alete baktık, hala garantide.Bize adres ver yenisini göndercez.” Ben hayatımda böyle bir support görmedim.Sanırsın carry’den daha fazla kasmış! Bunun bir türk firması olduğunu varsaydık eğer dönecek cevap büyük ihtimal ‘Mal gibi kayışı koparmışsın aqdum hayvanı, kullanıcı hatası’ tarzı bişey olurdu.Ya da gönder bakalım dedikten sonra kullanıcı hatası diyip sağlam bi fiyat çekerlerdi.Ama adamlar o kadar profesyönel çalışıyorlar ki bunu çok güzel şekilde handle edebiliyorlar.

Üstelik, ben Fitbitimi Best Buy’dan alıp San Fransisco’daki bir arkadaşıma postalatmıştım.O getirmişti Türkiyeye.Mailde de “hacıdayı bak böyle böyle ben Türkiyede yaşıyorum, sorun olmaz de mi ?” diye.Yok yok olmaz , EU departmanına ilettim onlar 1 gün içinde yollayacaklar dediler.Harbiden de öyle oldu.1 gün sonra Your order has been shipped mailini inboxımda gördüm.Clap clap clap!

Konudan konuya atlıyorum biliyorum ama burası benim kendimi kendim gibi ifade edebildiğim nadir yerlerden birisi.O nedenle yazım hatasıymış, paragraf başıymış bilmem ne takılmıyorum çok fazla.Bu yazıyı okurken karşımda kahvenizi yudumluyor olsanız da ağzımdan bu kelimelerin aynısı dökülürdü muhtemelen.Araya biraz daha küfür serpiştirirdim tabiki, orası kaçınılmaz malesef.

Çok fazla şey yapmak istemeye başladım.Mesela Fransızca öğrenmek, piyano falan çalmak istiyorum.Lisede davul çalıyordum zaten, bu ritim kulağının üstüne piyano bence cuk otururmuş gibi geliyor.Ama aynı zamanda Fransızca da öğrenmek istiyorum.Eee nasıl olcak?

Bence olmaz.

Olamaz.

Olduramam.

Belki.

Bilinmez.

(o_O)

Motosiklet Aşkı

Şunu söylemeliyim ki , eğer içinizde çocukluktan gelme bir aşk varsa ilk sevgilinize duyduğunuz o pembe aşktan öte olan o şey aslında ‘Motosiklet Aşkı’ dır … 🙂

Yazıya neden böyle girdim ben de bilmiyorum ama bir yerlere varıcaz durun bakalım … Bir önceki yazımda bir motosiklet aldığımdan bahsetmiştim ve detaylı bir yazıyı da yazacağımı söylemiştim.Aradan zaman geçti , kilometreler yapıldı , benzin depoları dolduruldu , balatalar değiştirildi vs.Şimdi gelelim ben bu hikayenin neresindeyim ?

E motosikleti ben satın aldığıma göre hikayenin de göbek noktasının ben olmam sizi yanıltmayacaktır.Ilk motorum olduğu için hatalarımı affedecek ve cüzdanımı üzmeyecek bir motosiklet almaya karar verdim.Çok çirkin olmayan , eli yüzü düzgün , nispeten hacmine göre birazcık orta fiyat aralığında bir motosiklet olan Yamaha YBR 125 ile bu aşkın startını vermiş bulunuyorum.Kısacası Perfect 10’i sonunda yakaladım ! Aynı özelliklere sahip bir kız bulursam da evlenirim belli olmaz 😛

Şimdi , Honda severlerin “Ülen CBF150 varken ona para verilir mi ?” ya da “CBR125 alsaydın ortamlarda şeklin olurdu …” cümlelerini bir kenara bırakalım … O iş öyle olmuyor arkadaşlar … Profesyönel olmasam da mesleğim gereği uygulama tasarımlarına baka baka az çok göz zevkimiz de gelişti haliyle.E durum da böyle olunca kimse bana CBF’in o sağ karenajındaki çirkin (çirkin demek hoş kalır , çirkinlik abidesi diyelim) font ve renklerle yazılmış  CBF yazısına sahip motoru satmaya kalkmasın ! Bilader o ne öyle ya … En son 98’de falan CBRların kenarlarına yazıyolardı o tarz yazıları.CBR için aynı şeyi söyleyemeyeceğim çünkü haliyle bir yarış motoru (diyelim şimdilik).Bir yarış motorunun çirkin olması da beklenemez , ha pardon , Ducati hariç 😛 Açık konuşmam gerekirse 2. motorum olarak %100 bir racing alacağım , fakat başlangıç için racing bana biraz sürüğ pozisyonu açısından ters geliyor.

Daha önce motosiklet kullanmış biri olmayı bırakın , artçı olarak bile birine kaynakçılık yapmamış biri olarak başlangıç için 250cc almak hem kendime hem de cüzdanıma biraz haksızlık olurdu açıkçası.125cc bu konuda benim için harikaydı.Japonlar motordan anlıyor dedik , Honda’yı tasarımından eledik , ee geriye gözbebeğim Yamaha YBR kaldı.YBR dışında birçok 125cc motosiklet bulmak mümkün tabi , fakat yapılan incelemeleri okuduğumda YBR bana daha mantıklı bir karar geldi.

Temmuz sonunda 2. el bir YBR ESD 2012 aldım.Siyah.2. el almama rağmen ön fren balatası haricinde hiçbir sorun çıkarmadı şimdilik.Zaten alırken de alet sağlamdı , ucuza alalım zaten parça ucuz yaptırırız kafasında ilerlemedim yani 🙂 Sürüş stilim biraz agresif , o nedenle o akıcı sürüş modelini yakalamak için çalışırken hatalarımı ön frenle kapatıyorum.Bir fren balatası değiştirmek hem ucuz hem de ön freninizden ses geliyorsa en mantıklı çözüm 🙂

İlk başladığımda haliyle motosiklet kullanmamış birisi olarak kavrama noktası , frenleme , aleti zaptedip döndürme vs. gibi şeylerde zorlanıyordum.Başlamadan önce benim de kafamda “Bisiklet gibi abi işte zaten hız yapmıyo , çeviriyon gidiyo falan …” tarzı fikirler vardı fakat gelin görün ki işler öyle değilmiş.Iyi ki de değilmiş , çünkü böylesi daha zevkli.Bisiklet ile motosiklet arasındaki farkların oluşmasındaki bir numaralı sebep AĞIRLIK.Evet , AĞIRLIK.Bakın o kadar önemli ki iki kere uppercase bold yazdım.Bisiklet kullanırken bisikletin ağırlığı sizden daha hafif olduğu için gidonu kontrol etmeniz , aleti zaptetmeniz daha kolay.Fakat motosiklet denilen makina sizden ağır olduğu için vücudunuzla bu makinanın hakimiyetini sağlamak düşündüğünüz kadar kolay olmayabiliyor.Olmayabiliyor dedim çünkü çoğu zaman kolay olsa da (bkz. Kontra) bazı yol ve hava koşullarında olmayabiliyor.Benim motorum ortalama 130 kg.Ben 70kg’luk bir adamım.Motor neredeyse benim 2 kat ağırlığıma eşit olduğundan vücut ağırlığımı kullanarak bu alete yön vermeye çalışmak öküzün üzerine konan sinek etkisine benzer.Ha , etkisi yok denemez , fakat yok denebilecek kadar azdır.Bunları neden anlatıyorum , çünkü biliyorum ki içinde “Ulen biraz param olucaktı da basıp gidicektim alete …” diye düşünen ve bahsettiğim motosiklet aşkına sahip binlerce insan var.Tabiki motosikletin nasıl sürüleceğiyle ilgili size doğru bilgileri verebilecek insan ben değilim.Bunlar herkesin bilmesi gereken fakat biraz Googlelamanız gereken basit bilgiler.Ben sizi bundan kurtarıyorum 😛

  • Konuyu saptırmayalım.İşin özü motosikelt kullanmak , bisiklet kullanmak gibi değildir.

 

Bu aşk öyle birşey ki arkadaşlar , eve geldiğinizde sizi ‘Biraz daha video izleyim , biraz daha öğreneyim , birazcık daha okumam lazım ki motosikletimi aldığımda herşeye hazırlıklı olayım’ sorunsalına iter.Motosikleti almadan önce sürekli Altın Elbiseli Adam , MotorcuMuhabbeti , Dıral Dede , Motor Haydayan Adam , Motordan Anlamayan Adam , Yolcudur Abbas gibi Youtube üzerinden aktif Motovlog yapan kişilerin videolarını izliyordum.Hala da izliyorum.Abartmıyorum , bu saydığım motovloggerların bütün videolarını en az üçer kere izlemişimdir.İsimlerine hyperlink eklemeye çok üşendim , beni affetsinler bir ara eklicem 😛

Eğitici & öğretici videoların yanında bir de kaza videoları var tabiki.Bütün motorcu camiasının kabul ettiği şeylerden birini sizlere de iletmek istiyorum :

  • Motosiklet kullanmak , diğer bütün motorlu araçları kullanmaktan çok daha tehlikelidir.

Bunu aletin kullanım zorluğundan ya da ‘dikkatsiz sürenler’ bağbında söylemiyorum.Siz full ekipman ışıklarda duruyor olsanız bile araba kullananırken kaldırıma çıkabilme yetisine sahip bazı öküzler size arkadan vurduğu anda sakatlanma ihtimaliniz çok yüksek.Aldığınız her karar , baktığınız her yol & yön , algınızın açıklığı , üzerinizdeki ekipmanın kalitesi ne olursa olsun , felaket senaryolarını göz önünde bulundurarak bu işe başlamalısınız.Kendi hatalarınızdan kaynaklı kazaları pek önemsemiyorum çünkü her motorcu koyun burda da kendi bacağaından asılıyor.Değişen pek bir şey yok o konuda.Hayati durum söz konusu olunca da felaket senaryoları üzerinden karar almak benim için en mantıklısı olur her zaman , o nedenle bu kazada dururken araba çarpma örneğini verdim.

  • 100 metre bile gidecek olsanız her zaman tam ekipman giyin.

Şimdi bu da var tabi.Motosiklet camiasında iki tür insan vardır :

  • Motosiklet Kullanan Insan

  1. Kask onun için tam ekipmandır , her zaman … ( ‘ Kaskı tak yeter abi ya bişey olmaz ‘ )
  2. Kesmezcidir … ( ‘ 125’lik mi , yok abi 125le başlanır mı al bi 600lük tadına var biraz aletin ‘ )
  3. Ağır şekilcidir … ( ‘ Kanka bak bu xenon farları taktım etrafı bi parlatıyo sheqil !1!11! ‘) (Xenonları motorun altına tak öküz , yolda bitek sen yoksun)
  4. Düşük cc kullanan motorcuları küçümser … ( ‘ Ya olm bisiklet sürüp kendine motorcuyum diyen adamsın bi git allaşkına … ‘ )
  5. Motoruna iyi bakmaz , servis müptelasıdır … ( ‘ Olm benim vitesler hiçbi zaman geçmiyo çoğu zaman takılıyo ya … ‘ )
  6. Sürüş bilgisi zayıftır , kendi hatalarını motora yıkar ( ‘Abi bu alet çok güzel ama dönmüyo ya , hızlı giderken çok zor dönüyo ! ‘ )
  7. Motorunun tüm kabiliyetlerini kullanmadan cc yükseltir. ( ‘Eee artık bi 1000lik alalım da pistlere çıkalım de mi yeğenim ! ‘)
  • Motorcu Insan

  1. Ekipman ve sağlık bilgisi yüksektir , hayatının rahatından daha önemli olduğunu bilir.
  2. Seviyesini bilir , gereksiz hız yapmaz.
  3. Motosiklete ihtiyacı olan bilimum herşeyi verir , ona güvenir.
  4. Eğitim alır , eğitim alır , eğitim alır.
  5. Motoruyla mutludur ; seviyesine göre fazlasında gözü yoktur , gönlüne göre fazlasında gözü çoktur.

Bunlar benim düşüncelerim , çoğu motorcu arkadaşım da hak verecektir diye düşünüyorum.Motosiklet kullanan insan olmayın , her zaman motorcu insan olmak için çabalayın.

Bu aşkla yanıp tutuştuğumdan beri , 2 sene önce araba ehliyeti alırken hiç umursamadığım motor derslerinin birden ne kadar efsane olduğunu öğrendim.Motor demiyelim de , genel olarak mekanik diyelim.Motor nasıl çalışır , şansıman nedir , jikle , buji , rölanti , meme gibi seksi terimler aslında ne işe yarar vs … Son 2 ayda binlerce video izlemişimdir çok net söylüyorum.Tabiki motosikelt kullanmak video izlemekle olacak şey değil , eğitim almanız gerekiyor.Fakat motosiklet aşkıyla yanıp tutuşan adamın içine zaten bu teoriği yükseltip pratiğin üzerindeki yükü hafifletme isteği geliyor emin olun.Videolardan edindiğim bilgilerle motorun üzerindeyken çoğu kez “Haa demek bu böyleymiş” dediğim çok şey oldu.

Şimdilik evden işe , işten eve , işten Kadıköye falan gidip geliyorum.YBR oldukça keyifli , sürüşü kolay , hafif bir alet.Istanbul trafiğinde özellikle iş çıkış saatlerinde kasti hareketlerle yol vermeyen hödüklere denk gelmediğiniz sürece trafik sizin için adeta bir oyuncak oluyor.Zannedersem YBR ile 1 , 1.5 sene daha yolumuza devam edeceğiz.Daha önce de söylediğim gibi ben racing-sever bir adamım , ikinci motorum olarak da Kawasaki Ninja 250R , 250 SL ya da 300 düşünüyorum.Tabi bu tarz planları yapmak için henüz daha çoook erken , fakat belli olmaz 🙂

Bir arkadaşımın Yamaha R25’ini sürme şansım oldu birkaç hafta önce.Bu konudaki düşüncelerimi farklı bir yazıda dile getirmek istiyorum , şimdilik tek bir cümle söyleyeceğim :

BÖYLE BİR ŞEY YOK ARKADAŞ 🙂

Yakın zamanda bir GoPro veya ActionCam alıp yeni başlayanlar için motovlog hazırlamayı düşünüyorum.İşte o zaman yazdıklarımı okumak yerine izleyerek aşkımı paylaşabileceksiniz.Aşkımı paylaşmak biraz garip oldu tabi ama neyse …

HOŞÇAKAL !

 

Neler yaptım , neler ettim ?

Yılın en güzel vakitlerinden biri olan “Neler yaptım , neler ettim ?” köşemizde bu sene de uzun süredir ilgilenecek vakit bulamadığım blogumun gönlünü alıyorum.Bilmeyenler için belirteyim , yoğun zamanlarımda paylaşacak çok şeyim olmasına rağmen vaktim olmadığı için yazamadığım zamanlarda kısa bir özet niyetinde ‘Neler yaptım , neler ettim ?’ yazısı hazırlıyorum.Bu yazıların her sene birer tane olmasına özen gösteriyorum 🙂 Daha önceki yıllara ulaşmak için favori arama motorunuza (motor dedim bak heyecanlandım birden) ‘Neler yaptım neler ettim burak’ yazmanız yeterli 😛

Uzun zamandır şirkette işler biraz yoğun olduğundan bloguma ve diğer şeylere pek vakit ayıramıyordum açıkçası.Şu zamanlar az da olsa boş vakit bulunca hemen yazmaya başladım 🙂 Bu yoğun zamanda çok fazla şey yaptım , kısaca anlatayım :

Motosiklet aldım

Yaklaşık 3 sene önce ailem tarafından her ne kadar ‘Ben araba kullanmayı sevmiyorum.Araba koskocaman bir demir yığını , ucuzlarının hiçbir şekli yok , sürüşü keyifli değil ve burası Istanbul’ diye yalvarmama rağmen B sınıfı ehliyet sınavına zorla sokulduğumda A2 ehliyetimi alamamıştım.Çocukluğumdan beridir sürekli aklımda olan motosiklet sevdamı sonunda bir Yamaha YBR 125 ESD satın alarak hayata geçirdim.2012 model 2. el bir alet , 125 cc ve ayaklığı kaldırmadan marş motoru çalışmıyor.Şeytan detayda gizlidir !

Öğrenme aşamasında olduğumdan dolayı düşük hacimli bir motorla başlamanın daha uygun olacağını düşündüm.Şahsen daha önce motosiklet selesine oturmamış birisi olarak söyleyebilirim ki başlangıç motoru olarak görülen 250 cc motorlardan biriyle başlamam hiç de iyi olmazdı , biliyorum.Emeklemeden yürünmeyeceğini yıllar boyu tecrübelerimizle sabitledik , sıkıntı yok.

1 ya da 1.5 seneye , biraz daha sürüş tekniğimi ilerlettiğimde bir Kawasaki Ninja 250 SL edinmeyi düşünüyorum.Çok sexy alet.Öyle pek de hız – şekil tutkunu olmadığımızdan dolayı 2. motor olarak 250 cc gayet yeterli olacaktır.

Motora harcadığım paranın yarısı kadar bir miktarı da elbette ekipmana harcadım.Yazlık bir Revit ceket , AGV K-3 SV Kask , kemikli cix eldivenler ve dizlikler … Ilk günlerde biraz zorlansam da şu an sürüş konusunda bir sıkıntım yok.El – ayak koordinasyonum mükemmel diyebilirim.Ilk başlarda biraz tırsıyordum açıkçası , fakat şu an bir scooter yerine vitesli motorla başladığım için kendimi şanslı hissediyorum.

Her sabah 5’te Ümraniye’nin ılık sokaklarında motorumla turluyorum.Benim için inanılmaz pratik oluyor.Her gün gaz ve debriyaj kontrolümü iyileştiriyorum diyebilirim.Yandan tek tük arabaların çıkmasına alıştıkça da anti-panik algım biraz daha genişliyor.Trafik görüşümün yüksek olmasını da genel olarak çok dikkatli olmama bağlıyorum.Şu kavrama noktası (friction point) olayını da çok azıcık daha ilerlettiğim zaman temel bir motosiklet sürücüsü olabileceğim 🙂

Motosiklet sürmeyle ilgili düşünce ve görüşlerimi farklı bir yazıda sizlerle paylaşmak istiyorum , o nedenle şimdilik bu kadarlık motosiklet muhabbeti yeter.

Macbook Pro aldım

Onu aldım , bunu aldım , sonunda Macbook da aldım.Ekran kartsız 15 inçlik Force Touch 16 GB modelini aldım.Gayet de memnunum.Bootcamp ile şu an Mac – Windows beraber kullanıyorum.Hiçbir yerde de performans sıkıntısı yaşamadım şu ana kadar.Ekran kartı by default Intel olmasına rağmen oyunlarda bile iyi performans alabiliyorum.Zaten oynadığım 2 oyun (Dota 2 – CS:GO) var , onlarda da hayli hayli yetiyor.Isınıp kapanma , donma vb. problemlerle hiç karşılaşmadım.

Birkaç sene önce insanların hep aynı kalmadığının kanısına inanmaya başlamıştım.Son zamanlarda da bu kanının bir yanılma olmadığını anlayabiliyorum.Yıllar önce bu blogdaki ‘Ben Kimim’ kısmında ‘Sigara nefretçisi’ , ‘Apple düşmanı’ , ‘Ileride Starbuckslarda takılıp lattesini içerken çalışan insanlardan olmak istemiyor’ gibi şeyler yazıyordu.Son zamanlarda bir Starbucksa gidip Lattemi içerken Macbookumu açıp bir sigara yaktığım çoktur 🙂

Garip vesselam.

Work , work ve work.

Geliştirdiğimiz ürünün deadline süresi yaklaşırken yoğun bir çalışma temposu altında sabah akşam kod yazıyoruz.Bu hayatımda değişen bir şey değil , niye yazdım ben de anlamadım …

Velhasılkelam , işler yolunda.Ağustos sonu gibi bir Çanakkale ziyaretim olabilir.Hatta ne güzel olur şöyle motora bi atlasam , yollar benim olsa , piüvv …

Güncel Televizyon Artık Open Source !

Geçen sene ilk versionunu kodlamaya başladığım , Windows Store’da 3 binden fazla değerlendirmesi olan , 50 binden fazla indirilen ve 4.5 yıldız ortalamaya sahip olan televizyon izleme uygulamam Güncel Televizyonu Github üzerinden açık kaynak hale getirdim.Bu uygulamanın bende yeri aslında oldukça büyük.Küçük projelerin yanında bu tarz büyük bir projeye başlamamlaberaber Windows Phone ve Windows 8 üzerindeki tecrübelerimi fazlasıyla geliştirme fırsatı buldum.Şu an bu teknolojiler üzerinde bildiğim neredeyse herşeyi bu projede bulabilirsiniz.Aşağıda özene bezene yazdığım bir hikaye mevcut.Projenin her bir aşamasını , neyi nerde neye dayanarak nasıl yazdım vs. hepsini öğrenebilirsiniz 🙂

Projeye buraya tıklayarak GitHub üzerinden ulaşabilirsiniz !

Hikaye

Fikir tamamen ‘Acaba yapabilir miyim ?’ düşüncesiyle ortaya çıktı.Uzun bir yolculuk olacağını biliyordum , fakat herzamanki gibi bu korku da beni yıldırmadı 🙂 Küçük bir araştırma yaparak HLS (m3u8) , RTMP ve MMS protokolleri üzerinden streaming yapmayla ilgili bilgiler edindim.Daha sonra bu protokollerin Windows Development konusunda yapılan örneklerini araştırdım.Çoğu kanallar HLS yayını yapıyordu ve Windows’taki MediaElement kontrolü by default olarak bu desteği vermiyordu.Araştırmalarıma devam ederek Windows Phone Media Streaming Library (PhoneSM) adlı open-source kütüphaneyi buldum.Bu kütüphane sayesinde MediaElement’e HLS oynatma desteğini entegre edebiliyordum.

Web API

Yayın adresleri sürekli değişiyordu.Bir gün çalışan bir HLS yayını bir sonraki gün çalışmayabiliyordu.Bunu farkettikten sonra uygulamanın içerisinde yayın linklerini sabit olarak gömemeyeceğimi anladım.Bu sorunu çözmek için de çalışan canlı yayın linklerini uygulamaya iletebilecek bir Web API hazırladım.API, izlenilmek istenen kanalın yayın linkini kendi hafızasından uygulamaya iletiyordu ve bu linkleri değiştirmek için tek yapmam gereken sadece API projesini güncelleyip publish etmekti.Böylece her yayın linki değiştiğinde uygulamayı güncelleyip Windows Store’a update göndermek zorunda kalmayacaktım.

Basit bir web api projesi üzerinden çoktan uygulamaya bir farklılık yaratmıştım.Arkasında bir web servis çalışan tek televizyon izleme uygulaması Güncel Televizyondu.Fakat bu da yeterli değildi.Her gün bütün linkler çalışıyor mu acaba diye kontrol edemezdim.Bu soruna da bir çözüm bulmam gerekiyordu , buldum da 🙂 Çok izlenen ve resmi sitelerinde ‘Canlı İzle’ özelliği olan kanallar için Web API projesini güncelledim.API’a bu kanallardan izleme linki isteği geldiğinde API kanalın web sitesindeki ‘Canlı Izle’ sayfasına gidecek , siteyi okuyup içerisinden uygulamaya gönderilecek izleme linkini hazırlayacak ve göndericekti.Böylece az bir eforla çoğu kullanıcının izlediği popüler kanalların kontrolünü yaparak vakit kaybetmeyecektim ve uygulamadaki linkler daha uzun ömürlü ; hatta ömürsüz olacaktı 🙂

Sırf yukarıdaki özelliği API’a entegre etmem bile işimi oldukça kolaylaştırmıştı.Fakat bu da benim için yeterli değildi.Uygulamanın daha ön plana çıkabilmesi için değişik özellikler düşünmem gerekiyordu.Ben de yine hiçbir televizyon izleme uygulamasında olmayan Yayın Akışı desteğini getirdim.API , istenilen kanalın o günkü yayın akışını belli başlı web sitelerine bağlanıp hazırlayarak uygulamaya geri döndürüyordu.Ilk yazdığımda her istekte site tekrar analiz edilip öyle gönderiliyordu ve bu da ciddi bir vakit kaybıydı (4,5 saniye).Bu özelliği daha da geliştirerek her gece 2’de otomatik olarak desteklenen bütün kanalların yayın akışını hafızasında tutacak bir sistem hazırladım.Azure Websites üzerinde çalışan Web API projesi her gece Azure Webjobs’dan tetiklenen bir komutla hafızasındaki bütün kanalların yayın akışını yeniliyor ve bir sonraki güne kadar hafızasında tutuyordu.Böylece istenilen kanalın yayın akışı milisaniyeler içerisinde uygulamaya iletilebiliyordu.

Kanal sayısı arttıkça uygulamalaya iletilecek yayın linkleri artıyor ve bunların kontrolü de zorlaşıyordu.Bu linkleri bir veritabanı altyapısına bağlayarak herhangi bir link değiştiğinde Web API projesini tekrar tekrar publish etmekten kurtuldum.Artık yapacağım tek şey canlı sitesinden okunamayan kanallar için linkini veritabanına girmekti.Böylece uygulamada kullanabileceğim fully functional ve oldukça hızlı bir altyapıya sahip oldum.

Windows 8.1

Web API projesini hazırladıktan sonra uygulamayı derli toplu bir hale getirmek için çalışmalara devam ediyordum.PhoneSM’i izleme sayfasınad entegre ederek HLS yayın desteğini sağladım.Çoğu kanal kendi sitelerinde HLS yayını yapıyordu.Aslında Güncel Televizyon’un sahip olduğu bu zengin ve çalışan kanal listesinin tek sebebi HLS videoları oynatabilmesiydi.Arkasındaki API altyapısı sayesindeyse bu linkler hiçbir zaman ölmüyor , marketteki ratingleri gittikçe artıyordu.

Uygulama kullanılmaya başlandıkça yorumları okumaya devam ediyordum.Herkesin şikayetçi olduğu donma sorununa alternatif birşeyler bulmam gerekiyordu.Ülkemizdeki internet altyapısının verdiği düşüklük nedeniyle bazı kullanıcılar yayınları izlerken buffering sürecinde sıkılıyor ve kötü yorumda bulunuyorlardı.Ben de uygulamaya desteklenen kanallarda HD – Low quality özelliğini getirdim.Interent hızına güvenen kullanıcılar HD butonuna basarak en yüksek kalitede izleyebiliyorlardı.Düşük hızlı internete sahip kullanıcılar göz zevklerinden biraz fedakarlık ederek en düşük kalitede izleyebiliyorlardı 🙂 İleride bu özelliği daha da geliştirerek kullanıcılara destekleyen kanallarda seçebilecekleri bütün bandwith değerleri üzerinden izleme özelliği sundum.

Bu zamana kadar uygulamanın eksiklerini arkadaşlarımdan ve marketteki yorumlardan okuyordum.Bu takibin kontrolü biraz zordu haliyle.Kullanıcılar benimle olan iletişimlerini daha kolay yollardan iletmelilerdi.Bu nedenle bir Mobile Services projesi hazırlayarak uygulamaya iletişim formu koydum.Artık uygulamayı geliştirebilmek için daha fazla kaynağım vardı.

Uygulamaya yeni bir kanal eklendiğinde veya bazı kanalları kaldırmam gerektiğinde uygulamayı günellemem gerekiyordu.Bu başlı başına büyük bir sorundu ve çözümü çoktan düşünmüştüm aslında.Uygulamaya kanal senkronizasyon mantığını getirerek bu sorundan kurtulabilirdim.Uygulama açılırken version numarasını API’a gönderiyordu.API , version numarasını kontrol ederek o versiondan yeni bir version varmı diye kontrol ediyordu.Eğer update varsa , uygulamaya yeni kanal listesini gönderiyordu.Eğer yeni kanal listesi gelirse , uygulama bütün kanalları silip yeni kanal listesini locale kaydediyordu.Böylece bütün kanallar version numarasına göre senkron bir şekilde çalışıyordu.

Her kanalın fotoğrafı Azure Storage üzerinde açtığım bir blob üzerinde veritabanındaki kanal numarasına göre saklanıyordu.Eğer bir kanalın fotoğrafını güncellemem gerekirse sadece Storage hesabımdaki dosyanın üzerine kopyalıyordum.

Windows Phone 8.0

PhoneSM , Windows Phone 8.1 üzerinde çalışmıyordu.Ayrıca telefon uygulamasının Metro uygulamasından biraz daha yanar dönerli olması gerekiyordu , kısacası ekstra bazı componentlar kullanarak uygulamanın arayüzünü güzelleştirmem gerekiyordu.Telerik for Windows Phone kullanmaya karar verdim.API projesine çağrı yapan ve Windows 8.1 uygulamasında kullandığım bazı classları Windows Phone projesine aktararak büyük bir iş yükünün altıntan kolayca kurtuldum.Windows uygulamasındaki bütün özellikleri Windows Phone projesine aktararak Universal Project olarak markete gönderdim.

Mutluyum 😀

Sonuç

Benim için ‘Ben bunu yapabiliyorum !’ diyebildiğim bir proje oldu Güncel Televizyon.Şu an en yeni sürümü Windows Store mağzasında , telefon sürümü ise şu an için yayında değil.Vakit buldukça biraz daha geliştirip yayınlayacağım.Bunun yanında iki platformdaki appten de kaldırdığım push notification özelliği gibi özellikler de vardı , onları da vakit bulursam tekrar eklemeyi düşünüyorum.

Sayonara ! 🙂

MSP Meetup !

Daha önceki zamanlarda yalnızca Istanbul’da düzenlediğimiz MSP Meetup etkinliğinin ikincisini bu sefer 7 farklı şehirde düzenliyoruz.Bazı şehirler için katılmak artık çok geç olsa da Ankara ve Istanbul için hala sınırlı sayıda bilet mevcut.Buraya tıklayarak Sezgin’in hazırladığı cix meetup sitesine giderek EventBrite üzerinden ücretsiz biletlerinizi alabilirsiniz 🙂 (Gelemeyecek olanlar varsa biletleri iade etmelerini rica ediyoruz ^^)

“MSP Meetup’da nedir ?” derseniz , Microsoft Student Partners programına dahil olan öğrenciler ile dahil olmayan öğrencileri bir araya getirip sohbet ortamında kaynaşmalarını sağlayan bir buluşma etkinliğidir.Sizinle belirlediğimiz şehirlerde , belirlediğimiz mekanlarda buluşup sohbet ediyoruz , kahve içiyoruz … Bu sohbet sırasında sizler aklınıza takılan her türlü şeyi sorabilme imkanı buluyor ve Microsoft programları hakkında derin bilgilere sahip olmuş oluyorsunuz.’Benim Microsoft’la alakam yok olm , maksat sohbet mappet’ diyenleri de bekliyoruz 😛

Istanbuldaki Meetup için bu Cumartesi Microsoft Istanbul ofisinde olacağım.Gelin , konuşalım 🙂

Visual Studio üzerinde Node.Js

Yakın zamanda Node.Js üzerinde kısa süreli de olsa çalışma fırsatım oldu.Javascript hep öğrenmek ve kullanmak istediğim bir dil olarak bir kenarda duruyor olsa da bu kısa süre içerisinde Node.Js kullanarak ortaya bir şeyler çıkarabildiğim için mutluyum 🙂

NTVS Extension

Çalışmaya başlamadan önce küçük bir araştırma yapıp “Node.Js Tools for Visual Studio” ya da kısa adıyla NTVS isimli bu extensionı buldum.NTVS , Visual Studio üzerinde Node.Js geliştirme yapmayı oldukça kolaylaştıran bir extension.Bu abimizin bazı becerileri :

  • Intellisense
  • Debug seçenekleri
  • NPM için geliştirilmiş bir tool (NuGet’in Node.js versionu diyebiliriz)
  • Performans grafikleri
  • Hazır Node.Js templateleri

gibi gibi sayabiliriz.Bunun dışında daha bir çok özelliği var ve oldukça stabil çalışan bir sistem.

NTVS’i buraya tıklayarak Codeplex üzerinden inceleyebilirsiniz.Extensionı kurduğunuzda Visual Studio’da yeni proje templateleri altındaki “Other Languages” menüsünün altında bulunan Javascript diline yeni birkaç template geldiğini görebilirsiniz.

NTVS ile gelen hazır Node.Js templateleri.

NTVS ile gelen hazır Node.Js templateleri.

Bazılarının üzerinden geçelim :

  • From Existing Node.js code : Varolan Node.js kodlarınızı bir proje haline getirerek Visual Studio solutionı oluşturur.
  • Blank Node.js Web Application : Çalışan küçük bir Node.js web sunucusu yaratır.
  • Blank Node.js Express 3 & 4 Application : Sürümüne göre Express kullanarak boş bir Node.js uygulaması yaratır.
  • Blank Azure Node.js Web Application : Uygulamayı Azure Web App olarak Azure’a publish etmek için gerekli web.config dosyalarıyla beraber boş bir Node.js uygulaması yaratır.

Normal koşullarda Node.js uygulamanızı Azure’a publish edebilmeniz için Git kullanmanız gerekiyor.Fakat hazır Azure templatelerini kullanarak Visual Studio üzerinden klasik sağ tık > Publish menüsünden Node.js uygulamanızı saniyeler içerisinde Azure’da çalışan Web App’e (eski adıyla Websites) deploy edebiliyorsunuz.

Remote Debugging

NTVS kurduğunuz zaman localhost üzerinde çalışan Node.js uygulamanıza breakpointler koyarak debugging yapabilirsiniz.Bunu Azure üzerine publish edilmiş bir Node.js sunucusunda yapmak istiyorsanız yapmanız gereken birkaç adım var :

  1. Azure Portal’a girerek uygulamayı publish ettiğiniz Web App’in Configure sekmesinden “Web Sockets” ayarını ON yapın.

  2. Visual Studio üzerinden uygulamayı publish yaparken Settings kısmından Debug’ı işaretlemeyi unutmayın.Publish menüsünden bu seçeneği Release’den Debug a çevirmezseniz uygulama sürekli Release modunda deploy edilir ve remote debugging yapamazsınız.pb1
  3. Server Explorer üzerinden uygulamayı yayınladığınız website üzerine gelin , sağ click > Attach Debugger(Node.js) seçeneğini işaretleyin.

    men1

Bu adımlardan sonra uygulamayı tekrar publish edin.Visual Studio üzerinde koyduğunuz breakpointlerin Azure’a publish ettiğiniz uygulamadan tetiklendiğini görebilirsiniz.

 

Daha Fazlası

NTVS sadece yukarıda anlattıklarımdan ibaret bir extension değil.Extensionu nasıl kullanabileceğiniz ile ilgili Youtube üzerinden birkaç güzel video yayınlamışlar.Bu videoları izleyerek de Visual Studio üzerinde NTVS kullanarak Node.Js deneyiminizi iyileştirebilirsiniz ! Genel bir bakış için aşağıdaki overview videosunu izleyebilirsiniz.

[Windows Phone Development 101] – Tasarım (XAML)

Serinin ilk yazısına buraya tıklayarak ulaşabilirsiniz.

Aradan yaklaşık 2.5 ay geçmiş 🙂 Koşturmaca nedeniyle çok özen göstermek istediğim bu seriye yeterli vakti ayıramadım sanırım :/ Olsun , kaldığımız yerden devam !

Serinin ilk yazısında geliştirmelerimizi C# ve XAML kullanarak yapacağımızı ve XAML’ın ne olduğunu kabataslak anlatmıştım.Artık bir Windows Phone uygulamasında kullanacağınız bütün ekranların nasıl bir yapıyla kodlanması gerektiğine değinebiliriz.

Boş bir WP projesi açtığınız zaman MainPage isimli bir sayfa projeye otomatik olarak eklenir.Bu sayfa uygulama çalıştığı zaman ilk olarak yüklenecek sayfadır.Eğer uygulama açıldığında farklı bir sayfayı yüklemek isterseniz App.xaml.cs dosyasını açarak aşağıdaki satırı düzenleyebilirsiniz :

if (!rootFrame.Navigate(typeof(MainPage), e.Arguments))

App.xaml.cs dosyasındaki rootFrame nesnesi , uygulamanın çalışma süreci içerisinde ekranı dolduracak olan nesnedir.Ilk yazıda bahsettiğim Navigate methodu ile bu satırda yüklenecek sayfayı belirliyoruz.Dikkat ederseniz bu method geriye bir bool döndürüyor.Bunun nedeni navigasyonun başarısız olduğu senaryoları yakalayıp handle etmek.Yani ben herhangi bir nedenden dolayı istediğim sayfayı yükleyemiyorsam Exception alıp uygulamayı patlatmak yerine farklı bir alternatif sayfaya yönlendirme yapabilir veya kullanıcıya uygun hata mesajını gösterebilirim.Bu tarz senaryolara ve geri tuşunu handle etme işlemlerine bir sonraki yazılarda değineceğim.

XAML konusuyla girdik fakat bu kısma değinmeseydim olmazdı … Tasarım üzerinden devam edelim.

MainPage sayfasını düzenlemek için dosya üzerine çift tıklayarak sayfayı XAML Designer ile açın.Designerın alt barındaki >> veya << butonlarını kullanarak sayfayı ikiye bölebilir ve hem tasarım tarafını hem de tasarımın kod tarafını görebilirsiniz.Tasarım yapmak için XAML tasarım aracını kullanabileceğiniz gibi XAML kodlarını yazarak da yapabilirsiniz.Benim daha kolayıma geldiği için ben genelde designer tarafına pek bulaşmıyorum.Bu yeni başlayanlar için iyi bir yöntem olmayabilir , fakat XAML kodlarını yazmaya ve birşeyleri kafanızda hızlı bir şekilde oturtmaya başlayınca kod tarafında yazımın daha rahat olduğunu görebilirsiniz 🙂

Boş bir XAML sayfası

Boş bir XAML sayfası

Karşınızda yukarıdaki gibi bir ekran olması lazım.Sağ tarafta tasarımın kodları , sol tarafta ise bir önizlemesi.Bu ekranı görüyorsanız Visual Studio’nun sol tarafında Toolbox’ı da görüyorsunuz demektir.All XAML Controls başlığı altında bu sayfaya ekleyebileceğiniz bütün XAML kontrollerini görebilirsiniz.En çok kullanılan kontrolleri kısa açıklamalarıyla beraber sizler için yazdım.Bir kontrole tıkladıktan genelde sağ altta açılan Properties penceresinde o kontrole ait değiştirilebilir özelliklerin listesini bulabilirsiniz.Aşağıda anlattığım sık kullanılan kontrollerin temel özelliklerinden ziyade dikkat edilmesi gereken yerlerine veya ipucu olarak kullanılabilirliği olan özelliklerine değindim , buyrunuz :

textblock1

  • Textblock : Ekrana belirlenen font ve büyüklük ile yazı yazar.Entry , label vs. olarak diğer platformlarda alternatifleri mevcuttur.Aslında ekranda düz bir yazı göstermek istediğimiz her yerde kullanabiliriz.
    • Background propertsini yoktur.Bu nedenle arkaplan rengini değiştiremezsiniz , her zaman transparandır.

 

textbox1

  • TextBox : Bir yazı girilmesi gereken durumlarda kullanılır.Örneğin bir giriş ekranında kullanıcı adı’nın girildiği yerler birer TextBox’tır.
    • InputScope : Kullanıcı bu TextBox’a tıkladığında girebileceği değerlerin açılması gereken pencereyi belirler.Detaylar için inceleyebilirsiniz.
    • BorderBrush : Kutucuğun çevresindeki kenarların rengini belirler.
    • BorderThickness : Kutucuğun çevresindeki kenarların kalınlığını belirler.4 farklı değer alır , soldan başlamak üzere saat yönünde bütün kenarlar için farklı bir kalınlık değeri girebilirsiniz.(double türünden)
    • SelectionHighlight : Kullanıcı kutucuktaki yazıyı seçtiği zaman seçili alanın hangi renge boyanacağını belirler.

buton1

  • Button : Tıklanabilir bir düğme 🙂
    • Text propertisi yoktur , üzerindeki yazıyı Content propertysini kullanarak değiştirebilirsiniz.Bu property string değil object alır.Bu nedenle içerisinde göstermek istediğiniz yazı haricinde farklı şeyler varsa kod tarafından halledebilirsiniz.(TODO 🙂 )
    • BorderBrush ve BorderThickness propertylerini buton için de kullanabilirsiniz.

checkbox1

  • CheckBox : Bir yazının yanında seçilebilir bir kutucuk içeren kontroldür.
    • IsChecked propertysi kontroldeki kutucuğun seçili olup olmadığını kontrol eder.

 

Yukarıdaki 4 tane görsel kontrolün kısa açıklamalarını yaptıktan sonra artık görsel olmayan XAML kontrollerine geçebiliriz.XAML’da bu görsel kontrolleri ekranda bir düzen içerisinde gösterecek olan konroller de mevcuttur.Stackpanel ve Grid gibi kontrolleri ekrana koyduğunuz zaman varsayılan olarak göremezsiniz.Bunun nedeni bu kontrollerin bir görselliğe ihtiyacının olmamasından ziyade , asıl amacının içerisinde barındırdığı diğer kontrolleri nasıl göstereceğiyle ilgili olmasıdır.

Şimdi yukarıdaki yazı biraz kafa karıştırmış olabilir , şöyle düzeltelim.Stackpanel dediğimiz kontrol , içerisinde birçok görsel element alabilir.Ben ekranda bir Stackpanel koyup içerisinde yüzlerce Button veya TextBlock vs. ekleyebilirim.Stackpanelin amacı bu eklediğim kontrolleri ekrana alt alta veya yan yana göstermesidir.Aşağıdaki iki örnek resmi inceleyerek neyden bahsettiğimi anlayabilirsiniz :

stack1

Orientation = Vertical StackPanel

stack2

Orientation = Horizontal StackPanel

Dikkat ederseniz Orientation propertysine Horizontal değerini verirsem Stackpanel içerisindeki görsel elementler alt alta değil , yan yana sıralanıyor.Hem design hem kod tarafını resimlerde paylaşmayı uygun buldum , çünkü genel olarak XAML kodları nasıl yazılıyor (syntax) görmeniz açısından iyi olacağını düşünüyorum.

Stackpanelin dışında bir de Grid kontrolünü ele almak istiyordum aslında bu yazıda fakat Grid ile ilgili anlatmak istediğim bir çok şey olduğu için bu yazıda ona yer vermeyeceğim.Bir sonraki yazıyı tamamen Grid üzerine yazmak istiyorum.

Temel olarak XAML ile tasarım yapmak için aşağıdaki açıklamaları okumanızda yarar var.Bu açıklamaları birkaç paragrafla anlatmak yerine madde madde yazmanın daha uygun olacağını düşündüm :

  1. Ekrana koyduğunuz her kontrolün Margin propertysi ekranın kenarlarından kaçar pixel boşluk bırakılması gerektiğini ifade eder.Örneğin Stackpanel içerisindeki Button kontrolüne Margin=”10″ yazarsam bütün kenarlarından 10’ar pixel uzaklaşır.Aşağıda Margin’in diğer kullanım örneklerini yazdım :
    1. Margin=”10″ : Bütün kenarlardan 10 pixel uzaklaşır.
    2. Margin=”10,5″ : Sol ve sağ taraftan 10 pixel , alt ve üst taraftan 5’er pixel uzaklaşır.
    3. Margin=”10,5,5,0″ ya da Margin=”10 5 5 0″ : Ilk numara sol taraftan olmak üzere saat yönünde takip eden numaralara göre kenarlardan uzaklaşır.
  2. HorizontalAlignment ve VerticalAlignment propertylerini kullanabilirsiniz.Bu propertyler ile ekrandaki kontrolü ekranın veya dışındaki elementin (Örnek : Stackpanel) ne tarafına hizalanması gerektiğini değiştirebilirsiniz.
    1. Left : Sol hizalar
    2. Right : Sağ hizalar
    3. Center : Ortaya hizalar
    4. Stretch : Bulunduğu konumda ekranı tamamen doldurana kadar hizalama yapar.
  3. Opacity propertysi görsel elementin şeffaflığını temsil eder.Double cinsinden maksimum değeri 1.0 olmak üzere kullanılır.(Örneğin Opacity=”0.6″ yazarsam %60 şeffaflık verebiliim)
  4. Visibility propertysi elementin ekranda görünüp görünmeyeceğini temsil eder.
  5. XAML tarafında koyduğunuz elementlere C# kısmından erişmek istiyorsanız elementlere bir isim vermek zorundasınız.Bunu da x:Name özelliğini kullanarak yapabilirsiniz.Örneğin ben ekrana bir Button koydum ve buna C# kodumdan erişmek istiyorum.XAML tarafında x:Name=”buton1″ yazdığım zaman artık Visual Studio’nun Intellisense’i bu elementi C# tarafında (O sayfaya ait XAML dosyasının .CS uzantılı dosyasında) algılayabilir.
    buton3
  6. Koyduğunuz elementlere ait Eventleri Properties ekranında “Şimşek” simgesine tıklayarak görebilirsiniz.Bu eventlere ait kutucuklara çift tıkladığınız zaman gerekli EventHandler otomatik olarak C# tarafında oluşturulur.
    1. XAML tarafında Event eklemek isterseniz EventAdi=”EventHandlerIsmi” formatında yazabilirsiniz.Örneğin bir butonun Click eventi için ben handlerımı Click=”Button_Clicked” syntaxlıyla XAML tarafında yazabilirim.Zaten Properties penceresinden kutucuğa çift tıkladığınız zaman .cs dsoyasına handler eklenirken XAML dosyasına da bu satır eklenir.

      buton4

    2. Eventin adını yazdıktan sonra tırnakları koyduktan sonra Visual Studio size “<New Event Handler>” seçeneğini sunar.Buna basarsanız otomatik olarak butona ait Event Handler cs kısmında oluşturulur.
  7. XAML’da eklediğiniz kontrollerde mümkün olduğunca düşük Margin değerleri kullanmaya özen gösterin.Toolboxtan ekrana bir kontrol sürükleyip bıraktığınız zaman kod tarafna dönüp bakarsanız otomatik olarak bir Margin değeri ekendiğini görürsünüz.Windows Phone uygulamalarında yaptığınız tasarımların farklı çözünürlüklere sahip bütün cihazlarda aynı görünmesini istiyorsanız tasarımlarınızı bu koşullarda yapmak zorundasınız.Toolboxtan ekranın ortasına sürükleyip bıraktığınız bir TextBlock sizin designer önizleme ekranınızda tam ortada gözükebilir.Fakat şöyle bir olay var ki sürükleyip bırakarak eklediğiniz element varsayılan olarak bir Margin değerine sahip olduğu için çözünürlük ne olursa olsun uygulama çalışmaya başladığında o margin değerlerine sahip olacak.Bu da farklı çözünürlüklere sahip telefonlarda aslında tam ortada gözükmeyeceği anlamına geliyor.Bunun yerine koyduğunuz elementin Margin değerlerini silip HorizontalAlignment ve VerticalAlignment  propertylerini Center yapmanız isediğiniz sonucu verecektir.

7. maddeye uygun tasarımların nasıl yapılacağı aslında biraz sizin görsel parçalama yetinize bağlı.Yaptığınız bir tasarımı bir sonraki yazıda oldukça detaylı anlatacağım Grid kontrolüyle olabildiğince detaylı yaparsanız çözünürlük farketmeksizin her telefonda aynı görüntüde çalışabilir.Yukarıdaki Center’a ayarlama örneği oldukça ufak bir örnekti.Daha kompleks tasarımlara sahip mobil uygulamalarda bu bir yaklaşımda kodlama yeteneğini XAML üzerinde vakit geçirdikte çok kolay bir şekilde anlayabileceğinizi düşünüyorum.

Birden fazla nesneyi ekrana basmak için kullandığımız GridView , ListView , Listbox gibi kontrolleri de ileriki yazılarda inceleyeceğiz.Hepinize iyi çalışmalar 🙂

T2 Mobil Hackathon Maceramız

Bu haftasonu 28 – 29 Mart tarihleri arasında Ankara Cyberpark’ta gerçekleşen T2 Mobil Hackathon’a arkadaşlarım Nejat ve Sezgin ile ben de katıldım.Cumayı Cumartesiye bağlayan gece otobüse atladık , sabah 6:30’da Ankaradaydık 🙂

AŞTİ’de Ankara serüvenimiz başlamış oldu.Etkinliğin başlamasında daha 2.5 saat vardı ve hafif yağmurlu havada mahsur kalmıştık.Bir proje düşünmemiz de gerekiyordu.Bilkent’e giden servislerin Sıhhiye köprüsünün ordan kalktığını öğrenip köprüye doğru servise bindik.Bir çayevine oturup kahvaltı ederken proje fikirlerini tartışmaya başladık.Güzel fikirler ortaya atıldı ve en sonunda Live@’te karar kıldık 🙂

Live@

Live@ , sokak sanatçılarının 10 ile 30 saniye arasında preview ses kayıtlarını telefonunuzdan paylaşıp , diğer sanatçıları keşfetmenizi sağlayan lokasyon bazlı bir mobil platform.Live@ ile gittiğiniz herhangi bir şehirde Keşfet bölümünden hoşunuza gidebilecek sanatçıların kısa demolarını dinleyerek çaldıkları adrese yol tarifi alabiliyorsunuz.Facebook login ile çalışan uygulamada sevdiğiniz sesleri favoriye alabilir , diğer sosyal ağlarda paylaşabilir ya da diğer kullanıcıların görmesini kolaylaştırmak için likelayabilirsiniz.Fikir aşaması , tasarımı , servisi ve clientı ile bir bütün halinde tamamen hackathon süresi içerisinde (yaklaşık 27 saat) ortaya çıkmış , herşeyiyle hatasız çalışan bir platform 🙂

Live@ Logo

Cyberpark’a girdiğimizde girişte kayıtlarımızı yaptırdık.Açılış konuşmasını ve Mustafa Kasap’ın Azure’a giriş konuşmasını dinledikten sonra bir 10 dakika içerisinde planlama ve iş paylaşımı yaptık.Serviste Sezgin , tasarımda Nejat ve clientta bendeniz Burak olarak grup MSP Alpha hackathona hazırdı 🙂

Planlamadan sonra 10:30 – 12:00 arası bir brain storming yaptık.Bu süre içerisinde uygulamanın amacını , çözüm bulduğumuz sorunları , prototip için feature listi ve kullanacağımız teknolojileri tartıştık.Servis için bir ASP.NET Web API , ses dosyaları ve saklanacak diğer dosyalar için Azure Storage , source control için Visual Studio Online üzerinde TFS , client için Windows Phone 8.0 ve veritabanı için de Azure SQL kullanmaya karar verdik.Hem hakim olduğumuz teknolojiler olduğundan dolayı ürünü daha hızlı ortaya çıkartabilecektik hem de arkasında Azure desteği olması gereken bir mobil hackathon olması dolayısıyla hackathon ruhuna bu tarz bir yaklaşımın daha iyi olacağını düşündük.

Sayfa tasarımlarında nelere dikkat etmeliyiz , renk paletimiz nasıl olacak vs. gibi görsel algıları da brain storming sırasında bir gözden geçirdik.Uygulama sayfalarını Nejat aradan çıkartırken biz de Sezgin ile backendde kullanacağımız projelerin hazırlıklarını yapmaya başladık.Servis için bir Azure Mobile Services projesi oluşturabilirdik , fakat Web API ile çalışmak bizim için hız açısından daha mantıklı olduğunu düşündük.

 

Client tarafında bir Universal App yapmayı başta düşünüyorduk , fakat compatibility açısından 8.0 projesinin hem daha hızlı hem de daha çözüm odaklı olduğuna karar verdik.Bir Portable Class Library üzerinden ilerlemeyi , bunun ileriki zamanlarla diğer platformlara uygulamayı çıkarmak için daha kolay olacağını biliyorduk fakat bu hackhaton süresi içerisinde kaynaklarımızı daha fazla harcayacağından dolayı vazgeçtik.Bunun yerine Windows Phone projesi içerisinde daha modüler bir yapı izleyerek aynı code sharingi yakalamaya çalıştık , oldu da 🙂

Bu hazırlıkların ardından Sezgin ile saat 2 gibi artık backend tarafında veritabanı tasarımına başlayabilirdik.1 , 1.5 saatlik bir tasarım sürecinin ardından kodlamaya başladık.Gerek tasarım , gerek sunucu gerekse client tarafında bazı zamanlar ortak bir fikirde karar kılmakta zorlansak da sonuç olarak ortaya tamamiyle çalışan hatasız bir prototip sunabildik 🙂 Bizim için zaten hackathon mantığı da buydu.

Biz bütün bu dizayn aşamalarıyla uğraşırken organizasyonu düzenleyen T2 de bizler için süreci kolaylaştırmak için herşeyi yapıyordu 🙂 Sürekli masamıza gelen ikramlar , yemekler , çerezler , içecekler derken zaten çalışmakan kaytarmak için masa başından ayrılamıyorduk 🙂 Organizasyon tam anlamıyla en ince detayına kadar düşünülmüştü.Gece 12 – 1 gibi uygulamada artık birşeyleri gerçekten ortaya çıkartabildiğimiz fakat neticesinde de enerjimizin taban yaptığı zamanlarda gelen enerji içecekleri çok ince bir detay olmasına rağmen benim gözümden kaçmadı 🙂 Soğuk havada kocaman kazanlarda gelen sıcak çorbalar , ihtiyacınız olduğunda rahat uyuyabileceğiniz karanlık ve geniş bir oda , sırtınız yere gelmesin diye uyurken altınıza alabileceğiniz Microsoft Azure matları falan derken size düşen tek şey de fikrinizi geliştirmek oluyor 🙂 Biz kullandığımız teknolojilere hakim olduğumuzdan dolayı pek mentor arayışına girmedik , fakat bütün bu süreçte etrafta takıldığınız yerde size yardımcı olmak için çabalayan mentorlar da bulunuyor , daha ne !

Çalıştığımız masa ilk günün sonunda (gerçi sürekli çalışma içerisinde bulunduğumuz için bizim için baş – son kavramı pek olmadı) resmen çöplüğe döndü.Heryerde kağıtlara çizilmiş ekranlar , user controller , usbler , detay yazıları , çerez kırıntıları , sandviçler , kola kutuları … 🙂

Masamız ...

Hackathon bitimine doğru jüri sunumu için ufak bir slayt hazırladık.Uygulamayı son olarak birkaç kere daha test ettik , jüri sunumunda yapacağımız demoda aksilikle karşılaşmamak için … 🙂 Artık hazırdık.Jüri sunumları başladı , 3. sırada biz vardık.Jüri üyeleri arasında Mustafa Kasap hocamız da vardı 🙂

Sunumdayız :)

Sunum sırasında Bilkent Cyberpark Genel Müdürü Canan Çakmakçı bize “2015 yılında neden video upload özelliği yok ?” sorusunu yöneltti , biz de video yükleme özelliğinin uygulamanın basitliğine aykırı olduğunu ve müziğin göze değil kulağa hitap eden birşey olduğunu belirttik 🙂 Sunum sırasında belirtmedim fakat bu soru üzerine benim söylemek istediğim birkaç şey daha var açıkçası.Ben bu yaklaşımı 2 farklı şeye benzettim.Birincisi , bu proje Twitter olsaydı , bundan birkaç sene önce olsaydı ve biz de Twitterın kurucuları olsaydık , sunum sırasında bu soruyu sormak “201x yılında sınırsız yazabilme imkanım varken neden 140 karakter ?” sorunusu sormak ile aynı şey 🙂 Ikincisi ise bu yaklaşımı “2020 yılındayız , bu uygulamada neden hologramik görüntüleme desteği yok ?” ya da “Bu uygulama neden Hololenste çalışmıyor ?” yaklaşımına benzetebiliriz 🙂

“Iş modeliniz nedir ?” ya da “Gelir modeliniz nedir ?” sorularına hiç değinmek istemiyorum , çünkü zaten biz bu projeyi geliştirirken tamamen fun project kafasında çalıştık , hatta organizasyona gelirken de bir haftasonu kaçamağı kafasındaydık 🙂 Sunum sırasında bu sorulara tabiki gelir elde edebileceğimiz kaynakları sunduk ki bunun sorulacağını biliyorduk ve hazırlığımızı yapmıştık.Fakat 27 saat içerisinde geliştirilmiş bir prototipten de gelir elde etmeyi beklemek hem hackathon ruhuna aşırı aykırı bir yaklaşım , hem de pek verimli bir yaklaşım değil.Bize göre bu sorunun cevabı 27 saatlik bir hacakthonda verilmesi gereken bir cevap değil ; ürünlerin değil , fikirlerin yarıştığı ve ucunda yatırımın kesin olduğu yarışmalarda verilmesi gereken bir cevap 🙂

Tabiki bu durum yalnızca T2 hackathon jürisine özel bir durum değil , genel olarak herhangi bir hacakthonun sonunda yaşanan bir durum malesef.Biz katılımcılar olarak hackathon jürilerine “Bizim uygulamamız bu kadar para kazandıracak , bakın arkamızdaki sunumda da görüyorsunuz zaten , uygulamayı bitiremedik ama sunumdaki gibi olacak ileride …” demekten ziyade “Biz xx saat aşırı yoğun bir tempoda çalıştık , sonuç olarak bu ürünü çalıştırabilir bir hale getirdik , buyrun cihaz budur , uygulama budur , alın elinizde canlı olarak test ederek değerlendirmenizi yapın” demeyi tercih ediyoruz.Çünkü bizim için hackathon ruhu böyle birşey 🙂 Sunum odaklı bir çalışma ortamı olsaydı biz 27 saat boyunca fikrimizi uygulama haline getirmek için çalışmazdık , bunun yerine 27 saatte dünyanın en göz boyayıcı sunumunu hazırlar , jüriden gelebilecek sorulara en ödül odaklı yanıtları belirler ve ön çalışmamızı yaptıktan sonra karşılarına çıkardık 🙂 Keşke Ankarada geçirebileceğimiz birkaç saat vaktimiz daha olsaydı da blogumda yazmak zorunda kaldığım fikirlerimi canlı olarak tartışabilseydik 🙂

Ikincilik pozumuz :)

 

MSP Alpha ekibi olarak geliştirdiğimiz mobil uygulama Live@ hackathonda ikinci oldu 🙂 Sunumların ardından yapılan kokteylde diğer gruplar ile keyifli sohbetler yaptık , organizasyon ekibiyle çok güzel bağlar kurduk.Özellikle teşekkür etmek istediğim ve bizi hackathon süresince yanlız bırakmayan iki isim ; Soner Altın(a.k.a Soner Abi) ve  Mustafa Kasap , herşey için teşekkürü borç biliyoruz , katıldığım(ız) en keyifli hackathondu ! Bir dahaki sefere görüşmek üzere ! 🙂

Intel Edison – Ilk Bakış , Kurulum , Flashing ve WiFi Bağlantısı Kurma

Herkese merhabalar 🙂 Şubat’ın son günü Microsoft Student Partners Türkiye ekibi olarak Robert Lisesi’ndeki IoT eğitimindeydik.Canavar gibi 20 farklı lise öğrencisine Internet of Things eğitimleri verecek olan ekibimizle bugün ilk kez arkadaşlarla buluştuk.Robert Lisesi benim geçen sene de eğitim verdiğim bir okul olduğundan pek yabancılık çektiğimi söyleyemem açıkçası ^^

Eğitimlerimizi Microsoft’un desteklediği Intel Edison’lar üzerinden gerçekleştireceğiz.3’erli gruplara ayrılan öğrencilerden her gruba 1 Intel Edison verdik.Eğitmenler olarak da bizlere birer tane Edison verildi ve ben akşamına eve gelir gelmez açıp kurcalamaya başladım bile 🙂 Bu yazıda sizlere Windows bir bilgisayar üzerinde Intel Edison kurulumunu , gözlemlediğim farklı detayları ve WiFi ağına bağlanmayı anlatmayı planlıyorum.Bunu öğrenci arkadaşlara da önümüzdeki Cumartesi zaten teknik olarak eğitimde anlatacağım , fakat erken davranırsak daha faydalı olacağını düşünüyorum.

Ilk Bakış

Intel Edison

Intel Edison

Cihazla ilgili speclere bu yazıda pek değinmeyeceim.Nerden kaç volt geliyor , nereye ne gidiyor , osu var mı , şusu var mı diye merak edenler buraya tıklayarak full device spec bilgisini görebilirler 🙂

Daha önce az da olsa Intel Galileo ile uğraşmış birisi olarak söyleyebilirim ki Edison , Galileo’ya kıyasla çok daha akıllı bir board.Aslında dijital – analog kıyaslaması yapabiliriz.Şöyle ki , Edison’u daha narin , bozulmaya yatkın bir dijital olarak düşünürsek bu durumda Galileo’da daha dayanıklı ve daha dummy oluyor 🙂 Bunu neden söyledim çünkü Edison’un üzerinde bulunan microswitchi 2 usb portu bağlıyken power soketinin olduğu yere doğru çekerseniz güzelim boardu yakma şansınız var.Yapmayın , etmeyin.Üzerinde neden 2 farklı usb soketi olduğuna değinmeden önce bunu belirtmemde fayda olduğunu düşündüm.Zaten default olarak o switch aşağıya doğru çekilmiş bir şekilde geliyor.

Edison aslında bir kartvizitin dörtte biri kadar büyüklükte bir bilgisayar.Bir Arduino tabanlı bir board üzerine takılarak kullanılıyor.Yani aslında 2 parçadan oluşuyor , fakat asıl Edison olarak nitelendirebileceğimiz küçük parçanın bazı işlemleri yapabilmesi ve sensörler ile iletişim kurabilmesi için altındaki Arduino boarda ihtiyaç duyduğunu söyleyebiliriz.Küçük parçayı alttaki board üzerindeki vidalardan geçirip soketine oturttuğunuz zaman tam bir microcontroller yaratmış oluyorsunuz aslında.

WP_20150301_01_05_39_Pro

Aşağıdaki boardda ise 3 farklı USB girişi var.Bunlardan biri normal , diğer ikisi micro.2 micro ve 1 normal arasında kalan microswitch ise bunların arasındaki bağlantıyı kontrol ediyor aslında.

Yukarıdaki resimde 2 micro usb soketinin ne işe yaradıklarını görüyorsunuz.Edison üzerinde Ethernet olmadığı için (merak etmeyin , built-in WiFi bulunuyor 🙂 ) bağlantılarımızı seri port üzerinden gerçekleştireceğiz.Köşeye yakın olan micro soket bu iş için kullanılıyor.Diğer soket ise Windows’un Edison belleğine erişmesini sağlıyor ve düşük voltajda elektrik veriyor.Edisonu 2 şekilde güçlendirebilirsiniz :

1) Adaptörünü kullanarak : Servo , sensör , led vb. gibi sensörlerin tüketeceği enerjiyi karşılamak için tercih edilen voltajlama tipi.

2) USB soketi kullanarak :  Yüksek-orta voltaj gerektirmeyen işler yapmak için prize gerek kalmadan Edison’a bilgisayarınızdan elektrik verebileceğiniz voltajlama tipi.

Güç mevzusunu da anlattıktan sonra değinmek istediğim birkaç nokta daha var.Dediğim gibi Edison hassas bir board.Bu nedenle kutuyu açtığınızda size 4 adet plastik tutkaç , 4 adet vida ve 2 adet küçük civata veriliyor.2 küçük civatayı Edison’u altındaki boarda sabitlemek için kullanıyorsunuz.O küçük şeyleri elinizle çevirerek de oturtabilirsiniz , teknik malzemeye gerek bile yok.Diğer 4-er çift malzemeyi de alttaki boardun 4 köşesinde bulunan deliklere takarak boardun herhangi bir yere temas etmeden çalışmasını sağlayabilirsiniz.Boardun abuk subuk yerlerine parmak basmamaya özen göstermeniz de gerekiyor tabi 🙂

Kurulum

Hazırlık – Gereksinimler

(2 adet Micro USB kablosu ya da 1 Micro USB kablosu + Intel Edison adaptörü kurulum için gerekli.)

Kurulum aslında oldukça basit.Yani ben Galileo için uğraştığım kadar uğraşmadım en azından diyebilirim.Adım adım ilerlemeden önce indirmeniz gereken dosyaları tek bir solukta , hemen aşağıda veriyorum :

 

1) FTDI Driver

2) Windows Driver

3) Yocto Linux Complete Image

4) PuTTY

Ilk 2 dosya Windows’un Edison’u tanıması için.FTDI driverını çalıştırırken “Yönetici modunda çalıştırmayı” unutmayın ! Aksi halde zaten setup size hata verecektir.FTDI driverının kurulumu tamamlandıktan sonra sonuç ekranında 3 madde görebilirsiniz.2’si success biri fail olarak.Fail olana aldırmayın , tamamen anlamsız bir hata , çalışmamızı herhangi bir şekilde etkilemiyor.Eğer 2 tane succes görüyorsanız zaten hiç aldırmayın … 🙂 2. driverı ise next – next – next üçlemesiyle basit bir şekilde kurabilirsiniz.

Üçüncü dosya aslında küçük bir Linux dağıtımı.Yocto 🙂 Edison için özelleştirilmiş bir sürüm ki bunu zaten ayarlamaları yaparken göreceksiniz.Arşiv dosyasını indirin ve içindeki dosyaları yeni bir klasöre kopyalayın.

Son dosya PuTTY ise bir SSH clientı.Nokia N9 kullandığım zamanlarda da çok kullanıyordum fakat Lumia’ya geçtikten sonra pek ihtiyacım olmamıştı , tekrar görmek güzel 🙂 Yocto terminaline seri port üzerinden bu araç aracılığıyla bağlanacağız.

Flashlama

Dosyalarımızı indirdik , software kısmında herşeyi hazırladık.Şimdi sırada indirdiğimiz Yocto imajını Edison’a yüklemek var.Güç soketine yakın olan micro usb soketine kabloyu takın ve cihazı bilgisayarınıza bağlayın.Windows , Edison’u tanıyıp hafıza olarak Bilgisayarım’da gösterecektir.

3

Temiz flash atabilmemiz için içindeki dosyaların hepsini silmemiz gerekiyor.Windows’un Edison’a ayırdığı sürücü harfini (benim bilgisayarımda F) baz alarak aşağıda anlatacaklarımı uygulayın :(Tırnakları yazmayın , yazmanız gerekenleri kalın olarak yazdım)

  • Windows tuşu + R ile “Çalıştır” penceresini açıp “cmd.exe” yazın
  • Komut istemcisine sürücü harfi + : yazıp enterlayın.(Örnek F:)
  • Komut istemcisi Edison hafızasına geldiğinde “del *” komutunu uygulayıp onaylayın.(Y yazıp enterlayın)

1

Bu komutlar Edison hafızasını silecektir.Şimdi Yocto Linux arşivindeki dosyaları kopyalayın ve Edison’un içine yapıştırın.Flash diske dosya atar gibi … 🙂

Imajı kopyaladık fakat henüz işimiz bitmedi.Şimdi PuTTY ile seri port üzerinden terminale bağlanıp Edison’un yüklediğimiz imajları kullanması için ayar yapmasını sağlayacağız.

2. USB kablosunu da alttaki sokete takın ve bilgisayarınıza bağlayın.Bu işlemi yaptığınızda artık Edison ile Windows arasında bir haberleşme yapabilecek duruma geliyoruz.Bunun için bizim Edison’un bağlandığı seri portun numarasına ihtiyacımız var. (Örnek COM#)

Aygıt Yöneticisi (Device Manager)’ı çalıştırın.Ports altında artık gördüğünüz gibi bir USB Serial Port (COM#) var.Buradaki # bir sayı ve her bilgisayarda değiştiğinden dolayı # ile gösteriyorum.Ben daha önce Intel Galileo da bağladığım için bu kısımda benim bilgisayarımda onları da görebiliyoruz.ports

Edison’un bağlandığı COM numarasını bir yere not edin ve PuTTY’yi çalıştırın.PuTTY açıldığında sol taraftan Category olarak Session’ı seçin (zaten varsayılan olarak o açılıyor).Connection Type bölümünden “Serial” ı seçin ve aşağıdaki ayarlamaları yapın :

Serial line : Not aldığınız COM numarası (Örnek : COM8)

Speed : 115200

115200 , Edison’un baud rate’i.Baud rate nedir / ne değildir merak edenler araştırabilir 🙂 Bu sayı her zaman 115200 olmak zorunda , yoksa Edison ile haberleşme yapamayız.

Bu ayarları PuTTY üzerinden yaptıktan sonra en aşağıdaki “Open” butonuna basın ve bağlantıyı başlatın.

Yukarıdaki gibi bir ekranla karşılaşmanız gerekiyor.2 kere ENTERa basın.Login ekranı gelecek.Kullanıcı adı olarak “root” yazın ve root olarak giriş yapın.

Yukarıdaki ekrana gelebildiyseniz mükemmel gidiyorsunuz demektir.Fakat işimiz hala bitmedi.Flashlama işlemini tamamlamak için son bir adım daha gerekiyor.Root olarak girişimizi yaptıktan sonra aşağıdaki komutu yazarak flashlama işlemini başlatıyoruz :

reboot ota

Bu komuta enter dedikten sonra PuTTY ekranı bir sürü yazıyla dolacak , panik yapmadan bekleyiniz 🙂 Flashlama tamamlandığında ekranda “Mounting /home” veya “Mounting /boot” tarzı yazılar görebiliyorsanız işlem başarılı olmuş demektir.Fakat “Mounting /factory” gördüyseniz , malesef flashlamayı baştan tekrarlamak zorundasınız :/

Sanırım Intel Yocto’nun son imaj sürümünde karşılama mesajını kaldırmış , ben başarılı bir flashlama yaptığımda hoşgeldiniz tarzı bir mesaj almadım.Ilk flashladığımda Yocto Linux arşivini direkt olarak arşivden Edison sürücüsüne kopyalamıştım , bu nedendendir ki zannediyorum flashlama tamamlanamadı.Çünkü flashlama işlemi sırasında dosyalar üzerinde hash kontrolü yapılıyor ve sanırım bu tarz bir arşivden extract etme olayı bunlara zarar verdi.Fakat bir klasöre çıkartıp oradan kopyalayınca sorunsuzca flashlayabildim.Eğer flashlamanın sonunda Yocto /factory modunda mount ediliyorsa bilin ki bir problem oluştu.Komut istemcisi ekranındaki adımlardan itibaren adımları tekrarlayarak devam edin 🙂

Yocto başarıyla boot edildi.

Yocto başarıyla boot edildi.

Kullanıcı Bilgileri ve WiFi Ayarları

Daha önce Linux kullananlar bilir , bir süper kullanıcı şart 🙂 Edisondaki süper kullanıcımız bizim için “root”.E süper kullanıcıyı da şifresiz kullanmak olmaz.Daha önceden de belirttiğim gibi Intel bu Linux dağıtımını biraz özelleştirmiş ve içerisine Edisonun kurulumunu kolaylaştıracak bazı komutlar eklemiş.Bir kurulum sihirbazı hazırlamış aslında diyebiliriz.Root girişimizi yaptıktan sonra aşağıdaki komutu çalıştırın :

configure_edison –setup

(iki tane – işareti ile)

Eğer bu komutu enterladığınızda kurulum sihirbazı açılmıyorsa malesef Linux tam olarak yüklenememiş demektir.Reboot komutunu kullanarak Edisonu baştan başlatıp tekrar deneyebilirsiniz.Eğer başarısız olursanız tekrardan flashlayıp kurulumu tekrarlayabilirsiniz.

Sihirbaz geldiğinde ilk olarak size bir süper kullanıcı şifresi sorulacak.Ikinci kez girmenizi isteyerek size onaylatacak.

2

Ardından bu Edison’a özel bir isim vermenizi isteyecek.Geçmek için boş bırakabilirsiniz , fakat isim vermek istiyorsanız en az 5 karakter olmalı 🙂 Girdiğiniz ismi size onaylatıp devam edecek.

3

Ismi onayladıktan sonra size WiFi ayarlamayı isteyip istemediğinizi soracak – ne güzel değil mi 🙂

4

Y ile onaylayın.Edison 10-15 saniye etraftaki WiFi ağlarını taradıktan sonra size aşağıdaki gibi bir ekran sunacak :

5

0 : Taramayı baştan yapar.Eksik sonuç gördüğünüze inanıyorsanız taramayı tekrarlayabilirsiniz.

1: WiFi kurulumunu iptal eder.

2: Gizli SSID ağı varsa el ile girmenize izin verir.

Bunlardan sonraki rakamlar etrafınızdaki WiFi ağları.Benim evimdeki ağ ismi “Homie” , bu nedenle 4’e basarak devam ettim.Onayladıktan sonra ağ için gerekli şifre bilgisini girmem gerekiyor.Burda bir önemli nokta var , wireless şifreniz 8 ile 63 karakter arasında olması gerekiyor.Bazı güvenlik protokolleri 8’den düşük karakterlere de izin veriyor , böyle bir ağ varsa malesef Edison ile bağlanamıyorsunuz.O nedenle modem ana sayfanızdan wireless security bölümünden ağ şifrenizi değiştirmeniz gerekebilir.

7

Eğer WiFi ağına bağlantınız başarılıysa yukarıdaki gibi bir ekran göreceksiniz.Edison artık sizin kablosuz ağınıza bağlı 🙂 Tarayıcınızdan açık mavi ekranlı adreslere giderek Edisonun içeriğini görüntüleyebilirsiniz :

8

Tebrikler ! 🙂 Artık istediğiniz zaman PuTTY üzerinden Edison’a bağlanıp kurulum sihirbazında belirlediğiniz root şifresi ile oturum açarak Edison üzerinde geliştirme yapabilirsiniz.Hatta kısa bir örneğini aşağıdaki komutları sırayla PuTTY üzerinden Edison’a göndererek yapabilirsiniz 🙂

node

console.log(‘Merhaba Dünya !’);

Mutlu pazarlar , hack hep sizinle olsun ! 🙂

 

 

MSP Kickoff ’15 ardından

Her güzel şeyin olduğu gibi MSP Kickoff’un da bir sonu var , bunu birkaç gün önce 3. kez anladım 🙂

Kickoff süresince ING Bank Trungers programında olan öğrenciler bizlerleydi.Önümüzdeki 1.5 ay süresince onların fikirlerini MSP’ler olarak hayata geçirmeye çalışacağız.

Halihazırda yürüttüğümüz bir IoT programımız var ve bu hafta Robert Lisesi’nde IoT eğitimlerine de başlıyoruz.Temel C/C++ derslerinden sonra REST API ve Intel Edison ile haberleşme dersini de ben veriyor olacağım.

12 Mart tarihinde büyük ihtimal Elazığ’da olacağım.Kayseri – Eskişehir – Elazığ arasında paylaşılan şehirlerden birine eğitmen olarak gideceğim.Birçok farklı şehirde aynı anda düzenleyeceğimiz bir etkinliğimiz var 🙂

Şu aralar eğitimler için Microsoft’un IoT programından gönderdiği Intel Galileo üzerinde Mono ile C# çalıştırmaya çalışıyorum.Güzel sonuçlar , büyük projeler çıkartırsam bu adresten haberdar olabilirsiniz 🙂

Şu an yaklaşık 7 farklı proje üzerinde çalıştığımdan dolayı Mart ayının sonuna kadar göndereceğiniz maillere geç dönüş yapabilirim , affola 🙁