- Helene Kasırgası nedeniyle Florida’daki üniversite derslerinin iptal edildiği sırada, yazar Waffle House web sitesini tersine mühendislikle analiz etmeye başladı
- Waffle House Index adlı gayriresmî doğal afet göstergesini gerçeğe dönüştürüp verilerle gerçek zamanlı bir harita oluşturdu
- Python, Next.js ve Redis kullanarak ülke genelindeki mağazaların açık/kapalı durumunu otomatik izleyen bir web sitesi geliştirdi
- Proje sosyal medyada ve tanınmış kişiler arasında ilgi görünce, süreç Waffle House’un resmî engellemesi ve yayını durdurma talebiyle sonuçlandı
- Site ticari marka ihlali nedeniyle kapatılsa da, veri kullanımı ve mühendislik deneyimi üzerinden programlamanın keyfini ve gelişim duygusunu yaşadı
Giriş: Arka plan ve motivasyon
- 2024 Eylül’ünün sonlarında, Helene Kasırgası Florida’ya yaklaşırken yazar Waffle House web sitesini analiz etmeye yoğunlaştı
- Dışarıda evleri korumak için bariyer hazırlıkları sürerken, yazar Waffle House Index’in gerçek zamanlı bir uygulamasına odaklandı
- Waffle House Index, FEMA’nın (ABD Federal Acil Durum Yönetim Ajansı) başvurduğu gayriresmî bir doğal afet şiddeti göstergesi; afetin ciddiyetini Waffle House şubelerinin açık ya da kapalı olmasına bakarak ölçen sıra dışı bir yöntem
- Ancak resmî olarak doğrulanabilen bir “indeks” ya da gerçek zamanlı harita yoktu; konuya dair bilgiler yalnızca bazı Vikipedi maddeleri ve haberlerde dağınık halde bulunuyordu
Tersine mühendislik ve teknik yaklaşım
Teknik yapı
- Waffle House, konum bilgisini sunan sitesinde Next.js ve React Server Components kullanan bir yapıya sahipti
- React Server Components sunucu tarafında çalıştığı için, istemci tarafında ham HTML doğrudan görülemiyordu
- Uzun süren kaynak incelemesinin ardından, Next.js’in istemciye veri enjekte ettiği belirli bir dosyadaki JSON verisini buldu
- Bu veride tüm şubelerin durumu (açık/kapalı, yoğunluk vb.) yer alıyordu
Veri toplama, işleme ve sitenin kurulumu
- Python ile hafif scraping ve veri işleme, Next.js frontend’i ve Redis cache birleşimiyle gerçek zamanlı şube kapanış haritası oluşturdu
- Böylece hangi bölgelerdeki Waffle House’ların kapandığını, dolayısıyla bölgesel afet durumunu izleyebildi
Hizmetin yayına alınması ve yayılması
- wafflehouseindex[.]org alan adını Vercel’e deploy edip bir tweet ile paylaştı
- O sırada sosyal medyada 200’den az takipçisi olmasına rağmen, Waffle House’un resmî hesabından doğrudan tepki almasıyla hızla yayıldı
- Waffle House, sitedeki bilgilerin gayriresmî ve hatalı olabileceğini vurguladı; gerçek kapanış bilgilerinin resmî kanallar üzerinden duyurulacağını açıkladı
- Yazarın buna esprili bir quote tweet ile yanıt vermesinin ardından, ünlü siyasal yorumcu Frank Luntz sitenin adını doğrudan anınca ziyaretçi sayısı hızla arttı
Engelleme ve hukuki süreç
- Frank Luntz’ın tweet’ine karşılık Waffle House’un pazarlama ve hukuk ekipleri hızla devreye girerek bilgilerin gayriresmî ve hatalı olduğunu yeniden belirtti; Frank de tweet’ini sildi
- Sonrasında yazar, Waffle House’un Twitter hesabı tarafından engellendi (block)
- Kasırga geçtikten sonra Waffle House’tan ticari marka ihlali uyarısı ve faaliyet durdurma talebi (cease and desist) içeren bir e-posta aldı
- Sorun, veri toplama ve şube bilgilerinin kendisinden çok, logo gibi Waffle House ticari markalarının kullanımıydı
Yanıt ve kapanış
- Yazar Waffle House’a mizahi bir üslupla yanıt verdi (“House hayranı” olduğunu, markayı bayrak gibi gördüğünü ve saygı duyduğunu söyleyerek)
- Kıdemli bir yönetici sıcak bir cevap gönderdi, ancak ticari marka ihlali nedeniyle sitenin kapatılması kaçınılmaz oldu
- Resmî markayı koruyarak siteyi açık tutma ihtimalini de sordu, ancak bir daha yanıt alamadı
Sonuç ve değerlendirme
- Bu süreç, programlamanın keyfini, verinin yaratıcı kullanımını ve topluluk tepkisini bizzat deneyimlediği bir mühendislik yolculuğuydu
- Kısa sürmüş olsa da, afet, veri, açık kaynak ve marka eksenlerinin kesiştiği benzersiz bir deneyime dönüştü
- Waffle House’un centilmence yaklaşımı, iletişimi ve ticari marka ihlaline rağmen gösterdiği sabır için teşekkür etti
Kapanış
- Metnin düzeltilmesi ve düzenlenmesine yardımcı olan Moo, Kai ve Babgel GC’ye teşekkür etti
1 yorum
Hacker News görüşleri
Eskiden Dannon / Danone'un yoğurtlarında bulunan bakteriler için bilimsel görünen sahte isimler kullandığını işaret eden bir site yapmıştım. Sitem hakkında Danone hukuk ekibi benimle iletişime geçti ama geri adım atmadım. Ayrıntılar için buraya bakabilirsiniz. Yalnızca Waffle House markasını kaldırsaydı muhtemelen sorun olmazdı; ayrıca sitenin üst kısmına büyük bir feragat beyanı koyarak bu tür hukuki iddiaların gerçekte ne kadar gülünç olduğunu vurgulayabileceğini düşünüyorum
McBroken.com'un da hâlâ sorunsuz şekilde çalıştığını hatırlatmak isterim
Senin web siten, ana akım medya haberlerinin özetlerini ve bazı doktor röportajlarını derliyor. "Uydurulmuş" isimler ve "doğru bilimsel ad" hakkında iddialar var ama üreticinin bu tür isimleri etikette kullanmasını hangi yasanın yasakladığına dair bir alıntı yok. Yaklaşım sanki Birleşik Krallık perspektifinden yapılmış gibi, fakat ABD FDA veya FTC'nin bu tür neolojizmlerin kullanımını yasaklayan bir düzenlemesi varmış gibi görünmüyor. Biyolojik taksonomide yeni adlar sık sık oluşturulur, türlerin alternatif adları ve takma adları da yaygındır. İlaç sektörü, bilim insanları, hatta astronomlar bile Latince gibi duyulan isimleri serbestçe uydurur. Gıda sektörü de 'milk' ve 'water' gibi kelimeleri anlamlarını genişleterek ve yasal onayla kullanıyor. Takviye edici gıdalarda marka harman isimleri kullanmak da FDA düzenlemeleriyle oldukça uyumlu. Sonuçta sitenin ayakta kalmasının nedeni, bu etiketleme uygulamalarına gerçekte bir tehdit oluşturmaması olabilir. Bu arada bağırsaklarımdaki candida albicans'a da yeni bir ad vermek istiyorum: candida hackernewsensis
Eski bir tanıdığım DJ sahne adı olarak Mupperfucker'ı kullanmıştı ve Jim Henson Company'den kullanımı durdurma talebi almıştı. Marka sahibinin savunma amacıyla adım atması gerektiğini anlıyorum ama yine de ironik. İlgili yazı
"Canlı yayın da yok, harita da yok, kapanmış restoran sayacı da yok" denmesi konusunda bu kadar emin olmak zor. Referans olması için [bu bağlantıda](https://en.wikipedia.org/wiki/Waffle_House_Index#/media/File:FEMA_Waffle_House_Index_-_13_February_2014.jpg) ilgili bir görsel var
Eğer mesele yalnızca marka veya logo kullanımıysa, o kısmı kaldırıp başka bir alan adında yayına devam etmek yeterli olmaz mıydı? Veri scraping'in kendisine dair özel bir şikâyet dile getirilmemiş
Tüm siteyi kapatmana gerek yoktu, sadece logoyu kaldırman yeterli olabilirdi
WaffleHurricaneTracker.org gibi daha nötr bir isimlendirme muhtemelen marka sorunu yaşamadan hayatta kalabilirdi. Scraping meselesinde de veriyi anonimleştirseydi bunun Waffle House'tan geldiğini açıkça göstermemiş olurdu; birkaç kahvaltı zincirinden yavaş yavaş toplamış izlenimi verseydi belki sorun çıkmazdı
Şirketin gösterişli antetli kâğıdına benzeyen bir görsel hazırlayıp C&D'yi kaliteli kâğıda bastırarak çerçeveletirsen, ömür boyu "Waffle House beni dava etmekle tehdit etti" hikâyesini anlatabilirsin
Waffle House'a her gidişinde gerçekten özel bir anı olur bu. Harika bir sohbet konusu. C&D ürkütücü olabilir ama şahsi görüşüm, mektupları oldukça nazik ve doğrudandı. Bu arada hafflewouse.com hâlâ boşta
FEMA'nın otomatik bir sistem mi kullandığı yoksa Waffle House Index'in terk edilmiş bir fikir mi olduğu konusunda kafam karışık
Waffle House Index resmî bir endeks değildi. Afet yardımı işinde çalışan insanların kendi aralarında günlük olarak "A kasabasını hortum vurdu ama Waffle House açıktı" gibi şeyler söylemesiyle ortaya çıkan, yarı şaka bir iç göstergeydi. Yakın zamanda öğrendiğime göre FEMA, afet bölgelerinde Waffle House gibi yerel restoranlarla iletişime geçip durumu soruyormuş. Daha çok acil durumun ciddiyetini ölçmek için ek bir veri kaynağı gibi. Yine de buna ciddi ciddi bir "endeks" demek biraz zorlama
Bakılabilecek bir haber yazısı ve [Wikipedia görseli](https://en.wikipedia.org/wiki/Waffle_House_Index?useskin=vector#/media/File:FEMA_Waffle_House_Index_-_13_February_2014.jpg) var
Bloglardaki oyun benzeri başarı sistemlerini bir C&D ile kapatabilmeyi isterdim; bana göre blog bir oyun değil