- 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
Gerçekten hayranlık verici.
Hacker News görüşleri
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
Örneğin
eval(unescape(escape\<<97 wide characters>>`.replace(/u../g,'')))` gibi bir biçimle 97 Unicode karakterini 194 ASCII'ye geri açabiliyorsunuzKeş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
Eski bir röportajını buldum, ilginç: Medium röportajı
Asıl sihir toplulukta: Discord topluluğu
Animasyon GIF'i
Ayrıntılar için Autohotkey forum gönderisine bakabilirsiniz
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
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
js_func, tagged template literal olarak çağrılıyorArtık
console.log\weeee`` gibi şeyler deneyeceğimÖrneğin: htm, lit.dev
Küçük SVG verilerini inline kod içinde saklayarak 13KB'lık bir sampler yaptım
Örnek bağlantı
Örneğin:
evalkullanımının engellenmesini isterdimOnun yerine daha fazla kısayol eklenebilirdi. Mesela
s,Math.signanlamına geliyor ama daha da genişletilebilirdiSonradan 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
evalsorunu kökten çözülebilirString literal ile veri sıkıştırmak yine mümkün olur ama toplam kod sıkıştırması azalır
eval'e izin verilmesinden memnunum. Kural kuraldır (ya da kural yoktur)