Phantom paylaştı.

Yazılım Gündemi - 6 (12 - 25 Ağustos 2019)

< Önceki Gündem     |   12 - 25 Ağustos 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.

RestClient ve diğer 10 Ruby kütüphanesinin arka kapı içerdiği ortaya çıktı

Ruby kütüphanelerinin barındırıldığı RubyGems.org sitesindeki bilgileri çalınan geliştiricilerin projelerine, kurulduğu sunucuda arka kapı açan kod parçaları eklenmiş. Aynı olay strong-password isimli kütüphanenin de başına gelmişti (bkz: Yazılım Gündemi - 1). Yöntem aynı: RubyGems.org sitesindeki kullanıcı bilgilerini ele geçen hacker(lar), projeye zararlı kod parçaları eklemişler ve yeni versiyon çıkarak, kütüphaneyi kullananların zararlı kod parçalarını güncelleme ile edinmeleri sağlanmış.

Zararlı kod parçalarından bazıları kullanıcıların cookie bilgilerini çalmaya yönelikken, bazıları da sistemi kripto para madenciliği için kullanıyormuş. Daha teknik bilgiler için RestClient kütüphanesinin şu github sayfasına bakabilirsiniz. Saldırıdan etkilenen Ruby kütüphaneleri ve versiyonları ise şu şekilde:

  • rest-client: 1.6.10, 1.6.11, 1.6.12, 1.6.13
  • cron_parser: 0.1.4, 1.0.12, 1.0.13
  • coin_base: 4.2.1, 4.2.2
  • blockchain_wallet: 0.0.6, 0.0.7
  • bitcoin_vanity: 4.3.3
  • lita_coin: 0.0.3
  • coming-soon: 0.2.8
  • omniauth_amazon: 1.0.1
  • awesome-bot: 1.18.0
  • doge-coin: 1.0.2
  • capistrano-colors: 0.5.5

Zararlı kod içerdikleri anlaşılan bu versiyonlar RubyGems.org ekibi tarafından geri çekilmiş fakat olay anlaşına kadar bu kütüphaneler toplam 3.584 kez indirilmiş. Siz de mutlaka projelerinizde yukarıdaki kütüphanelerin ve versiyonların olup olmadığını kontrol edin ve tabii ki projenize bağımlılık eklerken daha dikkatli olun.

standard isimli JavaScript aracı terminal çıktısında reklam göstermeyi planlıyor

GitHub'da 21K yıldıza sahip, başka bir çok proje tarafından da kullanılan bu araç, fonlama konusunda yaşadığı sıkıntılardan ötürü terminal çıktısına açık kaynağı destekleyen bir firmadan reklam almayı planlıyor. Yani projenize standard aracını eklemek için npm install standard yazdığınızda aracın kurulumu sonrasında terminalde ve muhtemelen log dosyasında bir reklam göreceğiz. Açıkcası ben de şaşırdım fakat projenin github sayfasındaki issue altında yazılanları görünce biraz da olsa hak verdim.

Hepimiz açık kaynağın nimetlerinden fazlasıyla faydalanıyoruz fakat açık kaynak camiasına katkı sağlama konusunda ciddi eksikliklerimiz var. Girdiğimiz açık kaynak projelerin sitelerindeki "Bağış Yap" butonlarını görmezden geliyor, hatta sitedeki reklamları bile engelliyoruz. Üstüne bir de karşılaştığımız sorunları ya da hataları çözmek için az da olsa uğraşmak yerine direkt issue açıp ya da mail gönderip, 3-4 gün içerisinde sorumuzun çözülmesini bekliyoruz. Lafa gelince hepimiz ortamlarda açık kaynağın faydalarından, nimetlerinden, ne kadar süper bir şey olduğundan bahsediyoruz; fakat, konu maddi ve/veya manevi destek olmaya gelince ne elimizi cebimize attıyoruz, ne de klavyemize dokunduk.

Terminal çıktısına reklam almak belki de doğru bir yöntem değil, fakat, şu çok açık ortada ki: Geliştirici camiası olarak açık kaynak ile ilgili algılarımızı değiştirme zamanımız geldi. Açık kaynak camiasından aldığımızın ne kadarını geri verdiğimizin/verebildiğimizin sorusunu kendimize sormamız gerekiyor. Açık kaynak araçları/kütüphaneleri kullanarak projeler yapıp bir güzel paramızı kazanıyoruz ama hiç birimiz, "kardeşim ben senin projeni kullanarak para kazandım, al bu da benden sana bu aracı geliştirmeye devam edebilmen için xx ₺/$/€ bağış" ya da "#504 numaralı issue sayfasındaki sorunu çözdüm. İnceledikten sonra kodlarımı kabul edebilir misin?" demiyoruz. Ohh, ne rahat!...

Bu konuda siz ne düşünüyorsunuz? Kullandığınız bir araç/kütüphane bu şekilde reklam alsa -ki şu an almayı planlıyor- tepkiniz ne olurdu? Reklam bazlı gelir modeli yerine açık kaynak projeler için nasıl bir gelir modeli oluşturulabilir? Yorum kısmında konuşalım.

Git versiyon kontrol sisteminin 2.23 sürümü duyuruldu

Hepimizin her gün kullandığı popüler versiyon kontrol sistemi git 2.23 sürümü ile yenilikler ve hata gidermelerini sunuyor. Öne çıkan bazı özellikler bu şekilde:

git checkout için yeni deneysel alternatif komutlar

Bildiğimiz gibi git checkout komutu hem dallar arasında geçiş yapmak için hem de dosyaları son commit'deki hallerine resetlemek için kullanılabiliyor. Üstelik git checkout --branch olmayan-dal gibi bir kullanımla da olmayan bir dalı yaratıp, ona geçiş yapma özelliği de var. İki farklı işlevin bir komuta toplanmasından dolayı benim de zaman zaman garipsediğim bir komut. Bu sürümde bu işlevleri ayıran deneysel iki komut eklenmiş.

  • git switch: Dallar arasında geçiş yapmak, yeni dal oluşturup ona geçmek için kullanılacak. Dokümantasyon. Örnek:
    $ git switch yeni-ozellik
    
    Switched to branch 'yeni-ozellik'
    Your branch is up to date with 'origin/yeni-ozellik'
    
  • git restore: Verilen dosyası son commit'deki haline geri döndürmek için kullanılacak. Dokümantasyon. Örnek:
    $ git restore program.c
    

Diğer özellikler ve değişiklikler için konu başlığındaki bağlantıya tıklayabilir ya da GitHub Blog'da yayınlanan bu yazıyı okuyabilirsiniz.

Bitbucket, Mercurial desteğini sonlandırmaya hazırlanıyor

Bitbucket, GitHub gibi bir uzak depo sunucu hizmeti veren bir site. GitHub'dan farklı olarak sadece git ile değil, alternatif bir versiyon kontrol sistemi olan mercurial ile de çalışmayı destekliyordu. Fakat artık Bitbucket'da bu desteğini sonlandırmaya karar vermiş ve planlar yapılmış. 1 Şubat 2020 itibariyle kullanıcılar yeni Mercurial deposu oluşturulamayacak; 1 Haziran 2020 itibariyle de Bitbucket'de Mercurial desteği tamamen kalkacak ve Mercurial depoları da sunucudan silinecek. Desteğin kalkmasının nedenini söylemeye gerek yok sanırım. Artık hepimiz her yeni projede varsayılan olarak git kullanmaya başladık. Açıkcası ben Mercurial hiç kullanmadım, hatta öyle bir depo da hiç görmedim, bu yüzden nasıl bir sistem olduğu konusunda pek fikrim yok.

Bu haberi duyan, %100 açık kaynak ve özgür yazılım olarak geliştirilen Sourcehut da bir blog yazısı yayınlayarak, Bitbucket'dan kovulan Mercurial kullanıcılarını kendi sitesine davet etti.

Mikrokontrolcüler için Qt kütüphanesi tanıtıldı

Qt on microcontrollers

C++ deneyimim konsola "Merhaba dünya" yazdırmaktan öteye gitmediği halde bu gelişme beni bile heyecanlandırdı. Özellikle videodaki gibi düşük sistem gereksinimleri ile çalışan cihazlarda akıcı ve güzel tasarımlı ekranlar hazırlayabileceksek, mutlaka bir ara Qt kütüphanesini incelemem gerekecek.

Teknik detayları henüz açık değil fakat konuyla ilgili Qt takımı, 4 Eylül tarihinde İnternet üzerinden soru&cevap kısmının da olacağı bir webiner düzenleyecek. Sanırım webiner boyunca çok daha teknik kavramları anlatacaklardır. Buradan kendinize uygun saatteki webinere kayıt olabilirsiniz.

Etkinlik Duyurusu: Typed Properties ve dahası ile PHP 7.4

İstanbul PHP grubunun organize ettiği bu etkinlikte PHP 7.4 ile birlikte gelecek özellikler anlatılacak. Birkaç özelliği Yazılım Gündemi - 3 yazısında ben de anlatmıştım fakat PHP geliştirmeyle ilgilenen ve İstanbul'da olan arkadaşların mutlaka bu etkinliğe katılmasını tavsiye ederim, daha faydalı olacaktır.

Diğer Haberler

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

BeğenFavori PaylaşYorum yap
Önceki yorumları gör 7 / 11
  • Serdar @serdaracikyol

    Qt on microcontrollers 'u merak ettim sırf bunun için bir ekran edinebilirim.

  • Cem KOÇ @cemkoc

    Eline sağlık hocam. Yazılım piyasasını senden öğreniyorum. İlgilenmediğim konular dahi olsa aklımın köşesinde bir yerde duyulmuşluk yaratıyor. Teşekürler.

    Açık kaynak konusunda benim yaşadığım en kötü senaryolar kullandığım muhteşem bir programın artık geliştirilmiyor olması, terk edilmiş olması oluyor.

    Bilinç biraz daha artsa da bu işin bedava yapılmadığını insanlar öğrense. Ücretsiz hizmete alışan insanları buna ikna etmek evet güç olacak ama TS gibi kitlelerin daha hassas olacağın düşünüyorum. Açık kaynak bedeva olmak zorunda değildir. Açık, şeffaf, izlenebilir olmak zorundadır. Para yine lazım yani.

    Yeri gelmişken #PaypalTürkiyeyeGeriDönsün

    • Eren Hatırnaz @erenhatirnaz

      Rica ederim hocam, faydalı bir içerik oluşturabiliyorsam ne mutlu bana 🙂

      Açık kaynakdaki fonlama sorunlarına bir çözüm üretmek gerekiyor ya. Kendi basit bir ihtiyacın için yazdığın bir kütüphaneyi, insanların da işine yarasın diye açık kaynak paylaşıyorsun, sonra bir bakmışsın yüzlerce kullanıcısı olan bir projeye dönüşmüş. Herkes senden hata çözmeni, yeni özellikler eklemeni falan istiyor. Tamam, ilk başta bunu ücretsiz ve açık kaynak lisans ile yaptık fakat iş öyle bir noktaya geliyor ki, programlama yapıyor olmanın ve sorun çözüyor olmanın verdiği motivasyon bitiyor. Geliştirici de yeri geldiğinde kişisel zamanından ayırıp bu işleri yapıyor. Bir yerden sonra para, ihtiyaçlar ve zaman ayırmak için gerekli oluyor maalesef.

      Bu fonlama ve bağış meselesi bu aralar programlama çevrelerinde her topluluk tarafından konuşuluyor. Emacs topluluğundan, JavaScript topluluğuna kadar herkes açık kaynak projeleri nasıl fonlarız, nasıl ön plana çıkarıp destek oluruz bunu konuşuyor.

      Aynen PayPal'ın mutlaka geri gelmesi lazım. Hem ticaret yapanlar için kolaylık, hem de bizim için ödeme alma ve yapma aracı ama maalesef kısa vadede geri dönmeyecek gibi gözüküyor. Az da olsa bağış yapmak istediğim birkaç araça bu yüzden bağış yapamadım.

  • Özgür @ozgurg

    Patreon ver, destek olalım diyeceğim de Patreon'a kartımı kaydettiremiyorum.

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 🙂