Yapmakta olduğumuz bir projede kullanacağımız RTC modülü için zaman verilerini decimal değerden BCD (Binary Coded Decimal) formatına çevirmemiz gerekiyordu. Bunun için araştırma yaparken değişik yöntemler gördüm. Bizim projemiz için en uygun yapıyı ise bulamadık. Biz de kalem kağıdı elimize alıp sıvadık kolları.
Bu işlemi itoa() fonksiyonunu kullarak da kolayca yapabiliyorsunuz, ama mikrokontroller ile çalıştığımız için bize en az boyuta sahip kod lazım oluyor. O yüzden bir arayış içerisine girdik.
Projede bize lazım olan yapı için 2 basamaklı sayıların dönüşümünün yapılması yeterli olacaktı. Biz de bu yüzden kodu şişirmeden, sadece işimize yarayacak kadar olan yapıyı oluşturduk. Eğer size kullanmak istediğiniz yerde 2’den fazla basamaklı sayılar için dönüşüm yapmak isterseniz küçük matematik hesaplamaları ile bunu yapabilirsiniz. Biz bu yapı için daha büyük sayılara göre denemelerimizi yaptık ve düzgün sonuçlar aldık.
Aşağıdaki kodu kullanarak Decimal to BCD (Binary Coded Decimal) dönüşümünü yapabilirsiniz.
https://gist.github.com/d72fdcf96426f1b235453513e71101ab
Aşağıdaki kodu kullanarak BCD to Decimal dönüşümünü yapabilirsiniz.
https://gist.github.com/adb3353092c3394d1c5217a05540f2d9
C ve C++ dillerini kullanarak Decimal to BCD ve BCD to Decimal dönüşümlerini yapmanız bu kadar kolay.
Senelik yaptıklarım serisine yeni bir eklemeyle devam ediyorum. Bu seriyi “2016 Yılı Benim İçin Nasıl Geçti?” yazım ile başlatmıştım. Şimdi sıra geldi 2017 yılının benim için nasıl geçtiğine.
Öncelikle kendime 2017 hedefleri belirlemiştim. Bu hedefleri tekrardan liste halinde buraya yazayım ve kendimi küçük bir değerlendirmeye sokayım.
- Seneyi alttan ders bırakmadan bitirmek
- İstediğim şirketlerin birisinde yaz stajı yapabilmek
- Yazıcıyı geliştirerek stabil bir hale getirmek
- Programlama ve elektronik anlamda kendimi çok daha fazla geliştirmek
- Verdiğim eğitimlerle kendini geliştiren arkadaşlarla birlikte bir proje çıkartmak
- Front-end geliştirme yaptığım çalışmaları artırmak ve bunları paylaşmak
- Güzel sözlerin paylaşıldığı bir site – uygulama yapmak
- En az 10 kitap okumak (1 tanesi bitmek üzere)
- 83 kiloda seneyi bitirmek
- Ve tabiki yine ehliyet almak
Evet. Hedeflerim listesi bu şekildeydi, şimdi gelelim değerlendirme kısmına. Çok şükür alttan dersim yok. Yani en azından şimdilik yok, daha 1. dönem bitmedi, ama olmaz gibi duruyor. Kendim bulduğum, istediğim alan üzerine çalışan bir şirkette güzel bir yaz stajı dönemi geçirdim.
Sene içerisinde bir tane daha yazıcı aldım ve ardından elimde bulunan 2 yazıcıyı da satarak kendime yurtdışından stabile bir alet olan Tevo Tarantula modeli yazıcıyı aldım. Bu yazıcı hakkında ayrıntılı bilgi yazısını önümüzdeki günlerde yazacağım.
Programlama ve elektronik alanında kendimi oldukça geliştirdiğimi düşünüyorum. Şu an baktığım zaman 1 Ocak 2017’deki Eren ve 26.12.2017’deki Eren arasında çok büyük fark olduğunu görebiliyorum diyebilirim.
Verdiğim eğitimlerden hiçbir arkadaşın desteğini göremediğim için yine Burak’la birlikte bir şeyler yapmaya çalıştık.
Şu an front-end çalışmalarım hızla sürüyor. Wolinka Interaktif Ajansı‘nda freelancer olarak çalışıyorum ve işler çıkartıyoruz ama şu an bunları buradan paylaşamıyorum malesef.
Bu proje hala içimde uktedir. Her geçen gün proje altyapısı ile ilgili şeyleri kafamda daha da oturtarak ilerliyorum ama henüz ciddi manada bir vakit bulup da geliştirme fırsatım olmadı. Ama bu projenin elbet bir gün çıkacağına emin olabilirsiniz.
Bu sene içerisinde tam 12 kitap okudum. Biliyorum çok az bir sayı ama daha önceden kitaplara bakış açısı farklı olan benim için gerçekten çok büyük bir gelişme. Kendime koyduğum bu hedefi aşmanın verdiği mutluluk ve güven ile bu sayı için gelecek sene hedefim daha yüksekte olacak.
Son iki hedefim hakkında konuşmak istemiyorum… Şu an 95 kiloyum ve hala ehliyetim yok 😐
Hedeflerimden çoğunu yapmış olmanın verdiği mutluluğu yaşıyorum ama gönül isterdi ki diğerlerini de yapabilmiş olayım. Ama buna ek olarak sene içinde yaptığım bazı şeylerden de bahsetmek istiyorum.
Okul olarak stabil dönemler geçiriyorum, yani aldığım notlar ne öldürür ne süründürür 🙂 Bunların yanında Eskişehir’de Faydam Inovasyon ve Teknoloji adında bir firmada part-time olarak çalışmaya başladım. Bu firmada gömülü sistem yazılım ve donanım geliştirmeleri yapmaya çalışıyoruz. Ben adaptasyon aşamasını şu sıralar yeni yeni atlatıyorum, önümüzdeki projelerde benim de katkılarım olacaktır.
Bu yazı serisine elimden geldiği kadar her sene devam etmeye çalışacağım, çok kısa bir süre içerisinde 2018 yılı hedeflerimi de belirleyerek yazacağım.
Yakın zamanda yaptığım siteyi hızlandırma ve optimizasyon çalışmalarının faydasını görmeye başladım. Yaptığım çalışmalar neticesinde – sunucu süresi dışında – olabilecek maksimum hıza ulaştığımı söyleyebilirim. Bir kaç yazıda bana sıkıntı çıkartan hız problemlerinin önüne nasıl geçtiğimi anlatacağım. Bu yazımızın konusu ise Pagespeed değerimizi oldukça olumsuz etkileyen <link> olarak çağırdığımız Google Fonts sorununu nasıl çözebiliriz?
Google Fonts‘a girerek bir font seçtiğiniz zaman onu sizden <link> şeklinde eklemenizi tavsiye ediyor, aynen şu şekilde:
<link href=”https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900&subset=latin-ext” rel=”stylesheet”>
Ama siz bu şekilde bir ekleme yaptığınız zaman Pagespeed size aşağıdaki uyarıyı veriyor ve hızınızı %10 civarında etkileyen bir azalış gösteriyor.
Peki bu sorunu nasıl çözebiliriz?
Bazı linklerimizi alıp footer’a taşısak bile Google Fonts sorunu o şekilde çözülemiyor malesef. Bunun için küçük bir javascript kodu yazmamız lazım. Bu yazacağımız javascript kodu alt tarafta çalışacağı için sizin siteniz yüklenirken bariz bir olumsuzluk oluşturmadan açılış hızınızın artmasına yardım edecektir. İşte kodumuz:
https://gist.github.com/0ca8e3b25b812affee6b4fd8b37e8c45
Kullanacağınız fonta bağlı olarak Webconfig kısmı içerisini değiştirmeniz yeterli olacaktır.
Hız sizinle olsun 🙂