8 puan yazan GN⁺ 2026-01-11 | 2 yorum | WhatsApp'ta paylaş
  • Dwitter, 140 karakteri aşmayan JavaScript koduyla görsel demolar yazıp paylaşabileceğiniz bir platformdur
  • Her gönderi 'dweet' olarak adlandırılır ve kodla birlikte anında çalışan grafik animasyonları gösterir
  • Kullanıcılar yorumlar, remix'ler ve hashtag'ler üzerinden etkileşime girer; kodun türevleri ve yeniden üretimleri aktif biçimde yapılır
  • hot, new, top (hafta/ay/yıl/tüm zamanlar) gibi çeşitli sıralama ölçütleriyle popüler içerikler keşfedilebilir
  • Kısa kodla karmaşık görsel efektler üretmeye odaklanan yaratıcı programlama deneyleri için bir alan

Dwitter.net'e genel bakış

  • Dwitter.net, 140 karakter sınırına sahip JavaScript koduyla görsel demolar üretmeye yönelik bir web platformudur
    • Her demo 'dweet' olarak adlandırılır ve tarayıcıda anında çalışan animasyonlu grafikler üretir
    • Kullanıcılar giriş yaptıktan sonra yeni bir dweet yazabilir veya mevcut işleri remix edebilir
  • Site, hot, new, top (hafta/ay/yıl/tüm zamanlar) gibi çeşitli sıralama ölçütleriyle popüler içerikleri keşfetmeye olanak tanır
  • Her dweet'te paylaşma, tam ekran, bildirme ve yorum özellikleri bulunur

Öne çıkan dweet örnekleri

  • "Bubble universe colour expansion", canlı renkleri ve belirgin görsel efektleriyle beğeni toplar
    • Yorumlarda "A whole universe!" gibi tepkiler yer alır
  • "Ants! 🐜", kısa kodla bir karınca sürüsünü ifade eden bir çalışma olup "god level dweetage!" gibi övgüler alır
  • "Trees, shadows, hills.", ağaçları, gölgeleri ve tepeleri betimleyen bir animasyon olarak "Amazing stuff!" tepkisini alır
  • "Flight Over Destroyed City ✈️", yıkılmış bir şehrin üzerinde uçuş sahnesini hayata geçirir
    • Yorumlarda "i love the smell of sulfur and uranium in the morning" gibi mizahi tepkiler devam eder
  • "Solar Orbit ☀️🌘", gezegen yörüngelerini 140 bayt içine sığdırarak "How did you fit a whole planetary system in 140 BYTES OF JAVASCRIPT!?!?" şaşkınlığını doğurur

Topluluk etkinliği ve remix kültürü

  • Her dweet, başka kullanıcıların kodları temel alınarak remix'lenebilir ve orijinal bağlantı belirtilir
  • Yorumlarda teknik geri bildirim, izlenim ve mizah iç içe geçerek canlı bir topluluk atmosferi oluşturur
  • Hashtag özelliği sayesinde #space, #galaxy, #lighting, #scene gibi konulara göre keşif yapılabilir

Teknik özellikler

  • Kodların çoğu eval(unescape(escape...)) biçiminde sıkıştırılmıştır ve 140 karakter sınırı içinde mümkün olan en yüksek görsel etkiyi üretmeye odaklanır
  • Kod içinde ağırlıklı olarak Canvas API kullanılarak şekiller, renkler ve hareketler ifade edilir
  • Her dweet'te kod uzunluğu (ör. // 136/140) belirtilir; bu da optimizasyon ve sıkıştırma tekniklerini önemli bir unsur haline getirir

Yaratıcı programlama deneyleri için bir alan

  • Dwitter, code golf ile görsel sanatı birleştiren bir yapı olarak geliştiriciler arasında yaratıcılık rekabetini teşvik eder
  • Basit kodla karmaşık görsel sonuçlar üretme süreci, programlama estetiği olarak değerlendirilir
  • Platform, sanatsal ifade ile teknik sıkıştırmanın sınırlarını araştıran deneysel bir alan olarak işlev görür

2 yorum

 
roxie 2026-02-27

Gerçekten hayranlık verici.

 
GN⁺ 2026-01-11
Hacker News görüşleri
  • Bunu HN'de görmek güzel :D
    Sunucuyu kısa süreliğine yeniden başlatmak zorunda kaldığım için üzgünüm. Geçen sefer benzer bir şey olduğunda aldığım ders sayesinde DigitalOcean droplet boyutunu ayarladım
  • Güzel ama sınır karakter sayısına göre konunca, çok baytlı Unicode karakterleri kullanarak ASCII karakterlerini sıkıştırmaya yönelik bir meta oyunu doğuyor
    Örneğin eval(unescape(escape\<<97 wide characters>>`.replace(/u../g,'')))` gibi bir biçimle 97 Unicode karakterini 194 ASCII'ye geri açabiliyorsunuz
    Keşke Ford Prefect ile Mr Prosser arasındaki konuşmadaki gibi, “194 karakteri 140 karakterin içine sığdırdığımızı varsayalım ve öyle gösterelim” şeklinde bir uzlaşı olsaydı
    Bu, demoparty'lerdeki 4096 bayt sınırına benziyor; pratikte insanlar Crinkler ile 12~20KB'ı sıkıştırıp o sınıra uyduruyor
    • beta.dwitter.net/top beta arayüzünde, istediğiniz şekilde görebilmeniz için “compressed” anahtarı var
    • Sınırı doğrudan UTF-8 baytı üzerinden koymak da bir yöntem olabilir (ör. 140 bayt)
    • 140 bayt yaklaşık 160 ASCII karakterine denk gelir. Kontrol karakterleri hariç tutulursa 170 karaktere kadar çıkılabilir
    • Bu yorum sanırım HN'de gördüklerim arasında en çok yanıt alanı oldu :-)
    • HHG (Hitchhiker’s Guide) referansını fark eden birini görmek güzel
  • Dwitter bu kış 10. yılını dolduruyor
    Eski bir röportajını buldum, ilginç: Medium röportajı
    Asıl sihir toplulukta: Discord topluluğu
  • Dwitter'da 140 karakter içinde yapılmış jeneratif eskizlerden oluşan bir derleme hazırladım
  • Eskiden Dwitter'ın Authotokey sürümünde küçük bir yarışmaya katılmış ve dişli animasyonuyla kazanmıştım
    Animasyon GIF'i
    Ayrıntılar için Autohotkey forum gönderisine bakabilirsiniz
  • Dwitter gibi siteleri görünce insanın insan yaratıcılığına olan güveni tazeleniyor
    Kısıtlar olduğunda çeşitlilik adeta patlıyor. Görsel illüzyonlar, kısa cümleler, beklenmedik yönlere giden denemeler...
    Kısıtlar odağı artırıyor ve başarısızlığın maliyetini düşürerek denemeyi teşvik ediyor
    Çoğu platform yaratıcılığı genişletmek için özellik eklemeye çalışıyor ama bu da işleri daha karmaşık hale getiriyor
    Sık sık kısıtların eğlence yarattığı kuralını düşünüyorum
    Kısıtların ne zaman daha iyi sonuçlar doğurduğunu ve ne zaman yapay hissettirdiğini merak ediyorum
  • Twitter'ın ilk dönemlerinde 140 baytlık code golf işine çok kaptırmıştım
    Bu deneyim benim kod düşünme biçimimi tamamen değiştirdi
    Küçük bir toplulukta bayt tasarrufu tekniklerini paylaşarak Mandelbrot çiziminden Sudoku çözücüsüne kadar pek çok şey yaptık
    10 yıl sonra şirketimin kod tabanında eskiden yazdığım bir UUID implementasyonunu bulduğumda gerçekten şaşırdım
    İlgili bağlantılar: YouTube videosu, Byte-saving techniques, UUID gist
  • Bugün ilk kez şunu öğrendim:
    js_func`string`
    
    Bunun geçerli bir JS söz dizimi olduğu. js_func, tagged template literal olarak çağrılıyor
    Artık console.log\weeee`` gibi şeyler deneyeceğim
    • Bazı kütüphaneler bu söz dizimiyle, build süreci olmadan JSX benzeri söz dizimini destekliyor
      Örneğin: htm, lit.dev
    • Ben de yakın zamanda bu özelliği kod içi görsel üreticisinde kullandım
      Küçük SVG verilerini inline kod içinde saklayarak 13KB'lık bir sampler yaptım
      Örnek bağlantı
    • Bu söz diziminin neden SQL ve GraphQL şablonlarında kullanıldığını şimdi anlıyorum
      Örneğin:
      sql`SELECT * FROM users WHERE id = ${userId}`
      gql`query GetUser { user(id: ${userId}) { name email } }`
      
  • Dwitter'ı seviyorum ama eval kullanımının engellenmesini isterdim
    Onun yerine daha fazla kısayol eklenebilirdi. Mesela s, Math.sign anlamına geliyor ama daha da genişletilebilirdi
    • Böyle platformların önce var olması gerekir ki kuralları “bozmanın” yolları ortaya çıksın
      Sonradan değiştirirseniz sabit hedef ortadan kalkar ve cazibesi azalır
      beta.dwitter.net kodlamaya erişimi iyileştirirken sabit hedefi koruyor
      Math.sin veya CSS renk kodlayıcısı gibi istisnalar pratik nedenlerle eklendi
      Dwitter 2'de daha fazla ön tanımlı karakter eklenip kullanıcıların bunu kendilerinin genişletebilmesi de konuşulmuştu
      Sonuçta önemli olan yaratıcılık. Kuralları esnetmek bile başlı başına yaratıcı bir eylem
    • Puanlama UTF-8 bayt birimi üzerinden yapılırsa eval sorunu kökten çözülebilir
      String literal ile veri sıkıştırmak yine mümkün olur ama toplam kod sıkıştırması azalır
    • dwitter.net'i uzun süredir kullanıyorum ve eval'e izin verilmesinden memnunum. Kural kuraldır (ya da kural yoktur)
  • İlgili örnekler olarak,