1 puan yazan GN⁺ 2024-08-30 | 1 yorum | WhatsApp'ta paylaş
  • One Million Checkboxes (OMCB), herkesin aynı 1 milyon onay kutusunu gerçek zamanlı olarak değiştirebildiği bir web sitesiydi; işletim sırasında veritabanında gizli bir URL deseni keşfedilince beklenmedik bir iş birliği ortaya çıktı
  • 26 Haziran 2024’te yayımlandıktan sonraki 2 hafta içinde 500 bin kişi onay kutularını 650 milyondan fazla kez değiştirerek basit bir deneyi büyük ölçekli bir internet oyununa dönüştürdü
  • Onay kutusu durumlarının 1 bit olarak saklanması nedeniyle 8 onay kutusu 1 bayt ediyordu; bazı kullanıcılar da bunu kullanarak ASCII karakterleri ve URL’leri ikili mesajlar olarak gizledi
  • Gizli URL bir Discord sunucusuna çıkıyordu; katılımcılar 1 milyon onay kutusunu 1000×1000 görüntü olarak render ederek QR kodları, base64 mesajları, animasyonlar ve renk temsilleri üzerinde denemeler yaptı
  • Botlar sıradan kullanıcı deneyimine zarar verebilirdi; ancak kısıtları aşarak sistemi keşfetme ve iz bırakma süreci yaratıcı bir internet iş birliği olarak kaldı

One Million Checkboxes nasıl çalışıyordu

  • One Million Checkboxes (OMCB), 26 Haziran 2024’te yayımlanan ve 1 milyon küresel onay kutusu sunan bir web sitesiydi
    • Bir kullanıcı bir onay kutusunu açıp kapattığında, aynı durum siteye bağlı tüm kullanıcılara anında yansıyordu
    • İşletmeci yüzlerce kişinin binlerce kutuya tıklayacağını tahmin etmişti; gerçekte ise 2 hafta içinde 500 bin kişi onay kutularını 650 milyondan fazla kez değiştirdi
  • Site, New York Times, Washington Post, Know Your Meme ve Wikipedia’da görünecek kadar yayıldı
  • OMCB’nin ölçekleme tekniği ayrı bir yazıda ele alındı; bu hikâye ise işletim sırasında keşfedilen gizli mesaja odaklanıyor

Çizim yapmayı zorlaştıran kısıtlar

  • OMCB, açık internette kullanıcıların ne çizeceğini tahmin etmek zor olduğu için serbest çizim yapmayı zorlaştıracak şekilde tasarlandı
  • Bir satırda gösterilen onay kutusu sayısı tarayıcı penceresinin genişliğine göre değişiyordu
    • Belirli bir genişlikte “EXAMPLE” gibi bir yazı oluşturulabilse bile, tarayıcı genişliği değiştiğinde satır sonları değişiyor ve mesaj kayboluyordu
    • Telefonda çizilen bir karalama dizüstü bilgisayarda aynı şekilde görünmüyor, yalnızca aynı görüntüleme genişliğine sahip kullanıcılara görünüyordu
  • Bu kısıt, kullanıcıların yazdıkları harflerin başkalarına görünmediğini fark etmesini zorlaştıracak kadar ince işliyordu
  • Birçok kullanıcı çizim yapabilmek için bunun “düzeltilmesini” istedi, ancak bu davranış bilinçli bir tercihti

Onay kutuları veri olarak nasıl saklanıyordu

  • OMCB, 1 milyon onay kutusunun durumunu verimli biçimde saklamak ve iletmek için her onay kutusunu 1 bit olarak temsil ediyordu
    • İşaretli kutu 1, işaretsiz kutu 0 olarak saklanıyordu
    • 1 milyon bit 125.000 bayta, yani 125 KB’ye karşılık geliyordu
  • Veriler Redis’te saklanıyor, istemciye gönderilirken base64 kodlama kullanılıyordu
  • 8 onay kutusu 8 bit, yani 1 bayt oluşturabildiği için gizli mesajlar oluşturulmasına zemin doğdu

Veritabanında bulunan şüpheli URL

  • OMCB yayımlandıktan birkaç gün sonra yükü kaldırmak için backend Go ile yeniden yazıldıktan sonra, Redis’te saklanan ham baytlar ASCII biçiminde döküldü
  • Dökümün içinde catgirls.win adresine giden bir URL görünüyordu ve ilk başta veritabanının hacklendiği düşünüldü
    • Erişim logları ve kod kontrol edildi, ancak sızma izine rastlanmadı
    • Veritabanında yalnızca 0 ve 1 olması gerektiği düşünüldüğü için içine bir dize girmiş gibi görünüyordu
  • URL’ye karşılık gelen onay kutusu konumları kontrol edilince gerçek neden ortaya çıktı
    • Tek bir h karakteri 1 bayttır; 1 bayt 8 bittir ve OMCB’de 8 onay kutusuna karşılık gelir
    • URL ile örtüşen 8’li birimlerden oluşan tekrarlı bir desen vardı; bir onay kutusu değiştirildiğinde desen hemen eski hâline dönüyordu
  • Veritabanı hacklenmemişti; biri onay kutularını değiştirerek ikili mesaj yazıyordu

ASCII olarak okunan ikili mesaj

  • Redis veriyi ASCII olarak çıktılarken ham veriyi 1 bayt, yani 8 bitlik birimler hâlinde okur
  • Her bayt 0 ile 255 arasında bir sayıya dönüştürülür
    • Değer, yazdırılabilir ASCII karakter aralığı olan 32–127 içindeyse ilgili karakter gösterilir
    • Değilse \x00 gibi onaltılık bir gösterimle gösterilir
  • Mesajı oluşturan kullanıcı, onay kutularını açıp kapatarak bitleri değiştiriyor ve bu bitlerin sayılar ile karakterlerden geçerek bir URL oluşturmasını sağlıyordu
  • Bu desen, binlerce başka kullanıcının siteyle aynı anda etkileştiği bir ortamda bile korunuyordu

Discord’a açılan gizli geçit

  • Gizli URL https://catgirls.win/omcb, Checking Boxes adlı bir Discord sunucusuna yönlendiriyordu
    • Orijinal Discord daha sonra kilitlendi ve URL başka bir yeri göstermeye başladı
  • Discord katılımcıları OMCB’deki tüm onay kutusu verilerini indirip 1000×1000 ızgara görüntüsü olarak render etti
    • İşaretlenmemiş kutular beyaz, işaretli kutular siyah gösteriliyordu
  • Bu görüntünün içinde çeşitli biçimlerde mesajlar vardı
    • Alttaki tekrarlı gürültü, keşfedilen ikili mesajdı
    • Onun üzerinde aynı mesajın base64 sürümü vardı
    • Solda hata düzeltme içeren bir QR kodu vardı
    • Hepsi Discord’a yönlendiren mesajlardı
  • Katılımcılar bot yapma ihtimali yüksek kişilerin base64 verisini, ikili veriyi veya 1000×1000 görüntülerden birini göreceğini düşünerek birden fazla yolu birlikte kullandı
  • Discord’un büyüklüğü katılım anında 20 kişiden azdı; site kapandığında 60 kişinin üzerine çıktı

Botlar, çizimler ve animasyon deneyleri

  • Discord katılımcıları daha iyi bir çizim sistemi kurarken ve OMCB’nin hız sınırını tersine mühendislikle çözerken giderek daha karmaşık çizimler yaptı
    • İşletmeci hız sınırı bilgisini paylaşmayı teklif etti, ancak Discord lideri bunu kendilerinin çözmesini tercih etti
  • Zamanla animasyon ve renk temsil protokolleri de denendi
    • Bitişik hücreleri kırmızı, yeşil ve mavi kanallar gibi ele alıp daha küçük bir ızgaraya renk çizme yöntemi örnek olarak ortaya çıktı
  • Site kapanmadan önceki gün işletmeci, uyarı yaptıktan sonra tüm hız sınırlarını kaldırarak trafiğe ne kadar dayanabileceğini ve katılımcıların ne üretebileceğini görmek istedi
  • Bu sırada çeşitli animasyonlar oluşturuldu; örneklerden biri Rickroll animasyonuydu

Botlar etrafındaki iki yönlülük

  • OMCB’de botlarla ilgili çok sayıda şikâyet vardı ve botları eleştiren yüzlerce mesaj geldi
  • Sıradan kullanıcıların sıkça karşılaştığı botlar, bilet karaborsacılığı veya restoran rezervasyon botları gibi bencil ve adaletsiz hissedilen örnekler olabiliyor
  • OMCB’de de antisosyal sayılabilecek botlar vardı
    • Bazı kullanıcılar mümkün olan tüm onay kutularının işaretini kaldıran küçük JavaScript botları yazıp bunu duyurdu
    • Bunun site deneyimini mahvettiğini söyleyen kullanıcılar da vardı
  • Discord katılımcıları botları nerede kullanacaklarına dair bazı kurallar koydu; işletmeci de zaman zaman yoğunluğu azaltmalarını istedi
  • Bot kullanımının sıradan kullanıcı deneyimini düşürmüş olması mümkündü; aynı zamanda bu, kısıtlar içinde sistemi keşfetmenin ve yaratıcı işler üretmenin bir örneğiydi

Yaratıcı bir şaka olarak kalan deneyim

  • İşletmeci, lise yıllarında özyinelemeli e-posta kuralları oluşturarak bir arkadaşına milyonlarca mesaj gönderen bir şaka yapmış ve yanlışlıkla okulun e-posta sunucusunu birkaç kez çökertmişti
  • O dönemde çevresindeki yetişkinler çok öfkelenmek yerine durmasını söylemiş, hatta tişört de yaptırmıştı
  • OMCB’nin Discord katılımcılarının oluşturduğu gizli mesajlar, araçlar ve çizimler beklenmedik derecede yaratıcı sonuçlardı
  • İşletmeci, bunu gerçek zamanlı olarak izleyip teşvik edebilmiş olmayı anlamlı bir deneyim olarak gördü; Discord’un OMCB’yi oynanacak bir nesne olarak görmesinden ve ortaya çıkardıkları sonuçlardan gurur duydu

1 yorum

 
GN⁺ 2024-08-30
Hacker News yorumları
  • Yazarı benim :)
    Siteyi işletirken yaşadığım hikâyeler arasında en sevdiğim bu; belki de içinde yer aldığım en iyi hikâye olabilir. Kolay ağlayan biri değilim ama son 2 ayda bunu düşündükçe ve yazıya dökmeye çalıştıkça birkaç kez ağladım. Elbette keşif sürecinin kendisi de, korkudan heyecana dönüşen süreç de epey çılgıncaydı.
    Böyle bir şey yaparken sahip olduğum temel inançlardan birinin doğrulanması özellikle hoşuma gitti. Az sayıdaki kötü niyetli insan için kısıtlamalar gerekli, ama genel olarak internette takılan insanların iyi ve çok yaratıcı olduğuna; bu kısıtlamaları da oynayacakları bir şeye dönüştürdüklerine inanıyorum.

    • Kısa süre önce bir arkadaşımla hararetli bir tartışma yaşadım; internetin trollük ve kötü niyetli yorumlarla dolu bir yer olduğundan, sosyal medyanın çocuklara zarar vereceğinden emindi. Benim görüşüm ise yalnızca X ya da Facebook gibi yerlere bakarak yaşarsanız bunun cehennem gibi görünebileceği, ama internetin çok daha fazla olasılık barındırdığı yönündeydi.
      Bu yazı bunun en iyi örneklerinden biriydi; siteyi yapıp insanların onu nasıl kullandığını gözlemledikten sonra bu deneyimi paylaşman gerçekten harikaydı. Okuyunca çok mutlu oldum ve bolca paylaşmayı düşünüyorum.
    • Uzun zamandır internet hakkında okuduğum yazılar içinde oyun hissini ve bu hikâyeyi en çok sevdim.
      Kesinlikle tükenmişlik yaşıyorum; hafif, işe yaramaz görünen bir şey yapmam gerektiğini düşündürdü. Savaştan sonraki 10 yıl boyunca depresyonda olan Richard Feynman’ın, öğle yemeğinde dönen bir tabağın fiziğinde yeniden neşe bulduğu ve daha önce yaptığı işleri bir süre kenara bırakabildiği hikâyesi aklıma geldi.
    • Bu yazı gerçekten çok sevimli ve tatlıydı. Keşke internet daha sık böyle kullanılsa.
    • Hem yazı hem video hikâyeyi harika aktarmış. Bizim de çok şey öğrendiğimiz bir yolla bir şeyler başaran insanları kutlayabilmek güzel.
    • Bu yazı, ölçeklenebilirlikle ilgili yazı ve genel olarak yapılan işin tamamı harikaydı; çok ilham vericiydi.
      İnsanların çoğunlukla iyi ve yaratıcı olduğu sözüne de tamamen katılıyorum. OMCB klonu yaptım; fikre kapılıp çevrimiçi yayımladım ve bir gün sonra birkaç kötü niyetli kişi de vardı ama biri devasa bir Hokusai’nin The Great Wave’ini çizmişti. Benim sürümüm sabit genişlik/yükseklikte büyük, kaydırılabilir bir tuval kullanıyordu; bu yüzden hemen göze çarpıyordu ve onu görmek gerçekten çok güzel ve keyifliydi.
  • Bu yazıyı okuyunca biraz duygulandım. Ortaokulda yazılım mühendisliği öğrenmiştim, çünkü matematiğim kötüydü ve ödevlerimi çözecek bir program yapmak istiyordum. Sonra LAN sohbeti, HTTP sunucusu, antivirüs gibi birçok şeyi sırf eğlenceli olduğu için yapmaya devam ettim.
    Eğlenceliydi, zorlayıcıydı, tatmin ediciydi, şaşırtıcıydı. Ama çalışmaya başladıktan sonra bitmek bilmeyen yeni teknolojiler, “X zararlıdır”, “J, K’den iyidir” gibi tartışmalar ve durmadan yağan yeni şeyler yüzünden içim körelmeye başladı.
    Mühendisliğin keyfi artık masmavi gökyüzü gibi gelmiyor. Belki hâlâ mavidir, ama gümüşle yıkanmış gözlere her şey gri görünüyormuş gibi.
    Bu hikâyeyi okuyunca çocukken yazılım öğrenirken hissettiğim duygular yeniden canlandı. Hâlâ eğlenceli olabilir; bir exit ya da parıltılı yeni bir SaaS için değil, kendim için bir şeyler yapabilirim. Bunun hâlâ eğlenceli olabileceğine dair bir umut ışığı verdi.

    • “Gümüşle yıkanmış gözlere her şey gri görünür” ifadesi çok güzel. Bu hissi yeniden canlandırma umudu hissetmene sevindim.
      Muhtemelen zaten biliyorsundur ama bu bir tükenmişlik belirtisi ve benzer hissedenlerin bunu ciddiye alması gerekir. Eskiden işte Python öğrenen birine yardım etmiştim; ikili dosya biçimini anladığında gerçekten çok sevinmişti. O anda yıllardır böyle bir duygu hissetmediğimi fark ettim ve kısa süre sonra o pozisyonda çalışmaya devam edemeyecek kadar yorulduğumu, ruh sağlığımla ilgilenmek için zamana ihtiyacım olduğunu anladım.
    • Ben de bir dönem kod yazmanın keyfini kaybettim ama geri bulabildim.
      Kilit nokta, gerçekten gerekmedikçe yeni teknoloji öğrenmeyi görmezden gelip sadece yeni şeyler yapmaya odaklanmaktı. Kodlamanın ne kadar güzel olabileceğini yeniden hatırlamam sanırım Sebastian Lague’in videolarıyla başladı.
      [https://youtu.be/X-iSQQgOd1A?si=aqriiWmcqqphOiuI]
    • Bende de aynıydı. En yeni Phrack sayısındaki “Calling All Hackers” [1] aklıma geldi ve onu bastırmaya çalışmak yerine teşvik edersek hacker ruhunun genç kuşakta da yaşamaya devam edeceğine dair umut verdi.
      Gençliğimde ihtiyaçtan değil, istediğim için kod yazdığım günleri hatırladım. O beceriyi iyi şeyler için de kullandım ama “rakipleri” hacklemek gibi aptalca şeyler için de kullandım; şimdi bundan utanıyorum. Yine de genel olarak o deneyim beni bugünkü ben yaptı ve sonraki kuşağın hâlâ kod yazmaktan keyif aldığını görmek sevindirici.
      [1] https://news.ycombinator.com/item?id=41306128
    • “Gümüşle yıkanmış gözlere her şey gri görünür” gerçekten harika bir cümle. Deyim mi, yoksa senin bulduğun bir ifade mi merak ettim.
    • Bazen bir adım geri çekilip tamamen rastgele bir şey yapmak iyi gelir. Advent of Code’u rekabetçi biçimde yapmayın; en iyi uygulamalar falan umursamadan, herhangi bir dilde sadece çalışır hâle getirmeyi deneyin.
      pico-8’i açıp berbat bir oyun ya da script yapmak da iyi gelebilir. Yer de heves de olmadığından longDescriptiveVariableNames gibi uzun değişken adları yerine iki harfli değişken adları kullanmak gibi. TIS-100 ya da Shenzen I/O gibi oyunlar oynayın; hatta kılavuzu yazdırıp en eski klasöre koyun ve üstüne kahve dökün, daha da iyi olur.
  • Bu kısım gerçekten çok önemli:
    “Hayatımdaki yetişkinler genelde bana kızmadı. Durmamı söylediler ama tişört de yaptırdılar. O zaman gördüğüm teşvik olmasaydı, bugün yaptığım işi yapıyor olmazdım sanırım.”
    Gençlerin makul ölçüde yaramazlık yapabilecekleri bir alana ihtiyacı var; gerçek dünyada belli ölçüde sonuçları olan ama fazla ileri gitmemeleri için sınırların ve yardımın da bulunduğu bir alana. Ayrıca otorite figürü gibi tepelerine dikilmektense, çocukların öğrenmek isteyeceği havalı yeteneklere sahip yetişkinlere ihtiyaçları var

    • 1999’da lise öğrencisiyken okul bilgisayarlarında aptalca ve zararsız bir şaka yapmıştım
      İki slaytlık bir sunum hazırlamıştım; ikisi de siyah arka plan üzerinde gri yazıyla, Windows silinmiş gibi görünen bir DOS oturumunu taklit ediyordu ve birinde komut isteminde alt çizgi vardı. Her 1 saniyede bir otomatik geçiş yapıp döngüde oynatacak şekilde ayarlayınca yanıp sönen imleç gibi görünüyordu; bozulmuş bir bilgisayar izlenimi veriyordu ama Escape’e basınca çıkılabiliyordu. Üstelik o bilgisayarlar Mac’ti, yani DOS ya da Windows bile yoktu
      Bir öğretmen bunu görüp bilgisayarı hacklediğimi ya da bozduğumu sandı ve beni müdüre gönderdi; müdür de bunu komik bulmayıp sonraki 2 hafta boyunca öğle arasının ikinci yarısını okulun IT sorumlusuyla geçirip onun uğradığı vandalizmi izlemem için ceza verdi. Fakat IT sorumlusu ne yaptığımı görür görmez kahkahaya boğuldu ve buna bilgisayarı bozmuşum gibi davranılmasını saçma buldu. Ceza bittikten sonra da sık sık onun ofisine gidip sohbet ettim ya da onunla dolaşıp bilgisayarları tamir ettim
    • Lisede benzer bir şey yaşanmıştı. Birkaç bilgisayara bulaşıp sorun çıkaran bir virüs modifikasyonu yapmıştım ve ertesi yıla kadar laboratuvara girişim yasaklandı. Eylül sonuydu, yani çok da büyük mesele değildi
      Ertesi yıl öğretmene kurcalamak istediğim bir şey olduğunu söyleyip PC’ye erişimim olup olamayacağını sordum; o da okul çıkışı muhasebe sınıfını kullanma izni, ağ sürücüsünde ek depolama alanı ve bozmamam şartıyla neredeyse sınırsız yetki verdi. Ben de bozmadım; gece boyunca birkaç makinede Tierra çalıştırıp güzelce işlediğini gördüm, sabah gelip kaydedip yeniden başlattım. Gelecekte benim için büyük bir temel oldu. Altın yumurtlayan kazı öldürmek istemediğim için bozmadım da
    • Bizim lisede bilgisayar laboratuvarında VB6 öğreten bir programlamaya giriş dersi vardı; oldukça serbestti, istediğini denemeye bolca alan tanıyordu
      Laboratuvar PC’leri çok yavaştı ve Win+E’ye basılı tutunca yüzlerce Explorer penceresinin açılıp PC’yi kilitlemesi meşhur bir şakaydı. Ben de tıklanınca aynı şeyi yapan “DoraTheExplorer.exe” adlı küçük bir VB6 programı yazıp okulun paylaşımlı sürücüsüne koydum
      Başta işe yaradı ama insanlar Alt+F4 ile hızla kapatıp kaçınmaya başladı; kapanırken kendini yeniden çalıştıracak şekilde yaptım ama onu da Alt+F4’e seri basarak engellediler. En sonunda her kapatıldığında iki tane daha açan bir hidra yaptım ve Explorer şaka savaşının ICBM’i olup yenilgi ilan ettirdi
      Yönetici en başından beri biliyordu ama genel olarak rahattı. Birinin çalışmasını kaybetmesi ya da zarar oluşması halinde sorumlu tutulacağımı net biçimde söyledi; fakat herkes dora.exe’nin ne yaptığını bildiği için böyle bir şey olmadı. İnsanlar PC’yi aptalca çökertip bundan kaçınabilecekler mi diye görmek için bilerek tıklıyordu
    • Ben de okulda neredeyse aynı şeyi yaptım. Ağ depolamasına sonsuz sayıda metin dosyası yazan bir VB6 betiğiyle sistemi çökerttim ve okul anneme, beni terörizmle suçlayan bir mektup gönderdi
      O zaman da bunun saçma ve haksız olduğunu düşünmüştüm; neyse ki annem de aynı fikirdeydi. Şimdi bir yetişkin gözüyle geriye bakınca, çocuk yetiştirme konusunda neredeyse suç sayılacak kadar sorumsuz bir tavır olduğunu hissediyorum. Gerçekten iflah olmaz derecede dar görüşlü ve acınası; hâlâ böyle bir ortamda büyüyen ve böyle insanlardan öğrenen çocuklar olduğunu düşününce öfkeleniyorum
    • Bu yaklaşım gerçekten çok şefkatli. Ben büyürken aldığım tepkilere kıyasla buna çok daha iyi karşılık verirdim
  • “Özellikle programlama yapmayan insanların botlarla karşılaşmasının tipik yolu bilet karaborsa botları ya da restoran rezervasyon botları gibi şeylerdir. Bencil, adaletsiz ve antisosyal hissettiren botlar.”
    Bu kısmı görünce Palisades Tahoe kayak merkezinin geçen kış hafta sonu otoparkı için ücretsiz ama kıt olan otopark rezervasyonunu devreye alması aklıma geldi. Bay Area’daki en popüler kayak destinasyonlarından biri olduğu için elbette bir bot yapıldı. Yeni yerler açılır açılmaz birkaç saniye içinde kayboluyordu ve bunun bot olduğu çok açıktı. Bu yüzden ben de mecburen bir tane yaptım.
    Benim botum iptallerle boş yer oluştuğunda sadece Pushover üzerinden haber veriyordu, doğrudan rezervasyon yapmıyordu; ama benim ve grubum için yeterliydi. Reddit’te bot yapmayanlar, botların her şeyi silip süpürdüğünü söylüyordu; ben de kendimi epey antisosyal hissettim ama gerçekten başka seçenek yoktu.

    • Üzücü olan, çözümün çok basit olması. Yeterince uzun bir süre boyunca ilgi kaydı alıp herkesin rahatça başvurmasını sağlamak, bu süre bitince de çekiliş yapmak. Kazananlar örneğin magic link içeren bir e-posta alıp satın alma fırsatı elde eder; yanıt vermezlerse başka biri seçilir.
      Aksi halde kaynağı en çok ödeme yapacak kişiye vermek yerine, programlama becerisi en iyi kişiye veren bir “açık artırmaya” dönüşüyor. O kişiler de sonra bunu en çok ödeyecek kişiye yeniden satabilir. Programlama uzmanlık gerektiren bir beceri ve en başta en çok para veren kişiye vermenin kabul edilebilir olmadığı bir bağlamda bu epey adaletsiz. Spor ayakkabı/moda sektörünün bazı kısımlarında bu yöntemin kullanıldığını biliyorum.
    • Covid döneminde yerel havuzda kulvar rezervasyonu kapmak için mecburen bir rezervasyon botu yaptım. Yerler iki gün öncesinden gece yarısı açılıyordu; sabah 7’de düzenli yüzmek isteyen insanların gece yarısına kadar uyanık kalma alışkanlığı olması pek yaygın değil. Sabah 6’da kalktığımda her zaman her yer rezerve edilmiş oluyordu. Bu yüzden bot yaptım; şaşırtıcı derecede eğlenceli ve etkiliydi.
    • Ülkemizdeki popüler yürüyüş rotalarında bulunan dağ kulübeleri için konaklama rezervasyonlarında bot kullanıyorum. Her yıl belirli bir saatte çevrimiçi rezervasyon açılıyor ve birkaç saniye sonra her şey tükeniyor. Bir tane bile yakalamanın güvenilir tek yolu bot kullanmak.
      İlginç olan, her yıl bu kulübe rezervasyonlarında bot kullanılıp kullanılmadığına dair haberler çıkması ve işletmecilerin bunu şiddetle reddetmesi. Ama botumun çok sayıda başka botla yarıştığını biliyorum.
    • Güney Avrupa’nın bazı bölgelerindeki kamu hizmeti randevu sistemleri de aynı şeyi yaşıyor. Örgütlü gruplar sistemi tekelleştirip randevu saatlerini satıyor.
      6-12 hafta sonrasına randevu alabilmek için botlarla savaşmak ya da doğru kişiye 50 euro ödeyip birkaç gün içinde randevu almak arasında seçenek olduğu herkesin bildiği bir sır.
    • Covid’in ilk yazında teknemi Lake Tahoe’ya indirmek için benzer bir şey yapmak zorunda kaldım. Lake Tahoe ve Kaliforniya’daki göllerin çoğu, tekne suya girmeden hemen önce denetim istiyor; bunun başlıca nedeni Quagga kontaminasyonunu önlemek. Covid sırasında bu denetimler için çevrimiçi rezervasyon gerekiyordu ve otopark rezervasyonunda olduğu gibi talep ile arz birbirine yakın olduğundan, boş yer oluştuğunda Pushover ile bildiren bir bot yaptım.
      Rezervasyonu aldıktan sonra tekneyi 9 saat çekmem gerekiyordu ve yol boyunca teknede tek damla su kalmamış olmasını diledim. Çünkü denetçilerin çoğu su görürse hemen başarısız sayıp geri gönderiyor. Neyse ki sahadaki denetim ekibi epey iyiydi; tüm tekneyi sıcak suyla yıkadılar, bunun Quagga midyelerinin yavrularını ya da yumurtalarını öldürdüğünü söylüyorlar.
  • Bu yazıyı gerçekten çok beğendim; lisede Java öğrendiğim günleri hatırlattı. Tüm ekranı “x” düğmeleri ızgarasıyla kaplayan bir uygulama yapmıştım; bunlardan yalnızca biri gerçekten pencereyi kapatıyordu. Biri bilgisayarını kilitlemeden yerinden kalkarsa bir disket takıp programı çalıştırır, sonra giderdim.
    Okulun IT sorumlusu her zaman ne yaptığımızı sorardı, biz de dürüstçe cevap verirdik. Halo CE ya da Starcraft gibi oyunları ağ üzerinde çalıştırmanın yolunu bulduğumuza kızmazdı ama fazla cüretkâr olursak bırakmamızı söylerdi.

    • Arkadaşım StarCraft CD anahtarını ezbere biliyordu, böylece hızla yeniden kurabiliyordu. Güzel zamanlardı.
      Bizde ağ dosya paylaşımı vardı, bu yüzden diskete gerek yoktu ve herkesin bilgisayarıyla uğraşmak çok kolaydı. Ben de açık pencere başlıklarını okuyup free games.com gibi o dönemin popüler oyun sitelerini kapatan bir script yazmıştım. Derste oyun oynanmamalı sonuçta. Ama kayıt dosyası adı yüzünden bir 3D modelleme programını kapatmıştı; o kısım için biraz üzülmüştüm.
    • Okulumuzdaki ortak bilgisayarlar teoride kilitliydi. İnternet erişimi almak için IT sorumlusunun izni gerekiyordu; yoksa yalnızca Word gibi şeyleri kullanabiliyordunuz.
      Bir обход yol bulmuştum: Not Defteri’ni açıp dosya açma penceresine gidiyordum, sonraki adımı tam hatırlamıyorum ama Dosya Gezgini açılıyordu; adres çubuğuna URL girince Internet Explorer’a dönüşüyordu. Elbette CD’den önyüklenen Linux’um da vardı ama o fazla dikkat çekiyordu.
    • Quake 2’nin yönetici yetkisi olmadan çalıştığını keşfedip okulun birkaç bilgisayarına kurdum. Birçok kişi kendini kaptırdı ama sonunda “interneti bozduğum” gerekçesiyle uzaklaştırma ve velilerin çağrılmasına kadar varan büyük bir ceza aldım.
      IT sorumlusu, ağ oyununun tüm bant genişliğini yediğini ve kurulum için bilgisayarları “hackleyerek” yönetici yetkisi aldığımı iddia etti. Bu başlıktaki pek çok yorumun altında sanki benim hikâyemden bir tane var.
  • New Yorker’ın Reddit makalesindeki hikâye, özellikle r/Place’i anlattığı bölüm aklıma geldi:
    Geçen 1 Nisan’da Reddit, parodi bir duyuru yerine gerçek bir sosyal deney yayımladı. Adı r/Place’ti ve bin piksele bin piksellik boş bir kareydi. Başta bir milyon pikselin tamamı beyazdı. Deney başlayınca herkes ızgaranın herhangi bir yerindeki tek bir pikseli 16 renkten birine çevirebiliyordu. Tek kısıt hızdı. Algoritma, her Reddit kullanıcısının beş dakikada yalnızca bir piksel değiştirmesine izin veriyordu. Place’ten sorumlu Reddit ürün yöneticisi Josh Wardle, “Bu şekilde tek bir kişi ele geçiremez. Çünkü çok yavaş,” diye açıkladı. “Ölçekli bir şey yapmak istiyorsanız iş birliği yapmanız gerekir.”
    https://www.newyorker.com/magazine/2018/03/19/reddit-and-the...

    • “Bu şekilde tek bir kişi ele geçiremez” denmesine rağmen, Reddit yöneticileri/moderatörleri zaman sınırını aşarak Place’te istedikleri kadar piksel koyacak şekilde bunu kötüye kullandı.
  • Ben de botlardan nefret edenlerden biriydim. Bu yazıya ihtiyacım vardı. Ben de okulda yapmamam gereken bir program yazıp sorun yaşadım.
    Yine de TI-83+ hesap makinesinde program kullanmama izin veren matematik öğretmenime ömür boyu minnettarım. Tek şart, programı benim yazmış olmam ve başkalarıyla paylaşmamamdı.

  • Eskiden bir vBulletin forumu yönettiğim dönemde, bir arcade sistemi kurmuştum. Oyun oynayıp hiçbir işe yaramayan bir para birimi olan “XMB Bucks” kazanarak birbirine hava atma imkânı sunan eğlenceli bir özellikti.
    Birkaç ay sonra o arcade’in gizli alt forum özelliği olduğunu ve epey çok kişinin bunu aktif biçimde kullandığını öğrendim. Görünüşe göre vBulletin kayıt ekranını atlayıp bu gizli arcade özelliğine doğrudan kaydolmuşlardı; döşeme tahtalarının altında yaşayan bir fare sürüsü gibi kendi aralarında hararetle konuşuyorlardı.

  • Üniversiteye başladığımda WWW çok yeniydi. CIP havuzunda NCSA Mosaic ile sayfalara bakmayı çabucak öğrendim ama bunun nasıl çalıştığı hakkında hiçbir fikrim yoktu. Yine de öğrenmek istiyordum.
    Bir yerlerde kendi sayfanı yapmak için bir “patchy server” gerektiğini okumuştum ve Altavista’da Apache araması yaptım. İlk sonucun bir kabileyle ilgili olmamasına kısa bir süre şaşırdıktan sonra, ne yaptığımı bilmeden tüm yönergeleri dikkatle izledim.
    Epey sonra test sayfasını Mosaic’te gördüm ve sevinçle eve gittim. Geç olmuştu ve yorgundum ama bilgisayarı açıp çevirmeli bağlantıyla bağlanarak sayfamın evden de görünüp görünmediğini kontrol etsem mi diye düşündüm. Pek çok şeyi anlamıyordum ama evden görünüyorsa dünyanın herhangi bir yerindeki herkesin de görebileceği fikrine kapıldım.
    Bu düşünce aklımdan çıkmayınca sonunda denedim ve şaşırtıcı biçimde gerçekten çalıştı.[1] Kütüphanesi bile olmayan kırsal bir yerde büyümüş biri olarak bu benim için dünyayı sarsan bir deneyimdi.
    Yaklaşık 2 hafta sonra üniversiteden, izin almadan üniversite kaynakları üzerinde hizmet çalıştırmamam gerektiğine dair bir bildirim aldım ve kapatmak zorunda kaldım. Ama bunun dışında hiçbir şey olmadı; makul bir şekilde yaklaşmalarına gerçekten sevindim.
    [1] O zamanlar bilgisayarlarımızda genel IP vardı ve güvenlik duvarları henüz gelmemişti.

    • Asıl konudan biraz ayrı ama NAT’ın her zaman var olmadığını ve birçok ağın genel internet adresine sahip PC’ler ve güvenlik duvarı olmayan bir yapıyla çalıştığını hatırlamak ilginç. O zamanlar NetBIOS da doğrudan internet üzerinde çalışıyordu. \\x.x.x.x\c$ yazdığınızda oldukça yüksek bir olasılıkla doğrudan bağlanabiliyordunuz.
  • Harika bir hikâyeydi; kahvaltıma keyif kattı. Genç geliştiriciler, profesyonel dünyanın modern araçlarından ve süreçlerinden—her zaman iyi olmayan şeylerden—özgürler.
    Ben açık kaynaklı bir Roblox alternatifi gibi bir platform geliştiriyorum ve bu tür çocukları kendine çekiyor. Gerçekten yaratıcılar; hataları ve potansiyel olarak zararlı hack’leri bildiriyor, her zaman yardım etmeye çalışıyorlar.

    • Uzun zamandır HN’de gördüğüm hikâyeler arasında en sevdiğim bu oldu.