programlama

Javascript'te parseInt() Kullanmak Problem Olabilir

Coderwall sitesinde programlama ile alakalı 'küçük ipuçları'nın (tips & trricks) bulunduğu bir bölüm var. Orada gördüğüm bir detayı paylaşacağım.

Javascript dili genel anlamda stabil olsa da bazen ilk bakışta anlam veremediğimiz noktalarla dolu olabiliyor. Bunlardan biri de parseInt() metodunun döndürdüğü değer.

parseInt('23');      // değer 23
parseInt('023');     // değer 19 (oktal - sekizlik tabandaki değeri)

Chrome, Firefox 21 ve Safari 6 ile bu iki değer de 23 çıkıyor fakat NodeJS shell'inde baktığımızda 23'ün sekizlik tabandaki değeri olan 19'u görüyoruz. Bu sorunla karşılaşmamak için parseInt() metoduna ikinci parametre olarak 10 veririz ve onluk sayı sistemindeki cevabı alırız.

parseInt('023',10);  // 23

Bunun yanında farklı yollar da var;

+'023';              // 23
~~'023';             // 23
Number('023');       // 23

Bununla ilgili bir de benchmark ve doğruluk değerlerini görmek isterseniz şuraya göz atmanızı tavsiye ederim: http://phrogz.net/JS/string_to_number.html
Sayfayı tekrar yüklediğinizde değerler farklı çıkabilir, bunu da gözden kaçırmayın. Bu sayfada yazana göre 'Hangisini kullanalım?' sorusunun cevabı neye ihtiyacınız olduğuna göre değişebilir. Fakat benim gördüğüm kadarıyla, ikinci tabloda yer alan değerlere de dikkatli inceleyerek şu sonucu çıkardım: elinizde düzgün bir str tipinde sayı olacağından eminseniz Number(str) genel olarak daha uygun görünüyor.

Kaynak: https://coderwall.com/p/4eaixa

10gen'den MongoDB Eğitimi

Konu:

Birkaç hafta önce MongoDB'nin yapımcı şirketi 10gen, ücretsiz MongoDB eğitimleri başlattı. Eğitimleri education.10gen.com adresine üye olarak alabilirsiniz. Videoları izliyorsunuz, arada quiz'ler karşınıza çıkıyor. Hafta sonunda da ödevleri yaparak eğitim almış oluyorsunuz. Eğitimler iki grup halinde: Veritabanı yöneticileri için (DBA) MongoDB, Geliştiriciler için MongoDB. DBA'liğe pek ilgi duymadığım için başlangıç olarak geliştiriciler için olan eğitime katılmaya karar verdim. Bayram, hastalık ve iş yoğunluğu dolayısıyla yeterince hızlı gidemiyor olsam da, mümkün olduğunca eğitim videolarını izlemeye çalışıyorum. Geliştiriciler için olan eğitimlerde yazılım dili olarak Python tercih edilmiş. Scripting dili olduğu için ve MongoDB'nin yapısı itibariyle JSON'a yakınlığı sebebiyle Pyhton'ın seçildiği söyleniyor. Bu sayede yavaş yavaş Python da öğrenmeye başladım. Müsait olabilirsem DBA tarafına da bakmak istiyorum.

Şimdiye kadar nerdeyse sıfır MongoDB bilgisine sahip olduğum için öğrendiğim birkaç noktayı buraya yazmak istiyorum;

  • MongoDB JSON kullanıyor. Web tabanlı yazılım geliştiricilerinin kolaylıkla anlayabileceği ve kullanabileceği bir yapısı var.
  • İlişkisel bir veritabanı olmadığı için Join ve Transaction desteği yok. Bunları tamamiyle unutabiliriz.
  • Tablo yapısı yok, Schemaless, yani bir nevi iskeletsiz bir yapısı var. Geleneksel olarak bildiğimiz şekilde sütunların bulunmadığı fakat objelerin özelliklerinin bulunduğu bir yapı diyebiliriz. Bu sayede tablo sütunlarına sıkışmıyoruz. Birden fazla özellik gerektiğinde tablo yapısını tümden değiştirmek, yeni bir sütun eklemek gibi şeyler yapma ihtiyacımız olmuyor.
  • Index yapısı var fakat henüz bu konuya değinilmedi.
  • Ayrıca Mongo'dan alakasız olarak;

  • Python'da for yapısı bildiğimiz üçlü grup for(i=0;i<foo;i++) değil, foreach yapısıymış ( for i in items ).
  • Önce Play Framework'de gördüğüm route'lu web yapısının pek çok dilde standart olarak bulunduğunu NodeJS framework'lerinden Express ve Python framework'ü olan Bottle'da görerek anladım.
  • Bu gibi eğitimler, yenilikler, araçlar, frameworkler ve teknolojiler ufkumuzu geliştiriyor, farklı bakış açılarına sahip olmamızı sağlıyor. Bu bakımdan çok faydalı. Herkese tavsiye ederim.

Bundan başka, Mongo hakkında hiçbir fikriniz yoksa 15-20 dakikada Mongo'yu görerek tanıyabileceğiniz interaktif bir tutorial var: http://tutorial.mongly.com/tutorial/index

Kodcu.com Node.js Sunum Videosu

Madvens uyardı;


Kodcu.com'da Arda Başoğlu tarafından Node.js ile ilgili yapılmış Node Nedir Ve Artan Popülaritesini Neye Borçlu adlı sunum videosu, Node.js'i merak edenlere duyurulur;

http://www.kodcu.com/2012/07/video-node-nedir-ve-artan-popularitesini-ne...

Ayrıca sunumun kendisini (slayt olarak) görmek isteyenler buraya bakablir: http://www.ardabasoglu.com/1/post/2012/06/node.html

Github'da "Fork" Projeyi Orjinalinin Son Haline Getirmek

Kısaca özetlemek gerekirse;

git remote add uzak_ad proje_adresi/proje.git
git fetch uzak_ad
git merge uzak_ad/master
git push origin master

Uzun uzun anlatmak gerekirse;
Github güzel bir açık kaynak kod deposu. Git bilmeyince tabii ki kod kontrolü zor oluyor. Diyelim ki bir projeyi beğendik, talip olup kendimize aldık yani "fork" ettik. Sonra biz henüz üzerinde fazla çalışamadan orjinal kodda değişiklik yaptılar. Bu halini almak istiyoruz, o halde yapacağımız şeyler adım adım şöyle;

  • Orjinal depoyu remote olarak kaydetmediysek kaydedelim;
  • git remote add uzak_ad proje_adresi/proje.git

  • Ardından kodları çekelim (fetch)
  • git fetch uzak_ad

  • Yerel kod ile orjinal kodu birleştirelim (merge)
  • git merge uzak_ad/master

  • Son olarak da birleştirilmiş son halini github'daki yerimize gönderelim (push)
  • git push origin master

Eclipse'de JavaScript Doğrulamasını Kaldırarak Hızlanmak

Eclipse çok yönlü bir IDE olduğundan, her şeyi kontrol altına alma çabası en üst seviyede. Bunun sonucunda da bazı hız sorunları ortaya çıkıyor. Bunlardan en önemlileri "validation" yani doğrulama ya da onaylama özelliği ve "code compilation" yani kod tamamlama. Java tarafında çok iyi ve yerinde çalışan bu özellikler JavaScript tarafında büyük problem oluyor. Bazen bir js dosyasını düzenlerken kilitleniyor ve dakikalarca beklemek zorunda kalabiliyorum. İşin ilginç yanı Eclipse'e ayırdığımız Heap gibi değerleri arttırdığımızda daha çok beklemesi. Bunun nedeni de ilgili Javascript'in tüm importlarını tarıyor ve büyün fonksiyonları doğrulamaya yani "valide" etmeye çalışıyor, ya da kodu tamamlamak için tüm dosyaları algılamaya çalışıyor.

Bunu engellemek için Eclipse'e validation ve JavaScript ile alakalı tüm işlemlerde "işime karışma" demek gerekiyor. Bunun yolu şöyle;

  1. Projeye sağ tıkla
  2. Properties'den JavaScript > Include Path'i seç
  3. Source sekmesine geç
  4. Altta görülen JavaScript dizinini aç
  5. Excluded yazsınına bir kere tıkla
  6. Sağdaki Edit butonuna tıkla
  7. Açılan pencerede alt bölümdeki "Excluded Pattern"in sağındaki Add butonuna tıkla.
  8. Baş ağrıtan tüm JavaScript dizinlerini seç (* gibi wildcard desenleri de kullanılabilir)

Kaynak: stackoverflow.com

Sayfalar

Subscribe to RSS - programlama