Mbiri ya opanga mapulogalamu ndi mainjiniya (gawo 1)

Mbiri ya opanga mapulogalamu ndi mainjiniya (gawo 1)

Izi ndinkhani zingapo zapaintaneti za momwe nsikidzi nthawi zina zimakhala ndi mawonekedwe osaneneka. Mwina nanunso muli ndi zoti munene.

Magalimoto osagwirizana ndi ayisikilimu a vanila

Nkhani ya mainjiniya omwe amamvetsetsa kuti zodziwikiratu sizikhala yankho nthawi zonse, ndikuti ngakhale zowona zingawonekere kutali bwanji, zidakali zowona. Pontiac Division ya General Motors Corporation idalandira dandaulo:

Aka ndi nthawi yachiwiri ndikulemberani, ndipo sindikukuimbani mlandu chifukwa chosayankha, chifukwa zikumveka ngati wamisala. Banja lathu lili ndi chizolowezi chodya ayisikilimu usiku uliwonse tikamaliza chakudya chamadzulo. Mitundu ya ayisikilimu imasintha nthawi zonse, ndipo pambuyo pa chakudya chamadzulo, banja lonse limasankha ayisikilimu kuti agule, pambuyo pake ndimapita ku sitolo. Posachedwa ndagula Pontiac yatsopano ndipo kuyambira pamenepo maulendo anga okatenga ayisikilimu akhala vuto. Mukuwona, nthawi iliyonse ndikagula ayisikilimu ya vanila ndikubwerera kuchokera kusitolo, galimoto simayamba. Ndikabweretsa ayisikilimu ina, galimoto imayamba popanda vuto lililonse. Ndikufuna kufunsa funso lalikulu, ngakhale limveka mopusa bwanji: "Ndi chiyani za Pontiac zomwe zimapangitsa kuti zisayambe ndikabweretsa ayisikilimu a vanila, koma zimayamba mosavuta ndikabweretsa ayisikilimu wina?" "

Monga momwe mungaganizire, pulezidenti wagawo adakayikira za kalatayo. Komabe, kuti zingochitika, ndinatumiza mainjiniya kuti adzawone. Iye anadabwa kuti anakumana ndi mwamuna wina wolemera, wophunzira kwambiri amene amakhala m’dera lokongola. Anagwirizana kuti akumane atangomaliza kudya kuti awiriwa apite ku sitolo kukatenga ayisikilimu. Madzulo ake kunali vanila, ndipo atabwerera ku galimotoyo, siinayambe.

injiniya anabwera madzulo ena atatu. Nthawi yoyamba ayisikilimu anali chokoleti. Galimoto inayambika. Kachiwiri panali sitiroberi ayisikilimu. Galimoto inayambika. Usiku wachitatu anapempha kuti atenge vanila. Galimoto siinayambike.

Polingalira momveka bwino, injiniyayo anakana kukhulupirira kuti galimotoyo inali yosagwirizana ndi ayisikilimu a vanila. Choncho, ndinagwirizana ndi mwini galimotoyo kuti apitirize maulendo ake mpaka atapeza njira yothetsera vutolo. Ndipo panjira, anayamba kulemba: analemba zonse, nthawi ya tsiku, mtundu wa mafuta, nthawi yobwera ndi kubwerera ku sitolo, etc.

Posakhalitsa injiniyayo anazindikira kuti mwini galimotoyo amathera nthawi yochepa pogula ayisikilimu ya vanila. Chifukwa chake chinali kamangidwe ka katundu m'sitolo. Vanila ayisikilimu anali otchuka kwambiri ndipo ankasungidwa mufiriji yosiyana kutsogolo kwa sitolo kuti asapezeke mosavuta. Ndipo mitundu ina yonse inali kumbuyo kwa sitolo, ndipo zinatenga nthawi yochulukirapo kuti mupeze mitundu yoyenera ndikulipira.

Tsopano funso linali la injiniya: chifukwa chiyani galimotoyo sinayambe ngati nthawi yocheperapo idadutsa kuyambira pomwe injiniyo idazimitsidwa? Popeza vuto linali nthawi, osati ayisikilimu ya vanila, injiniyayo adapeza yankho mwachangu: inali loko yotsekera gasi. Zinkachitika madzulo aliwonse, koma mwini galimotoyo akamathera nthawi yochuluka kufunafuna ayisikilimu, injiniyo inatha kuzizira mokwanira ndipo inayamba mosavuta. Ndipo mwamunayo atagula ayisikilimu ya vanila, injiniyo inali idakali yotentha kwambiri ndipo loko ya gasi inalibe nthawi yoti isungunuke.

Makhalidwe: Ngakhale mavuto openga kwambiri nthawi zina amakhala enieni.

kuwonongeka Bandicoot

Ndi zowawa kukumana ndi izi. Monga wopanga mapulogalamu, mumazolowera kuimba mlandu code yanu yoyamba, yachiwiri, yachitatu ... Ndipo zina pansi mndandanda inu kale mlandu zida.

Nayi nkhani yanga yokhudza cholakwika cha Hardware.

Pamasewera a Crash Bandicoot, ndidalemba khodi kuti ndikuyike ndikusunga ku memori khadi. Kwa wopanga masewera onyansa, zinali ngati kuyenda paki: Ndinkaganiza kuti ntchitoyi idzatenga masiku angapo. Komabe, ndinamaliza kukonza code kwa milungu isanu ndi umodzi. M'njira, ndinathetsa mavuto ena, koma masiku angapo ndinabwerera ku code iyi kwa maola angapo. Zinali zowawa kwambiri.

Chizindikirocho chinkawoneka chonchi: mukamasunga masewera a masewerawa ndikupeza memori khadi, zonse zimakhala bwino ... Koma nthawi zina nthawi yowerengera kapena kulemba ntchito popanda chifukwa chodziwika. Kujambula kwachidule nthawi zambiri kumawononga memori khadi. Pamene wosewera mpira akuyesera kupulumutsa, sikuti amangolephera kusunga, komanso amawononga mapu. Zopusa.

Patapita kanthawi, wopanga wathu ku Sony, Connie Bus, anayamba kuchita mantha. Sitinathe kutumiza masewerawa ndi cholakwikacho, ndipo patadutsa milungu isanu ndi umodzi sindinamvetsetse chomwe chikuyambitsa vutoli. Kudzera kwa Connie, tidalumikizana ndi opanga ena a PS1: pali wina yemwe adakumanapo ndi zofanana? Ayi. Palibe amene anali ndi vuto ndi memori khadi.

Mukakhala mulibe malingaliro owongolera, njira yokhayo yomwe yatsala ndi "kugawanitsa ndikugonjetsa": chotsani kachidindo kochulukira ku pulogalamu yolakwika mpaka patsala kachidutswa kakang'ono komwe kamayambitsa vutoli. Ndiye kuti, mumadula pulogalamuyo pang'onopang'ono mpaka gawo lomwe lili ndi kachilomboka likhalebe.

Koma zoona zake n’zakuti, n’kovuta kwambiri kuchotsa masewero a pakompyuta. Kodi mungayendetse bwanji ngati mutachotsa code yomwe imatsanzira mphamvu yokoka? Kapena zojambula?

Chifukwa chake, tiyenera kusintha ma module onse ndi ma stubs omwe amadzinamizira kuti akuchita zinthu zothandiza, koma kwenikweni kuchita chinthu chosavuta chomwe sichingakhale ndi zolakwika. Tiyenera kulemba ndodo zoterezi kuti masewerawa agwire ntchito. Izi ndizovuta komanso zopweteka.

Mwachidule, ndinachita. Ndinachotsa ma code ambiri mpaka nditatsala ndi code yoyamba yomwe imakonza dongosolo loyendetsa masewerawo, kuyambitsa hardware yoperekera, ndi zina zotero. Zachidziwikire, pakadali pano sindingathe kupanga menyu yosungira ndikuyika, chifukwa ndiyenera kupanga cholembera pamakhodi onse azithunzi. Koma ndimatha kunamizira kuti ndine wogwiritsa ntchito (yosaoneka) sungani ndikuyika chophimba ndikufunsa kusunga ndikulembera ku memori khadi.

Izi zidandisiyira kachidutswa kakang'ono komwe kadali ndi vuto lomwe lili pamwambapa - koma lidali kuchitikabe mwachisawawa! Nthawi zambiri zonse zinkayenda bwino, koma nthawi zina panali zolakwika. Ndinachotsa pafupifupi ma code onse amasewera, koma cholakwikacho chikadali chamoyo. Izi zinali zodabwitsa: nambala yotsalayo sinachite kalikonse.

Panthawi ina, mwina cha m’ma XNUMX koloko m’mawa, ndinayamba kuganizira kwambiri. Kuwerenga ndi kulemba (zolowera/zotulutsa) kumakhudza nthawi yeniyeni yochitira. Mukamagwira ntchito ndi hard drive, memory card kapena Bluetooth module, code yotsika yomwe imayang'anira kuwerenga ndi kulemba imachita molingana ndi mawotchi.

Mothandizidwa ndi wotchi, chipangizo chomwe sichimalumikizidwa mwachindunji ndi purosesa chimalumikizidwa ndi code yomwe ikuchita pa purosesa. Wotchiyo imatsimikizira kuchuluka kwa baud—liwiro limene deta imasamutsidwa. Ngati pali chisokonezo ndi nthawi, ndiye kuti hardware kapena mapulogalamu, kapena onse awiri, amasokonezeka. Ndipo izi ndi zoipa kwambiri, chifukwa deta akhoza kuonongeka.

Nanga bwanji ngati china chake mu code yathu chikusokoneza nthawi? Ndidayang'ana chilichonse chokhudzana ndi izi pamakina oyeserera ndikuwona kuti tidayika chowerengera mu PS1 mpaka 1 kHz (1000 nkhupakupa pamphindikati). Izi ndizambiri; mwachikhazikitso, kontrakitala ikayamba, imayenda pa 100 Hz. Ndipo masewera ambiri amagwiritsa ntchito pafupipafupi.

Andy, woyambitsa masewerawa, adayika chowerengera kukhala 1 kHz kuti mayendedwe awerengedwe molondola. Andy amakonda kupitilira, ndipo ngati titengera mphamvu yokoka, timachita molondola momwe tingathere!

Koma bwanji ngati kufulumizitsa chowerengera mwanjira ina kukhudza nthawi yonse ya pulogalamuyo, motero wotchi yomwe imawongolera kuchuluka kwa memori khadi?

Ndinapereka ndemanga pa coder ya nthawi. Cholakwikacho sichinachitikenso. Koma izi sizikutanthauza kuti tinakonza, chifukwa kulephera kunachitika mwachisawawa. Bwanji ndikanakhala ndi mwayi?

Patapita masiku angapo ndinayesanso pulogalamu yoyesera. Vutoli silinabwerenso. Ndinabwereranso ku codebase yamasewera onse ndikusintha kachidindo kosungirako ndi katundu kuti chowerengera chokhazikika chikhazikitsenso pamtengo wake woyambirira (100Hz) ndisanalowe memori khadi, ndikuyambiranso ku 1kHz. Panalibenso ngozi.

Koma n’cifukwa ciani zimenezi zinacitika?

Ndinabwereranso ku pulogalamu yoyesera. Ndinayesa kupeza chitsanzo pakachitika cholakwika ndi 1 kHz timer. Pambuyo pake ndinawona kuti cholakwikacho chimachitika pamene wina amasewera ndi wolamulira wa PS1. Popeza sindingachite izi ndekha - chifukwa chiyani ndingafunikire wowongolera ndikayesa kusunga ndikuyika ma code? - Sindinazindikire kudalira uku. Koma tsiku lina mmodzi wa ojambula athu amandidikirira kuti ndimalize kuyesa - mwina ndinali kutukwana panthawiyo - ndipo mwamantha ndinagwedeza wolamulira m'manja mwake. Zalakwika. "Dikirani, chiyani?!" Chabwino, chitanso!

Nditazindikira kuti zochitika ziwirizi zinali zogwirizana, ndinatha kubwereza zolakwikazo mosavuta: Ndinayamba kujambula ku memori khadi, kusuntha wolamulira, ndikuwononga memori khadi. Kwa ine zinkawoneka ngati cholakwika cha hardware.

Ndinabwera kwa Connie ndikumuuza za zomwe ndapeza. Adapereka chidziwitso kwa m'modzi mwa mainjiniya omwe adapanga PS1. “N’zosatheka,” iye anayankha, “silingakhale vuto la hardware.” Ndinamupempha Connie kuti akonze zoti tikambirane.

Engineer anandiitana ndipo tinakangana mu Chingerezi chake chosweka ndi Chijapani changa (chosweka kwambiri). Pomaliza ndidati, "Ndiloleni ndingotumiza pulogalamu yanga yoyesa mizere 30 komwe kusuntha kowongolera kumayambitsa vuto." Iye anavomera. Anati kunali kuwononga nthawi komanso kuti anali wotanganidwa kwambiri kugwira ntchito yatsopano, koma alola chifukwa tinali ofunikira kwambiri a Sony. Ndinayeretsa pulogalamu yanga yoyesera ndikumutumizira.

Madzulo otsatirawa (tinali ku Los Angeles ndipo iye anali ku Tokyo) anandiimbira foni ndikupepesa mwamwano. Linali vuto la hardware.

Sindikudziwa chomwe cholakwikacho chinali, koma kuchokera ku zomwe ndidamva ku likulu la Sony, ngati muyika chowerengera pamtengo wokwanira, chimasokoneza zigawo za boardboard pafupi ndi kristalo wa timer. Mmodzi wa iwo anali wowongolera mlingo wa baud pa memori khadi, yomwe imayikanso mlingo wa baud kwa olamulira. Ine sindine injiniya, kotero ine mwina ndasokoneza chinachake.

Koma mfundo yaikulu ndi yakuti panali kusokoneza pakati pa zigawo za motherboard. Ndipo potumiza deta nthawi imodzi kudzera pa doko la olamulira ndi doko la memori khadi ndi timer yomwe ikuyenda pa 1 kHz, bits zinatayika, deta inatayika, ndipo khadi linawonongeka.

Ng'ombe zoipa

M'zaka za m'ma 1980, mlangizi wanga Sergei analemba mapulogalamu a SM-1800, chojambula cha Soviet cha PDP-11. Kakompyuta kakang'ono kakang'ono kameneka kaikidwa kumene pa siteshoni ya njanji pafupi ndi Sverdlovsk, malo ofunika kwambiri oyendera mayendedwe ku USSR. Dongosolo latsopanoli linapangidwa kuti lizitha kuyendetsa ngolo ndi magalimoto onyamula katundu. Koma inali ndi kachilombo kokhumudwitsa komwe kamayambitsa ngozi ndi ngozi. Nthawi zonse kugwa kunkachitika munthu akapita kunyumba madzulo. Koma ngakhale atafufuza mozama tsiku lotsatira, kompyutayo idagwira ntchito bwino pamayeso onse amanja ndi odziwikiratu. Izi nthawi zambiri zimawonetsa mtundu wamtundu kapena cholakwika china chomwe chimachitika nthawi zina. Atatopa ndi mafoni usiku, Sergei adaganiza zofika pansi pake, ndipo choyamba, kumvetsetsa zomwe zikuchitika pabwalo loyendetsa zida zomwe zinachititsa kuti makompyuta awonongeke.

Choyamba, adasonkhanitsa ziwerengero za kugwa kosadziwika bwino ndikupanga graph ndi tsiku ndi nthawi. Chitsanzocho chinali chowonekera. Ataona kwa masiku angapo, Sergei anazindikira kuti akhoza kuneneratu nthawi imene zinthu zidzalephereke m’tsogolo.

Posakhalitsa anazindikira kuti zisokonezo zinangochitika pamene siteshoniyo inkasankha ng’ombe zodzaza sitima zochokera kumpoto kwa Ukraine ndi kumadzulo kwa dziko la Russia n’kupita kumalo opherako nyama chapafupi. Izi mwazokha zinali zachilendo, chifukwa nyumba yophera nyamayo inaperekedwa ndi mafamu omwe ali pafupi kwambiri, ku Kazakhstan.

Malo opangira magetsi a nyukiliya ku Chernobyl anaphulika mu 1986, ndipo kuphulika kwa radioactive kunapangitsa kuti madera ozungulira asakhalenso anthu. Madera ambiri kumpoto kwa Ukraine, Belarus ndi kumadzulo kwa Russia anali okhudzidwa. Poganizira kuchuluka kwa ma radiation m'magalimoto obwera, Sergei adapanga njira yoyesera chiphunzitsochi. Chiwerengero cha anthu chinali choletsedwa kukhala ndi dosimeters, choncho Sergei analembetsa yekha ndi asilikali angapo pa siteshoni ya njanji. Atatha kumwa mowa wambiri wa vodika, adakwanitsa kutsimikizira msilikali kuti ayese mlingo wa ma radiation mu imodzi mwa ngolo zokayikitsa. Zinapezeka kuti mlingowo unali wokwera kangapo kuposa makhalidwe abwino.

Sikuti ng'ombe zimatulutsa ma radiation ambiri, mlingo wake unali wochuluka kwambiri moti zinachititsa kuti pakhale kuwonongeka kwachisawawa kukumbukira SM-1800, yomwe inali m'nyumba yomwe ili pafupi ndi siteshoni.

Mu USSR munali njala, ndipo akuluakulu adaganiza zosakaniza nyama ya Chernobyl ndi nyama kuchokera kumadera ena a dzikolo. Izi zinapangitsa kuti zitheke kuchepetsa mlingo wonse wa radioactivity popanda kutaya zinthu zamtengo wapatali. Ataphunzira za izi, Sergei nthawi yomweyo anadzaza zikalata kusamuka. Ndipo kuwonongeka kwa makompyuta kunayima paokha pamene mlingo wa radiation unachepa pakapita nthawi.

Kupyolera mu mipope

Kalekale, Movietech Solutions idapanga mapulogalamu amakanema, opangidwira ma accounting, kugulitsa matikiti ndi kasamalidwe kake. Mtundu wa DOS wa pulogalamu yam'manja unali wotchuka kwambiri pakati pa makanema ang'onoang'ono komanso apakatikati ku North America. Choncho n'zosadabwitsa kuti pamene Mawindo 95 Baibulo analengeza, Integrated ndi atsopano kukhudza zowonetsera ndi odzichitira utumiki kiosks, ndi okonzeka ndi mitundu yonse ya zida malipoti, mwamsanga anakhala wotchuka, nawonso. Nthawi zambiri zosintha zinkapita popanda mavuto. Ogwira ntchito ku IT akumaloko adayika zida zatsopano, deta yosamukira, ndipo bizinesi idapitilirabe. Kupatula pamene sizinakhalitse. Izi zikachitika, kampaniyo idatumiza James, wotchedwa "The Cleaner."

Ngakhale dzina lotchulidwira likuwonetsa mtundu wonyansa, chotsukacho chimangophatikiza ophunzitsa, oyika ndi jack-of-all-trades. James amatha masiku angapo pamalo a kasitomala akuyika zinthu zonse pamodzi, ndiyeno amathera masiku angapo akuphunzitsa ogwira ntchito momwe angagwiritsire ntchito dongosolo latsopanoli, kuthetsa mavuto aliwonse a hardware omwe adabuka ndikuthandiza pulogalamuyo kuyambira ubwana wake.

Choncho, n’zosadabwitsa kuti m’nthawi yovutayi, James anafika kuofesiko m’mawa kwambiri, ndipo asanafike pa desiki yake, anamulonjera bwana uja atadzazidwa ndi caffeine kuposa nthawi zonse.

"Ndikuopa kuti uyenera kupita ku Annapolis, Nova Scotia, posachedwa." Dongosolo lawo lonse linapita pansi, ndipo pambuyo pa usiku wogwira ntchito ndi mainjiniya awo, sitingathe kudziwa zomwe zidachitika. Zikuwoneka kuti netiweki yalephera pa seva. Koma pokhapo pamene dongosololo linali likugwira ntchito kwa mphindi zingapo.

— Sanabwerere ku dongosolo lakale? - James adayankha mwachidwi ngakhale m'maganizo adatulutsa maso modabwa.

- Ndendende: katswiri wawo wa IT "adasintha zofunikira" ndipo adaganiza zochoka ndi seva yawo yakale. James, adayika makinawa pamasamba asanu ndi limodzi ndikungolipira ndalama zolipirira, ndipo bizinesi yawo tsopano ikuyenda monga momwe idakhalira m'ma 1950s.

James adawongoka pang'ono.

- Ndi nkhani ina. Chabwino, tiyeni tiyambe.

Atafika ku Annapolis, chinthu choyamba chimene anachita chinali kupeza bwalo loyamba la zisudzo la kasitomala limene linali ndi vuto. Pamapu omwe adatengedwa pabwalo la ndege, zonse zidawoneka bwino, koma malo ozungulira adilesi yomwe mukufuna adawoneka ngati yokayikitsa. Osati ghetto, koma kukumbukira filimu noir. Pamene James ankayimitsa galimoto m'mphepete mwa tauni, hule linafika kwa iye. Poganizira kukula kwa Annapolis, mwina inali yokhayo mumzinda wonsewo. Maonekedwe ake nthawi yomweyo adakumbukira munthu wotchuka yemwe adapereka kugonana ndi ndalama pawindo lalikulu. Ayi, osati za Julia Roberts, koma za Jon Voight [Kufotokozera filimuyo "Midnight Cowboy" - pafupifupi. msewu].

Atamutumiza hule uja, James anapita ku kanema. Madera ozungulirawo anali atakhala bwino, koma adaperekabe malingaliro akuthamangitsidwa. Osati kuti James anali ndi nkhawa kwambiri. Iye wakhala ali ku malo atsoka kale. Ndipo iyi inali Canada, komwe ngakhale achifwamba amakhala aulemu kuti "zikomo" atatenga chikwama chanu.

Khomo lakumbali la kanema wa kanema linali mumsewu wa dank. James adapita pakhomo ndikugogoda. Posakhalitsa idagunda ndikutsegula pang'ono.

-Kodi ndinu oyeretsa? - mawu otukwana anatuluka mkati.

- Inde, ndi ine ... Ndinabwera kudzakonza chirichonse.

James adalowa muchipinda chowonera kanema. Mwachiwonekere analibe chosankha china, ogwira ntchito anayamba kupereka matikiti a mapepala kwa alendo. Izi zinapangitsa kuti lipoti lazachuma likhale lovuta, osatchulanso mfundo zina zosangalatsa. Koma ogwira ntchitoyo adalonjera James momasuka ndipo nthawi yomweyo adapita naye kuchipinda cha seva.

Poyamba, zonse zinali bwino. James adalowa mu seva ndikuyang'ana malo omwe amakayikira. Palibe vuto. Komabe, chifukwa chosamala kwambiri, James adatseka seva, ndikulowetsa khadi la network, ndikubwezeretsanso makinawo. Nthawi yomweyo anayamba kugwira ntchito mokwanira. Ogwira ntchitoyo adayambanso kugulitsa matikiti.

James adamuimbira Mark ndikumudziwitsa momwe zidalili. Sizovuta kulingalira kuti James angafune kukhalabe pafupi ndikuwona ngati chilichonse chosayembekezereka chikuchitika. Anatsika masitepe ndikuyamba kuwafunsa antchitowo zomwe zinachitika. Mwachiwonekere dongosolo lasiya kugwira ntchito. Anazimitsa ndikuyatsa, zonse zinayenda. Koma patapita mphindi 10 dongosolo linagwa.

Pa nthawiyi n’zofanana ndi zimenezi. Mwadzidzidzi, dongosolo la matikiti linayamba kuponya zolakwika. Antchito aja adapumira mmwamba ndikutenga matikiti a pepala, ndipo James adathamangira kuchipinda cha seva. Zonse zinkawoneka bwino ndi seva.

Kenako m'modzi mwa ogwira nawo ntchito adalowa.

- Dongosololi likugwiranso ntchito.

James anadabwa chifukwa sanachite chilichonse. Kunena zowona, palibe chomwe chingapangitse kuti dongosololi ligwire ntchito. Anatuluka, natenga foni yake, ndipo anaimba foni yothandizira kampani yake. Posakhalitsa wantchito yemweyo adalowa mu chipinda cha seva.

- Dongosolo lili pansi.

James anayang'ana pa seva. Chitsanzo chochititsa chidwi komanso chodziwika bwino cha maonekedwe amitundu yambiri chimavina pawindo - kumakwinya mwachisawawa komanso kuphatikizika mapaipi. Tonse tawonapo skrini iyi nthawi ina. Zinamasuliridwa mokongola komanso zotsikiritsa kwenikweni.


James adadina batani ndipo mawonekedwe adazimiririka. Anathamangira ku ofesi ya matikiti ndipo ali m'njira anakumana ndi wantchito akubwerera kwa iye.

- Dongosololi likugwiranso ntchito.

Ngati mungathe kuchita misala m'maganizo, ndi zomwe James anachita. Chotetezera zenera. Amagwiritsa ntchito OpenGL. Ndipo chifukwa chake, pakugwira ntchito, imadya zonse zomwe zili mu purosesa ya seva. Zotsatira zake, kuyimba kulikonse kwa seva kumatha ndi kutha kwa nthawi.

James adabwerera kuchipinda cha seva, adalowa, ndikuchotsa screensaver ndikuyika mapaipi okongola ndikuyika skrini yopanda kanthu. Ndiye kuti, m'malo mwa chophimba chomwe chimadya 100% yazinthu za purosesa, ndidayika china chomwe sichimawononga zinthu. Kenako ndinadikirira mphindi 10 kuti ndiwone zomwe ndikulingalira.

James atafika ku filimu yotsatira, anali kudabwa kuti angafotokozere bwanji bwana wake kuti anali atangoyenda mtunda wa makilomita 800 kuti azimitsa screen saver.

Kuwonongeka panthawi inayake ya mwezi

Nkhani yochitika. Tsiku lina kunabuka cholakwika cha pulogalamu yomwe imadalira gawo la mwezi. Panali kachitidwe kakang'ono kamene kanagwiritsidwa ntchito m'mapulogalamu osiyanasiyana a MIT kuwerengera kuyandikira gawo lenileni la Mwezi. GLS idapanga chizolowezi ichi kukhala pulogalamu ya LISP yomwe, polemba fayilo, imatha kutulutsa mzere wokhala ndi sitampu yanthawi yayitali pafupifupi zilembo 80. Zinali zochepa kwambiri kuti mzere woyamba wa uthenga ukhoza kukhala wautali kwambiri ndikupita ku mzere wotsatira. Ndipo pulogalamuyo ikawerenga fayiloyi pambuyo pake, idatemberera. Kutalika kwa mzere woyamba kumadalira tsiku lenileni ndi nthawi, komanso kutalika kwa nthawi yomwe chizindikirocho chinasindikizidwa. Ndiye kuti, kachilomboka kanadalira gawo la mwezi!

Kope loyamba la pepala Jargon Fayilo (Steele-1983) anali ndi chitsanzo cha mzere wotere womwe umatsogolera ku cholakwika chofotokozedwa, koma cholembera "chidachikonza". Izi zatchedwa "moon phase bug".

Komabe, samalani ndi malingaliro. Zaka zingapo zapitazo, mainjiniya ochokera ku CERN (European Center for Nuclear Research) adakumana ndi zolakwika pazoyeserera zomwe zidachitika pa Large Electron-Positron Collider. Popeza kuti makompyuta amakonza zinthu zambirimbiri zimene zapangidwa ndi chipangizochi asanasonyeze zotsatira zake kwa asayansi, ambiri ankaganiza kuti pulogalamuyo imakhudzidwa mwanjira inayake ndi mwezi. Mainjiniya angapo osimidwa adafika pansi pachowonadi. Cholakwikacho chidabwera chifukwa chakusintha pang'ono kwa geometry ya mphete yayitali ya 27 km chifukwa cha kusinthika kwa Dziko lapansi pakudutsa kwa Mwezi! Nkhaniyi yalowa mu nthano za sayansi monga "Kubwezera kwa Newton pa Particle Physics" ndi chitsanzo cha kulumikizana pakati pa malamulo osavuta komanso akale kwambiri a sayansi ndi malingaliro apamwamba kwambiri asayansi.

Kutsuka chimbudzi kumayimitsa sitima

Bug yabwino kwambiri yomwe ndidamvapo inali pa sitima yothamanga kwambiri ku France. Vutoli linapangitsa kuti sitimayo iwonongeke mwadzidzidzi, pokhapokha ngati panali anthu okwera. Pazochitika zonsezi, sitimayo inkachotsedwa ntchito, kufufuzidwa, koma palibe chomwe chinapezeka. Kenako anabwezedwa pamzere, ndipo nthawi yomweyo anagwa n’kuima.

Pa imodzi mwa macheke, injiniya wina wokwera sitima anapita kuchimbudzi. Posakhalitsa anasamba, BOOM! Kuyimitsa mwadzidzidzi.

Mainjiniya adalumikizana ndi driver ndikumufunsa:

—Kodi munali mukuchita chiyani musanakwere brake?

- Chabwino, ndakhala ndikutsika pang'onopang'ono ...

Izi zinali zachilendo, chifukwa nthawi yoyenda bwino sitimayi imatsika kambirimbiri potsika. Sitimayo inapitirira, ndipo potsikanso woyendetsa anachenjeza kuti:

- Ndikupita pang'onopang'ono.

Palibe chinachitika.

- Kodi munachita chiyani pomaliza braking? - adafunsa dalaivala.

- Chabwino ... ndinali mu toilet ...

- Chabwino, ndiye pitani kuchimbudzi ndikuchita zomwe mudachita tikatsikanso!

Wopanga injiniyo anapita kuchimbudzi, ndipo pamene dalaivala anachenjeza kuti: “Ndikuchedwetsa,” iye anatulutsa madziwo. Inde, sitimayo inaima nthawi yomweyo.

Tsopano akanatha kubweretsanso vutolo ndipo anafunika kupeza chomwe chinayambitsa.

Pambuyo pa mphindi ziwiri, adawona kuti chingwe chowongolera chakutali cha injini (sitimayo inali ndi injini imodzi kumapeto kulikonse) idalumikizidwa pakhoma la kabati yamagetsi ndipo idagona panjira yomwe imayang'anira pulagi ya chimbudzi solenoid... idayatsidwa, idayambitsa kusokoneza chingwe cha brake, ndipo chitetezo chadongosolo pakulephereka chimangophatikizanso mabuleki mwadzidzidzi.

Chipata chomwe chidadana FORTRAN

Miyezi ingapo yapitayo tinaona kuti maulumikizidwe a netiweki kumtunda [kumeneku kunali ku Hawaii] akuyamba kuyenda pang'onopang'ono. Izi zitha kuchitika kwa mphindi 10-15 kenako zimachitikanso mwadzidzidzi. Patapita nthawi, mnzanga anadandaula kwa ine kuti maukonde kugwirizana kumtunda kawirikawiri sizigwira ntchito. Anali ndi kachidindo kena ka FORTRAN komwe kumayenera kukopedwa kumakina akumtunda, koma sizinatheke chifukwa "manetiweki sanayime motalika kuti kukweza kwa FTP kumalize."

Inde, zidapezeka kuti kulephera kwa ma netiweki kudachitika pomwe mnzake adayesa FTP fayilo yokhala ndi code code ku FORTRAN kumakina akumtunda. Tidayesa kusungitsa fayiloyo: ndiye idakopedwa bwino (koma makina omwe akuwatsata analibe chotsitsa, chifukwa chake vutoli silinathedwe). Pomaliza "tidagawa" kachidindo ka FORTRAN kukhala tiziduswa tating'ono kwambiri ndikutumiza kamodzi kamodzi. Zambiri mwa zidutswazo zidakopedwa popanda mavuto, koma zidutswa zingapo sizinadutse, kapena kudutsa pambuyo pake zambiri kuyesa.

Titawunika ndime zovutazo, tidapeza kuti ali ndi zofanana: zonse zinali ndi ndemanga zomwe zidayamba ndi kutha ndi mizere yokhala ndi likulu C (monga mnzake adakonda kuyankhapo mu FORTRAN). Tidatumiza maimelo akatswiri pamanetiweki kumtunda ndikupempha thandizo. Inde, ankafuna kuona zitsanzo za mafayilo athu omwe sakanatha kutumizidwa kudzera pa FTP ... koma makalata athu sanawafike. Pomaliza tinabwera ndi yosavuta fotokozanimomwe mafayilo osasinthika amawonekera. Zinagwira ntchito :) [Kodi ndingawonjezere chitsanzo cha ndemanga za FORTRAN zovuta apa? Mwina sizofunika!]

Pamapeto pake tinakwanitsa kuzizindikira. Chipata chatsopano chakhazikitsidwa posachedwa pakati pa gawo lathu la kampasi ndi netiweki yakumtunda. Zinali ndi vuto KWAMBIRI kutumiza mapaketi omwe anali ndi zilembo zazikulu C! Ochepa chabe mwa mapaketiwa amatha kutenga zida zonse zolowera pachipata ndikuletsa mapaketi ena ambiri kuti asadutse. Tidadandaula kwa wopanga zipata ... ndipo adayankha: "O, inde, mukukumana ndi vuto la C mobwerezabwereza! Tikudziwa kale za iye.” Pambuyo pake tinathetsa vutoli pogula chipata chatsopano kuchokera kwa wopanga wina (m'chitetezo choyambirira, kulephera kusamutsa mapulogalamu a FORTRAN kungakhale mwayi kwa ena!).

Nthawi zovuta

Zaka zingapo zapitazo, ndikugwira ntchito popanga dongosolo la ETL ku Perl kuti muchepetse mtengo wa mayeso achipatala a gawo 40, ndinafunika kukonza masiku pafupifupi 000. Awiri mwa iwo sanapambane mayeso. Izi sizinandivutitse kwambiri chifukwa masiku awa adatengedwa kuchokera kuzinthu zomwe kasitomala amapatsidwa zomwe nthawi zambiri zinali zodabwitsa, tinganene, zodabwitsa. Koma nditayang'ana deta yoyambirira, zidapezeka kuti masiku awa anali Januware 1, 2011 ndi Januware 1, 2007. Ndinkaganiza kuti cholakwikacho chili mu pulogalamu yomwe ndangolemba kumene, koma zidapezeka kuti zinali kale zaka 30. wakale. Izi zitha kumveka ngati zachinsinsi kwa omwe sadziwa bwino za pulogalamuyo. Chifukwa chakuti kampani ina yasankha kwanthaŵi yaitali kuti ipeze ndalama, kasitomala wangayo anandilipira kuti ndikonze vuto limene kampani ina inayambitsa mwangozi ndipo inayo mwadala. Kuti mumvetsetse zomwe ndikunena, ndiyenera kulankhula za kampani yomwe idawonjezera gawo lomwe lidakhala cholakwika, komanso zochitika zina zingapo zosangalatsa zomwe zidathandizira cholakwika chomwe ndidakonza.

M'masiku akale abwino, makompyuta a Apple nthawi zina amangosintha tsiku lawo kukhala Januware 1, 1904. Chifukwa chake chinali chosavuta: idagwiritsa ntchito "wotchi yadongosolo" yoyendetsedwa ndi batri kuti isunge tsiku ndi nthawi. Kodi chinachitika ndi chiyani batire itafa? Makompyuta adayamba kutsata tsikuli ndi kuchuluka kwa masekondi kuyambira chiyambi cha nthawi. Pofika nthawi timatanthawuza tsiku loyambirira, ndipo kwa Macintoshes linali Januwale 1, 1904. Ndipo batire itafa, tsiku lomwe lilipo lidasinthidwa kukhala lomwe latchulidwa. Koma n’cifukwa ciani zimenezi zinacitika?

M'mbuyomu, Apple idagwiritsa ntchito ma bits 32 kusunga masekondi kuyambira tsiku loyambirira. Pang'ono pang'ono imatha kusunga chimodzi mwazinthu ziwiri - 1 kapena 0. Zigawo ziwiri zimatha kusunga chimodzi mwazinthu zinayi: 00, 01, 10, 11. Zigawo zitatu - mtengo umodzi mwa asanu ndi atatu: 000, 001, 010, 011, 100 , 101, 110, 111, ndi zina zotero. Ndipo 32 imatha kusunga chimodzi mwazinthu 232, ndiye kuti, masekondi 4. Pamasiku a Apple, izi zikufanana ndi zaka pafupifupi 294, kotero ma Mac akale sangathe kuthana ndi masiku pambuyo pa 967. Ndipo ngati batire ya dongosolo ifa, tsikulo limasinthidwa kukhala masekondi 296 kuyambira chiyambi cha nthawi, ndipo muyenera kuyika tsikulo nthawi iliyonse mukayatsa kompyuta (kapena mpaka mutagula batire yatsopano).

Komabe, lingaliro la Apple losunga madeti ngati masekondi kuyambira nthawiyo zikutanthauza kuti sitingathe kuthana ndi masiku asanafike nthawiyo, zomwe zinali ndi zotulukapo zazikulu, monga tiwona. Apple idabweretsa chinthu, osati cholakwika. Mwa zina, izi zikutanthauza kuti Macintosh opareting'i sisitimu alibe "Millennium bug" (omwe sitinganene zambiri Mac ntchito kuti anali ndi tsiku kachitidwe circumvent zoletsa).

Chitani zomwezo. Tidagwiritsa ntchito Lotus 1-2-3, "application killer" ya IBM yomwe idathandizira kuyambitsa kusintha kwa PC, ngakhale makompyuta a Apple anali ndi VisiCalc, zomwe zidapangitsa kuti kompyuta yanu ikhale yopambana. Mwachilungamo, ngati 1-2-3 sichinawonekere, ma PC sakanatha kuchoka, ndipo mbiri ya makompyuta aumwini ikadakhala yosiyana kwambiri. Lotus 1-2-3 adachita molakwika 1900 ngati chaka chodumphadumpha. Pamene Microsoft idatulutsa spreadsheet yake yoyamba, Multiplan, idatenga gawo laling'ono pamsika. Ndipo pamene adayambitsa pulojekiti ya Excel, sanasankhe kutengera ndondomeko ya mayina a mzere ndi mzere kuchokera ku Lotus 1-2-3, komanso kuti awonetsetse kuti zimagwirizana ndi dala 1900 ngati chaka chodumphadumpha. Vutoli likadalipobe mpaka pano. Ndiye kuti, mu 1-2-3 ichi chinali cholakwika, koma ku Excel chinali chisankho chodziwikiratu chomwe chimatsimikizira kuti ogwiritsa ntchito onse a 1-2-3 atha kulowetsa matebulo awo ku Excel popanda kusintha deta, ngakhale zinali zolakwika.

Koma panali vuto lina. Choyamba, Microsoft inatulutsa Excel kwa Macintosh, yomwe sinazindikire masiku asanafike January 1, 1904. Ndipo mu Excel, January 1, 1900 ankaonedwa kuti ndi chiyambi cha nthawi. Choncho, opanga adasintha kuti pulogalamu yawo izindikire mtundu wa nthawi ndikusunga deta mkati mwawokha malinga ndi nthawi yomwe akufuna. Microsoft idalembanso nkhani yofotokozera za izi. Ndipo chisankho ichi chinandiyambitsa cholakwika.

Dongosolo langa la ETL lidalandira ma spreadsheets a Excel kuchokera kwa makasitomala omwe adapangidwa pa Windows, komanso amatha kupangidwa pa Mac. Choncho, chiyambi cha nthawi mu tebulo akhoza kukhala January 1, 1900, kapena January 1, 1904. Kodi kudziwa? Mafayilo a Excel amawonetsa zofunikira, koma chofotokozera chomwe ndidagwiritsa ntchito sichinawonetse (tsopano chikuwonekera), ndikuganiza kuti mukudziwa nthawi ya tebulo linalake. Ndikadakhala ndi nthawi yochulukirapo ndikumvetsetsa mtundu wa binary wa Excel ndikutumiza chigamba kwa wolembayo, koma ndinali ndi zambiri zoti ndichitire kasitomala, kotero ndidalemba mwachangu kuti ndidziwe nthawi. Iye anali wosavuta.

Ku Excel, tsiku la July 5, 1998 likhoza kuyimiridwa mu "07-05-98" (dongosolo lopanda ntchito la America), "Jul 5, 98", "July 5, 1998", "5-Jul-98" kapena mtundu wina wopanda ntchito (zodabwitsa, imodzi mwamawonekedwe a mtundu wanga wa Excel sanapereke inali ISO 8601). Komabe, mkati mwa tebulo, tsiku losasinthidwa lidasungidwa ngati "35981" la epoch-1900 kapena "34519" la epoch-1904 (manambalawo akuyimira kuchuluka kwa masiku kuyambira nthawiyo). Ndinangogwiritsa ntchito chowerengera chosavuta kuchotsa chaka kuchokera pa deti losanjidwa, kenako ndikugwiritsa ntchito Excel parser kuchotsa chaka kuchokera pa deti losasinthidwa. Ngati zikhalidwe zonsezo zimasiyana ndi zaka 4, ndiye ndimadziwa kuti ndikugwiritsa ntchito kachitidwe ka epoch-1904.

Chifukwa chiyani sindinangogwiritsa ntchito masiku osankhidwa? Chifukwa July 5, 1998 akhoza kusinthidwa kukhala "July, 98" ndi tsiku la mwezi litatayika. Tinalandira matebulo kuchokera kumakampani ambiri omwe adawapanga m'njira zosiyanasiyana kotero kuti zinali kwa ife (pankhaniyi, ine) kuti tidziwe masiku. Kupatula apo, ngati Excel ili bwino, ndiye ifenso tiyenera!

Panthawi imodzimodziyo ndinakumana ndi 39082. Ndiroleni ndikukumbutseni kuti Lotus 1-2-3 ankaona kuti 1900 ndi chaka chodumphadumpha, ndipo izi zinabwerezedwa mokhulupirika ku Excel. Ndipo popeza kuti izi zinawonjezera tsiku limodzi ku chaka cha 1900, ntchito zambiri zowerengera madeti zingakhale zolakwika pa tsiku lomwelo. Ndiko kuti, 39082 akanatha kukhala Januware 1, 2011 (pa Mac) kapena Disembala 31, 2006 (pa Windows). Ngati "chaka chowerengera" changa chatulutsa chaka cha 2011 pamtengo wopangidwa, ndiye kuti zonse zili bwino. Koma popeza Excel parser sadziwa nthawi yomwe ikugwiritsidwa ntchito, imasintha kukhala epoch-1900, kubwerera chaka cha 2006. Ntchito yanga idawona kuti kusiyana kwake kunali zaka 5, ndikuziwona ngati zolakwika, ndikulowetsa, ndikubweza mtengo wosasinthidwa.

Kuti ndikwaniritse izi, ndidalemba izi (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

Kenako madeti onse 40 adasankhidwa molondola.

Pakati pa ntchito zazikulu zosindikizira

Kumayambiriro kwa zaka za m'ma 1980, bambo anga ankagwira ntchito ku Storage Technology, gawo lomwe tsopano silinagwire ntchito lomwe linapanga makina oyendetsa matepi ndi makina a pneumatic a kudyetsa matepi othamanga kwambiri.

Anakonzanso ma drive kuti athe kukhala ndi galimoto imodzi yapakati "A" yolumikizidwa ndi ma drive asanu ndi awiri a "B", ndipo OS yaying'ono mu RAM yomwe inkayang'anira "A" drive imatha kugawa ntchito zowerengera ndi kulemba pama drive onse a "B".

Nthawi iliyonse galimoto "A" inayambika, kunali koyenera kuyika floppy disk mu galimoto yolumikizana ndi "A" kuti muyike makina ogwiritsira ntchito kukumbukira kwake. Zinali zakale kwambiri: mphamvu yamakompyuta idaperekedwa ndi 8-bit microcontroller.

Omvera omvera pazida zoterezi anali makampani okhala ndi malo osungiramo data akulu kwambiri - mabanki, maunyolo ogulitsa, ndi zina zotero - zomwe zimafunikira kusindikiza zilembo zambiri zamaadiresi kapena zikalata zamabanki.

Wothandizira wina anali ndi vuto. Pakati pa ntchito yosindikiza, galimoto imodzi "A" ikhoza kusiya kugwira ntchito, zomwe zimapangitsa kuti ntchito yonseyi iwonongeke. Kuti abwezeretse ntchito ya drive, ogwira ntchito amayenera kuyambiranso zonse. Ndipo ngati izi zinachitika pakati pa ntchito ya maola asanu ndi limodzi, ndiye kuti nthawi yochuluka ya makompyuta amtengo wapatali inatayika ndipo ndondomeko ya ntchito yonseyo inasokonekera.

Akatswiri adatumizidwa kuchokera ku Storage Technologies. Koma mosasamala kanthu za khama lawo, sanathe kutulutsa kachilomboka pansi pa miyeso yoyesedwa: zinkawoneka kuti zikuchitika pakati pa ntchito zazikulu zosindikizira. Vuto silinali hardware, iwo anasintha zonse zomwe akanatha: RAM, microcontroller, floppy drive, mbali iliyonse ya tepi drive - vuto linapitirirabe.

Kenako amisiriwo anayitana ku likulu ndikumuyitana Katswiriyo.

Katswiriyo anatenga mpando ndi kapu ya khofi, n’kukhala m’chipinda cha makompyuta—m’masiku amenewo munali zipinda zogwiritsidwa ntchito pa makompyuta—ndipo ankayang’ana ogwira ntchitoyo akuimitsa ntchito yosindikiza mabuku. Katswiriyo anali kuyembekezera kulephera kuchitika - ndipo zidatero. Aliyense anayang'ana Katswiriyo, koma sankadziwa chifukwa chake izi zinachitika. Choncho analamula kuti ntchitoyo ayimilirenso pamzere, ndipo antchito onse ndi amisiri onse anabwerera kuntchito.

Katswiriyo anakhalanso pampando n’kuyamba kudikirira kuti alephere. Pafupifupi maola asanu ndi limodzi adadutsa ndipo kulephera kunachitika. Katswiriyu analibenso malingaliro, kupatula kuti zonse zidachitika mchipinda chodzaza ndi anthu. Analamula kuti ntchitoyo iyambikenso, anakhalanso pansi ndikudikirira.

Polephera kachitatu, Katswiriyo adawonapo kanthu. Kulephera kunachitika pamene ogwira ntchito anasintha matepi mu galimoto yachilendo. Kuwonjezera apo, kulephera kunachitika mwamsanga pamene mmodzi wa ogwira ntchitoyo adadutsa matayala ena pansi.

Pansi pake panali matailosi a aluminiyamu omwe amaikidwa pamtunda wa mainchesi 6 mpaka 8. Mawaya ambiri amakompyuta ankayenda pansi kuti ateteze aliyense kuti asaponde mwangozi chingwe chofunikira. Matailosi anayala molimba kwambiri kuti zinyalala zisalowe pansi pa nthaka yokwezeka.

Katswiriyo anazindikira kuti matailosi amodzi anali opunduka. Wogwira ntchito akaponda pakona yake, m'mphepete mwa matailosiwo adapaka matailosi oyandikana nawo. Ziwalo zapulasitiki zomwe zidalumikiza matailosiwo zidatikitanso nawo, zomwe zidapangitsa kuti ma microdischarges osasunthika omwe adasokoneza mawayilesi.

Masiku ano, RAM imatetezedwa bwino kwambiri kuti isasokonezedwe ndi mawayilesi. Koma m’zaka zimenezo sizinali choncho. Katswiriyo adazindikira kuti kusokoneza uku kunasokoneza kukumbukira, komanso kugwira ntchito kwa opaleshoni. Anayitana chithandizo, kuitanitsa matailosi atsopano, kuziyika yekha, ndipo vutolo linazimiririka.

Ndi mafunde akulu!

Nkhaniyi inachitika mu chipinda cha seva, pa chipinda chachinayi kapena chachisanu cha ofesi ku Portsmouth (ndikuganiza), m'dera la docks.

Tsiku lina seva ya Unix yokhala ndi database yayikulu idagwa. Anamuyambitsanso, koma mosangalala anapitiriza kugwa mobwerezabwereza. Tinaganiza zoyimbira munthu wina wothandiza.

Mnyamata wothandizira ... Ndikuganiza kuti dzina lake anali Mark, koma zilibe kanthu ... sindikuganiza kuti ndimamudziwa. Zilibe kanthu, kwenikweni. Tiyeni tikhale ndi Mark, chabwino? Zabwino.

Kotero, maola angapo pambuyo pake Mark anafika (sikutali kuchokera ku Leeds kupita ku Portsmouth, mukudziwa), anatsegula seva ndipo chirichonse chinagwira ntchito popanda mavuto. Thandizo lodziwika bwino, kasitomala amakhumudwa kwambiri nazo. Mark amayang'ana m'mafayilo a chipika ndipo sapeza chilichonse cholakwika. Kotero Mark akubwerera m'sitima (kapena njira iliyonse yoyendera yomwe iye anafika, ikanakhala ng'ombe yolumala kwa zonse zomwe ndikudziwa ... komabe, ziribe kanthu, chabwino?) ndikubwerera ku Leeds, atataya tsiku.

Madzulo omwewo seva ikugweranso. Nkhaniyi ndi yofanana ... seva sichiwuka. Mark amayesa kuthandiza patali, koma kasitomala sangathe kuyambitsa seva.

Sitima ina, basi, mandimu meringue kapena zopusa zina, ndi Mark wabwerera ku Portsmouth. Tawonani, ma boot a seva popanda vuto lililonse! Chozizwitsa. Mark amatha maola angapo akuwona ngati zonse zili bwino ndi makina ogwiritsira ntchito kapena mapulogalamu ndikuyamba ulendo wopita ku Leeds.

Pakatikati pa tsiku seva ikuphwanyidwa (tengani mosavuta!). Nthawi ino zikuwoneka zomveka kubweretsa anthu othandizira ma hardware kuti alowe m'malo mwa seva. Koma ayi, pambuyo pa maola 10 nawonso amagwa.

Zinthuzi mobwerezabwereza kwa masiku angapo. Seva imagwira ntchito, imawonongeka pambuyo pa maola pafupifupi 10 ndipo siyiyamba kwa maola awiri otsatira. Anayang'ana kuzizira, kukumbukira kutayikira, adayang'ana chilichonse, koma sanapeze chilichonse. Kenako ngozizo zinasiya.

Sabata inadutsa mosasamala ... aliyense anali wokondwa. Wokondwa mpaka zonse ziyambiranso. Chithunzicho ndi chimodzimodzi. Maola 10 ogwira ntchito, maola 2-3 opuma ...

Ndiyeno wina (ndikuganiza kuti anandiuza kuti munthu uyu alibe chochita ndi IT) anati:

"Ndi mafunde!"

Kufuulako kudakumana ndi kuyang'ana kopanda kanthu, ndipo dzanja la wina mwina lidazengereza pa batani loyimba foni.

"Imasiya kugwira ntchito ndi mafunde."

Izi zitha kuwoneka ngati lingaliro lachilendo kwa ogwira ntchito a IT, omwe sangawerenge Buku Lapachaka la Tide atakhala pansi kuti amwe khofi. Iwo adalongosola kuti izi sizingakhale zogwirizana ndi mafunde mwanjira iliyonse, chifukwa seva yakhala ikugwira ntchito kwa sabata popanda zolephera.

"Sabata yatha mafunde anali ochepa, koma sabata ino ndiwokwera."

Mawu ochepa kwa iwo omwe alibe chilolezo cha yacht. Mafunde amadalira kuzungulira kwa mwezi. Ndipo pamene Dziko lapansi likuzungulira, maola 12,5 aliwonse mphamvu yokoka ya Dzuwa ndi Mwezi imapanga mafunde amphamvu. Kumayambiriro kwa nthawi ya maola 12,5 pali mafunde aakulu, pakati pa kuzungulira pali kuphulika, ndipo pamapeto pake palinso mafunde apamwamba. Koma pamene njira ya mwezi ikusintha, momwemonso kusiyana kwa mafunde otsika ndi okwera. Pamene Mwezi uli pakati pa Dzuwa ndi Dziko Lapansi kapena mbali ina ya Dziko Lapansi (mwezi wathunthu kapena kulibe mwezi), timapeza mafunde a Syzygyn - mafunde apamwamba kwambiri komanso mafunde otsika kwambiri. Pa theka la mwezi timapeza mafunde a quadrature - mafunde otsika kwambiri. Kusiyana kwapakati pazigawo ziwirizi kumachepa kwambiri. Kuzungulira kwa mwezi kumatenga masiku 28: syzygian - quadrature - syzygian - quadrature.

Amisiriwo atawafotokozera tanthauzo la mphamvu ya mafunde, nthawi yomweyo anaganiza kuti afunika kuyimbira apolisi. Ndipo ndithu zomveka. Koma zinapezeka kuti mwamunayo anali wolondola. Masabata awiri m'mbuyomo, wowononga adafika pafupi ndi ofesiyo. Nthawi zonse pamene mafunde adakwera mpaka kutalika kwake, nsanamira ya radar ya sitimayo inkafika pamtunda wa chipinda cha seva. Ndipo radar (kapena zida zankhondo zamagetsi, kapena chidole china chankhondo) zidayambitsa chipwirikiti pamakompyuta.

Ntchito ya ndege ya roketi

Ndinapatsidwa ntchito yonyamula lalikulu (pafupifupi mizere 400 zikwi) rocket launch control and monitoring system to new operating system, compiler and chinenero. Zowonjezereka, kuchokera ku Solaris 2.5.1 kupita ku Solaris 7, komanso kuchokera ku Verdix Ada Development System (VADS), yolembedwa mu Ada 83, kupita ku dongosolo la Rational Apex Ada, lolembedwa mu Ada 95. VADS idagulidwa ndi Rational, ndipo mankhwala ake anali zachikale, ngakhale Rational idayesa kukhazikitsa mitundu yofananira ya phukusi la VADS kuti muchepetse kusintha kwa Apex compiler.

Anthu atatu adandithandiza kuti ndingolemba khodiyo mosamala. Zinatenga milungu iwiri. Ndiyeno ndinagwira ntchito ndekha kuti dongosolo ligwire ntchito. Mwachidule, inali yomangamanga yoyipa kwambiri komanso kukhazikitsa pulogalamu yamapulogalamu yomwe ndidakumana nayo, kotero zidatenga miyezi ina iwiri kuti amalize doko. Dongosololo linatumizidwa kuti liyesedwe, zomwe zinatenga miyezi ingapo. Nthawi yomweyo ndinawongolera nsikidzi zomwe zidapezeka pakuyesedwa, koma kuchuluka kwawo kudachepa msanga (chidziwitso cha gwero chinali njira yopangira, kotero magwiridwe ake adagwira ntchito modalirika, ndidangoyenera kuchotsa nsikidzi zomwe zidabuka pakusinthira kwa wopanga watsopano). M’kupita kwa nthaŵi, pamene zonse zinayamba kugwira ntchito monga momwe ziyenera kukhalira, anandisamutsira ku ntchito ina.

Ndipo Lachisanu pamaso pa Thanksgiving, foni inayimba.

Kuyambitsa roketi kumayenera kuyesedwa pafupifupi milungu itatu, ndipo pakuyesa kwa labotale pakuwerengera, kutsatizana kwa malamulo kudatsekedwa. M'moyo weniweni, izi zitha kuletsa mayesowo, ndipo ngati kutsekeka kunachitika mkati mwa masekondi angapo kuyambira injiniyo, zinthu zingapo zosasinthika zitha kuchitika m'makina othandizira, omwe angafune kukonzekera kwanthawi yayitali komanso kokwera mtengo kwa rocket. Sizikanayamba, koma anthu ambiri akadakhumudwa kwambiri ndi kutaya nthawi komanso ndalama zambiri. Musalole wina akuuzeni kuti Dipatimenti ya Chitetezo imagwiritsa ntchito ndalama mosasamala - sindinakumanepo ndi woyang'anira mgwirizano yemwe sanayike bajeti poyamba kapena kachiwiri, ndikutsatiridwa ndi ndondomeko.

M'miyezi yapitayi, vuto lowerengerali lakhala likuyendetsedwa kambirimbiri m'mitundu yosiyanasiyana, ndikumangokhala kochepa chabe. Choncho mwayi woti izi zichitike unali wochepa kwambiri, koma zotsatira zake zinali zazikulu kwambiri. Chulukitsani zonse ziwirizi, ndipo mumvetsetsa kuti nkhanizi zidaneneratu kuti sabata ya tchuthi yowonongeka kwa ine komanso akatswiri ambiri ndi mamanejala.

Ndipo chidwi chinaperekedwa kwa ine monga munthu amene amanyamula dongosolo.

Monga momwe zimakhalira ndi machitidwe ambiri otetezera chitetezo, magawo ambiri adalowetsedwa, kotero zinali zosavuta kuzindikira mizere yochepa ya code yomwe idachitidwa dongosolo lisanawonongeke. Ndipo zowonadi, panalibe chilichonse chachilendo mwa iwo; mawu omwewo adachitidwa bwino nthawi zikwizikwi panthawi yomweyi.

Tidayitanira anthu ochokera ku Apex kukhala Rational chifukwa ndi omwe adapanga compiler ndipo njira zina zomwe adapanga zidatchedwa code yokayikitsa. Iwo (ndi wina aliyense) anachita chidwi kuti kunali kofunika kupeza gwero la vuto lofunika kwenikweni m’dziko.

Popeza munalibe chilichonse chosangalatsa m’magaziniwo, tinaganiza zoyesa kutulutsanso vutolo m’ma laboratories akumaloko. Ichi sichinali ntchito yophweka popeza chochitikacho chinachitika pafupifupi kamodzi pa maulendo 1000. Chifukwa chimodzi chokayikiridwa chinali choti kuyitanira ku ntchito yopangidwa ndi ogulitsa mutex (gawo la phukusi losamuka la VADS) Unlock sikunafikitse kumasula. Ulusi wokonza womwe umatcha ntchitoyo unkakonza mauthenga a kugunda kwa mtima, omwe amafika sekondi iliyonse. Tidakweza ma frequency mpaka 10 Hz, ndiye kuti, ka 10 pa sekondi iliyonse, ndikuyamba kuthamanga. Pafupifupi ola limodzi pambuyo pake makinawo adadzitsekera. Mu chipikacho, tawona kuti kutsatizana kwa mauthenga ojambulidwa kunali kofanana ndi panthawi ya mayesero olephera. Tidapanganso maulendo angapo, makinawo adatsekedwa mphindi 45-90 pambuyo poyambira, ndipo nthawi iliyonse chipikacho chimakhala ndi njira yomweyo. Ngakhale tinali kugwiritsa ntchito kachidindo kosiyana - kuchuluka kwa mauthenga kunali kosiyana - machitidwe a dongosololi anali ofanana, kotero tinali ndi chidaliro kuti chochitika ichi chikuyambitsa vuto lomwelo.

Tsopano tidayenera kudziwa komwe kutsekerezako kudachitika motsatizana ndi mawu.

Kukhazikitsidwa kwa dongosololi kunagwiritsa ntchito dongosolo la ntchito ya Ada, ndikuigwiritsa ntchito molakwika. Ntchito ndizomwe zimapangidwira nthawi imodzi mu Ada, ngati ulusi wophatikizika, wongomangidwa m'chinenerocho. Ntchito ziwiri zikafunika kulumikizana, "amakhazikitsa malo ochezera", amasinthanitsa zofunikira, ndiyeno amayimitsa msonkhanowo ndikubwerera kumayendedwe awo odziyimira pawokha. Komabe, dongosololi linakhazikitsidwa mosiyana. Ntchito yomwe cholinga chake itatha kukumana, ntchito yomwe adafunayo idakumananso ndi ntchito ina, yomwe kenako idakumananso ndi ntchito yachitatu, ndi zina zotero mpaka kumaliza. Zitatha izi, misonkhano yonseyi inamalizidwa ndipo ntchito iliyonse inayenera kubwerera kukaichita. Ndiye kuti, tinali kuchita ndi mafoni okwera mtengo kwambiri padziko lonse lapansi, omwe adayimitsa njira yonse ya "multitasking" pomwe amakonza gawo lazolowera. Ndipo izi zisanachitike sizinabweretse mavuto chifukwa chakuti kutulutsa kunali kochepa kwambiri.

Ndidalongosola momwe ntchitoyi imagwirira ntchito chifukwa ngati kukumana kwafunsidwa kapena kuyembekezera kutha, "task switch" imatha kuchitika. Ndiye kuti, purosesa ikhoza kuyamba kukonza ntchito ina yomwe yakonzeka kuchitidwa. Zimakhala kuti ntchito imodzi ikakonzeka kukumana ndi ntchito ina, ntchito yosiyana kwambiri imatha kuchitika, ndipo pamapeto pake kuwongolera kumabwereranso kumalo oyamba. Ndipo zochitika zina zitha kuchitika zomwe zimapangitsa kuti ntchitoyi isinthe; chochitika chimodzi chotere ndikuyitanira ku ntchito yadongosolo, monga kusindikiza kapena kuchita mutex.

Kuti mumvetsetse kuti ndi mzere uti wa code womwe ukuyambitsa vutoli, m'pofunika kupeza njira yojambulira zomwe zikuchitika potsatira ndondomeko popanda kuyambitsa kusintha kwa ntchito, zomwe zingalepheretse kuwonongeka. Kotero sindikanatha kutenga mwayi Put_Line()kupewa kuchita ntchito za I/O. Nditha kukhazikitsa chosinthira kapena china chofananira, koma ndingawone bwanji phindu lake ngati sindingathe kuchiwonetsa pazenera?

Komanso, poyang'ana chipikacho, chinapezeka kuti, ngakhale kuzizira kwa mauthenga a kugunda kwa mtima, komwe kunalepheretsa ntchito zonse za I / O za ndondomekoyi ndikuletsa kukonzanso kwina, ntchito zina zodziimira zinapitirizabe kuchitidwa. Ndiko kuti, ntchitoyi sinatsekedwe kwathunthu, ntchito (zovuta) zokha.

Ichi chinali chidziwitso chofunikira kuti tiwunikire mawu otsekereza.

Ndinapanga phukusi la Ada lomwe linali ndi ntchito, mtundu wolembedwa, ndi kusintha kwapadziko lonse kwa mtundu umenewo. Zolemba zowerengeka zinali zogwirizana ndi mawu enaake azovuta (mwachitsanzo. Incrementing_Buffer_Index, Locking_Mutex, Mutex_Unlocked), ndiyeno n’kuikamo mawu oti agawiremo amene anagaŵira kuŵerengera kofananako ku kusintha kwapadziko lonse. Popeza kuti chinthu chazinthu zonsezi chimangosungidwa kukumbukira nthawi zonse, kusinthana kwa ntchito chifukwa cha kuphedwa kwake kunali kosatheka. Tinkakayikira kwambiri mawu omwe angasinthire ntchitoyi, chifukwa kutsekereza kunachitika pochitika m'malo mobwereranso posintha ntchitoyo (pazifukwa zingapo).

Ntchito yolondolera idangoyenda pang'onopang'ono ndikuwunika nthawi ndi nthawi kuti awone ngati mtengo wakusintha kwapadziko lonse wasintha. Ndi kusintha kulikonse, mtengowo umasungidwa ku fayilo. Ndiye kudikira kwachidule ndi cheke chatsopano. Ndinalemba zosinthika ku fayilo chifukwa ntchitoyi idachitidwa pokhapokha ngati dongosolo lidasankha kuti lichitike posintha ntchitoyo m'malo ovuta. Chilichonse chomwe chinachitika mu ntchitoyi sichingakhudze ntchito zina, zoletsedwa zosagwirizana.

Zinkayembekezeredwa kuti dongosolo likafika poti ligwiritse ntchito code yovuta, kusintha kwapadziko lonse kudzasinthidwanso pamene akusunthira ku mawu aliwonse otsatirawa. Ndiye chinachake chidzachitika chomwe chimapangitsa kuti ntchitoyi isinthe, ndipo popeza kuti nthawi zambiri amachitira (10 Hz) ndi yochepa kusiyana ndi ntchito yowunikira, polojekitiyo ikhoza kujambula mtengo wa kusintha kwapadziko lonse ndikulemba. Munthawi yabwinobwino, ndimatha kupeza kubwerezabwereza kwa kagawo kakang'ono: zomaliza zosinthika panthawi yosinthira ntchito. Popachikidwa, kusintha kwapadziko lonse sikuyeneranso kusintha, ndipo mtengo womaliza wolembedwa udzasonyeza kuti ndi mawu ati omwe sanamalize.

Ndinayendetsa code ndi kutsatira. Iye anazizira. Ndipo kuyang'anira kunkagwira ntchito ngati clockwork.

Chipikacho chinali ndi ndondomeko yoyembekezeka, yomwe inasokonezedwa ndi mtengo wosonyeza kuti mutex adatchedwa. Unlock, ndipo ntchitoyo siinamalizidwe - monga momwe zilili ndi zikwi za mafoni am'mbuyomu.

Akatswiri opanga ma Apex anali kusanthula mwachidwi khodi yawo panthawiyi ndipo adapeza malo mutex pomwe, mongoyerekeza, loko kungachitike. Koma kuthekera kwake kunali kocheperako, popeza kungotsatizana kwinakwake kwa zochitika pa nthawi inayake kungayambitse kutsekereza. Lamulo la Murphy, anyamata, ndi Lamulo la Murphy.

Kuti nditeteze kachidindo komwe ndimafunikira, ndinasintha mafoni a mutex (omangidwa pamwamba pa OS mutex magwiridwe antchito) ndi phukusi laling'ono la Ada mutex kuti muwongolere mwayi wofikira pachidutswacho.

Ndinayiyika mu code ndikuyesa mayeso. Maola asanu ndi awiri pambuyo pake code ikugwirabe ntchito.

Khodi yanga idatumizidwa ku Rational, komwe adayilemba, kuichotsa, ndikuwunika kuti sinagwiritse ntchito njira yomweyi yomwe idagwiritsidwa ntchito pazovuta za mutex.

Uku kunali kuwunika kwamakhodi ochuluka kwambiri pantchito yanga 🙂 Panali pafupifupi mainjiniya khumi ndi mamanenjala mchipindamo ndi ine, anthu ena khumi anali paulendo wapamsonkhano - ndipo onse adawunika pafupifupi mizere 20 yamakhodi.

Khodiyo idawunikidwanso, mafayilo atsopano omwe angathe kuchitidwa adasonkhanitsidwa ndikutumizidwa kuti ayesedwe kuyambiranso. Patatha milungu ingapo, mayeso owerengera adapambana ndipo roketi idanyamuka.

Chabwino, zonse zili bwino, koma mfundo yake ndi yotani?

Linali vuto lonyansa kwambiri. Mazana masauzande a mizere yamakhodi, kuphatikizika kofananira, njira zopitilira khumi ndi ziwiri, kusapanga bwino komanso kukhazikitsa bwino, njira zamakina ophatikizika ndi mamiliyoni a madola omwe amagwiritsidwa ntchito. Palibe kukakamizidwa, chabwino.

Sindine ndekha amene ndimagwira ntchito pa vutoli, ngakhale ndinali ndikuyang'anitsitsa pamene ndinali kunyamula. Koma ngakhale ndidachita izi, sizitanthauza kuti ndimamvetsetsa mizere mazana masauzande a ma code, kapenanso kuwadumphadumpha. Ma code ndi zipika zinasanthulidwa ndi mainjiniya m'dziko lonselo, koma atandiuza malingaliro awo okhudza zomwe zidapangitsa kulephera, zidangotenga theka la miniti kuti nditsutse. Ndipo ndikafunsidwa kuti ndisanthule nthanthi, ndinkapereka kwa munthu wina, chifukwa zinali zoonekeratu kwa ine kuti mainjiniyawa akuyenda molakwika. Kumveka modzikuza? Inde, izi ndi zoona, koma ndinakana malingaliro ndi zopempha pazifukwa zina.

Ndinamvetsa mmene vuto linalili. Sindinadziwe komwe zinkachitikira komanso chifukwa chake, koma ndinkadziwa zomwe zinkachitika.

Kwa zaka zambiri, ndapeza zinthu zambiri zodziwa zambiri komanso zodziwa zambiri. Ndinali mmodzi wa apainiya ogwiritsira ntchito Ada ndipo ndinamvetsetsa ubwino wake ndi kuipa kwake. Ndikudziwa momwe malaibulale anthawi ya Ada amagwirira ntchito komanso kuthana ndi kuphedwa kofanana. Ndipo ndimamvetsetsa mapulogalamu apansi pamlingo wa kukumbukira, zolembera ndi kusonkhanitsa. Mwa kuyankhula kwina, ndili ndi chidziwitso chozama m'munda wanga. Ndipo ndidawagwiritsa ntchito kuti ndipeze chomwe chidayambitsa vutoli. Sindinangogwira ntchito mozungulira cholakwikacho, ndinamvetsetsa momwe ndingachipezere pamalo ovuta kwambiri othamanga.

Nkhani zotere zolimbana ndi code sizosangalatsa kwambiri kwa iwo omwe sadziwa mawonekedwe ndi mikhalidwe ya kulimbana kotere. Koma nkhani zimenezi zimatithandiza kumvetsa zimene zimafunika kuthetsa mavuto ovuta kwambiri.

Kuti muthetse mavuto ovuta kwambiri, muyenera kukhala opitilira pulogalamu. Muyenera kumvetsetsa "tsogolo" la code, momwe limagwirizanirana ndi chilengedwe chake, ndi momwe chilengedwe chimagwirira ntchito.

Ndiyeno mudzakhala ndi sabata lanu la tchuthi lowonongeka.

Zipitilizidwa.

Source: www.habr.com

Kuwonjezera ndemanga