Lego’ya olan ilgimi Twitter ya da Instagram‘dan takip edenler bilir, takip etmeyenlerde bilemez, o yüzden takip etsinler; diye reklam kokan bir giriş ile uzun zamandan sonraki yazıma başlıyorum…Siz Lego falan ne alaka demeden, hala bu yaşımda Lego alıp, saatlerce onlarla uğraşan biri olduğumu belirtim. Yaşasın içimdeki çocuk… Peki ne alaka?

Lego1Efenimm, şimdi Türkiye’deki Lego distribütorlüğünü Adore Oyuncak yapıyor. Dolayısıyla zaman zaman takip ettiğim bir yer. Ama hangi ürünler gelmiş, neler bitmiş falan sürekli mağazalarına gidip bakmak her zaman mümkün değil. Gelmesini beklediğim ürünlerin gelip gelmeyeceklerinin kesin olmaması, gelirlerse ne zaman geleceklerinin de belli olmaması, içimdeki çocuğun en büyük sıkıntısı. Neyse ki, internet çağında yaşıyoruz da, firmanın internet sitesinden bir şekil kontrol edebiliyoruz. Ama içimdeki sabırsız çocuk her gün, her gün internetteki sayfasına bakmaktan da sıkılmış durumda. Lanet olsun içimdeki çocuğa…

Lego3İçimdeki çocuğu biraz olsun sakinleştirmek için, Cloud’un nimetlerinden neden yararlanmıyorum diye düşündüm bir akşam…Hani böyle sıkılırsınız ya, hiç bir şey yapmak istemezsiniz falan, ahaa da öyle bir akşam. Yoksa hiç işim olmaz, ne uğraşıcam…(yersen)

Azure’da, node.js ile basit bir iş(web jobs) yapıp hem sıkıcı akşamıma renk katmak, hem de içimdeki çocuğu biraz sakinleştirmek üzere işe koyuldum. Çok uzun uzun anlatmak istemiyorum. Oldukça basit çünkü… Madde madde özetleyerekten, hangi teknolojileri, hangi amaçla kullandığımı vurgulayarak, Cloud ve basit diğer API’ler ile neler yapabileceğimizi paylaşmak istiyorum sadece.

Basit özetlemek gerekirse yaptığım şey, belli bir zamanda, otomatik olarak çalışan bir kod parçası ile, bir web sitesini “parse” edip, belli bir alanındaki değeri bir yerde saklayıp, bu değerin değişimini e-mail olarak kendime atmak.

  • Belli bir zamanda otomatik olarak çalışması için Azure‘da ki WebJobs bileşenini kullandım.
  • Çalışan kod, sunucu tarafında event-driven I/O işlemleri için tercih edilebilecek olan node.js‘de çalışan basit bir javascript. node.js tercih etmiş olmamın sebebi, kesinlike kısa sürede yapmak istemem. Başka kodlarla yazılmış programlarıda Azure WebJobs’da çalıştırabilirsiniz. (*.exe, *.bat, *.py, *.jar, *.php…)
  • node.js’de html sitesini parse etmek için cheerio modülünü tercih ettim
  • Bildirimleri e-mail olarak yapabilmek için SendGrid e-mail alt yapısını tercih ettim. Hem ücretsiz olması, hem de Azure’da ve node.js’de modülünün olması tercih sebebimdi.
  • Azure’un Storage Service‘ini de, parse ettiğim veriyi saklamak için tercih ettim. Tek basit bir değer saklayacağım için ve Azure’un node.js’deki SDK‘sını kurcalamak için güzel bir fırsat.

Anahtar kelimeleri verdikten sonra aşağıda kodu da bulabilirsiniz. Açıkcası çok fazla ayrıntısına girmek istemedim. Basit bir ihtiyaçlarımızı, nasıl çözebileceğimizi vurgulamak ve biraz merak uyandırmak için umarım faydası olur. İlerleyen günlerde belki daha ayrıntılı olarak da bahsedebilirim ama beklemeden sorularınız olursa yorum kısmında ya da e-mail ile bana iletebilirsiniz.