1 puan yazan GN⁺ 2023-10-23 | 1 yorum | WhatsApp'ta paylaş
  • Ruffle, Rust ile yazılmış açık kaynaklı bir Flash Player emülatörüdür ve artık varsayılan olarak desteklenmeyen Flash içeriğini modern işletim sistemleri ve tarayıcılarda yeniden çalıştırmayı sağlar
  • Hem masaüstünü hem de web’i destekler; web ortamında WebAssembly kullanır
  • Rust ve WASM’in sunduğu güvencelerden yararlanarak Flash ile bilinen güvenlik risklerinden kaçınmayı hedefler
  • Hem sıradan kullanıcıların hem de web sitesi sahiplerinin hızlıca kurup çalıştırabilmesi için tasarlanmıştır
  • MIT/Apache 2.0 lisansı ile sunulan, özgürce kullanılabilen ücretsiz ve açık kaynaklı bir projedir

Flash içeriğini modern ortamlarda çalıştırma

  • Ruffle, Flash içeriğini modern ortamlarda çalıştırmak için geliştirilmiş bir Flash Player emülatörüdür
  • Modern işletim sistemleri ve tarayıcılarda yerel olarak çalışacak şekilde tasarlanmıştır; ek uğraş gerektirmeden Flash içeriğini yeniden canlandırmaya odaklanır
  • Uygulama dili Rust’tır ve hem masaüstünü hem de web’i hedefler
  • Web’de çalıştırma için WebAssembly kullanılır

Güvenlik yaklaşımı ve dağıtım koşulları

  • Rust ve WASM’in sunduğu güvencelerden yararlanarak Flash’ın sahip olduğu güvenlik açıklarına yol açan tuzaklardan kaçınmaya çalışır
  • Hem kullanıcıların hem de web sitesi sahiplerinin hızlıca kurup çalıştırabilmesi için tasarlanmıştır
  • MIT/Apache 2.0 lisansı altında dağıtılan ücretsiz ve açık kaynaklı bir projedir

1 yorum

 
GN⁺ 2023-10-23
Hacker News yorumları
  • Bu projeye yılda bir kez kadar bakıyorum; AS3 desteğinin tamamlanmaya yaklaşmasını görmek sevindirici
    Okul yıllarında pek çok kişi gibi Flash oyunlarına fazlasıyla zaman harcadım ve oyun tarihinin bir parçasının yok olup gitmesine üzülüyordum
    Yine de Ruffle bunun en azından bir kısmını geri getirebilir. Ama iOS'ta hâlâ Wolfenstein RPG oynayacak bir yol olmaması da aklıma geliyor. 2010'da neredeyse sırf o oyunu oynamak için aldığım bir iPod'um var ama pili sonsuza kadar dayanmayacak gibi. Şimdilik gidip biraz Adrenaline Challenge oynayayım
    • Yaklaşık 18 ay önce Ruffle'da AS3 desteği fiilen yoktu; bu da benim için belirleyici bir engeldi
      Bunun birkaç yıl daha süreceğini sanıyordum, o arada da zaman bombası olmayan son Flash sürümünü kurup kullanıyordum ama yanılmış olmama sevindim :)
    • En son baktığımda AS3 daha yeni başlamıştı; bu kadar hızlı yaklaşmış olması şaşırtıcı
    • iOS'ta Wolfenstein RPG oynayamama durumu yakında değişebilir :)
      https://github.com/hikari-no-yume/touchHLE/pull/139
    • Ben de hâlâ Inishie Dungeon'ı tekrar oynayacak bir yol arıyorum
    • Ruffle'daki eski PR'ler gerçekten birleştirilse iyi olur
  • Flash emülasyonu konuşulunca konu hep Flash oyunlarına kayıyor ama bunun dışında, hâlâ Flash'a bağımlı bilgilendirici web sitelerini koruyabilmek gibi büyük bir avantaj da var
    New York Historical Society'nin Slavery in New York sergisindeki The Merchant's House sayfası, nesneleri tek tek göstererek “her şeyin kölelikle bağlantılı olduğunu” anlatıyor. Çevrimiçi sergide Flash'a dayanan pek çok bilgi parçası var ve bunlar arasında kişisel olarak en beğendiğim sayfa buydu
    Ruffle gibi projeler sayesinde bu tür işler ayakta tutulabiliyor. Sergi artık ortadan kalktığı için bu yazıyı görebilmenin tek yolu bu ve kapsamlı tarih araştırmalarının sonuçlarından yararlanmaya devam etmeyi sağlıyor
    Ancak aynı sergi sitesindeki video galleries başarısız oluyor. Bunların, sergiyi gezen kişilerin özel bir kabinde bıraktığı video klipler olması gerekiyor; ilgili yazıları çok okuyunca bunun o dönemde New Yorkluların köleliğe nasıl baktığını gösteren iyi bir kaynak olduğu anlaşılıyor. New York Times'ta geçen “Amatör ev videosunun o garipliği var. Arka plan gürültüsü, uzun sessizlikler, kameradan kaçan bakışlar.” ifadesi de vardı
    Yaklaşık 400 videonun yalnızca bir kısmı olsa gerek ama bu sayfada Ruffle düzgün çalışmıyor. İzlemeye çalışırken sekmede kısa süreliğine ses geldiği oldu, yani bir şeyler oluyor gibi, ama videoyu hiç göremedim. Bu konuda daha bilgili biri ne olduğunu biliyorsa iyi olur; bu materyallerin kaybolması yazık olur
    • Video dosyaları hâlâ duruyor. Örneğin https://www.slaveryinnewyork.org/flash/Gallery7Responses2.fl... ve tarayıcının ağ denetleyicisinde de istenen URL'leri görebilirsiniz
      VLC veya ffplay gibi araçlarla çevrimdışı oynatmak ve daha modern bir oynatma biçimine dönüştürmek mümkün
    • Bunu Ruffle ekibine ilettim. Birkaç ay önce eklenen harici video desteğini iyileştirmek üzerine çalışıyorlar
  • Birkaç yıl boyunca Adobe Flex için AS3 ve mxml yazdım
    AS3 birçok bakımdan ECMAScript 4'tü ve bence zamanının epey ilerisindeydi. Bugün beklediğimiz pek çok şey, Flash Player ekosisteminde zaten sıradan özelliklermiş gibi geliyor
    Elbette kâbus gibi anlar da vardı ama JavaScript'in tarayıcılar arasında gerçekten çalıştırılmasının bile zor olduğu günlerde oldukça harika şeyler dağıtabiliyorduk
    • Ben de bunu yıllarca yaptım
      AS3'ün zamanının ilerisinde olmasından çok, Steve Jobs ve dönemin Adobe CEO'su yüzünden Flash'tan vazgeçince geçmişe dönmüşüz gibi geldi
      AS3 gerçekten iyiydi, öğrenmesi kolaydı ve birden fazla geliştiricinin birlikte genişletmesi için güvenliydi. Flash da ömrünün son döneminde oldukça hızlanmıştı ama sonunda her şey tuvalete atıldı gitti
    • Kesinlikle katılıyorum. Flash ve AS3 ile bir 3D render motoru yaptım ve bugüne kadar kullandığım geliştirme platformları arasında en sevdiklerimden biriydi
      AS3 harika bir dildi. Brendan Eich bunu Lex Fridman röportajında kısaca anmıştı; tarayıcıya giremeyen, JavaScript'in potansiyel halefi olmaya en yakın şey olması ilginçti. Keşke yeni standart o olsaydı
  • Adobe Flash öldü mü? Adobe bunu artık bir ürün olarak satmıyorsa neden Flash Player kısmını açık kaynak yapmadığını merak ediyorum
    Artık satılmayan yazılımların kamu malı olarak kalmasını zorunlu kılan bir yasa olsa keşke
    • Aynı soruyu eski bir başlıkta sormuştum; Flash Player'da lisanslı üçüncü taraf kodu o kadar çokmuş ki, bunları çıkarıp ya da yeniden lisanslayıp açık kaynak yapmak ya çok zor ya da imkânsız olabilir diye yanıt almıştım
      Yine de Adobe ilgili spesifikasyonları ücretsiz yayımlıyor
      Telif hakkı süresini 5 yıl gibi makul bir düzeye indirmek de iyi olurdu. Hatta telif hakkını korumak için her yıl katlanarak artan bir vergi ödemek daha bile iyi olabilir
    • Şirketlerin genelde bunu yapmamasının nedeni hukuki risk. Kullanılan bazı kütüphaneler, açık kaynaklaştırmaya izin vermeyen lisanslarla lisanslanmış olabilir
      Bu, yasayı değiştirerek çözülebilir. Örneğin antika yazılım koruma yasası gibi bir şey çıkarılıp herhangi bir yazılımın açık kaynak olarak yayımlanmasına izin verilebilir ve bu yasa kapsamındaki işlemlerle ilgili davalar engellenebilir
      Ek teşvikler de verilebilir. Ticari olarak satılmış tüm yazılımların ya kalıcı olarak arşivlenmesi ya da açık kaynak yapılmasının zorunlu tutulması gibi. Kalıcı arşivleme yasal olarak pahalı olacağından birçok yer muhtemelen açık kaynağı seçer
    • Flash Player'ın açık kaynak yapılmamasının nedeni, kod kalitesinin utanç verici düzeyde olması olabilir. Hâlâ bulunmamış çok sayıda açık da vardır muhtemelen
    • Büyük bir kısmını zaten yayımladılar[1]. Elbette bunun yeterli olmadığını da düşünebilirsiniz
  1. https://github.com/adobe/avmplus
  • Sorun, bu tür ürünlerin genelde üçüncü taraf özel mülk bileşenler kullanmış olması.
    Bu yüzden, kod tabanının büyük bölümlerini kesip çıkarmadan açık kaynak hâline getirmek çoğu zaman mümkün olmuyor; bu iş pahalı ve ortaya çıkan açık kodun faydası da ciddi ölçüde azalıyor.
  • Bunun yayımlandıktan sonra da yeni işler üretmenin mümkün olup olmadığını merak ediyorum.
    Yoksa araçlar artık diriltmesi zor bir seviyede olduğu için bu iş fiilen sadece geçmiş kataloğu canlandırmakla mı sınırlı kalacak?
    Elbette geçmiş katalog muazzam derecede büyük, ama birçok geliştiricinin Flash oyun yapmayı sevdiğini duydum; bu yüzden biri yeterince inatçı biçimde Flash oyun sahnesini yeniden canlandırmaya çalışsa ilginç olurdu.
    Şu anda buna mutlaka ihtiyaç yok ve her gün gelişen umut verici web standartları da var, ama bunlar inatçı insanları hiç durdurmadı. Hâlâ eski Nintendo donanımları için yeni oyun yapmanın yollarını arayan insanlar var.
    • Adobe hâlâ Animate'i Creative Cloud'un bir parçası olarak sunuyor ve bununla AS3 filmleri yapılabiliyor.
      AS2 istiyorsanız en az CS6'ya kadar geri gitmeniz gerekir; FLA desteği çok daha geniş olduğu için bence CS5.5 daha iyi. CS6'da bunu neden kaldırdıklarını sormayın.
      Adobe'a para vermek istemiyorsanız, Adobe araç zincirinin özgür açık kaynak sürümü olan Apache Flex'i kullanabilirsiniz. Elbette bu bir komut satırı derleyici aracıdır ve yalnızca AS3 dosyalarını derler; dolayısıyla grafikleri ayrı üretip bağlamanız gerekir.
      Vektör çizimse, SVG'yi SWF'ye dönüştürmenin bir yolunu bulmanız, bunu Flex içinde tuhaf sınıf bildirimi sihirleriyle ana SWF'ye dâhil etmeniz ve bunun yol açtığı ince maskeleme sorunlarıyla uğraşmanız gerekebilir.
    • Flash ölmemeliydi.
      Düşük bant genişliğinde de çalışan, ölçeklenebilen, platformlar arası tek dosyalık animasyonlar üreten erişilebilir bir üretim aracıydı.
      Biz hâlâ bu kaybın yerini dolduramadık. JavaScript + canvas + web yığını berbat. Ruffle çalışma zamanı hızlı açılabilirse yeni Flash yapmaya başlayabilirim.
    • Windows'ta eski Flash sürümlerini hâlâ sorunsuz çalıştırabiliyorsunuz.
      macOS'ta ise o sürümlerin hepsi 32 bit olduğu için durum daha karmaşık. M1 Mac'te bir Windows VM kurup Flash'ı onun içinde çalıştırmak daha iyi; Intel Mac'te ise 32 biti destekleyen son sürüm olan macOS Mojave'ı ayrı bir bölüme kurabilirsiniz.
    • Şirketimizde hâlâ yeni AS3 kodu yazıyoruz. Tüm IDE'ler ve araçlar W10/W11'de iyi çalışıyor.
    • Newgrounds'ta yılda bir kez kadar flashforward etkinliği oluyor.
  • Flash'ı WebAssembly'ye çeviren ticari araçlar da var.
    Pratikte WebAssembly içindeki bir VM'de tüm Linux'u çalıştırıyor ve onun içinde resmî lisanslı Adobe Flash Player'ı yürütüyorlar. Ayrıca bu Flash lisansını da ayrı olarak Harman'dan almak gerekiyor gibi görünüyor. Şu anda Flash fikrî mülkiyet hakları onlarda gibi duruyor.
    https://labs.leaningtech.com/cheerpx/for-flash
    Bunlarla hiçbir ilgim yok, sadece bir ara ilgimi çektiği için bakmıştım.
    • Geliştiricisiyim. CheerpX for Flash, Flash'ın Pepper API sürümünü çalıştırıyor ve lisans kısmı doğru.
      Ancak Flash'ı çalıştırmak için tüm Linux'u emüle etmiyor. PPAPI'yi emüle ediyor ve Flash Player'ı x86 JIT olan CheerpX üzerinde çalıştırıyor.
      Yuri, CXFF mimarisini burada anlatıyor:
      https://youtu.be/7JUs4c99-mo?t=1045
      Tam bir Linux sistem emülasyonu gerekirse o da var: https://webvm.io
  • Harika. Bunu daha önce görmemiştim.
    İnternetin ve genç acemi programcıların Flash'la birlikte gerçekten değerli bir aracı kaybettiğini düşünmeden edemiyorum. Güvenlik modelini düzgün çalıştıramamış olmaları üzücü. Flash applet'leri çok yetenekliydi ve giriş eşiği de nadiren bu kadar düşüktü.
  • Adobe'un Flash'ı bu şekilde öldürmesinden nefret ediyorum.
    Sorunları olduğu doğruydu ama çoğu yazılımın da var; ayrıca Flash gerçekten zamanının 20 yıl kadar ötesindeydi. Flash öldükten sonra web inanılmaz derecede tatsızlaştı.
    Benim komplo teorim, Apple ve Google'ın mobil desteği zorunlu kılmak için Adobe'a para verip Flash'ı öldürttüğü yönünde.
    • Komploya gerek yok. Bir ürün bu kadar berbat bir kullanıcı deneyimi yaratıyorsa bu tek başına yeter.
      Hayatımda bir satır bile Flash yazmadım, yazmak da istemedim; ama Flash sitelerinin ne kadar bozuk olduğu hâlâ kötü bir anı olarak aklımda.
      Bileşenler yerel değilmiş gibi davrandığı için sırıtıyordu, Firefox'ta klavye odağı sorunları hiç bitmiyordu, video hızlandırma da düzgün çalışmıyor gibiydi ve pili sömürüyordu. Silmek için Adobe'un Flash uygulamasını açmanız gereken kalıcı çerezler gibi bir gizlilik kâbusu da vardı; ayrıca izin yönetimi ana sistemi ya da tarayıcıyı hiçe sayıyordu.
      Neredeyse sürekli yaşanan güvenlik ve kararlılık sorunlarını da unutmak zor. Kişisel olarak Flash'ın ölmesine sevindim.
      Flash masaüstünde de pek iyi değildi ama mobilin önem kazandığı dönemde mobilde bundan çok daha kötü olduğu için öldü.
    • Flash iyi değildi. Erişilebilirlik açısından kötüydü, kapalıydı, yavaştı ve reklam dayatmanın bir aracıydı.
      Animasyon yapabiliyordu ama o dönemde çoğumuzun ihtiyaç duyduğu ya da istediği şey bu değildi.
      Flash'ı seven kesim yalnızca pazarlama departmanları, oyun geliştiricisi olmak isteyenler ve o oyunları oynayan ergenlerdi.
    • Flash'ın desteği sona ermemiş olsaydı, Ruffle gibi projeler hâlâ yaygın biçimde kullanılan özel mülk bir çalışma zamanını yakalamaya çalışmak gibi zor bir işle uğraşıyor olurdu.
    • Adobe teslim olmuş olabilir ama aslında onu öldüren, iOS'ta desteklemeyen Apple oldu.
    • Öldüğünde kutlama yaptığımı hatırlıyorum ama dönüp bakınca o kadar da kötü değilmiş.
      En azından geliştirici açısından, tek satıcılı ve her şey dâhil bir SDK ile çalışmak, bu node_modules urundan çok daha iyi.
  • Konu dışı ama burada Adobe Fastly hesabına erişimi olan bir Adobe çalışanı varsa Fastly ayarlarını kontrol etmek isteyebilir.

Eski blogs.adobe.com yazılarına gidince şu canlı hata çıkıyor:
Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has
been added to a service.
Bu hata şu URL’den geliyor: https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...

  • Öğrenciyken GNU Gnash’ın AS2 ve AS3 desteği sağlamaya çalışmasını takip ettiğimi hatırlıyorum
    Yıllar sürdü ama sonunda yalnızca kısmen çalıştı. O dönemde Flash hâlâ tarayıcıda baskındı, ama Gnash ölmeden önce bile kimse onu düzgün şekilde port edemedi
    Ruffle’ın bunu nasıl bu kadar hızlı çalıştırabildiğini merak ediyorum
    • Muhtemelen GNU gibi lisans konusunda aşırı katı değildi