Yazılım Gündemi - 20 (2-8 Aralık 2019)

< Önceki Gündem     |   2-8 Aralık 2019   |     Sonraki Gündem >

Yazılım Gündemi ile ilgili gelişmeler hakkında bildirim almak için bu adresdeki konuya bakabilirsiniz. Yazılım Gündemine katkı sağlamak için yazılımın herhangi bir alanıyla ilgili karşılaştığınız haberleri sosyalde #YazılımGündemineMalzeme etiketi ile paylaşabilirsiniz.

2 zararlı Python kütüphanesi PyPI üzerinden kaldırıldı

Gün geçmiyor ki kişilerin dikkatsizliklerini suistimal eden zararlı yazılımlar gün yüzüne çıkmasın. Genelde uygulamalar ve hizmetlerde görmeye alıştığımız fakat son zamanlarda programlama kütüphanelerinde de yayılmakta olan bu tarz kötü amaçlı kodlar içeren kütüphaneler gittikçe daha ciddi bir tehdit oluşturmaya başladı. Bu sefer de kütüphane isimlerinde bir benzerlik hilesi yaparak kendini başka bir kütüphane gibi gösteren ama aslında zararlı kodlar içeren 2 Python kütüphanesi tespit edildi ve Python paket yöneticilerinin kullandığı Python Package Index (PyPI) sisteminden kaldırıldı. Kütüphaneler bunlar:

İki sahte kütüphane de aynı kişi tarafından geliştirilmiş ve aslında zararlı kodları içeren kütüphane jeIlyfish olan, diğerinde ise bu kütüphane içindeki zararlı dosyayı indirip çalıştıran kodlar mevcut. Zararlı kodların amacı ise çalıştırıldığı bilgisayardaki SSH ve GPG anahtarlarını çalmak. python3-dateutil sahte kütüphanesi 29 kasımda yayınlanmış fakat diğeri 1 yıldır (11 Aralık 2018) yayındaymış.

İki kütüphane de artık erişilemez durumda fakat siz projenize eklemişseniz elbette otomatik olarak silinmeyecek, bu yüzden Python ile geliştirdiğiniz projelerinizi bir gözden geçirmenizde fayda var. Her ne kadar dikkatli olmaya çalışsak da bu tarz güvenlik zafiyetleri maalesef bir anlık dikkatsizliğimizi bile çok iyi kullanıyor. Bir kere böyle bir kütüphaneyi bağımlılık olarak eklediysek sonrasında fark etmemiz çok zor oluyor. O yüzden "ben yemem böyle şeyleri" dememek gerek.

WebAssembly artık W3C onaylı bir web standardı oldu

Her ne kadar alternatifleri çıksa da, zamanla bir şekilde hepsini geride bırakmış bir dil olan JavaScript uzun zamandır hayatımızda. Fakat son yıllarda JavaScript'in tahtı yavaş yavaş sallanmaya başlamıştı ve artık kendi kategorisinde tek dil değil. Çoğumuzun mutlaka ismini en az bir kere duyduğu WebAssembly, bu hafta içerisinde JavaScript'den sonraki dördüncü Web Standartı oldu. "Web Standartı" dediğimize göre hepimiz biliyoruz ki bunu ilan edebilecek bir kurum var: World Wide Web Consortium, çoğumuzun bildiği şekliyle nam-ı diğer W3C.

Konu başlığına eklediğim bağlantıdaki basın bülteninin yayınlanmasıyla tarayıcı üzerinde çalışabilen yeni bir W3C onaylı programlama dilimiz oldu (aslında uzun bir süredir vardı fakat artık resmi olarak onaylı). Tüm yazılım camiasına hayırlı uğurlu olsun. Elbette WebAssembly sadece tarayıcı üzerinde çalışan bir dil değil, kendisiyle başka çeşit çeşit işler de yapmak mümkün. Ayrıca yine W3C geliştiricilere hız ve verimlilik için WebAssembly öneriyor.

Bu basın bülteninin yayınlanmasının bir diğer anlamı ise artık tarayıcıların WebAssembly diline destek vermek için büyük bir nedeni var. Benim tahminim önümüzdeki aylar içerisinde tarayıcılar WebAssembly diline daha büyük yatırımlar yapacak ve birer birer desteklerini duyuracaklardır. Böylece benim de WebAssembly hakkında araştırmalar ve denemeler yapmak için bir motivasyonum oldu. Şimdiye kadar pek detaylıca incelemediğim bu dili daha iyi inceleme vakti gelmiş.

Siz WebAssembly hakkında ne düşünüyorsunuz? Deneme ve araştırma imkanınız oldu mu? Olduysa deneyimlerinizi ve görüşlerinizi yorumlar bölümünde belirtebilirsiniz.

AWS, kodlarımızı inceleyecek yapay zeka hizmetini duyurdu: Amazon CodeGuru

Amazon Web Services (AWS) girenin içerisinden kolay kolay çıkamadığı dev bir ekosistem. Bu ekosistem bu hafta içerisinde daha da genişledi ve içerisine yeni onlarca servis eklendi fakat ben bunlardan biriyle ilgili konuşmak istiyorum. Evet, başlıkta da ismi olan Amazon CodeGuru servisinden bahsediyorum. Bu servis sizin kodlarınızı inceleyerek size çeşitli önerilerde bulunan eğitilmiş bir yapay zeka. Şu an Preview olarak bazı bölgelerde kullanımda açılmış.

Günümüzde gerek teknolojik gelişmelerin hızlanması gerekse de bilgisayar sistemlerinin verimliliğinin artmasıyla bazı mesleklerin yerini yapay zeka sistemlerinin alacağı öngörüleri fazlaca yaygın. Bu yapay zeka sistemlerini geliştiren bizler her ne kadar "ya sistemleri biz geliştiriyoruz zaten, bize bi' şey olmaz", diye düşünsek de, ben aynı fikirde değilim. Günün birinde birisi mutlaka "kod yazan yapay zeka" sistemi çıkaracaktır ve bu sistem verimli ve ekonomik olduğu takdirde de bizim pabuçumuzun dama atılması çok kolay. Böyle bir şeye de çok uzak olduğumuz söylenemez. Bugün de Amazon'un bu hizmeti ile birlikte bunun mümkünlüğüne daha çok inanmaya başladım.

 

Yani anlayacağınız çember bizim için de daralıyor arkadaşlar. Bugün kodlarımızı inceleyip bize öneri sunan yapay zeka, yarın kod da yazar. Biraz komplo teorisi vari olacak ama belki de Amazon bu servisi "kod yazan yapay zeka"yı yaratmak için kullanacak, kim bilir… Elbette yine yazılım mesleğinin yerini tamamen yapay zeka almayacak. Sonuçta bu yapay zekaları geliştirecek olanlar da bizleriz (gerçi bundan da emin değilim çünkü geçen senelerde bir haftalık gündem değerlendirmesinde "yapay zekanın geliştirdiği yapay zeka, insanların geliştirdiği yapay zekadan daha verimli" gibi bir haber dinlediğimi hatırlıyorum) ama eskiye göre yazılım geliştirici ihtiyacı bir hayli azalacaktır diye düşünüyorum.

O gün geldiğinde yazılım camiasının vereceği tepkiyi çok merak ediyorum. Şu an yapay zeka geliştirmeleriyle birçok mesleğin yerini almayı planlayarak sevinen, "ya benim geliştirdiğim sistem insandan daha verimli çalışıyor işte istatistikler" diyerek olaya son derece bilimsel yaklaşabilen arkadaşlar, o gün geldiğinde de acaba "e tabii ki de benden verimliyse buyursun geçsin yerime ben kenara çekilirim" diyebilecekler mi, yoksa Osmanlı döneminde matbaanın gelmesini istemeyen hattatlar gibi bir akım mı oluşacak? Benim tahminim ikincisinin gerçekleşeceği yönünde, çünkü hiç kimse -haklı olarak- mesleğini kolay kolay bırakmak istemez. Fakat artık Osmanlı döneminde değiliz, böyle bir sistem ekonomik ve verimli olduğu takdirde hiçbir işveren bizim göz yaşımıza bakmaz. Fazla mesai ücreti vermeden (gerçi Türkiye'de zaten alamıyoruz ama) 7/24 çalıştırabileceği bir yapay zeka varken niye bize maaş ödesin?!

Bu konuda siz ne düşünüyorsunuz arkadaşlar? Özellikle bu konu hakkında görüşlerini çok merak ediyorum. Lütfen okuyorsanız fikirlerinizi belirtmekten kendinizi geri koymayın. Yorumlar bölümünde konuşalım.

Ayrıca Amazon'un tanıttığı diğer hizmetlerin birkaçı da bu şekilde (gözden kaçırdıklarım olabilir, takip etmek çok zor):

JetBrains takımlar için yeni bir ürün tanıttı: Space

JetBrains firmasını çoğumuz, hemen her programlama dili için çıkardıkları IDE araçları ve Kotlin programlama dili ile tanıyoruz. Bu sefer programlama dillerinden ziyade daha çok şirketlerdeki geliştirici takımları çıkardıkları bir ürünün erken erişim programını duyurumalarıyla gündemimizde yer alıyorlar. Git bazlı versiyon kontrol, bloglar, planlama, code review süreçleri vb. gibi birçok özellik ile birlikte gelen bu ürünü hem servis olarak JetBrains üzerinden kullanabiliyorsunuz, hem de kurumsal firmalar için kendi sunucunuzda barındırabiliyorsunuz.

Daha detaylı bilgi için konu başlığına eklediğim bağlantılara tıklayabilir ya da aşağıdaki duyuru videosunu izleyebilirsiniz:

Django 3.0 sürümü yayınlandı

Popüler Python web framework'ü Django'nun 3.0 sürümü yayınlandı. Bu yeni Django sürümü Python 3.6, 3.7 ve 3.8 sürümlerini destekliyor. Django geliştiricileri, üçüncü parti kütüphane geliştiricilerine Django 2.2'den önceki tüm sürümlere destek vermeyi durdurmayı tavsiye etmişler. Bu sürümde gelen yeniliklerin birkaçı ise şu şekilde:

Ayrıca Django sürüm yükseltme rehberi için buraya tıklayabilirsiniz.

PHP Versiyonları İstatistikleri 2019.2 yayınlandı

Sağda: Mayıs 2019 PHP Versiyonları Kullanım Oranları / Solda: Kasım 2019 PHP Versiyonları Kullanım Oranları

Composer kullanım verilerine göre PHP versiyonlarının zamanda değişen kullanım oranları

Qt yeni eklenti mağazasını duyurdu: Qt Marketplace

C++ ile platformlar-arası (cross-platform) uygulama geliştirmeye yarayan Qt uygulama çatısının artık bir eklenti mağazası var. Geliştiriciler ücretli ya da ücretsiz birçok eklentisi bu mağaza üzerinden alıp, doğrudan uygulamaları üzerinde kullanabilecekler.

Yaklaşan Etkinlikler

Etkinlik İsmi Yeri Tarihi
Tersine Mühendislik - Workshop İstanbul 10 Aralık 18:30
Future of Java Virtual Machines and Frameworks - GraalVM and Quarkus İstanbul 10 Aralık 19:00
Test Automation with Taiko İstanbul 10 Aralık 19:30
LearnDocker İstanbul: Docker'a Giriş İstanbul 11 Aralık 18:30
Oracle Developer Meetup İstanbul 11 Aralık 18:45
LearnDocker İstanbul: Docker'a Giriş - Uygulamalı İstanbul 11 Aralık 19:00
DL Exerts - 1 : Introduction to TensorFlow 2.0 İstanbul 11 Aralık 19:00
Siber Olaylarda 5N1K Yeterli Mi? Ankara 12 Aralık 19:00
Introduction to Tensorflow 2.0 İstanbul 12 Aralık 19:00
Kuantum Programlama Uygulamaları Hackathonu Ankara 14 Aralık 09:00
JAMstack Istanbul Coffee Talk - 4 İstanbul 14 Aralık 13:00
Yapay Zeka ve Hukuk Zirvesi İstanbul 16 Aralık 09:00
AWS Meetup 44 - Re: Invent Yeni Servisler ve Gelişmeler İstanbul 16 Aralık 19:00
Software Craftsmanship Turkey Meetup İstanbul 18 Aralık 19:00
GDG DevFest Manisa 19' Manisa 19 Aralık 09:30
Hakan Erdoğan ile Developer Muhabbeti İstanbul 19 Aralık 18:30
Windows Forensics Ankara 19 Aralık 19:00
Yazılım Sektöründe Serbest Danışman Olarak Çalışmak İstanbul 20 Aralık 19:00
Tatil.com’un Monolitik Uygulamadan SPA’ya Geçiş Öyküsü İstanbul 20 Aralık 19:30
TensorFlow 2.0 Atölyesi İstanbul 22 Aralık 15:00

Diğer Haberler

BeğenFavori PaylaşYorum yap

Yazılım Gündemi - 19 (18 Kasım - 1 Aralık 2019)

< Önceki Gündem     |   18 Kasım - 1 Aralık 2019   |     Sonraki Gündem >

Yazılım Gündemi ile ilgili gelişmeler hakkında bildirim almak için bu adresdeki konuya bakabilirsiniz. Yazılım Gündemine katkı sağlamak için yazılımın herhangi bir alanıyla ilgili karşılaştığınız haberleri sosyalde #YazılımGündemineMalzeme etiketi ile paylaşabilirsiniz.

Özgür Yazılım Derneği kuruldu

Özgür Yazılım, Richard Stallman tarafından ortaya atılmış ve topluluk tarafından geliştirilmiş bir felsefedir. Her ne kadar Richard Stallman'ın karıştığı son olaylar (Yazılım Gündemi - 10) hoş olmasa da böyle bir felsefeyi ve akımı başlatması açısından bence önemli bir kişiliktir. Bu felsefe dünya genelinde Free Software Foundation oluşumu üzerinden tanıtılmaya ve yayılmaya çalışıyor fakat Türkiye'de de bu konuyu önemseyen kişiler tarafından bir girişim yapılmış ve Özgür Yazılım Derneği, İstanbul'da kurulmuş. Derneğin web sitesinden anladığım kadarıyla sanırım dernek yeni kurulmadı, bir süredir var fakat benim de bu hafta Haftalık Gündem Değerlendirmesi 2019/48'de duyarak haberdar olduğum bir oluşum oldu.

Derneğin web sitesini incelediğimde 3 üyelik tipinin bulunduğunu öğrendim. Bunlar şu şekilde:

  • Destekçi Üye: Derneğin faaliyetlerine destek olmak amacıyla maddi veya ayni yardımda bulunan üyelerdir.
  • Üye: Dernek tüzüğünün 5⁄1 fıkrası uyarınca hukuken derneğin üyesi olan, Genel Kurulu oluşturan, dernek organlarını seçme ve organlarda görev alma hakkı bulunan üyelerdir.
  • Onur Üyeliği: Derneğin amaçları için çalışmış, toplumda bu konuda saygı gören ve eserleri ile dernek amaçlarına katkısı bulunmuş kişiler arasından Genel Kurul kararı ile üyeliğe alınan üyelerdir. Onur üyelerinin aidat yükümlülüğü ve oy hakları yoktur.

Desteki Üye olmak kategorisinden derneğe katılmak bir SMS uzaklığınızda. OYD yazıp 8071'e gönderdiğiniz takdirde Özgür Yazılım Derneğine aylık 20TL bağışta bulunabilir (10 TL için OYD10 yazabilirsiniz) ve sayfada sizden istenen birkaç bilgiyi sağlayarak Destekçi Üye kaydınızı tamamlayabilirsiniz. Diğer bağış yöntemleri için bu sayfayı inceleyebilirsiniz.

Derneğin kurulmasında emeği geçen tüm arkadaşları tebrik ederim. Şu an sektörden biraz uzak olsam da ileride benim de içinde bulunmak istediğim bir oluşum.

PHP 7.4.0 stabil sürümü yayınlandı

Uzun bir süredir geliştirilmekte olan PHP programlama dilinin 7.4.0 numaralı ve stabil olan sürümü bu hafta içerisinde yayınlandı. Daha önceki bir yazılım gündemi yazısında da (bkz: Yazılım Gündemi - 3) paylaştığım üzere PHP 7.4'ün yayınlanma süreci büyük oranda planladıkları takvime uygun olarak ilerledi ve tamamlandı. Yine aynı yazılım gündemi yazısında beta süresince olan bazı yeni özellikleri tanıtmıştım. Bu yazıda da birkaç farklı özelliğe bakalım:

Unpacking inside arrays (Dizi içerisinde dizi açmak)

JavaScript ve diğer dillerde spreads ismiyle gördüğümüz bu özellik artık PHP'de de var. Yani artık bir dizinin elemanlarını başka bir dizinin içerisine çıkartabileceğiz.

$parca = ['elma', 'armut'];
$meyveler = ['muz', 'portakal', ...$parca, 'karpuz'];
// dizinin son hali: ['muz', 'portakal', 'elma', 'armut', 'karpuz'];
Numeric literal separator

Daha kolay okunabilmesi için artık sayıları bu şekilde basamaklara ayırabileceğiz:

6.674_083e-11; // float
299_792_458;   // decimal
0xCAFE_F00D;   // hexadecimal
0b0101_1111;   // binary

Elbette eklenen özellikler olduğu gibi değişen ve kullanımdan kaldırılmaya hazırlanan (deprecate) bazı özellikler de mevcut. Bunlar için şu sayayı ziyaret edebilirsiniz. PHP ile yüklü gelen eklentilerden de şu 3 eklenti artık PHP ile birlikte dağıtılmayacak:

Yeni stabil sürümü indirmek isterseniz bu sayfayı ziyaret edebilirsiniz.

Güncelleme Notu (1 Aralık 2019 23:38): Başlığın unutulan bağlantısı "yayınlandı" kelimesine eklendi.

Facebook ve Microsoft'dan uzaktan geliştirme işbirliği

Malumunuz devir tüm ihtiyaçların bulut bilişim çözümleriyle giderilmeye çalışıldığı günümüzde konu bize de geldi. Özellikle de son birkaç ayda duyurulan araçlar ve hizmetlerle de (bkz: Microsoft'un Visual Studio Online hizmetini duyurması - Yazılım Gündemi 17) daha popüler olan uzaktan geliştirme (Remote Development) konusundan bahsediyorum. Geçtiğimiz hafta yayınlanan blog yazısı ile birlikte de Microsoft ve Facebook, Visual Studio Code aracının uzaktan geliştirme özelliklerini iyileştirmek için birlikte çalışacağı ilan edildi.

Facebook da elbette isteyen kendi rahat ettiği programlama aracını kullanıyor fakat çoğunluk bir kısım da Facebook'un, Atom editörünü özelleştirerek çıkardığı Nuclide editörünü kullanıyormuş. Fakat geçtiğimiz yıl bu editörün açık kaynak sürümünü emekliye ayırmışlar. Microsoft'un Visual Studio Code'a remote development özelliği eklemeye ve iyileştirmeye başladığından beri bu özellik Facebook içerisinde çok fazla kullanılıyormuş. Geliştiricilere getirdiği kolaylıklar ise:

  • Projenin boyutu fark etmeksizin bilgisayarın özelliklerine bağlı kalmadan istediğin projede zorlanmadan geliştirme yapabilmek,
  • Birbirinden tamamen bağımsız geliştirme ortamları yaratarak projelerin bağımlılıkları ile ilgili çakışmaları önleyebilmek,
  • Projeler arasında hızlı bir şekilde geçiş yapabilmek ve çalıştırabilmek.

Facebook geliştirme ekibi da bu olanaklardan fazlasıyla faydalandıkları için Microsoft'a bu özelliği iyileştirmek için yardım edecekmiş. Planlanan iyileştirmelerden yazıda bahsedilmemiş, bakalım ne gibi çalışmalar yapacaklar.

Açıkcası her ne kadar uzaktan geliştirme konusuna pek sıcak bakmasam da sağladığı kolaylıklar hiç öyle yabana atılır cinsten değil. Özellikle günümüzde taşınabilir geliştirme ortamları önem kazanmaya başladı. Ben de ileride aklımdaki sistemi kurabilirsem kendi evimde bu tarz bir uzaktan geliştirme ortamı yaratmak istiyorum bakalım. Daha önceki bir yazıda sormuştum fakat yeri gelmişken tekrar sorayım, belki farklı konulara da kapı açabiliriz: Siz uzaktan geliştirme konusunda ne düşünüyorsunuz? Tercih eder miydiniz? Yorumlar kısmında konuşalım.

Tüm JetBrains IDE'leri 2019.3 sürümüne güncellendi

JetBrains, Kotlin programlama dilini üreten firma olmasından ziyade aynı zamanda çok başarılı ve güçlü programlama araçlarıyla da ünlü bir şirket. Ben de zamanında çok fazla ürününü kullanmış ve ara ara hala kullanan biri olarak söyleyebilirim ki gerçekten geliştirici camiasının ihtiyaçlarını çok iyi analiz eden ve buna göre çözümler üreten bir firmadır. Her neyse konumuza gelelim: Bu hafta tüm JetBrains IDE'lerine güncellemeler geldi. Benim ilgili olduğum bir IDE'ye gelen özelliklere birlikte göz atalım:

PHPStorm 2019.3

  • PHP 7.4 ile gelen bütün özelliklere destek (üstelik deprecate olacakları da gösteriyor),
  • PSR-12 Standardı desteği,
  • WSL (Windows Subsystem for Linux) desteği,
  • PHPDoc iyileştirmeleri,
  • Diğer özellikler için alt konu başlığına eklediğim bağlantıya tıklayabilir ya da aşağıdaki videou izleyebilirsiniz:

https://www.youtube.com/watch?v=h9KGsD87t_M

Diğer IDE güncellemeleri ise şu şekilde:

Windows Terminal Preview v0.7 yayınlandı

Microsoft'un açık kaynak camiasına açılmasından sonra yaptığı birkaç işi gerçekten severek takip ediyorum. Bunlardan birisi Visual Studio Code, diğeri ise Windows Terminal. Her ne kadar geliştirme yapmak için kullandığım dizüstü bilgisayarımda Windows kullanmasam da oyun bilgisayarı olarak kullandığım masaüstü sistemimde Windows var ve bazen orada da programlama testleri yapıyorum. Yeni Windows Terminal'i de WSL (Windows Subsystem for Linux) ile birlikte kullanıyorum. Bu hafta yeni bir ön izleme sürümü olan 0.7 sürümünü tanıttılar.

Benim de uzun zamandır ihtiyaç duyduğum bir terminal sekmesini birden çok parçaya bölme özelliği sonunda geldi, buna sevindim. Şimdiye kadar niye olmadığını hiç anlamadığım bir başka özellik de sekmelerin sırasını değiştirmekti ve o da bu sürümde geldi.

Bunların yanında sekmelerin isimlerini özelleştirme ve bazı görsel iyileştirmeler de katılmış durumda. Ne kadar ön izleme sürümü olsa da, Windows üzerinde programlama yapan arkadaşlara şiddetle tavsiye ederim.

Yaklaşan Etkinlikler:

Etkinlik İsmi Yeri Tarihi
Bulut Mimarisindeki Yapay Zeka Servisleri İstanbul 3 Aralık 19:00
BluTV Kubernetes & Microservices İstanbul 4 Aralık 18:30
Yazılım Sektöründe Korku, Kaygı ve Özgüven İstanbul 4 Aralık 19:00
Microprofile & Payara Micro & OpenShift İstanbul 5 Aralık 17:00
İTÜ İMK 12. Bilişim Teknolojileri Zirvesi İstanbul 6 Aralık 10:00
Python For Hackers Ankara 6 Aralık 19:00
5.Akdeniz Bilişim Zirvesi 2019 Antalya 7 Aralık 08:30
GDG DevFest'19 Eskişehir Eskişehir 7 Aralık 09:00
GDG DevFest'19 Sivas Sivas 7 Aralık 10:00
Ruby Türkiye Buluşması 7 İstanbul 7 Aralık 13:00
GDG DevFest'19 Bursa Bursa 8 Aralık 09:00
GDG DevFest'19 Hatay Hatay 9 Aralık 09:00
GDG DevFest'19 Kayseri [PDF Tanıtım Dosyası] Kayseri 9 Aralık
GDG DevFest'19 Düzce Düzce 11 Aralık 12:00
Flutter Interact İstanbul 11 Aralık 15:00
GDG DevFest'19 Trabzon Trabzon 13 Aralık 09:00
SharePoint Saturday Istanbul 2019 İstanbul 14 Aralık 10:00
GDG DevFest'19 Bolu Bolu 14 Aralık 10:00
GDG DevFest'19 Kocaeli Kocaeli 15 Aralık 09:30
Güncelleme Notu (2 Aralık 13:20): GDG DevFest'19 etkinliklerinin tümü listeye eklendi.

Diğer Haberler

BeğenFavori PaylaşYorum yap

Yazılım Gündemi - 18 (11-17 Kasım 2019)

< Önceki Gündem     |   11-17 Kasım 2019   | Sonraki Gündem >

Yazılım Gündemi ile ilgili gelişmeler hakkında bildirim almak için bu adresdeki konuya bakabilirsiniz. Yazılım Gündemine katkı sağlamak için yazılımın herhangi bir alanıyla ilgili karşılaştığınız haberleri sosyalde #YazılımGündemineMalzeme etiketi ile paylaşabilirsiniz.

GitHub Universe 2019 etkinliği gerçekleşti

GitHub'ın her yıl geleneksel olarak düzenlediği Universe etkinliği bu sene de, bu hafta içerisinde gerçekleşti. Etkinlik ABD'deki Kaliforniya eyaletinde gerçekleşti fakat aynı zamanda canlı yayın ile de tüm dünyaya yayınlandı. Ben etkinliği izleyemedim ama etkinlikle duyurdukları her şeyi toparladıkları blog yazısını inceledim ve sizlere birkaç tane geliştmeyi aktarmaya çalışacağım. Öyleyse başlayalım:

GitHub iOS uygulamasının Beta programı duyuruldu

Mobilden GitHub'a erişebilmek bazen benim de ihtiyaç duyduğum bir şeydi. Şu an zaten mobil tarayıcıdan GitHub'a girdiğinizde ona göre bir arayüz geliyor fakat yine pek kullanışlı değil. iOS uygulama mağazasında bazı üçüncü parti uygulamalar olsa da ben pek güvenemedim. Sonuçta tüm depolarımıza erişim izni veriyoruz. GitHub da bu alanda bir eksiklik hissetmiş olacak ki bu etkinlikle iOS uygulamasının beta sürecinin başladığını duyurdu. Android için ise yakında başlayacağını belirttiler. Duyar duymaz ben de hemen Beta için kayıt yaptım ve 3-4 gündür kullanıyorum. Siz de iOS uygulamanın beta programına kaydolmak için buraya; Android uygulamanın bekleme listesine kaydolmak için buraya tıklayabilirsiniz.

GitHub 1.0.0 Beta mobil uygulamasından görüntüler (iOS)

Kullandığım kadarıyla gayet güzel bir uygulama olmuş fakat şu an için eksikleri ve hataları mevcut. Örneğin hangi branch'da olduğumu göremiyorum ya da branch'lar arasında geçiş yapamıyorum (bence olması gereken bir özellik). README.md dosyalarındaki görsellerde de gözükmeme sorunu mevcut. Ayrıca gece moduna teması da mevcut. İşin ilginci GitHub web'de henüz gece modu teması yok. Umarım web sürümüne de gelir. Geceleri GitHub'ı açtığımda far görmüş tavşan gibi kalmak istemiyorum. Gerekli geri bildirimleri mail olarak gönderdim. Gerekli geliştirmeler devam edecektir.

GitHub Arşiv Programı duyuruldu

GitHub herkese açık depolarımızı 1000 yıl boyunca saklamak için hazırlanıyor. Birkaç ülkenin meyve ve sebze tohumları için yaptığı çalışmanın aynısını GitHub da kodlarımız için yapmak için kollarını sıvadı. Bu etkinlikte duyurulan bu programın amacı ise gelecek nesillere şimdiki zamanın programlama kültürü ile ilgili materyaller bırakmak. Bu sayede geleceğin tarihçileri ya da "dijital arkeolojist"leri bu depoları inceleyerek programlama kültürümüz ya da topluluklarımız ile ilgili bilgiler edinebilecekler ya da bambaşka amaçlar için kullanabilirler -kim bilir.

Elbette GitHub bu işi tek başına yapmıyor. Partnerlerin hepsini tek tek yazmak yerine programdaki rollerini açıklayarak ilerleyelim.

  • GitHub: Zaten tüm verileri sağlayan şirketin kendisi. GitHub neredeyse anlık olarak tüm depolara ait verileri API sistemi üzerinden erişilebilir şekilde diğer partnerler ile paylaşacak.
  • GHTorrent: GitHub'ın tüm herkese açık verilerini takip edecek ve bunları günlük ya da aylık formatlarda erişilebilecek şekilde saklayacak.
  • GH Archive: GHTorrent'e ek olarak bu hizmet aynı zamanda BigQuery kullanarak sorgulama özelliği de sunacak. Bu hizmetten de saatlik, günlük ya da aylık şekilde indirmeler yapabileceğiz.
  • Internet Archive: Zaten birçok farklı web sitenin eski hallerini saklayan bu hizmet aynı şeyi GitHub depolarının sayfaları için de yapacak ve bunlara git veya https üzerinden erişilebilecek.
  • Software Heritage Foundation: Aylık olarak GitHub'ı tarayacak ve herkese açık verileri kendi arşivine alacak.
  • Bodleian Kütüphanesi: Oxford Üniversite'ne bağlı bu kütüphane GitHub'daki en çok yıldız alan ve en çok proje tarafından kullanılan projeleri kendi depolarında (repo değil, fiziksel depo) film makaralarında saklayacak.
  • Arctic World Archive: 2 Şubat 2020 tarihinde alınacak tüm aktif herkese açık depoların görüntüleri (snapshot) yine film makaralarında, kuzey kutbuna çok yakın bir yerde uzun ömürlü olacak şekilde depolanacak.
  • Microsoft Project Silica: Her beş yılda bir olacak şekilde Microsoft Resarch takımı aktif ve herkese açık tüm depoları 10.000 yıl saklayabilecek quartz cam plakalara femtosecond lazer kullarak yazacak.

Gördüğünüz gibi bayağı büyük bir organizasyon şeklinde işleyecek bu program. Diğer detaylı ayrıntılar için GitHub'ın hazırladığı bu web sayfasını ziyaret edebilirsiniz. Açıkcası her ne kadar gelecekler kodlarımızın ne amaçla kullanılacağını bilmesek de program benim hoşuma gitti. Hatta güzel birkaç bilim-kurgu senaryosu da aklıma geldi konuyla ilgili.

Bloomberg kanalı ve GitHub şöyle bir video da hazırlamışlar kodların saklanacağı yer ile ilgili:

https://www.youtube.com/watch?v=nIKrG3-WpAk

Bu konuyla ilgili siz ne düşünüyorsunuz? Sizce gelecekte kodlarımız hangi amaçlar için kullanılabilir? Yorumlar bölümünde beyin fırtınası yapalım.

Etkinlikle duyurulan diğer birkaç gelişme ise şu şekilde:

Ayrıca bu hafta içerisinde GitHub'ın Kullanım Sözleşmesi ve Gizlilik Anlaşması da güncellendi.

Güncelleme Notu (18 Kasım 13:05): Konuyla ilgili video eklendi.

Mozilla, Bytecode Birliğini tanıttı

Tek amacı olmasa da en büyük amaçlarından biri olan JavaScript'e alternatif olması için geliştirilen WebAssembly programlama diline en çok katkı yapanlardan birisi olan Mozilla, topluluk için çalışmaya devam ediyor. Elbette birliği tek başına kurmadı. Şu an için birliğin içerisinde Fastly, Intel ve Red Hat firmaları var fakat daha çok firmanın da katılmasını bekliyorlar.

Günümüzde yazılım geliştirmenin evrildiği hal itibariyle üçüncü parti kütüphaneler olmadan bir yazılım çözümü üretmek neredeyse imkansız hale geldi. Elbette üçüncü parti kütüphaneler ya da araçlar kullanmanın kötü bir yanı yok, aksine açık kaynak topluluğu için çok faydalı da oluyor fakat bu sürecin sağlıklı olmayan bazı parçaları mevcut. Şöyle ki, kullanıcı bir uygulamayı sistemine kurduğunda ya da tarayıcısı üzerinden çalıştırdığında beraberinde o uygulamanın bağımlı olduğu tüm kütüphaneleri de sistemine indiriyor ve çalıştırıyor. Fakat uygulamayı çalıştırarak ona güvendiğini belirten bu kullanıcının, uygulamanın beraberinde getirdiği kütüphanelere ya da araçlara güvenmesi için bir neden yok (aslında geliştirici olarak bizim de güvenmemiz için bir neden yok). Bunun somut örneklerini önceki yazılım gündemi yazılarında çokça aktarmıştım (zararlı kod içeren 3.parti kütüphaneden, kötü amaçlı kişilerin ellerine geçmiş kütüphanelere kadar örnekler mevcut). İşte bu birliğin amacı da WebAssembly ekosistemi için tam olarak bu güven ortamını yaratmak.

Konu hakkında siz ne düşünüyorsunuz? Sizce de artık üçüncü parti kütüphane ve araçlara bakış açımızı değiştirme zamanı geldi mi? Sizin üçüncü parti kütüphane seçerken dikkat ettiğiniz şeyler neler? Yorumlar kısmında konuşalım.

OpenJDK kod tabanını GitHub'a taşımayı tartışıyor

Java'nın açık kaynak sürümü olan OpenJDK, bu sıralar çeşitli önerileri tartışmakla meşgul. Bunlardan bu sıralar gündemde olanları ise şu şekilde:

Bunlardan ilki şu sıralar birçok firmanın da uygulamaya başladığı yeni bir moda olan mono-repo sistemine geçmeyi öneriyor. Yani tüm kod tabanının büyük tek bir depoda tutulduğu yapı. İkincisi ise Git'den daha önce de var olan bir versiyon kontrol sistemi olan Mercurial'den Git'e geçmeyi öneriyor ve sonuncusu ise bugün konuşacağımız tüm kod tabanının GitHub'a taşınmasını öneriyor. Fakat burada belirtmekte fayda var sadece kodların GitHub'a taşınması düşünülüyor; issue tracker, wiki vb. yapılar yine olduğu yerde kalacaklar.

Öneri metini bayağı ayrıntılı bir şekilde hazırlanmış. Aynı metinde yer alan "Hedefler" başlığındaki birkaç taşınma nedeni ise şu şekilde:

  • Geliştiriciler katkı yapmak için OpenJDK'ya özel bazı araçları kurmak zorunda kalmayacaklar,
  • Commit öncesi kontroller çalıştırabilme,
  • Mevcut e-posta tabanlı iş akışlarının benzerlerini desteklemesi,
  • GitHub'ın erişilebilirlik özelliklerinden faydalanabilme

gibi özellikler OpenJDK takımını cezbeliyor. İlgili önerilerin metinlerini içeren sayfaları yukarıda maddeler hallinde bağlantı olarak ekledim. Daha detaylı bilgi için oraları kontrol edebilirsiniz.

Sourcehut, 2019 yılı özetini yayınladı

Günümüzde artık bir versiyon kontrol sistemi olmadan geliştirme yapmak imkansız olmasa bile çok zor. Çoğumuz da artık versiyon kontrol sistemi olarak Git'i varsayılan olarak kullanmaya başladık. Hatta proje klasörünü oluşturduktan sonraki ilk işimiz git init komutunu çalıştırmak oluyor. Bu lokal Git depolarından ziyade çoğumuz artık kodlarımızı bir uzak Git sunucusunda da tutmak istiyoruz. Bunların en popülerleri ise GitHub ve GitLab gibi büyük oyuncular. Fakat ben bugün size pek gündemde olmayan, ilk yazılım gündemi yazısını okumadıysanız muhtemelen ilk kez duyacağınız farklı bir uzak kod sunucusundan, Sourcehut'dan bahsetmek istiyorum. Çünkü bu hafta 15 Kasım tarihinde Alpha sürecine girmesinin birinci yılı şerefine bir blog yazısı yayınlandı.

Sourcehut aslında sadece bir uzak kod sunucusu değil; günümüz uygulama geliştirme süreçlerinde sürekli ihtiyaç duyduğumuz şu hizmetleri de olan komple bir proje yönetim sistemi diyebiliriz:

  • Kodlarınızı depolayabileceğiniz: git.sr.ht,
  • Çeşitli testleri belirli aralıklarla çalıştırabileceğiniz Continuous Integration sistemi: builds.sr.ht,
  • Yapılacaklar listesi ve hata bildirimi gibi şeyler için: todo.sr.ht,
  • Mail listesi için: lists.sr.ht,
  • Rehber ve Wiki sayfaları hazırlamak için: man.sr.ht

ve tüm bu çözümleri arayüzü gibi sade olarak sunmaya çalışan bir site. Elbette tüm bu sistemler özgür yazılım lisanslarıyla geliştiriliyor.

Bir yıl içerisinde Sourcehut'daki gelişmelerin bir kısmı ise şu şekilde:

  • Code Annotations özelliği (bkz: Yazılım Gündemi - 1),
  • builds.sr.ht'de çalışan testlerin olduğu sanal makineye debug yapmak için ssh ile bağlanabilme,
  • todo.sr.ht üzerindeki ticket sistemi olgunlaştırılmış,
  • ilk çalışan işe alınmış

Diğer gelişmeler ve 2020 yılından beklentiler için mutlaka konu başlığına eklediğim blog yazısını inceleyin. Ben şahsen bu projeyi çok önemsiyorum ve ileride imkanım olduğunda maddi olarak da destek olmaya çalışacağım.

Yaklaşan Etkinlikler

Etkinlik İsmi Yeri Tarihi
Open Source Yazılım Geliştirme İstanbul 20 Kasım 18:30
Tüm İnterneti Nasıl Cache'leriz? Olasılıksal Veri Yapılarına Yolculuk İstanbul 20 Kasım 19:00
How to Get Better at Writing CSS İzmir 20 Kasım 19:00
KWORKS İnovatif Endüstriyel IoT Uygulamaları Paneli İstanbul 21 Kasım 18:00
Web Uygulama Güvenliği ve Bug Bounty Ankara 21 Kasım 19:00
SAP Inside Track Istanbul 2019 Part II İstanbul 23 Kasım 09:00
GDG DevFest İzmir '19 İzmir 23 Kasım 09:00
"Kubernetes Native" Uygulama Geliştirme İstanbul 23 Kasım 13:00
GDG DevFest İstanbul '19 İstanbul 24 Kasım 09:00
Gelişen Teknoloji Günleri'19 İstanbul 26 Kasım 09:30
Digitalzone Meetups: 26 Kasım Buluşması İstanbul 26 Kasım 19:00
Sosyal Mühendislik Saldırıları ve Korunma Yöntemleri İstanbul 27 Kasım 19:00
Yapay Zekada Bias Çalıştayı İstanbul 30 Kasım 09:30
Açık Hack Gebze/Kocaeli 30 Kasım 12:00

Güncelleme Notu (17 Kasım 2019 23:43): GDG İstanbul etkinliği tabloya eklendi.

Diğer Haberler

BeğenFavori PaylaşYorum yap

Yazılım Gündemi - 17 (4-10 Kasım 2019)

< Önceki Gündem     |   4-10 Kasım 2019   |     Sonraki Gündem >

Yazılım Gündemi ile ilgili gelişmeler hakkında bildirim almak için bu adresdeki konuya bakabilirsiniz. Yazılım Gündemine katkı sağlamak için yazılımın herhangi bir alanıyla ilgili karşılaştığınız haberleri sosyalde #YazılımGündemineMalzeme etiketi ile paylaşabilirsiniz.

GitLab, önemli pozisyonlar için ülke kısıtlamasına gitmeyi tartışıyor

Aslında tartışma yeni değil ilgili issue sayfasında da görülebileceği üzere yaklaşık 3 hafta önce başlamış fakat yeni gündeme geliyor. Tartışmanın başlama nedeni ise kurumsal müşterinin veri güvenliklerine ilişkin ilettiği kaygılar. Bu doğrultuda GitLab da, Rusya ve Çin gibi ülkelerden şu iki pozisyon için insan kabul etmeyecek: Site Güvenilirlik Mühendisi (Site Reliability Engineer) ve Destek Mühendisi (Support Engineer). Ayrıca bu engelleme, güvenlik takımını da etkiliyor. Bu iki pozisyondaki kişiler müşterilerin tüm verilerine erişebiliyormuş. Bu nedenle, ilgili ülkelerdeki kişilerin bu rollerde olması istenmiyor.

Çalışanların yaşadığı ülkelere göre izin sisteminin oluşturulması da ilgili kişiler için bir "ikinci sınıf vatandaş" algısı oluşturup, kendilerini rahatsız hissetmelerine yol açacağı için istenmiyor. Şimdilik en "insani" çözümün bu olduğunu söyleyen GitLab yetkilisi, şu anda bu engelleme kabul edilirse bu yolla hiçbir çalışanın etkilenmeyeceğini de belirtiyor.

Bu ülkelerden ilgili pozisyonlarda insan kaynağını alınmamasının yanı sıra eğer bu konu kabul edilirse mevcut çalışanlar da bu listedeki ülkelere taşınamayacaklar. Eğer taşınmak isterlerse işten ayrılmak zorunda kalacaklar.

Diğer açıdan bakacak olursak ismi geçen ülkelerin casusluk faaliyetleri de sürekli gündemde olduğu için (hatta bu tartışma da yine Çin'in siber ajanlarıyla ilgili bir raporun yayınlanmasından sonra başladı) kurumsal müşterilerin kaygıları da çok haksız sayılmaz. Üstelik bu engelleme yavaş yavaş bir sektör pratiği haline de gelmeye başlamış. Maalesef kurunun yanında yaş da yanıyor.

Bu hafta boyunca HackerNews ve Reddit gibi bir çok platformda tartışılan bu konu elbette ilgili issue sayfasında da tartışılmaya devam etti. Bu tartışmalar sırasında Candice Ciresi isimli GitLab'ın Global Risk ve Uyum Direktörü de aynı issue içerisinde istifa ettiğini paylaştı fakat sonra bu yazı GitLab tarafından kurallara uymadığı gerekçesiyle kaldırıldı. Yani bir nevi sansür uygulandı. GitLab böyle bir davranış sergilemeseydi, "müşterilerinin kaygılarını gidermeye çalışıyor" gözüyle bakmaya devam edecektim fakat böylesi sansürcü bir yaklaşımı GitLab'a yakıştıramadım.

Candice Ciresi'nin ilk gönderdiği mesaj (bir takipçiye giden mail)

GitLab'ın müdahalesi

Daha önceki yazılım gündemi yazılarından birinde de dediğim gibi, artık internete bağlandığın konumun bir önemi olmadığı dönemler eskide kaldı (belki de öyle bir dönem hiç olmadı, ambargo uygulanan bir ülkede olmadığımız için biz fark edemedik), günümüzde maalesef hangi ülkeden internete çıktığın önemli konulardan biri haline geldi.

Siz bu konuda ne düşünüyorsunuz? Böyle bir engelleme o ülkelerde yaşayan ya da vatandaşı olan kişilere haksızlık mı, yoksa günümüz siber güvenlik çağında bir mecburiyet mi? Yorumlar kısmında konuşalım.

GitHub Sponsors özelliği 30 ülkede betadan çıktı

Yaklaşık 6 ay önce GitHub, Sponsors özelliğini beta olarak duyurmuştu. Bugün ise yeni bir blog yazısı ile bu özelliğin 30 ülke için beta'dan çıktığını duyurdular. Ülkelerin listesine bu adresten bakabilirsiniz fakat sizi yormadan ben söyleyeyim, Türkiye bu ülkeler arasında değil.

GitHub'ın yeni Sponsors özelliği için aslında bir nevi dahili Patreon sistemi diyebiliriz. Aynı Patreon'da olduğu gibi kullanıcılar destek olmak istedikleri projelere abonelik yöntemi ile 'sponsor' oluyorlar. Proje sahipleri isterlerse farklı abonelik seviyeleri (ayda 1 dolar, ayda 5 dolar vb.) de oluşturabiliyor.

Eğer betadan çıkan 30 ülkenin birinde değilseniz, sizin ülkenize geldiğinde haberdar olmak bekleme listesine kayıt olup, Beta programı için başvuru yapabilirsiniz. GitHub, "resmi olarak varlık gösterdiğimiz diğer ülkelerde de bu özelliği açmak için çalışıyor" diyor fakat Türkiye'de resmi olarak varlar mı, bilgim yok ama umarım ülkemiz için de aktif olur.

Beta programındaki bazı proje sahipleri de şöyle bir kutlama videosu çekmişler:

https://www.youtube.com/watch?v=e_zhHQXTwVo

Güzel bir özellik, umarım açık kaynak ve özgür yazılım topluluğunun gelişmesine vesile olur.

Düzeltme Notu (11 Kasım 2019 10:11): Video bağlantısını yanlıştı, düzeltildi.

GitHub yıllık Octoverse raporunu yayınlandı

GitHub, her yıl olduğu gibi bu yıl da GitHub'da 1 yıl boyunca olan bitenleri rapor haline getirdi ve yayınlandı. Bu hafta bir blog yazısı yazarak yeni Octoverse raporlarını duyurdular. Şimdi isterseniz rapordan birkaç başlığı birlikte inceleyelim:

Topluluk

2019 yılı boyunca:

  • GitHub'a toplam 10 milyon yeni kullanıcı katılmış ve toplam da 40 milyon üzeri kullanıcı sayısına çıkılmış.
  • 44 milyon yeni depo yaratıldı ya da "fork" edildi ve 2018'e göre %44 daha fazla geliştirici ilk deposunu yarattı
  • 87 milyon pull request kabul edilmiş ve 2018'e göre %28 daha fazla geliştirici ilk pull request'ini oluşturmuş.
  • 20 milyon issue kapatılmış.
  • 2.9 milyon organizasyon sayfası oluşturulmuş.
Ülkeler

En çok açık kaynak kullanan (fork ve clone sayısına göre) ülkeler

 

Açıkcası bu sıralama beni şaşırttı çünkü önceki yazılım gündemi yazılarından hatırlayacağınız üzere GitHub, Amerika'nın yaptırımlarını uygulamaya başlamış ve İran'lı geliştiricilerin hesaplarına bazı kısıtlamalar getirmişti (bkz: Yazılım Gündemi - 3). Buna rağmen İran'ın bu listede ikinci sırada yer alması şaşırtı beni. Gerçi bu olay Temmuz ayında gerçekleşti ama demek ki bu olaydan önce yaratılan açık kaynak depolar bile %44 oranını sağlamış.

Sağdaki sıralama da beni bir o kadar şaşırttı. Ne yalan söyleyeyim listede Türkiye'yi görmeyi beklemiyordum. Diğer ülkelere göre alt sıralarda olsak da, açık kaynağa katkı yapanlar sayısındaki artış sevinmeme yetiyor. Umarım ilerleyen yıllarda daha da artar.

Programlama Dilleri

Gelelim popüler ilk 10 programlama dilleri sıralamasına. JavaScript 2014'den beri gelen liderliğini koruyor fakat Java, "İkinci en popüler programlama dili" unvanını Python'a kaptırıyor. PHP ise dördüncülük unvanını kimseye bırakmıyor. Listenin devamında ise C# ve C++ arasındaki çekişmeli mücadeleyi görmekteyiz. Ardından geçtiğimiz senelerde ilk 10'a girmeyi başaran TypeScript'in yerini koruduğunu görürken; Shell ve C arasında bir değiş tokuş gerçekleştiğini gözüküyor ve son olarak zaman içerisinde popülaritesinin düşüşüyle beni şaşırtan Ruby dilini onuncu sırada görmekteyiz.

Burada şu uyarısı yapmadan geçemeyeceğim: Bu listelerin projenize uygun dili seçme aşamasında sizi etkilemesine izin vermeyin. Sonuçta programlama dilleri birer araç ve biz de yapacağımız işe en uygun aracı seçip onu kullanıyoruz. Sırf popüler diye bir programlama dilini seçmek ileride teknik anlamda sizi zora sokabilir.

Microsoft, Visual Studio Online hizmetini duyurdu

Yaklaşık birkaç senedir uzaktan kod yazmaya olanak sağlayan hizmet ve araçların sayısındaki yükseliş gözüme çarpıyordu ki Microsoft da bu alanda bir şeyler görmüş olacak ki Visual Studio Code yazılımını, Visual Studio Online olarak uzaktan tarayıcı üzerinden çalışacak hale getirmiş ve Azure ekosistemine yeni bir parça daha eklemiş.

Denemek için online.visualstudio.com adresinden bir geliştirme ortamı oluşturmaya çalıştım fakat aktif bir Azure aboneliği istiyor. 1 aylık bedava Azure aktifleştirmeye çalıştım fakat o da kredi kartı bilgileri isteyince vazgeçtim. Aslında bu yıl içerisinde yayınlanmış ve sonradan coder.com isminde bir girişime dönüşmüş, şu açık kaynak çözüm de sanırım fikir vermesi açısından denenebilir: https://github.com/cdr/code-server. Sonuçta Microsoft'un kendisi de yine VS Code yazılımının alt yapısını kullanarak bu hizmeti oluşturdu. Yalnız şöyle bir şey var, ben Firefox ile açmaya çalıştığımda çok kısa bir "tarayıcınız şimdilik desteklenmiyor" deyip hemen ana sayfaya yönlendirdi. Chrome ile deneyince açıldı. İlginç…

Yalnız bu yeni hizmetin ismi konusunda biraz kafam karışık. Microsoft'un zaten Visual Studio Online isminde bir GitHub ve GitLab benzeri kod barındırma hizmeti sunduğu bir servisi vardı. [kullanıcı-adı].visualstudio.com şeklinde bir alan adresi veriyordu ve orada aynı GitHub gibi kodlarınızı barındırıp, issue açıp, proje yönetebiliyordunuz. Hatta ben 2013 yılında birtakım projelerim için kullanıyordum fakat görünen o ki Microsoft, bu isimi daha çok uygun olan bir projeye aktarmış. Benim kullandığım hizmetin ismi de Azure DevOps olmuş sanırım. Gerçi emin de değilim uzun zamandır Microsoft teknolojilerinden uzak olduğum için bu isim değişikliğinden haberim olmamış da olabilir.

Bu konu hakkında siz ne düşünüyorsunuz? Bu şekilde geliştirme ortamınızı buluta taşımak ister misiniz, yoksa "yok arkadaş ben kendi bilgisayarımda tutarım her şeyimi" diyenlerden misiniz? Ben şahsen ikincisiyim. Belki biraz geri kafalılık da sayılabilir bilmiyorum ama tarayıcı üzerinden kod yazmak bana biraz garip geliyor. Ayrıca Levent Abi'nin söylemini tekrar hatırlatmakta fayda var: "Bulut dediğin başkasının bilgisayarıdır. Bir gün gelir de, 'sana hizmet vermiyorum' derse kalırsın öyle ortada" (bkz: Yazılım Gündemi - 3 / İlk Konu). Bu doğrultuda endişelerimin de haklı olduğunu düşünüyorum.

Git 2.24 sürümü duyuruldu

Artık versiyon kontrol sistemlerinin lideri haline gelen Git, bu hafta içerisinde 2.24 numaralı sürümünü duyurdu. Birkaç değişikliği birlikte inceleyelim:

Yeni özellik makroları

Git çok uzun zamandır hem global hem de sadece depo bazında ayarlar yapmamıza izin veren git config ile kullandığımız ayar alt sistemine sahip. Hem kendinizi tanıtmak için hem de bazı özellikleri açıp kapatabilmek ya da özelleştirmeler yapabilmek için .gitconfig isimli dosyası komut yardımıyla ya da elle düzenlememiz gerekiyor. Fakat bazen yeni gelen bazı özellikleri keşfetmek ve ayar yapmak bazen fazla zaman alıcı olabiliyor. Bu yüzden artık Git geliştiricileri bazı yeni özellikler için makro sistemi geliştirler ve şöyle bir komut ile özellikleri açıp kapatabileceğiz:

$ git config feature.manyFiles true

Bu komutu çalıştırdığınızda Git sizin için o özellikle ilgili ayarları düzenliyor. Bu makrolar Git geliştiricileri tarafından önceden belirlenmiş olarak geliyor.

Tarihçeyi yeniden yazmak için alternatif araçlar

Projelerde çalışırken, her ne kadar yapılması tavsiye edilmese de bazen belirli nedenler ötürü Git tarihçesini yeniden yazmamız gerekebiliyor. Mesela bir dosyayı tüm commit'lerden silmek gibi. Şimdiye kadar bunun için git
filter-branch
aracı kullanıyorduk, fakat bu aracın kullanımı biraz karışık olabiliyordu. Bu nedenle Git geliştiricileri yeni bir araç geliştirdiler: git
filter-repo
. Bu araç ile:

  • git filter-repo --analyze komutu ile artık depomuz hakkındaki bazı ölçümlerle ilgili bilgiler alabileceğiz. Mesela kaç tane obje olduğu, en büyük dosyaların ya da klasörlerin hangileri olduğu gibi. Bunun gibi bilgiler veren başka bir araça göz atmak isterseniz: git-sizer
  • --path-{glob-regex} ile artık tarihçeyi sadece belirli bir dizin için değiştirken glob ve regex kullanabileceğiz.
  • Diğerine göre daha genişletilebilir bir araç olduğu için artık kendimiz bazı alt komutlar ekleyebileceğiz. Demo için şu adresdeki depoya göz atabilirsiniz: newren/git-filter-repo

Diğer özellikler ve yenilikler için GitHub'ın yayınladığı bu blog yazısı çok faydalı olabilir. Ben de bundan faydalandım.

Google, Android 11'de AsyncTask API'sini kaldırmaya hazırlanır

Asenktron işler, programlamanın hemen her alanında işimize çok yarayan ve gerekli olan yapılar. Çünkü bir web sunucusundan veri çekerken kullanıcıların ekranlarını dondurmak istemeyiz. Android tarafında da bu tarz asenkron işler için Google tarafından sisteme eklenmiş bir API var. Android geliştirmede pek deneyimim olmasa da xda-developers sitesindeki yazıdan anladığım kadarıyla bu API biraz sorunluymuş. Şöyle ki bazı durumlarda asenkron iş tamamlandığında uygulamanın ilgili görsel tarafı artık var olmayabilir (kullanıcı başka bir ekrana geçmiştir vs.) fakat AsyncTask API'si bunu kontrol etmediği için uygulamanın çökmesine yol açabiliyor. Elbette siz manuel olarak bazı kontroller ekleyebilirsiniz ama bu sefer de kod tekrarı gibi şeyler oluşabiliyor. Bu gibi nedenlerden dolayı Google da, sanırım fazla da kullanılmayan bir API olduğu için, bunu deprecate etmeye karar verdi. Bu ifadeyi Türkçe'ye tam nasıl çeviririz bilemiyorum ama biraz açmak gerekirse: API tam olarak kaldırılmayacak ama artık desteklenmeyecek ve kullanılması da tavsiye edilmeyecek. Zaten xda-developers sitesindeki yazıdan anladığım kadarıyla pek tercih edilen de bir API değilmiş. Android geliştirici arkadaşlar da doğrulayabilirler sanırım. Çoğu geliştirici onun yerine daha esnek RxJava ya da Kotlin tarafında Coroutines kütüphanelerini kullanıyor.

Android geliştiricisi arkadaşlar için pek büyük bir kayıp sayılmasa da kullanan arkadaşlar varsa artık yeni kütüphanelere geçmelerini tavsiye ederim.

Gradle 6.0.0 yayınlandı

Yazılım geliştirme süreçlerinin evrildiği hal itibariyle artık 3. parti kütüphaneler olmadan çözümler geliştirmek pek mümkün gözükmüyor. Haliyle biz de bu 3. parti kütüphaneleri ve derleme işlemlerini yönetmek için araçlara ihtiyaç duyduk. İşte Gradle da bu araçlardan birisi. Her ne kadar C++ ve JavaScript gibi dillerde desteği olsa da daha çok Java ekosisteminde ve Android uygulama geliştirme alanlarında daha çok tercih edilen bir araç. Bu hafta itibariyle de 6.0.0 sürümünü duyurdu. Bu sürümde duyurulan bir değişikliği birlikte inceleyelim:

Java ve Groovy için daha hızlı derleme

Direkt bir örnekle açıklamak gerekirse:

class A {}

class B {
    static void foo() {
        A a1 = new A();
    }
}

class C {
    void bar() {
        B.foo();
    }
}

Buradaki her sınıfı ayrı bir dosya olarak düşünün. Gradle'ın önceki sürümlerinde A sınıfında bir değişiklik olduğunda tüm diğer dosyalar da yeniden derleniyordu fakat artık sadece A ve B sınıfları derlenecek. Çünkü A sınıfın değişmesi C sınıfını doğrudan ilgilenmiyor. O sadece B sınıfındaki bir fonksiyonu çağırıyor. Böylece derlenecek dosya sayısındaki azaltma da derleme hızlarını olumlu olarak etkiliyor.

Diğer özellik ve değişiklikler için konu başlığına eklediğim bağlantıya tıklayabilirsiniz.

Visual Studio Code Ekim 2019 sürümü duyuruldu

Anket: Türkiye Açık Kaynak Platformu Talep Analizi Anketi

Türkiye Açık Kaynak platformu çalışmaları devam ediyor. Konu başlığına eklediğim ankete katılarak fikir ve önerilerinizi paylaşabilirsiniz. Türkiye Açık Kaynak Platformu hakkında ümitliyim, umarım yakın zamanda bir şeyler ortaya çıkar.

Yaklaşan Etkinlikler

Etkinlik İsmi Yeri Tarihi
2020 ve Sonrası için Yazılım Test Trendleri Ankara 14 Kasım 14:00
Flutter ile İlk Mobil Uygulamanızı Yazın İstanbul 15 Kasım 19:00
Cyber Security Summit İstanbul 16 Kasım 09:00
TensorFlow World Extended Ankara Ankara 16 Kasım 13:00

Diğer Haberler

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 9 / 11
  • Murat Şentürk @senturkmurat1999

    https://teknoseyir.com/durum/1170656#comment-4174849 bugün atmanız manidar oldu. Keşke bir de anlasam. Çok kaliteli bir içerik. Başlığı C ile yazmanız mutlu ediyor ama 🙂 .

  • Mustafa Sakallı @swish41

    Ruby'ye üzülüyorum, iyice rails-script oldu çıktı.

  • Serdar @serdaracikyol

    Visual Studio Online aslında Visual Studio Code'un online hali. Çok uzun olur diye mi attılar acaba "Code" kısmını. Visual Studio Online deyince asıl Visual Studio'nun online ı gibi olmuş.

    Ayrıca Visual Studio Code'da electron tabanlı, appstore'da var mı bilmiyorum ama onun da atılacağı anlamına geliyor sanırım bu.

  • Outrun @outrun

    Yüksek lisans tezimi word gibi WYSIWYG bir program yerine LaTeX ile yazmaya karar verdim. Koca tezi bir online LaTeX editörü olan overleaf.com ile browserdan yazdım. Kurulumla falan uğraşmamak yeni başlayanlar için iyi oluyor. Bir de en güzel özelliği pc değiştirince kaldığın yerden devam edebilmek. Evet cloud başkasının bilgisayarı ama avantajları da yok değil. Bilgisayar beklenmedik bir şekilde aniden kapanırsa yaptığınız işi kaybetmemiş de oluyorsunuz.

    Yani şunu demek istiyorum; ücretsiz olsaydı online vs code denerdim ben şahsen 😀

    • Eren Hatırnaz @erenhatirnaz

      Katılıyorum. Cloud'un da avantajları var ve günümüz için önemli avantajlar, özellikle portable olması, cihaz bağımsız olması çok büyük kolaylık ama ne bileyim, son GitHub olaylarından sonra bir türlü içimdeki endişeyi atamadım. İlgili Cloud hizmetin bulunduğu ülkeyle herhangi bir siyasi anlaşmazlık durumunda yaptırım uygulanması ve firmalarında bunu uygulamak zorunda kalmalarından doğan durumlar endişendiriyor beni. Sanırım ilerde benim çözümüm kendi evimde Raspberry Pi vb. bir şey ile kendi cloud sistemlerimi kurmak olacak. Ha yine tarayıcı üzerinden kod yazmam büyük ihtimal, bana biraz garip geliyor, nedenini bilmediğim şekilde.

    • Outrun @outrun

      @erenhatirnaz Amerika veya Avrupa'da yaşıyor olsam kesin aylık 20 birim paramı bir VPS'e harcardım. Siyasi bir sorun olma ihtimali de az oralarda 😀 Github öğrenci paketinden 50 dolarlık digitalocean bakiyesi almıştım ama bu ay sonunda bitiyor maalesef 🙁

    • Serdar @serdaracikyol

      Koding zamanında denemişti bu tarz bir sistem. Nedense açık kaynak olarak devam etmeye başladılar. Aslında kendi sunucunuza kurarak kullanılabilir.

Yazılım Gündemi - 16 (28 Ekim - 3 Kasım 2019)

< Önceki Gündem     |   28 Ekim - 3 Kasım 2019   |     Sonraki Gündem >

Yazılım Gündemi ile ilgili gelişmeler hakkında bildirim almak için bu adresdeki konuya bakabilirsiniz. Yazılım Gündemine katkı sağlamak için yazılımın herhangi bir alanıyla ilgili karşılaştığınız haberleri sosyalde #YazılımGündemineMalzeme etiketi ile paylaşabilirsiniz.

Notepad++ 7.8.1 sürümünü "Free Uyghur" ismiyle çıkardı

Notepad++ her ne kadar doğrudan bir programlama aracı olmasa da hızlı çalışmasından dolayı Windows ortamında tercih edilebilen bir metin editörü. Geliştiricisi Don Ho, bu hafta duyurduğu 7.8.1 sürümünün ismini, Çin'de Uygur Türklerine uygulanan 'yeniden eğitim kampları'na dikkat çekmek için "Free Uyghur" ("Uygurlara özgürlük") koydu.

29 Ekim tarihinde yayınladığı blog yazısında Çin devletinin yaptığı insan haklarına aykırı şeylerden bahsetmekle kalmamış, oradaki insanlara nasıl yardım edilebileceği ilgili de bilgi vermiş. Fakat benim özellikle dikkat çekmek istediğim kısım yazısının son paragrafı, Türkçe'ye çevirecek olursak:

İnsanlar bana tekrardan "programlamayı ya da işi siyaset ile karıştırma" diyecekler. Bunu yapmak kesinlikle Notepad++'ın popülaritesini etkiler: Siyaset hakkında konuşmak, yazılım ve ticari şirketlerin genellikle kaçınmaya çalıştığı şeydir. Problem şudur ki: Eğer biz siyaset ile uğraşmazsak, siyaset bizimle uğraşır. İnsanlar ezildiğinde hareket etmemeyi seçebilirsiniz, ama ezilme sıramız geldiğinde, çok geç olacak ve bizim için kimse olmayacak. Harekete geçmeniz için Uygur ya da Müslüman olmanız gerekmiyor, sadece insan olmak ve bazı insanlarla empati kurabilmek yeterli.

Çok iyi çevirememiş olabilirim (yanlış çevirdiğimi düşündüğünüz yerleri yorumlar bölümünde belirtebilirsiniz) fakat vermek istediği mesajı anlamak için yeterli olduğunu düşünüyorum. "Biz siyasetle uğraşmazsak, siyaset bizimle uğraşır" sözünü ben en iyi 2016 yılında anlamıştım. Berat Albayrak'ın maili hackleyen RedHack grubu, mailleri GitHub'a yükleyince GitHub 1 gün boyun boyunca yasaklı kaldı. Görüyorsunuz, siz ne kadar siyaset ile ilgilenmemeye çalışsanız da bir şekilde geliyor buluyor sizi. İster programlama, ister bilim yapıyor olun. İşte bu yüzden "açık kaynak" yerine "özgür yazılım" hareketini destekliyorum. Don Ho'nun blog yazısındaki bu son paragrafı gerçekten çok önemli. Bunları hiç çekinmeden dile getirmesinden dolayı geliştirici arkadaşı kutlamak gerek. Böyle insanların var olduğunu bilmek dünyaya dair umutlarımı bir nebze olsun yeşertiyor. Bu konu hakkında siz ne düşünüyorsunuz? Sizce yazılım ve siyaset birbirinden tamamen ayrı konular mı yoksa sürekli olmasa da birbirlerini etkileyen şeyler mi? Yazılımcılar olarak ne kadar ilgilenmeliyiz bu konularla? Yorumlar kısmında konuşalım.

Çinlilerin spam saldırısı

Bir nebze olsun umut yeşerten insanlardan ziyade maalesef aynı dünyada olduğumuzdan dolayı utanç duyacağımız insanlar da var. Bu blog yazısının yayınladığı saatten sonra Notepad++ projesinin GitHub sayfasının Issues bölümü birçok Çinli vatandaş tarafından spam yağmuruna tutuldu. "Çin'de öyle şeyler yapılmıyor" diyenden tut da, bayağı küfürlü mesajlar yazanlara kadar yüzlerce hatta binlerce spam issue sayfası açıldı. Ne söylenebilir ki bu insanlar için… (aslında söylenebilecek bazı şeyler var da burası yeri değil)

İspanya'nın isteği üzerine GitHub protestocuların kullandığı uygulamanın deposunu kaldırdı

İspanya'nın Barcelona kentinde yaklaşık bir aydır devam eden protestolar var. Bu protestoların sebebi ayrıkçı Katalan liderlerinin ve Katalonya'nın bağımsızlığını destekleyenlerin tutuklanması. Bu haberin yazılım gündemine girmesinin sebebi ise, kendilerine Tsunami Democrátic diyen aktivist bir grubun protestocuların kullanması için geliştirdiği bir mobil uygulamanın GitHub'dan, hükumet istediği doğrultusunda silinmesi. Bunu da GitHub'ın, hükumetlerden kendisine gelen kapatma isteklerini paylaştığı deposundan öğreniyoruz. Görüyoruz ki, Rusya ve Çin ülkelerinin arasına bir de İspanya eklenmiş.

Tsunami Democrátic grubunun github üzerinde barındırdığı web sitesi yayında kalmaya devam ediyor (İspanya'da engellenmiş, biz görebiliyoruz) fakat uygulamanın APK dosyasının olduğu depo, GitHub tarafından silinmiş. İlgili aktivist grup da bu sefer kendilerine başka bir yol bulmuşlar: bir telegram kanalı hazırlamışlar ve APK dosyasını oradan dağıtıyorlar.

Android 11'de kablosuz bağlantı üzerinden ADB desteği gelebilir

Android Debug Bridge (ADB) isminden de anlaşılacağı üzere, Android uygulama geliştirirken hata ayıklama ve diğer birçok farklı işlem için kullanabileceğiniz Android geliştiricinin takım çantasında mutlaka olması gereken bir araç. Android geliştirme ile çok az deneyimim olsa da Android Debug Bridge (ADB) aracının Android geliştiriciler için ne kadar önemli olduğunu biliyorum. Bu özellik henüz sadece USB bağlantı üzerinden kullanılabilir fakat bazı geliştiriciler hem kablo ile uğraşmamak için hem de birden fazla cihazda geliştirme yaparken kablosuz olarak da bu özelliği kullanmak istiyor. ADB aracı buna izin veriyor fakat yine ilk bağlantı için USB'yi bağlayıp sonra kablosuz olarak devam etmek ve birden fazla cihazla çalışıyorsanız da her cihaza sabit bir IP adresi vermek gerekiyor-ki router kapatıp açılınca lokal IP adresler de değişmesin. Üstelik bu yöntem hiç de güvenli değil, çünkü bağlantı TCP/IP protokolü üzerinden şifresiz bir şekilde düz metin olarak kuruluyor. Dolayısıyla güvenmediğiniz ağlarda kullanamıyorsunuz.

Bu hafta xda-developers sitesindeki bir üyenin fark etmesiyle anlaşıldı ki bir google çalışanının bu özellikle ilgili commit'ler yapmış. İlgili commit'ler şu şekilde:

Commit mesajlarından ve içeriklerinden anlayabileceğiniz üzere Google'da bu yönde bir çalışma var. Androd'in Geliştirici Ayarları kısmına "Wireless debugging" anahtarı eklenmiş ve üstelik güvenli olabilmesi için de kablosuz bağlantı kurulurken QR kod ya da 6 haneli bir kod ile eşleşme gerekli olacak gibi gözüküyor. Fakat Android geliştirici arkadaşların hemen heyecanlanmasını tavsiye etmiyorum. Çünkü değişiklikler henüz merge edilmemiş gözüküyor. xda-developers sitesindeki geliştiricilerin de Android 11'de bu özelliğin kullanıma sunulmasını umuyorlar fakat bekleyip görmek gerek. Umarım Android geliştirici arkadaşların işlerini kolaylaştıracak bu özellik yakın zamanda gelir.

Python, 3.9 sürümünden sonra yıllık sürüm döngüsüne adapte olacak

30 Ekim tarihinde yönetim kurulu üyesi Brett Cannon'un Python geliştiricileri e-posta grubuna gönderdiği maile göre daha önce Łukasz Langa tarafından önerilen PEP 602 - Annual Release Cycle for Python önerisi kabul edildi. İlgili önerinin sayfasında durumu henüz "Draft" (Taslak) olarak gözükse de gönderilen mailde kısa süre içinde sayfanın güncelleneceğini belirtilmiş. Daha önce de 18 aylık sürüm döngüsündeydiler.

Bu yeni döngüye göre artık herhangi bir Python 3.X.0 sürümü bu şekilde hazırlanacak:

  1. Python 3.X.0'ın geliştirilmesine, Python 3.(X-1).0 Beta 1 sürümü yayınlandığında başlanacak ve 5 ay boyunca bu süreç versiyonlama olmadan Pre-Alpha adı altında devam edecek.
  2. Sonrasında 7 aylık yeni özelliklerin Alpha sürümler olarak duyurulacağı periyot başlayacak. Her ay bir Alpha sürümü olacak şekilde toplamda 7 Alpha sürümü çıkacak.
  3. Sonrasında 4 aylık herhangi bir yeni özellik içermeyen Beta süreci başlayacak ve bu süreç boyunca kullanıcılardan gelen hata raporları incelenip onlar giderilecek.
  4. Sonrasında 1 aylık Release Candidate süreci başlayacak ve ayın bitiminde Python 3.X.0 final sürümü duyurulmuş olacak.

Yani herhangi bir Python 3.X.0 sürümü 17 ay içerisinde geliştirilecek ve sürümler halinde önümüze sunulacak. Yalnız gönderilen mailde Beta ve RC süreçleri ile ilgili birkaç değişiklik olabilir deniyor. Final sürümünden sonraki destek süreci de bu şekilde olacak:

  1. Final sürümden sonraki 18 ay (1.5 yıl) boyunca sürüm tam destek alacak.
  2. Sonraki 42 ay (3.5 yıl) boyunca ise sadece güvenlik güncelleştirmeleri alacak.

Herhangi bir Python 3.X.0 sürümünün yaşam döngüsü böyle olacak.

Bu takvim güncellemesinin nedenlerinin bir kaçı ise şu şekilde:

  • Sürümleri daha küçük yapmak.
  • Yeni özellikleri ve hata gidermelerini daha kısa sürede kullanıcıyla buluşturmak.
  • Kullanıcılara daha iyi bir sürüm güncelleştirme yolu sunmak.
  • Daha tahmin edilebilir bir güncelleme takvimi sunmak.
  • Diğer nedenler için ilgili PEP sayfasındaki Rationale and Goals başlığına bakabilirsiniz.

Projelerinde sıkça Python kullanan biriyseniz ya da Python üzerinden ürünler ya da hizmetler veren bir şirkette çalışıyorsanız gözünüz mutlaka bu PEP sayfasında olsun. İlgili değişikliklerden sonra bu PEP onaylanacak.

Ayrıca Python'ın yaratıcısı Guido van Rossum da en son çalıştığı Dropbox şirketinden ayrılmış ve emekliliğe ayrıldığını duyurmuş. Kendisine bundan sonraki yaşamında huzur ve mutluluklar dileriz.

Cloudflare Rust ile yazılmış NTS implementasyonunu duyurdu: cfnts

Geçtiğimiz aylarda Cloudflare'in, insanların pek fazla ilgilenmediği bir konu olan tarih/saat sunucularının güvenliği hakkında yeni bir servis açtığını paylaşmıştım sosyalde. Aynı gönderide Network Time Security (NTS) isimli yeni bir protokolün de ilerleyen aylarda duyurulacağından bahsetmiştim. İşte bu hafta o protokolün Rust ile implemente edilmiş hali duyuruldu. Ben de bunu fırsat bilerek biraz bu protokolün ayrıntılarından bahsetmek istiyorum.

NTS aslında yukarıda gözüktüğü gibi iki alt-protokolden oluşuyor. İlk Cloudflare'in geliştirdiği güvenlik katmanı olan Network Time Security Key Exchange (görselde "NTS-KE server" olarak geçiyor); ikincisi ise her bilgisayarın kullandığı bildiğimiz Network Time Protocol (NTP) servisinin son sürümü. Güvenli tarih/saat işlemleri yapmak için artık ilk NTS-KE ile konuşup bazı anahtarları alıp sonra NTP sunucusu ile konuşarak güncel tarih ve zaman bilgisini edineceğiz. Şöyle ki:

  1. İlk aşamada NTS-KE ile şu işlemler yapılır:
    1. Öncelikle NTS-KE sunucu ile TLS üzerinden güvenli bir iletişim kuruluyor. (Burası bildiğimiz HTTPS)
    2. İkinci aşamada kullanılacak AEAD algoritmasına karar verilir.
    3. İkinci protokole karar verilir. Şu an sadece NTPv4 ile nasıl alışacağı tanımlanmış.
    4. Tarih/saat bilgilerinin alınacağı NTP sunucusunun IP adresi ve portu belirlenir.
    5. İkinci aşamada kullanmak için çerezler oluşturulur.
    6. TLS oturumunda iki simetrik anahtar (C2S ve S2C) oluşturulur.
  2. İkinci aşamada ise NTP sunucusu ile:
    1. İstemci, NTS-KE tarafından verilen anahtarı (C2S) ve çerezleri kullanarak NTP sunucusuna tarih/saat bilgisi isteği gönderir.
    2. NTP sunucusu da yine bir anahtar ile (S2C) kullanıcıya güncel tarih/saat bilgilerini ve saklaması gereken yeni çerezleri güvenli bir şekilde ulaştırır.

Birinci aşama tamamlandıktan sonra artık ikinci aşama sürekli yeni güvenlik çerezlerini ileterek tekrarlanabilir. Tarih/saat sunucuları özellikle para transferi gibi kritik işlerde çok büyük öneme sahip, bu yüzden de bu katmanın güvenliği çok önemli. Bahsetmeden geçmek istemedim.

Mozilla, klasörden eklenti yükleme seçeneğini kaldırmaya hazırlanıyor

Firefox ve birçok modern tarayıcıda eklenti desteği artık olmazsa olmazlardan. Bu eklentiler tarayıcıların kendi market sistemleri dışında eklentinin sıkıştırılmış halini indirip onu tarayıcının kurulu olduğu dizindeki bir klasöre atarak da kurulabiliyor fakat Mozilla, Firefox tarayıcısından bu özelliği kaldırmayı planlıyor. Bu hafta yayınladıkları blog yazısında sürecin nasıl işleyeceğini açıklamış.

11 Şubat 2020 ayında yayınlanması planan Firefox 73 sürümünde de ilgili klasördeki eklentiler okunacak fakat bunlar kopyalanarak kullanıcıya gösterilerek normal eklenti gibi kurulacak. 10 Mart 2020 tarihinde yayınlanması planan Firefox 74 sürümünde ise bu destek tamamen kaldırılacak. Bu desteğin kaldırılmasının sebebi olarak ise güvenlik gösterilmiş, ilgili klasöre gönderilen zararlı bir eklenti de firefox'a kurulabildiği için tehlikeli bir durum oluşuyordu. Elbette sadece zararlı eklentiler gönderilmek için kullanılmıyordu, bazı tarayıcı entegrasyonu gerektiren uygulamalar da bu şekilde kuruyordu kendini firefox'a ama maalesef kurunun yanında yaş da yanıyor.

Bu haberin biz geliştiricileri ilgili kısmı ise şöyle, biliyorsunuz bizler eklenti geliştirirken kendi bilgisayarımızdaki sürekli deneyerek ilerliyoruz dolayısıyla markette yayınlamadan eklentiyi kendi bilgisayarımızdaki Firefox'a yükleyebilmemiz gerekiyor. Bu durumda elimizdeki bir seçenek gitti fakat burada yanlış anlaşılma oluşmasın biz hala daha bilgisayarımızdaki bir XPI dosyasını seçerek onu eklenti olarak kurabileceğiz, kaldırılan özelliği iyi anlamak gerek.

Yaklaşan Etkinlikler

Etkinlik İsmi Yeri Tarihi
Arduino ile Robotik Programlama: Atölye ve Uygulama Antalya 5 Kasım 19:00
Siber Farkındalık ve Kullanıcı Güvenliği İstanbul 6 Kasım 14:00
Sosyal ve Teknik Yönleri ile: Açık Kaynağa Nasıl Katkı Yapabiliriz? İstanbul 6 Kasım 19:00
DevOps İstanbul 7 Kasım 19:00

Diğer Haberler

BeğenFavori PaylaşYorum yap

Meşhur Notepad ++ uygulaması Uygur Türkleri ile ilgili farkındalık için özel sürüm çıkarmış:
https://notepad-plus-plus.org/news/v781-free-uyghur-edition/
#Notepad #ÖzgürYazılım

BeğenFavori PaylaşYorum yap

Yazılım Gündemi - 15 (21-27 Ekim 2019)

< Önceki Gündem     |   21-27 Ekim 2019   |     Sonraki Gündem >

Yazılım Gündemi ile ilgili gelişmeler hakkında bildirim almak için bu adresdeki konuya bakabilirsiniz. Yazılım Gündemine katkı sağlamak için yazılımın herhangi bir alanıyla ilgili karşılaştığınız haberleri sosyalde #YazılımGündemineMalzeme etiketi ile paylaşabilirsiniz.

Yeni bir önbellek zehirleme açığı ortaya çıktı: CPDoS

Gün geçmiyor ki yeni bir güvenlik açığı daha ortaya çıkmasın. Alman siber güvenlik araştırmacıları, bu hafta yayınladıkları "Your Cache Has Fallen: Cache-Poisoned Denial-of-Service Attack" başlıklı makaleleriyle yeni bir açığı ortaya çıkardı. Üstelik bu açıktan sektörde sıkça kullanılan Amazon CloudFront, Cloudflare, Akamai gibi CDN (Content Delivery Network) hizmetlerini de etkiliyor.

Görselden yola çıkarak açığı açıklamak gerekirse:

  1. Saldırgan sitenin kabul etmediği bir HTTP Header bilgisiyle GET isteği yapıyor. (Örn: X-Zararli-Baslik: Deneme)
  2. Önbellek sunucusu böyle bir isteği daha önce hafızasında tutmadığı için isteği gerçek sunucuya gönderiyor.
  3. Gerçek sunucu da böyle bir HTTP Header bilgisini kabul etmediği için önbellek sunucusuna hata mesajı gönderiyor.
  4. Önbellek sunucusu, gerçek sunucudan aldığı sayfayı aynen saldırgana gönderiyor.
  5. Normal kullanıcı siteye normal bir GET isteği gönderiyor.
  6. Önbellek sunucusu kullanıcıya yine hafızasındaki hata sayfasını gönderiyor.

Aslında bu açığın 3 tane de alt türü mevcut. Bunlar da şu şekilde:

  • HTTP Header Oversize (HHO): HTTP isteğinin boyutunu aşırı yükselterek siteyi hata vermeye zorlama.
  • HTTP Meta Character (HMC): HTTP isteğine zararlı karakter (\n, \r, \a gibi) ekleyerek siteyi hata vermeye zorlama.
  • HTTP Method Override (HMO): Sitenin kabul etmediği HTTP methodları (DELETE gibi) göndererek siteyi hata vermeye zorlama.

Açığın nasıl kullanıldığını gösteren bir videoyu bu adresten izleyebilirsiniz. Açıktan etkilenen web sunucu ve CDN hizmetlerinin listesi ise bu şekilde:

Yukarıdaki açık türlerinin kısaltmaları bu tablodaki bir hücrede varsa o sistemde açık var demektir.

Yalnız tabii ki de etik kurallar gereği bulunan açık önce etkilenebilecek firmalarla paylaşıldığı için çoğu web sunucusu ve CDN hizmeti sağlayan firmalar açıkları gidermiş durumda. Yani korkacak bir şey yok gibi gözüküyor.

Daha detaylı bilgi için konu başlığına eklediğim bağlantıdaki sayfayı ziyaret edebilirsiniz.

PHP-FPM'deki hata saldırganların uzaktan kod çalıştırmasına olanak sağlıyor

PHP-FPM (FastCGI Process Manager), normal PHP'deki FastCGI implementasyonuna alternatif daha gelişmiş ve yüksel verimlilik sunan bir işleyici. Fakat bu projedeki bir bellek hatası, diğer birkaç sorunla daha birleşince saldırganların sunucuda zararlı kod çalıştırabileceği bir güvenlik zafiyeti haline geliyor. Her ne kadar bu açığı meydana getiren koşulların bir araya gelmesi zor gözükse de güvenlik açığı sonuçta, ihmal etmeye gelmez.

Wallarm isimli şirkette güvenlik araştırmacısı olarak çalışan Andrew Danau tarafından ortaya çıkarılan bu açığı exploit edenler ise Omar Ganiev ve Emil Lerner.

Güvenlik zafiyetinin oluşabilmesi için gerekli koşullar ise şu şekilde:

  • NGINX web sunucusunun PHP-FPM ile çalışması için ayarlanmış olması,
  • fastcgi_split_path_info direktifinde ^ ile başlayan ve $ ile biten bir regex ifadesinin tanımlı olması
  • PATH_INFO değişkeninin fastcgi_param direktifi ile tanımlanması,
  • ve istenen dosyanın olup olmadığını kontrol eden herhangi bir ayarın olmaması,

NGINX'de şöyle ayarlar varsa:

location ~ [^/]\.php(/|$) {
  ...
  fastcgi_split_path_info ^(.+?\.php)(/.*)$;
  fastcgi_param PATH_INFO       $fastcgi_path_info;
  fastcgi_pass   php:9000;
  ...
}

güvenlik zafiyeti de oluşmuş oluyor. Saldırgan da regex ifadesini bir şekilde maniple ederek bu bellek hatasını tetikliyor ve URL üzerinden istediği komutları çalıştırabilir hale geliyor.

Görselde kullanılan exploit bu adreste yayınlanmış

PHP 7.3.11 ve PHP 7.2.24 sürümlerinde bu açıklar giderilmiş. Siz de sunucularınızdaki NGINX ayarlarınızı kontrol edin ve ilgili PHP güncellemelerini yapmayı ihmal etmeyin.

GitLab, hizmetlerine telemetri servisi eklemek istedi fakat vazgeçti

GitLab geçtiğimiz haftalarda yayınladığı bir blog yazısıyla kullanıcılara daha iyi hizmet verebilmek için GitLab.com ve ilgili servislerine telemetri (sayfayı ziyaret eden kullanıcıların davranışlarıyla ilgili raporlar hazırlayan servislere verilen isim) ekleyeceğini duyurmuştu. GitLab'ın bu girişimi, her ne kadar, "Eğer tarayıcınızın Do Not Track (DNT- Beni takip etme) ayarını kullanıyorsanız buna saygı göstereceğiz" ve "GitLab Community Edition'da böyle bir şey olmayacak" deseler bile geliştirici toplulukları tarafından hiç hoş karşılanmadı ve HackerNews ve Reddit gibi platformlarda tartışmalara yol açtı. Bunun üzerine GitLab'da ilgili blog yazısına bir güncelleme notu ekleyerek, bu değişikliklerden vazgeçtiklerini ve üzerine biraz daha çalışacaklarını duyurdular.

Bu konu hakkında siz ne düşünüyorsunuz? Hem bir geliştirici olarak hem de bir kullanıcı olarak telemetri servisleriyle ilgili genel görüşünüz nedir? Yorumlar kısmında konuşalım.

TypeScript 3.7 RC sürümü duyuruldu

Microsoft tarafından geliştirilen tip destekli JavaScript yazmayı sağlayan TypeScript dilinin bu hafta 3.7 RC sürümü duyuruldu. Daha önce yayınlanan planda dokümanında da belirtilen tarihten 2 gün sonra gerçekleşmiş olsa da her şey yolunda gözüküyor. TypeScript 3.7 ile gelecek iki özelliğe daha önceki gündem yazılarında değinmiştik (bkz: Yazılım Gündemi - 9). O yazıdaki özellikler haricinde yeni eklenen bir özelliğe daha göz atalım demek isterdim fakat ilgili blog yazısındaki "Assertion Functions" bölümünü okumama rağmen tam olarak anlayamadım, sanırım bunda uzun zamandır JavaScript yazmıyor olmamın da payı var.

Daha detaylı bilgi ve eklenen özelliklerle ilgili konu başlığına eklediğim bağlantıya tıklayabilirsiniz.

Turkcell'in, Firefox Preview lisansını ihlal ettiği ortaya çıktı

Turkcell'in geliştirdiği "yerli arama motoru" Yaani'nin, mobil cihazlar için geliştirdiği tarayıcısı, Firefox Preview'den forklanarak oluşturulmuş bir tarayıcı. Bunda bir sıkıntı yok. Firefox zaten açık kaynak kodlu ve özgür lisanslı bir uygulama, nitekim Tor Browser da Firefox'dan forklanmış. Fakat sorun Turkcell'in, Firefox Preview'in lisansı olan Mozilla Public License 2.0'ı ihlal etmesi. Yaani tarayıcısı açılırken bir kullanım sözleşmesi gösteriyor ve burada da MPL 2.0 lisansı listelenmiş fakat bu lisansın bir şartı olan kodların aynı lisans ile paylaşılması maddesi ihlal edilmiş (Madde 3.2). Turkcell, Yaani mobil uygulamasının kodlarını henüz hiçbir yerde paylaşmış değil. Konu Türkiye basınında hiç yer almadı, dolayısıyla Turkcell konuyla ilgili bir cevap da yayınlamış değil.

Turkcell Yaani uygulamasının kullanım sözleşmesinde MPL 2.0 lisansı listelenmiş

Konuyla ilgili siz ne düşünüyorsunuz diyeceğim ama pek şaşırdığınızı düşünmüyorum bu habere. Ben de şaşırmadım. Daha açık kaynak kullandığımız kodların lisanslarına bile saygı duymuyorken, Türkiye'den bir Google çıkmasını beklemek saçma olur diye düşünüyorum.

Firefox 70 ile gelen yeni özellikler

Bu hafta Firefox tarayıcısının 70 numaralı sürümü yayınlandı. Normal kullanıcıları ilgilendiren özelliklerin bir kısmını şuradaki paylaşımımda özetlemiştim. Şimdi de biz geliştiricileri ilgilendiren birkaç değişikliğe bakalım:

[CSS] Altı çizgili yazılar için yeni seçenekler

Artık altı çizgili yazılarımızı daha da özelleştirebileceğiz. Şöyle ki:

Böyle kuru kuru olmadı gelin bir örnek yapalım:

<style>
  h1 {
  text-decoration: underline red;
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
  }
</style>

<h1>selam teknoseyir <br/> bu firefox'un yeni css özelliği</h1>

ve işte sonuç:

https://teknoseyir.com/wp-content/uploads/2019/10/7feb0d7fbdaa9b3.png

Harflerin kuyruklarına dikkat

 

[JS] Numeric Separators

Türkçe'ye sanırım numara ayırıcılar olarak çevirebiliriz bu özelliği. Bu yeni özellik sayesinde artık JavaScript'de sayı değişkeni tanımlarken daha kolay okuyabilmek için bu şekilde sayıların basamaklarını ayırabileceğiz:

let sayi1=1_000_000;
console.log(sayi1); // çıktı: 1000000

Öyle çok olmazsa olmaz bir özellik değil ama yine de faydalı.

İncelediğim iki özelliğin de diğer tarayıcılardaki desteklenme durumlarını kontrol etmek için eklediğim bağlantılardaki "Browser compatibility" bölümüne göz atabilirsiniz. Ayrıca diğer eklenen özellikler için de konu başlığına eklediğim bağlantıya tıklayabilirsiniz.

Chrome 80 sürümünde SameSite=None; Secure özelliği gelecek

Çerezler (cookies) hem güvenliklerinin sağlanması açısından hem de yönetimlerinin zor olması açısından geliştiricileri uğraştırmalarıyla ünlü yapılardır. Özellikle de Cross-Site Request Forgery (CSRF) olarak bilinen güvenlik zafiyeti, bir dönem her geliştiricinin korkulu rüyasıydı. Neyse ki tarayıcılardaki cookie özelliklerinin gelişmesiyle ve geliştiricilerin de bilinçlenmesiyle o günler geride kaldı.

Chromium takımı bu hafta yayınladıkları blog yazısı ile biz geliştiricileri SameSite=None; Secure özelliğine hazır olmaya çağırıyor fakat bu özelliğin neleri değiştirdiğinizi anlamak için önce Cross-Site ve Same-Site kavramlarına bakmamız gerek.

Her cookie bir domain ile ilişkilendirilmiştir. Eğer bu domain ile tarayıcının adres çubuğundaki domain farklı ise bu Cross-Site Cookie; aynı ise Same-Site Cookie ismini alıyor. Cross-Site Cookie'ler ziyaret ettiğimiz bir çok web sitesinin üçüncü parti olarak sitesine eklediği hizmetlerden (reklam, istatistik vb.) gelebilir. Same-Site cookie'ler ise genellikle kullanıcıları siteye giriş yapılmış tutmak (beni hatırla seçeneği) için kullanılır. Doğal olarak bu Same-Site cookie'lere dışarıdan erişilmesini istemiyoruz. Bu noktada kullanabileceğimiz iki ayar (SameSite=Lax ve SameSite=Strict) hali hazırda zaten mevcut fakat artık Chrome aksi belirtilmediği sürece tüm cookie'leri dışarıdan erişilmesi istenmeyen, yani Same-Site olarak değerlendirecek. Aksini belirtmek için, yani cookie'yi Cross-Site yapmak için de SameSite=None; Secure özelliğini kullanmamız gerekecek ve Cross-Site cookie kullanacak sitelerin de artık HTTPS olmaları zorunlu olacak. Bu elbette cross-site güvenlik tehditlerini tamamen ortadan kaldırmayacak ama ağ üzerinden yapılacak manipülasyonların büyük oranda önüne geçmiş olacak.

2020 Şubat ayında yayınlanması planan Chrome 80 sürümüyle hayatımıza girecek olan bu değişikliğe hazır olmak için yapılması gerekenleri şu şekilde sıralamış Google:

  • Bazı dillerde ya da kütüphaneler henüz None değerini desteklemiyor olabilir. Böyle bir durumda cookie header bilgisine kendiniz eklemeniz gerekecek. Bazı dil ve kütüphanelerde bunun nasıl yapılacağını anlatan şöyle bir depo hazırlamış Google: https://github.com/GoogleChromeLabs/samesite-examples
  • Bazı tarayıcılar ya da tarayıcıların eski versiyonları None değerini desteklemiyor olabilir. Uyumsuz istemciler listesine buradan bakabilirsiniz: https://www.chromium.org/updates/same-site/incompatible-clients
  • Diğerleri için konu başlığına eklediğim bağlantıdaki blog yazısının "How to Prepare; Known Complexities" bölümüne bakabilirsiniz.

Ayrıca bu davranışı test etmek için Chrome 76 ve yukarısındaki sürümler için chrome://flags adresinden "SameSite by default cookies" ve "Cookies without SameSite must be secure" ayarlarını açabilirsiniz.

Same-Site Cookie'lerle ilgili daha detaylı bilgi için bu adresi ziyaret edebilirsiniz.

Yeni bir Qt aracı duyuruldu: Qt Design Viewer

Qt for WebAssembly üzerinde geliştirilen bu araç sayesinde artık QML uygulamaları tarayıcı üzerinde çalıştırılabilecek. Eğer tarayıcınızda WebAssembly desteği varsa buraya tıklayarak ilgili aracı kullanabilirsiniz. Benim gibi Qt sistemine uzak birisiyseniz de Examples kısmındaki hazır dosyalardan birisi seçerek aracı inceleyebilirsiniz.

Yaklaşan Etkinlikler

Etkinlik İsmi Yeri Tarihi
Hacktoberfest - JSAntalya Antalya 28 Ekim 19:00
DevOps'u Keşfedelim İstanbul 31 Ekim 19:00
Secure Front-end Development İstanbul 31 Ekim 19:30
Hello World (Full Stack Ankara) Ankara 1 Kasım 19:00
Ruby Türkiye Buluşması - 6 İstanbul 2 Kasım 13:00
Developers Meeting Coffee&Talk Antalya 2 Kasım 15:00

Diğer Haberler

Bir sonraki hafta görüşmek üzere,
Kendinize iyi bakın…

BeğenFavori PaylaşYorum yap
  • Eren Hatırnaz @erenhatirnaz

    Geldi! Bu hafta yazılım gündemi yoğun.

    Bu yazıdaki "Turkcell'in, Firefox Preview lisansını ihlal ettiği ortaya çıktı" başlıklı haberin #HaftalıkGündemeMalzeme olarak değerlendirilmesi gerek bence. @gamsizm

  • Tarık Başoğlu @trbasoglu1996

    Hocam öncelikle elinize sağlık. Hazırladığınız içeriğin çok kaliteli olduğunu düşünüyorum. Bence bu yazıları mediumda paylaşmalı ve bülten olarak yayımlamalısınız. Çok daha fazla kişiye ulaşmayı hak ediyor.

    • Eren Hatırnaz @erenhatirnaz

      Teşekkür ederim hocam, faydalı bir içerik oluşturabiliyorsam ne mutlu bana 🙂 Medium platformunu pek sevmiyorum hocam, yayımlarsam kendi blogumda yayımlarım ama "haftalık gündem" konsepti teknoseyir'de ortaya çıkmış bir içerik türü olduğu için ve ben de bu yazı serisinin ilhamını teknoseyir'den aldığım için bu yazıları da buradan paylaşmayı daha uygun buluyorum. Yine de tavsiyeniz için teşekkür ederim. Yazıların kopyaları bilgisayarımda var, teknoseyir'e bir şey olması durumunda o arşivi de paylaşabilirim ileride.

  • Yiğit @yigit1

    "Konuyla ilgili söz ne düşünüyorsunuz diyeceğim ama pek şaşırdığınızı düşünmüyorum bu habere. Ben de şaşırmadım. Daha açık kaynak kullandığımız kodların lisanslarına bile saygı duymuyorken, Türkiye'den bir Google çıkmasını beklemek saçma olur diye düşünüyorum."

    Daha ne diyebilirz ki! Ellerine sağlık @erenhatirnaz hocam! Yine haftalık gündem dopdolu ve sayende gelişmeleri öğrenebiliyoruz 🙂

  • Özgür @ozgurg

    "Material Components Android kütüphanesinin 1.2.0-alpha01 sürümü yayınlandı."
    TextInputLayout için diyor ki "Add support for prefix and suffix text (6e5ddcf) with demo (d1444e2)"
    Bu özellik yıllardır tasarım dökümanlarında var ama koda yeni geliyor. Onun dökümanlara eklendiği gün koda da eklenmiş olması gerekiyordu.

NGINX + PHP 7.x kullananlar dikkat edin

https://thehackernews.com/2019/10/nginx-php-fpm-hacking.html

New PHP Flaw Could Let Attackers Hack Sites Running On Nginx Servers

A new security vulnerability in php-fpm could allow attackers to hack PHP websites running on Nginx servers.
BeğenFavori PaylaşYorum yap

Yazılım Gündemi - 14 (14-20 Ekim 2019)

< Önceki Gündem     |   14-20 Ekim 2019   |     Sonraki Gündem >

Yazılım Gündemi ile ilgili gelişmeler hakkında bildirim almak için bu adresdeki konuya bakabilirsiniz. Yazılım Gündemine katkı sağlamak için yazılımın herhangi bir alanıyla ilgili karşılaştığınız haberleri sosyalde #YazılımGündemineMalzeme etiketi ile paylaşabilirsiniz.

GitLab ofiste siyaset konuşmayı yasakladı ve geri aldı

Geçtiğimiz haftalarda bir yazılımcının ABD Göçmenlik ve Gümrük Muhafaza kurumunu protesto etmesinden (bkz: Yazılım Gündemi - 10) ve aynı kurum ile iş anlaşması yapmış GitHub'daki geliştiricilerin tepkilerinden (bkz: Yazılım Gündemi - 13) bahsetmiştim. Tam da o zamanlara denk gelecek şekilde GitLab'de "bu olaylar bizi de etkileyebilir" demiş olacak ki, CEO Sid Sijbrandij tarafından şirketin el kitabına apar topar bu ekleme yapılmış. Kısaca yapılan ekleme şu şekilde: "müşterilerimizin değerleri ile bizim değerlerimiz uyuşmayabilir", "biz iş yerinde siyaset konuşmayız, verimlilik bizim bir numaralı değerimizdir".

Tabii ki bu eklemeyi yaparak olası protestoların önüne geçmeyi amaçlayan şirket yönetimi amacına ulaşamadığı gibi tam tersi bir etki de yaratıp insanların bu konu hakkında konuşmaya başlamasına yol açtı. Her ne kadar şirketin el kitabındaki bu değişiklik 2 hafta önce CEO tarafından pull request olarak açık şekilde yapılmış olsa da, olay bu hafta ortaya çıktı ve tartışmalar da bu hafta başladı. Hem şirketin kendi çalışanları hem de geliştirici camiasındaki birçok insan Reddit ve HackerNews gibi platformlarda tepkilerini gösterdiler.

Şirketin bu yanlıştan dönmesi uzun sürmedi. Büyüyen tartışmalar üzerine ertesi gün şirketten yetkili başka isimler tarafından sorunlu cümleler değiştirildi ve çalışanların iş yerinde siyaset konuşmasına yönelik yasak da kalkmış oldu. GitLab yönetiminin bu tavırları her ne kadar doğru olmasa da şirketteki tamamen herkese açık yapı takdir edilmesi gereken bir şey. Şirketin birçok dokümanı herkese açık şekilde depolarında duruyor, çalışanlar de bunların değiştirilmesinde ve geliştirilmesinde katkı verebiliyorlar. GitLab'ın bu şekilde açık bir organizasyon yapısına olması sahip olmasını hep takdir etmişimdir.

Python 3.8 stabil sürümü yayınlandı

Python takımı, plan dokümanında belirttikleri şekilde (hatta daha erken bir tarihte) Python 3.8.0 final sürümünün stabil halini yayınladılar. Yazılım Gündemi - 2 yazısında Python 3.8 ile gelecek özelliklerden bazılarını anlatmıştım. Bu yazıda onlara değinmeyeceğim fakat başka iki özelliğe birlikte göz atalım:

PEP 589 - TypedDict

Diğer programlama dillerinde key-value object olarak bildiğimiz yapının Python'daki karşılığı Dictionary. Fakat Python'daki bu yapı tiplendirilmiş şekilde kullanılamıyordu. Örnek vererek daha iyi açıklayabilirim sanırım.

Önceden bu şekilde kullanıyorduk:

kisi = {'isim': 'Eren',
        'soyisim': 'Hatırnaz',
        'yas': 24}

Artık bu şekilde kendi sınıfımızı oluşturup onu da Dictionary nesnesi gibi kullanabileceğiz:

from typing import TypedDict

class Kisi(TypedDict):
    isim: str
    soyisim: str
    yas: int

kisi1: Kisi = {'isim': 'Eren',
               'soyisim': 'Hatırnaz',
                'yas': 24}

Yani artık tip kontrollü şekilde dictionary nesneleri kullanabileceğiz. Pek sık Python yazmasam da ara ara benim de ihtiyacım olan bir özellikti, gelmesine sevindim. Daha detaylı bilgi için alt başlığa eklediğim bağlantıdaki dokümana göz atabilirsiniz.

final niteleyicisi [PEP 586 - Literal Types]

Daha önce Java'da görmeye alıştığımız final niteleyicisi artık Python'a da geliyor. Bilmeyenler için final niteleyicisi, tanımladığınız bir sınıfın, fonksiyonun ya da değişkenin değiştirilmesi istemediğimiz durumlarda kullandığımız bir ifade. Python da ise şu şekilde kullanabileceğiz:

from typing import final

@final
class Kisi:
    @final
    def merhaba(self):
        ...

Değişkenleri ise bu şekilde değiştirilemez yapabileceğiz:

ID: Final = 15

Daha detaylı bilgi ve diğer değişiklikler ve yeniliklerle ilgili şeyler için konu başlığına eklediğim bağlantıya tıklayabilirsiniz.

Microsoft, .NET Framework API'lerinin .NET Core'a aktarılmasının tamamlandığını duyurdu

.NET Framework, Microsoft'un çok uzun zamandır geliştirmeye devam ettiği ve tüm ekosistemini altında topladığı bir uygulama çatısıydı. Windows uygulamalarından, mobil uygulamalara, oradan web uygulama ve servislerine kadar her şey bu framework sisteminin içerisinde fakat artık Microsoft bu emektar sistemi tozlu raflara kaldırmaya hazırlanıyor gibi. Çünkü artık .NET Framework yalnız değil. Geçtiğimiz yıllarda gelen CEO Satya Nadella ile açık kaynak dünyasına giriş yapan Microsoft, artık daha dışarıya açık bir yapıya sahip. Bu değişimin ürünlerinden biri olan .NET Core projesi de .NET Framework sisteminin yerini almaya hazırlanıyor. .NET Framework içerisindeki API'lerin de .NET Core projesine yavaşça aktarıldığını biliyoruz. Hatta geçtiğimiz haftalarda .NET Core 3.0 duyurulmuştu ve bu sürümle artık Windows Forms ve WPF desteğinin de geldiğini söylemiştik (bkz: Yazılım Gündemi - 11).

Bu hafta da öğreniyoruz ki .NET Framework API'lerinin .NET Core projesine aktarılması tamamlanmış. Yani artık .NET Framework'den hiçbir API, Core projesine aktarılmayacak. .NET Core projesinin, %80 civarında .NET Framework API'si içerdiğini söylüyor Microsoft. Dolayısıyla artık .NET Framework'de kullandığınız bazı API'ler .NET Core'da yoksa, hiç olmayacak demektir.

Microsoft zaten .NET'in geleceğinin Core projesi olduğunu bu blog yazısında açıklamıştı. Dolayısıyla çok da sürpriz olmadı bu gelişme. Aramızdan ayrılan teknolojiler arasında Web Forms, WCF Server ve Windows Workflow var. Kendilerini tozlu raflardaki yerlerine alabiliriz. .NET Framework'e destek hemen kesilmeyecek tabii ki de fakat benim tavsiyem uygulamalarınızı artık .NET Core altyapısına geçirmeye başlayın.

Firefox geliştirici araçlarına yeni özellik eklendi: WebSocket Inspector

WebSocket, sunucu ve istemci arasında kalıcı bir bağlantı kurmaya yarayan bir teknoloji. Daha çok tarayıcı üzerinde çalışan anlık mesajlaşma uygulamalarında kullanıyoruz. Firefox takımı da, gelen istekler üzerine yeni bir geliştirici aracı hazırlamış ve Firefox 71 sürümünde bu aracın yer alacağını açıklamış. Ayrıca şu an Firefox Developer Edition sürümünde bu özellik kullanılabilir durumda. Kullanmak için F12'ye basıp DevTools penceresini açtıktan sonra, Network sekmesine tıklayıp ve oradan da Messages sekmesine tıklamak gerekiyor.

Bu WebSocket Inspector aracı ile artık sunucu ile istemci arasındaki bu veri trafiğini izleyebilir, filtreleyebilir ve arama yapabilir hale geleceğiz. Bu sayede de WebSocket kullanan bir uygulama geliştirirken yaşadığımız araç sıkıntısını da çözmüş oluyor İlerleyen sürümlerde bu yeni araca yeni özellikler de eklenecekmiş. Mozilla ve Firefox takımı yine bizim için çalışmaya devam ediyor. 🧡 Mozilla 🧡 Firefox.

Android 10 sürümünde kaldırılan bir fonksiyonellik bir uygulamanın hayatına son verdi

Google, Android 10 sürümünde exec() isimli fonksiyonun uygulamaların bulunduğu dizinde çalışması engellendiği için Servers for Android isimli uygulamanın da geliştirilmesine son verilmiş. Uygulamanın BitBucket'daki sayfası yayından kalmış fakat tahminime göre Android üzerinde web sunucu çalıştırmaya yarayan bir uygulamaya benziyor. exec() fonksiyonu da büyük ihtimal bir binary dosyasını çalıştırmaya yarayan bir komut (Android geliştirici arkadaşlar yanlış biliyorsam düzeltsin beni). Bu uygulama da bu yöntemle web sunucu için gerekli çeşitli araçları çalıştırıyormuş sanırım. Yazıda bahsettiğine göre PHP bunlardan birisi mesela. Bu fonksiyonellik Android 10 sürümünde tamamen engellenmiş değil, eğer ilgili binary dosyaları APK dosyasının içine paketlenmişse çalıştırılabiliyor fakat bu uygulama için bir çözüm değil çünkü birden çok aracı ve farklı sürümlerini içermesi gerektiği için uygulamanın boyutu 2GB'ı aşıyor ve haliyle mantıklı olmaktan da çıkıyor. Maalesef geliştirici arkadaş uygulamayı geliştirmeyi durdurmuş ve Play Store'dan da silmiş ama keşke BitBucket'daki kaynak kodlar dursaydı.

Maalesef geliştiricilik hayatımız boyunca böyle bir çok projemiz üzerinde çalıştığımız platformun desteği kesmesi üzerine son bulacak. Burada Google'ın haklılık payı var. exec() fonksiyonunu güvenlik sorunlarına yol açabileceği kaygısıyla kaldırmaya hazırlanıyorlarmış.

WireGuard uygulaması içerdiği bağış bağlantısı yüzünden Play Store'dan silindi

Bir VPN protokolü olan WireGuard'ın Android uygulaması bu hafta bir süreliğine Play Store'dan silindi ve geri geldi. Uygulamalarına kullanıcıların destek olabilmeleri için bağış bağlantısı eklemişler ve uygulamayı Google'a inceleme için göndermişler fakat onay beklerlerken tam tersi red edilmişler hatta uygulama Play Store üzerinden silinmiş. Meğerse böyle bir ekleme Google'ın "Ödeme Yönergesi"ne uygun değilmiş. Neyse ki geliştirici hızlı davranmış ve ilgili değişikliği geri alıp tekrar incelemeye göndermiş ve uygulama kısa süre içerisinde tekrar Play Store'daki yerini almış.

Bu haber, Android geliştirici arkadaşların kulağına küpe olsun. Google'ın sistemi dışında kullanıcılarınızdan destek almak istersiniz falan aman ha! Kapı dışarı ederler adamı valla!

Bir programlama hatası 150'den fazla bilimsel çalışmayı etkiledi

Kimyasal analizde sıkça kullanılan "Willoughby-Hoye" isimli bir Python betiğinin farklı işletim sistemlerinde farklı sonuçlar vermesi yüzünden 150'den fazla bilimsel çalışma yanlış sonuç üretmiş olabilir.

Betik Ubuntu 16 ve MacOS Majove sistemlerinde yanlış sonuç veriyor.

Hataya neden olan Python'daki glob isimli modül. Bu modül, belirli bir şablona uygun dosya isimlerini getiren bir araç fakat bu modülün çalışması işletim sisteminin dosyaları sıralama sistemine bağımlıymış. Yani belirli bir şablona uygun dosya isimleri, Ubuntu'da farklı sırayla, Windows'da farklı sırayla geliyor. Bu habere konu olan Python betiğinde ise, glob fonksiyonundan gelen dosyalar sırasıyla işleniyormuş fakat farklı sistemlerde dosyaların da sırası değiştiği için betiğin ürettiği sonuçta buna göre değişiyormuş. Böyle küçük bir detayı bile bulup ortaya çıkarabilen bilime hayranlığım sonsuz.

Yaklaşan Etkinlikler

Etkinlik İsmi Yer Tarihi
Android Workshop İstanbul 22 Ekim 18:30
Codefiction Buluşuyor İstanbul 22 Ekim 18:30
Writing Modular, Scalable and Maintainable CSS İzmir 23 Ekim 19:00
Yapay Zekaya Giriş Semineri İstanbul 24 Ekim 13:30
AWS API Gateway İstanbul 24 Ekim 17:00
Modern Antivirus Atlatma Teknikleri Workshop Ankara 24 Ekim 19:00

Düzeltme Notu (21 Ekim 00:54): "Modern Antivirus Atlatma Teknikleri Workshop" isimli etkinliğin yeri yanlış (İstanbul) girilmişti. "Ankara" olarak düzeltildi.

Diğer Haberler

Bir sonraki hafta görüşmek üzere,
Kendinize iyi bakın…

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 11 / 15