5 puan yazan GN⁺ 2025-06-17 | 2 yorum | WhatsApp'ta paylaş
  • Android'in herkese açık API'sinde mizahi metotlar ve sabitler gizli durumda
  • Öne çıkan örnekler arasında isUserAMonkey() ve isUserAGoat() gibi, gerçek kullanım amacıyla birlikte şaka unsuru da taşıyan metotlar yer alıyor
  • DISALLOW_FUN, Log.wtf() gibi öğeler de resmi API içinde şaka yollu açıklamalar veya eğlenceli davranışlar barındırıyor
  • Yaratıcı adlandırmalar ya da parodiler (ör. TWEET_TRANSACTION, GRAVITY_DEATH_STAR_I) resmi belgelerde veya kod içinde sıkça karşımıza çıkıyor
  • Bu unsurlar geliştiricilere keyif ve küçük keşif anları sunma işlevi görüyor

Android'in herkese açık API'sindeki şaka ve mizah unsurları

Android açık API'sinde, geliştiriciler için çeşitli zekice şakalar ve easter egg öğeleri gerçek işlevlerle birlikte yer alıyor

ActivityManager.isUserAMonkey()

  • Geliştirici aracı UI Exerciser Monkey çalışıyorsa bunu tespit eden bir metottur
  • Uygulamalara rastgele girdiler simüle ederek stres testi yapılan ortamlarda belirli davranışların sınırlandırılabilmesi için tasarlanmıştır
  • Gerçek kullanıcı yerine bir monkey uygulamayı kullanırken, önemli işlevleri (ör. acil arama başlatma gibi) kısıtlamak amacıyla eklenmiştir
  • Android 2.2(Froyo, API 8) ile herkese açık API'ye eklenmiştir
  • Android'in erken dönemlerinde gerçekten yaşanan kazara sorunları çözmek için uygulanmış bir geçmişe sahiptir

UserManager.isUserAGoat()

  • Resmi belgelerde kullanıcının ışınlanma hedefi olup olmadığını kontrol etmek için kullanıldığı yazsa da bu bir şakadır
  • İlk başta her zaman false döndürüyordu; ancak Goat Simulator çıktıktan sonra, oyun yüklüyse true döndürecek şekilde değiştirildi
  • Android 11(API 30) ve sonrasında gizlilik koruması amacıyla her zaman false olarak sabitlendi
  • Goat Simulator uygulamasını tespit eden bir mantık vardı; ancak uygulama listesine erişim politikaları değişince bilgi sızıntısını önlemek için düzenlendi
  • Google Chrome Task Manager içindeki easter egg'den ilham almıştır

UserManager.DISALLOW_FUN

  • Android 6 Marshmallow(API 23) ile eklenen eğlenceyi yasaklama politikası anlamına gelir
  • Resmi belgelerde, kullanıcının mutluluk veya keyif hissetmesini engellemek için sınırlandırılabileceği şeklinde ifade edilir
  • Gerçekte ise cihaz sahibinin kullanıcı işlevlerinin bir kısmını engellemesi için kullanılan bir politikadır
  • Bazı uygulamalar veya sistemin kendisi bu politikayı algılayarak easter egg gibi “eğlenceli” özellikleri devre dışı bırakabilir
  • Eğitim kurumlarında dikkat dağıtan özellikleri kapatmak amacıyla kullanılabilir

Chronometer.isTheFinalCountdown()

  • Android 8 Oreo(API 26) ile isTheFinalCountdown metodu eklendi
  • Çağrıldığında otomatik olarak Europe grubunun “The Final Countdown” YouTube videosunu açar
  • Doğrudan bir pratik faydası olmadan, açıkça bir şaka/referanstır
  • Kod içindeki Intent komutuyla açık biçimde görülür
  • Geliştiricilere küçük bir eğlence sunar

PackageManager.FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND

  • Android 2.3 Gingerbread(API 8) ile eklenmiş, çoklu dokunma desteğini belirten bir sabittir
  • Jazz hands (müzikal performans jesti) ifadesine yapılan parodik bir isimlendirmedir
  • Aynı anda en fazla beş parmağın algılanabilmesini ifade eder

Log.wtf()

  • What a Terrible Failure kısaltmasıdır ve asla yaşanmaması gereken durumları loglamak için kullanılır
  • Assertion seviyesinde ciddi bir log türü olarak sınıflandırılır
  • Geliştiriciler arasında en iyi bilinen şaka içerikli API'lerden biridir

AdapterViewFlipper.fyiWillBeAdvancedByHostKThx()

  • Android 3.0 Honeycomb(API 11) ile eklendi
  • Resmi olmayan ve neşeli bir adlandırmaya sahiptir; görünüm host tarafından ilerletildiğinde çağrılır
  • Gerçek isimlendirme sürecindeki komik bir fikirden doğduğu düşünülür
  • Bilgisayar biliminin kronik sorunlarından biri olan isimlendirme zorluğunu zekice yansıtır

IBinder.TWEET_TRANSACTION

  • Android 3.2 Honeycomb(API 13) ile gelen bir işlem türüdür
  • Tweet gönderimini çağrıştırsa da gerçekte hiçbir işlem yapmaz; mesaj uzunluğu sınırı olarak 130 karakter kullanılması eski Twitter politikasına gönderme yapar
  • İsmin kendisi tamamen bir parodidir

IBinder.LIKE_TRANSACTION

  • Android 4.0.3 ICS(API 15) ile eklenen bir LIKE işlemidir
  • Çağıranın uygulamayı beğendiğini bildiren bir sinyal göndermek içindir; gerçekte kayıt ya da sayaç tutulmaz
  • Uygulamanın özgüvenini artırdığına dair şaka yollu bir açıklama bulunur

SensorManager.SENSOR_TRICORDER

  • Adını Star Trek'teki Tricorder cihazından alan bir sabittir
  • Android 1.0 döneminden beri vardı, daha sonra deprecated olarak işaretlendi
  • Tricorder gerçekte var olmayan bir bilim kurgu cihazıdır ve geliştiricilere gülümsetecek bir göndermedir

SensorManager.GRAVITY_*

  • SensorManager içinde çeşitli gök cisimlerinin (Güneş, Plüton vb.) yerçekimi değerlerini içeren sabitler bulunur
  • Bunlar arasında GRAVITY_DEATH_STAR_I (Star Wars'taki Death Star) ve GRAVITY_THE_ISLAND (LOST dizisindeki ada) gibi şaka amaçlı olanlar da vardır
  • Bazılarında gerçek kullanım değerinden çok parodi yönü ağır basar

<blink> etiketi

  • Android görünüm yerleşim sisteminde <blink> adlı gizli bir etiket bulunur
  • Alt görünümü, HTML'deki eski <blink> gibi yanıp söner hale getirir
  • Resmi belgelerde açıklanmasa da 2011 tarihli bir commit ile eklenmiş ve bugün hâlâ AOSP içinde kalmıştır
  • Gerçekte kullanılıp kullanılmadığı tartışmalıdır

Sonuç

Android'in resmi API'sinin çeşitli yerlerine şakalar, parodiler ve easter egg niteliğinde unsurlar bilinçli olarak yerleştirilmiş durumda
Bu unsurlar, geliştiricilere küçük eğlenceler ve keşif keyfi sunarken Android'in topluluk kültürü ve neşeli yanına da bir pencere açıyor

2 yorum

 
GN⁺ 2025-06-17
Hacker News görüşleri
  • FB'de uzun yıllar boyunca, riskli ya da artık kullanımdan kaldırılmış token'lara _DO_NOT_USE_OR_YOU_WILL_BE_FIRED gibi son ekler ekleme geleneği vardı. Herkes bu şakayı biliyordu ama pandemiden sonra yeni çalışan oranının arttığı ve uzaktan onboarding'in yetersiz kaldığı dönemde, bu tür iç şakaların korku ya da belirsizlik yarattığına dair şikayetler de çıktı. Bu, yalnızca benim deneyimlediğim kapsam içinde geçerli bir anlatı

    • React'teki __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED gibi neşeli ama aşırı uzun isimleri eskiden beri eğlenceli bulduğumu hatırlıyorum. Ama ne yazık ki son zamanlarda bu tür "mizah" giderek kayboluyor ilgili PR

    • Eskiden Google'da, ağ yığınının bir yerlerinde anlaşılması zor ve değiştirmesi de zor olan devasa bir kod yığını vardı ve bu giderek büyüyordu. Bizim ekip o kodun adını "[Foo]Sorcery" olarak değiştirdi. Biraz korkutucu ve tuhaf gelen bu isim sayesinde artık kimse o koda yeni bir şey eklemeye çalışmadı ve arada biri çıkıp bazı kısımları temizleyerek sildi. Eğlenceli adlandırmanın işe yaradığını düşünüyorum

  • Android kaynak kodunda en sevdiğim nükteli fonksiyon android.os.Handler.runWithScissors() ama ne yazık ki public API'nin parçası değil kaynak bağlantısı

    • Bu fonksiyonun yorumunda şu ifade geçiyor: “@hide this method is prone to abuse, so should probably not be in the API. If we ever do add it, we should probably give it a less funny name, like runUnsafe().” Bu beni güldürüyor

    • Bu fonksiyonun yazıda yer almaması biraz üzücü. En sevdiğim fonksiyonlardan biri

  • X11 için akla hemen gelen örneklerden biri, "party_like_its_1989" adlı global değişkenin varlığı kod bağlantısı; ayrıca DRI2 uzantısının changelog'u "Awesomeness!", "True excellence", "Enlightenment attained" gibi ifadelerle dolu changelog bağlantısı

  • BeOS'ta (ve Haiku'da) "is_computer_on()" ve "is_computer_on_fire()" diye fonksiyonlar var; açıklamaları gerçekten harika referans bağlantısı

    • Delphi'de 'EProgrammerNotFound' diye bir exception var; resmi dokümantasyon da son derece kuru ama ciddi bir mizah taşıyor doküman bağlantısı

    • Elbette bu tür isimlerin eğlence için konduğunu anlıyorum ama gelişmiş güç yönetimine sahip modern bilgisayarlarda bu durumlar aslında oldukça yaygın. İşletim sistemi, derin uyku modundan uyanmayı ya da anakart sıcaklığının 200 derece olmasını da gayet doğal şekilde ele alabilmeli

    • Bence is_computer_on_fire() asenkron, olay tabanlı bir tetikleyici olarak kullanılsa daha da komik olurdu

    • Merak edenler için ilgili kaynak bağlantısı da var kod bağlantısı

  • Bu mizah anlayışının büyük şirketlerin kod tabanlarında yaşamaya devam etmesini seviyorum. Sadece API'leri kullanırken fark edilmiyor ama kaynak kodunu doğrudan okuyunca rastlanan bu tür küçük sürprizler, kodu gerçekten insanların yazdığını hissettiriyor. Günümüz yazılımları fazla soğuk; tam da bu karşıtlık içinde bir sıcaklık hissi veriyor. Dürüst olmak gerekirse bunun daha fazla olmasını isterdim

    • Benzer şekilde, kullandığım kodun ya da API'nin çeşitli yerlerinde gerçekten bir insanın var olduğunu hatırlatması etkileyici geliyor
  • Android'deki isUserAGoat, isUserAMonkey gibi şeyleri bizzat test etmek isterseniz, bu özellikleri sunan küçük bir uygulama yapıp yayınladım uygulama bağlantısı. İleride daha fazla easter egg de eklemek istiyorum

    • DISALLOW_FUN policy check gibi bir özellik de eklenirse oldukça eğlenceli olabilir. İlgili kodu bulmak için GitHub'da arama yaptım ama çoğunlukla sistem Settings uygulamasında sürüm easter egg'ini gizlemek için kullanılıyor. Muhtemelen bu özelliği gerçekten kullanan ilk üçüncü taraf ben olabilirim

    • Ama Android 15'te uygulama yüklenmiyor. Google minimum compileSdk sürümünün mutlaka uymasını istiyor; uygulamayı güncellerseniz iyi olur

  • Chrome görev yöneticisinde bir zamanlar "tarayıcı sürecinin teleport ettiği keçi sayısı"nı gösteren gizli bir sütun vardı. Şimdi bu özellik kaldırıldı ama eski ekran görüntüsünde görülebiliyor. Eskiden tam 234 sütun vardı, şimdi 16'ya düşmüş olması biraz üzücü

  • Teknoloji ürünlerinin easter egg'lerle dolu olduğu günleri özlüyorum. Her şey kurumsallaştıkça bu kültür de kaybolmuş gibi geliyor

  • Bu başlığa verilen yanıtları mülakatta zorunlu soru yapmak isterdim. Beni mülakata alanlar için de geçerli. Gerçekten tam bir “dünyada iki tür insan vardır” anı

    • Neden? Çünkü Googler'ların API'lere yerleştirdiği şakaların Noel akşamındaki baba şakaları kadar komik olduğunu düşünüyorum
  • Konu teknik dokümantasyondaki mizah ve şakalar; buna genelde olumsuz bakanlar olsa da ben dokümantasyonda mizah olmasını çok seviyorum. Bununla ilgili bir yazı yazmıştım

 
roxie 2025-10-14

‘Humour’ ifadesi yapay zekâyla mı çevrilmiş...? vay canına