#YazılımGündemineMalzeme Uzun süre github katkı yapmayan adamı geri getirtti helal olsun 🙂
Bir Türk arkadaş (Fatih Erikli) Virüs Simülasyonu yapmış.

https://github.com/fatiherikli/coronavirus-simulation

fatiherikli/coronavirus-simulation

Simulating coronavirus with the SIR model. Contribute to fatiherikli/coronavirus-simulation development by creating an account on GitHub.
BeğenFavori PaylaşYorum yap

#YazılımGündemineMalzeme Ertelenen Angular 9 etkinliği canlı olarak Youtube üzerinden yapılacak. Tarih: 2 Nisan 2020 - 21:00

https://twitter.com/ngTurkiye/status/1244700729023049728

BeğenFavori PaylaşYorum yap

Yazılım Gündemi - 2020/12

< Önceki Gündem   |   23-29 Mart 2020   |   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.

Safari 13.1 ile tüm üçüncü parti çerezleri engellemeye başladı

Bu hafta içerisinde yayınlanan iOS ve iPadOS güncellemeleri ile birlikte Apple ekosisteminin varsayılan tarayıcısı olan Safari, artık tüm üçüncü parti çerezleri (cookie) engelliyor. Intelligent Tracking Preventation (ITP) isimli özelliklerindeki bu güncellemenin amacı ise kullanıcıların internette gezinirken takip edilmesini önlemek. Bu derece sert bir kuralı uygulayan bir diğer tarayıcı ise Tor Browser. Brave Browser ise bazı istisnalar hariç diğer çerezleri engelliyor.

İlgili değişiklikler Apple tarafından açık kaynak olarak geliştirilen tarayıcı motoru WebKit'in blog sayfasında duyuruldu. Yazıda bu yolda yalnız olmadıklarını Google tarafından geliştirilen Chrome tarayıcısının da 2022 yılı için bu tarz bir değişikliğe hazırlandığını belirtmiş. Aynı zamanda bu uygulamanın standart olması için W3C kurumuna da başvuracaklarını belirtmişler.

Değişikliğin biz geliştiricileri etkileyen kısmında ise bizlere üçüncü parti çerezler yerine kullanabileceğimiz 3 farklı opsiyon sunmuşlar. Bunlar şu şekilde:

Fakat bu değişiklikler sadece çerezleri etkilemiyor. Tarayıcıda bazı verileri depolamak için kullandığımız IndexedDB, LocalStorage ve SessionStorage gibi yapılar da etkileniyor. Artık bu yapılar üzerinde sadece 7 günlük veriler tutabileceğiz. Bunu yapmalarındaki amaç ise büyük ihtimal kullanıcıları takip eden servislerin çerez engellemesini bu tarz yapıları kullanarak aşmalarını istememeleri olabilir.

Bu konu hakkında siz ne düşünüyorsunuz? Safari'nin çerezlere olan bu sert yaklaşımı siz doğru mu? Yorumlar bölümünde konuşalım.

Git 2.26 sürümü yayınlandı

En popüler versiyon kontrol sistemlerinden biri olan Git, bu hafta içerisinde 2.26 numaralı yeni sürümünü duyurdu. Bu sürüm ile birlikte gelen bazı değişikliklere birlikte bakalım.

Varsayılan protokol versiyonu 2 olarak güncellendi

2018 yılında Git'e Google tarafından katkı sağlanarak eklenen Git protocol version 2 artık varsayılan olarak kullanılacak. Önceki Git protokolünün bazı ölçekleme sorunları vardı. Bir Git sunucusu, istemci (client) özel olarak istemediği halde tüm branch'lar, tag'lar ve diğer referanslar hakkında bilgi veriyordu. İlk bakışta "bunda ne var" diye düşünebilirsiniz ama büyük çaplı projeler için durum böyle değil. Kullanıcı sadece master dalıyla ilgilendiği halde ona tüm dallar ve etiketlerle ilgili bilgi dönmesi demek fazladan birkaç megabyte'ın harcanması demek ve bu da gereksiz veri trafiği anlımına geliyor. Şimdi ise büyük boyutlu depolardan daha kısa bir sürede veri çekebiliyor olacağız.

Eğer Git versiyonunuzu yükseltmeye henüz hazır değilseniz ve Git 2.19 üzeri bir sürüm numarasına sahipseniz. Bu değişikliği siz de aşağıdaki komutu çalıştırarak uygulayabilirsiniz:

git config --global protocol.version 2

Bu protokol versiyonu hakkında daha detaylı bilgi almak için bu sayfayı ziyaret edebilirsiniz.

git sparse-checkout komutunda değişiklikler

Bir önceki sürüm (2.25) güncellemesiyle birlikte gelen bu özelliği Yazılım Gündemi - 2020/03 yazısında detaylıca anlatmıştık. Dolayısıyla özelliğin teknik detayları için önce o yazıyı okumanızı tavsiye ederim. Bu sürümle ise git sparse-checkout add modu eklendi. Artık daha kolay bir şekilde istediğimiz klasörleri indirebileceğiz. Örnek kullanım için:

$ git clone --filter=blob:none --sparse git@github.com:git/git.git
$ cd git
$ git sparse-checkout init --cone
$ git sparse-checkout add t
$ git sparse-checkout add Documentation
$ git sparse-checkout list
Documentation
t

Yukarıda sırasıyla şu işlemleri yaptık:

  1. https://github.com/git/git deposunu sparse-checkout özelliğini kullanarak clone edeceğimizi belirttik.
  2. git klasörünün içine girdik. sparse-checkout yapacağımız için içi boş.
  3. sparse-checkout özelliğini başlattık.
  4. t isimli klasörü uzak sunucudan indirdik.
  5. Documentation isimli klasörü uzak sunucudan indirdik.
  6. sparse-checkout yaptığımız klasörlerin listesini yazdırdık.

Git 2.26 sürümüyle birlikte gelen diğer yeni özellik ve değişiklikler için GitHub tarafından hazırlanmış şu blog yazısını okuyabilir ya da konu başlığına eklediğim bağlantıya tıklayabilirsiniz.

TypeScript 3.9 Beta duyuruldu

Microsoft tarafından geliştirilen JavaScript üreten programlama dili TypeScript'in bu hafta içerisinde 3.9 Beta etiketli sürümü duyuruldu. Microsoft TypeScript takımının bloglarında yayınladıkları yazıyı inceledim fakat dile uzak birisi olduğum için pek bir şey anladığım söylenemez. Bu nedenle bu sefer de sizi konu başlığına eklediğim bağlantıya tıklayamaya davet ediyorum. TypeScript'i ilgi alanıma girerse, ilerleyen Yazılım Gündemi yazılarında daha detaylı değinebilirim belki.

Henüz "Beta" sürecinde olduğu için çalışan projelerinizi bu sürüme geçirmeniz tavsiye edilmez ama yine de ayrı olarak bir deneme yapmak isterseniz şu komutu çalıştırarak TypeScript 3.9 Beta'yı projenize ekleyebilirsiniz:

npm install typescript@beta

Google Play üzerindeki Multiplayer API desteği sonlanıyor

Gün geçmiyor ki bir başka Google hizmeti ya da ürünü Google Mezarlığında yerini almasın. Android için oyun geliştirirken Google'ın geliştiriciler için sunduğu oyununuza çok-oyuncu (multiplayer) API desteğini kullanabiliyordunuz. Google Play üzerinden sağlanan bu API ile birlikte arka plandaki bazı iş yüklerinden kurtuluyordunuz fakat 31 Mart itibariyle bu özellik artık çalışmayacak. Eğer sizin de Google Play markette yayınlanmış ve Multiplayer API kullanan bir oyununuz varsa bu tarihten itibaren çalışmamaya başlayabilir.

Neyse ki bazen Google bir taraftan alırken bir taraftan da yeni alternatifler koyabiliyor. Bu hafta içerisinde Google Cloud tarafında oyun yönetimi için yeni bir çözüm tanıtıldı: Game Servers. Henüz "beta" etiketiyle sunuluyor fakat önümüzdeki dönemlerde stabil bir sürüme de kavuşacaktır.

GitHub Desktop uygulamasının 2.4 sürümü yayınlandı

GitHub'ın henüz sadece Windows ve Mac işletim sistemlerini destekleyen masaüstü yazılımı 2.4 sürümüne ulaştı. Bu sürümle birlikte eklenen bazı özellikler şu şekilde:

  • Proxy desteği: Artık GitHub Desktop uygulamasının internetle olan bağlantısını bir proxy üzerinden geçirip kullanabileceğiz.
  • Issue oluşturmak için kısayol: Repository menüsü altına "Create Issue on GitHub" seçeneği eklendi ve tıkladığınızda varsayılan tarayıcınız üzerinde ilgili deponun issue oluşturma sayfasını açıyor.
  • Koyu tema özelliği betadan çıktı: Çeşitli testler ve geri dönüşlerden sonra iyileştirilen uygulamanın koyu tema modu sonunda beta'dan çıktı ve herkese açıldı. Keşke GitHub'ın web arayüzüne de gelse koyu tema özelliği ya da bu uygulamanın GNU/Linux dağıtımları için olan sürümünü çıkarsınlar o da uyar bana, gece karanlıkta çalışırken GitHub'ı açınca far görmüş tavşan gibi kalmaktan bıktım! Zaten olmaması ayrı bir saçmalık. Çoğunlukla geliştiricilerin kullandığı bir web sitesinde neden koyu tema özelliği olmaz gerçekten anlamak çok güç.

Uygulamayı bu adres üzerinden indirebilirsiniz.

Diğer Haberler

BeğenFavori PaylaşYorum yap

Yazılım Gündemi - 2020/11

< Önceki Gündem   |   16-22 Mart 2020   |   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, npm'i satın aldı

Aslında Microsoft satın aldı destek daha doğru olur. Çünkü GitHub da 2018 yılında Microsoft tarafından satın alınmıştı. npm, front-end camiası için çok önemli bir yere sahip. Her ne kadar Facebook tarafından geliştirilen yarn gibi bir alternatifi olsa da hala daha npm pastanın büyük bir bölümünün sahibi. Hatırladığım kadarıyla Windows'da NodeJS kurduğunuzda yanında otomatik olarak npm de kurulu geliyordu. Değişti mi bilmiyorum ama npm'in bu kadar çok kullanılmasının bir nedeni de budur. Öncesinde açık kaynak bir proje olarak başlayan süreç zamanla şirketleşme yolundan devam etti ve bu hafta da GitHub tarafından satın alındı.

GitHub'ın kendi sitesindeki blogunda yayınlanan yazı ile anlaşmanın gerçekleştirildiği duyuruldu. Görebildiğim kadarıyla Microsoft'un GitHub'ı satın aldığı zamanki kadar büyük tepkiler (insanlar github'dan depolarını taşımaya başlamıştı) yok. Belki de dünyanın şu an çok farklı bir gündemi olduğundan olabilir ama yine de Reddit ve HackerNews gibi platformlarda insanların tartışma konusu oldu.

Yazıdaki önemli bir nokta önümüzdeki senelerde GitHub Packages ve npm'in Private Registry özelliklerinin birleştirilecek olması. Yani ücretli olarak npm'in hizmetlerinden yararlananlar ilerleyen zamanlarda GitHub Packages'e geçmeye zorlanabilirler.

Her ne kadar Microsoft'un son birkaç yıldır yaptığı açık kaynağa yatırım işlerini beğeniyor olsam da bu kadar büyük iki geliştirici hizmeti ve aracının tek bir firmanın elinde olması beni endişelendirmiyor değil. Bu konuda siz ne düşünüyorsunuz? Yorumlar bölümünde konuşalım.

GitHub Mobil, Beta programından çıktı

Geçtiğimiz sene kasım ayında düzenlenen GitHub Universe 2019 etkinliğinde duyurulan GitHub Mobile Beta Program for iOS ve bu yılın başlarında duyurulan GitHub Mobile Android Beta Program haberlerinden sonra sonunda GitHub'ın mobil uygulamaları Beta'dan çıktı ve herkesin kullanımına açıldı.

Github Mobile uygulamasını indirmek için:

Daha önce iki işletim sistemi için de bu konuyu ele almıştık. Hatta ben direkt iOS sistemindeki Beta programına kayıt olmuş ve kısa bir inceleme de yapmıştım (bkz: Yazılım Gündemi - 18). Android için Beta programından da bu yılın ilk yazılım gündemi yazılarında (bkz: Yazılım Gündemi - 2020/03) bahsetmiştim. Ben iOS üzerindeki Beta programından kullanmaya devam ediyorum. GitHub'ın bu eksikliği gidermesi güzel ama uygulamanın daha çok gelişmesi gerek. Örneğin şu an sadece master branch'ı üzerindeki kodları görüntüleyebiliyoruz, branch değiştirme özelliği uzun zamandır istenmesine rağmen henüz eklenmiş değil. Bakalım, ben Beta programında kalmaya ve gelişmelerden sizleri haberdar etmeye devam edeceğim.

Github, "yanlışlıkla" popüler JavaScript framework'ü Aurelia'nın tüm depolarını kilitledi

https://twitter.com/eisenbergeffect/status/1240671036292485121

Başlığa "popüler" yazmamın nedeni framework'ün ana deposunun yaklaşık 11.3K star almış olması, yoksa ben de ismini ilk defa duyuyorum. Gerçekten ilginç bir olay, Amerika merkezli bir şirket tarafından açık kaynak hale getirilmiş bir yazılımın tüm GitHub depoları (Aurelia.io sitesi de GitHub üzerinde host ediliyormuş), yine Amerika'nın yaptırımları nedeniyle herkes için erişime engelleniyor. Geliştiriciler ve katkı sağlayanlar kodlarına erişemiyor.

GitHub CEO'unun HackerNews'deki konunun altında yaptığı açıklama.

Her ne kadar olay birkaç saat içerisinde çözümlenmiş olsa da onlarca depo'nun bu kadar bir "yanlışlık" nedeniyle erişime kapatılabiliyor olması beni rahatsız etti. İlk yazılım gündemi yazılarının birinde (bkz: Yazılım Gündemi - 3) GitHub'ın, Amerika'nın ticari yaptırımlarını uygulamaya başladığından ve birçok Kırım ve İran'lı geliştiricinin bu durumdan etkilendiğini konuşmuştuk. Ben zaten o zamandan beri her ihtimale karşı tüm depolarımı bilgisayarıma indirmiştim ve farklı yerlere yedeklemiştim ama bu vesile ile size tekrardan hatırlamış olayım. Levent Abi'nin dediği gibi: "Bulut dediğin başkasının bilgisayarıdır. Gün gelir de 'Sana hizmet vermiyorum kardeşim' derse, öylece ortada kalırsın!"

JDK 14 GA yayınlandı

Geçtiğimiz aylar boyunca Release Candidate sürümleri yayınlanan JDK 14 sürümü sonunda genel uygunluk (general availability) duruma geldi ve bu hafta içerisinde yayınlandı. JDK 14 ile gelen birkaç özelliği incelleyelim.

JEP 305: Pattern Matching for instanceof (Preview)

Henüz ön-izleme durumunda olan bu özellik sayesinde aşağıdaki instanceof kullanımı daha sade bir hal aldı.

if (obj instanceof String) {
    String str = (String) obj;
    // str değişkeni ile işlemler
}

Bu kullanım çok fazla yaygın fakat artık bu satırları aşağıdaki şekilde tek satıra indirebileceğiz:

if(obj instanceof String str) {
    // str burada kullanılabilir
} else {
    // str burada kullanılamaz
}
JEP 356: Records (Preview)

Java ya da nesne tabanlı herhangi bir dille biraz olsun haşır neşir olmuşsanız aşağıdaki sınıf yapısı size de çok tanıdık gelecektir:

public class Kisi {
    private String isim;
    private String soyisim;

    public Kisi(String isim, String soyisim) {
        this.isim = isim;
        this.soyisim = soyisim;
    }

    public String getIsim() {
        return this.isim;
    }

    public void setIsım(String isim) {
        this.isim = isim;
    }

    public String getSoyisim() {
        return this.soyisim;
    }

    public void setSoyisim(String soyisim) {
        this.soyisim = soyisim;
    }
}

Gördüğünüz gibi basit bir kişi bilgisi tutmak için bile bu kadar kod yazmamız gerekiyor (elbette bu yapının böyle olmasının çok doğru nedenleri mevcut) ama bu JDK sürümü ile birlikte hayatımıza giren yeni tanımlama şeklide Records ile yukarıdaki tüm kodları şu şekilde tek satıra indirebilirsiniz:

record Kisi(String isim, String soyisim) { }

Artık bunu da aynı sınıfmış gibi kullanabilirsiniz:

Kisi eren = new Kisi("Eren", "Hatırnaz");

String isim = eren.isim();
String soyisim = eren.soyisim();

Fakat bu özellim hem şu an ön-izleme durumunda, yani henüz çalışan kodlarınıza eklemek için çok erken, hem de bazı kısıtlamaları var:

  • Record kendisiyle birlikte içerisindeki tüm veri alanlarını 'final' olarak işaretliyor. Dolayısıyla bu sınıfdan başka bir sınıf türetemiyor ve bir obje oluşturduktan sonra değişkenleri üzerinde değişiklik yapamıyoruz.

Bunun gibi Record özelliğine ait diğer kurallar için alt konu başlığına eklediğim bağlantıya tıklayabilir ya da Rahman Usta tarafından kodedu sitesinde yazılmış bu yazıyı okuyabilirsiniz.

JDK 14 ile gelen diğer özellikler için konu başlığına eklediğim bağlantıya tıklayabilir ya da 28 Mart tarihinde online olarak gerçekleşecek bu Webinere kayıt olabilirsiniz: Online Java 14 Webineri - İstanbul Java User Group.

Eclipse 4.15 (2020-03) sürümü yayınlandı

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

Eclipse 2020-03 sürümüne JDK 14 desteği eklemek için Eclipse Marketplace üzerinden şu eklentiyi kurabilirsiniz: Java 14 Support for Eclipse 2020-03 (4.15)

.NET 5 Preview 1 sürümü duyuruldu

Microsoft'un ".NET'in geleceği" olarak isimlendirdiği ve klasik .NET Framework ile .NET Core'un birleşmiş hali .NET 5 sürümünün ilk ön-izleme sürümü bu hafta içerisinde yayınlandı. Preview 1 ile birkaç performans iyileştirmesi de içeren güncellemeler herkes tarafından erişilebilir durumda. Elbette production ortamında çalışan uygulamalarınızı hemen geçirmek büyük risk olacaktır ama kişisel projeleriniz için ufaktan kullanmaya ve Microsoft'a geri bildirim göndermeye başlayabilirsiniz.

Mozilla, Firefox'dan FTP desteğini kaldırıyor

2020 Haziran ayında yayınlanması planlanan Firefox 77 Stable sürümü ile Mozilla takımı, Firefox içerisinden FTP desteğini "varsayılan olarak kapalı" hale hale getirecek ve sonraki versiyonlarda ise desteği tamamen kaldırmayı planlıyor. Tarayıcı üzerinden FTP kullanmak uzun zaman pek tercih edilen bir şey değil zaten, o yüzden bu desteğin kalkacak olması çok da sürpriz olmadı. Zaten Firefox 61 sürümüyle, web siteleri içerisinde yer alan ftp:// uzaktılı içerikleri (resim, müzik vb.) engellemişti. Firefox'un bu desteği kaldırmasının ardında ise güvenlik sorunları yatıyor. FTP, kullanıcı adı ve şifre dışında iletişimle ilgili bir güvenlik katmanı barındırmayan bir protokol olduğu için trafik kolayca izlenebiliyor. Google'un Chrome tarayıcısı da aynı şekilde desteğini sonlandırmaya hazırlanıyor. O da tarayıcıdaki ftp uzantılı bağlantıları sistemde yüklü olan ftp istemcisine yönlendirecek. Bir mail adresine tıkladığınız Outlook vb. programların açılması gibi.

Yine de Firefox üzerinde ftp kullanmakta ısrarcıysanız about:config sayfasına girip, network.ftp.enabled değişkenini true olarak değiştirebilirsiniz

Ayrıca bu hafta içerisinde ilginç de bir olay gerçekleşti: Coronavirüs nedeniyle Firefox ve Chrome, TLS 1.0 ve TLS 1.1'e tekrar destek vermeye başladı. HTTPS bağlantıların gerçeklemesini sağlayan TLS protokolünün bu eski sürümleri aslında iki tarayıcıdan da kaldırılmıştı fakat bu hafta içerisinde bu değişiklikler geri alındı. Çünkü bazı devlet siteleri hala daha eski protokolleri kullandığı için kullanıcıların erişememesi söz konusu olabilirdi. Coronavirüs gündemdeyken bu tarz protokol versiyonu yükseltme işleri de öncelik kapsamında olmadığı için Firefox ve Chrome'da böyle bir şey yapma gereği duydu.

Firefox 74.0 sürümünün değişiklik notları sayfasındaki geri alma duyurusu

Windows Terminal Preview v0.10 sürümü yayınlandı

Microsoft'un Terminal takımı geliştirmelere devam ediyor. Bu hafta yayınlanan sürümle birlikte Windows'un yeni terminal uygulamasının ön-izleme v0.10 sürümüne fare desteği eklendi. Artık destekleyen konsol uygulamaları üzerinde fare ile de giriş yapılabilecek.

Eklenen diğer özellik ve geliştirmeler için konu başlığına eklediğim bağlantıya tıklayabilirsiniz.

Diğer Haberler

BeğenFavori PaylaşYorum yap

#YazılımGündemineMalzeme

Ionic cli 6.3.0 yayınlandı.
Yine update çekerken fark ettim 🙂

https://github.com/ionic-team/ionic-cli/releases/tag/%40ionic%2Fcli%406.3.0

ionic-team/ionic-cli

The Ionic command-line interface. Contribute to ionic-team/ionic-cli development by creating an account on GitHub.
BeğenFavori PaylaşYorum yap

#YazılımGündemineMalzeme Tesla model 3' te güvenlik açığı çıkmış. 🙂
Bildirim yapıldıktan sonra güncelleme ile sorun çözülmüş.

https://safekeepsecurity.com/about/cve-2020-10558/

CVE-2020-10558 | Tesla Model 3 Vulnerability - Disable Autopilot Notifications,...

Tesla Model 3 vehicles in any release before 2020.4.10 allows Denial of Service to occur, which allows the disabling of autopilot, speedometer, etc.
BeğenFavori PaylaşYorum yap
  • Eren Hatırnaz @erenhatirnaz

    Yazılımcılar olarak kullandığımız bir kütüphane ya da araçta açık bulunmuş olsa alırdım ama bu pek öyle değil hocam. Sadece Tesla'da yazılım geliştiren kişileri ve Tesla aracı olanları etkiliyor. #HaftalıkGündemeMalzeme olabilir.

#YazılımGündemineMalzeme TensorFlow 2.2.0 rc1 sürümü yayınlanmış. Tebrik etmek lazım. Hızlı bir şekilde reaksiyon gösterip toplantılarını Youtube üzerinden yaptılar üzerine sürümlerini aksatmıyorlar 🙂

https://github.com/tensorflow/tensorflow/releases/tag/v2.2.0-rc1

tensorflow/tensorflow

An Open Source Machine Learning Framework for Everyone - tensorflow/tensorflow
BeğenFavori PaylaşYorum yap