GN⁺ görüşü
- Bu yazı, istenen sonuca ulaşmak için yazılım ve teknolojinin yaratıcı ve zaman zaman alışılmadık yollarla kullanıldığı 'lanetli hack'ler hakkındadır.
- Teknoloji meraklıları ve yazılım mühendisleri için bu tür hack'ler, teknolojinin sınırlarını aşan yaratıcılığı sergilemek adına ilham verir.
- Bu konu, teknolojinin esnekliğini ve kullanıcıların yaratıcı çözümler bulma becerisini vurgularken, bazen teknolojiyi amaçlanmayan şekillerde kullanarak şaşırtıcı sonuçlar ortaya çıkaran örnekleri incelemeyi ilgi çekici kılar.
1 yorum
Hacker News görüşü
Bir startup, Microsoft Outlook için bir eklenti geliştirdi ve bu başarılı oldu. Müşteriler, aynı işlevin Outlook Express sürümünü de istedi, ancak OE'nin bir eklenti mimarisi yoktu. Yine de Windows hook'ları ve DLL injection kullanılarak bir makro sistemi kurulabildi. Bu sistem ekranda olan biten her şeyi görebiliyordu, ama kusursuz çalışıyordu. Öğle arasında birinin ekrana bakmaması için OE kullanıcılarını ikna etmeyi şaka yollu önerdiler ve bu fikir gerçekten işe yaradı. Yöntem, tüm masaüstünün ekran görüntüsünü alıp tam ekran göstermek, GUI manipülasyonunu gizlemek, ardından OE güncellenene kadar bekleyip tam ekran kaplamayı kapatmaktı.
1999'da Türkiye'nin popüler sosyal platformlarından Eksi Sozluk, veritabanı olarak tek bir metin dosyası kullanılarak kuruldu. Site sadece 3 saatte, web framework olmadan Delphi ile yazılmış bir EXE dosyası olarak oluşturuldu. Bugün .NET/MySQL kullanıyor ve Türk hükümeti tarafından "ulusal güvenlik" gibi gerekçelerle engellenmiş olsa da hâlâ popüler; engellenen alan adına rağmen hâlâ yasal bir işletme olarak varlığını sürdürüyor, vergi ödüyor ve içerik kaldırma taleplerini kabul ediyor.
90'larda HBO'da danışmanlık yaparken, MS Mail on Mac sunucusundan PC üzerindeki MS Exchange'e geçiş üzerinde çalışıldı. Sorun şuydu: Mac'teki MS Mail'de adres defterini dışa aktarma özelliği yoktu, bu yüzden sekreterlerin kişileri tek tek kopyalaması gerekiyordu. Bunu çözmek için ekran hotkey araçları denendi ve tam teşekküllü bir programlama dili içeren bir araçla, kişileri otomatik olarak CSV dosyalarına dönüştürüp Exchange'e aktarabilen bir çözüm geliştirildi.
Google Chrome'un ilk dönemlerinde, onu Windows ekran okuyucularıyla uyumlu hâle getirme görevi vardı. Chrome'un tasarımı Firefox ya da IE'den farklı olduğu için erişilebilirlik API'sini doğru uygulamak zorluydu. Statik web sayfalarında çalışması sağlanmaya çalışıldı, ancak ekran okuyucular Chrome'da web'e özgü özellikleri etkinleştirmiyordu. Sonunda Chrome'un çalıştırılabilir dosyasının adı
firefox.exeolarak değiştirilip çalıştırıldığında her şeyin düzgün çalışmaya başladığı görüldü. Daha sonra ekran okuyucu üreticileriyle iletişime geçilip Chrome'u bir web tarayıcısı olarak ele almaları istendi.15 yıldan daha uzun süre önce, mobil bir CPU üzerinde gigabaytlarca metni indeksleme işi yapıldı. Kelime normalleştirme mantığı çok yavaş olduğu için cache kullanılarak hız ciddi biçimde artırıldı. Cache temizleme mantığı geliştirilirken masaüstü simülatöründe hızlandı ama gömülü cihazda yavaşladı. Sonunda en basit temizleme mantığıyla ürün yayına alındı.
Bir veritabanı boot-crash döngüsüne girmişti ve belirli bir tabloya ait
innodb_history_listbozulmuştu. Veritabanı anında çöktüğü için oturum açıp tabloyu silmek imkânsızdı. Birden fazla terminal penceresi açılıpwhile true; do mysql -e 'drop table xyz;' donekomutu çalıştırıldı ve milyonlarca denemeden sonra veritabanına bağlanmayı başardı.İlk bilgisayarın CD sürücüsü bozulduğunda yenisini almaya para yetmediği için neredeyse bir yıl boyunca disket kullanıldı. Sonunda sürücü sökülüp sorun bulundu ve Polonya sosisi kielbasa kullanılarak dişliler yağlandı, böylece sürücü tamir edildi.
30 yıllık doğal gazlı ısıtıcı akıllı termostatları desteklemediği için, termostat düğmesine plastik dişliler takılıp Raspberry Pi'ye bağlı bir servo ile sıcaklığın ayarlanabildiği bir sistem yapıldı.
Perakende forex tarafında çalışırken, müşteriler sık sık gördükleri fiyatla emrin girildiği fiyat konusunda itiraz ediyordu. Bunu çözmek için, işlem butonuna tıklandığı anda fiyatı loglayan bir çözüm geliştirildi. Log dosyası, Java Swing GUI öğelerini ASCII art'a dönüştürerek kaydediyordu.
Prodüksiyon bir serviste, tüm SSD'yi
mmapile belleğe eşleyip C++ veri yapılarına cast etme yöntemi kullanıldı. O SSD'de bir dosya sistemi yoktu; veri dolu dev bir struct dizisi doğrudan üzerinde tutuluyordu. SSD bozulursa tüm verinin yedekten geri yüklenmesi gerekiyordu, ancak bu yöntem şaşırtıcı derecede hızlı ve ucuzdu.