Folklore yevagadziri uye mainjiniya (chikamu 1)

Folklore yevagadziri uye mainjiniya (chikamu 1)

Iyi isarudzo yenyaya kubva paInternet nezvekuti tsikidzi dzimwe nguva dzine zviratidzo zvinoshamisa. Zvichida une chimwe chinhu chokuudzawo.

Car allergy kune vanilla ice cream

Nyaya yevamainjiniya vanonzwisisa kuti zviri pachena haisi mhinduro nguva dzose, uye kuti zvisinei nekuti chokwadi chingaite seiri kure, zvichiri chokwadi. Iyo Pontiac Division yeGeneral Motors Corporation yakagamuchira chichemo:

Aka ndekechipiri kukunyorerai, uye handikupei mhosva nekusapindura, nekuti zvinoita sekupenga. Mhuri yedu ine tsika yekudya ice cream manheru ega ega mushure mekudya kwemanheru. Mhando dze ice cream dzinoshanduka nguva dzose, uye mushure mekudya kwemanheru, mhuri yose inosarudza iyo ice cream yekutenga, mushure mokunge ndinoenda kuchitoro. Nguva pfupi yadarika ndakatenga Pontiac itsva uye kubva ipapo nzendo dzangu dzekunotora ice cream dzave dambudziko. Munoona, pese pandinotenga vanila ice cream ndodzoka kubva kuchitoro, mota haibatiki. Ndikaunza imwe ice cream, mota inotanga pasina dambudziko. Ndinoda kubvunza mubvunzo wakakomba, zvisinei kuti upenzi hwakadini: "Chii chiri pamusoro pePontiac chinoita kuti isatange kana ndaunza vanilla ice cream, asi inotanga nyore kana ndaunza imwe flavour yeaizikirimu?" "

Sezvaunogona kufungidzira, mutungamiri wechikamu akange asina chokwadi nezvetsamba iyi. Zvisinei, ndangotumira mainjiniya kuti aongorore. Akashamisika kuti akanga asangana nomumwe murume akanga akapfuma, akadzidza zvikuru aigara munzvimbo yakaisvonaka. Vakazotenderana kuti vaizosangana vapedza kudya kuti vaviri ava vaende kunotenga ice cream kuchitoro. Manheru acho yainge yava vanila, pavakadzokera kumota haina kumuka.

Injiniya akauya mamwe manheru matatu. Nguva yekutanga ice cream yaive chocolate. Motokari yakatanga. Kechipiri paive nestrawberry ice cream. Motokari yakatanga. Manheru echitatu akakumbira kutora vanila. Mota haina kumutswa.

Achifunga zvine musoro, injiniya akaramba kutenda kuti mota yacho yairwarisa vanilla ice cream. Naizvozvo, ndakabvumirana nemuridzi wemotokari kuti aizopfuurira kushanyira kwake kusvikira awana mhinduro kuchinetso chacho. Uye munzira, akatanga kutora manotsi: akanyora pasi mashoko ose, nguva yezuva, rudzi peturu, nguva yokusvika uye kudzoka kubva muchitoro, nezvimwewo.

Engineer akabva aona kuti muridzi wemota aitora nguva shoma achitenga vanila ice cream. Chikonzero chaive chekurongeka kwezvinhu muchitoro. Aizikirimu yeVanilla ndiyo yainyanya kufarirwa uye yaichengeterwa mufiriza yakaparadzana pamberi pechitoro kuti ive nyore kuwana. Uye mamwe marudzi ese aive kuseri kwechitoro, uye zvakatora nguva yakawanda kuwana mhando chaiyo uye kubhadhara.

Zvino mubvunzo wakanga uri weinjiniya: sei motokari isina kutanga kana nguva shoma yakanga yapfuura kubva panguva iyo injini yakadzimwa? Sezvo dambudziko raive nguva, kwete vanilla ice cream, injiniya yakakurumidza kuwana mhinduro: yaive yekukiya gasi. Zvaiitika manheru ega ega, asi muridzi wemotokari paakapedza nguva yakawanda achitsvaga aizikirimu, injini yakakwanisa kutonhora zvakakwana uye yakatanga nyore nyore. Uye murume uyu paakatenga vanilla ice cream, injini yakanga ichiri kupisa zvakanyanya uye kiyi yegesi yakanga isina nguva yekunyungudika.

Moral: Kunyange matambudziko anopenga zvachose dzimwe nguva ndeyechokwadi.

tsaona Bandicoot

Zvinorwadza kusangana nazvo izvi. Semugadziri wepurogiramu, iwe unojaira kupomera kodhi yako kutanga, yechipiri, yechitatu… uye kumwe munzvimbo yechigumi chegumi unopomera muunganidzi. Uye kuwedzera pasi rondedzero iwe unotopomera midziyo.

Heino nyaya yangu nezve Hardware bug.

Pamutambo Crash Bandicoot, ndakanyora kodhi kurodha uye kuchengetedza kune memori kadhi. Kune akadaro mugadziri wemutambo wesmug, zvaiita sekufamba mupaki: Ndaifunga kuti basa raizotora mazuva akati wandei. Nekudaro, ndakapedzisira ndagadzirisa kodhi kwemavhiki matanhatu. Ndiri munzira, ndakagadzirisa mamwe matambudziko, asi mazuva mashoma ega ega ndakadzokera kune iyi kodhi kwemaawa mashoma. Zvairwadza.

Chiratidzo chakaita seizvi: kana iwe uchichengetedza ikozvino playthrough yemutambo uye kuwana memori kadhi, zvinhu zvose zvinenge zvichifamba zvakanaka ... Asi dzimwe nguva kuverenga kana kunyora kushanda nguva pasina chikonzero chakajeka. Kurekodha kupfupi kunowanzo kuvadza memori kadhi. Kana mutambi achiedza kuchengetedza, haangokundikani kuchengetedza, asiwo anoparadza mepu. Crap.

Mushure mechinguva, mugadziri wedu paSony, Connie Bhazi, akatanga kuvhunduka. Hatina kukwanisa kutumira mutambo nebug iyi, uye mavhiki matanhatu gare gare handina kunzwisisa chaikonzera dambudziko. Kuburikidza naConnie, takabata vamwe vanogadzira PS1: pane akasangana nechinhu chakafanana here? Aihwa. Hapana aive nematambudziko nememory card.

Kana iwe usina mazano ekugadzirisa, nzira chete yasara ndeye "kupatsanura uye kukunda": bvisa yakawanda uye yakawanda kodhi kubva pachirongwa chakakanganisika kusvika pane chidimbu chidiki chasara icho chichiri kukonzera dambudziko. Ndiko kuti, unocheka chirongwa chidimbu nechidimbu kusvika chikamu chine bug chasara.

Asi chinhu ndechekuti, zvakanyanya kuoma kutema chunks kubva mumutambo wevhidhiyo. Nzira yekuimhanyisa sei kana iwe wakabvisa iyo kodhi inotevedzera giravhiti? Kana kudhirowa mavara?

Naizvozvo, isu tinofanirwa kutsiva mamodule ese nema stubs anonyepedzera kuita chimwe chinhu chinobatsira, asi kuita chimwe chinhu chiri nyore kwazvo chisingakwanise kuve nezvikanganiso. Tinofanira kunyora madondoro akadaro kuti mutambo ushande. Iyi inzira inononoka uye inorwadza.

Muchidimbu, ndakazviita. Ndakabvisa zvimwe zvimedu zvekodhi kusvika ndasara nekodhi yekutanga inogadzirisa sisitimu yekumhanyisa mutambo, inotangisa iyo yekupa Hardware, nezvimwe. Ehe, panguva ino ini handina kukwanisa kugadzira yekuchengetedza uye kurodha menyu, nekuti ndaizofanirwa kugadzira stub kune ese magiraidhi kodhi. Asi ini ndaigona kunyepedzera kunge ndiri mushandisi ndichishandisa iyo (isingaoneki) chengetedza uye kurodha skrini uye ndokumbira kuchengetedza ndozonyorera kumemori kadhi.

Izvi zvakandisiya ndine chidimbu chekodhi icho chichiri nedambudziko riri pamusoro - asi zvaive zvichingoitika zvisina tsarukano! Kazhinji kazhinji zvinhu zvese zvaishanda zvakanaka, asi pane dzimwe nguva pakanga paine glitches. Ndakabvisa dzinenge kodhi yese yemutambo, asi bug yaive ichiri kurarama. Izvi zvaikatyamadza: iyo kodhi yakasara haina kuita chero chinhu.

Pane imwe nguva, zvichida kumaXNUMX mangwanani, imwe pfungwa yakauya kwandiri. Kuverenga nekunyora (zvekupinza/zvinobuda) mashandiro anosanganisira nguva dzekuita chaiko. Paunoshanda nehard drive, memori kadhi kana Bluetooth module, iyo yakaderera-level kodhi ine basa rekuverenga nekunyora inoita zvinoenderana newachi pulses.

Nerubatsiro rwewachi, chishandiso chisina kubatanidzwa zvakananga kune processor inowiriraniswa nekodhi inoitwa pane processor. Wachi ndiyo inosarudza mwero webaudβ€”kumhanya uko data rinofambiswa. Kana paine kuvhiringidzika nenguva, saka ingave iyo hardware kana software, kana zvese zviri zviviri, zvakavhiringika. Uye izvi zvakaipa kwazvo, nekuti iyo data inogona kukuvadzwa.

Ko kana chimwe chinhu chiri mukodhi yedu chichivhiringidza nguva? Ndakatarisa zvese zvine chekuita neizvi muyedzo chirongwa kodhi uye ndakaona kuti isu takaisa iyo programmable timer muPS1 kusvika 1 kHz (1000 ticks pasekondi). Izvi zvakawandisa; nekusarudzika, kana koni yatanga, inomhanya pa100 Hz. Uye mitambo yakawanda inoshandisa iyi frequency.

Andy, mugadziri wemutambo, akaisa timer ku1 kHz kuitira kuti mafambiro averengerwe nemazvo. Andy anowanzo pfuura, uye kana tikatevedzera simba rinokwevera zvinhu pasi, tinozviita nemazvo sezvinobvira!

Asi ko kana kumhanyisa timer neimwe nzira kwakakanganisa nguva yese yechirongwa, uye nekudaro wachi inodzora mwero webhaud yememori kadhi?

Ndakataura nezve timer code. Iko kukanganisa hakuna kuitika zvakare. Asi izvi hazvirevi kuti takazvigadzirisa, nokuti kukundikana kwakaitika zvisina tsarukano. Ko dai ndangoita rombo rakanaka?

Mazuva mashomanana gare gare ndakaedza zvakare purogiramu yekuedza. Chipembenene hachina kudzoka. Ndakadzokera kune yakazara mutambo codebase uye ndikagadzirisa iyo yekuchengetedza uye yekurodha kodhi kuitira kuti iyo programmable timer igadzirise kune yayo yepakutanga kukosha (100Hz) ndisati ndawana memori kadhi, uye wozodzosera kumashure ku1kHz. Pakanga pasisina kubonderana.

Asi nei izvi zvakaitika?

Ndakadzokera kuchirongwa chebvunzo zvakare. Ndakaedza kutsvaga imwe pateni mukuitika kwekukanganisa ne 1 kHz timer. Pakupedzisira ndakaona kuti kukanganisa kunoitika kana mumwe munhu achitamba nePS1 controller. Sezvo ini ndaisazowanzoita izvi ini - nei ndaizoda mutongi kana ndichiedza kuchengetedza uye kurodha kodhi? - Ini handina kana kumboona kutsamira uku. Asi rimwe zuva mumwe wevatambi vedu akange akamirira kuti ndipedze kuyedzwa - pamwe ndanga ndichituka panguva iyoyo - uye nekutya ndakatenderedza controller mumaoko ake. Pane chakaitika. "Mira, chii?!" Zvakanaka, ita zvakare!"

Pandakaona kuti zviitiko zviviri izvi zvakabatana, ndakakwanisa kubereka zvakare kukanganisa: Ndakatanga kurekodha kumemori kadhi, ndakatamisa mutongi, uye ndakaparadza memori kadhi. Kwandiri zvaiita sebug yehardware.

Ndakasvika Connie ndokumuudza nezvekuwanikwa kwangu. Akaendesa ruzivo kune mumwe weinjiniya akagadzira iyo PS1. β€œHazvibviri,” akapindura kudaro, β€œHachigoni kuva chinetso chehardware.” Ndakakumbira Connie kuti arongedze nyaya yedu.

Injiniya akandidana uye takakakavadzana muChirungu chake chakaputsika uye yangu (yakanyanya) Japanese yakaputsika. Pakupedzisira ndakati, "Regai ndingotumira yangu mitsara makumi matatu bvunzo chirongwa uko kufambisa controller kunokonzera bug." Akabvuma. Akati kwaive kutambisa nguva uye kuti aive akabatikana zvakanyanya nekushanda pachirongwa chitsva, asi aizobvuma nekuti isu taive akakosha kwazvo mugadziri weSony. Ndakachenesa chirongwa changu chebvunzo ndokumutumira.

Manheru akatevera (takanga tiri muLos Angeles uye akanga ari muTokyo) akandidana uye akandikumbira ruregerero noushingi. Yakanga iri dambudziko rehardware.

Ini handizive kuti chii chaizvo chaive bhagi, asi kubva pane zvandakanzwa kumuzinda weSony, kana ukaisa timer kune yakakwira kukosha, yakakanganisa zvikamu pabhodhi reamai padyo neiyo timer crystal. Imwe yacho yakanga iri baud rate controller yememory card, iyo yaisawo mwero webaud kune vanodzora. Ini handisi injiniya, saka ndinogona kunge ndakakanganisa chimwe chinhu.

Asi chakakosha ndechekuti paive nekukanganisika pakati pezvikamu pabhodhi reamai. Uye kana uchitumira data panguva imwe chete kuburikidza nechiteshi chekutonga uye memori kadhi chiteshi ine timer inomhanya pa1 kHz, bits dzakarasika, data yakarasika, uye kadhi rakakuvadzwa.

Mhou dzakaipa

Mumakore ekuma1980, mutungamiri wangu Sergei akanyora software yeSM-1800, clone yeSoviet yePDP-11. Iyi microcomputer ichangobva kuiswa pachiteshi chechitima padyo neSverdlovsk, nzvimbo yakakosha yekufambisa muUSSR. Iyo itsva system yakagadzirirwa kufambisa ngoro uye kutakura zvinhu. Asi yaive nebug inogumbura yaikonzeresa kubonderana nekukoromoka. Mapopoma aigara achiitika kana mumwe munhu aenda kumba manheru. Asi zvisinei nekuferefeta kwakaringana zuva raitevera, komputa yakashanda nemazvo mune ese manyore uye otomatiki bvunzo. Izvi zvinowanzo ratidza mamiriro emujaho kana imwe tsikidzi yemakwikwi inoitika pasi pemamwe mamiriro. Aneta nekufona pakati pehusiku, Sergei akasarudza kusvika pazasi payo, uye kutanga pane zvese, nzwisisa kuti ndeapi mamiriro payadhi yekushambadzira akakonzera kukanganisa kwekombuta.

Kutanga, akaunganidza zviverengero zvekudonha kwese kusingatsananguriki uye akagadzira girafu nezuva nenguva. Maitiro acho aive pachena. Pashure pokucherechedza mamwe mazuva mashomanene, Sergei akaziva kuti aigona kufanotaura zviri nyore nguva yokukundikana kwegadziriro yemberi.

Nenguva isipi akaziva kuti kuvhiringika kwaingoitika apo chiteshi chacho chakanga chichironga zvitima zvakatakura mombe kubva kuchamhembe kweUkraine uye kumadokero kweRussia dzonanga kune imwe imba yekuuraya yaiva pedyo. Izvi pachazvo zvaishamisa, nekuti imba yekuurayira yaipihwa nemapurazi ari pedyo zvakanyanya, muKazakhstan.

Chernobyl nuclear power plant yakaputika muna 1986, uye radioactive fallout yakaita kuti nzvimbo dzakapoteredza dzisagarike. Nzvimbo dzakakura kuchamhembe kweUkraine, Belarus uye kumadokero kweRussia dzakasvibiswa. Achifungidzira kuwanda kwemwaranzi mumotokari dzinosvika, Sergei akagadzira nzira yekuyedza dzidziso iyi. Huwandu hwevanhu hwakarambidzwa kuita dosimeters, saka Sergei akazvinyoresa nevarwi vakati wandei pachiteshi chechitima. Mushure mezvinwiwa zvinoverengeka zvevodka, akakwanisa kunyengetedza musoja kuyera mwero wemwaranzi mune imwe yengoro dzinofungidzirwa. Zvakazoitika kuti nhanho yacho yaive yakakwira kakawanda pane yakajairika.

Kwete chete kuti mombe dzakabudisa mwaranzi yakawanda, chiyero chayo chaive chakakwirira zvokuti chakaita kuti pave nekurasikirwa kwezvimedu mundangariro yeSM-1800, yakanga iri muchivako chiri pedyo nechiteshi.

MuUSSR pakanga paine kushomeka kwezvokudya, uye zviremera zvakasarudza kusanganisa nyama yeChernobyl nenyama kubva kune dzimwe nzvimbo dzenyika. Izvi zvakaita kuti zvikwanise kudzikisa huwandu hwese hweradioactivity pasina kurasikirwa nezviwanikwa zvakakosha. Aziva nezveizvi, Sergei akabva angozadza magwaro ekutama. Uye kuparara kwekombuta kwakamira kwega apo mwero wemwaranzi wakadzikira nekufamba kwenguva.

Kuburikidza nemapombi

Pane imwe nguva, Movietech Solutions yakagadzira software yemabhaisikopo, yakagadzirirwa accounting, kutengesa matikiti uye manejimendi ese. Iyo DOS vhezheni yemureza app yaive yakakurumbira pakati pemadiki uye epakati-saizi yemabhaisikopo etiyeti muNorth America. Saka hazvishamise kuti pakazoziviswa vhezheni yeWindows 95, yakabatanidzwa neazvino touch screens uye self-service kiosks, uye ine marudzi ese ematurusi ekubika, yakakurumidza kuve yakakurumbira zvakare. Kazhinji iyo update yaienda pasina matambudziko. Vashandi vemunharaunda yeIT vakaisa michina mitsva, data yakatama, uye bhizinesi rakaenderera mberi. Kunze kwekunge isina kupera. Kana izvi zvaitika, kambani yaizotumira James, ainzi "The Cleaner."

Kunyange zvazvo zita remadunhurirwa richiratidza rudzi rusina kunaka, chinocheneswa chingori musanganiswa wemurairidzi, mugadziri uye jack-of-all-trades. James aipedza mazuva mashoma ari panzvimbo yemutengi achiisa zvinhu zvese pamwechete, obva apedza mamwe mazuva akati wandei achidzidzisa vashandi mashandisiro ehurongwa hutsva, kugadzirisa chero matambudziko ehardware akamuka uye zvakanyanya kubatsira software kuburikidza nehucheche hwayo.

Nokudaro, hazvishamisi kuti munguva dzino dzakaoma zvikuru, James akasvika kuhofisi mangwanani, uye asati asvika padhesiki rake, akakwaziswa namaneja, akazadzwa necaffeine kupfuura nguva dzose.

"Ndinotya kuti unofanira kuenda kuAnnapolis, Nova Scotia, nekukurumidza." Hurongwa hwavo hwese hwakadzika, uye mushure mehusiku hwekushanda nemainjiniya avo, hatigone kuziva zvakaitika. Zvinotaridza kunge network yatadza kushanda pasevha. Asi chete mushure mekunge sisitimu yave kushanda kwemaminetsi akati wandei.

β€” Havana kudzokera kugadziriro yekare? - James akapindura zvakakomba, kunyangwe mupfungwa akavhura maziso nekushamisika.

-Chaizvo: nyanzvi yavo yeIT "yakachinja zvekutanga" uye vakafunga kuenda neserver yavo yekare. James, ivo vakaisa sisitimu yacho kunzvimbo nhanhatu uye vakangobhadhara mari yerutsigiro, uye bhizinesi ravo rave kufamba sezvazvaive muma1950s.

James akatwasanuka zvishoma.

- Ndiyo imwe nyaya. Zvakanaka, ngatitangei.

Paakasvika muAnnapolis, chinhu chokutanga chaakaita kwaiva kuwana imba yemitambo yomutengi yakanga ine dambudziko. Pamepu yakatorwa panhandare yendege, zvese zvaitaridzika zvakanaka, asi nzvimbo yakatenderedza kero yaidiwa yairatidza kunyumwira. Kwete ghetto, asi inoyeuchidza yefirimu noir. James paakanga achipaka parukova rwedhorobha, pfambi yakasvika paaiva. Tichifunga nezvehukuru hweAnnapolis, ingangove ndiyo yega muguta rose. Chitarisiko chake chakabva chaunza mundangariro munhu aive nemukurumbira aipa bonde nemari pascreen hombe. Kwete, kwete nezvaJulia Roberts, asi nezvaJon Voight [chirevo chemufirimu "Midnight Cowboy" - approx. lane].

Aendesa hure munzira yake, James akaenda kumabhaisikopo. Nharaunda yakapoteredza yakanga yave nani, asi yakaramba ichipa pfungwa yekupunzirwa pasi. Kwete kuti James ainyanya kunetseka. Akamboenda kunzvimbo dzine nhamo. Uye iyi yaive Canada, uko kunyange makororo ane hunhu hwekutaura "mazvita" mushure mekutora chikwama chako.

Musuwo wekudivi remubhaisikopo waive mune mukoto wedank. James akafamba achienda kudoor ndokugogodza. Nenguva isipi yakarira ichibva yavhurwa zvishoma.

-Uri muchenesi here? - izwi rakashoshoma rakabva mukati.

- Hongu, ndini ... Ndakauya kuzogadzirisa zvose.

James akabva apinda muimba yekutandarira. Sezviri pachena vasina imwe sarudzo, vashandi vakatanga kugovera matikiti emapepa kuvashanyi. Izvi zvakaita kuti kushuma kwezvemari kuome, tisingatauri mamwe mashoko anofadza. Asi vashandi vakakwazisa James nekusununguka uye pakarepo vakaenda naye ku server room.

Pakutanga kuona, zvinhu zvose zvakanga zvakanaka. James akapinda muserver achibva atarisa nzvimbo dzainge dzave kufungira. Hapana dambudziko. Nekudaro, kubva mukuchenjerera kwakawanda, James akavhara sevha, akatsiva kadhi retiweki, uye akadzosera kumashure sisitimu. Akabva atanga kushanda zvizere. Vashandi vakatanga kutengesa matikiti zvakare.

James akafonera Mark achimuzivisa mamiriro akanga akaita zvinhu. Hazvina kuoma kufungidzira kuti James angada kuramba achiona kana paine chaisatarisira chinoitika. Akaburuka ndokutanga kubvunza vashandi kuti chii chaitika. Zviri pachena kuti system yakamira kushanda. Vakaidzima ndokubatidza, zvese zvakashanda. Asi mushure memaminitsi gumi system yakadonha.

Panguva iyi chimwe chinhu chakafanana chakaitika. Pakarepo, iyo yetiketi system yakatanga kukanda zvikanganiso. Vashandi vakatura befu ndokutora matikiti ebepa, James achibva amhanyira kuserver room. Zvese zvaitaridzika zvakanaka neserver.

Mumwe wevashandi akabva apinda.

- Iyo sisitimu iri kushanda zvakare.

James zvakamunetsa nekuti hapana zvaainge aita. Kunyanya, hapana chaizoita kuti system ishande. Akabuda ndokutora nhare yake achibva achaira nhare yekambani yake. Nenguva isipi mushandi uya akabva apinda muserver room.

- Iyo system iri pasi.

James akatarisa server. Iyo inonakidza uye inojairika pateni yemavara-mavara maumbirwo akatamba pachiratidziro - chaotically writhing uye intertwining pombi. Tese takaona iyi skrini pane imwe nguva. Yakaitwa zvakanaka uye ichirarisa vanhu.


James akabaya bhatani rikabva ranyangarika. Akamhanyira kuhofisi yematikiti uye munzira akasangana nemushandi achidzokera kwaari.

- Iyo sisitimu iri kushanda zvakare.

Kana uchigona kuita dzungu repfungwa, ndizvo chaizvo zvakaitwa naJames. Screensaver. Inoshandisa OpenGL. Uye saka, panguva yekushanda, inoshandisa zvese zviwanikwa zve server processor. Nekuda kweizvozvo, kufona kwega kwega kune server kunopera nekupera kwenguva.

James akadzokera kuserver room kwakupinda mukati achibva achinja screensaver nemapombi aiyevedza neka blank screen. Kureva kuti, panzvimbo yescreensaver inodya 100% ye processor zviwanikwa, ndakaisa imwe isingadyi zviwanikwa. Ipapo ndakamirira maminitsi gumi kuti nditarise kufunga kwangu.

James paakasvika pane imwe bhaisikopo yaitevera, ainetseka kuti otsanangurira sei maneja wake kuti akanga achangobva kubhururuka 800 km kuti adzime screen saver.

Kuparara kwechimwe chikamu chemwedzi

Nyaya yechokwadi. Rimwe zuva pakamuka software bug yaienderana nechikamu chemwedzi. Paive nekamwe kamuitiro kaiwanzo shandiswa muzvirongwa zvakasiyana siyana zveMIT kuverenga fungidziro yechikamu chechokwadi cheMwedzi. GLS yakagadzira iyi routine muchirongwa cheLISP iyo, kana ichinyora faira, yaiburitsa mutsara une timestamp inokwana mabhii makumi masere kureba. Zvaive zvisingaite kuti mutsara wekutanga wemeseji waizopedzisira warebesa uye uchitungamira kune unotevera mutsara. Uye purogiramu payakazoverenga faira iyi, yakatuka. Kureba kwemutsara wekutanga kwaienderana nezuva chairo uye nguva, pamwe nekureba kwechidimbu chechikamu panguva yakadhindwa chitambi. Kureva kuti, tsikidzi yaienderana nechikamu chemwedzi!

Kutanga bepa edition Jargon File (Steele-1983) yaive nemuenzaniso wemutsara wakadaro waitungamira kune yakatsanangurwa bug, asi typesetter "yakaigadzirisa". Izvi zvabva zvatsanangurwa se "moon phase bug".

Zvisinei, chenjerera nekufungidzira. Makore mashoma apfuura, mainjiniya kubva kuCERN (European Center for Nuclear Research) yakasangana nekukanganisa mukuyedza kwakaitwa paLarge Electron-Positron Collider. Sezvo makomputa achishingairira kugadzirisa huwandu hukuru hwe data inogadzirwa nemudziyo uyu asati aratidza mhedzisiro kune vesainzi, vazhinji vaifungidzira kuti software yacho yainzwa nechikamu chemwedzi. Mainjiniya vakati wandei vakapererwa vakasvika pasi pechokwadi. Iko kukanganisa kwakamuka nekuda kwekuchinja kudiki kweiyo geometry ye27 km kureba mhete nekuda kwekushanduka kwePasi panguva yekufamba kweMwedzi! Nyaya iyi yakapinda mungano yefizikisi se "Kutsiva kwaNewton paPatika Fizikisi" uye muenzaniso wekubatana pakati pemitemo yakapfava uye yekare kwazvo yefizikisi uye pfungwa dzepamusoro dzesainzi.

Kutsvaira muchimbuzi kunomisa chitima

Iyo yakanakisa hardware bug yandati ndambonzwa nezvayo yaive pachitima chinomhanya muFrance. Bhagi iyi yakakonzera kubhurekidzwa kwechitima nechimbichimbi, asi chete kana paine vanhu varimo. Muchiitiko chimwe nechimwe chakadaro, chitima chaibudiswa kunze kwebasa, chakaongororwa, asi hapana chakawanikwa. Akabva adzoserwa pamutsetse, akabva angobondera akamira.

Pane imwe yecheki, mumwe injiniya aifamba nechitima akaenda kuchimbudzi. Nenguva isipi akageza, BOOM! Emergency stop.

Mainjiniya akasangana nemutyairi ndokubvunza:

β€” Wanga uchiitei nguva pfupi isati yasvika?

- Zvakanaka, ndakadzikira pakudzika ...

Izvi zvaishamisa, nokuti panguva yekushanda kwemazuva ose chitima chinodzikira pakudzika kakawanda. Chitima chakafamba, uye pakudzika kunotevera mutyairi akanyevera kuti:

- Ndiri kuenda kunononoka.

Hapana chakaitika.

β€” Wakaitei panguva yekupedzisira braking? - akabvunza mutyairi.

- Zvakanaka ... ndakanga ndiri muchimbuzi ...

- Zvakanaka, zvino enda kuchimbuzi uye uite zvawakaita kana tadzika zvakare!

Injiniya akaenda kuchimbuzi, uye apo mutyairi akanyevera, kuti: β€œNdiri kukurumidza kufamba,” akarasa mvura. Chokwadi, chitima chakabva chamira.

Zvino vaigona kuberekazve dambudziko racho uye vaifanira kuwana chikonzero.

Mushure memaminitsi maviri, vakaona kuti injini yakabhureka tambo yeremote control (chitima chaive neinjini imwe kumagumo ega ega) chakadzimwa kubva pamadziro ekabati yemagetsi uye yakanga yakarara parelay iyo inodzora chimbuzi plug solenoid ... Kana relay. yakabatidzwa, yakagadzira kupindira mutambo yebhureki, uye kuchengetedzwa kwehurongwa kubva pakutadza kunongosanganisira bhureki rekukurumidzira.

Musuwo waivenga FORTRAN

Mwedzi mishoma yapfuura takaona kuti kubatanidza netiweki panyika huru [iyi yakanga iri muHawaii] yakanga yava kuita zvishoma nezvishoma. Izvi zvinogona kugara kwemaminitsi 10-15 uye zvobva zvangoerekana zvaitika zvakare. Mushure menguva yakati, wandaishanda naye akanyunyuta kwandiri kuti mamburekisheni ari kumahombekombe in general haishande. Aive neimwe FORTRAN kodhi yaida kukopwa kumuchina uri kumahombekombe, asi zvakatadza nekuti "network haina kumira kwenguva yakareba kuti FTP ipere."

Ehe, zvakazoitika kuti kutadza kwetiweki kwakaitika mumwe waanoshanda naye akaedza kuFTP faira rine kodhi kodhi muFORTRAN kumuchina uri kumahombekombe. Takaedza kuchengeta iyo faira: yakazokopwa zvakanaka (asi muchina wekunangwa waive usina unpacker, saka dambudziko harina kugadziriswa). Pakupedzisira isu "takatsemura" iyo FORTRAN kodhi kuita zvidimbu zvidiki uye totumira imwe panguva. Zvimedu zvizhinji zvakakopwa pasina matambudziko, asi zvimedu zvishoma hazvina kupfuura, kana kupfuura akawanda kuedza.

Patakaongorora ndima dzainetsa, takaona kuti dzine chimwe chinhu chakafanana: ese aive nemabhuroki ekutaura akatanga uye achipera nemitsara ine capital C (semumwe waaishanda naye aifarira kutaura muFORTRAN). Takatumira maemail nyanzvi dzenetiweki ku mainland tichikumbira rubatsiro. Hongu, vaida kuona samples dzemafaira edu aisakwanisa kufambiswa neFTP... asi tsamba dzedu hadzina kusvika kwavari. Pakupedzisira takauya neine nyore tsananguramafaira asingachinjike akaita sei. Zvakashanda Pamwe hazvina kukosha!]

Pakupedzisira takakwanisa kuzvinzwisisa. Gedhi idzva rakaiswa nguva pfupi yadarika pakati pechikamu chedu checampus uye mainland network. Yakanga ine HUGE yakaoma kufambisa mapaketi aive akadzokororwa mabhiti euppercase C! Angori mashoma emapaketi aya anogona kutora ese egedhi zviwanikwa uye kudzivirira mazhinji mamwe mapaketi kuti asapfuura. Takanyunyuta kumugadziri wegedhi ... uye ivo vakapindura: "O, hongu, wakatarisana nebug inodzokororwa C! Tinotoziva nezvake.” Takazogadzirisa dambudziko nekutenga gedhi nyowani kubva kune mumwe mugadziri (mukudzivirira kwekutanga, kusakwanisa kuendesa FORTRAN zvirongwa kungave mukana kune vamwe!).

Nguva dzakaoma

Makore mashoma apfuura, ndichishanda mukugadzira ETL sisitimu muPerl kuderedza mutengo wechikamu chechitatu chekiriniki miedzo, ndaifanira kugadzirisa angangoita makumi mana emazuva. Vaviri vavo havana kukunda bvunzo. Izvi hazvina kundinetsa zvakanyanya nekuti misi iyi yakatorwa kubva kune vatengi-yakapihwa data iyo yaiwanzoita, isu tichati, zvinoshamisa. Asi pandakatarisa data rekutanga, ndakaona kuti mazuva aya aive Ndira 40, 000 naNdira 1, 2011. Ndakafunga kuti bug raive muchirongwa chandakanga ndichangonyora, asi zvakazoitika kuti akange atove makore makumi matatu. old. Izvi zvingaita sezvisinganzwisisike kune avo vasina kujairana nesoftware ecosystem. Nekuda kwechisarudzo chenguva refu cheimwe kambani kuita mari, mutengi wangu akandibhadhara kuti ndigadzirise tsikidzi yakanga yaunza imwe kambani netsaona uye imwe yacho nemaune. Kuti iwe unzwisise zvandiri kutaura nezvazvo, ndinofanira kutaura nezve kambani yakawedzera chimiro chakazopedzisira chave bhagi, pamwe nezvimwe zviitiko zvishoma zvinonakidza zvakakonzera kusanzwisisika bug yandakagadzirisa.

Mumazuva akanaka ekare, Apple makomputa dzimwe nguva aingoerekana agadzirisa zuva rawo kusvika Ndira 1, 1904. Chikonzero chakanga chiri nyore: yakashandisa bhatiri-powered "system clock" kuchengetedza zuva uye nguva. Chii chakaitika bhatiri rafa? Makomputa akatanga kuronda zuva nenhamba yemasekonzi kubva pakatanga nguva. Nenguva taireva zuva rekutanga rereferensi, uye kuMacintoshes yaive Ndira 1, 1904. Uye mushure mekufa kwebhatiri, zuva razvino rakadzoserwa kune rakatarwa. Asi nei izvi zvakaitika?

Pakutanga, Apple yakashandisa 32 bits kuchengetedza nhamba yemasekonzi kubva pazuva rekutanga. Imwe bhiti inogona kuchengeta imwe yemhando mbiri - 1 kana 0. Mabhiti maviri anogona kuchengeta imwe yemhando ina: 00, 01, 10, 11. Mabhii matatu - kukosha kumwe kubva pasere: 000, 001, 010, 011, 100 , 101, 110, 111, nezvimwe. Uye 32 inogona kuchengeta imwe ye232 values, kureva, 4 seconds. Pamazuva eApple, izvi zvakaenzana nemakore angangoita zana nemakumi matatu nematanhatu, saka maMacs akakura haakwanise kubata misi mushure me294. Uye kana system bhatiri ikafa, zuva rinoiswa patsva kusvika kumasekondi e967 kubva pakutanga kweiyo epoch, uye iwe unofanirwa kuseta nemaoko zuva racho pese paunobatidza komputa (kana kusvika watenga bhatiri nyowani).

Nekudaro, danho reApple rekuchengeta misi semasekondi kubva panguva yaireva kuti isu takatadza kubata misi isati yasvika, iyo yaive nemhedzisiro inosvika kure, sezvatichaona. Apple yakaunza chimiro, kwete bug. Pakati pezvimwe zvinhu, izvi zvaireva kuti iyo Macintosh inoshanda sisitimu yakanga isingadzivirirwe kune "millennium bug" (iyo yaisagona kutaurwa nezve akawanda Mac maapplication aive neayo mazuva masisitimu ekunzvenga zvirambidzo).

Enderera mberi. Isu takashandisa Lotus 1-2-3, IBM's "muurayi application" yakabatsira kuvhura PC shanduko, kunyangwe Apple makomputa aive neVisiCalc, iyo yakaita kuti komputa yako ibudirire. Mukururama, dai 1-2-3 isina kuoneka, maPC angadai asina kutora, uye nhoroondo yemakomputa emunhu angadai akagadzira zvakasiyana. Lotus 1-2-3 yakabata zvisizvo 1900 segore rekusvetuka. Microsoft payakabudisa spreadsheet yayo yekutanga, Multiplan, yakatora chikamu chiduku chemusika. Uye pavakatangisa purojekiti yeExcel, havana kungofunga kukopa mutsara uye mbiru yekutumidza chirongwa kubva kuLotus 1-2-3, asi zvakare kuve nechokwadi chekuenderana nebug nekubata nemaune 1900 segore rinosvetuka. Dambudziko iri richiripo nanhasi. Saka muna 1-2-3 yaive bug, asi muExcel yaive sarudzo yekuziva kuti vese vashandisi 1-2-3 vaigona kupinza matafura avo muExcel vasina kushandura data, kunyangwe zvisirizvo.

Asi pakanga pane rimwe dambudziko. Kutanga, Microsoft yakabudisa Excel yeMacintosh, iyo isina kuziva misi isati yaJanuary 1, 1904. Uye muExcel, January 1, 1900 yaionekwa sekutanga kwenguva. Naizvozvo, vagadziri vakaita shanduko kuitira kuti chirongwa chavo chizive rudzi rwenguva uye data rakachengetwa mukati mayo zvinoenderana nenguva yaidiwa. Microsoft yakatonyora chinyorwa chinotsanangura nezve izvi. Uye iyi sarudzo yakatungamira kune bug yangu.

Yangu ETL sisitimu yakagamuchira Excel maspredishiti kubva kune vatengi akagadzirwa paWindows, asi anogona zvakare kugadzirwa paMac. Saka, kutanga kwenguva mutafura inogona kunge iri Ndira 1, 1900, kana Ndira 1, 1904. Nzira yekuziva sei? Iyo Excel faira fomati inoratidza iyo inodiwa ruzivo, asi iyo parser yandakashandisa haina kuiratidza (ikozvino yava kuita), uye uchifungidzira kuti iwe unoziva epoch yetafura chaiyo. Ini ndingadai ndakapedza nguva yakawanda ndichinzwisisa iyo Excel binary fomati uye kutumira chigamba kumunyori weparser, asi ini ndaive nezvakawanda zvekuitira mutengi, saka ndakakurumidza kunyora heuristic kuti ndione nguva. Akanga ari nyore.

MuExcel, zuva raChikunguru 5, 1998 rinogona kumiririrwa muchimiro "07-05-98" (isina basa American system), "Jul 5, 98", "Chikunguru 5, 1998", "5-Jul-98" kana imwe fomati, imwe fomati isina basa (zvinoshamisa, imwe yemafomati isina kupihwa nevhezheni yangu yeExcel yaive ISO 8601). Nekudaro, mukati metafura, zuva risina kurongeka rakachengetwa se "35981" ye epoch-1900 kana "34519" ye epoch-1904 (nhamba dzinomiririra huwandu hwemazuva kubva panguva yacho). Ini ndakangoshandisa chidimbu chakareruka kuburitsa gore kubva pazuva rakarongwa, uye ndokushandisa iyo Excel parser kubvisa gore kubva pazuva risina kurongeka. Kana hunhu hwese hwaisiyana nemakore mana, saka ndaiziva kuti ndaishandisa system ine epoch-4.

Sei ndisina kungoshandisa mazuva akarongwa? Nekuti Chikunguru 5, 1998 inogona kuumbwa se "Chikunguru, 98" nezuva remwedzi rakarasika. Takagamuchira matafura kubva kumakambani mazhinji akaasika nenzira dzakasiyana siyana zvekuti zvaive kwatiri (munyaya iyi, ini) kufunga mazuva. Kunze kwezvo, kana Excel ikawana zvakanaka, saka isu tinofanira kudaro!

Panguva imwecheteyo ndakasangana ne 39082. Rega ndikuyeuchidze kuti Lotus 1-2-3 yaifunga 1900 gore rinoputika, uye izvi zvakadzokororwa zvakatendeka muExcel. Uye sezvo izvi zvakawedzera zuva rimwe kugore ra1900, mabasa mazhinji ekuverenga mazuva anogona kunge asina kururama pazuva iroro chairo. Ndiko kuti, 39082 inogona kunge iri Ndira 1, 2011 (paMacs) kana Zvita 31, 2006 (paWindows). Kana yangu "gore parser" yakaburitsa gore ra2011 kubva kune yakarongwa kukosha, saka zvese zvakanaka. Asi sezvo iyo Excel parser isingazive iyo epoch iri kushandiswa, inotadza kuenda epoch-1900, ichidzosa gore ra2006. Chikumbiro changu chakaona kuti mutsauko waive makore mashanu, akazviona senge chikanganiso, akachidhinda, uye akadzosera kukosha kusina kurongeka.

Kuti nditenderere izvi, ndakanyora izvi (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

Uye ipapo ese 40 mazuva akapatsanurwa nemazvo.

Pakati pemabasa makuru ekudhinda

Mukutanga kwema1980, baba vangu vakashanda paStorage Technology, dhipatimendi risingachashandi rakagadzira matepi madhiraivha uye masisitimu epneumatic ekudyisa tepi yekumhanyisa.

Vakagadziridza madhiraivha kuitira kuti akwanise kuve nedhiraivha imwe yepakati "A" yakabatana kune manomwe "B" madhiraivha, uye diki OS muRAM iyo yaidzora "A" drive yaigona kugovera kuverenga nekunyora mashandiro kune ese "B" madhiraivha.

Nguva imwe neimwe drive "A" yatangwa, zvaive zvakakodzera kuisa floppy disk mukati meiyo peripheral drive yakabatana ne "A" kuitira kuti itakure iyo inoshanda sisitimu mundangariro yayo. Yakanga iri yechinyakare zvakanyanya: simba rekombuta rakapihwa ne8-bit microcontroller.

Vateereri vezvigadzirwa zvakadaro vaiva makambani ane matura makuru e data - mabhangi, cheni dzekutengesa, nezvimwewo - izvo zvaida kudhinda mazita akawanda ekero kana zvinyorwa zvebhangi.

Mumwe mutengi aive nedambudziko. Pakati pebasa rekudhinda, imwe motokari "A" inogona kumira kushanda, zvichiita kuti basa rose rimire. Kuti udzorere kushanda kwedhiraivha, vashandi vaifanira kutangazve zvese. Uye kana izvi zvikaitika pakati pebasa remaawa matanhatu, ipapo mari yakawanda yekombuta inodhura yakarasika uye purogiramu yebasa rose yakavhiringidzwa.

Vana technician vakatumirwa kubva kuStorage Technologies. Asi zvisinei nekuedza kwavo kwese, havana kukwanisa kuburitsa tsikidzi pasi pemamiriro ebvunzo: zvaiita sezviri kuitika pakati pemabasa makuru ekudhinda. Dambudziko rakanga risiri iro Hardware, vakatsiva zvese zvavaigona: RAM, microcontroller, floppy drive, yese yaifungidzirwa chikamu che tepi drive - dambudziko rakaramba riripo.

Nyanzvi dzakabva dzadaidza muzinda ndokufonera Nyanzvi.

Nyanzvi yakabata chigaro nekapu yekofi, yakagara muimba yekombutaβ€”mumazuva iwayo maiva nemakamuri akatsaurirwa makombiyutaβ€”ndokuona vashandi vachigadzira mutsetse basa guru rokudhinda. Nyanzvi yakanga yakamirira kutadza kuitika - ichibva yaita. Vanhu vese vakatarisa Nyanzvi, asi yaisaziva kuti sei izvi zvaitika. Saka akarayira kuti basa rimiswe zvakare, vashandi vose nevanyanzvi vakadzokera kubasa.

Nyanzvi yakagarazve pachigaro ndokutanga kumirira kuti yakundikana. Anenge maawa matanhatu akapfuura uye kukundikana kwakaitika. Nyanzvi zvakare haina kana zano, kunze kwekuti zvese zvakaitika mumba maive nevanhu. Akaraira kuti mission itangezve, akagara pasi ndokumirira.

Nekutadza kwechitatu, Nyanzvi yakaona chimwe chinhu. Kukundikana kwakaitika apo vashandi vakachinja matepi mune imwe nyika drive. Uyezve, kukundikana kwakaitika nokukurumidza apo mumwe wevashandi akafamba nepakati peimwe tile pasi.

Uriri hwakasimudzwa hwakagadzirwa nearuminiyamu mataira akaiswa paurefu hwemasentimita matanhatu kusvika masere. Waya dzakawanda kubva kumakombuta dzaimhanya pasi peuriri hwakasimudzwa kudzivirira chero munhu kuti asatsika netsaona patambo yakakosha. Matiles akaiswa zvakasimba kuti marara asapinde pasi peuriri hwakasimudzwa.

Nyanzvi yakaziva kuti rimwe rematiles rakanga rakaremara. Kana mushandi akatsika pakona yayo, mipendero yetirairi yakakwesha pamatairi ari pedyo. Zvikamu zvepurasitiki zvakabatanidza mataira zvakare akakwizwa nazvo, izvo zvakakonzera static microdischarges iyo yakagadzira kukanganiswa kweredhiyo.

Nhasi, RAM inodzivirirwa zvirinani kubva pakukanganiswa kweredhiyo. Asi mumakore iwayo zvakanga zvisina kudaro. Nyanzvi yakaziva kuti kupindira uku kwakavhiringidza ndangariro, uye nayo kushanda kweiyo inoshanda system. Akadana basa rekutsigira, akaodha mataira matsva, akaaisa iye pachake, uye dambudziko racho rakanyangarika.

Imvura zhinji!

Nyaya yacho yakaitika mukamuri yepaseva, paimba yechina kana yechishanu yehofisi muPortsmouth (ndinofunga), munzvimbo yedocks.

Rimwe zuva sevha yeUnix ine database huru yakaparara. Vakamudzorera, asi airamba achingodonha nemufaro. Takasarudza kufonera mumwe munhu kubva kubasa rekutsigira.

Mukomana wekutsigira... Ndinofunga kuti zita rake ainzi Mark, asi izvozvo hazvina basa... Handifungi kuti ndinomuziva. Hazvina basa, chaizvo. Ngatinamatei naMaka, kwakanaka here? Hukuru.

Saka, maawa mashomanana gare gare Mark akasvika (haisi kure kure kubva kuLeeds kuenda kuPortsmouth, iwe unoziva), yakashandura sevha uye zvose zvakashanda pasina matambudziko. Tsigiro yakajairika, mutengi anogumbuka nazvo. Mako anotarisa kuburikidza nemafaira egi uye hapana chaanowana. Saka Mark anodzokera muchitima (kana chero nzira yekufambisa yaakasvika nayo, inogona kunge yakakamhina mhou yezvose zvandinoziva ... zvakadaro, hazvina basa, zvakanaka?) uye anodzokera kuLeeds, apedza kuparadza zuva.

Manheru iwayo sevha inodonha zvakare. Nyaya yacho yakafanana ... sevha haimuki. Mako anoedza kubatsira ari kure, asi mutengi haakwanise kutanga sevha.

Imwe chitima, bhazi, lemon meringue kana imwe crap, uye Mark adzoka muPortsmouth. Tarisa, server bhutsu pasina matambudziko! Chishamiso. Mark anotora maawa akati wandei achitarisa kuti zvese zviri mugwara neanoshanda system kana software obva asimuka kuenda kuLeeds.

Pakati pezuva sevha inoputsika (tora nyore!). Panguva ino zvinoita sezvine musoro kuunza vanhu vanotsigira hardware kuti vatsive sevha. Asi kwete, mushure memaawa anenge 10 inowirawo.

Mamiriro acho ezvinhu akazvidzokorora kwemazuva akawanda. Sevha inoshanda, inodonha mushure memaawa angangoita gumi uye haitangi kwemaawa maviri anotevera. Vakatarisa kutonhora, kudonha kwendangariro, vakatarisa zvese, asi hapana chavakawana. Ipapo kubondera kwakamira.

Vhiki rakapera zvisina basa... vanhu vese vakafara. Kufara kusvika zvatanga futi. Mufananidzo wacho wakafanana. 10 maawa ekushanda, 2-3 maawa ekuzorora ...

Zvino mumwe munhu (ndinofunga vakandiudza kuti munhu uyu haana chekuita neIT) akati:

"Ndiyo mhepo!"

Mheremhere iyi yakasanganidzana nekutarisa kusina chinhu, uye ruoko rwemumwe munhu rwakanga rwakazengurira pabhatani rekufona.

"Inomira kushanda nemhepo."

Izvi zvingaite senge pfungwa yekune dzimwe nyika kuvashandi veIT vanotsigira, vasingafungire kuverenga Tide Yearbook vakagarira kofi. Vakatsanangura kuti izvi hazvigone kuve zvine chekuita nemafungu nenzira ipi neipi, nekuti sevha yanga ichishanda kwevhiki pasina kukundikana.

"Svondo rapfuura mafambiro akange akadzikira, asi svondo rino akakwira."

A little terminology kune avo vasina rezinesi reyacht. Mafungu anoenderana nekutenderera kwemwedzi. Uye sezvo Nyika inotenderera, maawa gumi nemaviri ega ega kukweva kweZuva neMwedzi kunogadzira masaisai. Pakutanga kwemaawa 12,5-awa kune mafungu akakwirira, pakati pekutenderera kune kupera, uye pakuguma kune mhepo yakakwirira zvakare. Asi panochinja mafambiro emwedzi, ndipowo musiyano uri pakati pemvura yakaderera nepamusoro. Kana Mwedzi uri pakati peZuva nePasi kana kune mhiri kweNyika (mwedzi wakazara kana pasina mwedzi), tinowana maSyzygyn tides - mafungu epamusoro-soro uye mafungu akaderera. Pahafu yemwedzi tinowana quadrature tides - mafungu akaderera. Musiyano pakati pezviviri zvakanyanyisa unoderera zvakanyanya. Kutenderera kwemwedzi kunotora mazuva makumi maviri nemasere: syzygian - quadrature - syzygian - quadrature.

Vana technician pavakatsanangurirwa zvakaita mafungu emvura, vakabva vafunga kuti vaifanira kufonera mapurisa. Uye zvine musoro. Asi zvakazoitika kuti murume wacho aive chokwadi. Vhiki mbiri dzapfuura, muparadzi akamira kure kure nehofisi. Pese paikwidziridzwa nemafungu kusvika pahurefu hwakati, radar posvo yengarava yaiperera padanho rekamuri yekamuri. Uye radar (kana midziyo yehondo yemagetsi, kana chimwe chitoyi chemauto) yakagadzira mhirizhonga mumakomputa.

Flight mission ye roketi

Ini ndakapihwa basa rekutakura hombe (inenge 400 zviuru mitsetse) rocket launch control uye monitoring system kune itsva shanduro dzekushandisa system, compiler uye mutauro. Kunyanya, kubva kuSolaris 2.5.1 kusvika kuSolaris 7, uye kubva kuVerdix Ada Development System (VADS), yakanyorwa muAda 83, kusvika kuRational Apex Ada system, yakanyorwa muAda 95. VADS yakatengwa neRational, uye chigadzirwa chayo kusashanda, kunyangwe Rational yakaedza kushandisa shanduro dzinoenderana dzeVADS-chaiyo mapakeji kuti kurerutsa shanduko kuenda kuApex compiler.

Vanhu vatatu vakandibatsira kuti kodhi yacho iumbwe zvakachena. Zvakatora mavhiki maviri. Zvino ndakashanda ndega kuti system ishande. Muchidimbu, yaive yakaipisisa dhizaini uye kuita kwesoftware system yandakanga ndasangana nayo, saka zvakatora imwe mwedzi miviri kupedzisa chiteshi. Sitimu yacho yakabva yaendeswa kunoongororwa, izvo zvakatora mimwe mwedzi yakati kuti. Ini ndakabva ndagadzirisa tsikidzi dzakawanikwa panguva yekuyedzwa, asi nhamba yavo yakakurumidza kuderera (iyo kodhi kodhi yaive hurongwa hwekugadzira, saka mashandiro ayo akashanda zvakavimbika, ini ndaifanira kubvisa tsikidzi dzakamuka panguva yekuchinjirwa kune nyowani compiler). Pakupedzisira, apo zvinhu zvose zvakanga zvava kushanda sezvazvaifanira, ndakachinjirwa kune chimwe chirongwa.

Uye musi weChishanu pamberi peKutenda, runhare rwakarira.

Kuvhurwa kweroketi kwaifanirwa kuyedzwa mukati memavhiki matatu, uye panguva yekuedzwa kwema laboratori yekuverenga pasi, kutevedzana kwemirairo kwakavharwa. Muhupenyu chaihwo, izvi zvaizobvisa bvunzo, uye kana kuvharika kwakaitika mukati memasekondi mashoma ekutanga injini, zviito zvinoverengeka zvisingadzoreki zvaizoitika mumasisitimu ekubatsira, izvo zvingada kureba - uye kudhura - kugadzirira roketi. Zvingadai zvisina kutanga, asi vanhu vazhinji vangadai vakagumbuka zvikuru pamusoro pekurasikirwa nenguva uye yakawanda, mari yakawanda. Usaite kuti chero munhu akuudze kuti Dhipatimendi reDziviriro rinoshandisa mari zvisina hanya-handisati ndambosangana nemaneja wekondirakiti uyo asina kuisa bhajeti yekutanga kana yechipiri, ichiteverwa nehurongwa.

Mumwedzi yapfuura, dambudziko rekuverengera iri rakanga raitwa mazana enguva mumisiyano yakawanda, nekungori mahiccups mashoma. Saka mukana wekuti izvi zviitike waive wakaderera, asi mhedzisiro yacho yaive yakakosha. Wedzera zvinhu zviviri izvi, uye iwe uchanzwisisa kuti nhau dzakafanotaura vhiki yezororo yakaparara kwandiri uye akawanda einjiniya nemamaneja.

Uye kutariswa kwakabhadharwa kwandiri semunhu akatakura system.

Sezvineiwo nedziviriro-yakakosha masisitimu, akawanda ma paramita akaiswa, saka zvaive nyore kuona mitsetse mishoma yekodhi yakaitwa system isati yapunzika. Uye chokwadika, pakanga pasina chinhu chisina kujairika pavari; matauriro mamwe chetewo akanga aitwa zvinobudirira chaizvoizvo zviuru zvenguva panguva imwe cheteyo.

Takadaidza vanhu vekuApex to Rational nekuti ndivo vakagadzira compiler uye mamwe ma routines avakaita ainzi ne suspicious code. Ivo (uye vamwe vose) vakaororwa kuti pakanga pane dikanwo yokusvika kumudzi wechinetso chokukosha chaikoiko kwenyika.

Sezvo pakanga pasina chinhu chinofadza mumagazini, takasarudza kuedza kuberekazve chinetso chacho murabhoritari yomunzvimbomo. Iri rakanga risiri basa riri nyore sezvo chiitiko ichi chakaitika kamwechete pa1000 inomhanya. Chimwe chikonzero chaifungidzirwa ndechekuti kufona kune mutengesi-akagadziridzwa mutex basa (chikamu cheVADS migration package) Unlock hazvina kutungamirira kukiinura. Iyo tambo yekugadzira iyo yakadana basa yakagadziridzwa mameseji ekurova kwemoyo, ayo aisvika sekondi yega yega. Isu takasimudza frequency kusvika ku10 Hz, kureva, kagumi pasekondi, ndokutanga kumhanya. Inenge awa imwe gare gare system yakazvikiyiwa. Murogi, takaona kuti kutevedzana kwemameseji akarekodhwa kwakangofanana panguva yekutadza bvunzo. Isu takaita akati wandei kumhanya, sisitimu yacho yaigara yakavharwa 10-45 maminetsi mushure mekutanga, uye pese pese iro logi rine nzira imwechete. Kunyangwe isu taive tekinoroji tichimhanyisa kodhi yakasiyana - iyo frequency meseji yaive yakasiyana - maitiro eiyo system aive akafanana, saka takanga tine chivimbo chekuti iyi mitoro yaive ichikonzera dambudziko rimwe chete.

Zvino isu taida kufunga kuti kuvharika kwakaitika kupi chaizvo mukutevedzana kwezvirevo.

Kuitwa uku kwehurongwa kwakashandisa iyo Ada task system, uye yakaishandisa zvisina kunaka. Mabasa akakwirira-pamwero anogadzirwa panguva imwe chete muAda, chimwe chinhu senge tambo dzekuuraya, inongovakwa mumutauro pachawo. Kana mabasa maviri achida kutaurirana, "vanoseta rendezvous", vanochinjana data rinodiwa, vobva vamisa musangano vodzokera kune avo vakazvimiririra. Zvisinei, hurongwa hwakashandiswa zvakasiyana. Mushure mekunge chinangwa chebasa rave rendezvous, iro chinangwa chebasa rakadzokororwa nerimwe basa, iro rakazosangana nebasa rechitatu, zvichingodaro kusvika kumwe kugadzirisa kwapera. Mushure meizvi, kuungana kwese uku kwakapedzwa uye basa rimwe nerimwe raifanira kudzokera pakuitwa kwaro. Ndokunge, isu taibata neinodhura kwazvo basa rekufona system munyika, iyo yakamisa iyo yese "multitasking" maitiro apo ichigadzirisa chikamu che data rekuisa. Uye izvi zvisati zvaitika hazvina kutungamirira kumatambudziko chete nokuti kubuda kwaive kwakaderera zvikuru.

Ndakatsanangura magadzirirwo ebasa iri nekuti kana rendezvous yakumbirwa kana kutarisirwa kupera, "task switch" inogona kuitika. Ndiko kuti, processor inogona kutanga kugadzirisa rimwe basa rakagadzirira kuitwa. Zvinoitika kuti kana rimwe basa ragadzirira kusangana nerimwe basa, basa rakasiyana zvachose rinogona kutanga kuita, uye pakupedzisira kutonga kunodzokera kune yekutanga rendezvous. Uye zvimwe zviitiko zvinogona kuitika izvo zvinoita kuti basa richinje; chimwe chiitiko chakadaro kudana kune system function, sekudhinda kana kuita mutex.

Kuti ndinzwisise kuti ndeupi mutsara wekodhi waikonzera dambudziko, ndaifanira kutsvaga nzira yekunyora kufambira mberi kuburikidza nenhevedzano yezvirevo pasina kukonzeresa shanduko yebasa, iyo yaizodzivirira kuparara kuitika. Saka handina kukwanisa kutora mukana Put_Line()kudzivirira kuita mabasa eI/O. Ini ndinogona kuseta dhizaini kana chimwe chinhu chakafanana, asi ndingaone sei kukosha kwayo kana ini ndisingakwanise kuiratidza pachiratidziri?

Uyezve, pakuongorora iyo log, zvakazoitika kuti, pasinei nechando mukugadziriswa kwemashoko ekurohwa kwemoyo, iyo yakavhara mabasa ose eI / O ekugadzirisa uye kudzivirira mamwe maitiro kubva pakuitwa, mamwe mabasa akazvimirira akaramba achiitwa. Ndiko kuti, basa harina kuvharwa zvachose, chete (yakakosha) cheni yemabasa.

Ichi ndicho chaive chiziviso chaidiwa kuongorora kutaura kwekuvhara.

Ndakagadzira pasuru yeAda yaive nebasa, mhando yakanyorwa, uye shanduko yepasi rose yerudzi irworwo. Mavara asingaverengeki aisungirwa kune mamwe mataurirwo edambudziko rekutevedzana (e.g. Incrementing_Buffer_Index, Locking_Mutex, Mutex_Unlocked), uye ndokuisa mataurirwo ebasa mariri ayo akapa nhamba inoenderana neshanduko yepasi rose. Sezvo iyo kodhi yechinhu chese ichi ichingochengeta chinogara chiri mundangariro, basa rekuchinja semhedzisiro yekuitwa kwayo kwaisanyanya kuitika. Isu tainyanya kufungidzira matauriro anogona kushandura basa, sezvo kuvharika kwakaitika pakuurayiwa kwete kudzoka kana uchidzosera basa kumashure (nekuda kwezvikonzero zvakati).

Basa rekutevera raingomhanya muchiuno uye nguva nenguva rakatarisa kuti vaone kana kukosha kweiyo shanduko yepasirese kwachinja. Nekuchinja kwega kwega, kukosha kwakachengetwa kufaira. Zvadaro kumirira kwenguva pfupi uye cheki itsva. Ndakanyora shanduko kune iyo faira nekuti basa rakaitwa chete kana sisitimu yasarudza kuti iitwe kana ichichinja basa munzvimbo ine dambudziko. Chero chii chakaitika mubasa iri hachizokanganisa mamwe, asina hukama akavharika mabasa.

Zvaitarisirwa kuti kana sisitimu yasvika padanho rekuita kodhi ine dambudziko, shanduko yepasi rose yaizogadzwa patsva kana ichienda kune imwe neimwe inotevera kutaura. Zvadaro chimwe chinhu chichaitika chinoita kuti basa richinje, uye sezvo mafambisirwo ayo ekuita (10 Hz) yakaderera pane iyo yebasa rekutarisa, iyo yekutarisa inogona kutora kukosha kweiyo shanduko yepasi rose uye kuinyora. Mumamiriro ezvinhu akajairwa, ndaigona kuwana kudzokorora kutevedzana kweiyo subset yezviverengero: ekupedzisira kukosha kwekusiyana panguva yekuchinja kwebasa. Pakurembera, shanduko yepasi rose haifanire kushanduka, uye kukosha kwekupedzisira kunyorwa kucharatidza kuti ndeupi kutaura kusina kupera.

Ndakamhanya kodhi nekutevera. Akapindwa nechando. Uye kuongorora kwakashanda senge wachi.

Murogi wacho waive nenhevedzano yaitarisirwa, iyo yakavhiringwa neukoshi hwairatidza kuti chimumumu chakanga chadanwa. Unlock, uye basa harina kupedzwa - sezvazvakaita nezviuru zvemafoni apfuura.

Apex mainjiniya vaiongorora kodhi yavo panguva iyi uye vakawana nzvimbo mutex umo, sezvinei, kukiya kwaigona kuitika. Asi mukana wayo wakanga wakaderera zvikuru, sezvo bedzi nhevedzano yakati yezviitiko zvinoitika pane imwe nguva yaigona kutungamirira kukudzivisa. Mutemo waMurphy, varume, ndiwo Mutemo waMurphy.

Kuti ndidzivirire chidimbu chekodhi yandaida, ndakatsiva iyo mutex basa mafoni (yakavakwa pamusoro peiyo OS mutex mashandiro) nediki diki Ada mutex package yekudzora mutex kuwana kune icho chidimbu.

Ndakaipinza mucode ndokumhanya bvunzo. Maawa manomwe gare gare code yakanga ichiri kushanda.

Kodhi yangu yakaendeswa kuRational, kwavakaiunganidza, vakaibvisa, uye vakatarisa kuti haina kushandisa nzira imwechete yaishandiswa mumatambudziko mutex mabasa.

Iyi ndiyo yaive yakanyanya kuwanda kodhi ongororo yebasa rangu πŸ™‚ Pakanga paine mainjiniya gumi nemamaneja mukamuri neni, vamwe vanhu gumi vaive pamusangano wekufona - uye vese vakaongorora nezve mitsara makumi maviri yekodhi.

Iyo kodhi yakadzokororwa, mafaera matsva anogoneka akaunganidzwa uye akaendeswa kune yepamutemo regression bvunzo. Masvondo mashoma gare gare, bvunzo yekuverenga yakabudirira uye roketi rakasimuka.

Zvakanaka, izvo zvese zvakanaka uye zvakanaka, asi chinangwa cheiyi nyaya?

Rakanga riri dambudziko rinosemesa chose. Mazana ezviuru zvemitsara yekodhi, kuuraya kwakafanana, maitiro anopfuura gumi nemaviri ekudyidzana, zvivakwa zvisina kunaka uye kusaita zvakanaka, machinjiro emasisitimu akaiswa uye mamirioni emadhora akashandiswa. Hapana pressure, handiti.

Handisi ini ndega ndaishanda padambudziko iri, kunyangwe ndakanga ndiri munzvimbo yandakanga ndichiita kutakura. Asi kunyangwe ndakazviita, hazvireve kuti ndakanzwisisa mazana ezviuru zvemitsara yekodhi, kana kutombozvitsveta. Kodhi nematanda zvakaongororwa nevainjiniya munyika yose, asi pavakandiudza mafungiro avo nezvezvikonzero zvekukundikana, zvakangonditorera hafu yeminiti kuti ndizvirambe. Uye pandaikumbirwa kuti ndiongorore dzidziso, ndaizozvipfuudza kune mumwe munhu, nokuti zvaiva pachena kwandiri kuti mainjiniya aya akanga ari kufamba nenzira isiri iyo. Kunzwika kuzvitutumadza? Hongu, ichi ichokwadi, asi ini ndakaramba fungidziro uye zvikumbiro zvechimwe chikonzero.

Ndakanzwisisa mamiriro edambudziko. Ndakashaya kuti chii chaiitika uye kuti chii chaiitika asi ndaiziva zvaiitika.

Kwemakore ose aya, ndakaunganidza ruzivo rwakawanda uye ruzivo. Ndakanga ndiri mumwe wevakatanga kushandisa Ada uye ndainzwisisa zvakanakira nekuipira. Ndinoziva mashandisiro eAda runtime raibhurari anobata mabasa uye anobata nekuita kwakafanana. Uye ini ndinonzwisisa yakaderera-level programming pamwero wekuyeuka, marejista uye assembler. Mune mamwe mazwi, ndine ruzivo rwakadzama mumunda wangu. Uye ndakavashandisa kutsvaga chikonzero chedambudziko. Ini handina kungoshanda ndichitenderedza bug, ndainzwisisa kuti ndingaiwana sei munzvimbo ine hunyanzvi hwekumhanya.

Nyaya dzakadai dzekurwa nekodhi hadzinakidze zvakanyanya kune avo vasingazive maitiro uye mamiriro ekurwa kwakadaro. Asi nyaya idzi dzinotibatsira kunzwisisa zvinodikanwa kugadzirisa matambudziko akaoma chaizvo.

Kuti ugadzirise matambudziko akaomarara, haufanire kunge uri mugadziri. Iwe unofanirwa kunzwisisa "kuguma" kwekodhi, kuti inopindirana sei nenharaunda yayo, uye kuti nharaunda pachayo inoshanda sei.

Uye ipapo iwe unenge uine yako yakaparara vhiki yezororo.

Zvichaenderera mberi.

Source: www.habr.com

Voeg