Dünyayı değiştiren kod satırı

Yeniden basıldı: InfoQ (ID: infoqchina)

Eser sahibi: slate

Bu makale 20352 kelime , Okumanız tavsiye edilir 51 dakika .

Bu makale dünyayı değiştiren 36 satırlık kodu derledi.

Kod hayatımızı şekillendirir. Risk kapitalisti Marc Andreessen'in dediği gibi, "Yazılım tüm dünyayı yiyor." Veya yazılımın mevcut gerçekliğin ışığında tüm dünyayı sindirdiğini söylemek daha doğru olabilir.

Kültürel açıdan bakıldığında, kod alt kısımdadır. Kodun günlük gerçekliğimiz üzerindeki inanılmaz etkisini hissedebilsek de, aslında koda nadiren dokunuruz ve çalışma ilkelerini anlamak, meslekten olmayan kişiler için zordur. Bu eserlerin ruhumuzu şekillendirdiğini düşünerek her zaman en seçkin film, oyun ve dizi listelerini derleyeceğiz. Ama her zaman cesur ve radikal yapısıyla tanınan Time dergisi bile Tüm dünyayı etkileyen herhangi bir yazılım kodu listesi hiç olmadı .

Ama hayır, gerekli olmadığı anlamına gelmez, denemeyi planlıyoruz. Dünya üzerinde en büyük etkiye sahip olan yazılım başarılarını seçmek için bilgisayar bilimcileri, yazılım geliştiriciler, tarihçiler, politika yapıcılar ve gazetecilerden oluşan kapsamlı bir fikir araştırması yaptık.

Cevaplamaları gereken sorular şunları içerir: Hangi kod segmentlerinin büyük etkisi var? Hayatımızı hangi kod değiştirdi? Toplam 75 yazılım başarısı seçildi ve sonunda bunların 36'sını seçtik. Elbette bu liste tam değildir ve aslında tam olarak da olamaz. Diğer listeler gibi, bu liste de herkesin kaprisini canlandırmak, kodun günlük yaşam üzerindeki etkisini ve programcıların gelecek hakkında nasıl çeşitli kararlar aldıklarını yeniden gözden geçirmemize yardımcı olmak içindir.

HTML gibi bazı kodlar nispeten iyi bilinmektedir. Bazı kodlar güçlüdür (örneğin, olasılık simülasyonu için Monte Carlo simülasyonu), ancak sıradan insanlar arasında varoluş duygusu yoktur. Boeing 737 Max'teki yazılım hataları gibi bazı ölümcül hatalar da var. Alıcının e-postayı açıp açmadığını pazarlamacılara bildiren izleme mekanizmaları gibi diğerleri ürpertici.

Ancak her durumda, önemli kodun ortak bir yönü vardır: Sürtünmeyi ortadan kaldırarak yeni davranış kalıpları yaratır. Yazılım, belirli davranışları gerçekleştirme zorluğunu azaltabildiğinde, bu davranışlardan daha fazlasını gerçekleştireceğiz. İlk olarak 1988'de ortaya çıkan "İnternet sohbeti" kodu, İnternet'teki ilk sakinlerin gerçek zamanlı olarak metinle etkileşime girmesine izin verdi. Şimdilerde, gerçek zamanlı metin uzun zamandır her yerde bulunuyor - göz kamaştırıcı Slack işbirliği platformundan Twitch'teki çevrimiçi mafya ilaçlamasına kadar.

Ek olarak, hangi kodun başlangıçtan itibaren çığır açan bir etki sağlayabileceğini belirlemek zordur. Genel olarak konuşursak, bu yazılım projeleri genellikle bu tür bir araştırma balonu gibi bir tür garip deneyle başlar. 1961'de, ilk yaygın olarak popüler video oyunu "Spacewar! 120.000 ABD dolarına kadar (satın alma gücüne dayalı, 2019'da 1 milyon ABD dolarından fazlasına denk gelen) fiyatı olan orta ölçekli bir makinede doğdu, arka planın kendisini anlamak oldukça zor. Ancak ortaya çıkışı, verileri simgeler olarak temsil etmek ve kullanıcıların bu simgeleri el kumandaları ile çalıştırmalarına izin vermek dahil olmak üzere halihazırda ana akım haline gelen birçok kavramın öncülüğünü yaptı.

Kodun etkisi herkesin (programcılar dahil) beklentilerini çok aşabilir.

Clive Thompson, "Programmers: The Making of a New Tribe and the Remaking of the World (Coders: The Making of a New Tribe and the Remaking of the World)"

İkili delikli kart

Yıl: 1725

İlk kod grubu

İkili programlamanın doğuşu, bilgisayarın kendisinden bile daha önceydi. Basile Bouchon'un kağıdı delen ve bir makineyi kontrol etmek için kullanan ilk kişi olduğuna inanılıyor: 1725'te, tekstil desenini beslenen delikli kağıda göre ayarlayabilen bir tekstil cihazı icat etti. Bir delik "1" i temsil eder ve hiçbir delik "0" ı temsil etmez. O zamandan beri sayısız değişiklik olmasına rağmen, bu temel kod oluşturma birimi hiç değişmedi. Elena Botella

İlk modern kod gerçekten uygulandı

Yıl: 1948

Bilgisayar kodlarını ve nükleer imha modellerini çalıştırabilen bilgi işlem cihazlarının ortaya çıkmasıyla, Soğuk Savaş silahlanma yarışı resmen başladı.

"Elektronik Dijital Entegratör ve Bilgisayar (ENIAC)" programlanabilir ilk elektronik bilgisayardır. 1945'te, belirli problemlere ulaşmak için bileşenler arasında farklı kablolama yapılandırarak doğdu. Bir görev (ekleme gibi) tamamlandığında, yeni bir darbe sonraki işlemi tetikleyecektir. Birkaç yıl sonra, von Neumann ve Los Alamos Ulusal Laboratuvarı bilim adamı Nicholas Metropolis, ENIAC'ı devraldı ve ilk modern kodu bir bilgisayarda gerçekleştirdi: adreslenebilir salt okunur bellekte (ENIAC'daki işlev tablosu anahtarı) Yüzlerce dijital talimatı yürütün. New Mexico'daki Los Alamos Ulusal Laboratuvarı tarafından değerlendirilen birkaç atom bombası tasarım seçeneğini simüle etmek için Monte Carlo teknolojisini kullandılar ve bu şekilde kademeli olarak bir dizi karmaşık sistemi simüle ettiler ve böylece olası olasılık dağılım sonuçlarını tekrar tekrar planladılar. Von Neumann ve Metropolis, laboratuvardaki nükleer bilim insanlarına 20.000'den fazla delikli kart göndererek nötron hareketinin sonuçlarını, savaş başlığı takibini patlatarak simüle etti.

Bugün, bu kod grubunun "çocukları ve torunları" Los Alamos Ulusal Laboratuvarı'ndaki bilgisayarlarda hala çalışıyor. Thomas Haigh, "ENIAC in Action: Making and Remaking the Modern Computer" kitabının ortak yazarı

Grace Hopper derleyicisi

Yıl: 1952

Bilgisayarın kelimeleri işleme yeteneği kazanmasına izin verin

VERİ SONU İSE İŞLEME GİTİN 14.

(Wikipedia)

Grace Hopper, erken bir bilgisayarı programlamayı planlıyordu ve programlama sürecini basitleştirmek için insan dili unsurlarını kullanmaya karar verdi. Hopper, II.Dünya Savaşı sırasında ABD Donanma Rezervine katıldı, bu nedenle askeri organizasyonun personelinin çok çalıştığı veya ikili kodu anlamayı öğrenmek için mücadele ettiği çok açık. Ancak programlama diline İngilizce unsurlar sokulabilirse, bu çalışmanın zorluğu büyük ölçüde azalacak ve hata olasılığı daha az olacak, böylece matematikte doktora derecesi olmayanlar daha hızlı başlayabilecektir.

Bazı insanlar bu fikirle alay etti, ancak 1950'nin başlarında ilk derleyiciyi tasarladı. Bu, daha insan tarafından anlaşılan bir kod biçimini bir makine tarafından doğrudan işlenebilen düşük seviyeli koda dönüştürebilen bir dizi talimattır. O ve laboratuvarı, bu süreci İngilizce kelimeleri kullanmak için kullanan ilk programlama dili olan FLOW-MASTIC'i geliştirmek için bu aracı kullandı. Molly Olmstead

"Uzay savaşı!"

Yıl: 1961

İlk resmi olarak piyasaya sürülen video oyunu

/ bu rutin, çarpışmayan bir gemiyi görünmez bir şekilde / hiper uzayda idare eder hp1, dap hp2 count i ma1, hp2 law hp3 / sonraki adım dac i ml1 law 7 dac i mb1 rastgele scr 9s efendim 9s xct hr1 ekle i mx1 dac i mx1 takas ekle i my1 dac i my1 rastgele scr 9s efendim 9s xct hr2 dac i mdy dio i mdx setup .hpt, 3 lac ran dac i mthhp4, lac i mth sma sub (311040 spa add (311040 dac i mth count .hpt, hp4 xct hd2 dac i ma1hp2, jmp.

(Bitsavers.org aracılığıyla Steve Russell)

1961'in sonunda, bir grup genç MIT fakültesi, öğrenci ve asistan (çoğu o sırada Tech Model Railraod Kulübü'nün üyeleriydi) bağışlanmış bir DEC PDP-1 bilgisayarının önünde 24 saat oturdular. PDP-1 bilgisayarı, 18 bit kelime uzunluğunu destekleyebilen ve programları depolamak için kağıt bant kullanabilen, 120.000 ABD dolarına kadar tek bir fiyatla (1 milyon ABD dolarından fazla mevcut miktara dönüştürülmüş) en yüksek askeri olmayan bilgi işlem teknolojisini temsil eder. Beş ay içinde, bu programcılar şiddetli bir uzay topçu savaşı başlatırken, iki oyuncunun bir uzay aracını (aslında ekranda basit bir çizgi çizimi) kontrol etmesine izin verirken, ekranın ortasındaki yıldızın yerçekimsel müdahalesini önleyen bir oyun geliştirdiler.

"Spacewar!" Hızlı bir şekilde erken "hacker" toplulukları arasında yayıldı ve daha sonra, gösterim amacıyla DEC PDP-1 bilgisayarında yerleşik bir program olarak çekirdek belleğe önceden yüklendi. Bu proje, 1960'larda kodlama topluluğuna büyük ölçüde ilham verdi ve nesiller boyu video oyunu yaratıcılarına ilham verdi. Bu oyun bugüne kadar Bilgisayar Tarihi Müzesi'nde analog biçimde hala düzenli olarak sergilenmektedir. Oyunun baş geliştiricisi Steve Russell, Smithsonian Enstitüsü'nün 2018'deki grup toplantısında şunları söyledi: "Bu oyun 50 yıldan uzun süredir var. Hiç kullanıcı şikayeti olmadı, kilitlenme raporu olmadı ve bugün hala mevcut. Normal operasyon. "- Arthur Daemmrich, Le Mersen Buluş ve İnovasyon Araştırma Merkezi Direktörü

Erken Yuan e-postası

Yıl: 1965

Hadi, bu e-posta.

NE ZAMAN A (1) .E.FENCE.OR.A (2) .E.FENCE.OR.A (3) .E.FENCEPRFULL. ($ 'R'1 INSTRUCTIONS: $) PRFULL. ($' 4MAIL NAME1 NAME2 PROB1 PROG1 PROB2 PROG2 ... $) PRFULL. ($ NEREDE '= NAME1 NAME2' = POSTA EDİLECEK DOSYA, $) PRFULL. ($ AND '= PROBN PROGN' = '8 $, 1 $ IT YÖNLENDİRMELERDİR GÖNDERİLECEK .'B $) CHNCOM. (0) ŞARTLI SONU

(MAIL için CTSS Programcısının Kılavuz Sayfası)

1961'de, MIT'deki bilgisayar korsanları, birden çok kullanıcının aynı bilgisayarda oturum açmasına ve birbirlerine çok sınırlı mesajlar iletmesine izin veren bir sistem yarattı. 1965'te bir grup programcı, bu kısa dijital mesajları göndermek, almak ve görüntülemek için resmi bir komut sistemi geliştirmeye karar verdi. O zamanlar "üst düzey insanlar", MAIL'in görünüşte baştan savma düzenini kullanmayı reddetse de, kullanımı popülerdi. 1971'de MIT tarihteki ilk spam e-postayı aldı: Vietnam Savaşı karşıtı bir mesaj. Clive Thompson

Polis kanunu uygulama algoritması

Yıl: 1968

Modern polis tahmininin başlangıcı ve etnik özelliklerin bilgisayarlaştırılması oldu

1965'te, o zamanki Amerika Birleşik Devletleri Başkanı olan Lyndon Johnson, Başkanlık Kolluk Kuvvetleri ve Adalet Komisyonu'nu kurdu ve komisyondan Amerika Birleşik Devletleri'ndeki "cezai sorunları" çözmek için bilgisayarların nasıl kullanılacağını araştırmasını istedi. O ve komite bu soru için iki anahtar kelime belirledi, biri "şehirli" ve diğeri "siyah". Bilgisayarın verdiği cevap "polis kanun uygulama algoritması". Algoritma, şehrin belirli bir bölgesinde kaç devriye görevlisinin görevlendirilmesi gerektiği gibi planlama sorunlarını çözmeyi amaçlamaktadır. Bu algoritmayı bir suç veritabanıyla birleştirerek, polis memurları etnik demografik verilere dayalı olarak şüpheli dosyaları otomatik olarak oluşturabilir ve ilgili kaynakları (polis memurları, silahlar ve diğer ekipmanlar dahil olmak üzere) suç faaliyetleri gerçekleşmeden önce dağıtabilir. Bu güne kadar, öngörücü polislik programı siyahları ve kahverengileri hala yüksek suç oranlarına sahip temel gözetleme hedefleri ve grupları olarak tanımlıyor. Kanun uygulama algoritmalarının hikayesinden yola çıkarsak, bu öngörülemeyen bir teknik önyargı değil, son 50 yılda bilgisayar teknolojisinin mükemmel tasarımının doğrudan bir tezahürüdür. -Charlton Mcllwain, "Kara Yazılım: İnternet ve Irksal Adalet, Afronet'ten Siyahların Hayatı Önemlidir" kitabının yazarı

Apollo 11 aya iniş programı BAILOUT kodu

Yıl: 1969

Bu kod, ay modülü bilgisayarının kaynaklarını tüketmesini önlemek için kullanılır.

POODOO INHINT CA Q TS ALMCADR TC BANKCALL CADR VAC5STOR # HATA GİDERME AMAÇLI MAĞAZA SİLİNEBİLİR. INDEX ALMCADR CAF 0ABORT2 TC BORTENT OCT77770 OCT 77770 # HAREKET ETMEYİN CA V37FLBIT # ORTALAMA G, MASKE FLAGWRD7 CCS A TC WHIMPER -1 # EVET. POODOO YAPMAYIN. BAILOUT YAPIN. TC DOWNFLAG ADRES STATEFLG TC DOWNFLAG ADRES REINTFLG TC DOWNFLAG NODOFLAG'I ADRES TC BANKCALL CADR MR.KLEAN TC WHIMPER

Apollo Rehberlik Bilgisayarı (AGC), insan teknolojisi gelişimi tarihinde bir mucizedir. Apollonun Dünya yörüngesine dönmesinden sorumlu kişi olan Poppy Northcuttın girişine göre, bu eski bilgisayarın hesaplama gücü, kutsama mesajlarını kaydedebilen bir e-kart kadar bile iyi değil. Ancak görevi başarıyla tamamladı.

Sınırlı bilgi işlem kapasitesi ve depolama alanı, her görevi dikkatli bir şekilde yönetmesini gerektirir, bu nedenle AGC her zaman en önemli iş içeriğine odaklanmalıdır. Hesaplama miktarı taşıma kapasitesini aştığında, tüm aya iniş planı başarısız olacaktır. Bu amaçla, proje üyeleri BAILOUT'u geliştirdi. Bilgisayar, alanın tükenmesi (veya "taşma") riskiyle karşılaştığında, AGC, temel verilerin ve işlemlerin normal kalmasını sağlamak için, BAILOUT'u nispeten düşük öneme sahip verileri ve işlemleri atmak için tetikleyecektir.

Eagle Lander Ay yüzeyine yaklaştığında, AGC Ay yüzeyinden 30.000 fit uzaklıkta bir "1202" alarmı yayınladı.Ne yazık ki Armstrong ve Houston Uzay Merkezi'ndeki kontrolörler hemen fark etmediler. 30 saniyeden kısa bir süre sonra, kontrol merkezindeki bilgisayar uzmanları, AGC yazılımının hala beklendiği gibi çalıştığı, yani düşük öncelikli çalışmayı bıraktığı ve kaynakları çekirdek yük üzerinde yoğunlaştırdığı sonucuna vardı (tüm anahtarlama süreci çok hızlıdır, bu nedenle ekip bunu algılayamaz) . Armstrong ve Aldrin, ay modülüne inişi adım adım tamamlamak üzere rehberlik etmek için AGC tarafından sağlanan değerli verileri kullanmaya devam etti.

Armstrong "Başarılı Kartal İnişi" ni bildirmeden önce, taşma alarmı üç kez çaldı, ancak her şey yine de beklendiği gibi çalıştı. "Kurtarma" terimi başlangıçta görevin tamamlanmadığı anlamına geliyordu, ancak Apollo 11 projesinde en yüksek insan başarısı ile eş anlamlı hale geldi. Ellen Stofan, Direktör, Smithsonian Ulusal Hava ve Uzay Müzesi

Selam Dünya!

Yıl: 1972 veya öncesi

Bu cümle ilk olarak kodda göründü

main () {printf ("merhaba, dünya \ n");}

Yeni bir programlama dili öğrenmeye odaklandığımızda, eğitimdeki ilk örnek, bir bilgisayar ekranında "Merhaba, dünya!" İfadesinin nasıl görüntüleneceğidir.Belki de bu cümlenin en bilinen kaynağı Bell Laboratuarlarından alınan nottur. C dili programlama-bir öğretici. Bu materyal 1974'te yazılmıştır. Ancak 1972'de yazılan B dili dersinde de bu cümleyi gördük.

Merhaba Dünya! Harika bir öğretim yöntemidir. Bu, kolayca tamamlanabilen küçük bir görevdir ve aynı zamanda farklı programlama dilleri arasındaki önemli farklılıkları yansıtan bir standardı temsil eder. Ayrıca bu, kıdemli programcıların yeni bir ortam kurarken her şeyin normal olup olmadığını test etmelerinin hızlı ve kolay bir yoludur. (Bazen programcılar, farklı dillerin ve ortamların hız seviyelerini karşılaştırmak için "merhaba dünya" çalışma zamanını da kullanırlar.) Belki daha da önemlisi, "Merhaba dünya!", Programlama için iyi olan sıcak ve yumuşak bir güce sahiptir. Yeni gelen, açıklanamaz bir yakınlığa sahiptir. Kodun sonsuz gücü var ve yeni dünya size kucak açtı. Chris Noessel, AI Tasarım Başkanı, IBM

Boş sonlandırılmış dize

Yıl: 1972

Bilgi işlem teknolojisi tarihindeki en ciddi tasarım hatası

kömür sarısı = {'y', 'e', 'l', 'l', 'o', 'w', '\ 0'};

(GNU C başvuru kılavuzu)

1972'de Dennis Ritchie büyük bir karar verdi: metni temsil etmek için "boş sonlandırılmış dizge" adlı yeni bir dil kullanmak. Bu kavram çoktan ortaya çıktı, ancak onu yeni başarısı C diline dahil etmeye karar verdi ve bu karar, programlamanın sayısız halefi üzerinde derin bir etki yarattı.

Programlama dillerinin bir metin parçasını ifade etmenin iki ana yolu vardır: Birincisi, "Yalnızca 10 karakter içeriyorum ve daha fazla karakter barındıramıyorum" ifadesine eşdeğer olan sabit bir açık uzunluk sağlamaktır; diğeri ise boş sonlandırılmış bir son kullanmaktır "Sıfır baytın sonu görünene kadar birçok karakter ekledim."

C kodundaki yaygın bir hata, uzun bir dizeyi daha kısa bir dizeye kopyalamak ve sonunda bir taşmaya neden olmaktır, böylece bitişiğindeki veriler yok edilir. Örneğin, bir beyaz tahta üzerinde boyamak gibi, ancak tahtanın arkasındaki duvara boya uygulamak gibi.

Saldırganlar, program hatalarına neden olmanın yanı sıra, bu tür hatalar aracılığıyla programları, dikkatlice tasarlanmış belirli verilerle belirli içeriğin üzerine yazmaları için aktif olarak teşvik edebilir ve böylece program davranışını değiştirebilir. Ve bu klasik arabellek taşması saldırısıdır. Duyduğunuz hemen hemen tüm güvenlik açıkları 1988'de ortak bir "ata" -Morris solucanını paylaşıyor.

Bu tür hatalar, C dilinde dikkatli kodlama ile önlenebilse de, bu dilin tasarım özellikleri, bu tür hataların ortaya çıkmasını son derece kolay ve tespit edilmesini zorlaştırmaktadır. Yönlendiricilerden "akıllı" ampullere kadar, hemen hemen her modern dil kasıtlı olarak boş sonlandırılmış dizi sorununu ortadan kaldırsa da, C ve C ++ hala dünyaya hakimdir. Bu nedenle, yaklaşık 30 yıl sonrasına kadar hala bu hatadan tamamen kurtulamıyoruz. Jamie Zawinski, Netscape geliştiricisi, Mozilla.org'un kurucusu, DNA Lounge başkanı.

Telenet

Yıl: 1975

Paket değişim mekanizmasına dayalı ilk halka açık veri ağı, günümüz İnternetinin omurgası

İnternetin doğuşundan önce, ARPANET ilk olarak ortaya çıktı. Bu, esas olarak Gelişmiş Araştırma Projeleri Ajansı (DARPA) araştırmacılarının makineler arasında veri alışverişi yapması için bir dizi bilgisayar ağıdır. ARPANET'in hükümet içinde hızla yayılmasıyla, yaratıcıları bu teknolojinin genel halk için önemli bir değere sahip olabileceğini ve hatta büyük bir servet ve gelir getirebileceğini fark etti. Ağustos 1975'te, ARPANET'in ticari sürümü olan Telenet, ilk kez yedi şehirde piyasaya sürüldü ve ilk müşterilerin (çoğunlukla bilgisayar veya veritabanı şirketleri), orijinal e-posta hizmetlerini ve uzaktan erişimi içeren verilerle ilgili kullanım durumlarını yüklemek ve indirmek için telefonla aramayı kullanmasına olanak tanıdı. Merkezi bilgisayarda depolanan kod. ARPANET genel olarak modern İnternetin en eski versiyonu olarak görülse de, daha kesin olmak gerekirse, kamu tüketimi için tasarlanan Telenet İnternetin gerçek yaratıcısıdır. 1980'lerde Telenet'in en büyük müşterilerinden biri, daha sonra AOL America Online olan Quantum Link'ti. Jane C. Hu, Future Tense katılımcısı

Vancouver Menkul Kıymetler Borsası'nda yuvarlama hataları

Yıl: 1982

Ondalık sayıların yuvarlanmasıyla tetiklenen "kanlı bir durum"

-deri dönüş katı (değer) + dönüş turu (değer)

Vancouver Menkul Kıymetler Borsası, yaklaşık bir değer bulmak için yukarıdaki kodu kullanmalıydı.

1982'nin başlarında, Vancouver Borsası 1.000 puanlık bir gösterge ile elektronik bir hisse senedi endeksi yayınladı. İki yıl içinde, orijinal değerinin yarısına düştü, ancak borsa o sırada oldukça güçlü bir şekilde yükseldi, bu yüzden insanların kafası karıştı. Yapılan bir araştırma, ilgili kodun round () yerine floor () kullandığını ve komuttaki indeks hesaplamasında hataya neden olduğunu ortaya çıkardı. Bu komut, amaçlandığı gibi üç ondalık basamağı korumak yerine bir yuvarlama işlemi gerçekleştirir. (O zamanki dijital bilgisayarların işlem gücü sınırlıydı, bu nedenle yuvarlama veya doğrudan yuvarlama kullanılmalıdır.) Bu, dizin hesaplama sonucu 532.7528 ise, yuvarlamadan sonra doğru yuvarlama sonucunun 532.753 yerine 532.752 olması gerektiği anlamına gelir. Bu fark küçük görünse de, günde binlerce hesaplamadan sonra borsa endeksi keskin bir şekilde düşmeye başladı. Sonunda, bu hata Kasım 1983'te çözüldü: Geçen hafta sonu yaklaşık 500 puanda kapandıktan sonra, endeks Pazartesi günü yeniden açıldığında nihayet 1000 puanı doğru bir şekilde aştığını duyurdu. Lav Varshney, Doçent, Illinois Üniversitesi, Urbana-Champaign

Therac-25

Yıl: 1985-1987

Gerçekler, aşırı güvenin ölümcül olduğunu kanıtladı

Teknolojik gelişmelerin neden olduğu kazaları ilk yayınlayan manşetlerdir. Los Angeles Times, "aşırı karmaşık modern yazılımın, başarısızlık oranlarında keskin bir artışa neden olduğunu" ilan etti. Pek çok tıbbi kurumda kanseri tedavi etmek için kullanılan bir makine, operasyon sırasında patladı ve en az altı hastayı etkiledi. Üç kişi öldü.

Müfettişler daha sonra bu Therac-25 cihazının programlanmasında ölümcül bir hata olduğunu keşfettiler. Makine, düşük güç ve yüksek güç olmak üzere iki aydınlatma modu sağlar ve yüksek güç modu, ışını filtrelemek için metal ekipman gerektirir. Ancak, yazılım hataları nedeniyle operatör, uygun metal ekipman eşleşmediğinde yanlışlıkla yüksek güç modunu da tetikleyebilir.

Therac-25 modeli aslında Therac-20'nin "geliştirilmiş" bir versiyonudur. O zamanlar insanlar yazılımının kusursuz olduğunu düşündükleri için ek güvenlik kontrollerine gerek yoktu. Sonuç olarak, mühendislerin aşırı güveni acı verici kayıplara neden oldu. Molly Olmstead

İnternet Aktarmalı Sohbet

Yıl: 1988

En eski internet sohbet teknolojisi

/ # kediye katıl

Internet Relay Chat (kısaca IRC), çoğu insan "İnternet" kelimesini duymadan önce bile vardı. Bu, bir grup kanalı üzerinden başkalarıyla gerçek zamanlı sohbet etmek için popüler bir teknik çözümdür. İlk kullanıcılar, medya toplu olarak susturulduğunda 1991 de dahil olmak üzere haber içeriğini paylaşmak için oturum açabildiler, kullanıcılar bunu Sovyetler Birliği'nin çöküşüyle ilgili patlayıcı haberleri yaymak için kullandılar. Elbette, bu sohbet yönteminin kendisi de kod biçiminde uygulanır: kanala katılmak için "/ join #" girmeniz gerekir. (Günümüzde Slack uzmanları buna aşina olmalıdır.) Kullanıcılar kendileriyle ilgili bazı mesajları ifade etmek isterlerse, "/ çok yorgunum" yazabilir veya * ve "çok yorgun" kullanarak doğrudan adlarını ve "Çok yorgun" alanı. Sonuç olarak, işlev çok basit olsa da, çoğu insan için çevrimiçi sohbet, İnternet ile temasa geçtiklerinde ilk durakları haline geldi ve sonraki nesillerde sayısız çevrimiçi konuşma uygulamasının temel prototipi haline geldi. Nisan Glaser

Morris solucanı

Yıl: 1988

İnsanların İnternet'in çok büyüdüğünü anlamasına neden olan bir kabus

checkother () / * 0x57d0 * / {int s, l8, l12, l16, optval; struct sockaddr_in sin; / * 16 bayt * / optval = 1; if ((random ()% 7) == 3) return; / * 612 * / s = soket (AF_INET, SOCK_STREAM, 0); if (s < 0) dönüş;

Morris solucan kodundaki bir anahtar işlevden bir alıntı.

O zamanlar Robert Morris'in kendisi ve internet hala çok gençti. 23 yaşındaki Cornell Üniversitesi yüksek lisans öğrencisi Morris, Morris solucanını serbest bıraktı ve "İnternetteki ilk büyük ölçekli saldırıya" neden oldu. Dünya çapında İnternet'e bağlı yaklaşık 60.000 bilgisayarın yaklaşık% 10'u hasar gördü. Milyonlarca dolar kaybedildi ve New York Times'ın ilk kez yazılı basında "İnternet" kelimesini yayınlamasına neden oldu. Teknik olarak bilgili uygulayıcılar bile bu solucan saldırısının bu kadar geniş bir etki yelpazesine sahip olduğunu hayal edemezler. Morris, bu kadar ciddi bir hasara neden olmayı hiç düşünmediğini, ancak ciddi sonuçların onu Bilgisayar Dolandırıcılığı ve Kötüye Kullanım Yasası uyarınca yargılanan ilk kişi yaptığını söyledi. Üç yıl hapis cezasına çarptırıldıktan sonra, tanınmış bir başlangıç kuluçka projesi olan Y Combinator'ın kurucu ortağı ve MIT'de bilgisayar bilimi doçenti oldu. Elena Botella

Tek virüs

Yıl: 1990'lar

Tek satırlık kodun gücü ilk kez ortaya çıkıyor ve sürekli gelişen bilgisayar Aşil topuğunu ortaya çıkarıyor

: () {: |: ve} ;:

Kendi bilgisayarınızda denemeyin.

Yukarıdaki kod satırı aslında "çatal bombası" adı verilen tek satırlık bir virüstür. Etkili olması için bazı özel koşullar gerektirir (örneğin, Unix işletim sisteminin daha eski ve savunmasız bir sürümünü kullanmak). Ancak bu koşullar yerine getirildiği sürece, bu komutu Bash'e yazabiliriz ve bilgisayardaki tüm kullanılabilir belleği tüketene ve sistemin çökmesine neden olana kadar kendini tekrar tekrar çoğaltacaktır.

Sadece küçük ve güçlü olduğu için değil, aynı zamanda işlev adı olarak iki nokta üst üste kullanması nedeniyle çok ünlüdür. Çoğu işlev (yeniden kullanılabilir bir kod satırı), "Yazdır" veya "isThisEmailValid" gibi açıklayıcı bir şekilde adlandırılır, ancak bu yalnızca bir alışkanlıktır ve bir gereklilik değildir. Çoğu hesaplama dilinde işlev adları olarak iki nokta üst üste kullanamasak da, Bash bir istisnadır.

Bu kod satırını ilk olarak 2002'de Almanya'nın Frankfurt kentindeki Angewandte Kunst Müzesi'ni ziyaret ettiğimde gördüm. Açıkçası müze gibi bir yerde sergilenmeye değer çok fazla kod yok. Chris Noessel

HTML köprüsü

Yıl: 1990

Bu, her şeyi akıl almaz bir şekilde birbirine bağlamamıza yardımcı oluyor

< a href = "https://www.slate.com" > Kayrak < / a >

Tim Berners-Lee tarafından oluşturulan hiper bağlantı kavramı dünyayı değiştirdi. Bağlantı bilgisi kavramı özellikle yeni değildir, ancak hiper bağlantıların yeni özelliği, aşağıdakileri oluşturmak için bilgisayar sistem kurallarında noktalama işaretlerini bir araya getirme yeteneğinde yatmaktadır: // Bu standart URL biçimi. Bu format, tüm mevcut girişleri adlandırmak için kullanılabilir. Berners-Lee her zaman geriye dönük uyumluluk sorunları hakkında endişelenmiş olsa da, temel köprü kavramının o kadar güçlü olduğu ve bu tasarım fikrinin asla güncelliğini yitirmeyeceği ortaya çıktı. Berners-Lee tarafından önerilen hiperlinkler şimdi hemen satın alma, beğenme ve yeniden yayınlama gibi çeşitli biçimlere dönüştürüldü. Bu hayal edilemeyen kullanım örnekleri, bir teknoloji dalgası zirveye ulaştığında, yeni sonuçların hızla geleceğini söylüyor. Charles Duan, Teknoloji ve İnovasyon Direktörü, R Street

JPEG'in doğuşu

Yıl: 1992

Görüntülerle ilişkimizi sonsuza dek değiştirdi

double * NaiveDct_transform (çift vektör, size_t uzunluk) {if (SIZE_MAX / sizeof (double) < len) NULL döndür; double * sonuç = malloc (len * sizeof (double)); if (sonuç == NULL) ise NULL döndürür; çift faktör = M_PI / len; for (size_t i = 0; i < len; i ++) {çift toplam = 0; for (size_t j = 0; j < len; j ++) toplam + = vektör * cos ((j + 0.5) * i * faktör); sonuç = toplam;} dönüş sonucu;}

Yukarıdaki kod, JPEG dosya formatının arkasındaki temel fikir olan ayrık kosinüs dönüşümünü temsil eder.

Nayuki Projesi

Bugün, kamerayı birçok fotoğrafla doldurmaya alışkınız. Ancak, geçmiş görüntü verileri çok büyük depolama alanı gerektirir. 1992'de Joint Photographic Experts Group, görüntü dosyalarının boyutunu küçültmek için JPEG spesifikasyonu yayınladı. O sırada diğer bazı sıkıştırma formatları ortaya çıksa da, JPEG'in sonunda küresel bir standart haline gelmesinin nedeni, telifsiz lisans sistemiydi. JPEG kayıplı bir sıkıştırma yöntemi kullanır, bu işleme işlemi bazı insan gözlerini yok eder, renkteki ince değişiklikler gibi içeriği algılayamaz. Aslında, kayıplı sıkıştırma fikri 1992'de doğan bir başka büyük teknik başarıyı da etkiledi: mp3. Bu ses dosyası formatı aynı zamanda insan kulağı tarafından duyulamayan veri bitlerini atarak sesin ağırlık kaybetmesine yardımcı olur. Aaron Mak

Mozaik tarayıcı

Yıl: 1993

Web doğduğunu bildiğimiz şekliyle

MakeImage (dsp, veri, genişlik, yükseklik, derinlik, img_info, klip) Ekran * dsp; işaretsiz karakter * veri; int genişlik, yükseklik; int derinlik; ImageInfo * img_info; int clip; {int linepad, shiftnum; int shiftstart, shifttop , shiftinc; int bytesperline, bpp; int temp; int w, h; XImage * newimage; unsigned char * bit_data, * bitp, * datap; Visual * theVisual; int bmap_order; işaretsiz uzun c; int rshift, gshift, bshift; #ifdef YENİ anahtar (bpp = bits_per_pixel (dsp, derinlik)) # else anahtarı (derinlik)

Yukarıdakiler, 2.7 sürümündeki kodun bir parçasıdır.

Önceki tarayıcılar çok hantal olma eğilimindeydi ve metni iyi işleyebilseler de, kullanıcıları resimleri ayrı bir pencerede görüntülemeye zorladılar. Marc Andreessen liderliğindeki Mosaic teknik ekibi, görüntüleri ve metni aynı anda görüntüleyebilen bir tarayıcı oluşturmayı umuyor. Web'i geleneksel dergi veya gazetelere daha benzer hale getirmeyi planlıyorlar. Bu hareket aynı zamanda HTML standartlarının hızlı bir şekilde yayılmasını sağladı ve dünyanın dört bir yanındaki web yöneticilerini sitelerini daha havalı göstermek için aktif olarak daha fazla etiket kullanmaya teşvik etti. (Aslında, o zamanki çerçeve görüntüleme kompozisyonu klasik bir görsel sembol haline geldi.) Clive Thompson

Piksel izleme

Yıl: 1993

Modern veri toplama bu görünmez görüntülerle başlar

< img height = "1" width = "1" style = "display: none" src = "https://www.facebook.com/tr?id=166975463695820ev=PageViewnoscript=1" / >

Facebook'un PageView piksel takibi.

Bu küçük HTML parçaları çok fazla görünmüyor, ancak günümüzün dijital reklamcılığının temel taşlarıdır ve ayrıca gözetim, medya entegrasyonu ve hatta yanıltıcı bilgiler gibi modern sorunlara yol açmıştır.

1990'ların başlarında, web tasarımcıları sayfa düzenini ayarlamak için şeffaf tek pikselli görüntüler kullandılar. Ancak o sırada bilgisayarın web sayfasındaki her resmi, içindeki her piksel de dahil olmak üzere indirmesi gerekiyordu. 1993'te şirketler, piksel indirme etkinliklerini izleyerek ziyaretçilerin kim ve nerede olduğunu anlamak ve kullanıcının tarayıcısında indirilen belirli bir çerezi tetiklemek için bu mekanizmayı kullanmaya başladı. Bu çerez aracılığıyla, reklamverenler birden çok web sitesindeki belirli kullanıcıları izleyebilir.

Piksel izlemenin başarısı doğrudan Facebook'un her web sitesine yerleştirilebilen ve kullanıcıları takip edebilen "Beğen" düğmesini doğurdu. Böylesine büyük ölçekli bir veri toplama sistemi, Facebook'u her yıl geleneksel medya şirketlerinden milyarlarca dolar gelir elde eden son derece başarılı bir reklamcı haline getirdi. Geleneksel gazeteciliğin azalmasıyla, hedeflenen yanıltıcı bilgiler çok sayıda ortaya çıkmaya başladı ve gözetim temelli iş modelleri sonsuza dek ortaya çıktı. Sara Wachter-Boettcher, "Technical Wrong: Sexist Apps, Biased Algorithms, and Other Toxic Tech" adlı kitabın yazarı

Robots.txt

Yıl: 1994

Küçük bir aracın arama ve diğer birçok alan üzerinde büyük etkisi vardır

Kullanıcı aracısı: Mediapartners-GoogleDisallow: Kullanıcı aracısı: TruliaBotDisallow: / Kullanıcı aracısı: * İzin verme: /search.html Kullanıcı aracısı: * İzin verme: / yorumlar / * Kullanıcı aracısı: Mediapartners-Google * İzin verme:

Kendi robots.txt dosyamız.

Google aramayı kullandıysanız, böyle bir durumla karşılaşmış olmalısınız: sayfada "Bu web sitesinin robots.txt dosyası nedeniyle ilgili sonuç açıklaması mevcut değil." Sonuçta, herkes web sitesi içeriğinin doğrudan arama motorları tarafından listelenmesini istemiyor. , Böylece web sitesine bir robots.txt dosyası ekleyebilir ve web içeriği sınıflandırmasından sorumlu robotlardan (veya tarayıcılardan) içeriğini doğrudan görüntülemek yerine web sitesini atlamalarını isteyebiliriz. Web sitesi içeriğini gizleme konusundaki bu güçlü yetenek, robots.txt dosyasını en tartışmalı kod parçacıklarından biri haline getirerek telif hakkı, bilgisayar korsanlığı, yasadışı izinsiz giriş ve haksız fiil yasasıyla ilgili çok sayıda davaya neden oldu. 2009 yılında, Dokuzuncu Daire Baş Yargıcı Alex Kozinski, bunun için bir adli suistimal soruşturması bile aldı. Amanda Levendowski, Georgetown Hukuk Fakültesi Fikri Mülkiyet ve Bilgi Politikası Bölümü Direktörü

Vicky

Yıl: 1994

Wikipedia'nın doğuşunun önünü açtı

alt AsLink {local ($ num) = (@_); local ($ ref) = $ old {"r $ num"}; tanımlı $ ref? ($ ref = ~ /\.(?:gif|jpg|jpeg | png) $ / i? " < img src = \ "$ ref \" > ":" < a href = \ "$ ref \" > < \ / a > "):" ";}

WikiWikiWeb WikiBase en son 13 Haziran 2000'de düzenlendi.

Ward Cunningham wiki'yi ilk olarak kendi web sitesi WikiWikiWeb aracılığıyla icat etti. Ona göre WikiWikiWeb, bilgi paylaşımının en basit yolunu temsil ediyor. Parantez içeren temel bir biçimlendirme dili kullanıyor, kelimeleri boşluksuz olarak birbirine bağlayabiliyor ve düzenlenebilen, güncellenebilen ve organize edilebilen sayfalar arası bağlantıları belirtmek için metnin etrafına parantezler ekliyor Bilgi-Bugün, çeşitli Wiki web siteleri (2001'de başlatılan Wikipedia dahil) hala bu sistemi yaygın olarak kullanmaktadır. Bu erişilebilir biçim, wiki'leri güvenlik açıklarını izlemekten çevrimiçi notlar yayınlamaya kadar birçok önemli çevrimiçi etkinlik için tercih edilen işbirliği aracı yapar. Ancak diğer çevrimiçi düzenlenebilir içerikler gibi, wiki sistemi de son derece savunmasızdır ve kullanıcılar genellikle hangi içeriğin yayınlanıp yayınlanmaması gerektiği konusunda şiddetli tartışmalar yaşarlar. Bu nedenle Wikipedia, konuşma sayfalarının nasıl yönetileceği ve düzenleneceği ve yeni bilgilerin nasıl ekleneceği konusunda net kurallar eklemeye karar verdi. Nisan Glaser

İlk pop-up reklam

Yıl: 1990'ların ortası

İnternetin belası bundan kaynaklanıyor

window.open ('https://www.slate.com/')

Yukarıdaki kod, belirli bir url ile yeni bir pencere açacaktır.

Arkadaşlarımın çoğu pop-up reklamlara aşina olmalı, çünkü "Ejderha Kılıcı Slay, Tıkla ve Gönder" gibi içerikler neredeyse çevrimiçi hayatımızın sabit bir parçası haline geldi.

Yirmi yıldan fazla bir süre önce, kullanıcı tarafından istenen sayfa açıldığında başka bir küçük web tarayıcısı penceresi açacak bir kod parçası yazdım. Bu yeni pencere, bugün baş ağrısına neden olan pop-up reklamları temsil ediyor. Önümüzdeki birkaç yıl içinde, pop-up reklamların İnternette hızla yayılmaya başladığını ve İnternet alanındaki en kötü ve en müdahaleci reklam yöntemi haline geldiğini görünce dehşete düştüm.

O zamanlar pop-up reklamlar geliştirmenin nedeni çok basitti: Şirketim Tripod, insanların ihtiyaç duydukları herhangi bir içeriği ücretsiz bir ana sayfada yayınlamalarına izin verdi. Bu hizmeti sübvanse etmek için reklam yatırımına başladık ama sorun reklam verenlerin ana sayfada verdiğimiz içeriği beğenmemesi. Bu nedenle, reklam içeriğini kullanıcı içeriğinden ayırmaya karar verdik.Bu pop-up reklamcılığın kökenidir.

Pop-up reklamların iyi bir ses olmadığını biliyorum ve bunu ilk denediğimde çok iyi biliyordum. Ama bu bir hırsız gemisi ve bindikten sonra inmesi zor. Yani sadece bunun olmasını izleyebilir ve ardından eğilimi takip edebiliriz.

Kendi elimi doğuran bu canavarın doğumundan bu yana kitaplar da yayınladım, bir iş kurdum ve bir üniversitede öğretmenlik yaptım. Ama sonunda hatırlayacağım tek şey pop-up reklam olacak. Şimdiye kadar sık sık hakaret alıyorum. Ethan Zuckerman, Kamu Medyası Bölümü Dekanı, Massachusetts Teknoloji Enstitüsü

Tişörtleri yasa dışı bir meta yapan bir kod parçası

Yıl: yaklaşık 1995

Dil: Perl, kod aktivizminin ilk eylemlerinden biri

#! / bin / perl -s-- -export-a-crypto-system-sig -RSA-3-line-PERL $ m = unpack (H. $ w, $ m. "\ 0" x $ w), $ _ = `echo" 16do $ w 2 + 4Oi0 $ d * - ^ 1SX $ k "\ EszlXx ++ p | dc`, s / ^. | \ W // g, baskı paketi ('H *', $ _) okurken (STDIN, $ m, ($ w = 2 * $ d-1 + uzunluk ($ n) ~ 1) / 2)

(Mühimmat T-Shirt Ana Sayfası)

Gömlekte "Uyarı: Bu gömlek bir silah ürünüdür ve Amerika Birleşik Devletleri'nden ihraç edilemez veya yabancı vatandaşlara sergilenemez."

RSA perl T T James Grimmelmann

PageRank

1996

numpy'yi np olarak içe aktar def pagerank(M, num_iterations=100, d=0.85): N = M.shape v = np.random.rand(N, 1) v = v / np.linalg.norm(v, 1) iteration = 0 while iteration < num_iterations: iteration += 1 v = d * np.matmul(M, v) + (1 - d) / N return v

PageRank PageRank Larry Page Sergey Brin Clive Thompson

GeoCities

JSFX.FireSpark.prototype.changeColour = function(){ var colour=""; r2= Math.random()*255; g2= r2; b2= 0; if(!(r2 | g2 | b2)) { r2=255; g2=255; b2=0; } colour = "#" + dec2hex(r2) + dec2hex(g2) + dec2hex(b2); this.setBgColor(colour);}

( Roy Whittle )

Douglas Englebart Bill English

GeoCities Web GeoCities WYSIWYG GeoCities Nikki Stevens,

RSS

Yıl: 1999

< ?xml version="1.0" encoding="UTF-8" ? > < rss version="2.0" > < channel > < Başlık > RSS Title < /Başlık > < description > This is an example of an RSS feed < /description > < bağlantı > < /link > < lastBuildDate > Mon, 06 Sep 201000:01:00 +0000 < /lastBuildDate > < pubDate > Sun, 06 Sep 200916:20:00 +0000 < /pubDate > < ttl > 1800 < /ttl > < eşya > < Başlık > Example entry < /Başlık > < description > Here is some text containing an interesting description. < /description > < bağlantı > < /link > < guid isPermaLink="false" > 7bd204c6-1655-4c27-aeee-53f933c5395f < /guid > < pubDate > Sun, 06 Sep 200916:20:00 +0000 < /pubDate > < /item > < /channel > < /rss >

rss 2005 Google Reader 2013 RSS 1.0 Aaron Wartz RSS Google Reader RSS David S. Levine,

Yıl: 1999

1999 9 23 NASA 1.25 NASA

Charles Duan

2000-2001

AI P.W. Singer Wired for War: The Robotics Revolution and Conflict in the 21st Century

Roomba

2002

(define-behavior (bounce :start-when (or (bump?) bounce-trigger? ) :abort-when (bump-edge?) :onetime? t ))

(iRobot)

Roomba 17 Roomba Roomba Roomba Lowen Liu, Slate

2003

= max(drc(i, :)/_avg_thruput(i, :));avg_thruput(i+1, :) = (i/(i+1))*avg_thruput(i, :);avg_thruput(i+1, b_user) = (i/(i+1))*avg_thruput(i, b_user)+drc(i, b_user)/(i+1);

2002 9 10 6449490

3g 4g Lav Varshney

Bitcoin

Yıl: 2008

double AttackerSuccessProbability(double q, int z){ double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k < = z; k++) { double poisson = exp(-lambda); for (i = 1; i < = k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum;}

2008 2777 Elena Botella

Conficker

2008102009

; BOOL __cdecl HasUkrainianLocale() push ebx mov ebx, ds:GetKeyboardLayoutList push ebp push esi xor ebp, ebp push ebp push ebp call ebx mov esi, eax cmp esi, ebp jz short loc_37680A

Tillmann Werner Felix Leder Conficker

1500 Conficker Windows IP Conficker Conficker 2018 35 Jane C. Hu

Yıl: 2009

{"__typename":"PageLikeAction","action_type":"LIKE","label":{"text":"Like"}

2019 9 Facebook.com

Facebook Facebook Facebook Ari Ezra Waldman

HTTP STRICT TRANSPORT SECURITY

2009

Strict-Transport-Security: max-age=31536000; includeSubDomains

HTTP HTTPS http strict transport securityHSTS Web https://google.comHSTS

HSTS 11.1% 2015 19 HSTS whiteouse.gov aids.gov donotcall.gov Rusty D. Pickens

Heartbleed

20122014

buffer = OPENSSL_malloc(1 + 2 + payload + padding);bp = buffer; /* Enter response type, length and copy payload */*bp++ = TLS1_HB_RESPONSE;s2n(payload, bp);memcpy(bp, pl, payload);bp += payload;/* Random padding */RAND_pseudo_bytes(bp, padding);

( Naked Security )

2014 OpenSSL OpenSSL dropboxtwitteryahoo github Heartbleed Heartbleed Josephine Wolff,

737 Max

2017

2018 10 610 4 20 737 Max Mar Hicks Programmed Inequality

Orijinal bağlantı:

https://slate.com/technology/2019/10/consequential-computer-code-software-history.html

- Bitiş -

Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " THU Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.

Al-al-al patlak verdi, 10.000 genç cevapladı Deep Krypton
önceki
Yol gitti ve kırsal alan "canlı"! Meizhou'nun Meijiang Bölgesi, "Dört İyi Kırsal Yolun" inşasını teşvik ediyor
Sonraki
Google "Project Nightingale" ifşa oldu: milyonlarca özel tıbbi veriyi gizlice toplayın
İstatistik Bürosu: Ekim 2019'da 70 büyük ve orta ölçekli şehirde ticari konut satış fiyatlarındaki değişiklikler
Video Haydutlar masum yaşlı adamı öldürdü, Hong Kong vatandaşları kendiliğinden yas tutuyor: Şiddetten korkmayalım
2019 Frontier Information Technology Innovation Forum başarıyla gerçekleştirildi
İşe alınan "liderin" "dönem sonu" sınavını nasıl tamamladığını görün
Tax Blue · Innocent Heart | Li Cheng: Asıl niyet, bir tür sıradan sebattır
GitHub'da 30.000'den fazla yıldızla en kapsamlı test soru bankası: Bilgisayar mülakat soruları tek seferde toplanır
Bu ulusal etkinlik Zhongshan'a geldi ve bilimsel uygunluk, 10.000'den fazla öğrenciye fayda sağlayan 5 ilk ve orta okula girecek
Veri madenciliğinin lideri Profesör Han Jiawei: Yapılandırılmamış metinden faydalı bilgiye nasıl geçilir?
361 derecelik dalmanın ardında: yeni denetçi ile eski denetçi arasındaki şeyler
Çeteler masum yaşlı adamları öldürdü, Hong Kong vatandaşları kendiliğinden yas tuttu: Şiddetten korkmayalım
Üzgünüm Zhao Yuanyuan: Taobao canlı yayını çok sıcak, koruyucu renginizi 270 makaleden çıkardık
To Top