Yazılımcılar İçin Hafta Sonu Okumaları - Sayı #28(Docker, Flutter, React'in Derinlikleri ve çok daha fazlası)
Merhabalar.
Geçen hafta Devnot'un Teknopark İstanbul Yazılımcı Buluşmaları'nda bir sunumum vardı. O yüzden yeni sayı hazırlayamadım. Bu hafta biriken yazıları da dahil etmeye çalışarak acısını çıkardım ve destan gibi bir sayı oldu. Size kolaylıklar dileyerek başlıyorum.
Docker
Geçtiğimiz 2 haftada en fazla Türkçe içeriğe denk geldiğim konu muhtemelen Docker'dı.
Anıl Emre Özçelik, Docker'a Giriş başlığıyla bir seriye başlamış. Şu ana kadar 3 yazı yayımlamış.(1, 2, 3)
Yine Serkan Bingöl, Docker Network, Docker'da image, container ve registry kavramları, son olarak da Docker'da kalıcı veri ve Docker Compose konularında 3 yazı yayımlamış.
Emre Özkan da Docker üzerinde Hadoop Cloudera kurulumunu anlatmış.
Bu arada Docker hakkında en kaliteli içerik olduğunu düşündüğüm, aynı zamanda yukarıda bahsi geçen yazıların bazılarında da kaynak olarak geçen Gökhan Şengün'ün 3 yazılık harika serisini(1, 2, 3) de zikretmeden olmaz.
Flutter
Bir diğer yoğun içeriğe denk geldiğim konu ise Flutter oldu.
Ahmet İbrahim Aksoy, Flutter ve Dart diline genel bir bakış atmış.
Sait Banazılı ise React Native'in mimarisi ve çalışma prensibini detaylıca anlatmış, ardından Flutter'a geçiş yapıp farklarından bahsetmiş.
Bir diğer yazıda Seray Uzgur, Flutter'da animasyon yapımıyla alakalı güzel bir giriş yazısı yazmış.
TDD'de Dependency Injection
TDD(Test Driven Development) çalışmanın ve birim test yazmanın en sıkıntılı konuları bağımlılıklar. Bu meselenin çözümü de bağımlılık enjekte yöntemi(Dependency Injection) kullanılmasından geçiyor. Burak Selim Şenyurt, geçtiğimiz haftalarda yayımladığı yazısında bu konuya eğilerek, hem Dependency Injection'ı anlatıyor hem de 2 farklı yöntemle(stub ve mock) test yazımında kullanılmasından bahsediyor.
10 Yaşında Bir Çocuğa Yapay Zeka Çalıştırmak
Son haftalarda okuduğum en güzel yazılardan birinden bahsetmek istiyorum: "10 Yaşındaki Oğlumla Nasıl 'Yapay Zekâ' Çalışıyorum?". Zafer Demirkol, yapay zeka çağında 10 yaşındaki oğlunun bunun dışında kalmaması için seviyesine göre yapay zeka öğretmeye karar vermiş. İlk başta temel seviyede bildiği Excel'i geliştirmesi için yardım etmiş. Misal futbol merakından faydalanarak Fenerbahçeli furbolcuların bilgilerini pek çok detayıyla bir Excel dosyasına girmesini sağlamış. Akabinde PowerBI ile bu verileri yine seviyesine uygun şekilde görselleştirmiş. Daha sonra yaz tatilinde Dünya Kupası'nın olmasından istifadeyle Dünya Kupası'ndaki futbolcuların verilerini oluşturmasını sağlayıp, bunların bir kısmı ile IBM Watson'ı eğitmiş; kalanları ile de test etmişler. Elhâsılı, pek çok konuda ders çıkarabileceğimiz müthiş bir yazı.
Blockchain Tecrübeleri
Geçen sayıda Enes Türk'ün Dünyada Blockchain Denemeleri başlıklı bir seriye başladığından söz etmiştim. Geçtiğimiz hafta da Hindistan'daki bazı uygulamaları yazmış. Bankacılık ve finans alanında 18 kullanım senaryosundan bahsetmiş.
DevOps Neydi
Eser Özvataf, yazılımla alakalı pek çok konuda kendine ait görüşler serdeden, savunan biri. Geçtiğimiz hafta yayımladığı yazısında DevOps'un nasıl olması gerektiğine ve DevOps mühendisi ile yazılımcının sınırlarının nasıl çizilmesi gerektiğine dair fikirlerini paylaşmış.
MongoDB
NoSQL sistemlerin kurgulanmasında çokça bahsi geçen meşhur bir üçgen(küme gösterim versiyonu da var) vardır. Uygulama bu üçgenin ancak iki bacağını tam anlamıyla yerine getirebilir. Bu teoremin ismi şimdi söz edeceğim yazıdan öğrendiğim kadarıyla Brewer (CAP) Teoremi imiş.
Selçuk Usta, MongoDB'de bu teoremi göz önünde bulundurarak nasıl bir tasarım yapılması gerektiğini anlatarak Read Concern, Write Concern ve Read Preference meselelerini yazmış.
Terminal Komutları
Doğan Aydın, içinde yazılımın da bulunduğu pek çok farklı konuda doyurucu yazılar yazıyor. Geçtiğimiz hafta yayımladığı yazısında Linux ve MacOS terminal komutlarının benzerliğinin nereden geldiğini sormuş ve Unix, Linux tarihlerini anlatmış. Akabinde MacOS'ta önemli ve kullanışlı gördüğü komutları anlatmış.
Bu bağlamda geçtiğimiz hafta yayımlanan bir diğer yazıda Utku Kamacı, Linux terminali için yardımcı 11 komutu ve kullanım senaryolarını yazmış.
2018'de Yapay Zeka
2018'in son günlerinde Stanford Üniversitesi tarafından ve SRI International, MIT, OpenAI, McKinsey Global Institute, Harvard Üniversitesi gibi bu alana yön veren kurum ve kuruluşlardan birçok araştırmacının desteği ile oluşturulan ‘Artificial Intelligence Index- 2018 Annual Report’ yayımlanmış. Deep Learning Türkiye Topluluğu'ndan Başak Buluz ve Şebnem Özdemir, bu raporu Türkçeye çevirmiş ve yorumlamışlar.
Birincilik Alan Bir Yapay Zeka Projesinin Serencamı
Tam Faktoring, bir hackaton düzenlemiş. Yarışmanın birincisi "Python'da Majority Vote (Topluluk Oylaması) ile Müşteri Kayıp(Churn) Analizi" projesiyle Yunus Emre Gündoğmuş ve arkadaşları olmuş. Çeşitli makine öğrenmesi yöntemleri kullanılarak sürekli müşterileri kaybetme (churn) analizi yapmışlar. Daha da güzeli Yunus Emre Gündoğmuş, projeyi anlattığı detaylı ve çok başarılı bir makale kaleme almış. Hem birincilik hem de makale için tebrik edip devam edelim.
Bitcoin'in Halkın Arasına Karışması
Turan Sert, burada sık sık bahsi geçen, Blockchain konusunda üretken bir yazar. Son 2 yazısında Bitcoin'in geniş kitlelere yayılması için yapılan geliştirmelerden bahsetmiş. İlkinde Blockchain üzerinde 2. bir tabaka olarak konumlandırılan ve saniyede maksimum işlem yapılması kısıtını aşmaya yönelik bir geliştirme olan Lightning Network'ü anlatmış. Diğer yazıda ise borsa işlemleri için geliştirilen bir Bitcoin yan zinciri olan ve Bitcoin değerinde L-BTC isminde bir para birimine sahip olan Liquid'den bahsetmiş.
Geçmişten Günümüze Android
Android'deki kütüphane ve tekniklerin kullanım amaçları ilk zamanlarına göre farklılaşmış. Hadi Tok, bu kütüphanelerin hikayesini anlattığı bir seriye başlamış. Detaylı şekilde anlattığından dolayı da başlığa Junior'muşum gibi açıkla demiş.
TCP Nedir
TCP, pekçok teknolojinin temelinde kullanılan paket kaybına karşı duyarlı bir iletim protokolü. Aynı zamanda yazılımla uğraşan herkesin bilgi sahibi olması gerektiğini düşündüğüm temel bir konu. Gökhan Şengün, haftalık yazılarında yine mimarisi ve çalışma mantığıyla TCP'yi anlatmaya başlamış(1, 2).
Yol Haritaları
Merve Bayram Durna, veri bilimcisi olmaya karar vermiş ve oturup kendine 1 yıllık detaylı bir yol haritası hazırlamış. Benzer bir kariyer hedefi olanlar için faydalı bir kaynak.
Diğer bir yol haritası çalışması ise yazılıma yeni başlayanlar için Abdulah Şahin tarafından hazırlanan oldukça kapsamlı bir çalışma. Özellikle yeni mezunların veya alaylı diye tabir edilen yazılımla alakası olmayan okullarda okuyup yazılıma başlayanların merak ettiği pek çok konu, dokümanda mevcut.
nsistanbul Ürünleri
Ülkemizdeki yazılımla ilgilenen en aktif ve de üretken topluluklardan biri nsistanbul. Meetuplar, podcastler, makaleler, kodlama videoları, açık kaynak projeler derken geniş bir yelpazede üretmeye devam ediyorlar. Medium'da yayımladıkları bir yazı ile tüm bunları derlemişler. Motivasyonlarının ve başarılarının devam etmesi dileğiyle.
React'in Derinlikleri
Geçen sayıda .Net koleksiyonlarının arka planına dair bir yazısından bahsettiğim Fatih Uçar, bu kez de React'in derinlerine dalmış. İlk yazısında DOM manipülasyonun nasıl yapıldığını(sanal DOM oluşturulması, asıl DOM ile eşleştirilmesi), kullanılan algoritmayı, performanslı eşleştirme için neler yapılabileceğini detaylarıyla anlatmış.
Mikroservisler Arası İletişim
Suat Köse, mikroservisler hakkındaki detay yazılarına devam ediyor. Yayımladığı son yazıda mikroservis mimarisinde servisler arası iletişim yöntemlerinden bahsetmiş. Event-Driven mimari, Request-Driven mimari ve hibrid mimari başlıklarıyla konuyu anlatmış.
Web Güvenliği Sadece Web Güvenliği Değildir
Başarılarıyla göğsümüzü kabartan Netsparker, bloguyla da önemli içerikler üretmeye devam ediyor. Geçtiğimiz haftalarda Ziyahan Albeniz imzasıyla yayımlanan yazıda 2 önemli güvenlik zafiyeti ve bunlara karşı alınabilecek önlemler anlatılmış. İlk kısımda saldırganların web üzerinden fareye ulaşmasına imkan veren bir zafiyet, ikinci kısımda ise HTTP isteği oluştururken içerik tipinin özenli tanımlanmaması durumunda yaşanabilecek bir zafiyetten bahsedilmiş.
Veri Hazırlama
Halil İbrahim Şafak, makine öğrenmesi için bir seriye başlamış. Geçtiğimiz haftalarda yayımladığı 2. yazısında verilerin hazırlanması aşamasını anlatmış.
Yine Hakkı Kaan Şimşek, veri hazırlama aşamasında çok boyutlu verilerin boyutunu düşürme yöntemlerini anlatmış.
Kişisel Robotlar, Kişisel Veriler
Yapay zeka, robotik ve otonom araçlar gibi teknolojiler geliştikçe olay daha da disiplinler arası bir boyuta evriliyor. Özellikle etik ve hukuki tartışmalar gün geçtikçe artıyor. Türkçe içerik üretmek üzere robotic.legal ismiyle bir site kurulmuş. Bu site üzerinde okuduğum bir yazıda Gizem Gültekin Varkonyi, kişisel verileri koruma kanunlarının tarihinden bahsetmiş; akabinde kişisel hizmetler için kullanılan ve kişiselleştirilmesi amacıyla belli verileri tutan robotların bu kanunlar karşısındaki durumunu sorgulamış.
Yerli Siber Güvenlik Yazılımı Hamlesi
Utku Şen, daha önce Arka Kapı Dergi'de yayımlanan "Yerli Siber Güvenlik Yazılımı Hamlesinde Gözden Kaçan Detaylar" yazısını blog sitesinde neşretmiş. Oldukça önemli bir konu ve gayet dolu, güzel bir yazı. İlk etapta bu konuda başarılı olan ülkelerin özelliklerinden bahsetmiş, sonrasında ise ülkemizdeki durumla kıyaslayarak neler yapılması gerektiğinden söz etmiş. Son kısımda ise siber güvenlik yazılımlarının gelişim evrelerinden ve aynı dönemlerde ülkemizde yaşanan gelişmelerden bahsetmiş.
Ürün Geliştirme Kültürü
Ürün geliştirme tabiri yazılım aşamasını da içine alan geniş bir kavram. Anıl Kıral, ürün geliştirme organizasyonu kurgulanırken nelere dikkat edilmesi gerektiğinden ve bu konuda kültür oluşturmanın öneminden bahseden bir yazı yayımlamış. Spotify örneği üzerinden ürün geliştirme kültürü ve takım oluşturma meselesini anlatan güzel ve faydalı bir yazı olmuş.
Metin Analizi
Yeni bir kavram öğrendim bu hafta: Sentiment analizi. Bir metindeki olumlu ve olumsuz görüşleri belirlemek için kullanılıyormuş. Gökhan Gökalp, Azure'un Text Analytics API çözümünü kullanarak .Net Core üzerinde, bir alışveriş sitesindeki ürün yorumlarının sentiment analizini yapan örnek bir proje geliştirmiş ve yazdığı makalede detaylarıyla anlatmış.
Muhteşem Cuma Tecrübeleri
Geçtiğimiz haftalarda sahalarda sıkça görmek istediğimiz bir hareket yaşandı ve Iyzico'dan Özlem Çamural, "mühendis gözüyle muhteşem cuma tecrübelerini" anlattı. Yazıda teknik detaya fazla girmeden o gece yaşananları ve aldıkları önlemleri anlatmış. Umarım devamında teknik detayları anlatan yazılar, dahası başka firmaların da bu tarz yazıları gelir.
OCR Denemeleri
OCR, bir resim dosyası üzerindeki metni tespit edip okumayı sağlayan bir teknoloji. Hakan Uysal, giriştiği hafta sonu projesinde 20 bin tane caps üzerindeki metinleri Vision API marifetiyle tespit etmeye çalışmış.
Benzer şekilde Furkan Uzun da Python&OpenCV kullanarak resim üzerindeki metni tespit etmeye çalışmış.
Fintech Alemi
Soner Canko, uluslararası bir etkinlik olan Fintech CEO Summit'e katılmış. Not aldığı en dikkat çekici 5 bilgiyi paylaşmış.
Yakın zamanda kaleme aldığı bir başka yazıda ise yazdıkça öğrendiklerini anlatmış. Blog yazmaya teşvik olması açısından okumanızı öneririrm.
Kitap Özeti
İbrahim Kürce, durmaksızın kült kitapların özetlerini çıkarmaya devam ediyor. Refactoring'in 2. baskısının özetinde 2. ve 3. yazıları yayımlamış(2, 3). Bir yandan da başka bir klasik olan Beyond Legacy Code kitabını özetlemeye başlamış(1, 2).
Malik Masis de, Code Simplicity kitabının özetini tamamlamış.
Kısa Kısa
Çağlar Özenç, oldukça detaylı bir şekilde SQL Server Continuous Integration ve Continuous Delivery süreçlerini anlatmış.
Serkan Ünsal, Türkiye girişimcilik ekosisteminin 2018 değerlendirmesini yazmış.
Tuğba Tolon, bir Blockchain 101 yazısı yazmış.
Bora Kaşmer, Typescript'te SOLID prensiplerinin uygulanmasını anlatmış.
Şahin Şahin, JSON data extract ile Postman'da nasıl uçtan uca akış testi yapabileceğimizi anlatmış.
Melih Eran, "Yeni işe alım uzmanları ve 'Overlokçu aranıyor ' yaklaşımı" başlıklı okunası bir eleştiri yazısı kaleme almış.
Murat Doğan, Node.js ile bir crawler yazarak web sitelerinden nasıl veri çekebileceğimizi anlatmış.
Halil Özel, iOS'ta "Catch the Fruits" isminde mini bir oyun geliştirerek, nasıl yapıldığını adım adım anlatmış.
İlker Birbil, Yapay Sinir Ağları konusunda uzun zamandır bir seri hazırlıyormuş. 10. ders ile hitama erdirmiş.
Haberler
Software Development Turkey isminde bir Discord sunucusu açılmış. Ben de birkaç haftadır vakit buldukça dahil oluyorum. Yazılımın hemen her dalı için kanallar var. Yalnız takip edebildiğim kadarıyla büyük bir çoğunluğu öğrenmeye aç öğrenciler veya yeni mezunlar. Tecrübeli arkadaşlar dahil oldukça sunucudan hasıl olan fayda artacaktır. Aksi takdirde bu tür güzel çabalar akim kalabiliyor.
Medium'da aktif içerik üreten DevOps Türkiye yayını da bir Slack grubu açmış.
Bitirirken
Buraya kadar sabırla geldiyseniz sizi tebrik ediyorum. Geç oldu, biraz da güç oldu ama nihayet tamamlandı. Faydalı olması ümidiyle.
Zâtınıza çook iyi davranın.
Bana ulaşmak için: Linkedin, Twitter, CuriousCat
Daha fazla motive etmek için: Patreon
Sosyal Medya
[tweet https://twitter.com/fkadev/status/1076621163206492160] [tweet https://twitter.com/kaldiroglu/status/1077289814423232512]
[tweet https://twitter.com/umutluoglu/status/1074897142186237952]