Phantom paylaştı.

Yazılım Gündemi - 2 (15-21 Temmuz 2019)

< Önceki Gündem     |   15 - 21 Temmuz 2019   |     Sonraki Gündem >

GNU/Linux sunucuları hedef alan 3 zararlı Python kütüphanesi PyPI üzerinden silindi

ReversingLabs isimli güvenlik firması, PyPI (Python Package Index) üzerinde neredeyse 20 aydır (Kasım 2017'den beri) bulunan ve sadece GNU/Linux sistemlere kurulduğunda aktif olan zararlı kod parçaları içeren 3 kütüphaneyi tespit etti. ruri12 kullanıcı adı altında yayınlanmış bu üç kütüphanenin isimleri şunlar: libpeshnx, libpesh ve libari. Üzerinde çalıştığınız ya da bağımlılık olarak projenize eklediğiniz kütüphanelerde bu paket isimleri var mı diye bakmanız iyi olacaktır.

Zararlı kütüphanenin aylara göre indirilme sayıları

Kullanıcı tarafından çalıştırılınca sisteme uzaktan komut göndermeye olanak sağlayan bu arka kapı sadece libpeshnx isimli kütüphanede olsa da, diğer 2 kütüphanenin de zararlı kod parçaları içerdiği tespit edilmiş.

Güvenlik firmasının uyarısı üzerine bu 3 pakette PyPI sistemi üzerinden silinmişler. İncelemek için kaynak kodlarını bulmaya çalıştım fakat bulamadım. Geçtiğimiz hafta da buna benzer "kütüphanede arka kapı bulundu" haberi vardı, görünen o ki bu tarz haberler çıkmaya devam edecek ve artık umarım geliştirici camiası olarak bazı şeyleri sorgulamaya başlamamıza vesile olacak.

Python 3.8 ile gelecek olan yeni özellikler belli oldu

Python 3.8.0 Beta 1 sürümü 4 Haziran'da yayınlanmıştı. Beta 2 sürümü de 4 Temmuz'da yayınlandı. Plan dokümanında belirttiklerine göre Beta 1'den sonra yeni özellik (feature) eklenmeyecek, hata gidermeleri ve iyileştirmelere odaklanılacak. Önümüzdeki aylarda da Beta süreci devam edecek ve ardından ilk Release Candidate sürümünün 30 Eylül'de, final sürümünün ise 21 Ekim'de duyurulması bekleniyor. İlgimi çeken özellikleri inceledim, diğerlerini de siz inceleyebilirsiniz.

':=' Walrus Operatörü [PEP572 - Assignment Expressions]

Python 3.8 ile birlikte gelecek olan walrus operatorü

Yukarıdaki örnekte de görüldüğü gibi, bu yeni operator sayesinde, önceden if sorgusunda kullanacağımız değişkeni tanımlamamız gerekirken artık direkt if sorgusu içerisinde tanımlayıp, if'in içerisinde kullanabileceğiz. Benim de zaman zaman eksikliğini hissettiğim bir özellikti, gelmesine sevindim.

Sadece pozisyonel parametreler [PEP 570 - Positional-Only Parameters]

Python'da bir fonksiyona parametre gönderirken ille de sırayla göndermek zorunda değiliz. Mesela def merhaba(isim, mesaj) diye bir fonksiyon varsa, bu şekilde de parametre gönderebiliyoruz: merhaba(mesaj="deneme", isim=eren). Fakat artık eğer istenirse sadece pozisyonel parametreler de tanımlanabilecek. Çok sık Python yazmadığım için tam olarak hangi sorunu çözüyor bilemiyorum ama eklendiğine göre ihtiyaç vardı demek ki. Detaylı bilgi için mutlaka PEP sayfasına bakın. Özellikle "How To Teach This" başlığı altındaki kısıma bakmanızı tavsiye ederim. Sadece özelliği geliştirip bırakmamışlar, aynı zamanda bunun insanlara nasıl öğretileceğini de açıklamışlar.

Diğer yenilikler için bu PEP sayfasını ziyaret edebilirsiniz.

C++20 için komite taslağı hazırlanmış

Bildiğiniz gibi C++ programlama dilinin her 3 yılda bir yeni sürümü çıkıyor. Önümüzdeki yıl çıkacak olan C++20 için de ISO C++ Komitesi toplanmış ve yeni eklenecek olan özelliklere karar vermişler. C++ diline pek hakim olmadığım için yeni eklenecek özellileri de pek inceleyemedim fakat bağlantısını verdiğin reddit gönderisi çok güzel hazırlanmış. Liste halinde yeni özellikleri ve diğer bilgileri orada bulabilirsiniz. C++20'nin 2020 ilkbaharında yayınlanması bekleniyor.

std::format ile metin biçimlendirme

Diğer birçok programlama dilinde de karşılaştığımız string içerisinde değişken kullanmaya olanak sağlayan özellik C++20'de geliyor. Örnek vermek gerekirse:

Eskiden bu şekilde yazdığımız satır:

cout << "Merhaba, " << kullanici_adi << ". Toplam " << okunmamis_mesaj_sayisi << " adet okunmamış mesajınız var.";

Artık bu şekilde sadeleşecek:

std::format("Merhaba, {}. Toplam {} adet okunmamış mesajınız var", kullanici_adi, okunmamis_mesaj_sayisi);

Go geliştiricileri, dilin içerisine hata kontrol fonksiyonu ekleme isteğini reddetti

5 Haziran'dan beri Github üzerinde tartışılan bu konu, 17 Temmuz'da issue sayfasını açan takım üyesinin yazdığı yorum ile reddedildiği duyuruldu. Diğer programlama dillerinde try {} catch () {} gibi söz dizimleri (syntax) ile sıkça gördüğümüz özellik Go dilinde henüz mevcut değil. Şu an şöyle bir yapı kullanılıyor:

f, err := os.Open(filename)
if err != nil {
  return …, err
}

Bu kullanımdaki sorun 2018'de Russ Cox tarafından detaylıca raporlanmıştı. Özetlemek gerekirse, yukarıdaki kullanım kod karmaşıklığını arttırdığı gibi kodun temiz görünmesinin de önüne geçiyor, iddiası var. Raporda taslak olarak bir çözüm önerilmiş fakat sonuç olarak 2019 Haziran'da try fonksiyonu tasarı olarak yazılmış ve bugün konuşulan bu halini almış:

f := try(os.Open(filename))

Görüldüğü gibi yukarıdaki yapıdan daha sade ve temiz bir hata yakalama olanağı sunuyor. Burada şunu belirtmekte fayda var: Dile yeni bir anahtar kelime (keyword) eklenmeyecek, yeni bir fonksiyon olarak eklenecek bu özellik. GitHub'daki tartışma çok uzun, yüzlerce yorum yazılmış hepsini okumam mümkün değil fakat issue yazarının hazırladığı tartışma özetlerini(1 2) okudum, tüm tartışmayı okuyamadığım ve dile de pek hakim olmadığım için yorum yapamayacağım fakat sonuç olarak bu istek reddedilmiş. Anladığım kadarıyla pek sağlıklı bir tartışma ortamı da kurulamamış gözüküyor.

MSRC organizasyonu güvenli programlama dillerini keşfetmeye Rust ile başladı

Microsoft Security Response Centre organizasyonu, bloglarında bu hafta yayınladıkları blog yazısı ile birlikte yeni bir yazı serisine başladıklarını duyurdu. Bu yazı serisinin amacı güvenli programlama dillerini keşfetmek ve incelemek olacakmış. Mozilla tarafından geliştirilen, son zamanlarda özellikle bellek-korumalı (memory-safe) yapısı nedeniyle popülaritesi artan Rust programlama dilini de bu yazı serisi için başlangıç olarak seçmişler. Çalışmalarını takip etmeye çalışacağım.

ABD Finansal Hizmetler Komitesi'nde Rust konuşuldu

Komitenin toplanma nedenini tam olarak bilmiyorum fakat Facebook'un geliştirdiği kripto para Libra hakkında olduğu açıkça belli. Komite üyesi, Facebook'dan yetkili olduğunu düşündüğüm kişiye "GitHub deponuza baktım. Projenin büyük bir bölümünde Rust kullanıyor. Rust neden seçildi? Rust dilinin güvenlik için yeterli olduğuna inanıyor musunuz?" şeklinde bir soru sordu. Facebook yetkilisinin verdiği cevaptan sonra komite üyesi, bu sefer de "Libra, Rust dilinin Nightly Build (stabil olmayan) sürümünü kullanıyor. Nightly Build sürümde tam olarak hangi özelliklere ihtiyacınız var ve neden stabil sürümleri kullanmıyorsunuz?" şeklinde bir soru soruyor. Bir bürokratın bu konulara bu kadar hakim olması beni şaşırttı. Bizdeki "bulut bilişim" vakası akıllara gelince insan imreniyor tabi…

JDK 13 sürümü "Rampdown" ikinci aşamaya geçti

OpenJDK takımı 13 sürümü için yeni özellik (feature) seti kabul etmeyi durdurdu. Bu aşamadan sonra yeni özellik eklemek yerine raporlanan hataları gidermeye odaklanacaklarmış. Planladıkları takvimine göre ilk RC (Release Candidate) sürümü 8 Ağustos, final RC sürümü ise 22 Ağustos tarihinde yayınlanacak gibi gözüküyor. Sürümün genel kullanılabilirlik durumuna gelmesi de 17 Eylül tarihini bulacak.

Google, açık bulanlara verilen ödül miktarlarını arttırdı

Yeni ödül tablosu bu şekilde:

Hadi bakalım klavyeler çalışsın! 🙂

Diğer Haberler

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

BeğenFavori PaylaşYorum yap

Fan Restorasyon Rehberi

https://teknoseyir.com/durum/1069809Banana pi

@aytacesmebasi nin gönderdiği fanlardan 2 si iyi durumdaydı. Fakat diğer ikisinin biraz temizlik ve ufak bir operasyon geçirmesi gerekti. 😀

 

 

Elimde fazladan kablo ve sleeve vardı, direk lehimleyip makaron ile sabitledim.

 

 

Son olarak da soket için gerekli pinleri taktım.

 

Mutlu son 🙂

BeğenFavori PaylaşYorum yap

Ev yapımı raspberry pi el terminali

Özellikler

  • Raspberry Pi 3
  • Klon Xbox 360 Chatpad modifiyeli klayve
  • 800x600 5" Dokunmatik Ekran
  • Lipo 7.2V 2000mAh Batarya (LM2596 Buck Converter ile )
  • Klayveyi modifiye ederken kullandığım (MEGA32u4 & Arduino Leonardo) sayesinde tuşların tamamını özelleştirme yeteneği

Geliştirmesi planlanan kısmı;

  • NRF24L01 modülleri entegre edilebilir
  • Piller için şarj, yüzde görüntüleme ve BMS sistemi

 

BeğenFavori PaylaşYorum yap
  • Coupe @coupe

    Nasıl yaptığınızı biraz açıklasanız?

    • Phantom @phantom

      Elimdeki uygun ölçülerdeki kutuyu pleksi ve dremel kullanarak hazırladım. Çerçeve yapımında pertinax parçaları ve siyah bant kullandım. En zorlayan kısım klayve oldu. Aliexpress te satılan klon klavyelerde pic serisi entegre yerine bilinmeyen birşey olduğunu elime ulaşınca fark ettim. Farklı firmware atma şansı kalmadı. Onun yerine siyah silikon dökülü entegreyi kazıyarak klayveyi kendim tarama yapmaya karar verdim. İnternette araştırırken https://hackaday.io/page/2329-xbox-chatpad bu projeyi gördüm. Bir dev board üzerine test pointlere kablo çekerek chatpad üzerinde taramayı manuel olarak yaptırınca klayve çalışır hale geldi. Pil olarak elimde boost converter olmadığı için 2 lipo yu seri kullandım ve tamamı çalışır hale geldi.

  • Fırat ➕ @frt

    Elimdeki 18650 piller ile kullanmak için zamanında bms ve pil yüzdesi için şu 2 ürünü almıştım ama araştırma ve test etme imkanım olmadı henüz.

    Korumasız 18650 pilleri aşırı şarj/deşarjdan korumak için bu ürün yeterli olur mu sizce? Birer tane de 2S olanlarından almıştım belki lazım olur diye o da sanırım hücreler arasındaki yük dağılımı dengelemeye de yardım ediyor değil mi? Hazır bilgili birini görmüşken sorayım istedim 🙂