Umlando wabahleli bohlelo nonjiniyela (ingxenye 1)

Umlando wabahleli bohlelo nonjiniyela (ingxenye 1)

Lokhu ukukhethwa kwezindaba ezivela ku-inthanethi mayelana nokuthi izimbungulu kwesinye isikhathi zinokubonakaliswa okungakholeki ngokuphelele. Mhlawumbe kukhona okumele ukutshele nawe.

Ukungezwani nemoto ku-vanilla ice cream

Indaba yonjiniyela abaqondayo ukuthi okusobala akuyona impendulo ngaso sonke isikhathi, nokuthi kungakhathaliseki ukuthi amaqiniso angase abonakale ekude kangakanani, aseyiqiniso. I-Pontiac Division yeGeneral Motors Corporation ithole isikhalazo:

Sekungokwesibili nginibhalela, futhi anginisoli ngokungaphenduli, ngoba kuzwakala sengathi niyahlanya. Umndeni wethu unesiko lokudla u-ayisikhilimu njalo ebusuku ngemva kwesidlo sakusihlwa. Izinhlobo ze-ayisikhilimu zishintsha njalo, futhi ngemva kokudla kwakusihlwa, umndeni wonke ukhetha ukuthi iyiphi i-ayisikhilimu ongayithenga, ngemva kwalokho ngiya esitolo. Ngisanda kuthenga i-Pontiac entsha futhi kusukela lapho uhambo lwami lokuthola u-ayisikhilimu luye lwaba yinkinga. Uyabona, njalo uma ngithenga u-ayisikhilimu we-vanilla futhi ngibuya esitolo, imoto ayizuli. Uma ngiletha omunye u-ayisikhilimu, imoto iqala ngaphandle kwenkinga. Ngifuna ukubuza umbuzo ongathi sína, kungakhathaliseki ukuthi kuzwakala kuwubuwula kangakanani: “Yini ngePontiac eyenza ingaqali lapho ngiletha u-ayisikhilimu we-vanilla, kodwa iqale kalula uma ngiletha enye ukunambitheka kuka-ayisikhilimu?”

Njengoba ungacabanga, umongameli wophiko ubenokungabaza ngale ncwadi. Nokho, uma kwenzeka, ngathumela unjiniyela ukuba azohlola. Wamangala lapho ehlangabezwa indoda ecebile, efundile ehlala endaweni enhle. Bavumelana ngokuthi bahlangane ngokushesha ngemva kwesidlo sakusihlwa ukuze bobabili baye esitolo bayofuna u-ice cream. Ngalobo busuku kwakuyi-vanilla, futhi lapho bebuyela emotweni, yayingaqali.

Unjiniyela wafika ezinye kusihlwa ezintathu. Isikhathi sokuqala u-ayisikhilimu kwakungushokoledi. Isuke imoto. Okwesibili kwaba no-ayisikhilimu wama-strawberry. Isuke imoto. Ngobusuku besithathu wacela ukuthatha i-vanilla. Imoto ayizange iqale.

Ecabanga ngendlela enengqondo, unjiniyela wenqaba ukukholelwa ukuthi imoto yayingezwani ne-vanilla ice cream. Ngakho-ke, ngavumelana nomnikazi wemoto ukuthi uzoqhubeka nokuvakasha kwakhe kuze kube yilapho ethola isisombululo sale nkinga. Futhi endleleni, waqala ukubhala amanothi: wabhala yonke imininingwane, isikhathi sosuku, uhlobo lukaphethiloli, isikhathi sokufika nokubuya esitolo, njll.

Ngokushesha unjiniyela waqaphela ukuthi umnikazi wemoto wayechitha isikhathi esincane ethenga i-vanilla ice cream. Isizathu kwakuwukuhlelwa kwempahla esitolo. U-ayisikhilimu we-vanilla wawuthandwa kakhulu futhi wawugcinwa efrijini elihlukile ngaphambili kwesitolo ukuze kube lula ukutholakala. Futhi zonke ezinye izinhlobo zazingemuva kwesitolo, futhi kwathatha isikhathi esiningi ukuthola uhlobo olufanele nokukhokha.

Manje umbuzo wawungokanjiniyela: kungani imoto ingaqali ukube sekudlule isikhathi esincane kusukela ngesikhathi injini icishiwe? Njengoba inkinga kwakuyisikhathi, hhayi i-vanilla ice cream, unjiniyela wathola impendulo ngokushesha: kwakuyisikhiya segesi. Kwenzeka njalo kusihlwa, kodwa lapho umnikazi wemoto echitha isikhathi esiningi efuna u-ayisikhilimu, injini yakwazi ukupholisa ngokwanele futhi yaqala kalula. Futhi lapho indoda ithenga i-vanilla ice cream, injini yayisashisa kakhulu futhi isikhiya segesi singenaso isikhathi sokuncibilika.

Ukuziphatha: Ngisho nezinkinga ezihlanya ngokuphelele ngezinye izikhathi zingokoqobo.

crash Bandicoot

Kubuhlungu ukuzwa lokhu. Njengomhleli, uyajwayela ukusola ikhodi yakho kuqala, okwesibili, okwesithathu... futhi endaweni ethile endaweni yezinkulungwane eziyishumi usola umdidiyeli. Futhi ngokuqhubekayo phansi ohlwini usuvele usola okokusebenza.

Nansi indaba yami mayelana ne-hardware bug.

Ngomdlalo we-Crash Bandicoot, ngibhale ikhodi ukuze ngiyilayishe futhi ngiyilondoloze kumemori khadi. Kumthuthukisi onjalo womdlalo wesmug, bekufana nokuhamba ngezinyawo epaki: Bengicabanga ukuthi umsebenzi uzothatha izinsuku ezimbalwa. Kodwa-ke, ngigcine ngilungisa iphutha amasonto ayisithupha. Endleleni, ngaxazulula ezinye izinkinga, kodwa njalo ezinsukwini ezimbalwa ngangibuyela kule khodi amahora ambalwa. Kwakubuhlungu.

Uphawu lwalubukeka kanje: uma ulondoloza ukudlala kwamanje komdlalo futhi ufinyelela imemori khadi, yonke into cishe ihlezi ihamba kahle... Kodwa ngezinye izikhathi ukuphelelwa yisikhathi komsebenzi wokufunda noma wokubhala ngaphandle kwesizathu esisobala. Ukurekhoda okufushane kuvame ukulimaza imemori khadi. Uma umdlali ezama ukulondoloza, akagcini nje ngokuhluleka ukulondoloza, kodwa futhi ucekela phansi imephu. Crap.

Ngemva kwesikhashana, umdidiyeli wethu kwaSony, uConnie Bus, waqala ukwethuka. Asikwazanga ukuthumela igeyimu nalesi siphazamisi, futhi emasontweni ayisithupha kamuva angizange ngiqonde ukuthi yini eyayibangela inkinga. Ngo-Connie, sithinte abanye abathuthukisi be-PS1: ingabe ukhona ohlangabezane nokufana okufanayo? Cha. Akekho owayenezinkinga ngememori khadi.

Uma ungenayo imibono yokulungisa iphutha, okuwukuphela kwendlela esele iwukuba "uhlukanise futhi unqobe": susa ikhodi eyengeziwe ohlelweni olunephutha kuze kube yilapho kusele isiqeshana esincane esisabangela inkinga. Okusho ukuthi, unqamula uhlelo ngocezu kuze kube yilapho ingxenye equkethe isiphazamisi isala.

Kodwa indaba iwukuthi, kunzima kakhulu ukusika izingcezu emdlalweni wevidiyo. Isetshenziswa kanjani uma ukhiphe ikhodi elingisa amandla adonsela phansi? Noma ukudweba izinhlamvu?

Ngakho-ke, kufanele simiselele wonke amamojula ngama-stubs azenza sengathi enza okuthile okuwusizo, kodwa empeleni enze into elula kakhulu engakwazi ukuqukatha amaphutha. Kufanele sibhale izinduku ezinjalo ukuze umdlalo usebenze okungenani. Lena inqubo enensa futhi ebuhlungu.

Ngamafuphi, ngikwenzile. Ngisuse izingcezu eziningi zekhodi ngaze ngasala nekhodi yokuqala elungisa isistimu ukuze iqalise igeyimu, iqalise i-hardware yokunikezela, njll. Yiqiniso, kulesi sigaba angikwazanga ukudala imenyu yokulondoloza nokulayisha, ngoba kuzodingeka ngidale i-stub yayo yonke ikhodi yehluzo. Kodwa ngingazenza umsebenzisi ngisebenzisa (esingabonakali) ukugcina nokulayisha isikrini bese ngicela ukulondoloza bese ngibhalela kumemori khadi.

Lokhu kwangishiya nocezu oluncane lwekhodi olwalusenenkinga engenhla - kodwa lwalusenzeka ngokungahleliwe! Ngokuvamile konke kwakusebenza kahle, kodwa ngezinye izikhathi kwakukhona amaphutha. Ngisuse cishe yonke ikhodi yegeyimu, kodwa iphutha lalisaphila. Lokhu kwakudida: ikhodi esele ayenzanga lutho.

Ngesinye isikhathi, cishe ngehora lesithathu ekuseni, ngafikelwa umcabango. Imisebenzi yokufunda nokubhala (yokokufaka/okukhiphayo) ibandakanya izikhathi eziqondile zokusebenza. Uma usebenza nge-hard drive, imemori khadi noma imojula ye-Bluetooth, ikhodi yezinga eliphansi enesibopho sokufunda nokubhala yenza kanjalo ngokuhambisana nokushaya kwewashi.

Ngosizo lwewashi, idivayisi engaxhumekile ngokuqondile kusiphrosesa ivunyelaniswa nekhodi esebenza kuphrosesa. Iwashi linquma izinga le-baud—isivinini ukwaziswa okudluliselwa ngaso. Uma kunokudideka ngezikhathi, khona-ke ihadiwe noma isoftware, noma zombili, nazo ziyadideka. Futhi lokhu kubi kakhulu, ngoba idatha ingonakala.

Kuthiwani uma okuthile kukhodi yethu kudida izikhathi? Ngihlole yonke into ehlobene nalokhu kukhodi yohlelo lokuhlola futhi ngabona ukuthi sisetha isibali sikhathi esihlelekayo ku-PS1 siye ku-1 kHz (amakhikhi angu-1000 ngomzuzwana). Lokhu kuningi; ngokuzenzakalelayo, lapho ikhonsoli iqala, isebenza ku-100 Hz. Futhi imidlalo eminingi isebenzisa le mvamisa.

U-Andy, umthuthukisi wegeyimu, usethe isibali sikhathi sibe ngu-1 kHz ukuze ukunyakaza kubalwe ngokunembe kakhudlwana. U-Andy uvame ukweqa, futhi uma silingisa amandla adonsela phansi, sikwenza ngokunembe ngangokunokwenzeka!

Kodwa kuthiwani uma ukusheshisa isibali sikhathi ngandlela thile kuthinte isikhathi sonke sohlelo, ngakho-ke iwashi elilawula izinga le-baud lememori khadi?

Ngiphawule ngekhodi yesibali sikhathi. Iphutha aliphindanga libe khona. Kodwa lokhu akusho ukuthi sikulungisile, ngoba ukwehluleka kwenzeke ngokungahleliwe. Ukube ngibe nenhlanhla nje?

Ezinsukwini ezimbalwa kamuva ngazama futhi ngohlelo lokuhlola. Isiphazamisi asiphindanga. Ngibuyele ku-codebase yegeyimu egcwele futhi ngalungisa ikhodi yokulondoloza nokulayisha ukuze isibali-sikhathi esihlelekayo sisethe kabusha kunani laso langempela (100Hz) ngaphambi kokufinyelela kumemori khadi, bese ngisetha kabusha emuva ku-1kHz. Akusekho ukuphahlazeka.

Kodwa kungani lokhu kwenzeka?

Ngabuyela ohlelweni lokuhlola futhi. Ngizamile ukuthola iphethini ethile lapho kwenzeka iphutha ngesibali-sikhathi esingu-1 kHz. Ekugcineni ngabona ukuthi iphutha lenzeka lapho othile edlala nesilawuli se-PS1. Njengoba ngangingavamile ukwenza lokhu ngokwami ​​- kungani ngingadinga isilawuli lapho ngihlola londoloza futhi ngilayishe ikhodi? - Angizange ngikubone lokhu kuncika. Kodwa ngolunye usuku omunye wabaculi bethu wayelinde ukuthi ngiqede ukuhlola - mhlawumbe ngangiqalekisa ngaleso sikhathi - futhi ngokwesaba ngisonta isilawuli ezandleni zakhe. Kwenzeke iphutha. “Yima, ini?!” Hhayi-ke, kwenze futhi!”

Lapho ngibona ukuthi lezi zenzakalo ezimbili zazixhumene, ngakwazi ukukhiqiza kabusha iphutha kalula: Ngaqala ukurekhoda kumemori khadi, ngahambisa isilawuli, futhi ngayilimaza imemori khadi. Kimina kwakubukeka njengesiphazamisi se-hardware.

Ngafika kuConnie ngamtshela ngokuthola kwami. Udlulisele ulwazi komunye wonjiniyela abaklame i-PS1. “Akunakwenzeka,” ephendula, “akunakuba inkinga yehardware.” Ngacela uConnie ukuba asihlelele ingxoxo.

Unjiniyela wangibiza futhi saxabana ngesiNgisi sakhe esiphukile kanye nesiJapane sami (esiphukile kakhulu). Ekugcineni ngathi, “Ake ngithumele uhlelo lwami lokuhlola imigqa engu-30 lapho ukuhambisa isilawuli kubangela iphutha.” Wavuma. Uthe bekuwukumosha isikhathi nokuthi ubematasatasa esebenza kuphrojekthi entsha, kodwa uzovuma ngoba besingumthuthukisi obaluleke kakhulu wakwaSony. Ngalungisa uhlelo lwami lokuhlola ngaluthumela kuye.

Ngobusuku obulandelayo (sasiseLos Angeles futhi wayeseTokyo) wangishayela ucingo futhi waxolisa ngobuqotho. Bekuyinkinga yehadiwe.

Angazi ukuthi yini ngempela isiphazamisi, kodwa kulokho engikuzwe endlunkulu yakwaSony, uma usetha isibali sikhathi sibe yinani eliphakeme ngokwanele, siphazamise izingxenye zebhodi lomama eliseduze nekristalu yesikhathi. Esinye sazo kwakuyisilawuli se-baud rate sememori khadi, esasibeka nesilinganiso se-baud kubalawuli. Angiyena unjiniyela, ngakho-ke kungenzeka ukuthi ngimoshe okuthile.

Kodwa okubalulekile ukuthi kube nokuphazamiseka phakathi kwezingxenye kubhodi lomama. Futhi lapho udlulisela idatha ngesikhathi esisodwa ngembobo yesilawuli kanye nembobo yekhadi lememori elinesibali sikhathi esisebenza ngo-1 kHz, amabhithi alahlekile, idatha yalahleka, futhi ikhadi lonakala.

Izinkomo ezimbi

Ngawo-1980, umeluleki wami u-Sergei wabhala isofthiwe ye-SM-1800, i-Soviet clone ye-PDP-11. Le microcomputer isanda kufakwa esiteshini sesitimela eduze kwaseSverdlovsk, isikhungo sezokuthutha esibalulekile e-USSR. Uhlelo olusha lwaklanyelwe umzila wezinqola kanye nethrafikhi yezimpahla. Kodwa ibiqukethe isiphazamisi esicasulayo esiholele ekuphahlazekeni okungahleliwe nokuphahlazeka. Ukuwa kwakuhlale kwenzeka lapho othile eya ekhaya kusihlwa. Kodwa naphezu kophenyo olunzulu ngakusasa, ikhompuyutha yasebenza kahle kukho konke ukuhlolwa okwenziwa ngesandla nokuzenzakalelayo. Lokhu ngokuvamile kubonisa isimo somjaho noma esinye isiphazamisi sokuncintisana esenzeka ngaphansi kwezimo ezithile. Ekhathele izingcingo ebusuku kakhulu, uSergei wanquma ukufika ekugcineni, futhi okokuqala, qonda ukuthi yiziphi izimo egcekeni le-marshalling eziholele ekulimazeni kwekhompyutha.

Okokuqala, waqoqa izibalo zakho konke ukuwa okungachazwanga futhi wadala igrafu ngosuku nesikhathi. Iphethini yayisobala. Ngemva kokubuka ezinye izinsuku ezimbalwa, uSergei waqaphela ukuthi wayengabikezela kalula isikhathi sokuhluleka kwesistimu yesikhathi esizayo.

Ngokushesha wathola ukuthi ukuphazamiseka kwenzeka kuphela lapho isiteshi sihlunga izinkomo ezigcwele izitimela ezivela enyakatho ye-Ukraine nasentshonalanga yeRussia zilibangise esilaheni esiseduze. Lokhu kukodwa kwakuxakile, ngoba indawo yokubulala yayihlinzekwa ngamapulazi aseduze kakhulu, eKazakhstan.

Isikhungo samandla enuzi saseChernobyl saqhuma ngo-1986, futhi ukuqubuka kwemisebe kwenza izindawo ezizungezile zingahlali muntu. Izindawo ezinkulu enyakatho ye-Ukraine, Belarus nasentshonalanga yeRussia zangcoliswa. Esola amazinga aphezulu emisebe ezinqoleni ezifikayo, uSergei wasungula indlela yokuhlola le mbono. Inani labantu lalinqatshelwe ukuba nama-dosimeters, ngakho uSergei wazibhalisa namadoda amaningana ezempi esiteshini sesitimela. Ngemva kweziphuzo ezimbalwa ze-vodka, wakwazi ukukholisa isosha ukuthi lilinganise izinga lemisebe kwelinye lamakalishi asolisayo. Kwavela ukuthi izinga laliphakeme izikhathi eziningana kunamanani avamile.

Akukhona nje ukuthi izinkomo zazikhipha imisebe eminingi, izinga layo laliphezulu kangangokuthi kwaholela ekulahlekelweni okungahleliwe kwezingcezu zenkumbulo ye-SM-1800, eyayisakhiweni esiseduze nesiteshi.

Kwakukhona ukuntuleka kokudla e-USSR, futhi iziphathimandla zanquma ukuxuba inyama yaseChernobyl nenyama evela kwezinye izifunda zezwe. Lokhu kwenze kwaba nokwenzeka ukunciphisa izinga eliphelele le-radioactivity ngaphandle kokulahlekelwa izinsiza ezibalulekile. Ngemva kokufunda ngalokhu, uSergei wagcwalisa ngokushesha imibhalo yokuthuthela kwelinye izwe. Futhi ukuphahlazeka kwamakhompiyutha kuye kwaziyeka lapho izinga lemisebe lehla ngokuhamba kwesikhathi.

Ngamapayipi

Kudala, i-Movietech Solutions yakha isofthiwe yamabhayisikobho, eyenzelwe ukubalwa kwezimali, ukuthengiswa kwamathikithi nokuphatha jikelele. Inguqulo ye-DOS yohlelo lokusebenza oluphambili yayidume kakhulu phakathi kwamaketanga etiyetha yama-movie amancane naphakathi nendawo eNyakatho Melika. Ngakho-ke akumangazi ukuthi ngenkathi kumenyezelwa inguqulo ye-Windows 95, ehlanganiswe nezikrini zokuthinta zakamuva kanye nama-kiosks okuzisiza, futhi ifakwe zonke izinhlobo zamathuluzi okubika, yasheshe yaduma, nayo. Isikhathi esiningi isibuyekezo besihamba ngaphandle kwezinkinga. Abasebenzi bendawo be-IT bafake amathuluzi amasha, idatha edlulisiwe, futhi ibhizinisi laqhubeka. Ngaphandle kwalapho kungapheli. Uma lokhu kwenzeka, inkampani yayithumela uJames, ogama lakhe lingu "The Cleaner."

Nakuba isidlaliso siphakamisa uhlobo olubi, okokuhlanza kuyinhlanganisela nje yomfundisi, isifaki kanye ne-jack-of-all-trades. UJames wayechitha izinsuku ezimbalwa endaweni yekhasimende ehlanganisa zonke izingxenye, bese echitha ezinye izinsuku ezimbalwa efundisa abasebenzi ukuthi bangalusebenzisa kanjani uhlelo olusha, bexazulula noma yiziphi izinkinga zezingxenyekazi zekhompuyutha ezaphakama futhi ngokuyisisekelo esiza isofthiwe kusukela ebuntwaneni bayo.

Ngakho-ke, akumangalisi ukuthi phakathi nalezi zikhathi ezimatasatasa, uJames wafika ehhovisi ekuseni, futhi ngaphambi kokuba afike etafuleni lakhe, wabingelelwa umphathi, egcwele i-caffeine ngaphezu kokuvamile.

“Ngesaba ukuthi udinga ukuya e-Annapolis, e-Nova Scotia, ngokushesha okukhulu.” Lonke uhlelo lwabo lwehla, futhi ngemva kobusuku bokusebenza nonjiniyela babo, asikwazi ukuthola ukuthi kwenzekeni. Kubonakala sengathi inethiwekhi yehlulekile kuseva. Kodwa ngemva kokuba uhlelo selusebenze imizuzu embalwa.

— Abazange babuyele ohlelweni oludala? - UJames waphendula ngokungathí sina, nakuba ngokwengqondo evule amehlo ngokumangala.

- Impela: uchwepheshe wabo we-IT "ushintshe izinto eziza kuqala" futhi wanquma ukuhamba neseva yakhe endala. James, bafake isistimu ezindaweni eziyisithupha futhi basanda kukhokhela ukusekelwa kwe-premium, futhi ibhizinisi labo manje seliqhutshwa njengoba lalinjalo ngawo-1950.

Aqonde kancane uJames.

- Lena enye indaba. Kulungile, asiqalise.

Lapho efika e-Annapolis, into yokuqala ayenza kwakuwukuthola inkundla yemidlalo yeshashalazi yokuqala yekhasimende eyayinenkinga. Ebalazweni elithathwe esikhumulweni sezindiza, yonke into yayibukeka ihloniphekile, kodwa indawo ezungeze ikheli olifunayo yayibukeka isolisa. Hhayi i-ghetto, kodwa ikhumbuza ifilimu noir. Lapho uJames epaka onqenqemeni lwedolobha, kwaqhamuka isifebe seza kuye. Uma kubhekwa ubukhulu be-Annapolis, cishe kwakuyiyo yodwa edolobheni lonke. Ukubukeka kwakhe ngokushesha kwamkhumbuza umlingisi odumile owanikela ngocansi ngemali esikrinini esikhulu. Cha, hhayi ngoJulia Roberts, kodwa ngoJon Voight [ukubhekisela kwifilimu ethi "Midnight Cowboy" - cishe. umzila].

Ngemva kokuthumela isifebe endleleni, uJames waya ebhayisikobho. Indawo ezungezile yayingcono, kodwa yayisanikeza umbono wokuthi idilizwa. Hhayi ukuthi uJames wayekhathazeke kakhulu. Uke waya ezindaweni zosizi ngaphambilini. Futhi lena kwakuyiCanada, lapho ngisho nabaphangi babenesizotha ngokwanele ukuthi bathi “ngiyabonga” ngemva kokuthatha isikhwama sakho semali.

Umnyango oseceleni we-cinema wawusendaweni enogwaja. UJames waqonda emnyango wangqongqoza. Ngokushesha laklabalaza lavuleka kancane.

-Ingabe ungumhlanzi? - kwezwakala izwi elihoshayo livela ngaphakathi.

- Yebo, yimina ... ngize ukulungisa konke.

UJames wangena endaweni yokwamukela izivakashi. Ngokusobala bengenakho okunye ababengakwenza, abasebenzi baqala ukunikeza izivakashi amathikithi ephepha. Lokhu kwenza ukubika kwezezimali kube nzima, ingasaphathwa eminye imininingwane ethokozisayo. Kodwa izisebenzi zabingelela uJames ngokukhululeka futhi ngokushesha zamyisa ekamelweni leseva.

Uma uthi nhlá, konke kwakuhamba kahle. UJames wangena kuseva futhi wabheka izindawo ezivamile ezisolisayo. Ayikho inkinga. Nokho, ngenxa yokuqapha okukhulu, uJames wavala iseva, washintsha ikhadi lenethiwekhi, wabuyisela emuva uhlelo. Ngokushesha waqala ukusebenza ngokugcwele. Abasebenzi baphinde baqala ukudayisa amathikithi.

UJames wabiza uMark wamazisa ngalesi simo. Akunzima ukucabanga ukuthi uJames angase afune ukunamathela ukuze abone ukuthi kukhona yini okungalindelekile okwenzekayo. Wehla ezitebhisini waqala wabuza abasebenzi ukuthi kwenzenjani. Ngokusobala uhlelo luyekile ukusebenza. Bacisha bacisha, konke kwasebenza. Kodwa emva kwemizuzu engu-10 uhlelo lwawa.

Ngawo lo mzuzu kwenzeka okufanayo. Kungazelelwe, uhlelo lwamathikithi lwaqala ukuphonsa amaphutha. Abasebenzi baphefumulele phezulu bathathe amathikithi ephepha, uJames aphuthume e-server room. Konke kubukeka kukuhle ngeseva.

Kwabe sekungena omunye wabasebenzi.

- Uhlelo luyasebenza futhi.

Waxakeka uJames ngoba ubengenzanga lutho. Ngokunembayo, akukho okungenza uhlelo lusebenze. Waphuma, wathatha ucingo lwakhe, washayela ucingo lwenkampani yakhe. Ngokushesha isisebenzi esifanayo sangena ekamelweni leseva.

- Uhlelo luphansi.

UJames wabheka kuseva. Iphethini ethokozisayo nejwayelekile yomumo onemibala eminingi idansa esikrinini - amapayipi asonteka ngokuphithizela futhi ahlanganayo. Sonke sisibonile lesi silondolozi sesikrini ngesikhathi esithile. Yayihunyushwa kahle futhi ilutha ngokwezwi nezwi.


UJames wacindezela inkinobho futhi iphethini yanyamalala. Waphuthuma ehhovisi lamathikithi wathi esendleleni wahlangana nesisebenzi sibuyela kuye.

- Uhlelo luyasebenza futhi.

Uma ukwazi ukwenza impama yengqondo, yilokho kanye uJames akwenza. Isihenqo sesikrini. Isebenzisa i-OpenGL. Ngakho-ke, ngesikhathi sokusebenza, idla zonke izinsiza zeprosesa yeseva. Njengomphumela, ucingo ngalunye oluya kuseva luphela ngokuvala isikhathi.

UJames wabuyela ku-server room, wangena, futhi esikhundleni se-screensaver wafaka amapayipi amahle ngesikrini esingenalutho. Okusho ukuthi, esikhundleni se-screensaver edla i-100% yezinsiza zokucubungula, ngifake enye engadli izinsiza. Ngabe sengilinda imizuzu eyi-10 ukuze ngihlole ukuqagela kwami.

Lapho uJames efika endaweni yesinema elandelayo, wayezibuza ukuthi angamchazela kanjani umphathi wakhe ukuthi wayesanda kundiza ibanga elingu-800 km ukuze avale isivikeli sesikrini.

Ukuphahlazeka phakathi nesigaba esithile senyanga

Indaba yangempela. Ngolunye usuku kwavela iphutha le-software elincike esigabeni senyanga. Kube nesimiso esincane esasivame ukusetshenziswa ezinhlelweni ezihlukahlukene ze-MIT ukuze kubalwe ukulinganisa kwesigaba sangempela seNyanga. I-GLS yakhe lo mkhuba ohlelweni lwe-LISP okuthi, lapho ubhala ifayela, likhiphe ulayini onesitembu sesikhathi cishe izinhlamvu ezingu-80 ubude. Bekuyivelakancane ukuthi umugqa wokuqala womlayezo ugcine umude kakhulu bese uholela kulayini olandelayo. Futhi lapho uhlelo lufunda leli fayela kamuva, lwathuka. Ubude bomugqa wokuqala buncike osukwini oluqondile nesikhathi, kanye nobude bencazelo yesigaba ngesikhathi isitembu sesikhathi siphrintwa ngaso. Okusho ukuthi, iphutha lalincike ngokoqobo esigabeni senyanga!

Iphepha lokuqala edition Ifayela leJargon (I-Steele-1983) iqukethe isibonelo somugqa onjalo oholela kusiphazamisi esichaziwe, kodwa umshini wokubhala "wawulungisa". Lokhu sekuchazwe ngokuthi "isiphazamisi sesigaba senyanga".

Nokho, qaphela ngokucabangela. Eminyakeni embalwa edlule, onjiniyela abavela ku-CERN (European Center for Nuclear Research) bahlangabezane namaphutha ekuhloleni okwenziwa eLarge Electron-Positron Collider. Njengoba amakhompyutha acubungula ngenkuthalo inani elikhulu lokwaziswa okukhiqizwa yilo mshini ngaphambi kokuba abonise umphumela kososayensi, abaningi babecabanga ukuthi le software yayizwela ngandlela-thile esigabeni senyanga. Onjiniyela abaningana ababephelelwe ithemba balifinyelela ekugcineni iqiniso. Iphutha livele ngenxa yoshintsho oluncane lwejometri yendandatho engama-27 km ubude ngenxa yokuguquguquka koMhlaba ngesikhathi sokudlula kweNyanga! Le ndaba ingene kumlando wefiziksi njengokuthi "I-Newton's Revenge on Particle Physics" kanye nesibonelo sokuxhumana phakathi kwemithetho elula nendala yefiziksi nemiqondo yesayensi ethuthuke kakhulu.

Ukugeza indlu yangasese kumisa isitimela

Isiphazamisi sehadiwe esingcono kakhulu engake ngezwa ngaso kwakusesitimela esinesivinini esikhulu eFrance. Isiphazamisi siholele ekubhulekeni okuphuthumayo kwesitimela, kodwa kuphela uma bekunabagibeli. Esimweni ngasinye esinjalo, isitimela sasikhishwa emsebenzini, sihlolwe, kodwa akutholakalanga lutho. Wabe esebuyiselwa kulayini, washayeka ngokushesha wama.

Phakathi namasheke, unjiniyela owayehamba ngesitimela waya endlini yangasese. Ngokushesha wageza, BOOM! Isitobhi esiphuthumayo.

Unjiniyela wathinta umshayeli wabuza:

— Ubuwenzani ngaphambi nje kokubhuleka?

- Hhayi-ke, ngehlise ijubane ekwehleni ...

Lokhu kwakuxakile, ngoba ngesikhathi sokusebenza okuvamile isitimela sihamba kancane ekwehleni izikhathi eziningi. Isitimela saqhubekela phambili, kwathi ekwehleni okulandelayo umshayeli waxwayisa:

- Ngizohamba kancane.

Akwenzekanga lutho.

— Wenzeni ngesikhathi sokugcina? - kubuza umshayeli.

- Well... bengisendlini yangasese...

- Hhayi-ke, hamba uye endlini yangasese futhi wenze lokho okwenzile lapho sehla futhi!

Unjiniyela waya endlini yangasese, futhi lapho umshayeli exwayisa: “Ngiyehlisa ijubane,” wawachitha amanzi. Yebo, isitimela sama ngokushesha.

Manje base bekwazi ukukhiqiza kabusha inkinga futhi badinga ukuthola imbangela.

Ngemva kwemizuzu emibili, baqaphela ukuthi ikhebula le-remote control ye-brake injini (isitimela sasinenjini eyodwa ekugcineni ngakunye) yayinqanyuliwe odongeni lwekhabethe likagesi futhi yayilele emshinini odlulisa imali olawula ipulaki yasendlini yangasese... yavulwa, yadala ukuphazamiseka kukhebula lamabhuleki, futhi ukuvikelwa kwesistimu ekuhlulekeni kwamane kwahlanganisa ukubhuleka okuphuthumayo.

Isango elalizonda i-FORTRAN

Ezinyangeni ezimbalwa ezedlule siqaphele ukuthi ukuxhumeka kwenethiwekhi ezweni elikhulu [lokhu kwakuseHawaii] kwakuya kuhamba kancane kakhulu. Lokhu kungathatha imizuzu eyi-10-15 bese kwenzeka ngokuzumayo futhi. Ngemva kwesikhathi esithile, uzakwethu wakhala kimi ngokuthi amanethiwekhi ezwenikazi ngokujwayelekile ayisebenzi. Wayenekhodi ethile ye-FORTRAN eyayidinga ukukopishelwa emshinini osezweni elikhulu, kodwa ayikwazanga ngoba "inethiwekhi ayizange ibambe isikhathi eside ngokwanele ukuze kuqedwe ukulayisha kwe-FTP."

Yebo, kuvele ukuthi ukwehluleka kwenethiwekhi kwenzeka lapho uzakwethu ezama ukufaka i-FTP ifayela elinekhodi yomthombo ku-FORTRAN emshinini osezweni elikhulu. Sizamile ukufaka kungobo yomlando ifayela: labe selikopishwa kahle (kodwa umshini oqondiwe wawungenayo i-unpacker, ngakho-ke inkinga ayizange ixazululwe). Ekugcineni "sahlukanisa" ikhodi ye-FORTRAN yaba izingcezu ezincane kakhulu futhi siyithumela eyodwa ngesikhathi. Izingcezu eziningi zakopishwa ngaphandle kwezinkinga, kodwa izingcezu ezimbalwa azizange zidlule, noma zidlule amaningi imizamo.

Lapho sihlola iziqephu eziyinkinga, sathola ukuthi zinokuthile abafana ngazo: zonke zaziqukethe amabhlokhi wokuphawula aqala futhi agcina ngemigqa ehlanganisa osonhlamvukazi C (njengoba uzakwabo ethanda ukuphawula ku-FORTRAN). Sithumelele ochwepheshe benethiwekhi nge-imeyili ezwenikazi sacela usizo. Yebo, babefuna ukubona amasampula wamafayela ethu ayengakwazi ukudluliselwa nge-FTP... kodwa izincwadi zethu azizange zifike kubo. Ekugcineni siqhamuke nelula chazaukuthi abukeka kanjani amafayela angadluliseki. Kusebenzile :) [Ngilinge ngengeze isibonelo samazwana ayinkinga we-FORTRAN lapha? Mhlawumbe akufanele!]

Ekugcineni sakwazi ukukuthola. Kusanda kufakwa isango elisha phakathi kwengxenye yekhampasi yethu kanye nenethiwekhi yezwekazi. Ibinobunzima obukhulu bokudlulisa amaphakethe aqukethe izingcezu eziphindaphindiwe zofeleba abakhulu C! Ambalwa nje kulawa maphakethe angathatha zonke izinsiza zesango futhi avimbele amanye amaphakethe ukuthi angangeni. Sakhalaza kumkhiqizi wesango... futhi baphendula: “O, yebo, ubhekene nesiphazamisi sika-C esiphindaphindwayo! Sesiyazi ngaye.” Ekugcineni sixazulule inkinga ngokuthenga isango elisha komunye umkhiqizi (esivikeloni sangaphambili, ukungakwazi ukudlulisa izinhlelo ze-FORTRAN kungase kube inzuzo kwabanye!).

Izikhathi ezinzima

Eminyakeni embalwa edlule, ngenkathi ngisebenzela ukwakha uhlelo lwe-ETL e-Perl ukuze kuncishiswe izindleko zesigaba sesi-40 sokuhlolwa komtholampilo, kwakudingeka ngicubungule izinsuku ezingaba ngu-000. Ababili babo abazange baphumelele ukuhlolwa. Lokhu akuzange kungikhathaze kakhulu ngoba lezi zinsuku zithathwe kudatha ehlinzekwe ngamakhasimende ngokuvamile, uma singasho, isimanga. Kodwa lapho ngibheka idatha yokuqala, kwavela ukuthi lezi zinsuku zazingoJanuwari 1, 2011 kanye noJanuwari 1, 2007. Ngangicabanga ukuthi iphutha liqukethwe ohlelweni engangisanda kulubhala, kodwa kwavela ukuthi kakade kwase kuyiminyaka engu-30. endala. Lokhu kungase kuzwakale kungaqondakali kulabo abangajwayelene ne-software ecosystem. Ngenxa yesinqumo sesikhathi eside senye inkampani sokwenza imali, ikhasimende lami langikhokhela ukuze ngilungise iphutha enye inkampani eyayilethe ngengozi enye ngamabomu. Ukuze uqonde ukuthi ngikhuluma ngani, ngidinga ukukhuluma ngenkampani eyengeze isici esigcine sesiphenduke isiphazamisi, kanye neminye imicimbi embalwa ethokozisayo ebambe iqhaza kusiphazamisi esingaqondakali engisilungisile.

Ezinsukwini zakudala ezinhle, amakhompyutha akwa-Apple kwesinye isikhathi ayehlela kabusha ngokuzenzakalelayo usuku lwawo lube nguJanuwari 1, 1904. Isizathu sasilula: isebenzise “iwashi lesistimu” elisebenza ngebhethri ukuze lilandelele idethi nesikhathi. Kwenzekani lapho ibhethri lifa? Amakhompiyutha aqale ukulandelela idethi ngenombolo yamasekhondi kusukela ekuqaleni kwenkathi. Ngenkathi sasisho idethi yokuqala eyinkomba, futhi kuma-Macintoshes kwakunguJanuwari 1, 1904. Futhi ngemva kokufa kwebhethri, idethi yamanje yasethwa kabusha yaba yileyo eshiwo. Kodwa kungani lokhu kwenzeka?

Ngaphambilini, i-Apple ibisebenzisa amabhithi angama-32 ukugcina inani lamasekhondi kusukela ngosuku lokuqala. Ibhithi elilodwa lingagcina inani elilodwa kwamabili - 1 noma 0. Amabhithi amabili angagcina inani elilodwa kwamane: 00, 01, 10, 11. Amabhithi amathathu - inani elilodwa kwayisishiyagalombili: 000, 001, 010, 011, 100 , 101, 110, 111, njll. Futhi angu-32 angagcina eyodwa kwamanani angu-232, okungukuthi, imizuzwana engu-4. Ngezinsuku ze-Apple, lokhu kulingana neminyaka eyi-294, ngakho-ke ama-Mac amadala awakwazi ukuphatha izinsuku ezingemuva kuka-967. Futhi uma ibhethri lesistimu lifa, idethi isethwe kabusha ukuze ibe imizuzwana engu-296 kusukela ekuqaleni kwenkathi, futhi kufanele usethe mathupha idethi njalo uma uvula ikhompuyutha (noma uze uthenge ibhethri elisha).

Kodwa-ke, isinqumo se-Apple sokugcina izinsuku njengemizuzwana kusukela esikhathini sasho ukuthi asikwazanga ukuphatha izinsuku ngaphambi kwenkathi, okwaba nemiphumela efinyelela kude, njengoba sizobona. U-Apple wethule isici, hhayi iphutha. Phakathi kwezinye izinto, lokhu kwakusho ukuthi isistimu yokusebenza ye-Macintosh yayingavikelekile “ku-millennium bug” (ebengenakushiwo mayelana nezinhlelo eziningi ze-Mac ezazinezinhlelo zazo zedethi zokweqa imikhawulo).

Qhubeka. Sisebenzise i-Lotus 1-2-3, "uhlelo lokusebenza lombulali" lwe-IBM olusize ukuqalisa ukuguquka kwe-PC, nakuba amakhompyutha we-Apple ayene-VisiCalc, eyenza ikhompuyutha yomuntu siqu ibe yimpumelelo. Ngobulungisa, ukube i-1-2-3 ayizange ivele, ama-PC ayengeke aphume, futhi umlando wamakhompiyutha omuntu wawungathuthuka ngendlela ehluke kakhulu. I-Lotus 1-2-3 iphathe ngokungalungile i-1900 njengonyaka we-leap. Lapho iMicrosoft ikhipha ispredishithi sayo sokuqala, i-Multiplan, yathatha ingxenye encane yemakethe. Futhi lapho bethula iphrojekthi ye-Excel, abanqumanga kuphela ukukopisha uhlelo lokuqamba umugqa nekholomu ku-Lotus 1-2-3, kodwa futhi nokuqinisekisa ukuhambisana kweziphazamisi ngokuphatha ngamabomu i-1900 njengonyaka oleap. Le nkinga isekhona nanamuhla. Okusho ukuthi, ku-1-2-3 lokhu kwakuyisiphazamisi, kodwa ku-Excel kwaba yisinqumo esihlakaniphile esiqinisekisa ukuthi bonke abasebenzisi abangu-1-2-3 bangangenisa amatafula abo ku-Excel ngaphandle kokushintsha idatha, noma ngabe yayingalungile.

Kodwa kwaba nenye inkinga. Okokuqala, iMicrosoft ikhiphe i-Excel ye-Macintosh, engazange ibone izinsuku ngaphambi kukaJanuwari 1, 1904. Futhi ku-Excel, uJanuwari 1, 1900 kwakubhekwa njengesiqalo senkathi. Ngakho-ke, abathuthukisi benze ushintsho ukuze uhlelo lwabo lubone uhlobo lwenkathi kanye nedatha egcinwe ngaphakathi ngokwalo ngokuvumelana nenkathi efiselekayo. I-Microsoft yaze yabhala isihloko esichazayo ngalokhu. Futhi lesi sinqumo siholele ebug yami.

Isistimu yami ye-ETL ithole amaspredishithi e-Excel kumakhasimende adalwe ku-Windows, kodwa angabuye adalwe ku-Mac. Ngakho-ke, ukuqala kwenkathi etafuleni kungaba ngoJanuwari 1, 1900, noma ngoJanuwari 1, 1904. Indlela yokuthola? Ifomethi yefayela le-Excel ibonisa ulwazi oludingekayo, kodwa umhlaseli engiwusebenzisile akazange awubonise (manje uyakubona), futhi ucabange ukuthi uyayazi inkathi yetafula elithile. Cishe bengingase ngichithe isikhathi esiningi ngiqonda ifomethi ye-Excel kanambambili futhi ngithumela isiqeshana kumbhali ohlahlelayo, kodwa benginokuningi okumelwe ngikwenzele iklayenti, ngakho-ke ngabhala ngokushesha i-heuristic ukuze nginqume inkathi. Wayelula.

Ku-Excel, idethi yangoJulayi 5, 1998 ingamelwa ngefomethi ethi "07-05-98" (uhlelo lwaseMelika olungenamsebenzi), "Jul 5, 98", "July 5, 1998", "5-Jul-98" noma enye ifomethi. enye ifomethi engenamsebenzi (okuxakayo, enye yamafomethi inguqulo yami ye-Excel engayinikezanga kwakuyi-ISO 8601). Kodwa-ke, ngaphakathi kwethebula, idethi engafomethiwe yagcinwa njengokuthi "35981" ye-epoch-1900 noma "34519" ye-epoch-1904 (izinombolo zimelela inani lezinsuku kusukela enkathini). Ngimane ngasebenzisa umhlahleli olula ukuze ngikhiphe unyaka osukwini olufomethiwe, ngase ngisebenzisa umhlaseli we-Excel ukuze ngikhiphe unyaka osukwini olungafomethiwe. Uma womabili amanani ehluka ngeminyaka emi-4, ngabe ngazi ukuthi ngisebenzisa isistimu ene-epoch-1904.

Kungani ngingasebenzisanga amadethi afomethiwe? Ngoba uJulayi 5, 1998 ungafomethwa ngokuthi "Julayi, 98" nokulahleka kosuku lwenyanga. Sithole amatafula ezinkampanini eziningi eziwadale ngezindlela eziningi ezahlukene kangangokuthi kwaba kithina (kulokhu, mina) ukuthola izinsuku. Ngaphandle kwalokho, uma i-Excel ikuthola kahle, nathi kufanele nathi!

Ngesikhathi esifanayo ngihlangabezane ne-39082. Ake ngikukhumbuze ukuthi i-Lotus 1-2-3 ibheka i-1900 njengonyaka we-leap, futhi lokhu kwaphindwa ngokwethembeka ku-Excel. Futhi njengoba lokhu kwengeza usuku olulodwa onyakeni ka-1900, imisebenzi eminingi yokubala yezinsuku ingaba yiphutha ngalo kanye lolo suku. Okusho ukuthi, i-39082 yayingaba ngoJanuwari 1, 2011 (kuma-Mac) noma umhla ka-31 Disemba 2006 (ku-Windows). Uma "umhlaziyi wonyaka" wami ekhiphe unyaka ka-2011 kunani elifomethiwe, khona-ke yonke into ihamba kahle. Kodwa njengoba umhlaziyi we-Excel engazi ukuthi iyiphi inkathi esetshenziswayo, ishintshashintsha ibe yi-epoch-1900, ibuyisela unyaka ka-2006. Isicelo sami sabona ukuthi umehluko yiminyaka engu-5, yasithatha njengephutha, yasifaka, futhi sabuyisela inani elingafomethiwe.

Ukuzungeza lokhu, ngibhale lokhu (pseudocode):

diff = formatted_year - parsed_year
if 0 == diff
    assume 1900 date system
if 4 == diff
    assume 1904 date system
if 5 == diff and month is December and day is 31
    assume 1904 date system

Bese kuthi zonke izinsuku ezingama-40 zacutshungulwa ngendlela efanele.

Phakathi kwemisebenzi yokuphrinta emikhulu

Ekuqaleni kwawo-1980, ubaba wasebenza e-Storage Technology, ingxenye engasenakusebenza manje eyakha ama-tape drive kanye nesistimu ye-pneumatic yokuphakelwa kwe-tape ngesivinini esikhulu.

Bahlele kabusha amadrayivu ukuze bakwazi ukuba nedrayivu eyodwa emaphakathi ethi “A” exhunywe kumadrayivu angu-“B” ayisikhombisa, futhi i-OS encane eku-RAM elawula idrayivu ethi “A” ingase ithumele imisebenzi yokufunda nokubhala kuwo wonke amadrayivu okuthi “B”.

Isikhathi ngasinye lapho idrayivu ethi "A" iqalwa, kwakudingeka kufakwe i-floppy disk ku-peripheral drive exhunywe ku-"A" ukuze kulayishwe uhlelo lokusebenza kumemori yayo. Bekungakudala kakhulu: amandla ekhompuyutha anikezwe isilawuli esincane esingu-8-bit.

Izithameli eziqondiswe kumishini enjalo kwakuyizinkampani ezinezindawo zokugcina idatha ezinkulu kakhulu - amabhange, amaketanga okuthengisa, njll. - ezazidinga ukuphrinta amalebula amakheli amaningi noma izitatimende zasebhange.

Iklayenti elilodwa libe nenkinga. Maphakathi nomsebenzi wokuphrinta, idrayivu eyodwa ethi “A” ingayeka ukusebenza, ibangele ukuthi wonke umsebenzi ume. Ukuze ubuyisele ukusebenza kwedrayivu, abasebenzi bekufanele baqalise kabusha yonke into. Futhi uma lokhu kwenzeka phakathi nomsebenzi wamahora ayisithupha, khona-ke inani elikhulu lesikhathi esibizayo sekhompiyutha lalahleka futhi isimiso somsebenzi wonke saphazamiseka.

Ochwepheshe bathunyelwe kwaStorage Technologies. Kodwa naphezu kwemizamo yabo emihle kakhulu, abakwazanga ukukhiqiza kabusha isiphazamisi ngaphansi kwezimo zokuhlolwa: kubonakala sengathi senzeka phakathi kwemisebenzi yokuphrinta emikhulu. Inkinga kwakungeyona i-hardware, bashintsha konke ababengakwenza: i-RAM, i-microcontroller, i-floppy drive, yonke ingxenye ecatshangwayo ye-tape drive - inkinga yaqhubeka.

Base bebiza ochwepheshe basendlunkulu babiza uchwepheshe.

Uchwepheshe wathatha isihlalo nenkomishi yekhofi, wahlala ekamelweni lamakhompiyutha—ngalezo zinsuku kwakunamagumbi anikezelwe amakhompyutha—futhi wabukela njengoba izisebenzi ziklelisa umsebenzi omkhulu wokunyathelisa. Uchwepheshe wayelinde ukwehluleka ukwenzeka - futhi kwenzeka. Wonke umuntu wabheka uNyazi, kodwa wayengazi ukuthi kungani lokhu kwenzeka. Ngakho wayala ukuthi umsebenzi uphinde ubekwe ulayini, bonke abasebenzi nochwepheshe babuyela emsebenzini.

Isazi saphinde sahlala esihlalweni saqala salinda isehluleki. Cishe amahora ayisithupha adlula futhi ukwehluleka kwenzeka. Waphinda futhi u-Expert akazange acabange, ngaphandle kokuthi konke kwenzeka ekamelweni eligcwele abantu. Wayalela ukuthi kuqalwe phansi umsebenzi, ahlale phansi alinde.

Ngokuhluleka kwesithathu, uchwepheshe wabona okuthile. Ukwehluleka kwenzeke lapho abasebenzi beshintsha amateyipu kudrayivu yangaphandle. Ngaphezu kwalokho, ukwehluleka kwenzeka ngokushesha nje lapho omunye wabasebenzi edlula kuthayela othile phansi.

Isitezi esiphakanyisiwe sakhiwe ngamathayili e-aluminium abekwe endaweni ephakeme ngamayintshi angu-6 kuya kwangu-8. Izintambo eziningi ezivela kumakhompuyutha zazigijima ngaphansi kwesitezi esiphakanyisiwe ukuvimbela noma ubani ukuthi anganyatheli ngephutha ikhebula elibalulekile. Amathayili abekwe aqine kakhulu ukuze kuvinjwe imfucumfucu ingangeni ngaphansi kwesitezi esiphakanyisiwe.

Uchwepheshe wabona ukuthi elinye lama-tile lalikhubazekile. Lapho isisebenzi sinyathela ekhoneni laso, imiphetho yethayili yayihlikihla kumathayela aseduze. Izingxenye zepulasitiki ezixhuma amathayela nazo zawahlikihla, okwabangela ukukhishwa kwe-micro microdischarge okudale ukuphazamiseka kwamafrikhwensi omsakazo.

Namuhla, i-RAM ivikeleke kangcono ekuphazamisekeni kwefrikhwensi yomsakazo. Kodwa kuleyo minyaka kwakungenjalo. Uchwepheshe waqaphela ukuthi lokhu kuphazamiseka kuphazamise inkumbulo, futhi nakho ukusebenza kwesistimu yokusebenza. Ushayele abesekela, wa-oda amathayili amasha, wazifakela yena, yashabalala inkinga.

Igagasi eliphezulu!

Indaba yenzeke ekamelweni leseva, esitezi sesine noma sesihlanu sehhovisi e-Portsmouth (ngicabanga ukuthi), endaweni yamadokodo.

Ngolunye usuku iseva ye-Unix ene-database eyinhloko yaphahlazeka. Bamqalise kabusha, kodwa ngenjabulo waqhubeka nokuwa ephindelela. Sinqume ukufonela othile ovela kusevisi yosekelo.

Umfana osekelayo... Ngicabanga ukuthi igama lakhe kwakunguMark, kodwa lokho akunandaba... Angicabangi ukuthi ngiyamazi. Akunandaba, ngempela. Asinamathele kuMark, kulungile? Kuhle.

Ngakho-ke, ngemva kwamahora ambalwa uMark wafika (akuyona indlela ende esuka eLeeds eya ePortsmouth, uyazi), uvule iseva futhi konke kwasebenza ngaphandle kwezinkinga. Ukwesekwa okuvamile, iklayenti licasuka kakhulu ngalokhu. UMark ubheka amafayela elogi futhi akatholi lutho olungalungile. Ngakho uMark ubuyela esitimeleni (noma iyiphi indlela yezokuthutha afike ngayo, bekungaba inkomo eqhugayo ngakho konke engikwaziyo... noma kunjalo, akunandaba, kulungile?) aphindele emuva e-Leeds, emoshile. usuku.

Ngabo lobo busuku iseva iyaphahlazeka futhi. Indaba iyafana... iseva ayivuki. UMark uzama ukusiza ukude, kodwa iklayenti alikwazi ukuqalisa iseva.

Esinye isitimela, ibhasi, i-lemon meringue noma enye i-crap, no-Mark babuyele e-Portsmouth. Bheka, amabhuzu eseva ngaphandle kwezinkinga! Isimangaliso. U-Mark uchitha amahora ambalwa ehlola ukuthi yonke into ihamba kahle yini ngesistimu yokusebenza noma isofthiwe futhi ulibangisa e-Leeds.

Maphakathi nosuku iseva iyaphahlazeka (thatha kalula!). Kulokhu kubonakala kunengqondo ukuletha abantu abasekela izingxenyekazi zekhompuyutha ukuze bangene esikhundleni seseva. Kodwa cha, ngemva kwamahora angu-10 nayo iyawa.

Isimo saziphinda izinsuku ezimbalwa. Iseva iyasebenza, iyaphahlazeka ngemva kwamahora angu-10 futhi ayiqali amahora angu-2 alandelayo. Babheka ukupholisa, ukuvuza kwenkumbulo, babheka yonke into, kodwa abatholanga lutho. Kwabe sekumiswa ukuphahlazeka.

Ladlula isonto kunganakekile... wonke umuntu wayejabule. Ejabule kuze kuqale phansi. Isithombe siyefana. Amahora angu-10 okusebenza, amahora angu-2-3 okuphumula...

Bese kuthi omunye (ngicabanga ukuthi bangitshele ukuthi lo muntu akahlanganise lutho ne-IT) wathi:

"Igagasi!"

Isibabazo sahlangatshezwa nokugqolozelwa okungenalutho, futhi isandla sothile cishe sangabaza inkinobho yokushaya ucingo.

"Iyayeka ukusebenza negagasi."

Lokhu kungabonakala kuwumqondo wangaphandle ngokuphelele kubasebenzi abasekela i-IT, okungenzeka ukuthi bafunde I-Tide Yearbook ngenkathi behlezi phansi bephuza ikhofi. Bachaza ukuthi lokhu ngeke kuhlotshaniswe nokuguquguquka nganoma iyiphi indlela, ngoba iseva isebenze isonto lonke ngaphandle kokwehluleka.

“Ngesonto eledlule igagasi beliphansi, kodwa kuleli sonto liphezulu.”

Amagama amancane alabo abangenayo ilayisense ye-yacht. Amagagasi ancike emjikelezweni wenyanga. Futhi njengoba uMhlaba ujikeleza, njalo emahoreni ayi-12,5 amandla adonsela phansi eLanga neNyanga adala amagagasi olwandle. Ekuqaleni komjikelezo wamahora angu-12,5 kukhona i-tide ephezulu, phakathi nomjikelezo kukhona ukuphefumula, futhi ekugcineni kukhona i-tide ephezulu futhi. Kodwa njengoba umzila wenyanga ushintsha, uyashintsha futhi umehluko phakathi kwamagagasi aphansi naphezulu. Uma iNyanga iphakathi kweLanga noMhlaba noma ngakolunye uhlangothi loMhlaba (inyanga egcwele noma akukho nyanga), sithola ama-Syzygyn tides - amagagasi aphezulu kakhulu kanye namaza aphansi aphansi kakhulu. Engxenyeni yenyanga sithola ama-quadrature tides - amagagasi aphansi kakhulu. Umehluko phakathi kwalokhu okubili okweqisayo wehla kakhulu. Umjikelezo wenyanga uthatha izinsuku ezingama-28: i-syzygian - i-quadrature - i-syzygian - i-quadrature.

Lapho ochwepheshe bechazelwa ingqikithi yamandla olwandle, ngokushesha bacabanga ukuthi kudingeka babize amaphoyisa. Futhi kunengqondo ngempela. Kodwa kwavela ukuthi lo mfana wayeqinisile. Emasontweni amabili ngaphambili, umbhubhisi wafika eduze nehhovisi. Ngaso sonke isikhathi lapho igagasi liyinyusa lafinyelela ukuphakama okuthile, i-radar post yomkhumbi yayiphelela ezingeni lesitezi segumbi leseva. Futhi i-radar (noma impahla yempi kagesi, noma elinye ithoyizi lezempi) ladala isiphithiphithi kumakhompyutha.

Umsebenzi wendiza yerokhethi

Nganikezwa umsebenzi wokuhambisa uhlelo olukhulu (cishe izinkulungwane ze-400) lokulawula ukuqaliswa kwe-rocket kanye nohlelo lokuqapha ezinguqulweni ezintsha zesistimu yokusebenza, i-compiler kanye nolimi. Ngokuqondile, kusukela ku-Solaris 2.5.1 kuya ku-Solaris 7, futhi kusukela ku-Verdix Ada Development System (VADS), ebhalwe ku-Ada 83, kuya ohlelweni lwe-Rational Apex Ada, olubhalwe ku-Ada 95. I-VADS yathengwa yi-Rational, futhi umkhiqizo wayo isiphelelwe yisikhathi, nakuba i-Rational izamile ukusebenzisa izinguqulo ezihambisanayo zamaphakheji aqondene ne-VADS ukuze kube lula ukushintshela kusihlanganisi se-Apex.

Abantu abathathu bangisize ukuthi ngivele ngihlanganise ikhodi ngokuhlanzekile. Kwathatha amasonto amabili. Ngabe sengisebenza ngedwa ukwenza uhlelo lusebenze. Ngamafuphi, kwakuyisakhiwo esibi kakhulu kanye nokuqaliswa kwesistimu yesofthiwe engangihlangabezane nayo, ngakho kwathatha ezinye izinyanga ezimbili ukuqedela ichweba. Lolu hlelo lwabe seluhanjiswa ukuze luhlolwe, okwathatha izinyanga ezimbalwa ezengeziwe. Ngokushesha ngalungisa izimbungulu ezitholakale ngesikhathi sokuhlolwa, kodwa inombolo yazo yehla ngokushesha (ikhodi yomthombo kwakuyisistimu yokukhiqiza, ngakho-ke ukusebenza kwayo kwasebenza ngokwethembeka, kwadingeka ngisuse izimbungulu ezivele ngesikhathi sokujwayela komhlanganisi omusha). Ekugcineni, lapho yonke into seyisebenza ngendlela efanele, ngashintshelwa komunye umsebenzi.

Kwathi ngolwesihlanu olwandulela usuku lokubonga, lwakhala ucingo.

Ukwethulwa kwe-rocket bekufanele kuhlolwe cishe emasontweni amathathu, futhi ngesikhathi sokuhlolwa kwaselabhorethri kokubala wehla, ukulandelana kwemiyalo kwavinjwa. Empilweni yangempela, lokhu kuzokhipha ukuhlolwa, futhi uma ukuvinjelwa kwenzeka phakathi nemizuzwana embalwa yokuqala injini, kuzokwenzeka izenzo eziningana ezingenakuhlehliswa ezinhlelweni ezisizayo, ezingadinga ukulungela isikhathi eside - nokubizayo kwe-rocket. Bekungeke kuqale, kodwa abantu abaningi bebezocasuka kakhulu ngokulahlekelwa yisikhathi nemali eningi. Ungavumeli muntu akutshele ukuthi uMnyango Wezokuvikela uchitha imali budedengu—angikaze ngihlangane nomphathi wenkontileka ongazange abeke ibhajethi kuqala noma kwesibili, kulandele uhlelo.

Ezinyangeni ezedlule, le nselelo yokubala wehla ibikade iqhutshwa izikhathi ezingamakhulu ngezinhlobonhlobo eziningi, kube nezihibe ezimbalwa kuphela. Ngakho-ke amathuba okuba lokhu kwenzeke ayemancane kakhulu, kodwa imiphumela yako yayiphawuleka kakhulu. Phindaphinda zombili lezi zici, futhi uzoqonda ukuthi izindaba zibikezele iviki leholide elibhidlikile kimi kanye nenqwaba yonjiniyela nabaphathi.

Futhi kunakwe mina njengomuntu ophethe uhlelo.

Njengamasistimu amaningi abaluleke kakhulu kwezokuphepha, kufakwe amapharamitha amaningi, ngakho-ke bekulula ukuhlonza imigqa embalwa yekhodi eyasetshenziswa ngaphambi kokuphahlazeka kwesistimu. Futhi-ke, kwakungekho lutho olungavamile ngabo; izinkulumo ezifanayo zazisetshenziswe ngempumelelo izikhathi eziyizinkulungwane ngesikhathi esifanayo.

Sibize abantu base-Apex sababiza ngokuthi i-Rational ngoba yibona abathuthukise umdidiyeli futhi eminye yezindlela abazenza zazibizwa ngekhodi esolisayo. Bona (nabo bonke abanye) bahlatshwa umxhwele ukuthi kwakunesidingo sokufinyelela emnyombweni wenkinga yokubaluleka ngokoqobo kwesizwe.

Njengoba kwakungekho lutho oluthakazelisayo emaphephandabeni, sanquma ukuzama ukukhiqiza kabusha le nkinga elabhorethri yendawo. Lona bekungewona umsebenzi olula njengoba umcimbi wenzeke cishe kanye ngokugijima okungu-1000. Isizathu esisodwa esisolisayo sasiwukuthi ucingo oluya kumsebenzi we-mutex othuthukiswe umthengisi (ingxenye yephakheji yokufuduka ye-VADS) Unlock akuzange kuholele ekuvuleni. Uchungechunge olucubungulayo olubize umsebenzi lucubungule imilayezo yokushaya kwenhliziyo, eyayifika njalo ngomzuzwana. Sikhuphule imvamisa yaba ngu-10 Hz, okungukuthi, izikhathi eziyi-10 ngomzuzwana, futhi saqala ukugijima. Cishe ngemva kwehora isistimu yazikhiya. Kulogi, sibonile ukuthi ukulandelana kwemiyalezo erekhodiwe kuyafana nangesikhathi sokuhlolwa okungaphumelelanga. Senze eminye imigijimo eminingi, isistimu ibivinjwe ngokungaguquki imizuzu engama-45-90 ngemuva kokuqala, futhi isikhathi ngasinye ilogu iqukethe umzila ofanayo. Noma ngabe ngokobuchwepheshe besisebenzisa ikhodi ehlukile - imvamisa yomlayezo ibihlukile - ukuziphatha kwesistimu bekufana, ngakho besiqiniseka ukuthi lesi simo sokulayisha besidala inkinga efanayo.

Manje besidinga ukuthola ukuthi ukuvinjwa kwenzeke kuphi ngokulandelana kwezinkulumo.

Lokhu kuqaliswa kwesistimu kusebenzise uhlelo lomsebenzi we-Ada, futhi kusetshenziswe kabi ngendlela emangalisayo. Imisebenzi iyizinga eliphezulu elisebenzisekayo ngesikhathi esisodwa ku-Ada, into efana nezintambo zokwenziwa, eyakhelwe olimini ngokwalo. Lapho imisebenzi emibili idinga ukuxhumana, "bamisa i-rendezvous", bashintshanisa idatha edingekayo, bese bemisa ukuhlangana bese bebuyela ekubulaweni kwabo okuzimele. Nokho, uhlelo lwenziwa ngendlela ehlukile. Ngemva kokuba umsebenzi ohlosiwe usuhlangene, lowo msebenzi okuhlosiwe waphinde wahlangana nomunye umsebenzi, owabe usuphinde wahlangana nomsebenzi wesithathu, njalo njalo kuze kuqedwe ukucutshungulwa okuthile. Ngemva kwalokhu, zonke lezi zingxoxo zaqedwa futhi umsebenzi ngamunye kwadingeka ubuyele ekufezeni kwawo. Okusho ukuthi, besibhekene nesistimu yekholi yokusebenza ebiza kakhulu emhlabeni, emise yonke inqubo "yemisebenzi eminingi" ngenkathi icubungula ingxenye yedatha yokufaka. Futhi ngaphambi kwalokhu akuzange kuholele ezinkingeni kuphela ngoba i-throughput yayiphansi kakhulu.

Ngichaze le ndlela yokusebenza ngoba lapho ukuhlangana kuceliwe noma kulindeleke ukuthi kuqedwe, "i-task switch" ingenzeka. Okusho ukuthi, iphrosesa ingaqala ukucubungula omunye umsebenzi osulungele ukwenziwa. Kuvele ukuthi uma umsebenzi owodwa usulungele ukuhlangana nomunye umsebenzi, umsebenzi ohluke ngokuphelele ungaqala ukwenziwa, futhi ekugcineni ukulawulwa kubuyela endaweni yokuqala yokuhlangana. Futhi ezinye izehlakalo zingase zenzeke ezibangela ukuthi umsebenzi ushintshe; umcimbi owodwa onjalo uwukubizela kumsebenzi wesistimu, njengokuphrinta noma ukwenza i-mutex.

Ukuze ngiqonde ukuthi yimuphi umugqa wekhodi obangele inkinga, kwakudingeka ngithole indlela yokurekhoda inqubekelaphambili ngochungechunge lwezitatimende ngaphandle kokucupha ukushintsha komsebenzi, okungavimbela ukuphahlazeka ukuthi kwenzeke. Ngakho angikwazanga ukusizakala Put_Line()ukugwema ukwenza imisebenzi ye-I/O. Ngingasetha i-counter variable noma into efanayo, kodwa ngingalibona kanjani inani layo uma ngingakwazi ukukubonisa esikrinini?

Futhi, lapho kuhlolwa ilogi, kwavela ukuthi, naphezu kokucutshungulwa kwemilayezo yokushaya kwenhliziyo ilenga, okuvimbe yonke imisebenzi ye-I/O yenqubo futhi kwavimbela okunye ukucutshungulwa ukuba kwenziwe, eminye imisebenzi ezimele yaqhubeka yenziwa. Okusho ukuthi, umsebenzi awuzange uvinjelwe ngokuphelele, kuphela uchungechunge (olubucayi) lwemisebenzi.

Lona bekuwumkhondo odingekayo ukuze kuhlolwe isisho esivimbayo.

Ngenze iphakheji ye-Ada equkethe umsebenzi, uhlobo olubaliwe, nokuguquguquka komhlaba wonke kwalolo hlobo. Amazwi angabalwa ayeboshelwe emibonweni ethile yokulandelana okuyinkinga (isb. Incrementing_Buffer_Index, Locking_Mutex, Mutex_Unlocked), bese ifaka izinkulumo zezabelo kuyo ezabela ukubala okuhambisanayo kokuguquguquka komhlaba wonke. Njengoba ikhodi yento yakho konke lokhu imane nje igcine into ehlala njalo enkumbulweni, ukushintsha umsebenzi ngenxa yokwenziwa kwayo kwakungenakwenzeka kakhulu. Ngokuyinhloko besisola izinkulumo ezingashintsha umsebenzi, njengoba ukuvinjwa kwenzeke ngesikhathi kwenziwa esikhundleni sokubuya lapho sibuyisela umsebenzi emuva (ngenxa yezizathu ezimbalwa).

Umsebenzi wokulandela umkhondo uvele ugijime ku-loop futhi uhlolwe ngezikhathi ezithile ukuze ubone ukuthi ingabe inani le-global variable lishintshile. Ngoshintsho ngalunye, inani lilondolozwe kufayela. Bese ukulinda okufushane kanye nesheke elisha. Ngibhale okuguquguqukayo kufayela ngoba umsebenzi wenziwa kuphela lapho isistimu iwukhethele ukwenziwa lapho ushintsha umsebenzi endaweni yenkinga. Noma yini eyenzeka kulo msebenzi ngeke ithinte eminye, imisebenzi evinjiwe engahlobene.

Bekulindeleke ukuthi lapho isistimu ifinyelela iphuzu lokuqalisa ikhodi eyinkinga, ukuguquguquka komhlaba wonke kuzosethwa kabusha lapho kuya kunkulumo ngayinye elandelayo. Khona-ke kukhona okuzokwenzeka okubangela ukuthi umsebenzi ushintshe, futhi njengoba imvamisa yokwenziwa kwayo (10 Hz) iphansi kunaleyo yomsebenzi wokuqapha, umqaphi angathatha inani lokuguquguquka komhlaba futhi akubhale. Esimeni esijwayelekile, ngingathola ukulandelana okuphindayo kwesethi engezansi yezibalo: amanani okugcina okuguquguquka ngesikhathi sokushintshwa komsebenzi. Lapho ilenga, okuguquguqukayo komhlaba akufanele kusashintsha, futhi inani lokugcina elibhaliwe lizobonisa ukuthi isiphi isisho esingaqedanga.

Ngisebenzise ikhodi ngokulandela umkhondo. Wabanda. Futhi ukuqapha kwasebenza njengewashi.

Ilogi ibiqukethe ukulandelana obekulindelekile, okuphazanyiswe inani elibonisa ukuthi isimungulu sibiziwe. Unlock, futhi umsebenzi awuqediwe - njengoba kwenzeka ngezinkulungwane zezingcingo zangaphambilini.

Onjiniyela be-Apex bebehlaziya amakhodi abo ngomdlandla ngalesi sikhathi futhi bathola indawo ku-mutex lapho, ngokwembono, kungenzeka ukukhiya. Kodwa amathuba ayo ayephansi kakhulu, ngoba ukulandelana okuthile kuphela kwezenzakalo ezenzeka ngesikhathi esithile kungaholela ekuvinjweni. Umthetho kaMurphy, bafana, umthetho kaMurphy.

Ukuze ngivikele ucezu lwekhodi engangiludinga, ngishintshe izingcingo ze-mutex (ezakhelwe phezulu kokusebenza kwe-OS mutex) ngephakheji elincane lendabuko le-Ada mutex lokulawula ukufinyelela kwe-mutex kulelo siqephu.

Ngiwufake kukhodi bese ngiqhuba isivivinyo. Ngemva kwamahora ayisikhombisa ikhodi yayisasebenza.

Ikhodi yami ihanjiswe ku-Rational, lapho beyihlanganise khona, bayiqaqa, futhi bahlola ukuthi ayizange isebenzise indlela efanayo neyasetshenziswa emisebenzini eyinkinga ye-mutex.

Lokhu kwaba ukubuyekezwa kwekhodi egcwele kakhulu yomsebenzi wami 🙂 Kwakukhona cishe onjiniyela nabaphathi abayishumi ekamelweni nami, abanye abantu abayishumi babesocingweni lwenkomfa - futhi bonke bahlola imigqa yekhodi engama-20.

Ikhodi ibuyekeziwe, amafayela amasha asebenzisekayo ahlanganiswa futhi athunyelwa ukuze kuhlolwe ukwehla okusemthethweni. Emasontweni ambalwa kamuva, ukuhlolwa kokubala wehla kwaphumelela futhi irokhethi lasuka.

Kulungile, konke kuhle futhi kuhle, kodwa yini iphuzu lendaba?

Kwakuyinkinga enyanyeka ngokuphelele. Amakhulu ezinkulungwane zemigqa yekhodi, ukwenza okufanayo, izinqubo ezisebenzisanayo ezingaphezu kweshumi nambili, izakhiwo ezingezinhle nokusebenzisa kabi, ukuxhumana kwezinhlelo ezishumekiwe kanye nezigidi zamarandi ezichithiwe. Ayikho ingcindezi, kulungile.

Bekungemina ngedwa obesebenza kule nkinga, yize bengibekwe obala njengoba bengithutha. Kodwa noma ngikwenzile, lokho akusho ukuthi ngawaqonda wonke amakhulu ezinkulungwane zemigqa yekhodi, noma ngize ngawaphenya kancane. Ikhodi nezingodo kwahlaziywa onjiniyela kulo lonke izwe, kodwa lapho bengitshela imibono yabo mayelana nezimbangela zokwehluleka, kwangithatha uhhafu womzuzu ukukuphikisa. Bekuthi uma kuthiwa angihlaziye amathiyori ngangiye ngiwudlulisele komunye ngoba kwakubonakala kimina ukuthi laba njiniyela bahamba ngendlela engafanele. Uzwakala ugabadela? Yebo, lokhu kuyiqiniso, kodwa nginqabile imibono nezicelo ngesinye isizathu.

Ngaluqonda uhlobo lwenkinga. Ngangingazi kahle ukuthi kwenzekani nokuthi kungani, kodwa ngangazi ukuthi kwenzekani.

Eminyakeni edlule, ngiye ngaqongelela ulwazi oluningi nolwazi. Ngangingomunye wamavulandlela wokusebenzisa i-Ada futhi ngiziqonda izinzuzo nezingozi zayo. Ngiyazi ukuthi imitapo yolwazi yesikhathi sokusebenza ye-Ada iyisingatha kanjani imisebenzi futhi ibhekana nokwenza okufanayo. Futhi ngiyakuqonda ukuhlelwa kwezinga eliphansi ezingeni lenkumbulo, amarejista kanye nokuhlanganisa. Ngamanye amazwi, nginolwazi olujulile emkhakheni wami. Futhi ngazisebenzisa ukuze ngithole imbangela yenkinga. Angizange nje ngisebenze eduze kwesiphazamisi, ngaqonda ukuthi singasithola kanjani endaweni ebucayi kakhulu yesikhathi sokusebenza.

Izindaba ezinjalo zomzabalazo wekhodi azithakazelisi kakhulu kulabo abangazazi izici nezimo zomzabalazo onjalo. Kodwa lezi zindaba zisisiza ukuba siqonde ukuthi yini edingekayo ukuxazulula izinkinga ezinzima ngempela.

Ukuze uxazulule izinkinga ezinzima ngempela, udinga ukuba ngaphezu kokuba umklami. Udinga ukuqonda "isiphetho" sekhodi, ukuthi isebenzisana kanjani nendawo yayo, nokuthi imvelo ngokwayo isebenza kanjani.

Futhi-ke uzoba neviki lakho leholide elonakele.

Ukuze uqhubeke.

Source: www.habr.com

Engeza amazwana