22 puan yazan xguru 2024-10-28 | 10 yorum | WhatsApp'ta paylaş

Teknikler/araçlar/platformlar/geliştirme dilleri ve framework’ler alanlarındaki en son trendleri Hold/Assess/Trial/Adopt olmak üzere 4 aşamada görselleştirip açıklıyor

Kodlama asistanı anti-pattern'leri

  • Şaşırtıcı olmayan şekilde, bu Radar’da geliştiricilerin yaygın olarak kullandığı üretken yapay zeka ve LLM’lere ilişkin tartışmalar ağırlıkta
  • Pattern’ler kaçınılmaz olarak anti-pattern’lere yol açıyor; bu da geliştiricilerin kaçınması gereken bağlama özgü durumlar anlamına geliyor
  • Aşırı ısınmış yapay zeka alanında bazı anti-pattern’ler ortaya çıkmaya başladı:
    • insan-AI eşleşmesinin pair programming’i tamamen ikame edebileceği yönündeki yanlış düşünce
    • kodlama desteği önerilerine aşırı bağımlılık
    • üretilen kodda kod kalitesi sorunları
    • kod tabanının daha hızlı büyüme oranı
  • Yapay zeka, soyutlamaları kullanmak yerine sorunları kaba kuvvet yaklaşımıyla çözme eğiliminde
    • Örn.: Strategy tasarım pattern’i yerine onlarca koşul ifadesi kullanmak
  • Özellikle kod kalitesi sorunu, geliştiriciler ile mimarların "çalışıyor ama korkunç" koda saplanmamak için sürekli dikkat göstermesi gereken bir alanı öne çıkarıyor
  • Bu nedenle ekip üyeleri, birim testleri, mimari uygunluk fonksiyonları ve kanıtlanmış diğer yönetişim ve doğrulama teknikleri gibi iyi mühendislik pratiklerine daha fazla odaklanmalı
    • amaç, yapay zekanın kod tabanını karmaşıklıkla şifrelemek yerine çabayı gerçekten desteklediğinden emin olmak

Rust is anything but rusty - Rust hiç de paslanmış değil

  • Rust, giderek tercih edilen sistem programlama dili haline geliyor
  • Her Radar oturumunda Rust, konuşmaların bağlamında tekrar tekrar ortaya çıkıyor
  • Ele alınan pek çok araç Rust ile yazılıyor
  • Rust, eski sistem seviyesi yardımcı programların yerine geçerken veya daha iyi performans için ekosistemin bir bölümünü yeniden yazarken tercih edilen dil
  • Rust tabanlı araçlar için en sık kullanılan niteleme görünüşe göre "inanılmaz derecede hızlı"
  • Örneğin Python ekosisteminde, belirgin biçimde daha iyi performans sunmak için Rust tabanlı alternatifleri olan bir dizi araç bulunuyor
  • Dil tasarımcıları ve topluluk, önceki dillerin pek çok tuzağını daha az barındırırken olağanüstü çalışma hızı sunan; aynı zamanda sevilen bir çekirdek SDK, kütüphane ve geliştirme aracı ekosistemi oluşturmada başarılı oldu
  • Ekipteki birçok kişi Rust hayranı ve Rust kullanan geliştiricilerin çoğu da dile büyük değer veriyor gibi görünüyor

WASM’in kademeli yükselişi

  • WASM(WebAssembly), stack tabanlı sanal makine için ikili komut biçimidir
  • Çoğu geliştiricinin ilgi alanı için fazla ezoterik ve düşük seviyeli gelebilir, ancak insanlar bunun anlamını görüyor: tarayıcı sandbox’ı içinde karmaşık uygulamalar çalıştırabilme yeteneği
  • WASM, mevcut JavaScript sanal makinesi içinde çalışabildiği için geliştiricilerin daha önce yalnızca native framework’ler ve eklentilerle hayata geçirebildiği uygulamaları tarayıcıya gömmesini sağlıyor
  • Dört büyük tarayıcı (Chrome, Firefox, Safari, Edge) artık WASM 1.0’ı destekliyor; bu da sofistike, taşınabilir ve cross-platform geliştirme için heyecan verici olanaklar açıyor
  • Son birkaç yıldır bu standardı büyük ilgiyle takip ediyoruz ve artık meşru bir dağıtım hedefi olarak yeteneklerini göstermeye başlamasından memnunuz

Üretken yapay zeka araçlarında Kambriyen patlaması

  • Son birkaç Radar cildinde sunulan gidişatı izleyince, üretken yapay zekanın tartışmalarımızda öne çıkmasını bekliyorduk
  • Buna rağmen, dil modellerini destekleyen teknoloji ekosistemindeki patlamaya yine de şaşırdık:
    • guardrail’ler, değerlendirme araçları, agent oluşturma araçları, structured output işleri için framework’ler, vector database’ler, cloud servisleri ve observability araçları
  • Bu hızlı ve çeşitli büyüme birçok açıdan tamamen anlaşılır
  • İlk deneyim, yani bir dil modeline düz metin prompt’u vermenin sadeliği, yazılım ürün mühendisliğine dönüştü
  • Bu, insanların ChatGPT’ye ilk prompt’larını gönderdikten sonra kurulan hayallere ve abartılı iddialara ulaşmıyor olabilir; ancak birçok müşteride üretken yapay zekanın akıllıca ve verimli kullanımını görüyoruz ve tüm bu araçlar, platformlar ve framework’ler LLM tabanlı çözümleri prodüksiyona almakta önemli rol oynuyor
  • 2015 civarındaki JavaScript ekosistemi patlamasında olduğu gibi, bu kaotik büyümenin bir süre daha devam etmesini bekliyoruz

[Techniques]

Adopt

  • 1% canary

    • yeni yazılım sürümüne ilişkin erken geri bildirimi teşvik etmek ve riski azaltmak için canary deployment kullanımı
    • yeni özelliği kullanıcıların %1’ine rollout etme tekniği; ekiplerin geri bildirim toplamasını, etkiyi gözlemlemesini ve gerekirse müdahale etmesini sağlar
    • mobil uygulamalar, edge computing cihazları veya software-defined vehicle’lar gibi büyük ölçekli dağıtımlar için önemli
  • Component testing

    • test otomasyonu, etkili yazılım geliştirmenin temel taşıdır
    • frontend testlerine odaklanarak kararlılık ve hız sağlama
    • component testlerinde bellekte çalıştırmak için jsdom kullanımı
    • end-to-end testler için tarayıcı araçları kullanımı
  • Continuous deployment

    • mümkün olduğunda continuous deployment pratiğini benimseme
    • otomatik testlerden geçen tüm değişikliklerin otomatik olarak operasyona dağıtılması
    • hızlı geri bildirim döngüsü ve müşteriye hızlı değer sunumu sağlar
    • gerekli olgunluğa ulaşmak için yol haritası sunan Valentina Servile’in "Continuous Deployment" kitabına bakılabilir
  • Retrieval-augmented generation (RAG)

    • büyük dil modellerinin yanıt kalitesini iyileştirmek için tercih edilen pattern
    • Jugalbandi AI platformu gibi projelerde başarıyla kullanıldı
    • ilgili ve güvenilir belgelere dair bilgiler veritabanında saklanır
    • prompt ile ilgili belgeler bulunup zengin bağlam sağlamak için buna eklenir
    • daha iyi çıktı kalitesi üretir ve halüsinasyonları büyük ölçüde azaltır

Trial

  • Domain storytelling

    • domain-driven design (DDD), yazılım geliştirme yaklaşımımızın temeli haline geldi
    • birçok ekip için DDD’ye başlamak zor
    • domain storytelling, ilk domain modeli geliştirme için alternatif veya tamamlayıcı bir yaklaşım
    • iş uzmanlarının faaliyet açıklamalarını diyagramlaştırarak ortak anlayışı netleştirir
  • Fine-tuning embedding models

    • retrieval-augmented generation tabanlı LLM uygulamaları geliştirirken embedding kalitesi, arama ve yanıtlar üzerinde doğrudan etkiye sahiptir
    • belirli görev veya alanlar için embedding’lerin doğruluğu ve uygunluğu artırılabilir
    • alan odaklı LLM uygulamalarında hassas bilgi çıkarımı önemli olduğunda ekiplerimiz embedding fine-tuning uyguluyor
    • bu yaklaşımın artı ve eksilerini dikkate almak gerekir
  • Function calling with LLMs

    • verilen sorgu ve ilgili belgelere dayanarak LLM’in uygun fonksiyonu belirleyip çağırabilmesi
    • LLM’in metin üretiminin ötesinde işler yapabilmesini sağlayacak şekilde yeteneklerini genişletir
    • fonksiyon veya API tetikleme yoluyla LLM, daha önce tek başına kapsamı dışında kalan görevleri yerine getirebilir
    • LLM, iç sistemlere ve veritabanlarına bağlanabilir ya da tarayıcı üzerinden internet araması da yapabilir
    • retrieval-augmented generation ve agent mimarileri bağlamında anlaşılması gereken soyut bir pattern
  • LLM as a judge

    • büyük veri kümelerine dair sorulara yanıt verebilen sistemler inşa ediyoruz, ancak bu yanıtların nasıl elde edildiğini izlemek zor olabiliyor
    • LLM, başka bir sistemin (bu da LLM tabanlı olabilir) yanıtlarını değerlendirmek için kullanılır
    • ürün kataloğu arama sonuçlarının ilgililiğini ve LLM tabanlı chatbot’ların kullanıcıyı yönlendirme doğrultusunu değerlendirmede kullanılır
    • değerlendirici sistemin dikkatli şekilde kurulması ve kalibre edilmesi gerekir
    • verimlilik artışı ve maliyet düşüşü sağlayabilir
  • Passkeys

    • FIDO Alliance öncülüğünde, Apple, Google ve Microsoft desteğiyle ana akım kullanılabilirliğe yaklaşıyor
    • yeni bir giriş ayarlanırken bir anahtar çifti oluşturulur; web sitesi açık anahtarı alır, kullanıcı özel anahtarı saklar
    • giriş işlemi asimetrik şifreleme kullanılarak gerçekleştirilir
    • kullanıcının cihazında saklanan ve web sitesine gönderilmeyen özel anahtara sahip olunduğu kanıtlanır
    • Passkey’e erişim biyometri veya PIN ile korunur
    • çoklu platform kullanıcıları için, CTAP üzerinden anahtar oluşturmak ya da giriş yapmak için gereken cihaz dışında başka bir cihazda da Passkey saklanabilir
  • Small language models

    • Büyük dil modelleri (LLM) faydalıdır, ancak boyutları nedeniyle sorunlara yol açabilir
      • Prompt yanıtları için çok fazla hesaplama kaynağı gerekir; bu da onları yavaş ve pahalı hale getirir
      • Modeller özel yapıda ve büyük olduğundan üçüncü taraf bulutlarda barındırılmaları gerekir; bu da hassas veriler için sorun yaratır
      • Çoğu durumda model eğitimi aşırı pahalıdır
    • RAG deseni, temel modelin eğitimi ve fine-tuning ihtiyacını çözebilir; ancak maliyet ve gizlilik sorunları hâlâ sürer
    • Küçük dil modellerine (SLM) ilgi artıyor
      • Daha az ağırlık ve daha düşük hassasiyete sahiptirler (genellikle 3,5 milyar ila 10 milyar parametre)
      • Uygun bağlamda doğru şekilde ayarlandıklarında LLM'ler kadar iyi, hatta daha iyi performans gösterebilirler
      • Boyutları sayesinde edge cihazlarda çalıştırılabilirler
      • Google'ın Gemini Nano'su ve Microsoft'un Phi-3 serisi gibi örneklerle hızla gelişen bir alan
  • Synthetic data for testing and training models

    • Hassas veya erişimi kısıtlı veri kaynaklarına bağlı kalmadan gerçek senaryoları taklit edebilen yapay veri üretimini içerir
    • Yapılandırılmış veri kümeleri için sentetik veri geniş ölçüde incelenmiştir
    • Yapılandırılmamış veriler için sentetik verinin yeniden kullanımı artıyor
    • Özellikle LLM eğitimi veya fine-tuning için etiketli, alana özgü veri eksikliği yaşayan şirketler için önemlidir
    • Bonito ve Microsoft'un AgentInstruct gibi araçları, metin belgeleri ve kod dosyaları gibi ham kaynaklardan sentetik instruction-tuning verisi üretebilir
    • Manuel veri kürasyonuna olan maliyeti ve bağımlılığı azaltırken model eğitimini hızlandırır
    • Dengesiz veya seyrek veri sorunlarını çözmek için sentetik veri üretimi de önemli bir kullanım alanıdır
      • Dolandırıcılık tespiti veya müşteri segmentasyonu gibi görevlerde yaygındır
    • SMOTE gibi teknikler, veri kümesini dengelemek için azınlık sınıfı örneklerini yapay olarak üretir
    • Finans gibi sektörlerde GAN'ler, nadir işlemleri simüle ederek modellerin edge case'leri tespit etmede daha sağlam olmasını sağlar ve genel performansı iyileştirir
  • Using GenAI to understand legacy codebases

    • Üretken yapay zeka (GenAI) ve büyük dil modelleri (LLM), geliştiricilerin kod yazmasına ve anlamasına yardımcı olur
    • Özellikle belgeleri zayıf, güncelliğini yitirmiş veya yanıltıcı olan legacy kod tabanlarında faydalıdır
    • Legacy kod tabanlarını anlamak için GenAI kullanan teknikler ve ürünler daha da gelişiyor
    • Özellikle mainframe modernizasyonu için tersine mühendislik çalışmalarını desteklemede başarıyla kullanılıyor
    • Kod tabanına ilişkin bilgi grafiği üzerinden bilgi erişiminin yapıldığı retrieval-augmented generation (RAG) yaklaşımı umut vericidir
    • Bilgi grafikleri, LLM'lerin metin ve koddan çıkarabileceğinin ötesinde, kod tabanına dair yapısal bilgileri koruyabilir
    • Bu, özellikle kendi kendini açıklama gücü ve bütünlüğü zayıf legacy kod tabanlarında yardımcı olur
    • Ayrıca grafiği mevcut ve yapay zeka tarafından üretilmiş belgeler, dış bağımlılıklar ve iş alanı bilgisiyle daha da zenginleştirerek yapay zekanın işini kolaylaştırma fırsatı da vardır

Assess

  • AI team assistants

    • AI kodlama destek araçları çoğunlukla bireysel katkıcıların işini destekleme ve geliştirme bağlamında ele alınıyor
    • Ancak yazılım sunumu ekip işiydi ve öyle olmaya devam edecek; bu nedenle 10x mühendisler yerine 10x ekipler oluşturmaya yardımcı olacak AI ekip asistanlarını nasıl geliştirebileceğimizi araştırmamız gerekiyor
    • Araç pazarındaki son gelişmeler, bunu gerçeğe dönüştürmeye bir adım daha yaklaştırdı
      • Unblocked, ekibin tüm bilgi kaynaklarını birleştiren ve bunları ekip üyelerinin kullandığı araçlara akıllıca entegre eden bir platformdur
      • Atlassian'ın Rovo'su, en yaygın kullanılan ekip iş birliği platformlarına AI getirerek belgelere yönelik yeni arama ve erişim türleri sunar
    • Biz de bilginin güçlendirilmesi ve ekip pratiklerinin desteklenmesi için AI'nin potansiyelini doğrudan araştırıyoruz
      • Haiven ekip asistanını açık kaynak olarak sunuyor ve gereksinim analizi gibi kod dışı görevlerde AI desteğiyle öğrenmeye başlıyoruz
      Reklam
  • Dynamic few-shot prompting

    • Few-shot prompting'e dayanarak model yanıtlarını yönlendirmek için belirli örneklerin prompt'a dinamik olarak eklenmesi
    • Bu örneklerin sayısını ve ilgililiğini ayarlayarak bağlam uzunluğunu ve ilgililiği optimize eder, böylece model verimliliği ve performansı artar
    • scikit-llm gibi kütüphaneler, kullanıcı sorgusuyla en iyi eşleşen en ilgili örnekleri getirmek için en yakın komşu aramasını kullanarak bu tekniği uygular
    • Modelin sınırlı bağlam penceresini daha iyi kullanır ve token tüketimini azaltır
    • Açık kaynak SQL üreticisi vanna, yanıt doğruluğunu artırmak için dinamik few-shot prompting kullanır
  • GraphQL for data products

    • İstemcilerin ürünü tüketmesi için veri ürünlerinin çıkış portu olarak GraphQL kullanılması tekniği
    • GraphQL kullanılarak temel veri karmaşıklığını soyutlayan ve istemcilere daha tutarlı, yönetimi daha kolay bir arayüz sağlayan birleşik bir API katmanı oluşturulması
    • Veri ürünlerinde GraphQL kullanıldığında tüketiciler, veri biçimlerini ve ilişkileri GraphQL şeması üzerinden sorunsuz biçimde keşfedebilir ve aşina oldukları istemci araçlarını kullanabilir
    • Ekiplerimiz bu tekniği, LLM yardımıyla büyük veri içgörülerini keşfetmeye ve ortaya çıkarmaya yönelik belirli kullanım senaryolarında araştırıyor
      • LLM, kullanıcı prompt'u ve referans amaçlı GraphQL şemasına dayanarak GraphQL sorguları oluşturur
  • LLM-powered autonomous agents

    • Autogen ve CrewAI gibi framework'lerin ortaya çıkmasıyla tek ajanlı ve statik çok ajanlı sistemlerin ötesine geçen bir gelişim yaşanıyor
    • Karmaşık etkinliklerin birden çok küçük göreve bölünmesi ve her ajana belirli bir rol atanarak bunların yürütülmesi tekniği
    • Geliştiriciler, görevleri yerine getirmek için önceden yapılandırılmış araçlar kullanabilir; ajanlar da birbirleriyle konuşup akışı koordine edebilir
    • Hâlâ erken geliştirme aşamasında ve ekiplerimiz ajanların sonsuz döngülere girmesi veya kontrolsüz davranışlar sergilemesi gibi sorunlarla karşılaştı
    • LangGraph gibi kütüphaneler, akışın grafik olarak tanımlanabilmesi sayesinde ajan etkileşimleri üzerinde daha fazla kontrol sağlar
    • Bu tekniği kullanırken zaman aşımı ve insan gözetimi dâhil fail-safe mekanizmalarının uygulanması önerilir
  • Observability 2.0

    • Geleneksel ve heterojen izleme araçlarından, tek bir veri deposundaki yapılandırılmış ve yüksek kardinaliteli olay verilerinden yararlanan birleşik bir yaklaşıma geçiş
    • Zengin ve ham olayların ayrıntılı metadata ile birlikte yakalanması, kapsamlı analiz için tek bir güvenilir kaynak sağlar
    • Olayların ham hâliyle saklanması korelasyonu basitleştirir, gerçek zamanlı ve adli analizleri destekler ve karmaşık, dağıtık sistemlere dair daha derin içgörüler sağlar
    • Yüksek çözünürlüklü izleme ve dinamik inceleme yetenekleri sunar
    • Performans darboğazı olmadan ayrıntılı inceleme için yüksek kardinaliteli ve yüksek boyutlu veri yakalamaya öncelik verir
    • Birleşik veri deposu karmaşıklığı azaltır, sistem davranışına dair tutarlı bir görünüm sunar ve gözlemlenebilirlik pratiklerini yazılım geliştirme yaşam döngüsüyle daha yakından hizalar
  • On-device LLM inference

    • Artık büyük dil modelleri (LLM), web tarayıcılarında ve akıllı telefonlar ile dizüstü bilgisayarlar gibi edge cihazlarda çalıştırılabiliyor
    • Verileri buluta göndermeden hassas verileri güvenli biçimde işleyebilir, edge computing ve gerçek zamanlı görüntü/video işleme gibi görevlerde çok düşük gecikme sunabilir, hesaplamayı yerelde yaparak maliyetleri düşürebilir ve internet bağlantısının kararsız olduğu veya hiç olmadığı durumlarda da işlev sunabilir
    • Araştırma ve geliştirme açısından çok aktif bir alan; daha önce Apple Silicon üzerinde verimli makine öğrenimi için açık kaynak framework olan MLX öne çıkarılmıştı
    • Transformers.js ve Chatty gibi yeni araçlar ortaya çıkıyor
      • Transformers.js, ONNX Runtime kullanarak tarayıcıda transformer çalıştırabilir (PyTorch, TensorFlow ve JAX'tan dönüştürülmüş modelleri destekler)
      • Chatty, WebGPU'dan yararlanarak LLM'leri tarayıcıda yerel ve gizli şekilde çalıştırır ve zengin özellikli AI deneyimleri sunar
  • LLM’lerden yapılandırılmış çıktı

    • Dil modellerinin yanıtlarını tanımlı bir şemayla sınırlama pratiğini ifade eder
    • Genelleştirilmiş bir modele belirli bir formatta yanıt vermesi söylenerek veya JSON gibi “yerel” çıktı için model fine-tune edilerek elde edilebilir
    • OpenAI artık yapılandırılmış çıktıyı destekliyor; böylece geliştiriciler model yanıtlarını sınırlamak için JSON şeması, pydantic veya Zod nesneleri sağlayabiliyor
    • Özellikle function calling, API etkileşimleri ve harici entegrasyonlar gibi doğruluk ve biçim uyumunun önemli olduğu durumlarda faydalı
    • Yalnızca kodla arayüz kurma biçimini iyileştirmekle kalmıyor, aynı zamanda grafik çizimi için markup üretimi gibi geniş kullanım senaryolarını da destekliyor
    • Model çıktılarındaki halüsinasyon olasılığını azaltmaya da yardımcı oluyor

Hold

  • Yapay zeka tarafından üretilen koda karşı rehavet

    • GitHub Copilot ve Tabnine gibi yapay zeka kodlama asistanları son derece popüler
    • StackOverflow’un 2024 geliştirici anketine göre “tüm katılımcıların %72’si geliştirme için yapay zeka araçlarına olumlu ya da çok olumlu bakıyor”
    • Biz de faydalarını kabul ediyoruz, ancak kod kalitesi üzerindeki orta ve uzun vadeli etkilerine karşı temkinliyiz ve geliştiricileri yapay zeka üretimi koda karşı rehavete kapılmamaları konusunda uyarıyoruz
    • Birkaç olumlu deneyimden sonra yapay zeka önerilerini incelerken dikkati elden bırakmak kolaylaşıyor
    • GitClear’ın araştırması, daha hızlı büyüyen codebase eğilimleri gösteriyor; bunun da daha büyük pull request’lerle örtüştüğünden şüpheleniliyor
    • GitHub’un bu araştırması, söz konusu pull request birleştirme oranındaki %15’lik artışın gerçekten iyi bir şey olup olmadığını, yoksa insanların yapay zeka çıktılarına fazla güvenip daha büyük pull request’leri daha hızlı birleştirip birleştirmediğini sorguluyor
    • Hâlâ bir yıl önce verdiğimiz temel “başlangıç” tavsiyelerini kullanıyoruz; otomasyon yanlılığına, batık maliyet safsatasına, sabitleme etkisine ve inceleme yorgunluğuna dikkat etmek gerekiyor
    • Ayrıca programcıların yapay zekayı nerede ve ne zaman kullanmaları ve güvenmemeleri gerektiğine dair iyi bir zihinsel çerçeve geliştirmesi öneriliyor
  • Kurum genelinde entegrasyon test ortamları

    • Yaygın ama israf yaratan bir uygulama ve her şeyi yavaşlatıyor
    • Çoğunlukla kopyalanması zor ve geliştirme sürecinde darboğaz haline gelen değerli bir kaynak oluyor
    • Ortamlar arasındaki kaçınılmaz veri tutarsızlıkları ve yapılandırma yükü nedeniyle sahte bir güvenlik hissi veriyor
    • Alternatiflere (geçici ortamlar veya birden fazla on-premises test ortamı) yönelik yaygın itiraz gerekçesi ironik biçimde maliyet
    • Ancak kurum genelindeki entegrasyon test ortamlarının yol açtığı gecikme maliyeti hesaba katılmıyor
      • Bu maliyet, geliştirme ekipleri başka ekiplerin işi bitirmesini veya bağımlı sistemlerin yeni sürümünün dağıtılmasını beklerken ortaya çıkıyor
    • Bunun yerine ekipler geçici ortamlar kullanmalı ve gerçek kopyalar yerine sahte stub’larla, geliştirme ekibinin sahip olduğu test setlerini düşük maliyetle başlatıp sonlandırabilmeli
    • Bu alternatifi destekleyen diğer teknikler arasında contract testing, deployment ile release’in ayrılması, ortalama kurtarma süresi ve production testing’e odaklanma yer alıyor
  • LLM yasakları

    • İş yerinde kapsamlı LLM yasakları getirmek yerine, onaylı yapay zeka araçları setine erişim sağlamaya odaklanılmalı
    • Yasaklar yalnızca çalışanları onaysız ve potansiyel olarak güvensiz geçici çözümler aramaya iter
    • Tıpkı kişisel bilgisayarların ilk dönemlerinde olduğu gibi insanlar, engeller ne olursa olsun etkili buldukları araçları kullanarak işlerini yapar
    • Güvenli ve kurumsal olarak onaylanmış alternatifler sunulmazsa şirketler, çalışanların onaysız LLM’ler kullanması nedeniyle fikri mülkiyet, veri sızıntısı ve sorumluluk riskiyle karşı karşıya kalır
    • Bunun yerine güvenli ve kurumsal olarak onaylanmış LLM veya yapay zeka araçları sağlamak hem güvenliği hem üretkenliği garanti eder
    • İyi yönetilen bir yaklaşımla kuruluşlar, veri gizliliği, güvenlik, uyumluluk ve maliyet sorunlarını yönetirken çalışanlara LLM’lerin sunduğu yetenekleri kazandırabilir
    • En iyi durumda, yapay zeka araçlarına iyi yönetilen erişim, iş yerinde yapay zekayı kullanmanın en iyi yollarına dair kurumsal öğrenmeyi hızlandırabilir
  • Eşli programlamayı yapay zekayla değiştirmek

    • Kodlama asistanlarından söz edildiğinde eşli programlama konusu kaçınılmaz olarak gündeme geliyor
    • Mesleğimizin eşli programlamayla ilişkisi sevgi-nefret ilişkisi gibi
      • Bazıları ona sıkı sıkıya inanırken, diğerleri buna katlanamıyor
    • Şimdi kodlama asistanları, insanların başka bir insan yerine yapay zekayla eşleşip ekip için aynı sonucu elde edip edemeyeceği sorusunu gündeme getiriyor
    • GitHub Copilot hatta kendisini “yapay zeka eşli programcınız” olarak tanımlıyor
    • Kodlama asistanlarının eşli programlamanın bazı faydalarını sağlayabileceğini düşünüyoruz, ancak eşli programlamayı tamamen yapay zekayla değiştirmeyi önermiyoruz
    • Kodlama asistanlarını eşli programcı olarak görmek, eşli çalışmanın temel faydalarından biri olan bireysel katkıcıyı değil ekibi daha iyi hâle getirme yönünü göz ardı etmeye yol açıyor
    • Kodlama asistanları tıkanılan noktaları aşmaya, yeni teknolojiler öğrenmeye, onboarding sürecine ve taktiksel işleri daha hızlı yaparak stratejik tasarıma odaklanmaya yardımcı olabilir
    • Ancak devam eden işi düşük tutma, devirleri ve yeniden öğrenmeyi azaltma, sürekli entegrasyonu mümkün kılma ve kolektif kod sahipliğini iyileştirme gibi ekip işbirliği faydalarına katkı sağlamıyor

[Platforms]

Adopt : yok

Trial

  • Databricks Unity Catalog

    • Lakehouse’taki dosyalar, tablolar ve ML modelleri gibi varlıklar için bir veri yönetişimi çözümüdür
    • Harici depolama ya da Databricks tarafından yönetilen verileri yönetmek ve sorgulamak için kullanılabilen, yönetilen bir açık kaynak çözümüdür
    • Yönetişim, metastore yönetimi ve veri keşfini entegre biçimde destekleyerek birden çok aracın yönetilmesi ihtiyacını azaltma avantajına sahiptir
    • Databricks tarafından yönetilen Unity Catalog’da otomatik felaket kurtarma olmaması bir dezavantaj olarak görüldü
      • Ekiplerin yedekleme ve kurtarma yeteneklerini kendilerinin yapılandırması gerekti
    • Merkezi bir çözüm olsa da, tek tek ekiplerin kendi varlıklarını yönetebilmesi için yetki devri yapılabiliyor
  • FastChat

    • Büyük dil modellerinin eğitimi, sunumu ve değerlendirilmesi için açık bir platformdur
    • Birden fazla modeli (Llama 3.1, Mistral 7B, Llama-SQL vb.) OpenAI API formatında tutarlı biçimde barındırabiliyor
    • Farklı modelleri birden çok worker üzerinde barındırmak için controller-worker mimarisi kullanıyor
    • vLLM, LiteLLM, MLX gibi çeşitli worker türlerini destekliyor
    • Kullanım senaryosuna göre farklı türde FastChat model worker’ları oluşturulup ölçeklendirilebiliyor
      • Geliştirici IDE’sindeki kod önerileri düşük gecikme gerektirdiği için birden çok worker’a ölçekleniyor
      • Text-to-SQL için talep düşük olduğundan birden fazla worker gerekmiyor
    • A/B testlerinde kullanılabiliyor
      • Aynı model için farklı hyperparameter değerleri ayarlanarak en uygun değerler belirlenebiliyor
      • Canlı hizmette model geçişi sırasında kesintisiz migration doğrulanabiliyor
  • GCP Vertex AI Agent Builder

    • Doğal dil ya da code-first yaklaşımla yapay zeka ajanları oluşturmayı sağlayan esnek bir platformdur
    • Üçüncü taraf bağlayıcılar aracılığıyla kurumsal verilerle sorunsuz biçimde entegre olur
    • Yapay zeka ajanı oluşturma, prototipleme ve dağıtım için gerekli tüm araçları sunar
    • Geliştiriciler minimum kurulumla ajanların hızlı prototiplerini çıkarabilir ve karmaşık veri işlemlerini ele alabilir
    • Yapılandırılmış/yapılandırılmamış verileri verimli şekilde yöneten bilgi tabanları veya otomatik destek sistemleri kurmak için faydalıdır
  • Langfuse

    • LLM tabanlı uygulamaların gözlemlenmesi, izlenmesi ve değerlendirilmesi için bir araçtır
    • Tracing, analiz ve değerlendirme özellikleriyle tamamlama performansı ve doğruluğu analiz edilebilir
    • Maliyet ve gecikme yönetilebilir, production kullanım kalıpları anlaşılabilir ve veriye dayalı iyileştirmeler yapılabilir
    • İstek-yanıt akışının ve ara adımların tam izlenebilirliğini sağlayan enstrümantasyon verilerini kullanır
    • RAG ve LLM tabanlı otonom ajanlarla birlikte kullanılabilir
    • Düşük puanlı konuşma izlerini analiz ederek mimaride iyileştirilmesi gereken alanlar belirlenebilir
  • Qdrant

    • Rust ile yazılmış açık kaynaklı bir vektör benzerlik arama motoru ve veritabanıdır
    • Çeşitli metin ve çok modlu yoğun vektör embedding modellerini destekler
    • MiniLM-v6 ve BGE gibi açık kaynak embedding’ler birden fazla ürün bilgi tabanında kullanılabilir
    • Çoklu kiracılığı destekleyen kurumsal bir vektör store olarak kullanılır
    • Vektör embedding’leri ayrı koleksiyonlar olarak depolayarak her ürünün bilgi tabanını izole eder
    • Kullanıcı erişim politikaları uygulama katmanında yönetilir
    Reklam
  • Vespa

    • Açık kaynaklı bir arama motoru ve büyük veri işleme platformudur
    • Düşük gecikme ve yüksek işlem hacmi gerektiren uygulamalar için uygundur
    • Birden fazla arama tekniği kullanılarak hibrit arama uygulanmasına olanak tanır
    • Çeşitli meta verilerin verimli biçimde filtrelenmesini ve sıralanmasını destekler
    • Çok aşamalı sıralama uygulamalarına olanak tanır
    • Belge başına birden fazla vektörü tekrar olmadan indeksleyebilir
    • Birden fazla indekslenmiş alanda verileri tek seferde aramaya olanak tanır

Assess

  • Azure AI Search

    • Bilgi tabanı benzeri uygulamalar için yapılandırılmış/yapılandırılmamış veri işlemeye yönelik bulut tabanlı bir arama hizmetidir
    • Anahtar kelime, vektör ve hibrit arama dahil çeşitli arama türlerini destekler
    • PDF, DOC, PPT gibi yaygın yapılandırılmamış veri biçimlerini otomatik olarak alıp aranabilir içerik oluşturmaya olanak tanır
    • Azure OpenAI gibi diğer Azure hizmetleriyle entegre olur ve minimum düzeyde manuel entegrasyonla uygulama geliştirmeyi mümkün kılar
    • Azure ortamında barındırılan projeler için uygundur ve istikrarlı performans sunar
    • Özel beceriler aracılığıyla belirli veri işleme adımları tanımlanabilir
  • Databricks Delta Live Tables

    • Güvenilir, bakımı kolay ve test edilebilir veri işleme pipeline'ları kurmak için bildirimsel bir çerçevedir
    • Veri dönüşümlerini bildirimsel bir yaklaşımla tanımlar ve altyapı ile veri akışını otomatik olarak yönetir
    • Güçlü izleme özellikleri sunar ve tüm veri pipeline'ının DAG yapısını görsel olarak gösterir
    • Veri soyağacı ve bağımlılık takibi için faydalıdır
    • Databricks ekosistemiyle derin entegrasyon nedeniyle arayüz özelleştirmede kısıtlar olabilir
  • Elastisys Compliant Kubernetes

    • Sağlık, finans ve kamu gibi yüksek düzeyde regülasyona tabi sektörler için özel bir Kubernetes dağıtımıdır
    • Otomatikleştirilmiş güvenlik süreçleri sunar
    • Multicloud ve on-premises desteği sağlar
    • Zero trust güvenlik mimarisi temelinde oluşturulmuştur
    • GDPR, HIPAA gibi yasal gereklilikler ve ISO27001 gibi kontrol standartlarına uyumluluk yerleşik olarak gelir
  • FoundationDB

    • Apple'ın 2015'te satın aldığı ve 2018'de açık kaynak yaptığı çok modelli bir veritabanıdır
    • Özünde, katı serializable transaction desteği sunan dağıtık bir anahtar-değer deposu bulunur
    • Yazma hotspot'larını önlemeye yönelik akıllı veri dağıtımı ve yeni depolama motorları gibi önemli iyileştirmeler yapılmıştır
    • Unbundled mimari sayesinde kümenin farklı bölümleri bağımsız olarak ölçeklenebilir
    • Geniş özellik setine rağmen büyük ölçekli kümeleri işletmek kolaydır
  • Golem

    • Dayanıklı hesaplama için açık durum makinesi mimarisi kullanan bir dağıtık hesaplama platformudur
    • Uzun süre çalışan mikroservis saga'ları veya yapay zeka ajan orkestrasyonuna ait iş akışları için uygundur
    • WebAssembly bileşenleri desteklenen herhangi bir dilde yazılabilir
    • Deterministiktir ve hızlı başlatma sürelerini destekler
  • Iggy

    • Rust ile yazılmış kalıcı bir mesaj akışı platformudur
    • Çoklu stream, topic ve partition desteği sunar
    • En fazla bir kez teslim, mesaj süresi dolması ve QUIC/TCP/HTTP protokollerinde TLS desteği gibi özellikler sağlar
    • Tek bir sunucuyla yüksek okuma/yazma throughput'u elde eder
    • Clustering ve io_uring desteği planlandığından Kafka'ya alternatif olabilir
  • Iroh

    • IPFS'nin geliştirilmiş hali olan dağıtık bir dosya depolama ve içerik dağıtım sistemidir
    • Maksimum blok boyutu sınırı yoktur ve aralık tabanlı küme uzlaştırmasıyla veri senkronizasyon mekanizması sunar
    • WASM aracılığıyla tarayıcı desteği yol haritasında yer alır
    • iroh.network üzerinden bulut hizmeti kullanılabilir
    • Çeşitli diller için SDK'lar sunar ve IPFS'ye göre daha kullanıcı dostudur
  • Large vision model (LVM) platforms

    • Video akışları ve görüntüler üzerinde segmentasyon, sentez, yeniden yapılandırma ve analiz yapabilen büyük görsel model platformlarıdır
    • Difüzyon modelleri veya standart CNN'lerle birlikte kullanılabilir
    • Üretim ortamında uygulamayla ilgili bazı zorluklar vardır
      • Eğitim verisi toplama, nesne segmentasyonu ve etiketleme, model ince ayarı gibi
    • V7, Nvidia Deepstream SDK ve Roboflow gibi araçlar bu zorlukları çözmek için ortaya çıkmıştır
    • Deepstream ve Roboflow, video akışı yönetimi için GUI ve API'leri birlikte sunar
  • OpenBCI Galea

    • Beyin-bilgisayar arayüzü (BCI) için invaziv olmayan bir teknoloji platformudur
    • EEG gibi elektrofizyolojik sinyalleri kullanarak beyin implantlarına göre daha düşük riskli bir alternatif sunar
    • OpenBCI'nin VR headset işlevleri ile BCI'yi birleştiren en yeni ürünüdür
    • Zaman senkronlu fizyolojik veri akışları, uzamsal konum sensörleri ve göz takibi sunar
    • Sensör verileri Unity veya Unreal içinde kullanılabilir
    • Araştırmacıların inovasyonunu desteklemek için açık kaynaklı bir platform olarak sunulur
  • PGLite

    • PostgreSQL veritabanının WASM derlemesidir
    • Linux sanal makinesi olmadan doğrudan web tarayıcısında çalışabilir
    • Bellek içi geçici veritabanı oluşturma veya indexedDB aracılığıyla disk kalıcılığı sağlar
    • Electric ile birlikte PostgreSQL tabanlı reaktif local-first uygulamalar geliştirilebilir
  • SpinKube

    • Kubernetes üzerinde WebAssembly için açık kaynaklı bir serverless runtime'dır
    • WebAssembly'nin milisaniye düzeyindeki başlatma süresi sayesinde isteğe bağlı iş yükleri için daha dinamik ve esnek bir serverless çözüm sunar
    • WebAssembly tabanlı iş yüklerinin geliştirilmesini ve dağıtımını basitleştirir
  • Unblocked

    • SDLC varlıkları ve artifact'leri için bir arama aracıdır
    • ALM ve işbirliği araçlarıyla entegre olarak kod tabanının ve ilgili kaynakların anlaşılmasına yardımcı olur
    • Kod hakkında anlık ve ilgili bağlam sağlayarak karmaşık sistemlerin keşfini ve anlaşılmasını kolaylaştırır
    • Mühendislik ekiplerinin işle ilgili tartışmalara, varlıklara ve belgelere güvenli şekilde erişmesini sağlar
    • Deneyimli ekip üyelerinin bilgisini yakalayıp paylaşarak tüm üyelerin bundan yararlanmasına olanak tanır

Hold : Yok

[Tools]

Adopt

  • Bruno

    • Bruno, API test, geliştirme ve hata ayıklama için Postman ve Insomnia'ya açık kaynaklı bir masaüstü alternatifidir
    • Basit, yalnızca çevrimdışı tasarımıyla güçlü işbirliği, gizlilik ve güvenlik sunmayı hedefler
    • Koleksiyonlar, Bru adlı özelleştirilmiş düz metin işaretleme diliyle yazılır, doğrudan dosya sisteminde saklanır ve Git veya tercih edilen sürüm kontrol aracıyla paylaşılarak işbirliği yapılabilir
    • Masaüstü uygulaması ve CLI aracı olarak kullanılabilir; resmî bir VS Code eklentisi sunar ve ek IDE desteği planlamaktadır
    • Birçok Thoughtworks ekibinin varsayılan tercihi haline gelmiştir; ancak VPN ve proxy ortamlarında çalışırken isteklerin beklenmedik şekilde başarısız olduğuna dair bildirimler bulunduğundan dikkatli olunmalıdır
  • K9s

    • K9s, daha ayrıntılı grafikler ve görünümleri entegre ederek görselleştirme yeteneklerini geliştirmiştir
    • Artık log'ları ve metrikleri daha iyi gösteriyor ve custom resource'ları (CRD) daha esnek biçimde görüntülüyor
    • Pod'lara yönelik işlemler genişletildi; hata ayıklama araçlarıyla (ör. kubectl debug) entegrasyon güçlendirildi ve çoklu küme ortamlarına destek iyileştirildi
    • CRD desteği önemli ölçüde iyileştirildi; artık bu kaynaklar daha iyi gezilebilir ve yönetilebilir, custom resource'larla etkileşim daha akıcı hale gelmiştir
    • Kısayol paneli de geliştirilerek kubectl'e aşina olmayan geliştiriciler için daha erişilebilir hale getirilmiştir
    • K9s başlangıçta ağırlıklı olarak DevOps ekiplerine odaklandığı için bu önemli bir iyileştirmedir
  • SOPS

    • SOPS, KMS ile şifrelenen çeşitli dosya biçimlerini destekleyen şifreli bir dosya düzenleyicisidir
    • Gizli bilgi yönetiminde tavsiyemiz her zaman bunları kaynak kodundan ayrı tutmak oldu
    • Ancak altyapının kod olarak yönetilmesi anlayışı içinde, tam otomasyon ile başlangıç sırlarını yönetmek, eklemek ve döndürmek için bazı manuel adımlar arasında (örneğin Vault benzeri araçlar kullanmak) seçim yapmak gerektiğinde ekipler çoğu zaman bir ödünleşimle karşı karşıya kalır
    • Örneğin ekiplerimizden biri, altyapı bootstrap süreci için başlangıç kimlik bilgilerini yönetmek amacıyla SOPS kullanıyor
    • Ancak bazı durumlarda eski kod depolarından sırları kaldırmak mümkün olmuyor
    • Bu gibi durumlarda metin dosyalarındaki sırları şifrelemek için SOPS kullanıyoruz
    • SOPS, şifreleme anahtarlarının kaynağı olarak AWS ve GCP anahtar yönetim hizmetleri (KMS) ya da Azure Key Vault gibi bulut tarafından yönetilen anahtar depolarıyla entegre olur
    • Ayrıca platformlar arası çalışır ve PGP anahtarlarını destekler
    • Kod deposunda sırları yönetmek gerektiğinde ekiplerimizin birçoğu varsayılan olarak SOPS kullanıyor
  • Visual regression testing tools

    • Daha önce görsel regresyon test araçlarını öne çıkarmıştık ve algoritmaların ham piksel düzeyi karşılaştırmadan gelişmiş desen eşleştirme ve optik karakter tanıma (OCR) yöntemlerine evrildiğini gözlemledik
    • İlk görsel regresyon test araçları çok sayıda yanlış pozitif üretiyordu ve yalnızca arayüzler istikrar kazandığında, geliştirmenin daha geç aşamalarında faydalı oluyordu
    • BackstopJS, seçicileri ve viewport'u yapılandırarak sayfanın belirli öğeleri üzerinde hassas görsel testler yapabildiği için bu sorundan kaçınıyor
    • Ancak makine öğrenimi, görsel öğeler yer değiştirmiş ya da dinamik içerik içeriyor olsa bile bunların daha doğru tespit edilmesini ve karşılaştırılmasını kolaylaştırdı
    • Bu araçlar giderek daha kullanışlı hale geldi ve yapay zeka ile makine öğrenimindeki en son gelişmelerden yararlanmak için iyi bir konumda bulunuyor
    • Applitools ve Percy gibi çeşitli ticari araçlar artık görsel regresyon testlerinde yapay zeka kullandıklarını iddia ediyor
    • Ekiplerimizden biri Applitools Eyes'ı kapsamlı biçimde kullanıyor ve sonuçlardan memnun
    • Görsel regresyon testi, iyi yazılmış uçtan uca işlevsel testlerin yerini tutmasa da test araç setine değerli bir katkıdır
    • Bunu, kapsamlı bir UI test stratejisinin bir unsuru olarak güvenli bir varsayılan seçenek haline geldiği için benimsiyoruz
  • Wiz

    • Wiz, birçok projede tercih edilen bulut güvenliği platformu oldu
    • Ekiplerimiz, değişiklikleri sürekli inceleyerek benzer araçlara kıyasla riskleri ve tehditleri daha hızlı tespit edebilmesini takdir ediyor
    • Wiz, hem canlı ortama dağıtılmamış artifact'lerde (container image'lar, altyapı kodu) hem de canlı iş yüklerinde (container'lar, VM'ler ve bulut hizmetleri) yanlış yapılandırmaları, güvenlik açıklarını ve sızdırılmış sırları tespit edip uyarı verebiliyor
    • Ayrıca hem geliştirme ekipleri hem de liderlik için güçlü raporlama özelliklerini de takdir ediyoruz
    • Bu analiz, güvenlik açıklarının belirli bir hizmeti nasıl etkileyebileceğini anlamaya yardımcı olarak sorunların o bağlamda giderilmesini sağlıyor

Trial

  • AWS Control Tower

    Reklam
    • AWS Control Tower, çok takımlı ortamlarda AWS hesaplarını yönetmek için en iyi seçenek olmaya devam ediyor
    • Yeni landing zone'lara otomatik olarak uygulanacak güvenlik ve uyumluluk kontrollerini önceden yapılandırmak için kullanışlı bir mekanizma sunuyor
    • Bu, "değişiklik anında uyumluluk" yaklaşımının bir örneğidir; yeni altyapı oluşturulduğunda kontroller uygulanır ve doğrulanır, böylece sonradan manuel uyumluluk denetimlerine ihtiyaç kalmaz
    • AWS Control Tower Account Factory for Terraform (AFT), son ciltten bu yana gelişimini sürdürdü ve artık daha fazla AWS bölgesinde kullanılabiliyor
    • AFT ile Control Tower hesaplarını altyapı kodu pipeline'ları üzerinden provision edebilirsiniz
    • AFT'nin, GitHub Actions gibi harici araçlarla güvenli biçimde entegre olmak için webhook gönderecek veya belirli görevleri yerine getirecek şekilde özelleştirilebilmesini beğeniyoruz
    • Ekiplerimiz AWS Control Tower ile hesap yönetiminde büyük başarı elde etti, ancak iyileştirme fırsatları olduğunda AWS'nin projeye topluluk katkılarını kabul etmesini diliyoruz
  • CCMenu

    • Sürekli entegrasyon uygulayan ekipler için, merkezi build durumunu sürekli entegrasyon (CI) sisteminden takip edebilmek önemlidir
    • Pandemi öncesinde ekip odalarındaki büyük TV ekranlarındaki dashboard'lar bu bilgiyi tek bakışta sağlıyordu
    • Uzaktan çalışmanın kalıcı hale gelmesiyle birlikte, bireysel geliştirici iş istasyonlarında çalışan bir çözüme ihtiyaç duyuldu
    • Mac tarafında bu boşluğu, bir Thoughtworker tarafından yazılmış küçük bir uygulama olan CCMenu dolduruyor
    • Başlangıçta CruiseControl'ün bir parçası olan bu uygulama, Jenkins ve TeamCity dahil olmak üzere bilgiyi cctray biçiminde sunabilen tüm sunucularla çalışıyor
    • Yakın zamanda yeniden yazılmasıyla GitHub Actions desteği eklendi ve daha fazla CI sunucusu ile kimlik doğrulama tarzına daha derin entegrasyonun önü açıldı
  • ClickHouse

    • ClickHouse, gerçek zamanlı analitik için açık kaynaklı, sütun tabanlı bir online analytical processing (OLAP) veritabanıdır
    • 2009'da deneysel bir proje olarak başladı ve yüksek performanslı, doğrusal biçimde ölçeklenebilen bir analitik veritabanına dönüştü
    • Verimli sorgu işleme motoru ve veri sıkıştırma özellikleri sayesinde, ön toplulaştırma gerektirmeden etkileşimli sorgular çalıştırmak için uygundur
    • ClickHouse, OpenTelemetry verilerini depolamak için iyi bir seçimdir
    • Jaeger ile entegrasyonu sayesinde büyük hacimli izleme verilerini depolayıp verimli biçimde analiz edebilir
  • Devbox

    • Geliştirme araçlarındaki ilerlemelere rağmen, birçok ekip için tutarlı bir yerel geliştirme ortamını korumak hâlâ zorlu bir iştir
    • Yeni bir mühendisi onboard etmek çoğu zaman farklı sistemlerde öngörülemez şekilde başarısız olabilen komutların veya özelleştirilmiş script'lerin çalıştırılmasını gerektirir ve bu da tutarsızlıklara yol açabilir
    • Bu sorunu çözmek için ekiplerimiz giderek daha fazla Devbox'a güveniyor
    • Devbox, sanal makine veya container kullanmadan, Nix paket yöneticisinden yararlanarak yeniden üretilebilir ve projeye özel yerel geliştirme ortamları oluşturmak için erişilebilir bir komut satırı aracı sunar
    • Bir kod tabanı için bir kez yapılandırıldığında, yeni bir cihazda tanımlı ortamı yeniden üretmek için yalnızca tek bir CLI komutu (devbox shell) yeterli olur; bu da onboarding akışını büyük ölçüde sadeleştirir
    • Devbox; shell hook'ları, özelleştirilmiş script'ler ve VSCode ile entegrasyon için devcontainer.json üretimini destekler
  • Difftastic

    • Difftastic, kod dosyaları arasındaki farkları sözdizimini dikkate alarak vurgulayan bir araçtır
    • Bu yönüyle Unix diff komutu gibi metin farkı araçlarından oldukça farklıdır
    • Örneğin Difftastic, Java veya TypeScript gibi noktalı virgülle ayrılan dillerde uzun ifadeleri bölmek için eklenen satır sonlarını yok sayar
    • Araç yalnızca programın sözdizimini etkileyen değişiklikleri vurgular
    • Bunu yapmak için önce dosyaları soyut sözdizim ağaçları olarak ayrıştırır, ardından ağaçlar arasındaki mesafeyi hesaplamak için Dijkstra algoritmasını kullanır
    • Özellikle büyük kod tabanlarını incelerken değişiklikleri anlamada Difftastic'in faydalı olduğunu gördük
    • Difftastic, ayrıştırıcısı mevcut olan tüm programlama dillerinde kullanılabilir ve varsayılan olarak 50'den fazla programlama diliyle birlikte CSS ve HTML gibi yapılandırılmış metin biçimlerini destekler
    • Bu yeni bir araç değil, ancak insanın devrede olduğu incelemelerin giderek daha önemli hale geldiği LLM kodlama asistanları çağında dikkat çekmeye değer olduğunu düşünüyoruz
  • LinearB

    • Bir yazılım mühendisliği istihbarat platformu olan LinearB, mühendislik liderlerine sürekli iyileştirmeyi desteklemek için veriye dayalı içgörüler sunuyor
    • Karşılaştırma, iş akışı otomasyonu, geliştirici deneyimi ve üretkenliği artırmaya yönelik hedefli yatırımlar gibi temel alanları hizalıyor
    • LinearB ile olan deneyimimiz, mühendislik ekipleri içinde iyileştirme ve verimlilik kültürü oluşturma becerisini vurguluyor
    • Ekibimiz bu platformu kullanarak temel mühendislik metriklerini takip etti, iyileştirme gereken alanları belirledi ve kanıta dayalı aksiyonlar uyguladı
    • Bu yetenekler, karşılaştırma, metrik toplamanın otomasyonu ve veriye dayalı iyileştirmenin etkinleştirilmesi şeklindeki LinearB'nin temel değer önerisiyle iyi örtüşüyor
    • LinearB; kaynak kodu, uygulama yaşam döngüsü, CI/CD ve iletişim araçlarıyla entegre olur ve önceden yapılandırılmış mühendislik metrikleri ile özel mühendislik metriklerini kullanarak geliştirici deneyimi, üretkenlik ve ekip performansı hakkında kapsamlı nicel içgörüler sunar
    • DORA savunucuları olarak, LinearB'nin bu belirli metrikleri öne çıkarmasını ve verimlilik iyileştirmesi için kritik olan yazılım teslim performansının temel yönlerini ölçme yeteneğini takdir ediyoruz
    • Tarihsel olarak ekipler DORA'ya özgü metrikleri toplamakta zorlandı ve çoğu zaman karmaşık özel dashboard'lara veya manuel süreçlere bel bağladı
    • LinearB, bu metriklerin takibini otomatikleştiren ve geliştirici deneyimi, üretkenlik ve öngörülebilirlik konusunda proaktif karar almayı destekleyen gerçek zamanlı veriler sunan cazip bir çözüm olmayı sürdürüyor
  • pgvector

    • pgvector, PostgreSQL için açık kaynaklı bir vektör benzerliği arama eklentisidir ve tek, iyi yapılandırılmış bir veritabanında yapılandırılmış verilerle birlikte vektörlerin saklanmasını sağlar
    • Özel vektör veritabanlarının bazı gelişmiş özelliklerinden yoksun olsa da ACID uyumluluğu, point-in-time recovery ve PostgreSQL'in diğer güçlü özelliklerinden yararlanır
    • Üretken yapay zeka tabanlı uygulamaların artmasıyla birlikte, pgvector'ün etkili biçimde çözdüğü, embedding vektörlerini saklama ve benzerlik için verimli şekilde alma örüntüsünün arttığını görüyoruz
    • Özellikle yönetilen PostgreSQL sunan bulut sağlayıcılarını zaten kullanan ekiplerde pgvector'ün üretim ortamında kullanımının artması ve ayrı bir vektör deposu gerektirmeden genel vektör arama ihtiyaçlarını karşılayabildiğini kanıtlaması nedeniyle pgvector'ün potansiyeline güveniyoruz
    • Ekibimiz bunu yapılandırılmış ve yapılandırılmamış verileri karşılaştıran projelerde faydalı biçimde kullandı; bu da daha geniş çaplı benimsenme potansiyelini gösteriyor
    • Bu nedenle pgvector'ü deneme aşamasına taşıyoruz
  • Snapcraft build tool

    • Snapcraft, Ubuntu, diğer Linux dağıtımları ve macOS üzerinde snap adı verilen kendi kendine yeterli uygulamaları derlemek ve paketlemek için kullanılan açık kaynaklı bir komut satırı aracıdır
    • Snap'ler; Linux bilgisayarlar, sanal ortamlar ve araç içi bilgisayar sistemleri dahil olmak üzere donanım platformları genelinde kolayca dağıtılabilir ve yönetilebilir
    • Snapcraft, snap yayımlamak için herkese açık bir uygulama mağazası sunar; ancak ekibimiz build tool'u kullanarak otonom sürüş sistemlerini snap olarak paketliyor, fakat herkese açık uygulama mağazasında yayımlamıyor
    • Bu sayede gömülü yazılım sistemlerini yerelde derleyip test edebiliyor ve debug edebiliyor, aynı zamanda bunları dahili artifact repository'ye yayımlayabiliyoruz
  • Spinnaker

    • Spinnaker, Netflix tarafından oluşturulmuş açık kaynaklı bir sürekli teslim platformudur
    • Birinci sınıf özellikler olarak küme yönetimi ile baked image'ların buluta dağıtımını hayata geçirir
    • Mikroservisleri dağıtmak için Spinnaker'ın opinionated yaklaşımını seviyoruz
    • Önceki sürümlerde pipeline'ların kod olarak yapılandırılamadığını belirtmiştik, ancak spin CLI'nin eklenmesiyle bu sorun çözüldü
    • Basit CD senaryoları için Spinnaker'ı önermiyoruz, ancak karmaşık durumlarda aynı derecede karmaşık dağıtım pipeline'larıyla birlikte birçok kişinin tercih ettiği araç haline geldi
  • TypeScript OpenAPI

    • TypeScript OpenAPI (veya tsoa), koddan OpenAPI spesifikasyonu üretmek için Swagger'a bir alternatiftir
    • Code-first bir yaklaşıma sahiptir; TypeScript controller ve model'lerini tek doğruluk kaynağı olarak kullanır ve TypeScript'te OpenAPI araçlarını kullanırken daha karmaşık dosya ve yapılandırmalar gerektirmek yerine TypeScript anotasyonları veya decorator'larından yararlanır
    • Hem 2.0 hem de 3.0 API spesifikasyonlarını üretir ve Express, Hapi ve Koa için route'lar oluşturabilir
    • API'lerinizi TypeScript ile yazıyorsanız bu projeye göz atmaya değer
  • Unleash

    • Mümkün olan en basit feature toggle'ı kullanmak hâlâ önerdiğimiz yaklaşım olsa da ekiplerin büyümesi ve daha hızlı geliştirme, elle yapılan toggle yönetimini daha karmaşık hale getiriyor
    • Unleash, bu karmaşıklığı çözmek ve CI/CD'yi mümkün kılmak için ekiplerimizde yaygın olarak kullanılan bir seçenektir
    • Hizmet olarak kullanılabilir veya self-hosted olarak çalıştırılabilir
    • Birden fazla dil için SDK sağlar ve geliştirici deneyimi ile yönetim için tanıdık bir UI sunar
    • OpenFeature spesifikasyonu için henüz resmi destek olmasa da Go ve Java için topluluk tarafından sürdürülen provider'lar bulunabilir
    • Unleash, yalnızca basit feature toggle'lar için değil, segmentasyon ve kademeli yaygınlaştırma için de kullanılabildiğinden ölçekli feature management için uygun bir seçenektir

Assess

  • Astronomer Cosmos

    • Astronomer Cosmos, Airflow'da dbt core iş akışları için daha yerel destek sunmak üzere tasarlanmış bir Airflow eklentisidir
    • Eklenti kurulduğunda, DbtDag dbt iş akışını sarmalarken dbt node'larını Airflow task/task group'larına dönüştürür; böylece mühendisler dbt bağımlılık grafiğini ve yürütme ilerlemesini doğrudan Airflow UI'den görselleştirebilir
    • Ayrıca dbt profile'ları yerine Airflow connection'larının kullanılmasına olanak tanıyarak yapılandırma saçılımını azaltabilir
    • Airflow'da dbt görevlerini daha akıcı hale getirme potansiyeli nedeniyle bu aracı deniyoruz
  • ColPali

    • ColPali, vision-language model'leri kullanarak PDF belgelerinde arama yapmak için geliştirilen yeni bir araçtır ve görüntü, diyagram ve tablo içeren multimedya belgelerinden veri çıkarabilen güçlü retrieval-augmented generation (RAG) uygulamaları kurmanın zorluğunu ele alır
    • Metin tabanlı embedding'lere veya optical character recognition (OCR) tekniklerine dayanan mevcut yöntemlerin aksine ColPali, tam PDF sayfalarını işler ve hem metni hem de görsel içeriği dikkate alan embedding'ler üretmek için görsel dönüştürücülerden yararlanır
    • Bu bütüncül yaklaşım, yalnızca daha iyi arama sağlamakla kalmaz, aynı zamanda belirli bir belgenin neden getirildiğine dair akıl yürütmeyi de mümkün kılar ve veri açısından zengin PDF'ler için RAG performansını önemli ölçüde artırır
    • ColPali'yi çeşitli müşterilerle test ettik ve umut verici sonuçlar gördük, ancak bu teknoloji hâlâ erken aşamada
    • Özellikle karmaşık görsel belge verilerine sahip kuruluşlar için değerlendirmeye değerdir
  • Cursor

    • Yapay zeka destekli programlama araçları arasındaki rekabet sürüyor ve en çok öne çıkan araçlardan biri Cursor
    • Cursor, kodlama iş akışına yapay zekayı derinlemesine entegre ederek geliştirici üretkenliğini artırmak üzere tasarlanmış, yapay zeka öncelikli bir kod editörüdür
    • Önceki Radar değerlendirmemizde Cursor'a dikkat çekmiştik, ancak son dönemdeki sürekli iyileştirmelerinin niteliksel bir sıçrama yarattığı açık
    • Kullanımlarımızda Cursor, mevcut kod tabanına dayanarak güçlü bağlamsal akıl yürütme yetenekleri sergiledi
    • GitHub Copilot gibi diğer yapay zeka kod araçları daha çok kod parçaları üretme ve işbirliğine odaklanma eğilimindeyken, Cursor'un çok satırlı ve çok dosyalı düzenleme görevleri onu öne çıkarıyor
    • Cursor, VSCode'dan fork edilerek onun üzerine geliştirilmiştir ve geliştirici sezgisine uyan hızlı ve sezgisel etkileşim yolları sunar
    • Güçlü işlemler ctrl/cmd+K ve ctrl/cmd+L ile gerçekleştirilebilir
    • Cursor, geliştirici etkileşimi ve kod tabanını anlama açısından yapay zeka programlama araçlarındaki yeni rekabete öncülük ediyor
  • Data Mesh Manager

    • Data Mesh Manager, tipik bir veri mesh platformunun metadata katmanını sağlar
    • Özellikle OpenContract girişimini kullanarak veri ürünlerinin tanımı ve veri sözleşmesi spesifikasyonlarına odaklanır ve buna bağlı DataContract CLI ile build pipeline'ına entegre edilebilir
    • Uygulama ayrıca veri ürünlerini ve bunlara ait metadata'yı aramak ve keşfetmek için bir veri kataloğu sunar; veri kalitesi metriklerinin tanımı ve veri kalitesi kurallarının yönetimi dahil olmak üzere federatif yönetişime izin verir
    • Bu alanda ortaya çıkan ilk yerleşik araçlardan biri olup mevcut platformları veri mesh paradigmasına uyacak şekilde sonradan dönüştürmeyi amaçlamaz
  • GitButler

    • Git'in komut satırı arayüzü güçlü ve kullanışlıdır, ancak birden fazla branch'i yönetmek ve bunların içinde commit'leri stage etmek son derece karmaşık olmasıyla ünlüdür
    • GitButler, bu süreci basitleştirmeyi amaçlayan grafik arayüz sunan bir Git istemcisidir
    • Bunu, Git'ten bağımsız olarak commit edilmemiş dosya değişikliklerini izleyip ardından bu değişiklikleri sanal branch'lerde stage ederek yapar
    • Bunun en başta var olmaması gereken bir probleme çözüm olduğu iddia edilebilir. Sık sık küçük değişiklikler yapıp trunk'a push ederseniz birden fazla branch'e ihtiyaç duymazsınız
    • Ancak iş akışınız pull request içeriyorsa, özellikle PR birleştirilmeden önce uzun inceleme döngüleri varsa, branch yapısı karmaşık hale gelebilir
    • GitButler bunu çözmek için GitHub ile entegre olur; değişiklikleri seçici biçimde pull request'ler halinde gruplayabilir ve bunları doğrudan araç içinden yayımlayabilir
    • GitButler, PR sürecinin doğasında bulunan karmaşıklığı yönetmeye yönelik büyüyen blip kategorisine eklenen bir başka öğedir
  • JetBrains AI Assistant

    • JetBrains AI Assistant, kod tamamlama, test üretimi ve stil kılavuzuna uyumu desteklemek için tüm JetBrains IDE'leriyle sorunsuz biçimde entegre olacak şekilde tasarlanmış bir kodlama asistanıdır
    • OpenAI ve Google Gemini gibi modeller üzerine kuruludur ve gelecekteki oturumlar için kodlama stilini hatırlayarak tutarlı çıktı üretme yeteneğiyle öne çıkar
    • Geliştiricilerimiz özellikle test üretme özelliğini faydalı buldu ve daha uzun çıktıları kararlılık sorunu olmadan işleyebilmesini dikkate değer gördü
    • Ancak bazı rakiplerinin aksine JetBrains kendi modellerini host etmediği için üçüncü taraf veri işleme konusunda endişeleri olan müşteriler için uygun olmayabilir
    • Buna rağmen bu aracın JetBrains IDE'leriyle entegre olması, yapay zeka destekli kodlama asistanlarını değerlendiren ekipler için umut verici bir seçimdir
  • Mise

    • Poliglot ortamlarda çalışan geliştiriciler, sık sık farklı dillerin ve araçların birden fazla sürümünü yönetmek zorunda kalır
    • mise, nvm, pyenv, rbenv, rustup ve benzerlerinin yerine geçebilecek tek bir araç sunarak bu sorunu çözmeyi hedefler; ayrıca asdf'nin de yerini alabilir
    • Mise, shell etkileşim hızını artırmak için Rust ile yazılmıştır; shell tabanlı shim kullanan asdf'den farklı olarak mise, araç çalışma zamanında doğrudan çağrılabilmesi için PATH ortam değişkenini önceden değiştirir
    • Bu da mise'in asdf'den daha hızlı olmasının nedenlerinden biridir
    • Halihazırda asdf'ye aşina geliştiriciler için mise aynı işlevleri sunar, ancak birkaç önemli fark içerir
    • Rust ile yazıldığı için daha hızlıdır ve asdf'de bulunmayan bazı özelliklere sahiptir. Örneğin aynı aracın birden fazla sürümünü aynı anda kurabilir ve fuzzy matching dahil daha esnek komutlar sunar
    • Ayrıca linter'ları, testleri, builder'ları, sunucuları ve projeye özgü diğer işleri çalıştırmak için kullanışlı olan entegre bir task runner sağlar
    • Geliştirme ortamınızı yönetmek için birden fazla araç kullanmaktan ve diğer araçların zaman zaman hantal kalan sözdiziminden biraz bıktıysanız, mise'e bakmaya kesinlikle değer
  • Mockoon

    • Mockoon, açık kaynaklı bir API mocking aracıdır
    • Sezgisel bir arayüz, özelleştirilebilir route'lar ve dinamik yanıtların yanı sıra sahte veri kümeleri oluşturmayı otomatikleştirme olanağı sunar
    • Mockoon, OpenAPI ile uyumludur ve yerelde test edilebilen ve geliştirme pipeline'ına entegre edilebilen çeşitli senaryolar oluşturabilir
    • İstekleri yakalayıp yalnızca Mockoon'da tanımlanan çağrıları taklit ederek “kısmi mock” da oluşturabilirsiniz
    • Kısmi mock, belirli API route'larını veya endpoint'lerini simüle etmeye ve diğer istekleri gerçek sunucuya iletmeye yardımcı olur
    • Kısmi mock belirli senaryolarda faydalı olabilir, ancak aşırı kullanımı gereksiz karmaşıklığa yol açma riski taşır
    • Bunun dışında Mockoon, mock API'leri hızlıca kurmak ve geliştirme iş akışını iyileştirip otomatikleştirmek için faydalı bir araç olmaya devam eder
  • Raycast

    • Raycast, klavyeden uygulamaları hızlıca başlatmanıza, komutlar çalıştırmanıza, dosya aramanıza ve işleri otomatikleştirmenize olanak tanıyan premium bir macOS launcher'ıdır
    • Ekibimiz, geliştiricilere yönelik yerleşik özelliklerini ve VSCode, Slack, Jira, Google gibi üçüncü taraf uygulama ve hizmetlerle etkileşim kurmayı sağlayan kolay genişletilebilirliğini takdir etti
    • Raycast üretkenlik odaklıdır ve bağlam geçişini en aza indirerek günlük işleri sadeleştirmek isteyenler için kullanışlı bir araçtır
    • Pro kullanıcıları, özel bir yapay zeka destekli arama asistanı olan Raycast AI'a erişebilir
  • ReadySet

    Reklam
    • ReadySet, MySQL ve PostgreSQL için bir query cache'tir
    • Elle geçersiz kılmaya dayanan geleneksel caching çözümlerinin aksine ReadySet, cache'i kademeli olarak güncellemek için veritabanı replikasyon akışından yararlanır
    • Kısmi görünüm somutlaştırması sayesinde ReadySet, mevcut read replica'lara kıyasla daha düşük tail latency elde eder
    • ReadySet, MySQL ve PostgreSQL ile wire-compatible olduğundan veritabanının önüne, uygulamada değişiklik yapmadan deploy edilerek okuma iş yükleri yatay olarak ölçeklendirilebilir
  • Rspack

    • Web tabanlı frontend üzerinde çalışan ekiplerimizin çoğu, Webpack gibi eski bundling araçlarından Vite'a geçti
    • Bu alandaki yeni oyunculardan biri Rspack; 18 aylık geliştirme sürecinin ardından 1.0 sürümü yayımlandı
    • Webpack'in yerine geçecek şekilde tasarlanmıştır ve Webpack ekosistemindeki plugin ve loader'larla uyumludur
    • Bu da karmaşık Webpack yapılandırmalarını taşırken Vite'a kıyasla avantaj sağlayabilir
    • Ekiplerimizin Vite ve Rspack gibi modern araçlara geçmesinin başlıca nedeni geliştirici deneyimi, özellikle de hızdır
    • Son kod değişikliğiniz hakkında geri bildirim almadan önce 1-2 dakika beklemekten daha fazla geliştirme akışını bozan bir şey yoktur
    • Rust ile yazılmış olan Rspack, Webpack'e göre çok daha hızlı performans sunar ve birçok durumda Vite'dan da hızlıdır
  • Semantic Router

    • LLM tabanlı uygulamalar geliştirirken isteği belirli bir agente yönlendirmeden veya belirli bir akışı çağırmadan önce kullanıcının niyetini belirlemek önemlidir
    • Semantic Router, LLM'ler ve agent'lar için ultra hızlı bir karar katmanı görevi görerek istekleri anlamsal içeriğe göre verimli ve güvenilir biçimde yönlendirebilir
    • Semantic Router, niyeti çıkarsamak için vektör embedding'lerini kullanarak gereksiz LLM çağrılarını azaltır ve niyeti anlamak için daha basit, maliyet açısından daha verimli bir yaklaşım sunar
    • Potansiyeli, niyet çıkarımının ötesine geçerek çeşitli anlamsal görevler için çok yönlü bir bileşen olmaya uzanır
    • Sunduğu hız ve esneklik sayesinde, LLM ek yükü olmadan hızlı ve gerçek zamanlı karar alma gerektiren ortamlarda güçlü bir aday olarak öne çıkar
  • Yazılım mühendisliği ajanları

    • Şu anda GenAI alanındaki en sıcak konulardan biri, yazılım mühendisliği ajanları kavramı
    • Bu kodlama destek araçları, mühendislerin şurada burada kod parçaları yazmasının ötesine geçiyor. Çözebildikleri problemlerin ölçeğini büyütüyor ve ideal durumda görevleri otonom biçimde, insanın en az müdahalesiyle yerine getiriyorlar
    • Buradaki fikir, bu araçların GitHub issue’larını veya Jira ticket’larını alıp planlar ve kod değişiklikleri önermesi, hatta insanların incelemesi için pull request’ler oluşturabilmesi
    • Bu, yapay zeka destekli kodlamanın etkisini artırmak için bir sonraki mantıklı adım, ancak sıkça tanıtıldığı gibi geniş kapsamlı kodlama görevlerini ele alabilen genel amaçlı ajan hedefi oldukça iddialı ve mevcut araç durumu bunu kesin biçimde göstermiyor
    • Yine de, geliştiricilerin zamanını daha karmaşık problemlere ayırabilmek için daha dar kapsamlı ve basit görevlerde bunun yakında işe yarayabileceğini düşünüyoruz
    • Ajanların beta sürümünü sunan araçlar arasında GitHub Copilot Workspace, qodo flow, JIRA için Tabnine agent ve Amazon Q Developer yer alıyor
    • SWE Bench benchmark’ı bu alandaki daha fazla aracı listeliyor, ancak yapay zeka alanındaki benchmark’ları biraz şüpheyle karşılamak gerektiğini hatırlatıyoruz
  • uv

    • Rust, hızlı başlangıç performansı nedeniyle komut satırı araçları yazmak için çok uygun ve bazı araç zincirlerinin Rust ile yeniden yazıldığını görüyoruz
    • Önceki Radar’da Rust ile yazılmış bir Python linter’ı olan Ruff’tan söz etmiştik
    • Bu ciltte ise Rust ile yazılmış Python paket yönetim aracı uv’yi değerlendirdik
    • uv’nin değer önerisi “aşırı hızlı” olması ve benchmark’larda diğer Python paket yönetim araçlarını açık ara geride bırakması
    • Ancak Radar değerlendirmesi sırasında, build araçlarında saniyeler düzeyinde optimizasyon yapmanın marjinal bir iyileştirme olup olmadığını tartıştık
    • Performanstan daha önemli olan şeyler, paket yönetim sistemleri için ekosistem, olgun bir topluluk ve uzun vadeli destektir
    • Buna rağmen, proje ekiplerinden gelen geri bildirimler bu küçük performans iyileştirmesinin geri bildirim döngülerini ve genel geliştirici deneyimini iyileştirmede büyük fayda sağlayabildiğini gösterdi - bu küçük performans kazanımını elde etmek için CI/CD caching’i manuel olarak çok karmaşık hale getirme eğiliminde oluyoruz; uv ise Python ortam yönetimini basitleştiriyor
    • Python geliştirme için paket ve env yönetiminde hâlâ çok fazla iyileştirme alanı olduğu düşünüldüğünde, uv’nin değerlendirmeye değer bir seçenek olduğunu düşünüyoruz
  • Warp

    • Warp, macOS ve Linux için bir terminal
    • Okunabilirliği artırmak için komut çıktısını bloklara ayırıyor
    • Warp, akıllı komut önerileri ve doğal dil işleme gibi yapay zeka tabanlı özellikler içeriyor
    • Ayrıca kullanıcıların komutları ve çıktıları düzenleyebildiği, açıklamalar ve notlar ekleyebildiği notebook özellikleri de sunuyor
    • Bu özellikler kullanılarak README dosyaları veya onboarding materyalleri oluşturulabiliyor ve terminal iş akışları daha yapılandırılmış ve etkileşimli biçimde sunulup yönetilebiliyor
    • Warp, esnek bir cross-shell prompt olan Starship ile kolayca entegre oluyor; böylece çalışan süreçler, kullanılan araçların belirli sürümleri, Git ayrıntıları veya mevcut Git kullanıcısı gibi bilgileri çekerek terminal deneyimi özelleştirilebiliyor
  • Zed

    • Atom metin editörü projesi sona erdikten sonra, yaratıcıları Zed adlı yeni bir editör geliştirdi
    • Rust ile yazılan ve modern donanımdan yararlanacak şekilde optimize edilen Zed, oldukça hızlı hissettiriyor
    • Birçok programlama dili desteği, yerleşik terminal, multi-buffer düzenleme gibi modern bir editörden beklenen tüm özelliklere sahip
    • Yapay zeka destekli kodlama, çeşitli LLM sağlayıcılarıyla entegrasyon üzerinden kullanılabiliyor
    • Hevesli bir pair programming savunucusu olarak, Zed’e yerleşik uzaktan iş birliği özelliklerinden etkilendik
    • Geliştiriciler GitHub ID’leri üzerinden birbirlerini bulabiliyor, ardından aynı çalışma alanında gerçek zamanlı olarak birlikte çalışabiliyor
    • Geliştirme ekiplerinin Visual Studio Code ekosisteminin çekim gücünden kurtulup kurtulamayacağını ve bunu isteyip istemeyeceğini söylemek için henüz erken
    • Ancak Zed, keşfetmeye değer bir alternatif

Hold

  • CocoaPods
    • CocoaPods, Swift ve Objective-C Cocoa projelerinde uzun süredir sevilen bir bağımlılık yönetim aracı
    • 10 yıldan uzun süredir iOS ve macOS geliştiricileri için önemli bir araç oldu
    • CocoaPods ekibi artık projenin bakım moduna geçtiğini ve aktif geliştirmenin duracağını duyurdu
    • CocoaPods aracı ve ilgili kaynaklar kullanılmaya devam edecek, ancak yeni özellik geliştirmeleri veya iyileştirmeler yapılmayacak
    • Geliştiricilere Swift Package Manager’a geçmeleri öneriliyor
    • Swift Package Manager, Xcode ile native entegrasyon sunuyor ve Apple’dan uzun vadeli destek alması bekleniyor

[Language and Frameworks]

Adopt

  • dbt

    • ELT pipeline’larında veri dönüşümünü uygulamak için güçlü ve akıllıca bir seçenek olarak görülmeye devam ediyor
    • Mühendislik disiplini sağlamasını ve SQL tabanlı dönüşümlerde modülerlik, test edilebilirlik ve yeniden kullanılabilirlik gibi pratikleri mümkün kılmasını beğeniyoruz
    • Snowflake, BigQuery, Redshift, Databricks, Postgres gibi birçok bulut veri ambarı, lakehouse ve veritabanıyla iyi entegre oluyor ve çevresinde sağlıklı bir topluluk paketi ekosistemi bulunuyor
    • Yakın zamanda gelen unit test için yerleşik destek (dbt core 1.8+ ve kısa süre önce kullanıma sunulan dbt Cloud “versionless” deneyimi), araç kutusundaki yerini daha da güçlendiriyor
    • Yeni unit test özellikleriyle statik test verilerini kolayca tanımlamak, beklenen çıktıları belirlemek ve pipeline’ın hem incremental hem de full refresh modlarını test etmek mümkün; ekiplerimiz bunu çok değerli buluyor
    • Çoğu durumda bu sayede aynı kalite düzeyini koruyarak özel yazılmış script’leri kullanımdan kaldırabildik
  • Testcontainers

    • Testcontainers, test çalıştırmaları için güvenilir ortamlar oluşturmakta faydalı bir varsayılan seçenek olarak deneyimleniyor
    • Çeşitli veritabanları, kuyruk teknolojileri, bulut servisleri ve web tarayıcıları gibi UI test bağımlılıkları dahil olmak üzere yaygın test bağımlılıklarını Dockerize eden, birden fazla dile taşınmış bir kütüphane ve gerektiğinde özel Dockerfile’ları da çalıştırabiliyor
    • Yakın zamanda, test oturumlarının görsel yönetimini ve daha karmaşık senaryoların yönetimini sağlayan bir masaüstü sürümü yayımlandı; ekiplerimiz bunun çok yararlı olduğunu düşünüyor

Trial

  • CAP

    • Dağıtık mesajlaşma sistemlerinde veritabanı güncellemeleri ile event yayımlamayı atomik olarak gerçekleştirmek için Outbox pattern’ini uygulayan bir .NET kütüphanesi
    • Aynı veritabanı transaction’ı içinde event yayımlama niyetini kaydederek sorunu çözüyor
    • Birkaç veritabanını ve mesajlaşma platformunu destekliyor ve at-least-once delivery garantisi sunduğu için faydalı
  • CARLA

    • Prodüksiyon dağıtımından önce otonom sürüş sistemlerini test etmek için kullanılan açık kaynaklı bir otonom sürüş araştırma simülatörü
    • Araçlar, arazi, insanlar, hayvanlar ve benzeri unsurların 3D modellerini esnek biçimde oluşturup yeniden kullanmayı sağlıyor, böylece çeşitli senaryolar simüle edilebiliyor
    • Otonom sürüş sistemlerinin bu dinamik nesneleri algılaması ve fren yapmak gibi uygun aksiyonları alması gerekiyor
    • Otonom sürüş sistemlerinin sürekli geliştirilmesi ve test edilmesi için kullanılıyor
  • Databricks Asset Bundles

    • Nisan 2024’te GA olan DABs, veri ekiplerinde yazılım mühendisliği pratiklerinin benimsenmesini teşvik eden bir Databricks varlık paketleme ve dağıtım aracı olarak konumlanıyor
    • İş akışlarını, görev yapılandırmalarını ve bu görevlerde çalışacak kodu paket halinde bir araya getirerek CI/CD pipeline’ları üzerinden birden çok ortama dağıtmayı mümkün kılıyor
    • Yaygın varlık türleri için şablonları ve özelleştirilebilir şablonları destekliyor; bu da veri mühendisliği ve ML projeleri için özel servis şablonları oluşturmayı mümkün kılıyor
    • Mühendislik iş akışlarının önemli bir parçası olarak giderek daha fazla benimseniyor
    • Notebook şablonlarını içeriyor ve bunların prodüksiyona dağıtımını destekliyor, ancak notebook’ların prodüksiyonlaştırılmasını önermiyoruz
    • Bunun yerine, bakım kolaylığı, dayanıklılık ve ölçeklenebilirlik gereksinimlerini destekleyen mühendislik pratikleriyle bilinçli biçimde prodüksiyon kodu yazılmasını teşvik ediyor
  • Instructor

    • LLM kullanarak yapılandırılmış yanıtlar (JSON, YAML vb.) isteme, bunları ayrıştırma ve uygulamada kullanma konusunda yardımcı olan bir kütüphane
    • LLM'ler deterministik olmadığından, istenildiği gibi her zaman çalışmayabilir
    • Hedeflenen çıktı yapısı tanımlanabilir ve LLM istenen yapıyı döndürmezse yeniden deneme yapılandırılabilir
    • Akış içindeki kısmi yapıları ayrıştırma özelliği de sunarak tüm yanıtı beklemeden sonuçların akış halinde alınmasını sağlar
  • Kedro

    • Bir MLOps aracı olarak önemli ölçüde gelişti ve modülerlik ile mühendislik pratiklerine odaklanmayı sürdürdü
    • Bağımsız kedro-datasets paketinin sunulmasıyla kod ile verinin ayrılması gibi yönlerle modülerliği vurguluyor
    • CLI, başlangıç proje şablonları ve telemetri özellikleri iyileştirildi
    • Yakın zamanda çıkan VS Code eklentisiyle geliştirici deneyimi iyileştirildi
  • LiteLLM

    • Çeşitli LLM sağlayıcı API'leriyle sorunsuz entegre olan ve etkileşimleri OpenAI API formatı üzerinden standartlaştıran bir kütüphane
    • Geniş bir sağlayıcı ve model yelpazesini destekler; tamamlama, embedding ve görsel üretimi için birleşik bir arayüz sunar
    • Her sağlayıcının belirli endpoint gereksinimlerine uyacak şekilde girdileri dönüştürerek entegrasyonu basitleştirir
    • Önbellekleme, loglama, hız sınırlama ve yük dengeleme gibi üretim uygulamalarının ihtiyaç duyduğu operasyonel özellikleri uygulamak için bir çerçeve sunar
    • Modellerin hızla evrildiği mevcut ortamda gerekli olan, farklı modeller arasında kolay geçiş yapılmasını sağlar
    • Aynı prompt'a verilen model yanıtları çeşitlilik gösterdiğinden, yalnızca tutarlı bir çağrı yöntemiyle tamamlama performansını optimize etmenin zor olabileceği göz önünde bulundurulmalıdır
    • Her model ek özellikleri kendine özgü biçimde uyguladığından, tek bir arayüz tüm ihtiyaçları karşılamakta yetersiz kalabilir
  • LlamaIndex

    • Alana özgü ve bağlam temelli LLM uygulamaları tasarlanmasına olanak tanıyan bir motor içerir; veri toplama, vektör indeksleme ve belgeler üzerinde doğal dilde soru-cevap gibi işleri destekler
    • LlamaIndex ile belge toplamayı otomatikleştiren, belge embedding'lerini indeksleyen ve kullanıcı girdisine göre bu embedding'leri sorgulayan RAG (Retrieval-Augmented Generation) pipeline'ları kurulabilir
    • LlamaHub kullanılarak LlamaIndex modülleri genişletilebilir veya özelleştirilebilir; tercih edilen LLM, embedding ve vektör deposu sağlayıcılarıyla LLM uygulamaları geliştirilebilir
  • LLM Guardrails

    • LLM'lerin zararlı, yanıltıcı veya alakasız içerik üretmesini önlemeye yönelik yönergeler, politikalar veya filtreler bütünü
    • Girdi manipülasyonu gibi tekniklerle sistemi kötüye kullanmak isteyen kötü niyetli kullanıcılara karşı LLM uygulamalarını korumakta da kullanılabilir
    • Modelin içeriği işlemesi ve üretmesi için sınırlar koyarak bir güvenlik ağı görevi görür
    • NeMo Guardrails, Guardrails AI ve Aporia Guardrails gibi bu alanda yükselen çerçeveler faydalıdır
    • Tüm LLM uygulamalarında guardrail'lerin devreye alınması ve kural ile politikaların sürekli iyileştirilmesi önerilir
    • Sorumlu ve güvenilir LLM sohbet uygulamaları oluşturmak açısından önemlidir
  • Medusa

    • Çoğu alışveriş sitesi oluşturma amaçlı e-ticaret çözümü 80/20 tuzağına düşme eğilimindedir
    • Medusa, geliştiricilerin benzersiz ve özelleştirilmiş alışveriş deneyimleri oluşturmasına olanak tanıyan, iyi dengelenmiş ve yüksek derecede özelleştirilebilir bir açık kaynak ticaret platformudur
    • Next.js ve PostgreSQL üzerine kuruludur; alışveriş sepeti ve sipariş yönetiminden hediye kartı modülleri ve bölgesel vergi hesaplama gibi gelişmiş özelliklere kadar kapsamlı modüllerle geliştirme sürecini hızlandırır
    • Birkaç projede uygulanmış ve değerli bir çerçeve olarak değerlendirilmiştir
  • Pkl

    Reklam
    • İlk olarak Apple içinde kullanım için oluşturulmuş açık kaynaklı bir yapılandırma dili ve araç seti
    • Temel özelliği, yapılandırma hatalarının dağıtımdan önce yakalanmasını sağlayan tip ve doğrulama sistemidir
    • Kod tekrarını azaltır (örneğin ortam override'ları gibi durumlarda) ve yapılandırma değişiklikleri canlı ortama uygulanmadan önce doğrulama yapılmasına olanak tanır
    • JSON, PLIST, YAML, .properties dosyası üretimi ve kod üretimi dahil olmak üzere geniş IDE ve dil entegrasyonları sunar
  • ROS 2

    • Robotik sistem geliştirme için açık kaynaklı bir çerçeve
    • Süreçler arası iletişim, çok iş parçacıklı yürütme ve hizmet kalitesi gibi işlevleri ele alan uygulamaların modüler biçimde uygulanmasını mümkün kılan kütüphane ve araçlar sağlar
    • Önceki sürüme kıyasla gerçek zamanlı yeteneklerin iyileştirilmesi, modülerliğin artırılması, farklı platform desteğinin genişletilmesi ve makul varsayılanların sunulması gibi gelişmeler içerir
    • Otonom sürüş işlevleri gibi karmaşık ve sürekli gelişen araç içi uygulamalara sahip üreticiler için düğüm tabanlı mimarisi ve konu tabanlı iletişim modeli özellikle caziptir
    • Otomotiv sektöründe giderek daha fazla kullanılmaktadır
  • seL4

    • SDV veya diğer güvenlik açısından kritik senaryolarda işletim sisteminin gerçek zamanlı kararlılığı önemlidir
    • Yüksek giriş engelleri nedeniyle bu alana az sayıda şirket hakim olduğundan, seL4 gibi açık kaynak çözümler değerlidir
    • seL4, yüksek güvenceli ve yüksek performanslı bir işletim sistemi mikrokernelidir
    • İşletim sisteminin davranışının spesifikasyona "matematiksel" olarak uyup uymadığını doğrulamak için biçimsel doğrulama yöntemleri kullanır
    • Mikrokernel mimarisi, sistem kararlılığını sağlamak için temel sorumlulukları en aza indirir
    • NIO gibi elektrikli araç şirketleri seL4 ekosistemiyle iş birliği yapıyor ve gelecekte bu alanda daha fazla gelişme görülebilir
  • SetFit

    • Günümüzde yapay zeka tabanlı araçların çoğu üretkendir; metin ve görsel üretir ve GPT kullanır
    • Geleneksel metin görevlerinde (metin sınıflandırma veya niyet belirleme gibi) sentence transformer'lar tercih edilir
    • SetFit, sentence transformer'ları fine-tune etmek için bir çerçevedir
    • Karşıt öğrenmeyi kullanarak çok az sayıda örnekle bile farklı niyet sınıflarını ayırmada çoğu zaman net bir ayrım elde eder
    • Sentence transformer'lar üretken yapay zeka sistemlerinde de rol oynayabilir
    • LLM kullanan müşteri odaklı sohbet botu sistemlerinde niyet tespiti için SetFit başarıyla kullanılmış, daha sıkı filtreleme için SetFit tabanlı sınıflandırıcı tercih edilmiştir
  • vLLM

    • Bulutta veya on-premises çalışabilen, LLM'ler için yüksek throughput ve bellek verimliliği sunan bir çıkarım motoru
    • Birden çok model mimarisini ve popüler açık kaynak modelleri sorunsuz biçimde destekler
    • NVIDIA DGX ve Intel HPC gibi GPU platformlarında dockerize edilmiş vLLM worker'ları dağıtarak geliştirici kodlama desteği, bilgi erişimi, doğal dilde veritabanı etkileşimi vb. için Llama 3.1 (8B ve 70B), Mistral 7B ve Llama-SQL gibi modelleri barındırır
    • OpenAI SDK standardıyla uyumludur ve tutarlı model serving'i teşvik eder
    • Azure AI Model Catalog, özel çıkarım container'ları kullanarak model serving performansını artırır ve yüksek throughput ile verimli bellek yönetimi nedeniyle vLLM'yi varsayılan çıkarım motoru olarak kullanır
    • vLLM çerçevesi, büyük ölçekli model dağıtımlarında varsayılan seçenek olarak öne çıkmaktadır

Assess

  • Apache XTable™

    • Mevcut açık tablo formatları arasında henüz net bir kazanan ortaya çıkmış değil
    • Delta UniForm gibi araçlar bu formatlar arasında birlikte çalışabilirliği mümkün kılar
    • Apache XTable™, Hudi, Delta ve Iceberg arasında çift yönlü birlikte çalışabilirliği teşvik eden bir Apache incubator projesidir
    • Bu formatlar arasındaki yetenek farkları nedeniyle, uzun vadede çift yönlü birlikte çalışabilirliğe aşırı bağımlılık ekiplerin yalnızca "en küçük ortak payda" özelliklerini kullanabilmesine yol açabilir
  • dbldatagen

    • Veri mühendisliği için test verisi hazırlamak önemli bir zorluktur
    • Veriyi üretim ortamından test ortamına taşımak riskli olabileceğinden, ekipler sıklıkla sahte veya sentetik verilere güvenir
    • dbldatagen (Databricks Labs Data Generator), test, benchmark, demo vb. için Databricks ortamında sentetik veri üreten bir Python kütüphanesidir
    • dbldatagen, milyarlarca satırı dakikalar içinde üretebilir; birden fazla tablo, change data capture ve merge/join işlemleri gibi çeşitli senaryoları desteklerken büyük ölçekte sentetik veri oluşturabilir
  • DeepEval

    • DeepEval, LLM performansını değerlendirmek için Python tabanlı açık kaynaklı bir değerlendirme çerçevesidir
    • LlamaIndex veya LangChain gibi popüler çerçevelerle oluşturulmuş RAG (retrieval-augmented generation) ve diğer türde uygulamaları değerlendirmek, ayrıca gerektiğinde farklı modelleri karşılaştırırken referans çizgileri ve benchmark’lar belirlemek için kullanılabilir
    • DeepEval, halüsinasyon tespiti, yanıt ilgililiği, hiperparametre optimizasyonu gibi LLM performansını değerlendirmeye yönelik kapsamlı metrikler ve yetenekler sunar
    • pytest ile entegrasyon sağlar ve assertion’larla birlikte test setlerini CI (continuous integration) pipeline’ına kolayca entegre etmeyi mümkün kılar
  • DSPy

    • Günümüzde çoğu dil modeli tabanlı uygulama, belirli görevlere göre manuel olarak ayarlanmış prompt şablonlarına dayanır
    • DSPy, bu tür uygulamaları geliştirmek için kullanılan bir çerçevedir ve doğrudan prompt engineering yaklaşımını ortadan kaldıran farklı bir yaklaşım benimser
    • Bunun yerine program akışıyla ilgili (birbiri üzerine katmanlanabilen modüller aracılığıyla), optimize edilecek metriklerle ve eğitilecek ya da test edilecek verilerle ilgili yüksek seviyeli soyutlamalar sunar
    • Ardından tanımlanan metriklere dayanarak temel dil modelinin prompt’larını veya ağırlıklarını optimize eder
    • Ortaya çıkan kod tabanı, PyTorch ile sinir ağı eğitmeye oldukça benzer
  • Flutter for Web

    • Flutter, iOS ve Android uygulamaları için sunduğu cross-platform destekle bilinir
    • Artık daha fazla platforma genişledi
    • Aynı kod tabanından iOS, Android ve tarayıcı için uygulama geliştirilebilir
    • Her web uygulaması Flutter için anlamlı olmasa da, özellikle progressive web app’ler, single-page app’ler ve mevcut Flutter mobil uygulamalarını web’e taşımak için uygundur
    • Flutter, deneysel kanalda zaten WebAssembly (WASM) desteğini bir derleme hedefi olarak sunuyordu; bu da potansiyel hatalar ve performans sorunlarıyla birlikte aktif geliştirme altında olduğu anlamına geliyordu
    • Son sürümlerde bu destek kararlı hale geldi
    • WASM hedefi için derlenen Flutter web uygulamalarının performansı, JavaScript derleme hedefine göre çok daha iyidir
    • Farklı platformlarda native’e yakın performans, birçok geliştiricinin başlangıçta Flutter’ı seçme nedenlerinden biridir
  • kotaemon

    • kotaemon, bilgi tabanlı belgeler için Soru-Cevap uygulamaları oluşturmayı sağlayan açık kaynaklı, RAG tabanlı bir araç ve çerçevedir
    • PDF ve DOC formatları dahil birden fazla belge türünü anlayabilir ve kullanıcıların bilgi tabanını düzenleyip sohbet arayüzü üzerinden etkileşime geçmesini sağlayan Gradio tabanlı bir web UI sunar
    • Vektör deposuna sahip yerleşik bir RAG pipeline’ı vardır ve SDK ile genişletilebilir
    • Ayrıca yanıtlar içinde, web tabanlı satır içi önizleme ve ilgililik puanlarıyla birlikte kaynak belge alıntıları sunar
    • RAG tabanlı bir belge Soru-Cevap uygulaması isteyenler için bu özelleştirilebilir çerçeve çok iyi bir başlangıç noktasıdır
  • Lenis

    • Lenis, modern tarayıcılar için tasarlanmış hafif ama güçlü bir smooth scrolling kütüphanesidir
    • WebGL scroll senkronizasyonu ve paralaks efektleri gibi akıcı kaydırma deneyimlerini mümkün kılar; bu da onu esnek ve kesintisiz scroll etkileşimlerine sahip sayfalar oluşturan ekipler için ideal hale getirir
    • Geliştiriciler, Lenis’in basit ve kullanımı kolay olduğunu, ayrıca smooth scrolling oluşturmak için sadeleştirilmiş bir yaklaşım sunduğunu düşünüyor
    • Ancak kütüphane erişilebilirlik sorunlarına yol açabilir; özellikle dikey ve yatay scroll etkileşimleri engelli kullanıcılar için kafa karıştırıcı olabilir
    • Görsel olarak etkileyici olsa da erişilebilirliği korumak için dikkatli bir uygulama gerekir
  • LLMLingua

    • LLMLingua, küçük dil modelleri kullanarak gerekli olmayan token’ları kaldırıp prompt’ları sıkıştırarak, performans kaybını en aza indirirken LLM verimliliğini artırır
    • Bu yaklaşım, LLM’lerin daha uzun prompt’ları verimli biçimde işlerken muhakeme ve bağlam içi öğrenmeyi korumasını sağlayarak maliyet verimliliği, çıkarım gecikmesi ve bağlam işleme gibi zorlukları ele alır
    • Ek eğitim gerektirmeden çeşitli LLM’lerle uyumlu olan ve LlamaIndex gibi çerçeveleri destekleyen LLMLingua, LLM çıkarım performansını optimize etmek için uygundur
  • Microsoft Autogen

    • Microsoft Autogen, AI agent oluşturmayı ve orkestrasyonu basitleştiren açık kaynaklı bir çerçevedir; karmaşık görevleri çözmek için çoklu agent iş birliğini mümkün kılar
    • Hem otonom hem de human-in-the-loop workflow’ları destekler ve çeşitli LLM’ler ile agent etkileşim araçlarıyla uyumluluk sunar
    • Bir ekip, kod üretimi, kod inceleme veya belge özetleme gibi belirli becerileri temsil eden her bir agent’ın yer aldığı yapay zeka tabanlı bir platform oluşturmak için bir müşteri adına Autogen kullandı
    • Uygun modelleri ve workflow’ları çerçeve içinde tanımlayarak ekipler yeni agent’ları sorunsuz ve tutarlı biçimde oluşturabiliyor
    • Workflow’ları orkestre etmek için LlamaIndex’ten yararlanarak agent’ların ürün arama ve kod önerileri gibi görevleri verimli biçimde yönetmesi sağlanabiliyor
    • Autogen, özellikle production ortamlarında potansiyel gösterse de daha fazla agent eklendikçe ölçeklenebilirlik ve karmaşıklık yönetimi konusunda endişeler sürüyor
    • Agent tabanlı sistemlerin ölçeklenmesindeki uzun vadeli uygulanabilirliği değerlendirmek için ek değerlendirmeler gerekiyor
  • Pingora

    • Pingora, hızlı, güvenilir ve programlanabilir ağ servisleri oluşturmak için geliştirilmiş bir Rust çerçevesidir
    • Başlangıçta Cloudflare tarafından Nginx’in eksiklerini gidermek için geliştirilen Pingora, River gibi yeni proxy’lerin halihazırda onun üzerine inşa edilmesiyle büyük bir potansiyel gösteriyor
    • Çoğu kişi Cloudflare ölçeğinde bir boyutla karşı karşıya olmasa da, esnek uygulama katmanı yönlendirmesinin ağ servisleri için kritik olduğu senaryolarla karşılaşır
    • Pingora’nın mimarisi sayesinde bu gibi durumlarda güvenlikten veya performanstan ödün vermeden Rust’ın tüm yeteneklerinden yararlanılabilir
  • Ragas

    • Ragas, hem retrieval hem de generation bileşenlerini değerlendirme zorluğunu ele alırken retrieval-augmented generation (RAG) pipeline’larının performansını ölçmek için tasarlanmış bir çerçevedir
    • Sadakat, yanıt ilgililiği ve bağlam kullanımı gibi yapılandırılmış metrikler sunarak RAG tabanlı sistemlerin etkinliğini değerlendirmeye yardımcı olur
    • Geliştiriciler, top-k retrieval ve embedding modelleri gibi parametrelerde ince ayar yapmak için düzenli değerlendirmeler çalıştırmada bunu faydalı buluyor
    • Bazı ekipler, prompt şablonları veya modeller her değiştiğinde günlük çalışan pipeline’lara Ragas’ı entegre ediyor
    • Metrikler güçlü içgörüler sağlasa da çerçevenin karmaşık RAG pipeline’larının tüm nüanslarını ve karmaşık etkileşimlerini yakalayamayabileceğine dair endişeler var; bu nedenle ek değerlendirme çerçevelerinin de göz önünde bulundurulması öneriliyor
    • Buna rağmen Ragas, production ortamlarında RAG değerlendirmesini sadeleştirme ve veri odaklı iyileştirmeler sağlama becerisiyle öne çıkıyor
  • Score

    • Kendi dahili geliştirme platformunu uygulayan birçok organizasyon, geliştiriciler ile platform barındırma ekipleri arasında kurumsal standartları uygulamak için kendi platform orkestrasyon sistemini oluşturma eğiliminde
    • Ancak konteyner iş yüklerini güvenli, tutarlı ve uyumlu bir şekilde barındırmak için "paved road" dağıtım platformunun temel işlevleri organizasyonlar arasında benzerlik gösteriyor
    • Bu gereksinimleri tanımlamak için ortak bir dil olsa iyi olmaz mıydı?
    • Score, bu alanda standart olma potansiyeli gösteriyor
    • YAML biçiminde bildirimsel bir dil; konteynerleştirilmiş iş yüklerinin nasıl dağıtılacağını ve bunları çalıştırmak için gereken somut servisleri ve parametreleri açıklıyor
    • Score başlangıçta Humanitec'in Platform Orchestrator ürünü için bir yapılandırma dili olarak geliştirildi, ancak artık CNCF'nin (Cloud Native Computing Foundation) gözetimindeki bir açık kaynak proje
    • CNCF'nin desteğiyle Score'un Humanitec ürünlerinin ötesinde daha yaygın kullanılması mümkün görünüyor
    • Kubernetes ve Docker Compose olmak üzere iki referans uygulamayla birlikte yayımlandı
    • Score'un genişletilebilirliğinin, diğer platformlara yönelik topluluk katkılarını teşvik etmesi bekleniyor
    • Score, Kubevela için Open Application Model (OAM) spesifikasyonuyla benzerlikler taşıyor, ancak tüm uygulamadan ziyade konteyner iş yükü dağıtımına daha fazla odaklanıyor
    • SST ile de bir miktar örtüşüyor, ancak SST dahili mühendislik platformlarından çok doğrudan bulut altyapısına dağıtıma odaklanıyor
    • Score'u geliştikçe ilgiyle izliyoruz
  • shadcn

    • shadcn, yeniden kullanılabilir ve kopyala-yapıştır yapılabilen bileşenler sunarak mevcut bileşen kütüphanesi kavramına meydan okuyor
    • Bu yaklaşım ekiplere tam sahiplik ve kontrol veriyor; böylece MUI ve Chakra UI gibi daha genel geleneksel kütüphanelerin çoğu zaman yetersiz kaldığı alanlarda daha kolay özelleştirme ve genişletme sağlanıyor
    • Radix UI ve Tailwind CSS ile oluşturulan shadcn, React tabanlı her türlü uygulamaya sorunsuz entegre oluyor; bu da onu kontrol ve genişletilebilirliğe öncelik veren projeler için uygun kılıyor
    • Bileşenleri projeye kopyala-yapıştır sürecini destekleyen bir CLI da içeriyor
    • Gizli bağımlılıkları azaltma ve sıkı bağlı uygulamaları önleme gibi avantajlar da sunduğundan, shadcn frontend geliştirmede daha pratik ve uyarlanabilir bir yaklaşım arayan ekipler için cazip bir alternatif olarak öne çıkıyor
  • Slint

    • Slint, Rust, C++ veya JavaScript uygulamaları için yerel kullanıcı arayüzleri oluşturmaya yönelik bildirimsel bir GUI framework'ü
    • Canlı önizleme, duyarlı UI tasarımı, VS Code entegrasyonu ve yerel kullanıcı deneyimi gibi önemli özelliklere sahip çok platformlu bir UI framework'ü olsa da, özellikle gömülü sistemlerdeki kullanımını vurgulamak istiyoruz
    • Gömülü uygulamalar geliştiren ekiplerin geleneksel olarak UI geliştirme için sınırlı seçenekleri vardı ve bunların her birinin kendine özgü artıları ve eksileri bulunuyordu
    • Slint, kullanımı kolay, HTML benzeri bir işaretleme dili kullanıyor ve doğrudan makine koduna derlenerek geliştirici deneyimi ile performans arasında mükemmel bir denge sunuyor
    • Çalışma zamanında da gömülü sistemler için önemli olan düşük kaynak ayak iziyle öne çıkıyor
    • Kısacası, web ve mobil geliştirmede doğrulanmış pratikleri gömülü ekosisteme taşıdığı için Slint'i beğeniyoruz
  • SST

    • SST, uygulamaları bunları çalıştırmak için gereken tüm servislerle birlikte bulut ortamlarına dağıtmaya yönelik bir framework
    • SST yalnızca bir IaC aracı değil; uygulama ortamını tanımlayabileceğiniz bir TypeScript API'sine sahip bir framework, Git push ile tetiklendiğinde uygulamayı dağıtan bir servis ve ortaya çıkan uygulamayı yönetip SST yönetim işlevlerini çağıran bir GUI konsol de sunuyor
    • SST başlangıçta AWS Cloud Formation ve CDK üzerine kuruluydu, ancak son sürümleri Terraform ve Pulumi üzerinde uygulanıyor; bu da teorik olarak buluta bağımlı olmadığı anlamına geliyor
    • SST, Next.js ve Remix dahil çeşitli standart web uygulama framework'lerinin dağıtımını yerleşik olarak destekliyor, ayrıca headless API uygulamalarını da destekliyor
    • SST kendi kategorisine ait gibi görünüyor
    • Kubevela gibi platform orkestrasyon araçlarıyla benzerlikleri var, ancak AWS Lambda çağrılarını geliştiricinin yerel makinesinde çalışan işlevlere proxy'leyen live mode gibi geliştirici kolaylığı özellikleri de sunuyor
    • Şu anda SST hâlâ biraz merak uyandıran bir proje olarak kalsa da, geliştikçe dikkatle izlenmeye değer bir proje ve araç kategorisinin parçası

Hold : yok

10 yorum

 
kane44 2024-11-05

Teşekkürler. Eğlenceliymiş.

 
dastjead 2024-11-04

Emeğiniz için çok teşekkürler... minnettarız!

 
roxie 2024-10-31

Arada geçen Lenis adlı kaydırma kütüphanesi hakkında bir şey ekleyecek olursam... Apple'ın ana sayfasındaki gibi akıcı kaydırma animasyonları bana biraz rahatsız edici geliyor.

Fare tekerleğini çevirerek bakmaya çalışınca animasyon sürekli takılıyormuş gibi hissettiriyor, aşağı ok tuşuna basarak ilerlemeye çalışınca da fazla hızlı olduğu için içeriği okumak zor geliyor.

Sonuçta Windows'ta kaydırma tekerleğine tıklayıp çok hafif hareket ettirerek yavaş yavaş aşağı inmek, böyle web sitelerinin "tadını çıkarmanın" tek yolu oluyor; ama bunun o kadar değerli olup olmadığından emin değilim. Kısacası bunun iyi bir teknik olup olmadığından emin değilim.

 
roxie 2024-10-31

Databricks korkutucu derecede sık geçiyor.

 
halfenif 2024-10-29

Okurken tükendim. Hıçkırık hıçkırık

 
savvykang 2024-10-29

GeekNews'te daha önce paylaşılmış ürün/hizmetleri derledim.

Platforms - Assess

Platforms - Trial

Language and Frameworks - Adopt

Language and Frameworks - Assess

Language and Frameworks - Trial

Tools - Adopt

Tools - Assess

Tools - Trial

 
wwhite103 2024-10-29

Teşekkürler. İlginçmiş~

 
nottiger 2024-10-29

Güzelce okudum. Teşekkür ederim.

 
bbulbum 2024-10-29

Keyifle okudum. Teşekkürler.