Hakkımda

İletişim

E-Posta: guray [at] gurayyildirim.com.tr

LinkedIn: https://tr.linkedin.com/in/gryyldrm
Twitter: https://twitter.com/GurayYildirim
Facebook: https://www.facebook.com/gryyldrm

Eğitim

Lisansımı İstanbul Teknik Üniversitesi’nde Elektronik ve Haberleşme Mühendisliğinde tamamladım.

Şu an Boğaziçi Üniversitesi’nde Elektrik-Elektronik Mühendisliği programında yüksek lisans yapıyorum.

Eş zamanlı olarak İTÜ’de çift anadal olarak başladığım ama ders almaya fırsat bulamadığım Kontrol ve Otomasyon Mühendisliğine devam etmeye çalışıyorum.

Projeler

Yeni projelere her zaman kapımız açık, bir proje geldiğinde alanımla alakalı olduğu sürece çevirmemek için elimden geleni yapıyorum. Bu konuda e-posta ile ulaşabilirsiniz.

  • GPRS ve/veya Wi-Fi üzerinden evlerdeki/taşıma hatlarındaki gaz seviyelerinin ölçümü: İstediğiniz alanda bir gaz kaçağı olduğunda, standart alarmların çalışması için geçen süreyi kısaltan, size önceden “gaz artışı var, kaçak olabilir!” uyarısı yapan, ayrıca evde yoksanız, uyuyorsanız, çocuklarınız ocağı kurcalıyorsa telefonunuza, bilgisayarınıza bildirim gönderebilen bir Internet of Things uygulaması hazırladık, çalıştırdık. Birçok yarışmaya da götürdük, çok sayıda ödül de aldı. Mobil uygulamasını da Python/Kivy ile yaptık. Sunucu kısmında Ubuntu kullanarak Python ile TCP/IP haberleşmesi gerçekleştirdik.
  • Araçlardaki LPG’lerin kaçak analizi: Yukarıdakinin benzeri bir projeyi GPS sistemi de ekleyerek hareketli araçlara uyguladık. Hem araç takibini, hem de araçtaki LPG sisteminde bir kaçak varsa yine daha minimum seviyelerdeyken bunu algılayarak alarm veren bir sistemi oldukça düşük maliyetlerle gerçekleştirdik. Böylece önem verdiğiniz kişilerin arabalarında bir gaz kaçağı olursa ve uyarı onlara gidemezse sizin telefonunuza da gelebilir, sorun yaşamadan önüne geçme şansınız olabilir.
  • Pebble Watch ile acil durum alarmı: Pebble Watch, üzerinde toplamda 4 butonu bulunan bir saat. Saatin üzerine yazdığımız uygulama ile istediğiniz anda tek bir tuşla belirlediğiniz kişilere yardım sinyali gönderebiliyorsunuz. Sinyal giderken telefonunuzdan aldığı GPS konumunu da iletiyor ve eğer siz hastabakıcıysanız ya da evinizde hasta birileri varsa, yardım isteklerini anlık olarak haritadan görebiliyorsunuz. Nerde olduklarını size bildiremeyecek durumda olanlar, karışık teknolojiyle uğraşamayan yaşlılar, taksici ve minibüsçüler, kısaca acil durumda minimum eforla alarm gönderebilecek herkesin yararlanması için tek butonla bu sistemi aktifleştirdik. Aynı zamanda birisi kaybolduğunda canlı takibi, sinyal gelmiyorsa da en son görüldüğü yeri bu şekilde bulma şansınız var. İstanbul’da AngelHack 2015’e katılarak yaptığım bu proje ile hem Pebble özel kategorisinde hem de AngelHack’te birinci olduk.
  • Tuvalet sırası: Kalabalık bir ortamdasınız, tuvalet yetersiz ve sıra beklemeniz gerekiyorsa, ortamdan uzak kalıp zamanınızı tuvalet sırasında öldürmemeniz için tuvaletin dolu mu boş mu olduğunu cep telefonunuzdan görebilir, dolu ve çok sıra varsa kendinizi sıraya ekletebilirsiniz. Sizden önceki kişi girdiğinde sizi tuvaletin oraya çağırır, otomatik sıraya koyar ve sıra takibini yapar. Artık tuvaletin önünde beklemek zorunda kalmazsınız. Bu projeyi Bluetooth 4.0 ve Android üzerinde gerçekleştirdik. Angelhack’deki projelerimizden biriydi ve bu da kendi kategorisinde birinci oldu.
  • Yağmur geliyor alarmı: Angelhack için yaptığımız projelerden biri de, bulunduğunuz bölgede konumunuzu algılayıp, internetten belirlediğimiz bir API’den önümüzdeki birkaç saatin hava durumunu çekerek ani bir sıcaklık değişimi ya da kar, yağmur gibi bir hava durumu değişimi varsa saatinizi titreterek ne olacağını söyleyip sizi uyaran, hasta olmadan önce önlem almanızı amaçlayan bir uygulama hazırladık.
  • Mercedes’in Kanyon’da yapacağı araba tanıtımı için aktif NFC kartları ile araba sahiplerinin isimlerine özel reklam çıkmasını sağlayan sistemin altyapısını hazırladım. Proje 15 günlük görevini başarılı bir şekilde gerçekleştirdi.
  • Raspberry Pi’den wireless router yapımı: Raspberry Pi kullanarak kablolu ağı wireless’a çeviren ya da USB 3G modemlerdeki interneti wireless üzerinden dağıtan bir sistemi netmask değerini 65535 IP adresi verecek değere getirerek DHCP sunucusu da kurarak ayarladım, 10-15 cihaz bulup deneyebildik ve bir sıkıntı yaşamadan hepimiz internete bağlandık. Proje kısıtlamaları: Tabii ki burda bir bilgisayar birden fazla bağlantı açacak olursa 16 bitlik porta tek IP’den sahip olduğumuz için 65535 cihaz sayısı bununla orantılı olarak düşecek ya da ekstra modem vs. bağlamamız gerekecek. Ayrıca Raspberry Pi 1 kullandığımız için de işlemci gücü her an yetersiz kalmaya başlayabilir. Kablosuz modemde sıkıntı çıkınca zaten kullandığımız ağ için bunu yaptım o yüzden şu anlık bir sıkıntı yok.
  • ESP8266 ve MQTT ile VPS üzerinden veri aktarımı: Bir VPS üzerine CentOS Linux dağıtımını kurarak Mosquitto MQTT Broker’ını yükledim. Sistem üzerinde bind, apache ve birkaç servis daha çalışır durumda ama çok aktif kullanıcıları yoktu. MQTT Broker’ı 500 aktif publisher/subscriber’a kadar denedik ve bir sorunla karşılaşmadık. ESP8266’dan gelen uptime verileri de istediğimiz yerden anlık olarak takip edilebiliyor.
  • ESP8266, MQTT, Python/Kivy ile bilgisayar ve mobil üzerinden otomasyon: Bir öncekinde yazıp çok basit bir stress testi uyguladığım sisteme bir cep telefonu ve masaüstü uygulaması ekleyerek, uygulamayı MQTT publisher haline, ESP8266’ları da hem publisher(sunucuda log tutmak için) hem de subscriber haline getirerek telefondan çıkan veriyi GPRS/3G üzerinden yurtdışında bulunan bir sunucuya, ordan da dönüp dolaşıp ESP8266’ların bağlı olduğu ağa ve ordan devrelere getirerek aydınlatma kontrolü için gerekli altyapıyı hazırladım. Buna ayrıca herhangi bir otomasyon sistemini dahil etmek de mümkün.
  • ESP8266 ile Arduino kodlaması, kendi SDK’sı ile kodlama, çevresel devrelerin tasarımı gibi konularda çok sayıda pratik yapma şansım oldu. AT komut seti halini de kullandım ancak kendi hafızası varken içerisine kod yazmak maliyet, performans ve stabilite açısından daha iyi sonuçlar getiriyor. Bununla çalışan arkadaşlar varsa paylaşacaklarımız olduğuna eminim.
  • Raspberry Pi’ye nRF905 kütüphanesi yazımı: nRF905 subGHz(1 GHz altı frekanslar) modülünün Raspberry Pi’de düzgün çalışan bir kütüphanesine denk gelemeyince datasheet’ini açıp Python ile kütüphanesini yazdım. Kesme desteği, havada sinyal varken bekleyip çakışma olmaması için sinyal bitince göndermesi, karşı taraftan ACK alması, alamadıysa tekrar göndermesi gibi alt seviye haberleşme katmanlarında birçok uygulamayı gerçekleştirdim.
  • Telegram’ın Türkçe çevirisi: Mesajlaşma uygulaması olan Telegram’ın Türkçe çevirisinin büyük bir kısmını İTÜGNU olarak üstlendik, çevirdik.
  • Arduino ve STM32 ile GPS kütüphanesi: NMEA protokolünü verimli bir şekilde ayrıştırıp konum, zaman gibi bilgileri alan bir state machine(durum makinesi) tasarlayıp bunu C ile gerçekleyerek STM32’ye bir GPS kütüphanesi hazırladım. Ardından, Arduino kaynak kodlarında seri port kütüphanesini değiştirip kesme fonksiyonunda kullanıcı fonksiyonunu çağırmasını sağlayarak Arduino serial buffer ının boyutunu azalttım ve sistemi daha verimli hale getirerek kesme durumlarında state machine in çalışmasını sağladım. Daha düşük hafıza kullanımı ve daha yüksek performans, ayrıca arada olabilecek beklemelerin kesme ile bölünmesiyle düzgün şekilde veri alınması gibi birçok avantajı oldu.
  • GPRS modülünün Raspberry Pi’de modem olarak kullanılması: Farklı mikrodenetleyicilerle ya da tek başına kullanım için üretilen modüllerden Fibocom G510’u Raspberry Pi’ye normal modem olarak seri port üzerinden bağlayıp 115200 baud rate’te ppp komutlarını Raspberry Pi’ye elle girip açıldığında otomatik olarak internete GPRS modülü üzerinden bağlanmasını sağladım. Bu yöntemde Linux modülü normal AT komut setli modem olarak gördüğü için tüm programlar bunun üzerinden internete bağlanmış oldu ve biz Raspberry Pi’ye reverse SSH ile bağlanabilmiş olduk. Bu da uzaktan erişim imkanı getirdi.
  • Uzaktan kumandalı arabanın Android üzerinden kontrolü: Android yardımıyla, kumandası bilgisayara bağlanan uzaktan kumandalı arabanın internet üzerinden istenen yerden kontrol edilebilmesi. Python/Kivy ile Android uygulamasını yazarak, araba üzerine olacak devreyi ve mikrodenetleyici kodunu yazdım.
  • Public IP adresine sahip olmayan Raspberry Pi’lere dışardan SSH bağlantısı kurmamız gerekince onları bir sunucuya parolasız girebilecekleri şekilde ayarlayarak NAT-Bypassing SSH ağı kurmuş oldum. Bunun üzerinden FileZilla ile SFTP bağlantısı ve terminal üzerinden tek bir komutla uzaktaki Raspberry Pi’lere reverse SSH bağlantısı yapma şansımız oldu.
  • Cep telefonunda sayısal yöntemler: En küçük kareler yöntemi, LU ayrışımı ve istenen derecede eğri uydurma özelliklerinin bir Android uygulaması haline getirilmesini Python/Kivy Framework ü ile yaparak hem bilgisayarda hem Android/iOS’da çalışır hale getirdim.
  • DSLR fotoğraf makinelerini Linux üzerinden konsoldan ve yazdığım Python programlarından kontrol edip uzaktan fotoğraf/video kaydını ve bunların bilgisayara aktarılması gibi kumandayla yapılması mümkün olmayan işlemleri bilgisayardan ve SSH ile uzak bağlantıdan gerçekleştirdim.
  • Online satranç oyunu: Taşların konum bilgisi ile ilgili yapımcısından izin alınan konsol uygulamasının görsel bir arayüze kavuşturularak online bir Android uygulaması haline getirilmesi ve sunucusunun yazılması. Ayrıca, test süreçleri tamamlandı.
  • Messenger uygulaması: İnternet sitesi üzerinden mail adresiyle kayıt olunan, daha sonra indirilen program ile giriş yapıp arkadaş listesine ulaşılan, toplu sohbet imkanı sunan bir messenger uygulaması yazıldı. Sunucunun, uygulamanın, kayıt sayfasının PHP kodlarının ve SQL komutlarının ayrıntılarına blog üzerinde messenger araması yaparak ulaşabilirsiniz. Bu öncelerden yazdığım basit bir uygulama idi, kullanmayı düşünürseniz kodu iyice bir düzenlemenizi öneririm.

Seminerler / Kurslar / Etkinlikler

  • Akademik Bilişim Konferansı 2015’de 4 günlük Arduino eğitimi verdim. 2016 yılında eğitim kadrosunu genişletip 1. seviyeye ara ara girerek 2. seviye Arduino kursunu yine aynı konferans öncesi eğitimlere dahil etmek istiyorum.
  • Daha önce sınıf ortamında 20’den fazla Python ve Arduino eğitimi verdim. Bunlar arasında 30 saati geçenler de oldu. Bunlar farklı üniversitelere gerçekleşti.
  • Python ile concurrency semineri
  • Dünya’da ilk kez sınıf ortamında Kivy Framework eğitimini verdim. Python/Kivy ile mobil ve masaüstü hibrit uygulama geliştirme eğitimi(2 tam gün)
  • Internet of things eğitimi
  • C ile Data structures eğitimi
  • Türkiye’de ilk kez Dünya Arduino Günü’nü 2015’de Yıldız Teknik Üniversitesi’nin Yıldız Savaşları etkinliği ile birleştirerek kutladık
  • İTÜ’de ilk kez Yazılım Özgürlüğü Günü’nü dünya genelinde 300’den fazla farklı nokta ile aynı gün kutladık
  • İTÜ Özgür Yazılım Topluluğu’nu kurdum, daha sonra sayımız arttı ve kulübe dönüştürdük. 2-3 sene kadar yönetim kurulunda bulundum

Katıldığım Kurslar

  • 2013 ve 2015’de Linux Yaz Kampı’nda sırasıyla 15’er günlük Linux Sistem Yönetimi 1. Düzey ve Ağ Uzmanlığına Giriş’e katıldım
  • 2014’de Akademik Bilişim Konferansı öncesinde düzenlenen 4 günlük Kriptoloji ve Uygulamaları kursuna katıldım

Yarışmalar

  • AngelHack 2015’de tüm kategorilerde(bilmediğim bir kategori yoksa) birinci olduk, ödülleri aldık.
  • IoT Line Fair’de 2 farklı projeyle katılarak biriyle 2. diğeriyle 3. olduk
  • Bahçeşehir Üniversitesi Robot Yarışması’nda Internet of Things kategorisinde 2. olduk
  • Konya’ya gittiğimde katıldığım hackathon’da 2. oldum

Python Videoları

Takip edeniniz varsa, bir süredir görsel Türkçe Python eğitimi hazırlıyorum. Programlamaya ilk başladığım zamanlarda kendi başımayken bu işi tek başına öğrenmenin ne kadar zor olduğunu yaşayarak öğrenmiştim. İnternetten izlediğim videolarda atlanılan kısımlar, eksik anlatılanlar, üstün körü geçilenler derken, benden sonra başlayanların aynı zorlukları çekmemesi ve Python gibi oldukça rahat öğrenilen bir dille kolayca programlama dünyasına adım atmaları için elimden geleni yapıyorum. Python videolarına buradan ulaşabilirsiniz.

Türkçe Matlab Anlatımı

Şu sıralar site üzerinde Matlab yazıları yayında. Okuyarak öğrenmeyi tercih ediyorsanız ve programlama tecrübeniz yoksa iyi bir başlangıç rehberi olacağına inanıyorum. Arama kısmına Matlab yazarak yazılara ulaşabilirsiniz. Sorularınız olursa sormaktan çekinmeyin.

Arduino Başlangıç Rehberi

Madem bu kadar yayılmaya başladı, eline yeni geçenlerin, almak isteyenlerin ya da merak edenlerin sorularına cevap bulabileceği, bulamazsa da istedikleri gibi sorabilecekleri bir yazı hazırladım. Elimden geldiğince özenle ve detaylıca anlattım. Serinin devamında gelecek Arduino kodları için bir başlangıç niteliğinde olmasını planlıyorum. Belki de örnek kodlarda yer alanları tekrardan yazmış olurum. Zaman bulursam da yazın video çeker, izleyerek öğrenmek isteyenlere de bir fırsat tanımış olurum. Neyse, planları buraya dökmeye devam etmeden önce, rehbere buradan ulaşabilirsiniz.

C Programcıları İçin Python

C dilinde programlama hayatına başlamış ancak yeni sularda yüzmeyi isteyen, işlerini kısa yoldan halletmek isteyen, C’de sıkılıp daha kolay bir dil arıyorum ya da daha anlaşılır bir dil arıyorum diyenler için hazırladığım rehber. Vakit buldukça ekleme yapıyorum. Şu an giriş seviyesinde, buradan ulaşabilirsiniz.

İTÜ Özgür Yazılım Kulübü

Özgür yazılımla ilgilenenler olarak toplanıp, özgür yazılım topluluğunu kurduk. Bir tane de daha önceden halihazırda var olan toplulukla birleşip İTÜ Özgür Yazılım Kulübü’nü(İTÜGNU) kurduk. İnternet sitemize buradan erişebilirsiniz. Açık kaynak, özgür yazılım veya donanım projesinde çalışmak isteyen ya da proje fikri olan herkese kapımız açıktır.

Raspberry Pi Başlangıç Rehberi

Raspberry Pi için de, tıpkı Arduino’daki gibi bir rehber hazırlamaya karar verdim. Yine aynı konuların aynı işleyişle anlatılacağı, detaylı bir rehber planlayarak yazmaya başladım. Siz bu yazıyı gördüğünüzde muhtemelen bitmiş olacak. Ama Arduino’ya göre oldukça uzun olacağı şu an kesinleşti. Rehbere buradan erişebilirsiniz.

Güncelleme: Tamamlanmış bir başlangıç dökümanı Raspberry Pi 2 için yayında. Buradan erişebilirsiniz.

İstanbul Teknik Üniversitesi Elektronik ve Haberleşme Mühendisliği mezunu, Kontrol ve Otomasyon Mühendisliği çift anadalı duran ve yine İstanbul Teknik Üniversitesi Elektronik Mühendisliği’nde yüksek lisans yapmaktayım. Eğitim dışında, girişimcilik, programlama ve arama motoru optimizasyonu ile ilgileniyorum.

  • Dünyanın en iyi arkadaşı :P :P Sağolsun seo atılımlarıyla bizi googlea tanıtan, yıldız tekniği kazanıp gitmeyen insan. :D

    • 在archlinux终端下使用需要什么额外的设置吗?我在arch使用** (process:1432): WARNING **: Trying to reetsigr gtype GMountMountFlags’ as enum when in fact it is of type GFlags’** (process:1432): WARNING **: Trying to reetsigr gtype GDriveStartFlags’ as enum when in fact it is of type GFlags’** (process:1432): WARNING **: Trying to reetsigr gtype GSocketMsgFlags’ as enum when in fact it is of type GFlags’/usr/lib/python2.7/site-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display warnings.warn(str(e), _gtk.Warning)/usr/share/deepin-scrot/src/window.py:27: GtkWarning: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)’ failed (screenWidth, screenHeight) = gtk.gdk.get_default_root_window().get_size()Traceback (most recent call last): File ./deepinScrot.py , line 25, in from mainscrot import MainScrot File /usr/share/deepin-scrot/src/mainscrot.py , line 28, in from action import * File /usr/share/deepin-scrot/src/action.py , line 25, in from draw import * File /usr/share/deepin-scrot/src/draw.py , line 32, in from window import screenWidth, screenHeight File /usr/share/deepin-scrot/src/window.py , line 27, in (screenWidth, screenHeight) = gtk.gdk.get_default_root_window().get_size()AttributeError: NoneType’ object has no attribute get_size’

  • Gur@y


    Orhan:

    Beğen veya Beğenme: Thumb up 2 Thumb down 1

    Dünyanın en iyi arkadaşı :P :P Sağolsun seo atılımlarıyla bizi googlea tanıtan, yıldız tekniği kazanıp gitmeyen insan. :D

    Eklendi :)

  • zeyd

    öncelikle neden böyle bir megalomanyaklığa imza attığını anlayamadım.herkes de iyi şeyler yazmış. bloguna acımasızca bir yorum yazmak için parmakları sıvadım :) media kaarkta gidip de bulamadığımız ürünler kadar kalbimdesin(burdan dereceni sen çıkar) bu da yıllık yazısı gibi oldu, bizi takip edin :)

  • Gur@y


    zeyd:

    öncelikle neden böyle bir megalomanyaklığa imza attığını anlayamadım.herkes de iyi şeyler yazmış. bloguna acımasızca bir yorum yazmak için parmakları sıvadım :) media kaarkta gidip de bulamadığımız ürünler kadar kalbimdesin(burdan dereceni sen çıkar) bu da yıllık yazısı gibi oldu, bizi takip edin :)

    Ekledim Zeyd’im

  • ıphone4

    ingilzcem berbat diyipte en yüksek notları alan yalancı birisi :D hiç sevmiyorum hatta nefret ediyrum elimde bir fırsat olsa yemeğine fare zehri karıştırmak istiyorum :) bu yazıyı saklamasını temenni edip go ahead (git başımdan) diyorum :D

  • kaan

    ellerine sağlık python dersleri için bulabildğim ender kaynaklardan şimdi senin pythona başladığın yerdyim

  • Hasan Gökberk Özkan

    Güray Abi benim python programı ismimi yazmıyor ne yapabilirim

  • Başarılarınızın devamını dilerim.

Linux Sysadmin, DevOps, Docker Enthusiast