aprill 26, 2015

Serenaad merele ...


Ma ikka veel, mitu aastat pärast esimest kuulamist, ei saa seda lugu hästi kuulata.
Selle pala kirjutas Rex Willis ja pühendas Ana Vidovicile.
Ja siin mängib Ana Vidovic ise seda pala ja ta mängib seda tõesti nii, nagu mitte keegi teine.

...

aprill 05, 2015

Õun ja Unix















Kindlasti olete märganud, et eestlasel on soome keele õppimine käkitegu ning ei pea isegi keele grammatikat uurima.
UNIX-i maailma põhjalikult tundval inimesel ei tohiks seetõttu Mac OS X süsteemidest arusaamine eriti probleeme tekitada, sest alates X -st on Mac operatsioonisüsteem põhinev Unix-il, täpsemalt BSD Unix-il.
Nagu Linuxigagi käsurea tasemel,  ei ole see teema ehk päris tavakasutaja jaoks - kui te vajate oma Mac-i vaid selleks, et temaga igapäevaselt toimetada Internetis, mõnes tekstiredaktoris ninng lugeda ära meilid, ei ole see eriti vajalik.
Kuid ka siis on kasulik teada, et Mac OS X erinevad versioone võib käsitleda kui erinevaid Unix -i "distro-sid", kõrvuti Ubuntu, Debiani, Fedoraga ning kui teil ei ole juhtumisi väga palju raha, et osta mõne tarkvara kommertsiaalseid versioone, saate Linuxi-l jooksva vabavara hõlpsalt oma Õunakesse portida.
Selleks on olemas sait
https://www.macports.org
Nii ei ole Linuxi vabavaraga tutvumiseks parim tee seda käitada Mac-i sisse installeeritud Vboxi Debiani/Ubuntu ...  sees, vaid kõige mugavam on see pakett "peaarvutis" käima saada ja siis sellega tutvuda / kasutada.
Maci käsurea aknas aga jookseb kõikidele Unix-i sõpradele tuttav bash (Bourne again shell). Enamasti saab selles teha kiiresti ja mugavalt kõike seda, mida muidu peaks toimetama üle graafiliste akende.
See asjaolu võiks olla abiks süsteemiadminnidele, kelle arvutipargis esinevad kõrvuti Windows-iga Mac-d (ja tn. vähesel määral Linuxid, aga nende süsteemide omapäraks on see, et nende kasutajad tavaliselt ei vaja abi, küll aga on tarvilik need süsteemid jõuga oma käe alla suruda, sest sama seltskond tikub olema väga isepäine).
Lisateemana, kuna ma Androidide maailma jaoks omaette kirjutist ei plaani,  ka Androidide alussüsteemiks on UNIX, kuigi selles maailmas veelgi vähem tavatsetakse sellest rääkida. Seal tootjad koguni üritavad kõiki tarbijaid karistada suurema süvenemise eest oma süsteemi hingeellu - ruutimiseks nimetatav protseduur saab karistatud garantiide haihtumisega ...
Ka tänapäevane Apple enam väga ei afisheeri oma seotust Unix-iga ja ka Mac kasutajate ja fännide klubi tikub sellest mööda vaatama. Asjatult - sellest oleks kasu isegi tavakasutaja tasemel.

Olen ise olnud Mac suhtes mitu aastat täiesti tavaline kasutaja, sest minu hallatavas arvutipargis ei olnud väga palju Õunaarvuteid (aga neid lisandus ja kõik kasutajad olid nendega väga rahul, k.a. mina ). Erinevalt Linux-ist ei nõua Õunarvuti muretsemine erilisi jõupingutusi, nendega saab hakkama täiesti ignorantse suhtumisegi korral. Seetõttu julgen oma kogemuse põhiselt seda süsteemi kõikidele soovitada (mida ei saa öelda siiski Linuxite kohta).
Kui tahate arvutit, mis töötab, ostke Mac ja ta ei vea teid alt!
Niisiis, isegi täiesti tavaline kasutaja võib saada bashist natuke kasu - olgu näiteks teie desktopile kogunenu palju *.jpg faile. Siis saab abi terminalist nii:

< käivitage terminal >
cd Desktop
mkdir pildid
mv *jpg pildid

Kuna iga Mac OS X, k.a viimane, Yosemite, on BSD Unix-ga  ühilduv, saab väga palju asju kõikides Mac OS X-des ära teha ÜHTEMOODi skripte kasutades, kusjuures graafilise liidese korral peaks paljusid asju vaatama eri moodi, eri kohtades. Jälle üks pluss käsureapõhisele haldamisele!

Linuxi operatsioonisüsteemi haldamise ja kohandamise/arendamise põhivahendiks on endiselt
C keel. Vabavaraline GNU C on kättesaadav igaühele, selleks ei pea sentigi maksma ja operatsionisüsteemi alustekstid on uuritavad igaühele. See asjaolu üksinda on Unix-i surematuse eelduseks - kui te olete arvutiala üliõpilane, uurite põhjalikult läbi, kuidas üks või teine Linux versioon on tehtud ja edaspidises elus tõenäoliselt võtate need teadmised aluseks oma arenduste tegemisel. Windowsi-i operatsioonisüsteemi hingeelust seevastu ei pruugi te kunagi väga palju teada saada.
Kuigi Apple enam vabavara ei ole, on tema põhinemine BSD Unix-il teinud selle süsteemi aluspõhimõtted arusaadavaks. Väidetavalt on aluskoodidest paljud siiski kättesaadavad (kommenteerige, kui teate rohkem, kõik ei tohiks olla).
Lisaks on Apple enda programmeerimiskeeleks C ning tema edasiarendus Objective C.
See on VABALT ALLALAADITAV, erinevalt MS Visual Studio-st.
Ka W keskkonnas on olemas C järglaskonna C++ ja C# vabavaralisi versioone, aga kui tahate tõsiselt hakata W keskkonnas programme tegema, on lõpuks ikkagi vaja litsentsi koos vastavate rahaliste väljaminekutega. See ei ole õppuritele tavaliselt vastuvõetav - peale kõige muu ei saa ükski kompuutriala inimene enne tegelikku töölevärbamist tavaliselt ette aimata, millega tal tegemist tuleb.
Järelikult kindlaim tee on pulkadeni selgeks teha vabavaraline op. süsteem - niisiis Linux, ning selle arendusvahend C, ning objekt-orienteeritud keele näitena Objective C.
Vähemalt nii mulle praegu tundub.
Miks aga siiski see vana C?
Mulle tundub, et jälle on siin omad plussid erinevalt Java õppimisest esimese "aabitsakeelena". Põhjus on C assemblerilähedus, mis endiselt on argument vastava mõtteviisi omandamisel. Nii kurdab
Joel Spolski oma blogis:
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
et tänapäeva noorus ei oskavat enam õieti mõelda. Eks ta ole, aga mingi uba siin on. Ning C on reaalselt kasutusel süsteemiarenduses ( Linux) ning C väike edasiarendus on kasutatav Apple seeria op. süsteemides! Ning väikese jõupingutusega saab selgeks ka MS C# ning C++ (või vastupidi).
Ning see iseenesest räägib vastu teesile, et igasugune "protseduuriline" mõtlemine on out, sest see on otseselt kasutusel laialt levinud op. süsteemide (Linux) arenduses (ja ka Veebis).
Peale kõige muu ei ole meile voli ümber teha ülikoolide õppeprogramme ja Java istutatakse õppurile pähe niikuinii, k.a. siin Tartus.

Kirjandust ja viiteid:

Mac ja Unix:
btw:
Praegu kasutan Safari books online kontot, 10 päeva on proov - enam kui küll, et tutvuda, ja kui seda rohkem peaks vaja olema, ka liituda ...

Hea algus võiks olla
Mac OS X for Unix Geeks

seejärel (või kohe)
Mac for Linux Geeks

ja nii edasi.



Minu arust on shedööver õpiraamatute vallas
Patrick Henry Winstoni 
ON to C

Ma netist ei leidnud Pdfi, tellige Krisostomusest, tasub ära. Patric Henry Winston on muuseas tehisintellekti üks tunnustatumaid korüfeesid, väisas hiljuti Tartut ja pidas siin loengu. Ka tema AI alane raamat võiks olla kohustuslik materjal igale arvutiala inimesele (küsimus alati on on aga ajas, mida ka näiteks minul hetkel väga võtta ei ole).
Aga see raamat, kuigi algajale, on üks väga väheseid selliseid raamatuid, mis on ÕPIK suurte tähtedega.

K & R on endiselt vaja läbi uurida iga C keelt mõista tahval inimesel:

K & R


Objective C

kohta

leidsin hea hulga linke
näiteks
http://rypress.com/tutorials/objective-c/introduction

http://code.tutsplus.com/tutorials/objective-c-succinctly-introduction--mobile-21965


etc... siin materjalipuudust ei ole,
Apple Developer
saidilt leiab häid sissejuhatusi -

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/Introduction/Introduction.html

etc...
 , kui aabitsatõed selged ...
Aga alustuseks tuleks teha oma Mac-le uuendus Yosemite, mis võib tuua üllatusi - minu wifi loobus algul töötamast, seejärel laadida alla Xcode, seejärel "Hello World" ja muud asjad. Ning oletegi Apple developer valmis, seda sentigi kulutamata...
Tagumikutundide kohta ei oska öelda ja ei oska ka prognoosida, kas ma jõuan selle lähiajal läbi teha. Objective C grammatilist poolt aga tasuks küll teada kui ühte Objekt-orienteeritud keele näidet...