PySkyWiFi: Uzun mesafeli uçuşlarda ücretsiz, düşük hızlı Wi‑Fi oluşturmak
(robertheaton.com)- 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: APPLgibi 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
curlisteğininX-PySkyWiFibaşlığıyla aktarılıyor - Aktarım, HTTP isteğini küçük parçalara böldükten sonra
DATA,ACK,ENDsegmentleri 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 youolarak değiştirince diğer taraf bunu okudu - Sonra
Im fine how are youolarak değiştirince ilk taraf yanıtı gördü
- Bir taraf adı
- 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
- Örnek:
- 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ı,
curlgibi 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
- Örnek:
- Ground daemon,
X-PySkyWiFibaş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,
curlisteğ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,ENDsegmentleriyle aktarılıyorDATA:Dkarakteri, 6 haneye doldurulmuş sıra numarası ve gerçek chunk verisinden oluşuyor- Örnek:
D000451adline": "Mudslide in Wigan causes m ACK:Akarakteri ve onaylanan 6 haneli sıra numarasından oluşuyor- Örnek:
A000451 END: Tek birEkarakteriyle mesajın sonunu gösteriyor
- Gönderen,
DATAgönderdikten sonra ilgili sıra numarasınınACK’ini alana kadar bekliyorA000451alındığında000451chunk’ının işlendiğini varsayıp000452chunk’ını gönderiyor
- Alıcı
ENDgö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):msgdeğerini depoya yazarrecv() -> 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üresegment_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ılabilirconnect_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
Stephenkabul edilebilirGET /data?id=5reddedilebilir
- Bunu önlemek için ağ katmanı, segmentleri havayolu mil hesabına yazmadan önce base26 ile kodlamalıdır
- base26, bir dizeyi yalnızca
AileZarası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~Zkarakterleriyle ifade eder - Örnek:
b26_encode("Hello world"),CZEZINADXFFTZEIDPKMdöndürür
- base26, bir dizeyi yalnızca
- 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ğlayabilirCONNECTkullanı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
curlile blog ana sayfası yüklendi ve birkaç dakika sonra HTML yanıtı alındı
1 yorum
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ı.Sadece birkaç bayt azaltmanın bile yaklaşık bir milyon dolar tasarruf ettireceği düzeyde olduğunu hatırlıyorum.
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.
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ü.
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.
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
Hostbaşlığınıreddit.comolarak değiştirince Reddit’i görebildim.Görseller
i.redd.itFastly olmadığı için çalışmadı ama/etc/hostsiçindeold.reddit.comu Stripe’ın Fastly IP’sine bağlayıp korkutucu TLS hatasını yok sayınca giriş de yapılabildi.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.
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.
https://en.wikipedia.org/wiki/Domain_fronting
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.
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
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ı.
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ı ;-)
“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
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
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
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
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
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
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
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
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ıyordustock:[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ı
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
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
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
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
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
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