Az Apple Graphing Calculator születése

  • (f)
  • (p)
[RIOS ERROR] – Írta: | 2018-04-25 05:00

Avagy hogyan lett egy leállított szoftverfejlesztésből földalatti projekt az Apple főhadiszállásán?

Kulcsszavak: . appletörténelem

[ Új teszt ]

A Graphing Calculator

A következő írás eredetijét a szoftver írója, Ron Avitzur mesélte el saját blogján, azonban annyira megtetszett, hogy lefordítottam nektek. Úgy érzem, érdekes informatikatörténelmi színfolt és remélem ti is legalább annyira fogjátok élvezni, mint én.

A Pacific Tech féle Graphing Calculatornak hosszú a története. 1985-ben, még az iskolában kezdtem a munkát, ebből lett a Milo, ami később a FrameMaker részévé vált. Az elmúlt húsz évben rengeteg ember járult hozzá, azonban a Graphing Calculator 1.0, amit az Apple az első PowerPC-s Macekhez csomagolt, egészen egyedi körülmények közt született.

Eredetileg szerződéses (külsős) munkavállalóként dolgoztam az Apple-nek egy titkos projekten. Sajnos a számítógép, amit építettünk, sosem látott napvilágot. Az egész projektet annyira áthatotta a politika meg az egó, hogy amikor a mérnökök technikai felülvizsgálatot kértek, a menedzserünk inkább pszichológust hívott. Aztán 1993 augusztusában a projektet lefújták, egy évi munkám ment a levesbe, a szerződésemet felmondták, én pedig az utcára kerültem.

Zavart ez a sok kárba ment erőfeszítés, szóval úgy döntöttem, hogy a projekt rám eső részét felélesztem. Azért fizettek, hogy elvégezzem a munkám és én pontosan ezt terveztem. Az utolsó napomon a főnököm megkért, hogy ha végeztem, nyújtsam be az utolsó számlámat a pénzügyeseknek, akkor majd le tudják zárni a szerződésem.
Ekkor esett le: ha nem nyújtok be számlát, nem zárul le a szerződésem, így nem kerülök ki a rendszerből sem. A beléptetőkártyám továbbra is nyitotta az Apple ajtóit, úgyhogy továbbra is bejártam. A munka korábban egész jól fizetett, nekem meg nem voltak nagy igényeim, úgy számoltam, hogy akár egy évig is ki tudom húzni a megtakarításaimból.

Egész sok szimpatizánsom volt, az Apple mérnökeit lenyűgözte a munkám, akárhányszor megmutattam valakinek, mindig az volt a reakció, hogy “bár lett volna ilyenünk az iskolában”. Akik az Apple számítógépeinek IBM PowerPC-re migrálásán dolgoztak, különösen támogatóak voltak, mert úgy gondolták, hogy a programom megmutathatná a PowerPC igazi erejét. Sajnos, egyiküknek sem állt módjában engem alkalmazni, ezért nem hivatalosan dolgoztam tovább nekik.

Lövésem nem volt a PowerPC-ről, sem arról, hogyan lehetne átültetni a szoftverem rá. Egy augusztusi estén, vacsora után két fickó jelent meg az irodámban, és bejelentették, hogy addig maradnak, míg ez a módosítás el nem készül. A következő hat órában ötvenezer sornyi kódot néztünk át. A munka a PowerPC, a MacOS és a szoftverem beható ismeretét igényelte, egyedül bármelyikünknek hetekbe telt volna.

Hajnal egykor átmentünk egy irodába, ahol már volt egy PowerPC prototípus, összenéztünk, vettünk egy mély levegőt és elindítottuk a programot. És ekkor lángra lobbant a monitor. Kisétáltunk vele az irodából, mielőtt a tűzjelző rendszer bekapcsolt volna, rádugtunk a gépre egy másikat és megpróbáltuk megint. Nem a szoftverem okozta a problémát, egyszerűen csak a monitor ezt az időpontot választotta a tönkremenésre.
A programom körülbelül ötvenszer gyorsabban futott, mint a régi processzoros gépeken. Játszadoztunk vele egy darabig, aztán megegyeztünk abban, hogy “ez nem szar”, ami Apple-ös nyelven komoly elismerést jelentett. Volt már egy impresszív demónk, de jó pár hónapnyi munka kellett még, hogy valódi termék lehessen belőle.

Egy barátomat, Greg Robbinst kértem meg, hogy segítsen. Ő az Apple egy másik projektjén dolgozott, ami épp elkészült, így azt mondta az ottani vezetőjének, hogy mostantól nekem dolgozik. Az nem kérdezett semmit, de megengedte, hogy megtartsa a beléptetőkártyáját és az irodáját. Cserébe én meg mindenkinek azt mondtam, hogy neki dolgozom, így mivel nem maradtak fölösleges menedzserek a körben, igen hatékonyan tudtuk folytatni a munkát.
Napi 12 órát dolgoztunk heti 7 napon át. Greg fáradhatatlan volt és valami hihetetlen érzéke volt a részletek kidolgozásához. Általában csukott ajtók mögött programozott egész nap, míg én más programozókkal beszéltem. Mivel szívességből csinálta ezt az egészet, úgy éreztem, hogy legalább annyit kell belefektetnem a munkába, mint neki. A keletre néző, függöny nélküli hálószoba ablakomnak köszönhetően általában hajnalban ébredtem és tíz perccel Greg előtt értem az irodába, amiből ő azt szűrte le, hogy biztosan órák óta itt vagyok, ezt ő későig maradással próbálta kompenzálni, ami miatt én is későig maradtam benn.

Az irodaház dolgozói gyorsan összekapcsoltak bennünket és néhányan kérdezték is, hogy min dolgozunk. Ilyenkor sosem hazudtam, inkább a nagyvállalati apátiára hagyatkoztam.
- Itt dolgozol?
- Nem.
- Szóval akkor külsős vagy?
- Igazából nem
- Akkor ki fizet?
- Senki
- Akkor miből élsz?
- A megtakarításaimból
- Akkor mit csinálsz itt!?
Általában ilyenkor mutattam meg nekik a programomat és magyaráztam el, hogy lelőtték a projektet, de én be szeretném fejezni. Se családom, se hitelem nincs, úgyhogy megtehetem, hogy egy darabig nem kapok fizut.
Az Apple legtöbb programozója túl volt már egy csomó lelőtt projekten, így megértették a motivációmat.

A cégnél nagy hagyománya volt a mellékprojekteknek, ahol a programozók a leállított munkáikat vitték tovább, hátha egy hatásos bemutatóval meg tudnak győzni egy menedzsert a folytatásról. Néha sikerrel jártak. Volt olyan projekt, amit nem kevesebb, mint öt alkalommal lőttek le és élesztettek fel újra.
Persze a programozók főleg a szabadidejükben dolgoztak ezen, a főprojektjeik mellett. Mivel nekünk ilyenünk nem volt, így mindösszesen egy új szintre emeltük ezt a hagyományt.

Szeptemberben a Létesítmény-üzemeltetés megpróbálta feltölteni a hivatalosan üresen álló irodákat, és így a látókörükbe kerültünk. Az üzemeltetésről érkező kollegina azt hitte, hogy engem elfelejtettek áthelyezni valamelyik csoporttal együtt, ami időnként előfordult. Megkérdezte, hogy melyik csoportba tartozok, mert az ő dolguk lenne nekem helyet találni. Amikor elmondtam neki az igazat, nem volt elragadtatva. Hívta a biztonságiakat, letiltatta a kártyáinkat, és azonnali hatállyal kiutasított bennünket az épületből.

A következő hónapban kezdődő leépítések mentettek meg. Az Apple 15.000 dolgozójának 20%-ától vált meg. Mi Greggel persze biztonságban voltunk, ugyebár nem rúghatnak ki, ha nem is állsz alkalmazásban. Cserébe rengeteg felszabadult iroda közül válogathattunk.
Attól a naptól kezdve nagyobb csoportokkal elvegyülve surrantunk be az épületbe. Sokan ismertek bennünket, és mivel a régi belépőinket megtartottuk, így nem is kérdezett senki semmit.

Csapatmunka

Szuperül haladtunk, de egyedül semmire sem mentünk volna. Egy jó szoftver megírása csapatmunka. Egy hatásos bemutatót össze tudsz egyedül is ütni, de egy selejtes kész termék, amit milliók fognak használni, nagyon rossz fényt vetne mindenkire.
Azt szokták mondani errefelé, hogy a munka első 90%-a könnyű, a második 90%-ban fáradsz igazán el, de a harmadik 90% - ami a részletek kidolgozása - attól lesz igazán jó egy termék.
Egy jó program, amit egyszerre könnyű használni, könnyű megtanulni, felhasználóbarát, hasznos és sokoldalú, rengeteg ember együttes tudását, tehetségét igényli. Greg és én meg tudtuk írni a programot működtető alapokat, de ez még édeskevés egy jó végeredményhez.

Többek közt jó minőségellenőrökre volt szükség, akik végigpróbálják az összes funkciót és felderítik azokat a hibákat és problémákat, amiket mi bentről nem veszünk észre. Egyszercsak, a semmiből nálunk termett két teszter, akikkel soha nem találkoztunk, de hallották a rólunk szóló pletykákat (eddigre egyfajta underground celebek lettünk a dolgozók körében). A számukra kiosztott tesztelni valót elképesztően unalmasnak találták, és úgy gondolták beszállnak hozzánk. Az egyiküknek PhD-ja volt matematikából, a másik pedig maga is írt már matematikai szoftvert. A Jóisten küldte őket.

Aztán kellett valaki, aki megírja a 3D megjelenítésért felelős részt, ami létrehozza a szoftver által kiszámolt ábrákat és formákat. Egy, a témában mozgó ismerősöm egy hétvége alatt megírta, nekem legalább egy hónap kellett volna.

Lassan kezdett formát ölteni a dolog, egy csomó grafikus, dokumentáció-író, programozó, matematikus, UI fejlesztő segített be a munkába. A programozás kulcsa a jelek szerint nem az intelligencia, persze azért nem árt. Nem is a kemény munka vagy a tapasztalat, bár nyilván azok is jól jönnek. A programozás kulcsa, hogy okos barátaid legyenek.

Egy komoly problémám volt még: hogyan csempésszük be a kész szoftvert a MacOS-be? Ez nagyságrendekkel jobban aggasztott, minthogy esetleg lebukhatunk birtokháborításért. A rengeteg munka, amit Greg és én belefektettünk, a számolatlan és önzetlen segítség, az idő, a hardver, az elfogyasztott üdítők és gyorskaja mind-mind kárba vész.

Megint csak egy idegen segített. Egyik éjjel, hajnal kettőkor beállított egy ember az irodánkba. Az ő munkája volt a PowerPC-khez szállított operációs rendszer master lemezének elkészítése. Így magyarázta: “Az Apple egy hardvercég, a gépeinket a világ végén lévő gyárakban gyártják le, ahol az egyik utolsó mozzanat, hogy a master lemezről átmásolják a gépek merevlemezére a rendszert. Ezt a lemezt én állítom össze és küldöm el a gyárba, szó szerint én döntöm el, hogy mi kerül rá”.
Azt mondta, hogy ha a gyártás beindítása előtti napig elkészülünk, akkor ráteszik a masterre a programunkat.

Miután ez a probléma is elhárult, sokkal könnyebben haladtak a dolgaink. Furcsa módon olyan erőforrásokhoz jutottunk, amik egyébként alkalmazottként soha nem lettek volna elérhetők. Például ekkor a világon összesen talán 200 PowerPC processzor létezett, ezek nagy része a hardvert tervező mérnököknél volt. Néhány tucat gépen dolgozhattak az operációs rendszert fejlesztő kollégák. Meg nekünk is volt kettő. Szinte az ajtó alatt csúsztatták át a gépeket, azzal a kísérő mondattal, hogy “Ezek a gépek nem léteznek, nem tőlem vannak, nem is ismerjük egymást. Ne jussanak ki az épületből!”

Októberben már elég közel álltunk a befejezéshez, és a nekünk segítő programozók meggyőztek, hogy mutassuk meg a főnökeiknek. Talán egy tucat ember zsúfolódott be az irodámba, és bár nem számítottam a támogatásukra, de úgy éreztem ennyivel tartozom nekik. Tartottam egy 20 perces bemutatót, el voltak ájulva. “Ki alá tartoztok?”, “Melyik csoporthoz?”, “Miért nem láttam én ezt még?” Amikor elmagyaráztam nekik a szitut, mindannyian jót nevettek, amíg rá nem jöttek, hogy komolyan beszéltem. “Ne reklámozd ezt a sztorit, ha nem muszáj.”

A PowerPC szoftveres részlegének vezetője egy egyetemi tanár volt. A PowerPC részleg marketing igazgatója egy matektanár fia volt. Látva ennek az oktatási szoftvernek a potenciálját, hogy ez minden iskola minden Macintosh-án ott lehet… Azonnal befogadtak.

Innentől vettek igazán furcsa fordulatot az események. A teszterek vezetője hivatalosan ráállította az embereit a program tesztelésére (azt nem mondtam neki, hogy egyébként is ezt csinálták már egy ideje). A lokalizációs csoport 20 nyelvre kezdte el lefordítani, míg a felhasználói felületért felelős csoport még egy használhatósági tanulmányt is elkészíttetett.

Mindeközben Gregnek és nekem továbbra is minden reggel úgy kellett belopóznunk az épületbe. A PowerPC-ért felelős csoport - amin az egész vállalat jövője múlt akkoriban - nem tudott nekünk beléptetőkártyákat szerezni, azokat ugyanis a beszerzéstől kellett volna kérni. Ahhoz pedig szerződés kellett volna. Azt pedig a jogi osztálytól kellett volna szerezni, akik, ha meghallották volna ezt az egész sztorit, azonnal kidobattak volna bennünket az épületből.

Létezünk!

Egyik nap Greg épp az épület körül próbált feltűnésmentes maradni, amikor odalépett hozzá az egyik programozó azzal, hogy “Na jó én meguntam, hogy titeket mindennap úgy kell becsempészni az irodába!” és felhívta a megfelelő bürokratákat. Én a mi oldalunkról hallgattam végig a telefonbeszélgetést: “Nem, nincs szerződésszám, mert nincs szerződés sem. Nem, nem alkalmazottak, nem is akarjuk őket felvenni. Nem, nem is fizetünk nekik. Igen, azért kell nekik belépő, mert a mi számítógépeinkre fejlesztenek szoftvert.” Másnapra lett belépőkártyánk. Narancssárga, mint amilyet a büfésnéni, a kertész vagy a fénymásolószervizes fickó kapott.

Végre hivatalosan is léteztünk és ez csak még több embert csábított be a fejlesztésbe. Mikor a hivatalos használhatósági tanulmány elkészült, amikor igazi tanárok és diákok próbálták ki a programot, rá kellett jönnünk, hogy még nagyon messze vagyunk a kész állapottól.

Eddig nagyon büszke voltam az elegáns és egyszerűen használható programunkra. Azt akartam, hogy minden Mac-re rákerüljön, tehát minden felhasználónak szántam, azoknak is, akik nem értenek a számítógépekhez vagy utálják a matematikát. Azt akartam, hogy olyan egyszerű és élvezetes legyen használni mint egy játékot. Egy osztályteremben minden, a számítógéppel való szerencsétlenkedéssel eltöltött perc a tanítástól von el időt. Sajnos amikor láttam, hogy az első felhasználók hogyan kínlódnak a programmal, be kellett látnom, hogy egy programozó a legkevésbé alkalmas ember arra, hogy kezdőknek programot tervezzen. Visszavonultunk, súgót írtunk, mintha ott állnánk a felhasználó mellett és elmagyaráznánk a program használatát.

Az, hogy már hivatalosan is az Apple részei lettünk, nem várt fordulatokat is hozott az életünkbe, ugyanis így már nem voltunk annyira titkosak sem. Miután bemutatták a szoftvert néhány külsős fejlesztőnek, az egyikük azt állította, hogy elloptam valami szabadalmát, ami kisebb riadalmat okozott a jogászok közt, amíg be nem tudtam bizonyítani, hogy nem így van. Egy másik cég, a Mathematica fejlesztői egész egyszerűen azt követelték, hogy szüntessük be a fejlesztést, de az Apple ezt udvariasan elutasította.
Egy hete még a biztonsági őreiket kerülgettem, most meg az én hátam védik.

Novemberre teljes gőzre kapcsoltunk, napi 16 órát dolgoztunk heti hét napban, a napjaim pedig összefolytak. Ha ez egy film lenne, akkor most gyorsan pörgő óramutatókat mutatna a kamera, meg azt ahogyan elfújja a naptár lapjait a szél.

Hat hónapnyi megfeszített fizetetlen munka után Greg nem tudta megmagyarázni a szüleinek, hogy mivel töltötte az elmúlt időszakot. Nem használtak számítógépet, újságot olvastak inkább, elsősorban a New York Times-t. Ahogy kezdett kifutni a projekt, megkérdeztem Greget, hogy nem szeretne-e egy fotót a Times címlapján, hogy legyen amit fel tud mutatni a szüleinek, ő pedig az egyetlen lehetséges válasszal élt: “Jah, hogyne”. Fogadtunk egy ebédbe Saratoga egyik igen jó nevű francia éttermében. Arra számítottam, hogy elvesztem a fogadást, de azért megejtettem a telefonhívást, aminek az eredményeképp Greg soha többé nem fogadott velem semmiben.
A New York Times 1994. március 11-i számában az üzleti rész elején volt egy cikk, ami az Apple, az IBM és a Motorola közti szövetségről szólt, a mellékelt képen pedig én és Greg álltunk az előkertemben, háttérben a Santa Cruz-hegységgel.
Volt egy ismerősöm az Apple PR részlegében, akit megkérdeztem a dologról, de azt mondta, hogy a cég programozói nem nyilatkozhatnak a sajtónak. Szerencsére mi nem voltunk a cég programozói.

1994. januárjában készültünk el, a Graphing Calculator azóta is a Macintosh része.
Húszmillió számítógépre került fel előtelepítve, pedig hivatalosan nem is létezett.

Szerettük volna Windowsra is megírni, de sajnos túl hatékony volt a Microsoft épületbiztonsági rendszere.

Megjegyzés: a macOS 9-ig volt része, aztán az OSX-ben először nem volt, majd a 10.4-be került be az utódja, az Apple által fejlesztett Grapher.
Jó 8 éve egyébként írtam egy bemutatót egy PowerPC-s Macről, akkor említettem is, hogy mennyire profi a számológép, screenshot is van róla.