1 puan yazan GN⁺ 2024-07-10 | 1 yorum | WhatsApp'ta paylaş
  • PySkyWiFi, ödeme yapılmadan önce bile açılan havayolu mil hesabı profil alanlarını geçici depolama olarak kullanıp, uzun mesafeli uçuş sırasında HTTP istek ve yanıtlarını son derece yavaş biçimde gidip getiren bir deney
  • İlk prototip, hesabın ad alanını güncelleyip yoklayarak bir sohbet oluşturdu; ardından yerdeki bir daemon’un STOCKPRICE: APPL gibi istekleri okuyup sonucu geri göndermesi şeklinde genişletildi
  • Nihai yapı, uçak içindeki sky proxy ile internete bağlı ground daemon olarak ikiye ayrılıyor; hedef URL, yerel curl isteğinin X-PySkyWiFi başlığıyla aktarılıyor
  • Aktarım, HTTP isteğini küçük parçalara böldükten sonra DATA, ACK, END segmentleri ve 6 haneli sıra numarası ile sıralamayı koruyor
  • Gerçek havayolu hesabına sürekli otomatik istek göndermekten kaçınıldı; son test, GitHub Gist üzerinden blog ana sayfasına curl çağrısı yapıp birkaç dakika sonra HTML yanıtı alma düzeyinde kaldı

Ödeme öncesi Wi‑Fi portalında keşfedilen geçit

  • Uçak Wi‑Fi giriş sayfası ödeme istiyordu, ancak ödeme öncesinde bile havayolu mil hesabına giriş ücretsiz olarak izinliydi
  • Profil düzenleme ekranındaki ad alanını görünce, bu değerin dış dünyayla küçük bir iletişim kanalı gibi kullanılabileceği düşünüldü
  • Uygulama dili olarak başlangıçta Go düşünüldü, ancak Python kullanılırsa aracın adı PySkyWiFi konulabileceği için Python seçildi
  • Kaynak kod PySkyWiFi üzerinde yayımlandı

Prototip 1: Ad alanıyla oluşturulan anlık mesajlaşma

  • İki istemci aynı havayolu mil hesabına giriş yaptıktan sonra, ad alanını sırayla güncelleyip okuyarak mesaj alışverişi yaptı
    • Bir taraf adı Hello how are you olarak değiştirince diğer taraf bunu okudu
    • Sonra Im fine how are you olarak değiştirince ilk taraf yanıtı gördü
  • Adı kullanıcı arayüzünden doğrudan değiştirmek zahmetli olduğundan bu işlem bir komut satırı aracıyla otomatikleştirildi
    • Araç web sitesine giriş yapıp test hesabının ad alanını mesajla güncelliyor
    • Birkaç saniyede bir ad alanını yokluyor ve değer değişirse bunu karşı tarafın yanıtı olarak yazdırıyor
  • Gerçek havayolu mil hesabına artık otomatik veri göndermemeye karar verildi; yalnızca adı hızlıca yaklaşık 10 kez güncelleyip hepsinin başarılı olduğu doğrulandı
    • Bu sonuç, ilgili hesabın istek hızı veya sayısı için bir sınırlama koymamış olabileceğini gösteriyor
  • Sonraki geliştirme, aynı ilkeyi GitHub Gists ve yerel dosyalarla yeniden üreterek sürdürüldü
    • Çünkü yinelemeli geliştirme, havayolu mil hesabına göre daha hızlı ve kolaydı

Prototip 2: Yer daemon’u ile harici bilgi almak

  • Sonraki aşamada, yerdeki veya buluttaki internet bağlantılı bir bilgisayarda bir daemon çalıştırılıyor
  • Daemon, havayolu mil hesabının ad alanını sürekli yoklayarak uçaktan gönderilen yapılandırılmış istekleri arıyor
    • Örnek: STOCKPRICE: APPL
    • Örnek: SCORE: MANUNITED
  • Yeni bir istek bulduğunda daemon bunu ayrıştırıyor, ilgili API’den bilgiyi alıyor ve havayolu mil hesabı üzerinden uçağa geri gönderiyor
  • Bu aşamadan itibaren basit sohbetin ötesine geçilerek hisse fiyatı veya spor skoru gibi gerçek zamanlı bilgi sorgulama mümkün hâle geliyor

sky proxy ve ground daemon’dan oluşan genel yapı

  • PySkyWiFi, HTTP isteğinin tamamını havayolu mil hesabına iten, yerdeki bilgisayarın gerçek HTTP isteğini gerçekleştirmesinin ardından yanıtı aynı yöntemle yukarı gönderen TCP/IP benzeri bir protokol
  • İki bileşenden oluşuyor
    • sky proxy: Uçak içindeki dizüstü bilgisayarda çalışan proxy
    • ground daemon: Evde veya bulutta, internet bağlantılı bilgisayarda çalışan daemon
  • Kullanımdan önce önce ground daemon çalıştırılıyor; uçakta Wi‑Fi’ye bağlandıktan sonra dizüstü bilgisayarda sky proxy çalıştırılıyor
  • Kullanıcı, curl gibi araçlarla yerel proxy’ye HTTP isteği gönderiyor
    • Örnek: curl localhost:1234 -H "X-PySkyWiFi: example.com"
    • Gerçek hedef URL, X-PySkyWiFi özel başlığına konuyor
  • Ground daemon, X-PySkyWiFi başlığını kaldırıyor ve bunu hedef web sitesine yönlendirme için kullanıyor
    • İstek gövdesi ve diğer başlıklar olduğu gibi iletiliyor
  • Tüm süreç tamamlandığında normal bir internet isteği gibi HTTP yanıtı alınıyor; ancak uçak ağının durumuna bağlı olarak istek birkaç dakika takılı kalabilir ve hız saniyede birkaç bayt düzeyinde olabilir

Chunk’lar, ACK ve ikinci hesapla HTTP gidiş dönüşü yapmak

  • sky proxy, curl isteğini alıp tüm HTTP isteğini chunk’lara bölüyor
    • Çünkü havayolu mil hesabının ad alanına tek seferde sığabilecek miktar küçük
  • Her chunk, sırayla ilk havayolu mil hesabının ad alanına yazılıyor
  • ground daemon hesabı yoklarken yeni bir chunk bulursa onu okuyor ve sonraki chunk’ın gönderilebileceğini belirten bir alındı onayı bırakıyor
  • HTTP isteğinin tamamı yeniden birleştirildiğinde ground daemon internete gerçek isteği gönderiyor
  • HTTP yanıtı aynı prosedürle ters yönde ilerliyor
    • ground daemon yanıtı chunk’lara bölüp gönderiyor
    • Uygulamayı basitleştirmek için yanıt chunk’ları ikinci bir havayolu mil hesabı kullanıyor
    • sky proxy chunk’ları okuyup HTTP yanıtını yeniden birleştiriyor ve ilk curl çağrısına döndürüyor

Taşıma katmanı ile ağ katmanının rollerini ayırmak

  • PySkyWiFi’nin iletişim mantığı taşıma katmanı ve ağ katmanı olarak ayrılıyor
  • Taşıma katmanı, hangi verinin hangi sırayla gönderileceğine karar veriyor
    • Uzun mesajları küçük chunk’lara bölme yöntemi
    • Alıcının sonraki chunk’ı almaya hazır olduğunu bildirme yöntemi
    • TCP’ye oldukça gevşek biçimde benzer bir rol
  • Ağ katmanı, taşıma katmanının belirlediği verileri gerçek depoya yazıp okuyor
    • Havayolu mil hesabı, yerel dosya veya Discord profili gibi depolar olabilir
  • Bu ayrım, yeni havayolu mil platformları eklemeyi kolaylaştırıyor
    • Yalnızca yeni ağ katmanı uygulanırsa taşıma katmanı olduğu gibi kalıyor
    • Test amaçlı ağ katmanı, havayolu mil hesabı yerine yerel dosya okuyup yazabiliyor

DATA, ACK, END ile hizalanan aktarım kuralları

  • PySkyWiFi taşıma bağlantısı iki borudan oluşuyor
    • Her istemcinin yazma için bir SEND borusu, okuma için bir RECV borusu var
    • Havayolu mil hesabı boru olarak kullanılabiliyor
  • PSWF istemcisi belirli bir anda yalnızca gönderme veya alma modlarından birinde olabilir
    • Gönderme modunda karşı tarafın gönderdiği verileri göremez
    • Alma modunda veri gönderse bile karşı taraf bunu göremez
    • TCP gibi herhangi bir anda çift yönlü gönderip alma yöntemi değil
  • Uzun mesajlar DATA, ACK, END segmentleriyle aktarılıyor
    • DATA: D karakteri, 6 haneye doldurulmuş sıra numarası ve gerçek chunk verisinden oluşuyor
    • Örnek: D000451adline": "Mudslide in Wigan causes m
    • ACK: A karakteri ve onaylanan 6 haneli sıra numarasından oluşuyor
    • Örnek: A000451
    • END: Tek bir E karakteriyle mesajın sonunu gösteriyor
  • Gönderen, DATA gönderdikten sonra ilgili sıra numarasının ACK’ini alana kadar bekliyor
    • A000451 alındığında 000451 chunk’ının işlendiğini varsayıp 000452 chunk’ını gönderiyor
  • Alıcı END gördüğünde mesajın bittiğini kabul ediyor ve gönderen ile alıcı rollerini değiştiriyor

Ağ katmanı uygulama arayüzü

  • Ağ katmanı, verileri depoya yazıp okumak için basit bir arayüz sunuyor
  • Zorunlu işlem sayısı iki
    • send(msg: str): msg değerini depoya yazar
    • recv() -> str: depodan mesajı okur
  • Havayolu mili tabanlı uygulamada bu iki işlem, hesabın ad alanını yazma ve okuma eylemi oluyor
  • Zorunlu özellik sayısı da iki
    • sleep_for: Taşıma katmanının RECV borusunu yoklamalar arasında bekleyeceği saniye cinsinden süre
    • segment_data_size: Bir segmente konulacak karakter sayısı
  • sleep_for, dosya gibi test uygulamalarında düşük tutulabilir; ancak havayolu mil hesabı uygulamasında uzak sunucuya çok fazla istek göndermemek için en az birkaç saniye olmalı
  • segment_data_size, kullanılan havayolu mil hesabı alanının maksimum boyutuyla aynı olmalı; örnek yaklaşık 20 karakter
  • İki isteğe bağlı hook var
    • connect_send(): SEND borusu başlatılırken çağrılır; havayolu mili uygulamasında kullanıcı adı ve parolayla giriş yapıp çerez almak için kullanılabilir
    • connect_recv(): RECV borusu başlatılırken çağrılır

base26 kodlama ve bant genişliğini iyileştirme fikirleri

  • Havayolu mili HTML formları adda alfabetik olmayan karakterlere izin vermeyebilir
    • Stephen kabul edilebilir
    • GET /data?id=5 reddedilebilir
  • Bunu önlemek için ağ katmanı, segmentleri havayolu mil hesabına yazmadan önce base26 ile kodlamalıdır
    • base26, bir dizeyi yalnızca A ile Z arasındaki karakterleri kullanarak temsil eder
    • Bayt dizisini büyük bir sayıya dönüştürdükten sonra, 26 tabanlı bir sayı gibi A~Z karakterleriyle ifade eder
    • Örnek: b26_encode("Hello world"), CZEZINADXFFTZEIDPKM döndürür
  • Taşıma katmanının bu kodlamayı bilmesi gerekmez
    • Ağ katmanı baytları base26’ya çevirip yazar, okurken tekrar baytlara geri dönüştürür
  • base26 dizeleri belirgin ölçüde uzatarak bant genişliğini azaltır
    • Hem büyük hem küçük harfleri kullanan base52 daha kısa olabilir, ancak bu sürüm 2 iyileştirmesi olarak bırakılmıştır
  • Bant genişliği segment boyutunu artırarak yükseltilebilir
    • Tek bir alan yalnızca 20 karakter saklayabiliyor olsa bile, 20 karakterlik 5 alan aynı anda yazılırsa tek istekte 100 karakterlik segment gönderilebilir
    • Alıcı 5 alanı tek istekte okuyup yeniden birleştirebilir

HTTP CONNECT’in bıraktığı iyileştirme alanı ve son test

  • PySkyWiFi, HTTP isteklerini elle gönderip almak yerine HTTP CONNECT requests kullanırsa daha iyi bir tünel oluşturabilir
  • CONNECT, çoğu HTTP proxy’sinin kullandığı yöntemdir; bunun kullanılması PySkyWiFi’nin sistem düzeyinde bir proxy gibi davranıp tarayıcı isteklerini de işlemesini sağlayabilir
  • CONNECT kullanıldığında PySkyWiFi hedef web sitesiyle doğrudan TLS bağlantısını müzakere edeceğinden, havayolu mil hesabından geçen trafik şifrelenir
  • Dezavantajı, uygulama işinin çok daha fazla olmasıdır
  • Son testte veriler GitHub Gist üzerinden tünellenerek curl ile blog ana sayfası yüklendi ve birkaç dakika sonra HTML yanıtı alındı

1 yorum

 
GN⁺ 2024-07-10
Hacker News görüşleri
  • Onlarca yıl önce eşim Google Voice SMS’lerini doğrudan Gmail gelen kutusundan okuyup yanıtlayarak kullanıyordu; cep telefonlarından hoşlanmadığı için sınırsız 3G’li eski bir Kindle Keyboard taşıyordu.
    Kindle’ın basit tarayıcısıyla düşük donanımlı Gmail ekranını açabiliyordu; böylece aylık ücreti olmayan bir SMS cihazı gibi kullanabiliyordu, tek sorun yeni mesaj bildirimi idi.
    Bu yüzden jailbreak yaptıktan sonra ana ekrana bir sayaç eklemeye çalışırken, Amazon hesabında değiştirilebilen Kindle cihaz adının yanına sayacı koyabileceğini düşündüm.
    Ev sunucusunda tarayıcı otomasyonuyla Amazon’a giriş yapıp cihaz adını My Kindle (x) olarak değiştirmesini sağladım; x, okunmamış Google Voice SMS sayısıydı ve Kindle ana ekrandaki adı 1 dakika içinde yeniliyordu, bu da yıllarca sorunsuz çalıştı.

    • 3G Kindle’ın AT&T faturasının devasa olduğunu hatırlıyorum.
      Sadece birkaç bayt azaltmanın bile yaklaşık bir milyon dolar tasarruf ettireceği düzeyde olduğunu hatırlıyorum.
    • Seyahate giden bir iş arkadaşıma Kindle Keyboard’u ödünç verdim, Meksika’da çalındı.
      O dönemde muhtemelen çalışır durumdaki neredeyse en eski Kindle’dı; hırsız herhalde çantanın içinde ne varsa almış.
      Daha sonra bit pazarında 20 dolarlık bir Kindle Keyboard daha buldum ama 6 ay sonra pili öldü; cihaz hâlâ bende, yedek pilin maliyetini merak ediyorum.
    • O ücretsiz 3G gerçekten harikaydı.
      Tarayıcıyla Gmail’i zar zor kullanabiliyordunuz; ayrıca çeşitli zmachine ROM’ları arasından seçip metin oyunu oynanabilen, Kindle dostu bir Zork web sitesi de yapmıştım.
      Bazı haber sitelerinde yer alınca belli ölçüde ilgi de görmüştü.
    • Ben de bunu yaptım.
      Kindle adını değiştiren akıllı entegrasyon yoktu ama sınırsız 3G’li Keyboard Kindle ile bir süre mesaj gönderdim.
    • Akıllı telefon almadan önce uzun araba yolculuklarında Kindle Keyboard ile yol tarifi alıyordum.
      Google Maps web sitesini zar zor çalıştırabiliyordu.
  • Eskiden İtalya’dan Yunanistan’a giden yaklaşık 20 saatlik bir feribota binmiştim; uydu internet tabanlı ücretli Wi‑Fi vardı ama ödeme yapmak istemedim.
    Ödeme için Stripe’a erişim açıktı ve meğer stripe.com’daki geliştirici dokümanları dâhil tüm sayfalara erişilebiliyormuş; ben de görselleri tekrar tekrar indirerek bant genişliğini harcamaya başladım.
    Sonra Stripe’ın çalışması için Fastly CDN erişimi gerektiğini ve Reddit’in de Fastly kullandığını hatırladım; Stripe’a bağlandıktan sonra HTTP Host başlığını reddit.com olarak değiştirince Reddit’i görebildim.
    Görseller i.redd.it Fastly olmadığı için çalışmadı ama /etc/hosts içinde old.reddit.comu Stripe’ın Fastly IP’sine bağlayıp korkutucu TLS hatasını yok sayınca giriş de yapılabildi.

    • Bu şekilde birkaç gigabayt doküman indirerek zarar verdiğin kişiler muhtemelen o hizmet için para ödeyen uçaktaki yolcular olur.
      Yavaşlayan bağlantı yüzünden bir daha satın almazlarsa sağlayıcı şirket de zarar görür; ayrıca Stripe’ın yükleme bant genişliği maliyetini de artırabilir.
      Ben çevremdekileri olumsuz etkilememek için hücresel bağlantıda bile indirme yapmaktan kaçınan biriyim.
    • Böyle bir davranıştan tam olarak ne kazanıldığını bilmiyorum.
      Engellenmiş bir bağlantıda nereye kadar erişilebildiğini araştıran zihinsel deneyi anlarım ama bilerek bant genişliği harcamak, umumi tuvalette musluğu açık bırakıp suyu boşa akıtmaya ya da klozeti tıkayıp taşırmaya benziyor.
    • Bu domain fronting ve artık tüm büyük CDN’lerde engellenmiş durumda.
      https://en.wikipedia.org/wiki/Domain_fronting
    • Bir dahakine ücretli hizmet sunmaya cüret etti diye otelin suyunu açık bırakıp ders vermişsindir.
    • Para ödemek istemediğin bir hizmet için ilk içgüdünün neden işlevi kötüye kullanmak ya da bozmak olduğunu merak ediyorum.
  • Birkaç hafta önce alışveriş merkezinde çocukların dersine bırakıp ücretsiz Wi‑Fi kullanmaya çalıştım; dizüstü bilgisayarda oturum açma başarılı oldu ama internet yok diyordu.
    Varsayılan ağ geçidini kontrol edince Cisco modeme bağlandığını gördüm; tanılama araçları ve bağlı cihaz listesi görünüyordu ama internet bağlantısı kapalıydı.
    Telefonumla modeli aratınca yönetici hesabının seri numarası, parolanın ise boş bırakıldığı yazıyordu; örnek bir desen de vardı ve bağlı cihazlardan birinin adı tam o desene benziyordu.
    O bilgilerle giriş yapıp internet düğmesini açtım; 15 saniye sonra yeşile döndü ve cihaz parolasını da yeniden ayarladım.

    • Ailemi ziyarete gittiğimde bir komşunun güvenli olmayan Wi‑Fi’ına bağlanıp şirket VPN’ine girmeye çalışmıştım.
      VPN bağlanmayınca yönlendiriciye kolayca girebildiğimi gördüm, MTU ayarını değiştirdim ve hemen düzgün çalışmaya başladı.
  • Bu tür hacking orijinal anlamıyla gerçekten havalı ve hoşuma gidiyor.
    Ancak yakın zamanda kontrol ettiğimde skywifi’de global DNS’in ödeme yapmadan da normal çözümlendiği görülüyordu; bindiğim uçakta sıradan bir iodine tüneli de çalışırdı gibi geliyor.
    https://github.com/yarrick/iodine

    • Birkaç yıl önce herkesin bağlanabildiği herkese açık bir iodine hizmeti işletiyordum.
      Kötüye kullanım bildirimlerinden kaçınmak için sunucunun dış trafiğini Tor’dan geçiriyordum; hangi tren, otel ve havalimanı ağlarında çalıştığına dair günlükler de topluyor, başka tünelleme protokolleri de sunuyordum.
      Bir süre eğlenceli bir projeydi; keşke çalışır bırakmaya devam etseydim.
      Bugünlerde bazı DNS sunucuları, özellikle Google, DNS isteklerinde büyük/küçük harfi rastgeleleştirdiği için belirli kodlamaları ciddi şekilde bozuyor; bu yüzden DNS tünelleme biraz daha zorlaştı.
    • 6 yıl önce başka bir havayolunun Wi‑Fi’ında iodine çalışmıştı.
      Fikir ve prensip eğlenceli ama hızı yüzünden pratikte neredeyse işe yaramaz; UDP üzerine bir mesajlaşma uygulaması koyarsan belki, o ayrı ;-)
    • Güvenlik duvarında DNS’e izin veriliyorsa DNS protokolünün kendisiyle uğraşmadan WireGuard’ı UDP/53 üzerinden kullanmak yeterli değil mi?
  • “Kulaklığımı şarj etmeyi unuttuğum için Limp Bizkit dizüstü bilgisayarın hoparlörlerinden çalmaya başladı. Neyse ki uçaktaki diğer insanlar umursamıyor gibiydi, hep birlikte coşkuyla keyfini çıkardık.”
    Böyle insanlarda temel kamusal görgü eksik
    Etraftaki pek çok kişi kesinlikle rahatsız olmuştur ama gereksiz gürültüyü dayatmamasını söyleyemeyecek kadar nazik insanlar olma ihtimalleri yüksek

    • Yazar “bu bir hiciv” diye yazarsa hiciv bozulur
    • Ben şaka olarak okudum
      Bu kadar temel görgüden yoksun çok insan olduğu için komik bir şaka olduğunu düşündüm; en azından yazarın gerçekte böyle biri olmadığını sanıyorum
    • Şaka komik değildi ama yazının konusuna uyuyor
      Bedava internet olasılığını uygulanabilir bir fırsat olarak gören hacker imajını gösteriyor; devamında da gerçekten havayolu sistemini kötüye kullanacak biri değilmiş gibi mesafe koyduğu için baştaki ton bana üslupsal bir araç gibi geldi
    • Sanırım insanların “mizah” dediği şey bu
    • Umarım diğerlerinin dediği gibi şakaydı
      Değilse inanılmaz kaba ve duyarsız bir davranış
  • Uçağa bindiğinde her zaman yorulup gözlerini kapatıp bitene kadar beklemekten başka hiçbir şey yapamayan tek kişi ben miyim merak ediyorum
    Dizüstü bilgisayarı ya da kitap çıkarmayı düşünmek bile yoruyor; çok gürültü var ve gürültü önleyici kulaklığım da olmadığı için odaklanmak zor
    Evden çıkıp tren, tramvay ve güvenlik kontrolünden geçerek en az 2 saat harcamış oluyorum; havalimanındaki sağlıksız yiyecekler de yardımcı olmuyor
    Hava da yılın yarısında ya çok sıcak ya çok soğuk oluyor; 10 kg’lık sırt çantası yüzünden sürekli terliyorum ve sonunda uçakta bir şey yapacak hâlim kalmıyor

    • Yetişkin ADHD’m var; işte odaklanmak daha zor ama uçakta ya da başka karmaşık yerlerde tam tersine lazer gibi odaklanabiliyorum
      Sezgilere aykırı ama birçok ADHD beyninin böyle çalıştığını duydum; uçakta geçirdiğim zaman en üretken olduğum zaman
    • Eskiden dizüstü bilgisayarı çıkarıp bir şeyler yapmaya çalışırdım ama koltuk aralığı azaldığından beri tabletten büyük bir şeyi çıkarmak gerçekten zorlaştı
      Ya dizine koyman gerekiyor ya da öndeki kişi koltuğu yatırırsa ekranın kırılma riski var; birkaç yıl önce bir iş arkadaşımın başına gerçekten bu geldi
      Şimdilerde sadece iPad ve gürültü önleyici kulaklığımı çıkarıp film ya da TV programı izliyorum
    • Sadece sen değilsin
      Benim vücudum da aynı tepkiyi veriyor; bunun havadaki oksijen miktarının azalmasıyla ilgili olduğunu düşünüyorum
      Sorun gürültü değil, hava; gürültü önleyici kulaklıklar ise gerçekten çok işe yarıyor
      Ama bundan hiç etkilenmeden uçakta faydalı işler yapan insanlar da var
    • Ben tam tersiyim
      Ne kadar yorgun ya da uykusuz olursam olayım uçakta uyuyamıyorum da yorulmuyorum da; bu yüzden transatlantik uçuşlar daha da eziyete dönüşüyor, yanımdaki kişi 8 saat uyuduğunda sanki benimle dalga geçiliyormuş gibi bile geliyor
    • Sadece sen değilsin
      Uçuş sırasında kafam iyice bulanıyor; inişe kadar gözlerimi kapalı tutuyorum, kitap okumaya ya da çalışmaya kalksam da 5–10 dakika sonra beynim kapanıyor
      Tuhaf biçimde uçak yemeği her seferinde şişkinlik yapıyor, inişten hemen sonra ilaca ihtiyaç duyuyorum
      İlginçtir, iki kez business class uçtuğumda beynim kapanmadan önce bir miktar okuyabildim
      Uzun mesafe trenlerde gidiş yönüne bakarak oturursam gerçekten çalışmak daha kolay oluyor; ama tren oldukça kalabalıksa beynim yine kapanıyor
  • Hisse senedi fiyatları, maç skorları, hava durumu gibi şeyleri göndermekten bahsedilince Google’ın eskiden kısa mesaj servisiyle sunduğu özellikler aklıma geldi
    İlk akıllı telefonumu almadan önce gerçekten çok kullanırdım; W[ZIP code] ifadesini 46645’e (GOOGL) gönderince hava durumunu SMS olarak yanıtlıyordu
    stock:[symbol] da çalışıyordu, şimdi unuttuğum başka birçok özelliği vardı
    Elbette Google kapattı ama sürdüğü süre boyunca epey havalıydı

    • PHP ile uğraştığım zamanlarda, şarkı sözlerinden parça bulan SongBuddy adlı bir Twitter botu yapmıştım
      O zaman Twitter’ın desteklediği SMS DM üzerinden birkaç satır söz gönderince Google’da " lyrics" aratıp sonuçları ayrıştırıyor, sanatçı ve başlığı SMS ile geri döndürüyordu
      Çok iyi çalışmıyordu ama oldukça gurur duymuştum
    • Kullandığım döviz çevirme sitesini bir profesör işletiyor; muhtemelen bir üniversite merdiveninin altına saklanmış bir Pentium III bilgisayarda çalışıyor olmasına rağmen onlarca yıldır ayakta ve ömür boyu sürecek gibi
    • Twilio ve bir AWS instance’ı ile SMS↔ChatGPT arayüzü yaptım
      Bu sayede taşınabilir uydu iletişim cihazı inReach Mini 2 ile dünyanın herhangi bir yerinden ChatGPT’ye soru sorabiliyorum; Death Valley’nin ortasından bile sorabilmek epey güzel
    • O servisi kapaklı telefonumla sürekli kullanırdım
      Google arama terimini yazmak uzun sürerdi ve sonucun gelmesi 1–2 dakika sürebilirdi ama hiç olmamasından iyiydi
      Genelde gitmek istediğim yerlerin adresini arayıp TomTom’a girmek için kullanırdım; zaman çok değişti
    • Bunun ne zaman olduğunu merak ediyorum
      1995 civarında Ericsson’ın bir yan kuruluşu olan bir telekom araştırma şirketinde çalışırken bu fikri düşünmüştüm; başlıca örnek uçuş durumu güncellemeleriydi
      Sayısal tuş takımında bir harf girmek için birden fazla kez basmayı gerektiren P2P mesajlaşmanın bu kadar popüler olacağını kimse hayal etmediği için, erken web’de veri miktarı artarken bilgi servisleri en iyi kullanım gibi görünüyordu
      Teletext de hâlâ vardı ve onu kazıyan ayrı bir proje de vardı
      Ama SMS’e erişimi olan bizlerle genel halkın sonunda onu ne için kullandığını düşünmek ilginç
  • Yazarın soyut bir paylaşımlı düzenleme alanı üzerinde TCP fikrine epey yaklaşmış olması ilginç
    Bu, tek başına bile çok hoş bir araç olabilir
    İki tarafın paylaşılan kaynağa nasıl okuyup yazacağını yüksek seviyede tasarlarsanız, geri kalan her şeyi halledip bunu bir SOCKS proxy olarak sunan bir proxy hayal edilebilir

    • Ücretli Boingo havalimanı hotspot’larında bedava internet kullanmak için DNS üzerinde TCP/IP’nin zaten uygulanmış olduğunu biliyorum
      Sonunda ücretsiz Wi‑Fi standart hâline gelince artık pek olay olmaktan çıktı; şimdi de uçakta ücretsiz Wi‑Fi savaşına geçtik
      Eninde sonunda uçak içi Wi‑Fi da her yerde ücretsiz olacak; bazı havayolları zaten bunu yapıyor
    • Bizim ülkedeki operatörler veri limitli tarifelerde “sınırsız WhatsApp” reklamı yapmaya başladıktan sonra yıllardır bunu düşünüyordum
      Sadece metin olurdu, görüntü ya da video olmazdı ama sıradan web gezintisi için yeterli olurdu
  • Birkaç yıl önce üniversitemizin dekanı, “oyunlar yüzünden derse katılım etkileniyor” tarzında konuşup saat 22.00’den sonra LAN ağını kapatmaya karar verdi.
    Uygulama yöntemi, IP adresleri üzerinden gidip gelen tüm trafiği engellemekti; ama TCP’nin kendisini engellememişlerdi ve o zamanlar pek de yeni sayılmayan IPv6’yı da tamamen unutmuşlardı.
    Bu yüzden IPv6 üzerinden çalışan basit bir P2P sohbet uygulaması yaptım; tek sorun, arkadaşlarıma IPv6 adresini paylaşıp bunu kişilerinde tutmalarını sağlamak zorunda olmamdı.
    Gayet iyi çalıştı ama daha sonra ağ dışındaki bir bilgisayara tünelleme yapmanın çok daha kolay olduğunu öğrendim.

  • Bu, daha fazla işe yaramaz yazılım yazalım yazısını ve ardından gelen HN tartışmasını hatırlatan neredeyse kusursuz bir örnek gibi.
    Hayatı değiştirir mi? Muhtemelen hayır.
    Yapma ve keşfetme süreci eğlenceli miydi? Neredeyse kesinlikle.
    Böyle şeylerden daha fazla yapmalıyız.
    https://ntietz.com/blog/write-more-useless-software/
    https://news.ycombinator.com/item?id=37911900