Folklore ntawm programmers thiab engineers (Part 1)

Folklore ntawm programmers thiab engineers (Part 1)

Qhov no yog ib qho kev xaiv ntawm cov dab neeg hauv Is Taws Nem hais txog yuav ua li cas kab kab qee zaum muaj qhov tshwm sim zoo kawg nkaus. Tej zaum koj muaj ib yam dab tsi los qhia thiab.

Tsheb allergy rau vanilla ice cream

Ib zaj dab neeg rau cov engineers uas nkag siab tias qhov pom tseeb tsis yog ib txwm yog cov lus teb, thiab txawm tias qhov tseeb yuav zoo li deb npaum li cas, lawv tseem yog qhov tseeb. Pontiac Division ntawm General Motors Corporation tau txais kev tsis txaus siab:

Qhov no yog zaum ob uas kuv sau rau koj, thiab kuv tsis liam koj tsis teb, vim nws suab vwm. Peb tsev neeg muaj kev lig kev cai noj ice cream txhua hmo tom qab noj hmo. Hom ice cream hloov txhua lub sijhawm, thiab tom qab noj hmo, tag nrho tsev neeg xaiv cov ice cream yuav, tom qab ntawd kuv mus rau tom khw. Kuv nyuam qhuav yuav ib lub Pontiac tshiab thiab txij li thaum ntawd kuv mus ncig ua si kom tau dej khov tau dhau los ua teeb meem. Koj pom, txhua zaus kuv yuav vanilla ice cream thiab rov qab los ntawm lub khw, lub tsheb yuav tsis pib. Yog tias kuv nqa lwm yam dej khov, lub tsheb pib tsis muaj teeb meem. Kuv xav nug ib lo lus nug tseem ceeb, txawm hais tias nws yuav ruam npaum li cas: "Dab tsi yog nws hais txog Pontiac uas ua rau nws tsis pib thaum kuv nqa vanilla ice cream, tab sis pib yooj yim thaum kuv nqa lwm yam khoom qab zib?" "

Raws li koj tuaj yeem xav, tus thawj tswj hwm ntawm pawg tau tsis ntseeg txog tsab ntawv. Txawm li cas los xij, tsuas yog nyob rau hauv rooj plaub, kuv tau xa ib tus engineer los kuaj. Nws xav tsis thoob tias nws tau ntsib ib tug txiv neej nplua nuj, muaj kev kawm zoo nyob hauv thaj chaw zoo nkauj. Nkawd pom zoo sib ntsib tam sim ntawd tom qab noj hmo kom nkawd ob leeg tau mus rau tom khw ice cream. Hmo ntawd nws yog vanilla, thiab thaum lawv rov qab mus rau lub tsheb, nws yuav tsis pib.

Tus engineer tuaj peb yav tsaus ntuj ntxiv. Thawj zaug lub ice cream yog chocolate. Lub tsheb pib. Lub sij hawm thib ob muaj strawberry ice cream. Lub tsheb pib. Hnub peb hmo nws thov kom noj vanilla. Lub tsheb tsis pib.

Kev sib cav sib ceg, tus kws ua haujlwm tsis kam ntseeg tias lub tsheb ua xua rau vanilla ice cream. Yog li ntawd, kuv tau pom zoo nrog tus tswv ntawm lub tsheb tias nws yuav mus txuas ntxiv mus kom txog thaum nws pom kev daws teeb meem. Thiab ntawm txoj kev, nws pib sau ntawv: nws sau tag nrho cov ntaub ntawv, lub sijhawm ntawm hnub, hom roj av, lub sijhawm tuaj txog thiab rov qab los ntawm lub khw, thiab lwm yam.

Tus engineer sai sai pom tau hais tias tus tswv ntawm lub tsheb siv sij hawm tsawg dua yuav vanilla ice cream. Yog vim li cas yog qhov layout ntawm cov khoom nyob rau hauv lub khw. Vanilla ice cream yog qhov nrov tshaj plaws thiab tau khaws cia rau hauv lub freezer cais ntawm lub khw muag khoom kom yooj yim nrhiav. Thiab tag nrho lwm yam ntau yam nyob rau tom qab ntawm lub khw, thiab nws siv sij hawm ntau dua los nrhiav qhov zoo thiab them nyiaj.

Tam sim no cov lus nug yog rau tus engineer: yog vim li cas lub tsheb tsis pib yog tias tsawg dua lub sij hawm tau dhau mus txij thaum lub cav raug tua? Txij li thaum qhov teeb meem yog lub sij hawm, tsis yog vanilla ice cream, tus engineer sai sai nrhiav cov lus teb: nws yog ib tug gas xauv. Nws tshwm sim txhua txhua yav tsaus ntuj, tab sis thaum tus tswv tsheb siv sijhawm ntau dua los nrhiav cov dej khov, lub cav tswj kom txias txaus thiab pib yooj yim. Thiab thaum tus txiv neej yuav vanilla ice cream, lub cav tseem kub heev thiab cov roj locks tsis muaj sij hawm los yaj.

Kev coj ncaj ncees: Txawm tias muaj teeb meem vwm tag qee zaum muaj tiag.

kev sib tsoo Bandicoot

Nws mob siab rau qhov no. Raws li ib tug programmer, koj tau siv los liam koj tus lej thawj, thib ob, thib peb ... thiab qhov chaw hauv kaum txhiab qhov chaw koj liam tus sau. Thiab ntxiv rau hauv daim ntawv koj twb liam cov khoom siv.

Nov yog kuv zaj dab neeg txog cov kab mob kho vajtse.

Rau qhov kev ua si Crash Bandicoot, kuv sau code kom thauj khoom thiab khaws cia rau hauv daim npav nco. Rau xws li ib tug smug game developer, nws zoo li ib tug taug kev nyob rau hauv lub tiaj ua si: Kuv xav tias txoj hauj lwm yuav siv sij hawm ob peb hnub. Txawm li cas los xij, kuv tau mus debugging tus lej rau rau lub lis piam. Raws li txoj kev, kuv tau daws lwm yam teeb meem, tab sis txhua ob peb hnub kuv rov qab mus rau qhov chaws no ob peb teev. Nws mob heev.

Cov tsos mob zoo li no: thaum koj txuag qhov kev ua si tam sim no ntawm qhov kev ua si thiab nkag mus rau hauv daim npav nco, txhua yam yuav luag txhua zaus mus zoo ... Tab sis qee zaum nyeem lossis sau sijhawm ua haujlwm tsis muaj laj thawj pom tseeb. Cov kaw lus luv luv feem ntau ua rau daim npav nco. Thaum tus neeg uas ua ntawv sim txuag, nws tsis tsuas yog tsis txuag, tab sis kuj ua rau daim ntawv qhia kev puas tsuaj. Crap.

Tom qab ib pliag, peb tus tsim tawm ntawm Sony, Connie Bus, pib ntshai. Peb tsis tuaj yeem xa cov kev ua si nrog cov kab no, thiab rau lub lis piam tom qab kuv tsis nkag siab qhov ua rau muaj teeb meem. Los ntawm Connie, peb tau hu rau lwm tus tsim tawm PS1: puas muaj leej twg ntsib ib yam dab tsi zoo sib xws? Tsis muaj. Tsis muaj leej twg muaj teeb meem nrog daim npav nco.

Thaum koj tsis muaj tswv yim rau kev debugging, tsuas yog txoj hauv kev sab laug yog "sib faib thiab kov yeej": tshem tawm ntau thiab ntau cov cai los ntawm qhov kev pab cuam faulty kom txog rau thaum muaj cov seem me me uas tseem ua rau muaj teeb meem. Ntawd yog, koj txiav tawm qhov kev pab cuam los ntawm ib qho kom txog rau thaum qhov uas muaj cov kab mob tseem nyob.

Tab sis qhov yog, nws nyuaj heev los txiav chunks tawm ntawm ib qho kev ua si video. Yuav ua li cas khiav nws yog tias koj tshem tawm cov code uas emulates lub ntiajteb txawj nqus? Los yog kos cov cim?

Yog li ntawd, peb yuav tsum hloov tag nrho cov modules nrog stubs uas ua txuj ua ib yam dab tsi pab tau, tab sis qhov tseeb ua tej yam yooj yim heev uas tsis tuaj yeem muaj qhov yuam kev. Peb yuav tsum sau cov crutches rau qhov kev ua si kom tsawg kawg ua haujlwm. Qhov no yog ib qho txheej txheem qeeb thiab mob.

Hauv luv, kuv ua nws. Kuv tshem tawm ntau thiab ntau daim code kom txog rau thaum kuv tau sab laug nrog thawj tus lej uas teeb tsa lub kaw lus kom khiav qhov kev ua si, pib ua haujlwm kho vajtse, thiab lwm yam. Tau kawg, nyob rau theem no kuv tsis tuaj yeem tsim cov ntawv qhia zaub mov txuag thiab thauj khoom, vim tias kuv yuav tsum tau tsim lub stub rau tag nrho cov duab kos. Tab sis kuv tuaj yeem ua txuj ua tus neeg siv siv (tsis pom) txuag thiab thauj khoom thiab nug kom txuag thiab sau rau hauv daim npav nco.

Qhov no tau tso kuv nrog ib qho me me ntawm cov cai uas tseem muaj qhov teeb meem saum toj no - tab sis nws tseem tshwm sim random! Feem ntau txhua yam ua haujlwm zoo, tab sis qee zaus muaj glitches. Kuv tshem tawm yuav luag txhua qhov kev ua si code, tab sis tus kab mob tseem muaj sia nyob. Qhov no yog puzzling: qhov seem code tsis tau ua dab tsi.

Qee lub sij hawm, tej zaum nyob ib ncig ntawm peb thaum sawv ntxov, ib qho kev xav tshwm sim rau kuv. Nyeem thiab sau ntawv (input/output) kev ua haujlwm suav nrog lub sijhawm ua tiav. Thaum koj ua hauj lwm nrog ib tug hard drive, nco daim card los yog Bluetooth module, lub qis-theem code lub luag hauj lwm rau kev nyeem ntawv thiab sau ntawv ua li ntawd raws li lub moos pulses.

Nrog kev pab los ntawm lub moos, ib lub cuab yeej uas tsis ncaj qha txuas nrog lub processor yog synchronized nrog cov cai ua tiav ntawm lub processor. Lub moos txiav txim siab tus nqi baud-qhov ceev ntawm cov ntaub ntawv xa mus. Yog tias muaj kev tsis sib haum xeeb nrog lub sijhawm, ces qhov kho vajtse lossis software, lossis ob qho tib si, kuj tsis meej pem. Thiab qhov no yog qhov phem heev, vim tias cov ntaub ntawv tuaj yeem raug puas tsuaj.

Yuav ua li cas yog tias ib yam dab tsi hauv peb cov cai tsis meej pem lub sijhawm? Kuv tau tshawb xyuas txhua yam ntsig txog qhov no hauv qhov kev sim code thiab pom tias peb teeb tsa lub programmable timer hauv PS1 txog 1 kHz (1000 zuam ib ob). Qhov no yog ntau heev; los ntawm lub neej ntawd, thaum lub console pib, nws khiav ntawm 100 Hz. Thiab feem ntau kev ua si siv qhov zaus no.

Andy, tus tsim tawm kev ua si, teeb tsa lub sijhawm rau 1 kHz kom txav mus los yuav suav tau raug ntau dua. Andy nyhav dhau mus, thiab yog tias peb ua raws li lub ntiajteb txawj nqus, peb ua nws kom raug raws li qhov ua tau!

Tab sis yuav ua li cas yog tias kev ua kom lub sijhawm ua haujlwm tau cuam tshuam rau tag nrho lub sijhawm ntawm qhov kev zov me nyuam, thiab yog li lub moos uas tswj hwm tus nqi baud rau daim npav nco?

Kuv tawm tswv yim tawm timer code. Qhov yuam kev tsis tshwm sim dua. Tab sis qhov no tsis txhais hais tias peb kho nws, vim hais tias qhov tsis ua hauj lwm tshwm sim random. Yuav ua li cas yog tias kuv tsuas muaj hmoo?

Ob peb hnub tom qab kuv tau sim dua nrog qhov kev xeem. Tus kab mob no tsis tshwm sim. Kuv rov qab mus rau tag nrho cov game codebase thiab hloov kho qhov txuag thiab thauj khoom kom lub programmable timer yuav rov pib dua nws tus nqi qub (100Hz) ua ntej nkag mus rau daim npav nco, thiab rov qab rov qab mus rau 1kHz. Tsis muaj kev sib tsoo ntxiv lawm.

Tab sis vim li cas qhov no tshwm sim?

Kuv rov qab mus rau qhov kev sim dua. Kuv sim nrhiav qee tus qauv hauv qhov tshwm sim ntawm qhov yuam kev nrog 1 kHz timer. Thaum kawg kuv pom tias qhov yuam kev tshwm sim thaum ib tus neeg ua si nrog PS1 maub los. Txij li thaum kuv yuav tsis tshua ua qhov no rau kuv tus kheej - vim li cas kuv thiaj xav tau tus maub los thaum kuaj txuag thiab thauj khoom? - Kuv tsis txawm pom qhov kev vam khom no. Tab sis muaj ib hnub ib tug ntawm peb cov kws ua yeeb yam tau tos kuv kom ua tiav qhov kev sim - Kuv tau raug foom tsis zoo rau lub sijhawm ntawd - thiab ntshai twirled tus maub los ntawm nws txhais tes. Ib qho yuam kev tau tshwm sim. "Tos, dab tsi?!" Zoo, ua dua! ”

Thaum kuv pom tau hais tias ob qhov xwm txheej no tau sib cuam tshuam, kuv tuaj yeem rov tsim dua qhov yuam kev yooj yim: Kuv pib sau rau hauv daim npav nco, txav tus maub los, thiab ua kom puas daim npav nco. Rau kuv nws zoo li tus kab mob kho vajtse.

Kuv tuaj rau Connie thiab qhia nws txog kuv qhov kev tshawb pom. Nws relayed cov ntaub ntawv rau ib tug ntawm cov engineers uas tsim lub PS1. "Yuav ua tsis tau," nws teb, "Nws tsis tuaj yeem yog teeb meem kho vajtse." Kuv hais kom Connie npaj kev sib tham rau peb.

Tus engineer hu kuv thiab peb sib cav hauv nws cov lus Askiv tawg thiab kuv (tsis tshua muaj) tawg Japanese. Thaum kawg kuv tau hais tias, "Cia kuv xa kuv qhov kev sim 30 kab uas txav tus maub los ua rau kab laum." Nws pom zoo. Nws hais tias nws yog ib lub sij hawm nkim sij hawm thiab nws tau ua haujlwm tsis txaus ntseeg ua haujlwm tshiab, tab sis yuav muab rau vim tias peb yog tus tsim tawm tseem ceeb heev rau Sony. Kuv ntxuav kuv qhov kev xeem ntawv thiab xa mus rau nws.

Hmo tom ntej (peb nyob Los Angeles thiab nws nyob hauv Tokyo) nws hu kuv thiab thov txim rau yaj. Nws yog ib qho teeb meem kho vajtse.

Kuv tsis paub tias kab laum yog dab tsi, tab sis los ntawm qhov kuv tau hnov ​​​​ntawm Sony lub hauv paus chaw haujlwm, yog tias koj teeb tsa lub sijhawm kom muaj nuj nqis txaus, nws cuam tshuam nrog cov khoom ntawm lub motherboard nyob ib puag ncig ntawm lub sijhawm siv lead ua. Ib tug ntawm lawv yog baud tus nqi tswj rau daim npav nco, uas kuj tau teeb tsa tus nqi baud rau cov tswj. Kuv tsis yog ib tug engineer, yog li kuv yuav tau messed ib yam dab tsi.

Tab sis cov kab hauv qab yog tias muaj kev cuam tshuam ntawm cov khoom ntawm lub motherboard. Thiab thaum xa cov ntaub ntawv ib txhij los ntawm qhov chaw nres nkoj maub los thiab lub cim xeeb daim npav qhov chaw nres nkoj nrog lub sijhawm ua haujlwm ntawm 1 kHz, cov khoom ploj, cov ntaub ntawv ploj, thiab daim npav puas.

Cov nyuj phem

Xyoo 1980, kuv tus kws cob qhia Sergei tau sau software rau SM-1800, ib tug Soviet clone ntawm PDP-11. Lub microcomputer no nyuam qhuav raug ntsia rau ntawm qhov chaw nres tsheb ciav hlau ze Sverdlovsk, lub chaw thauj khoom tseem ceeb hauv USSR. Cov txheej txheem tshiab tau tsim los rau txoj kev wagons thiab freight tsheb. Tab sis nws muaj cov kab laum uas ua rau muaj kev sib tsoo thiab sib tsoo. Poob ib txwm tshwm sim thaum ib tug neeg mus tsev thaum yav tsaus ntuj. Tab sis txawm tias muaj kev tshawb fawb zoo rau hnub tom qab, lub khoos phis tawj tau ua haujlwm kom raug hauv txhua qhov kev xeem ntawv thiab tsis siv neeg. Qhov no feem ntau qhia txog kev sib tw los yog lwm yam kab sib tw uas tshwm sim hauv qee yam xwm txheej. Nquag hu rau yav tsaus ntuj, Sergei txiav txim siab mus rau hauv qab ntawm nws, thiab ua ntej ntawm tag nrho cov, to taub dab tsi tej yam kev mob ntawm lub marshalling yard coj mus rau lub computer puas.

Ua ntej, nws tau sau cov txheeb cais ntawm txhua qhov kev poob qis thiab tsim ib daim duab los ntawm hnub thiab sijhawm. Tus qauv tau pom tseeb. Tom qab soj ntsuam ob peb hnub ntxiv, Sergei pom tau hais tias nws tuaj yeem yooj yim kwv yees lub sijhawm ntawm kev ua tsis tiav yav tom ntej.

Tsis ntev nws tau kawm tias muaj kev cuam tshuam tsuas yog tshwm sim thaum lub chaw nres tsheb tau txheeb cov tsheb thauj neeg nyuj los ntawm qaum teb Ukraine thiab sab hnub poob Russia mus rau lub tsev tua tsiaj nyob ze. Qhov no hauv nws tus kheej yog coj txawv txawv, vim hais tias lub tsev tua tsiaj tau muab los ntawm cov liaj teb nyob ze dua, hauv Kazakhstan.

Lub Chernobyl nuclear fais fab nroj tsuag tawg nyob rau hauv 1986, thiab radioactive fallout ua rau cov cheeb tsam nyob ib ncig ntawm uninhabited. Cov cheeb tsam loj nyob rau sab qaum teb Ukraine, Belarus thiab sab hnub poob Russia tau kis kab mob. Xav tias muaj hluav taws xob siab hauv cov tsheb thauj mus los, Sergei tau tsim ib txoj hauv kev los sim qhov kev xav no. Cov pej xeem raug txwv tsis pub muaj dosimeters, yog li Sergei tau sau npe nws tus kheej nrog ntau tus tub rog ntawm qhov chaw nres tsheb ciav hlau. Tom qab ob peb dej ntawm vodka, nws tau tswj kom yaum ib tug tub rog los ntsuas qhov ntsuas hluav taws xob hauv ib qho ntawm cov tsheb thauj neeg tsis txaus ntseeg. Nws muab tawm hais tias cov qib yog ob peb zaug siab dua li ib txwm muaj nqis.

Tsis tsuas yog cov nyuj emit ib tug ntau ntawm cov hluav taws xob, nws theem siab heev uas nws ua rau random poob ntawm cov khoom nyob rau hauv lub cim xeeb ntawm SM-1800, uas nyob rau hauv ib lub tsev nyob ib sab ntawm lub chaw nres tsheb.

Muaj zaub mov tsis txaus nyob rau hauv USSR, thiab cov tub ceev xwm txiav txim siab muab cov nqaij Chernobyl nrog cov nqaij los ntawm lwm thaj tsam ntawm lub tebchaws. Qhov no ua rau nws muaj peev xwm txo tau tag nrho qib ntawm cov xov tooj cua tsis tau poob cov peev txheej muaj txiaj ntsig. Thaum kawm txog qhov no, Sergei tam sim ntawd sau cov ntaub ntawv rau kev tsiv teb tsaws chaw. Thiab lub khoos phis tawj sib tsoo nres ntawm lawv tus kheej thaum cov hluav taws xob qis qis dhau sijhawm.

Los ntawm cov kav dej

Ib zaug dhau los, Movietech Solutions tsim software rau xinesmas, tsim los rau kev sau nyiaj, muag daim pib thiab kev tswj hwm dav dav. Lub DOS version ntawm lub flagship app tau nrov heev ntawm cov yeeb yaj kiab me me thiab nruab nrab ntawm cov yeeb yaj kiab hauv North America. Yog li nws tsis yog qhov xav tsis thoob tias thaum lub Windows 95 version tau tshaj tawm, kev koom ua ke nrog cov ntxaij vab tshaus tshiab thiab kev pabcuam tus kheej, thiab nruab nrog txhua hom kev tshaj tawm cov cuab yeej, nws tau nrov sai heev. Feem ntau qhov hloov tshiab mus yam tsis muaj teeb meem. Cov neeg ua haujlwm IT hauv zos tau teeb tsa cov cuab yeej tshiab, cov ntaub ntawv tsiv teb tsaws chaw, thiab kev lag luam txuas ntxiv mus. Tsuas yog thaum nws tsis kav. Thaum qhov no tshwm sim, lub tuam txhab yuav xa tawm James, lub npe menyuam yaus "Tus Cleaner."

Txawm hais tias lub npe menyuam yaus qhia txog hom tsis zoo, tus ntxhua khaub ncaws tsuas yog kev sib txuas ntawm tus kws qhia, tus neeg tsim khoom thiab jack-of-tag nrho-kev lag luam. James yuav siv sijhawm ob peb hnub ntawm tus neeg siv khoom lub vev xaib muab tag nrho cov khoom sib xyaw ua ke, thiab tom qab ntawd siv ob peb hnub qhia cov neeg ua haujlwm siv cov txheej txheem tshiab, daws cov teeb meem kho vajtse uas tshwm sim thiab qhov tseem ceeb pab software los ntawm nws cov me nyuam mos.

Yog li ntawd, nws tsis yog qhov xav tsis thoob tias thaum lub sijhawm muaj kev ntxhov siab no, James tuaj txog ntawm qhov chaw ua haujlwm thaum sawv ntxov, thiab ua ntej nws tuaj yeem ncav cuag nws lub rooj, nws tau txais tos los ntawm tus thawj tswj hwm, muaj caffeine ntau dua li niaj zaus.

"Kuv ntshai koj yuav tsum mus rau Annapolis, Nova Scotia, sai li sai tau." Lawv tag nrho cov kab ke poob qis, thiab tom qab ib hmo ntawm kev ua haujlwm nrog lawv cov engineers, peb tsis tuaj yeem paub tias muaj dab tsi tshwm sim. Nws zoo li lub network tau ua tsis tiav ntawm lub server. Tab sis tsuas yog tom qab lub kaw lus tau ua haujlwm rau ob peb feeb.

- Lawv tsis rov qab mus rau qhov qub? - Yakaunpaus teb tiag tiag, txawm hais tias lub hlwb nws nthuav nws lub qhov muag nyob rau hauv surprise.

- Tseeb tiag: lawv tus kws tshaj lij IT "hloov qhov tseem ceeb" thiab txiav txim siab tawm mus nrog lawv cov server qub. James, lawv tau teeb tsa lub kaw lus ntawm rau qhov chaw thiab tsuas yog them nyiaj rau kev them nyiaj yug, thiab lawv txoj kev lag luam tam sim no tau khiav zoo li nws nyob rau xyoo 1950.

James straightened me ntsis.

- Qhov ntawd yog lwm qhov teeb meem. Okay, cia peb pib.

Thaum nws tuaj txog hauv Annapolis, thawj qhov uas nws tau ua yog nrhiav tus neeg siv khoom ua yeeb yam thawj zaug uas muaj teeb meem. Ntawm daim duab qhia chaw nyob ntawm lub tshav dav hlau, txhua yam saib zoo, tab sis thaj chaw nyob ib ncig ntawm qhov chaw nyob xav tau saib tsis txaus ntseeg. Tsis yog ghetto, tab sis reminiscent ntawm zaj duab xis noir. Thaum Yakaunpaus nres rau ntawm ntug kev hauv plawv nroog, ib tug niam ntiav tuaj cuag nws. Muab qhov loj ntawm Annapolis, nws yog feem ntau tsuas yog ib qho hauv tag nrho lub nroog. Nws qhov tsos tam sim ntawd coj mus rau lub siab lub npe nrov tus cwj pwm uas muab kev sib deev rau nyiaj ntawm qhov screen loj. Tsis yog, tsis yog hais txog Julia Roberts, tab sis hais txog Jon Voight [allusion rau zaj duab xis "Ib tag hmo Cowboy" - kwv yees. txoj kev].

Thaum nws xa tus niam ntiav ntawm nws txoj kev, James mus rau hauv xinesmas. Cov cheeb tsam ib puag ncig tau zoo dua, tab sis nws tseem ua rau lub tswv yim ntawm kev khiav mus. Tsis yog tias James txhawj xeeb dhau. Nws tau mus rau qhov chaw phem ua ntej. Thiab qhov no yog Canada, qhov twg txawm tias muggers coj zoo txaus los hais "ua tsaug" tom qab nqa koj lub hnab nyiaj.

Sab nkag mus rau hauv xinesmas yog nyob rau hauv ib tug dank txoj kev. James taug kev mus rau ntawm lub qhov rooj thiab khob. Tsis ntev nws creaked thiab qhib me ntsis.

-Koj puas yog tus neeg huv? - ib lub suab nrov nrov los ntawm sab hauv.

- Yog, nws yog kuv ... Kuv tuaj kho txhua yam.

James taug kev mus rau hauv qhov chaw tos txais xinesmas. Pom tau tias tsis muaj lwm txoj kev xaiv, cov neeg ua haujlwm pib muab daim pib xa mus rau cov qhua. Qhov no ua rau kev tshaj tawm nyiaj txiag nyuaj, cia nyob ib leeg ntxiv cov ntsiab lus nthuav dav. Tab sis cov neeg ua hauj lwm tau txais tos Yakaunpaus nrog kev nplij siab thiab tam sim ntawd coj nws mus rau hauv chav tsev neeg rau zaub mov.

Thaum xub thawj siab ib muag, txhua yam zoo. James tau nkag mus rau hauv lub server thiab tshawb xyuas qhov chaw tsis txaus ntseeg. Tsis muaj teeb meem. Txawm li cas los xij, tawm ntawm kev ceev faj ntau, James kaw lub server, hloov daim npav network, thiab rov qab rau lub kaw lus. Nws tam sim ntawd pib ua hauj lwm tag nrho. Cov neeg ua haujlwm pib muag daim pib dua.

James hu Mark thiab qhia nws txog qhov xwm txheej. Nws tsis nyuaj rau xav txog tias James yuav xav nyob ib puag ncig thiab pom tias muaj dab tsi tshwm sim tsis tau xav txog. Nws tau nqis los ntawm tus ntaiv thiab pib nug cov neeg ua haujlwm tias muaj dab tsi tshwm sim. Pom tseeb tias qhov system tau tso tseg. Lawv muab nws tua thiab qhib, txhua yam ua haujlwm. Tab sis tom qab 10 feeb lub kaw lus poob.

Tsuas yog lub sijhawm no muaj qee yam zoo sib xws. Mam li nco dheev, daim pib pib ua yuam kev. Cov neeg ua hauj lwm sighed thiab tuav daim pib daim pib, thiab James maj nrawm mus rau lub server chav. Txhua yam saib zoo nrog server.

Ces ib tug ntawm cov neeg ua hauj lwm nkag mus.

- Lub kaw lus rov ua haujlwm dua.

James nyuaj siab vim nws tsis tau ua dab tsi. Ntau precisely, tsis muaj dab tsi uas yuav ua rau lub system ua hauj lwm. Nws tawm, khaws nws lub xov tooj, thiab hu nws lub tuam txhab txoj kev txhawb nqa. Tsis ntev no tib neeg ua haujlwm nkag mus rau hauv chav neeg rau zaub mov.

- Lub kaw lus poob qis.

James ntsia ntawm lub server. Ib qho kev nthuav thiab paub txog cov duab ntau xim tau seev cev ntawm qhov screen - chaotically writhing thiab intertwining kav. Peb txhua tus tau pom qhov screensaver ntawm qee lub sijhawm. Nws tau zoo nkauj rendered thiab cia hypnotizing.


James nias lub pob thiab tus qauv ploj mus. Nws maj nrawm mus rau lub chaw ua haujlwm pib thiab ntawm txoj kev tau ntsib ib tus neeg ua haujlwm rov qab los rau nws.

- Lub kaw lus rov ua haujlwm dua.

Yog tias koj tuaj yeem ua lub ntsej muag puas hlwb, qhov ntawd yog qhov uas James tau ua. Screensaver. Nws siv OpenGL. Thiab yog li ntawd, thaum lub sijhawm ua haujlwm, nws siv tag nrho cov peev txheej ntawm lub server processor. Yog li ntawd, txhua qhov kev hu mus rau lub server xaus nrog lub sijhawm.

James rov qab mus rau chav neeg rau zaub mov, nkag mus rau hauv, thiab hloov lub vijtsam tshuaj ntsuam nrog cov kav dej zoo nkauj nrog lub vijtsam dawb. Ntawd yog, tsis yog ib qho screensaver uas siv 100% ntawm cov khoom siv processor, kuv tau teeb tsa lwm qhov uas tsis haus cov peev txheej. Tom qab ntawd kuv tos 10 feeb los xyuas kuv qhov kev kwv yees.

Thaum James tuaj txog ntawm lub chaw ua yeeb yaj kiab tom ntej, nws xav paub yuav ua li cas piav qhia rau nws tus thawj coj tias nws nyuam qhuav ya 800 km kom tua lub vijtsam txuag.

Kev sib tsoo thaum lub sijhawm qee lub hli

Dab neeg tseeb. Muaj ib hnub ib tug kab mob software tshwm sim uas nyob ntawm theem ntawm lub hli. Muaj ib txoj haujlwm me me uas feem ntau siv hauv ntau qhov kev pabcuam MIT los xam qhov kwv yees rau theem tseeb ntawm lub hli. GLS tau tsim qhov niaj hnub no rau hauv LISP qhov kev pab cuam uas, thaum sau cov ntaub ntawv, yuav tso tawm ib kab nrog lub sij hawm ze li 80 cim ntev. Nws yog qhov tsawg heev uas thawj kab ntawm cov lus yuav xaus mus ntev dhau lawm thiab coj mus rau kab tom ntej. Thiab thaum qhov kev pab cuam tom qab nyeem cov ntaub ntawv no, nws foom phem. Qhov ntev ntawm thawj kab nyob ntawm qhov tseeb hnub thiab lub sijhawm, nrog rau qhov ntev ntawm cov theem qhia tshwj xeeb ntawm lub sijhawm lub sijhawm luam tawm. Ntawd yog, kab laum nyob ntawm theem ntawm lub hli!

Thawj tsab ntawv Cov ntaub ntawv jargon (Steele-1983) muaj ib qho piv txwv ntawm cov kab uas coj mus rau cov kab lus piav qhia, tab sis tus ntaus ntawv "kho" nws. Qhov no tau txij li tau piav raws li "moon theem kab".

Txawm li cas los xij, ceev faj nrog kev xav. Ob peb xyoos dhau los, engineers los ntawm CERN (European Center for Nuclear Research) tau ntsib qhov yuam kev hauv kev sim ua los ntawm Loj Electron-Positron Collider. Txij li thaum cov khoos phis tawj nquag ua cov ntaub ntawv ntau ntawm cov khoom tsim los ntawm cov cuab yeej no ua ntej qhia qhov tshwm sim rau cov kws tshawb fawb, ntau tus xav tias software yog qee yam rhiab rau theem ntawm lub hli. Ntau tus engineers xav ua kom tau mus rau hauv qab ntawm qhov tseeb. Qhov yuam kev tshwm sim vim qhov hloov pauv me ntsis hauv cov duab geometry ntawm 27 km ntev lub nplhaib vim yog lub ntiaj teb deformation thaum lub hli dhau los! Zaj dab neeg no tau nkag mus rau physics folklore li "Newton's Revenge on Particle Physics" thiab ib qho piv txwv ntawm kev sib txuas ntawm cov kev cai yooj yim tshaj plaws thiab qub tshaj plaws ntawm physics thiab cov ntsiab lus kev tshawb fawb tshaj plaws.

Tso lub tso quav tso tseg lub tsheb ciav hlau

Cov kab mob zoo tshaj plaws uas kuv tau hnov ​​​​txog yog ntawm lub tsheb ciav hlau ceev hauv Fabkis. Cov kab no ua rau muaj kev kub ntxhov ntawm lub tsheb ciav hlau, tab sis tsuas yog tias muaj cov neeg caij tsheb. Nyob rau hauv txhua rooj plaub, lub tsheb ciav hlau raug tshem tawm ntawm kev pabcuam, kuaj xyuas, tab sis tsis muaj dab tsi pom. Tom qab ntawd nws raug xa rov qab mus rau txoj kab, thiab tam sim ntawd nws poob mus rau qhov nres.

Thaum lub sij hawm ib qho ntawm cov tshev, ib tug engineer uas taug kev hauv lub tsheb ciav hlau mus rau chav dej. Nws sai sai ntxuav, BOOM! Thaum muaj xwm ceev nres.

Tus engineer hu rau tus tsav tsheb thiab nug:

- Koj ua dab tsi ua ntej braking?

- Yog lawm, kuv qeeb ntawm qhovntsej thiaj tsis mob ...

Qhov no yog coj txawv txawv, vim hais tias thaum lub sij hawm ib txwm ua hauj lwm lub tsheb ciav hlau slows down ntawm qhovntsej thiaj tsis mob ntau zaus. Lub tsheb ciav hlau tsiv mus, thiab nyob rau qhovntsej thiaj tsis mob, tus neeg tsav tsheb ceeb toom:

- Kuv yuav qeeb.

Tsis muaj dab tsi tshwm sim.

- Koj ua dab tsi thaum lub sijhawm braking kawg? - nug tus tsav tsheb.

- Zoo ... Kuv nyob hauv chav dej...

- Zoo, ces mus rau hauv chav dej thiab ua dab tsi koj tau ua thaum peb nqes dua!

Tus kws tsav tsheb mus rau hauv chav dej, thiab thaum tus tsav tsheb ceeb toom: "Kuv maj mam," nws yaug dej. Tau kawg, lub tsheb ciav hlau nres tam sim ntawd.

Tam sim no lawv tuaj yeem tsim qhov teeb meem thiab xav tau los nrhiav qhov laj thawj.

Tom qab ob feeb, lawv pom tias lub cav nres qhov chaw taws teeb tswj cable (lub tsheb ciav hlau muaj ib lub cav ntawm txhua qhov kawg) raug txiav tawm ntawm phab ntsa ntawm lub txee hluav taws xob thiab tau pw ntawm lub relay uas tswj lub tso zis tso quav solenoid... Thaum lub relay tau qhib, nws tsim kev cuam tshuam rau hauv lub nres cable, thiab lub kaw lus tiv thaiv kev ua tsis tiav tsuas yog suav nrog thaum muaj xwm txheej ceev.

Lub rooj vag uas ntxub FORTRAN

Ob peb lub hlis dhau los peb pom tias kev sib txuas hauv network ntawm thaj av loj [qhov no nyob hauv Hawaii] tau txais qeeb heev. Qhov no yuav kav ntev li 10-15 feeb thiab mam li rov tshwm sim dua. Tom qab qee lub sijhawm, kuv cov npoj yaig tau yws rau kuv tias kev sib txuas hauv lub network ntawm thaj av loj feem ntau tsis ua haujlwm. Nws muaj qee qhov FORTRAN code uas yuav tsum tau theej rau lub tshuab hauv av loj, tab sis nws tsis tuaj yeem vim "lub network tsis tuav ntev txaus rau FTP upload kom tiav."

Yog lawm, nws tau pom tias kev ua tsis tiav hauv lub network tau tshwm sim thaum ib tus npoj yaig tau sim FTP cov ntaub ntawv nrog cov lej hauv FORTRAN rau lub tshuab ntawm thaj av loj. Peb sim khaws cov ntaub ntawv: tom qab ntawd nws tau theej zoo (tab sis lub hom phiaj lub tshuab tsis muaj lub unpacker, yog li qhov teeb meem tsis daws tau). Thaum kawg peb "sib" FORTRAN code rau hauv me me thiab xa lawv ib zaug. Feem ntau ntawm cov fragments tau theej yam tsis muaj teeb meem, tab sis ob peb daim tsis dhau, lossis dhau mus heev heev kev sim.

Tom qab kuaj xyuas cov teeb meem, peb pom tias lawv muaj qee yam sib xws: lawv txhua tus muaj cov lus qhia uas tau pib thiab xaus nrog cov kab uas muaj peev C (raws li cov npoj yaig nyiam los tawm tswv yim hauv FORTRAN). Peb tau xa email rau cov kws tshaj lij hauv lub network hauv tebchaws thiab thov kev pab. Tau kawg, lawv xav pom cov qauv ntawm peb cov ntaub ntawv uas tsis tuaj yeem hloov ntawm FTP ... tab sis peb cov ntawv tsis ncav cuag lawv. Thaum kawg peb tuaj nrog qhov yooj yim piav qhiacov ntaub ntawv tsis hloov pauv zoo li cas. Nws ua haujlwm :) [Dare Kuv ntxiv ib qho piv txwv ntawm ib qho teeb meem FORTRAN lus ntawm no? Tej zaum tsis tsim nyog nws!]

Thaum kawg peb tau tswj xyuas nws. Lub rooj vag tshiab tsis ntev los no tau teeb tsa nruab nrab ntawm peb ib feem ntawm lub tsev kawm ntawv thiab thaj av loj. Nws muaj HUGE nyuaj xa cov pob ntawv uas muaj cov khoom rov ua dua ntawm C! Tsuas yog ob peb ntawm cov pob ntawv no tuaj yeem nqa tag nrho cov kev pab cuam lub rooj vag thiab tiv thaiv feem ntau lwm cov pob ntawv los ntawm. Peb tau yws rau lub rooj vag chaw tsim khoom ... thiab lawv teb tias: "Auj, yog, koj tau ntsib nrog tus kab mob rov qab C! Peb twb paub txog nws lawm.” Thaum kawg peb tau daws qhov teeb meem los ntawm kev yuav lub qhov rooj tshiab los ntawm lwm lub chaw tsim khoom (hauv kev tiv thaiv yav dhau los, qhov tsis muaj peev xwm hloov FORTRAN cov kev pab cuam yuav yog qhov zoo rau qee qhov!).

Tauj lub sij hawm

Ob peb xyoos dhau los, thaum ua haujlwm ntawm kev tsim ETL system hauv Perl kom txo cov nqi ntawm theem 40 kev sim tshuaj, kuv yuav tsum tau ua tiav txog 000 hnub. Ob tug ntawm lawv tsis tau xeem. Qhov no tsis thab kuv ntau dhau vim tias cov hnub no tau muab los ntawm cov neeg siv khoom muab cov ntaub ntawv uas feem ntau, peb yuav hais, xav tsis thoob. Tab sis thaum kuv tshawb xyuas cov ntaub ntawv qub, nws tau pom tias cov hnub no yog Lub Ib Hlis 1, 2011 thiab Lub Ib Hlis 1, 2007. Kuv xav tias cov kab no muaj nyob rau hauv qhov kev pab cuam kuv nyuam qhuav sau, tab sis nws hloov tawm tias nws twb tau 30 xyoo lawm. laus. Qhov no tuaj yeem ua suab tsis meej rau cov tsis paub nrog software ecosystem. Vim hais tias ntawm lwm lub tuam txhab kev txiav txim siab mus ntev kom tau nyiaj, kuv cov neeg siv khoom tau them kuv los kho cov kab laum uas ib lub tuam txhab tau qhia los ntawm kev sib tsoo thiab lwm qhov ntawm lub hom phiaj. Rau koj kom nkag siab qhov kuv tab tom tham txog, Kuv yuav tsum tau tham txog lub tuam txhab uas tau ntxiv cov yam ntxwv uas tau dhau los ua kab laum, nrog rau ob peb lwm yam xwm txheej nthuav tawm uas ua rau cov kab tsis zoo uas kuv tau kho.

Hauv cov hnub qub zoo, Apple cov khoos phis tawj qee zaum yuav rov pib dua lawv hnub rau Lub Ib Hlis 1, 1904. Yog vim li cas yooj yim: nws siv lub roj teeb-powered "lub kaw lus moos" kom taug qab hnub thiab sijhawm. Yuav ua li cas thaum lub roj teeb tuag? Cov khoos phis tawj tau pib taug qab hnub los ntawm tus lej ntawm cov vib nas this txij thaum pib ntawm lub sijhawm. Los ntawm lub sijhawm peb txhais tau hais tias thawj hnub siv, thiab rau Macintoshes nws yog Lub Ib Hlis 1, 1904. Thiab tom qab lub roj teeb tuag, hnub tam sim no tau rov qab mus rau qhov teev tseg. Tab sis vim li cas qhov no tshwm sim?

Yav dhau los, Apple siv 32 me ntsis los khaws cov naj npawb ntawm vib nas this txij li hnub qub. Ib me ntsis tuaj yeem khaws ib qho ntawm ob qhov txiaj ntsig - 1 lossis 0. Ob lub khoom tuaj yeem khaws ib qho ntawm plaub qhov tseem ceeb: 00, 01, 10, 11. Peb cov khoom - ib tus nqi tawm ntawm yim: 000, 001, 010, 011, 100 , 101, 110, 111, thiab lwm yam. Thiab 32 tuaj yeem khaws ib qho ntawm 232 qhov tseem ceeb, uas yog, 4 vib nas this. Rau Apple hnub, qhov no sib npaug li 294 xyoo, yog li cov laus Macs tsis tuaj yeem lis hnub tom qab 967. Thiab yog tias lub roj teeb lub cev tuag, hnub rov pib dua rau 296 vib nas this txij li thaum pib ntawm lub sijhawm, thiab koj yuav tsum tau teem sijhawm manually txhua zaus koj qhib lub computer (lossis txog thaum koj yuav lub roj teeb tshiab).

Txawm li cas los xij, Apple qhov kev txiav txim siab khaws cov hnub raws li vib nas this txij li lub sijhawm txhais tau tias peb tsis tuaj yeem lis cov hnub ua ntej lub sijhawm, uas muaj qhov cuam tshuam loj heev, raws li peb yuav pom. Apple tau tshaj tawm qhov tshwj xeeb, tsis yog kab laum. Ntawm lwm yam, qhov no txhais tau hais tias Macintosh operating system tiv thaiv kab mob "millennium kab laum" (uas tsis tuaj yeem hais txog ntau daim ntawv thov Mac uas muaj lawv tus kheej hnub nruab hnub kom hla kev txwv).

Ua ntej. Peb siv Lotus 1-2-3, IBM's "killer application" uas tau pab pib lub kiv puag ncig PC, txawm hais tias Apple cov khoos phis tawj muaj VisiCalc, uas ua rau tus kheej lub computer ua tiav. Hauv kev ncaj ncees, yog tias 1-2-3 tsis tau tshwm sim, PCs yuav tsis tshua tau tshem tawm, thiab keeb kwm ntawm tus kheej lub computer tuaj yeem tsim txawv heev. Lotus 1-2-3 kho tsis raug 1900 li xyoo leap. Thaum Microsoft tso nws thawj daim ntawv nthuav dav, Multiplan, nws tau ntes ib feem me me ntawm kev ua lag luam. Thiab thaum lawv pib Excel qhov project, lawv txiav txim siab tsis yog tsuas yog luam cov kab thiab kab npe ntawm Lotus 1-2-3, tab sis kuj txhawm rau xyuas kom muaj kab laum sib raug zoo los ntawm kev txhob txwm kho 1900 raws li xyoo leap. Qhov teeb meem no tseem muaj niaj hnub no. Ntawd yog, hauv 1-2-3 qhov no yog kab laum, tab sis hauv Excel nws yog qhov kev txiav txim siab zoo uas ua kom txhua tus neeg siv 1-2-3 tuaj yeem nqa lawv cov ntxhuav rau hauv Excel yam tsis hloov cov ntaub ntawv, txawm tias nws tsis raug.

Tab sis muaj lwm qhov teeb meem. Ua ntej, Microsoft tso tawm Excel rau Macintosh, uas tsis paub hnub ua ntej Lub Ib Hlis 1, 1904. Thiab hauv Excel, Lub Ib Hlis 1, 1900 tau suav tias yog qhov pib ntawm lub sijhawm. Yog li ntawd, cov neeg tsim khoom tau hloov pauv kom lawv qhov kev pab cuam lees paub hom era thiab khaws cov ntaub ntawv hauv nws tus kheej raws li lub sijhawm xav tau. Microsoft txawm sau ib tsab xov xwm piav qhia txog qhov no. Thiab qhov kev txiav txim siab no ua rau kuv muaj kab mob.

Kuv qhov system ETL tau txais Excel cov ntawv nthuav tawm los ntawm cov neeg siv khoom uas tau tsim hauv Windows, tab sis kuj tuaj yeem tsim rau ntawm Mac. Yog li ntawd, qhov pib ntawm lub sijhawm hauv lub rooj tuaj yeem yog Lub Ib Hlis 1, 1900, lossis Lub Ib Hlis 1, 1904. Yuav nrhiav tau li cas? Cov ntaub ntawv Excel qhia txog cov ntaub ntawv tsim nyog, tab sis tus parser kuv siv tsis tau qhia nws (tam sim no nws ua), thiab xav tias koj paub lub sijhawm rau ib lub rooj tshwj xeeb. Tej zaum kuv yuav tau siv sij hawm ntau nkag siab txog Excel binary hom thiab xa ib thaj rau tus sau parser, tab sis kuv muaj ntau ntau ua rau tus neeg siv khoom, yog li kuv tau sau ntawv sai sai los txiav txim lub sijhawm. Nws yooj yim.

Hauv Excel, hnub tim 5 Lub Xya Hli 1998 tuaj yeem sawv cev rau hauv hom "07-05-98" (tsis siv neeg Asmeskas system), "Jul 5, 98", "Lub Xya Hli 5, 1998", "5-Jul-98" lossis Lwm hom ntawv tsis muaj txiaj ntsig (ironically, ib qho ntawm cov hom ntawv kuv version ntawm Excel tsis muaj yog ISO 8601). Txawm li cas los xij, nyob rau hauv lub rooj, hnub tsis muaj ntaub ntawv khaws tseg yog "35981" rau epoch-1900 lossis "34519" rau epoch-1904 (tus lej sawv cev rau cov hnub txij li lub sijhawm). Kuv tsuas yog siv ib qho yooj yim parser rho tawm lub xyoo los ntawm formatted hnub, thiab tom qab ntawd siv Excel parser rho tawm lub xyoo los ntawm hnub tsis muaj ntaub ntawv. Yog tias ob qho txiaj ntsig sib txawv ntawm 4 xyoo, ces kuv paub tias kuv tau siv lub kaw lus nrog epoch-1904.

Vim li cas ho tsis kuv tsuas yog siv hnub formatted? Vim tias Lub Xya Hli 5, 1998 tuaj yeem raug formatted li "Lub Xya Hli, 98" nrog rau hnub ntawm lub hli poob. Peb tau txais cov ntxhuav los ntawm ntau lub tuam txhab uas tsim lawv los ntawm ntau txoj kev sib txawv uas nws yog nyob ntawm peb (qhov no, kuv) txhawm rau txheeb xyuas cov hnub. Tsis tas li ntawd, yog tias Excel tau txais nws txoj cai, ces peb yuav tsum yog li ntawd!

Nyob rau tib lub sij hawm kuv ntsib 39082. Cia kuv ceeb toom rau koj tias Lotus 1-2-3 suav tias yog 1900 ib xyoo leap, thiab qhov no tau ua siab ncaj rov qab rau hauv Excel. Thiab txij li qhov no tau ntxiv ib hnub rau xyoo 1900, ntau lub hnub suav ua haujlwm yuav tsis raug rau hnub ntawd. Ntawd yog, 39082 tuaj yeem yog Lub Ib Hlis 1, 2011 (ntawm Macs) lossis Lub Kaum Ob Hlis 31, 2006 (ntawm Windows). Yog tias kuv "xyoo parser" rho tawm xyoo 2011 los ntawm tus nqi formatted, ces txhua yam zoo. Tab sis txij li Excel parser tsis paub tias lub sijhawm twg yog siv, nws ua rau epoch-1900, rov qab rau xyoo 2006. Kuv daim ntawv thov pom tias qhov sib txawv yog 5 xyoo, suav tias yog qhov yuam kev, nkag mus rau nws, thiab xa rov qab tus nqi tsis muaj ntaub ntawv.

Kom tau txais qhov no, kuv sau qhov no (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

Thiab tom qab ntawd tag nrho 40 hnub tau txheeb xyuas kom raug.

Hauv nruab nrab ntawm cov ntawv luam loj loj

Thaum xyoo 1980s, kuv txiv tau ua haujlwm ntawm Storage Technology, ib qho kev faib tawm tam sim no uas tsim cov kab xev thiab cov tshuab pneumatic rau kev noj cov kab xev ceev ceev.

Lawv hloov kho cov tsav tsheb kom lawv tuaj yeem muaj ib lub hauv paus "A" tsav txuas nrog xya "B" drives, thiab OS me me hauv RAM uas tswj lub "A" tsav tuaj yeem xa mus nyeem thiab sau cov haujlwm rau txhua qhov "B" drives.

Txhua lub sij hawm tsav "A" tau pib, nws yog ib qho tsim nyog yuav tsum tau ntxig ib lub floppy disk rau hauv lub peripheral drive txuas nrog "A" txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau txhawm rau nws lub cim xeeb. Nws yog qhov tseem ceeb heev: kev suav lub zog tau muab los ntawm 8-ntsis microcontroller.

Cov neeg tuaj saib lub hom phiaj rau cov khoom siv no yog cov tuam txhab uas muaj cov ntaub ntawv loj heev - cov tsev txhab nyiaj, cov khw muag khoom, thiab lwm yam - uas yuav tsum tau luam tawm ntau daim ntawv teev npe lossis daim ntawv teev nyiaj hauv tuam txhab.

Ib tus neeg siv khoom muaj teeb meem. Hauv nruab nrab ntawm kev luam ntawv, ib qho tshwj xeeb tsav "A" tuaj yeem tso tseg tsis ua haujlwm, ua rau tag nrho txoj haujlwm nres. Txhawm rau rov ua haujlwm ntawm tus tsav, cov neeg ua haujlwm yuav tsum rov pib dua txhua yam. Thiab yog hais tias qhov no tshwm sim nyob rau hauv nruab nrab ntawm ib tug rau-teev txoj hauj lwm, ces ib tug lossis loj npaum li cas ntawm kim computer lub sij hawm poob thiab lub sij hawm ntawm tag nrho cov hauj lwm raug cuam tshuam.

Cov kws kho mob tau xa los ntawm Kev Siv Tshuab Cia. Tab sis txawm tias lawv cov kev siv zog zoo tshaj plaws, lawv tsis tuaj yeem tsim cov kab laum nyob rau hauv kev sim: nws zoo li tshwm sim nyob rau hauv nruab nrab ntawm cov hauj lwm loj. Qhov teeb meem tsis yog kho vajtse, lawv hloov txhua yam lawv tuaj yeem ua tau: RAM, microcontroller, floppy drive, txhua qhov xav tau ntawm daim kab xev tsav - qhov teeb meem tshwm sim.

Tom qab ntawd cov kws tshaj lij hu ua lub hauv paus thiab hu ua Tus Kws Tshaj Lij.

Tus kws tshaj lij tau tuav lub rooj zaum thiab khob kas fes, zaum hauv chav khoos phis tawj - nyob rau hauv cov hnub ntawd muaj chav tshwj xeeb rau cov khoos phis tawj - thiab saib thaum cov neeg ua haujlwm tau ua haujlwm loj. Tus kws tshaj lij tau tos qhov tsis ua tiav - thiab nws tau ua. Txhua leej txhua tus saib tus Kws Tshaj Lij, tab sis nws tsis paub tias vim li cas qhov no tshwm sim. Yog li ntawd, nws tau hais kom txoj haujlwm yuav tsum tau teem dua, thiab tag nrho cov neeg ua haujlwm thiab cov kws tshaj lij rov qab mus ua haujlwm.

Tus kws tshaj lij dua zaum ntawm lub rooj zaum thiab pib tos kom tsis ua haujlwm. Kwv yees li rau teev dhau los thiab qhov ua tsis tiav tau tshwm sim. Tus kws tshaj lij dua tsis muaj tswv yim, tsuas yog tias txhua yam tshwm sim hauv chav uas muaj neeg. Nws hais kom lub luag haujlwm rov pib dua, zaum rov qab thiab tos.

Los ntawm qhov ua tsis tiav thib peb, Tus Kws Tshaj Lij pom ib yam dab tsi. Qhov ua tsis tiav tau tshwm sim thaum cov neeg ua haujlwm hloov cov kab xev hauv ib qho txawv teb chaws tsav. Ntxiv mus, qhov ua tsis tiav tau tshwm sim sai li sai tau thaum ib tus neeg ua haujlwm taug kev los ntawm qee cov pobzeb rau hauv pem teb.

Cov hauv pem teb tsa tau ua los ntawm cov vuas txhuas uas tau muab tso rau ntawm qhov siab ntawm 6 mus rau 8 ntiv tes. Ntau cov xov hlau los ntawm cov khoos phis tawj tau khiav hauv qab hauv pem teb los tiv thaiv ib tus neeg los ntawm kev yuam kev los ntawm ib qho tseem ceeb cable. Cov vuas tau muab tso rau nruj heev kom tsis txhob muaj cov khib nyiab nkag hauv qab hauv pem teb.

Tus kws tshaj lij pom tau hais tias ib qho ntawm cov vuas tau deformed. Thaum ib tus neeg ua haujlwm tau nce mus rau ntawm nws lub ces kaum, cov npoo ntawm cov pobzeb rub tawm ntawm cov vuas uas nyob ib sab. Cov khoom yas uas txuas nrog cov vuas kuj rubbed nrog lawv, uas ua rau cov microdischarges zoo li qub uas tsim cov xov tooj cua cuam tshuam.

Niaj hnub no, RAM tau zoo dua tiv thaiv los ntawm kev cuam tshuam hauv xov tooj cua. Tab sis nyob rau hauv cov xyoo no tsis yog li ntawd. Tus kws tshaj lij pom tau hais tias qhov kev cuam tshuam no cuam tshuam rau lub cim xeeb, thiab nrog rau kev ua haujlwm ntawm lub operating system. Nws hu rau qhov kev pabcuam txhawb nqa, xaj cov vuas tshiab, nruab rau nws tus kheej, thiab qhov teeb meem ploj mus.

Nws yog dej hiav txwv!

Zaj dab neeg tau tshwm sim hauv chav neeg rau zaub mov, ntawm plaub lossis thib tsib hauv pem teb ntawm chaw ua haujlwm hauv Portsmouth (Kuv xav), hauv thaj chaw docks.

Muaj ib hnub Unix server nrog lub ntsiab database poob. Lawv rebooted nws, tab sis nws zoo siab txuas ntxiv mus poob ntau dua. Peb txiav txim siab hu ib tus neeg los ntawm qhov kev pabcuam txhawb nqa.

Tus neeg txhawb nqa... Kuv xav tias nws lub npe yog Mark, tab sis tsis muaj teeb meem ... Kuv tsis xav tias kuv paub nws. Tsis muaj teeb meem, tiag. Wb lo nrog Mark, puas yog? Zoo heev.

Yog li, ob peb teev tom qab Mark tuaj txog (nws tsis yog txoj hauv kev ntev los ntawm Leeds mus rau Portsmouth, koj paub), qhib lub server thiab txhua yam ua haujlwm tsis muaj teeb meem. Kev txhawb nqa damn, tus neeg tau txais kev chim siab txog qhov no. Mark saib los ntawm cov ntaub ntawv log thiab pom tsis muaj dab tsi tsis ncaj ncees lawm. Yog li ntawd, Mark rov qab los rau hauv lub tsheb ciav hlau (lossis hom kev thauj mus los twg los xij nws tuaj txog, nws tuaj yeem yog tus nyuj ceg tawv rau txhua yam kuv paub ... txawm li cas los xij, tsis muaj teeb meem, tsis ua li cas?) thiab rov qab mus rau Leeds, tau nkim. hnub.

Tib hmo ntawd lub server tsoo dua. Zaj dab neeg no zoo ib yam... server tsis sawv. Mark sim pab nyob deb, tab sis tus neeg siv khoom tsis tuaj yeem pib lub server.

Lwm lub tsheb ciav hlau, tsheb npav, txiv qaub meringue lossis lwm yam crap, thiab Mark rov qab los hauv Portsmouth. Saib, lub server khau raj tsis muaj teeb meem! Miracle. Mark siv sijhawm ob peb teev xyuas tias txhua yam nyob rau hauv kev txiav txim nrog lub operating system lossis software thiab teem caij rau Leeds.

Nyob ib ncig ntawm nruab nrab hnub cov neeg rau zaub mov poob (siv nws yooj yim!). Lub sijhawm no nws zoo li tsim nyog los nqa cov khoom siv txhawb nqa tib neeg los hloov lub server. Tab sis tsis yog, tom qab li 10 teev nws kuj ntog.

Qhov xwm txheej tau rov ua nws tus kheej rau ob peb hnub. Lub server ua haujlwm, sib tsoo tom qab li 10 teev thiab tsis pib rau 2 teev tom ntej. Lawv tau kuaj xyuas qhov txias, nco txog, lawv tshawb xyuas txhua yam, tab sis tsis pom dab tsi. Ces qhov kev sib tsoo nres.

Lub lim tiam dhau los tsis muaj kev txhawj xeeb ... txhua tus zoo siab. Zoo siab mus txog thaum txhua yam pib dua. Daim duab zoo ib yam. 10 xuab moos ua haujlwm, 2-3 xuab moos ntawm downtime ...

Thiab ces ib tug neeg (Kuv xav tias lawv hais rau kuv tias tus neeg no tsis muaj dab tsi ua nrog IT) hais tias:

"Nws yog dej ntws!"

Lub exclamation tau ntsib nrog lub ntsej muag dawb paug, thiab ib tug neeg txhais tes tej zaum yuav tsis xis nyob ntawm lub khawm hu rau kev ruaj ntseg.

"Nws nres ua haujlwm nrog dej ntws."

Qhov no yuav zoo li yog lub tswv yim txawv teb chaws rau IT txhawb cov neeg ua haujlwm, uas tsis zoo li yuav nyeem Phau Ntawv Tide Yearbook thaum zaum hauv kas fes. Lawv piav qhia tias qhov no tsis tuaj yeem cuam tshuam txog qhov dej nyab hauv ib txoj kev, vim tias cov neeg rau zaub mov tau ua haujlwm rau ib lub lis piam tsis ua haujlwm.

"Lub lim tiam dhau los no dej ntws tsawg, tab sis lub lim tiam no nws siab."

Cov lus me me rau cov uas tsis muaj daim ntawv tso cai yacht. Tides nyob ntawm lub voj voog lunar. Thiab raws li lub ntiaj teb tig, txhua 12,5 teev lub gravitational rub ntawm lub hnub thiab hli tsim ib tidal nthwv dej. Thaum pib ntawm 12,5-teev lub voj voog muaj qhov dej siab, nyob rau hauv nruab nrab ntawm lub voj voog muaj ib qho ebb, thiab thaum kawg muaj dej ntws siab dua. Tab sis raws li lub hli lub orbit hloov, qhov sib txawv ntawm qhov qis thiab dej siab. Thaum lub hli nyob nruab nrab ntawm lub hnub thiab lub ntiaj teb los yog nyob rau hauv lub opposite sab ntawm lub ntiaj teb (tag nrho lub hli los yog tsis muaj lub hli), peb tau txais Syzygyn tides - lub siab tshaj plaws tides thiab qhov qis tshaj tides. Thaum ib nrab hli peb tau txais plaub ntug dej hiav txwv - qhov qis tshaj tides. Qhov sib txawv ntawm ob qhov kev poob qis heev. Lub voj voog lunar kav 28 hnub: syzygian - quadrature - syzygian - quadrature.

Thaum cov kws tshaj lij tau piav qhia txog qhov tseem ceeb ntawm tidal rog, lawv tam sim ntawd xav tias lawv yuav tsum hu rau tub ceev xwm. Thiab logical heev. Tab sis nws hloov tawm tias tus txiv neej yog lawm. Ob lub lis piam dhau los, ib lub nkoj tua hluav taws nyob tsis deb ntawm qhov chaw ua haujlwm. Txhua zaus cov dej ntws tau tsa nws mus rau qhov siab, lub nkoj radar tshaj tawm tau xaus rau ntawm qib ntawm chav tsev neeg rau zaub mov. Thiab lub radar (los yog cov khoom siv hluav taws xob ua tsov rog, lossis lwm yam khoom ua si tub rog) tsim kev kub ntxhov hauv computer.

Flight mission rau foob pob ua ntxaij

Kuv tau ua hauj lwm nrog porting ib tug loj (kwv yees li 400 txhiab kab) foob pob ua ntxaij launching tswj thiab saib xyuas rau cov tshiab versions ntawm lub operating system, compiler thiab lus. Ntau qhov tseeb, los ntawm Solaris 2.5.1 txog Solaris 7, thiab los ntawm Verdix Ada Development System (VADS), sau rau hauv Ada 83, mus rau Rational Apex Ada system, sau rau hauv Ada 95. VADS tau yuav los ntawm Rational, thiab nws cov khoom yog tsis siv lawm, txawm hais tias Rational tau sim siv cov qauv sib xws ntawm VADS-cov pob tshwj xeeb kom yooj yim hloov mus rau Apex compiler.

Peb tus neeg tau pab kuv tsuas yog tau txais cov cai tso ua ke kom huv. Nws siv ob lub lis piam. Thiab tom qab ntawd kuv tau ua haujlwm ntawm kuv tus kheej los ua kom lub kaw lus ua haujlwm. Hauv luv luv, nws yog qhov tsis zoo tshaj plaws architecture thiab kev siv ntawm software system uas kuv tau ntsib, yog li nws siv sijhawm ob lub hlis los ua kom tiav qhov chaw nres nkoj. Tom qab ntawd lub kaw lus raug xa mus rau kev sim, uas siv ob peb lub hlis ntxiv. Kuv tam sim ntawd kho cov kab uas tau pom thaum kuaj, tab sis lawv cov lej poob sai sai (qhov chaws yog cov txheej txheem ntau lawm, yog li nws cov haujlwm ua haujlwm tau zoo heev, Kuv tsuas yog yuav tsum tshem tawm cov kab uas tshwm sim thaum hloov mus rau lub compiler tshiab). Thaum kawg, thaum txhua yam ua haujlwm raws li qhov yuav tsum tau ua, kuv raug xa mus rau lwm qhov project.

Thiab hnub Friday ua ntej Thanksgiving, lub xov tooj tau nrov.

Lub foob pob hluav taws yuav tsum tau sim nyob rau hauv li peb lub lis piam, thiab thaum lub sij hawm soj ntsuam kuaj ntawm lub countdown, ib theem ntawm cov lus txib raug thaiv. Nyob rau hauv lub neej tiag tiag, qhov no yuav rho tawm qhov kev xeem, thiab yog hais tias qhov blockage tshwm sim nyob rau hauv ob peb vib nas this ntawm pib lub cav, ob peb yam irreversible ua yuav tshwm sim nyob rau hauv lub auxiliary systems, uas yuav tsum tau ib tug ntev - thiab kim - npaj lub foob pob ua ntxaij. Nws yuav tsis tau pib, tab sis ntau tus neeg yuav tau chim siab txog kev poob sijhawm thiab ntau, nyiaj ntau. Tsis txhob cia leej twg qhia rau koj tias Lub Tsev Haujlwm Saib Xyuas Kev Tiv Thaiv siv nyiaj tsis txaus ntseeg - Kuv tsis tau ntsib tus thawj tswj hwm kev cog lus uas tsis tau tso nyiaj ua ntej lossis thib ob, ua raws li lub sijhawm.

Hauv lub hlis dhau los, qhov kev sib tw countdown no tau khiav ntau pua zaus hauv ntau qhov kev hloov pauv, tsuas yog qee qhov me me hiccups. Yog li qhov tshwm sim ntawm qhov tshwm sim no tsawg heev, tab sis nws cov txiaj ntsig tseem ceeb heev. Muab ob qho tib si ntawm cov xwm txheej no, thiab koj yuav nkag siab tias cov xov xwm tau kwv yees ib lub lim tiam uas tsis zoo rau kuv thiab ntau tus engineers thiab cov thawj coj.

Thiab kev saib xyuas tau them rau kuv raws li tus neeg uas tau teeb tsa lub kaw lus.

Raws li nrog rau feem ntau kev ruaj ntseg-tseem ceeb systems, ntau yam tsis tau nkag mus, yog li nws yooj yim heev los txheeb xyuas ob peb kab ntawm cov cai uas tau ua ua ntej lub kaw lus poob. Thiab ntawm chav kawm, tsis muaj dab tsi txawv txawv ntawm lawv; tib cov kab lus tau ua tiav tiav ntau txhiab zaus thaum tib lub sijhawm.

Peb hu cov neeg los ntawm Apex mus rau hauv Rational vim lawv yog cov uas tsim cov compiler thiab ib co ntawm cov txheej txheem lawv tsim tau hu ua nyob rau hauv lub suspicious code. Lawv (thiab lwm tus) tau zoo siab tias yuav tsum tau mus rau hauv paus ntawm qhov teeb meem ntawm lub tebchaws tseem ceeb.

Txij li thaum tsis muaj dab tsi nthuav hauv cov ntawv xov xwm, peb txiav txim siab sim rov tsim cov teeb meem hauv ib lub chaw kuaj mob hauv zos. Qhov no tsis yog ib txoj haujlwm yooj yim txij li qhov xwm txheej tshwm sim kwv yees li ib zaug ntawm 1000 khiav. Ib qho laj thawj xav tias yog vim li cas hu rau tus muag khoom-tsim mutex muaj nuj nqi (ib feem ntawm VADS pob tsiv teb tsaws) Unlock tsis tau coj mus qhib qhov rooj. Cov xov xwm ua haujlwm uas hu ua cov haujlwm ua haujlwm ntawm lub plawv dhia lus, uas nominally tuaj txog txhua ob. Peb tsa qhov zaus mus rau 10 Hz, uas yog, 10 zaug ib ob, thiab pib khiav. Kwv yees li ib teev tom qab lub kaw lus kaw nws tus kheej. Nyob rau hauv lub cav, peb pom tias cov kab ke ntawm cov lus kaw yog tib yam li thaum lub sij hawm ua tsis tiav. Peb tau ua ob peb zaug ntxiv, lub kaw lus tsis tu ncua 45-90 feeb tom qab pib, thiab txhua zaus lub cav muaj tib txoj kev. Txawm hais tias peb tau technically khiav cov cai sib txawv - cov lus zaus sib txawv - tus cwj pwm ntawm qhov system yog tib yam, yog li peb tau ntseeg siab tias qhov xwm txheej no tau ua rau muaj teeb meem tib yam.

Tam sim no peb xav tau los xyuas seb qhov twg qhov thaiv tau tshwm sim nyob rau hauv ib ntu ntawm cov kab lus.

Qhov kev siv ntawm qhov system siv Ada ua haujlwm, thiab siv nws tsis txaus ntseeg. Cov hauj lwm yog ib theem siab concurrently executable tsim nyob rau hauv Ada, ib yam dab tsi zoo li threads ntawm kev tua, tsuas yog ua rau hauv cov lus nws tus kheej. Thaum ob txoj haujlwm yuav tsum tau sib txuas lus, lawv "tsim kev sib tham", sib pauv cov ntaub ntawv tsim nyog, thiab tom qab ntawd nres qhov kev sib tham thiab rov qab mus rau lawv txoj kev ua tiav. Txawm li cas los xij, qhov system tau siv txawv. Tom qab lub hom phiaj ua haujlwm tau rov ua haujlwm, lub hom phiaj haujlwm tau rov ua haujlwm nrog lwm txoj haujlwm, uas tom qab ntawd rov ua haujlwm thib peb, thiab lwm yam kom txog thaum qee qhov ua tiav. Tom qab ntawd, tag nrho cov kev sib tham no tau ua tiav thiab txhua txoj haujlwm yuav tsum rov qab mus rau nws qhov kev ua tiav. Ntawd yog, peb tau cuam tshuam nrog qhov kev hu xov tooj kim tshaj plaws hauv ntiaj teb, uas tau nres tag nrho "multitasking" txheej txheem thaum nws ua tiav ib feem ntawm cov ntaub ntawv nkag. Thiab ua ntej qhov no tsis tau ua rau muaj teeb meem nkaus xwb vim tias qhov kev nkag mus tau tsawg heev.

Kuv tau piav qhia txog txoj haujlwm no vim tias thaum lub rooj sib tham tau thov lossis xav kom ua tiav, "txoj haujlwm hloov" tuaj yeem tshwm sim. Ntawd yog, tus processor tuaj yeem pib ua lwm txoj haujlwm uas npaj tau ua tiav. Nws hloov tawm hais tias thaum ib txoj hauj lwm npaj txhij rau kev sib tham nrog lwm txoj hauj lwm, ib txoj hauj lwm sib txawv kiag li tuaj yeem pib ua tiav, thiab thaum kawg tswj rov qab mus rau thawj qhov kev sib tham. Thiab lwm yam xwm txheej yuav tshwm sim uas ua rau lub luag haujlwm hloov pauv; ib qho xwm txheej zoo li no yog hu rau lub kaw lus ua haujlwm, xws li luam ntawv lossis ua tiav mutex.

Txhawm rau kom nkag siab txog kab lis kev cai twg ua rau muaj teeb meem, kuv yuav tsum nrhiav txoj hauv kev los sau cov kev nce qib los ntawm cov lus qhia ib ntus yam tsis muaj kev hloov pauv ua haujlwm, uas yuav tiv thaiv kev sib tsoo los ntawm qhov tshwm sim. Yog li kuv siv tsis tau Put_Line()kom tsis txhob ua haujlwm I/O. Kuv tuaj yeem teeb tsa lub txee sib txawv lossis qee yam zoo sib xws, tab sis kuv tuaj yeem pom nws tus nqi li cas yog tias kuv tsis tuaj yeem tso rau ntawm qhov screen?

Tsis tas li ntawd, thaum kuaj xyuas lub cav, nws tau pom tias, txawm hais tias kev ua haujlwm ntawm lub plawv dhia cov lus dai, uas tau thaiv tag nrho cov haujlwm I / O ntawm cov txheej txheem thiab tiv thaiv lwm yam kev ua haujlwm los ntawm kev ua, lwm yam haujlwm ywj pheej txuas ntxiv ua tiav. Ntawd yog, kev ua haujlwm tsis raug thaiv tag nrho, tsuas yog ib txoj haujlwm tseem ceeb (tseem ceeb) txoj haujlwm.

Qhov no yog qhov tsis txaus ntseeg uas xav tau los ntsuas qhov thaiv kev qhia.

Kuv tau ua ib pob Ada uas muaj ib txoj hauj lwm, ib hom enumerated, thiab lub ntiaj teb no sib txawv ntawm hom ntawd. Enumerable literals tau khi rau cov kab lus tshwj xeeb ntawm cov teeb meem sib lawv liag (piv txwv li. Incrementing_Buffer_Index, Locking_Mutex, Mutex_Unlocked), thiab tom qab ntawd muab cov lus qhia ua haujlwm rau hauv nws uas tau muab cov lej suav nrog rau lub ntiaj teb sib txawv. Txij li cov khoom code ntawm tag nrho cov no tsuas yog khaws cia tas mus li hauv lub cim xeeb, kev ua haujlwm hloov pauv vim nws qhov kev ua tiav yog qhov tsis zoo. Peb feem ntau xav tsis thoob ntawm cov lus uas tuaj yeem hloov txoj haujlwm, txij li qhov thaiv tau tshwm sim ntawm kev ua tiav es tsis rov qab los thaum hloov txoj haujlwm rov qab (rau ntau yam).

Txoj haujlwm taug qab tsuas yog khiav hauv lub voj voog thiab tshawb xyuas ib ntus kom pom tias tus nqi ntawm lub ntiaj teb hloov pauv tau hloov pauv. Nrog txhua qhov kev hloov pauv, tus nqi tau txais kev cawmdim rau hauv cov ntaub ntawv. Tom qab ntawd ib qho luv luv tos thiab daim tshev tshiab. Kuv tau sau qhov sib txawv rau cov ntaub ntawv vim tias txoj haujlwm raug tua tsuas yog thaum lub kaw lus xaiv nws rau kev ua tiav thaum hloov txoj haujlwm hauv thaj chaw teeb meem. Txhua yam tshwm sim hauv txoj haujlwm no yuav tsis cuam tshuam rau lwm yam, tsis cuam tshuam txog kev thaiv cov haujlwm.

Nws tau xav tias thaum lub kaw lus mus txog qhov kawg ntawm kev ua tiav cov teeb meem code, lub ntiaj teb hloov pauv yuav rov pib dua thaum tsiv mus rau txhua qhov kev qhia tom ntej. Tom qab ntawd ib yam dab tsi yuav tshwm sim uas ua rau lub luag haujlwm hloov pauv, thiab txij li nws qhov kev ua haujlwm zaus (10 Hz) qis dua qhov kev saib xyuas, tus saib yuav ntes tus nqi ntawm lub ntiaj teb hloov pauv thiab sau nws. Nyob rau hauv ib qho xwm txheej ib txwm, kuv tuaj yeem tau txais qhov rov ua ntu zus ntawm ib qho kev suav sau ua ke: cov txiaj ntsig kawg ntawm qhov hloov pauv thaum lub sijhawm ua haujlwm hloov. Thaum dai, lub ntiaj teb hloov pauv yuav tsum tsis hloov ntxiv lawm, thiab tus nqi kawg sau yuav qhia tias qhov twg tsis ua tiav.

Kuv khiav qhov chaws nrog taug qab. Nws khov. Thiab kev saib xyuas ua haujlwm zoo li clockwork.

Lub cav muaj qhov xav tau ua ntu zus, uas tau cuam tshuam los ntawm tus nqi qhia tias mutex tau raug hu ua Unlock, thiab txoj haujlwm tsis ua tiav - zoo li cov ntaub ntawv nrog ntau txhiab tus xov tooj yav dhau los.

Apex engineers tau kub siab txheeb xyuas lawv cov cai nyob rau lub sijhawm no thiab pom ib qho chaw hauv mutex qhov twg, txoj kev xav, lub xauv tuaj yeem tshwm sim. Tab sis nws qhov tshwm sim yog tsawg heev, vim tias tsuas yog qee qhov xwm txheej ntawm cov xwm txheej tshwm sim ntawm qee lub sijhawm tuaj yeem ua rau thaiv. Murphy Txoj Cai, cov txiv neej, nws yog Murphy Txoj Cai.

Txhawm rau tiv thaiv daim code kuv xav tau, Kuv hloov mutex muaj nuj nqi hu (tsim nyob rau sab saum toj ntawm OS mutex functionality) nrog rau cov pob me me Ada mutex los tswj mutex nkag mus rau daim ntawd.

Kuv muab tso rau hauv lub code thiab khiav qhov kev xeem. Xya teev tom qab ntawd tus lej tseem ua haujlwm.

Kuv cov cai raug xa mus rau Rational, qhov twg lawv muab tso ua ke, disassembled nws, thiab xyuas tias nws tsis siv tib txoj kev uas tau siv nyob rau hauv cov teeb meem mutex functions.

Qhov no yog qhov kev tshuaj xyuas ntau tshaj plaws ntawm kuv txoj haujlwm πŸ™‚ Muaj txog kaum tus kws tshaj lij thiab cov thawj coj hauv chav nrog kuv, lwm kaum tus neeg tau nyob hauv kev sib tham hu - thiab lawv txhua tus tau tshuaj xyuas txog 20 kab code.

Cov cai tau raug tshuaj xyuas, cov ntaub ntawv tshiab tau raug muab sau ua ke thiab xa mus rau qhov kev ntsuam xyuas kev rov zoo. Ob peb lub lis piam tom qab, qhov kev xeem suav rov qab tau ua tiav thiab lub foob pob hluav taws tau tawm mus.

Okay, qhov ntawd yog txhua yam zoo thiab zoo, tab sis dab tsi yog qhov ntsiab lus ntawm zaj dab neeg?

Nws yog ib qho teeb meem uas qias neeg kiag li. Pua pua txhiab kab ntawm txoj cai, kev ua kom zoo sib luag, dhau ntawm cov txheej txheem kev sib cuam tshuam ntau dua, kev ua haujlwm tsis zoo thiab kev siv tsis zoo, cuam tshuam rau cov kab ke thiab ntau lab nyiaj siv. Tsis muaj siab, txoj cai.

Kuv tsis yog tib tug ua haujlwm ntawm qhov teeb meem no, txawm hais tias kuv nyob hauv qhov tsom teeb thaum kuv tab tom ua qhov chaw nres nkoj. Tab sis txawm tias kuv tau ua nws, qhov ntawd tsis txhais hais tias kuv nkag siab tag nrho ntau pua txhiab kab ntawm cov cai, lossis txawm tias skimmed lawv. Cov lej thiab cov cav tau raug tshuaj xyuas los ntawm cov kws tshaj lij thoob plaws lub tebchaws, tab sis thaum lawv qhia kuv cov kev xav txog qhov ua rau tsis ua haujlwm, nws tsuas yog siv sijhawm ib nrab feeb rau kuv rov hais dua lawv. Thiab thaum kuv raug nug kom txheeb xyuas qhov kev xav, kuv yuav dhau mus rau lwm tus, vim nws pom tseeb rau kuv tias cov engineers tau mus rau qhov tsis ncaj ncees lawm. Suab presumptuous? Yog, qhov no yog qhov tseeb, tab sis kuv tsis lees paub qhov kev xav thiab thov rau lwm qhov laj thawj.

Kuv nkag siab qhov xwm txheej ntawm qhov teeb meem. Kuv tsis paub xyov nws tshwm sim qhov twg los yog vim li cas, tab sis kuv paub tias muaj dab tsi tshwm sim.

Tau ntau xyoo, kuv tau sau ntau yam kev paub thiab kev paub. Kuv yog ib tug ntawm cov tho kev siv Ada thiab nkag siab txog nws qhov zoo thiab qhov tsis zoo. Kuv paub yuav ua li cas cov tsev qiv ntawv Ada runtime ua haujlwm thiab cuam tshuam nrog kev ua kom tiav. Thiab kuv nkag siab qhov programming qis ntawm theem ntawm kev nco, sau npe thiab assembler. Hauv lwm lo lus, kuv muaj kev paub tob hauv kuv daim teb. Thiab kuv tau siv lawv los nrhiav qhov laj thawj ntawm qhov teeb meem. Kuv tsis yog ua haujlwm nyob ib puag ncig tus kab mob xwb, kuv nkag siab yuav ua li cas thiaj nrhiav tau nws nyob rau hauv ib puag ncig rhiab heev.

Xws li cov dab neeg ntawm kev tawm tsam nrog cov cai tsis txaus siab heev rau cov neeg uas tsis paub txog cov yam ntxwv thiab cov xwm txheej ntawm kev tawm tsam. Tab sis cov dab neeg no pab peb nkag siab tias yuav siv li cas los daws cov teeb meem nyuaj.

Txhawm rau daws cov teeb meem nyuaj tiag tiag, koj yuav tsum ua ntau tshaj li tus programmer xwb. Koj yuav tsum nkag siab txog "txoj hmoo" ntawm txoj cai, nws cuam tshuam nrog nws ib puag ncig, thiab ib puag ncig nws tus kheej ua haujlwm li cas.

Thiab ces koj yuav muaj koj tus kheej ruined hnub so lub lim tiam.

Kom txuas ntxiv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib