Mehmet Köse

Mehmet Köse

As a self-taught developer, I’ve been around web technologies for ten years and still counting. I truly believed the web, passionately waited to be improved the web standards and capabilities of web browsers. Interested in real-time technologies, used WebSockets. I've Involved open-source movement, built some packages in Javascript and Python. Eversince websites became proper apps with state management, routing, etc... I learned React.js and focused on frontend development. Since the day I started doing front-end, I'm building Progressive Web Applications.

Blogs

Web'de Img Etiketini Efektif Kullanmak

web resim responsive lazy
Yıllardır kullandığımız img etiketi süreç içinde oldukça duyarlı hale geldi. Logo gibi imaj dosyalarını responsive yapmak yıllardır uygulanan bir şeydi. Kod seviyesinde düşünürsek standartların da günceli yakaladığını söyleyebiliriz. Bu yazıda değinilen iki konu var aslında; resim performansı ve resim deneyimi. Aşağıdaki koda bakacak olursanız, srcset attribute’ü ile cihaz genişliğine göre resim versiyonu girilebildiğini görebilirsiniz. Resimler pek dikkat etmediğimiz ama bizi büyük performans kaybına uğratan şeyler. Birkaç versiyonunu tutmak ve bu şekilde sunmakta fayda var. Read more...

Dağıtık sistemler üzerine

decentralized rss
Geçtiğimiz birkaç sene BTC sağolsun ekonomi okur yazarı oldum, paranın icadından girdim blockchainden çıktım. Yetinmeyip blockchain üzerine basit çaplı bir web uygulaması yazdım. Bir hype’dır kapıldık, eğlenecek güzel bir oyun alanı çıktı. Deneyimledim, bir çok şey öğrenmiş oldum. Bu tarz konularla az da olsa vakit geçirmişseniz dağıtık çalışan her sistem fazlaca ilginizi çekmeye başlıyor. Bittorrent, email, rss hayatımda sürekli olan herhangi bir teknoloji iken, boş vakit bulduğumda kesinlikle üzerine amacının dışında değişik fikirler denemek isteyebileceğim teknolojiler haline geldiler. Read more...

Javascript'te Asenkron Hata Ayıklamak, Golang Tarzı!

async javascript error golang
Promise based şeyler yazarken then/catch kullanıyoruz evet ama ya async/await kullanırken hata oluşursa ne yapacağız? try/catch dışında (ki çok çirkin, asenkron programlama yaparken bazı dillerde kullanılmaması önerilir) var mı bir çözüm diye sorarsanız, şu kütüphaneye bakmak isteyebilirsiniz, await-to-js. işleminizi bu arkadaşla kapsarsanız, sonucu size golang tarzında bildiriyor. yani await işleminizden iki sonuç dönüyor. Birisi, işlem başarılıysa istediğimiz sonuç, ikincisi ise işlemin sonucuna göre kontrol ettiğimiz error değişkeni. async function asyncFunctionWithThrow() { const [err, user] = await to(UserModel. Read more...

296 byte CSS kodu ile erişilebilir web sayfaları

css minimal web
Kodumunsitesi‘ni bilirsiniz. Aslı https://motherfuckingwebsite.com/ olan bu fikri biraz daha ilerletip içine biraz CSS katmışlar Şu yazıda. Özetle her türlü içeriği düzgünce okunabilir hale getirecek minimum düzeyde CSS kodu ortaya çıkartılmış. Üzerine daha fazla araştırma yapılıp birkaç adım ileriye taşınabilir ve gerçekten tüm web sayfalarını kapsayacak hale getirilebilir. Dursun burada da. body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; line-height: 1.6; color: #222; max-width: 40rem; padding: 2rem; margin: auto; background: #fafafa; } img { max-width: 100%; } a { color: #2ECC40; } h1, h2, strong { color: #111; }

React Projelerinde Otomatik Dökümantasyon Üretmek

react doc
Gelin size bu aralar uğraştığım bir şeyden bahsedeyim. Dökümantasyon. Evet, aslında biraz sıkıcı bir konu olabilir, ama gerçekten yazdığınız componentlar tricky şeyler içeriyorsa, bir zaman sonra geri gelip anlamaya çalıştığınızda zorluklarla karşılaşacağınız neredeyse kesin. Neyse döküman önemli, ama nasıl tutsak. Business tarafı sizden döküman istiyor ve bunu 3. parti bir uygulamada tutmak istiyorsa? Kod sürekli değişiyor muhterem. Sürekli gidip bir yerdeki dökümanı güncelliyor olmak zor. Velhasılı aynı durum için ben dökümanı reponun içine koymaya karar verdim. Read more...

Sayfa Assetlerinizi Html İçine Toparlayın : Node Inline

node web performans base64 gulp
Neden? Öncelikle amacımız ne ona bakalım, kütüphanenin amacı sayfa asset’lerini html içine gömerek tek dosyaya indirgimeye çalışmak. Peki bizim amacımız ne olabilir? Performans olabilir mesela. Lighthouse’da test yapıyorsunuz ve gereksiz asset’lerin arayüzün çizilmesini engellediği yönünde hatalar alıyorsunuz. Muhtemelen statikleri inline gömmek sorununuzu çözecektir. Veya interneti crawl edip sayfaları yedekliyor olabilirsiniz. Assetler ile birleştirmek mantıklı bir fikir olabilirdi. Ya da, web sitenizi Electron ile desktop uygulaması olarak derlemek istiyor, ama assetleri taşıyarak, path’ler ile uğraşarak vakit kaybetmek istemiyorsunuz. Read more...

Macos'ta Fish Shell Kurulumu

fish shell macos
Macos’ta zsh zamanın behrinde default olmuş, bilgisayarım son birkaç mojor versiyonu alamamıştı. İş yeri bilgisayarında 16" Macbook PRO’ya geçmiş bulunduk. ZSH’den Fish’e geçiyorum. Bash değiştirmesi her zaman sıkıntılı bir konu. Öncelikle bilgisayardaki shelllerimize bir bakalım ls -l /bin/*sh Fish’i kuralım brew install fish yoksa ekleyelim sudo bash -c ‘echo /usr/local/bin/fish » /etc/shells’ sonra fish’i default shell yapalım chsh -s /usr/local/bin/fish Bu noktada fish’i kurmuş olduk. Oh-my-zsh’i de kurarak devam ediyoruz. Read more...

Declarative ve Imperative Programlama Farkı

paradigma declerative imperative programlama
Programlama paradigmaları temel bir kodlama stilidir. Çok kullanılan 4 tane programlama paradigması var; object-oriented, imperative, declarative, fonksiyonel (declarative programlamanın bir alt kümesi olarak görülebilir). Declarative programlama Ne yapılacağını içeren, nasıl yapılacağınının mantığını pek de içermeyen paradigmadır. CSS veya HTML’i düşünün. Bir şeyin blur olacağını ifade edersiniz browser blur yapar. O şeyin nasıl blurlaştırılacağı hakkındaki fizik mantığını kurgulamaya çalışmazsınız. Veya border atadığınızda, onun aslında bir piksellik bir çizgi olduğunu, çizginin aslında noktalardan meydana geldiğini filan açıklamaya çalışmazsınız. Read more...

Domain TXT Kaydı Sorgulamak

domain dns txt
Tr domainlere amazon dahil bir çok cloud platformundan doğru düzgün dns server desteği bulamadığım, Cloudns’in de destek vermediği, bunun gibi bir çoğunu denediğim durumlarda hayli kullandığım ufak bir tool oldu dig. NS server değiştirip durduğum günlerde Google’ın istediği TXT kaydını sürekli kontrol etmek için şöyle yapıyordum; dig mehmetkose.com.tr TXT bu arada firebase ve cli ile blog deploy etmek harika!

Native Grid Temelli Bir CSS Grid Kütüphanesi: Raster

web css grid frontend
Bu tarz bir grid sistemine ihtiyacım olmuştu bir ara, grid temelli bir abstraction aradığımda bulamamış, zaman içinde HN’de denk gelince yer imlerine kaydetmiştim. Ama yer imlerini de parça pinçik bir çok yerde tuttuğum için ve nafile bir milenyum koleksiyonculuğundan öte gidemediğimden dolayı, kalıcı olsun diye buraya da yazayım dedim. Benim gibi kişisel projelerde minimal çözümler arayan, yeni şeyler denemek isteyenlerdenseniz, şans vermek isteyebileceğiniz bir zımbırtı olabilir Raster. Bi kere grid etiketini kullanarak yerleşimleri ayarlıyorsunuz. Read more...
1 of 2 Next Page