Archyvas

Kategorijos ‘Mano filosofavimai’ archyvas

Pajutau hi-end programavimo reikalavimus

2009.11.01 Xamas Komentarų: 17

Anksčiau, išskyrus Asemblerio(assembler) užduotis, bei Disasemblerį(disassembler), kurio taip ir neparašiau, mokantis universitete, visad į pateiktas programavimo užduotis žiūrėdavau kaip į labai elementarius dalykus. Visų pirma dėl duodamų mėnesio terminų vien maksimaliam balui gauti, o visų antrą dėl nedidelių reikalavimo skirtumų.

Taip buvo ir su C, ir su C++ ir su Java pirmom užduotim. Tačiau dabar, praktiškai viskas pasikeitė. Faktiškai yra duodama viena savaitė naujai programai parašyti(terminai yra kas dvi savaitės, bet viena iš tų dviejų yra 95 proc. atveju esamos programos pataisymas pagal reikalautus pakeitimus).

O ir palyginus dviejų užduočių reikalavimus:

Užduotį reikia atsiskaityti iki 2009.10.26 imtinai

1. Kurios nors užduoties klasės vietoje sudaryti bent trijų klasių hierarchiją.
2. Aprašyti specifinį išvestinių klasių elgesį, perrašant reikiamus bazinės klasės metodus.
3. Bent vieną išvestinę klasę papildyti laukais ir metodais, kurių nėra bazinėje.
4. Pademonstruoti klasių polimorfinį elgesį vykdymui skirtoje klasėje.

Bei: 

Užduotį reikia atsiskaityti iki 2009.11.09 imtinai

1. Parengti parašytas klases klonavimui.
2. Vykdymui skirtoje klasėje pagaminti objektus su identiška būsena.
3. Išimtinių situacijų aprašymui sukurti savo išimčių klasių hierarchiją ir ją panaudoti.
4. Vykdymui skirtoje klasėje išimtis pagauti ir atspausdinti informatyvius pranešimus.
5. Prasmingai panaudoti static, final, static final specifikatorius kuriems nors klasių laukams ar/ir metodams.

Tikrai, kaip vienos savaitės darbui, reikalavimai tikrai gana progresyviai keliami. Ir jeigu visi universitetiniai dalykai būtų dėstomi tokiais tempais ir reikalavimais, manau nesunkiai būtų galima pamanyti besimokant ne VU MIF’e, o Kembridžo MIF’e :) . Ir mokslo kokybės nebūtų galima kritikuoti.

Taip, dauguma atveju tai priklauso nuo pačio dėstytojo. Šiuo atveju tikrai pasitaikė ‘programeris’ :) . Ir išties malonu tokiais atvejais rašyti programą, kuomet reikalavimai jai nebėra pirmoko lygmens :) .

Atsimenu vieno dėstytojo pretenzijas, kai parašiau programą per gudriai. Kadangi programos reikalavimas buvo rašytas Pascal programai, ir C++ buvo kaip alternatyvą, aš pasinaudojau ‘vector.h’ įrankiu ir labai lengvai realizavau programą. Tačiau visvien galiausiai teko perrašyti vector.h, t.y. pasirašyti savo ‘vector.h’ vien dėl to, kad realizuoti programos ‘tūpūmą’.

Beje, nusivyliau ir C++ universitetiniais reikalavimais. Niekas nereikavo panaudoti nei ‘template’ <T> tipo abstrakčių duomenų tipų, nei realizuoti grafinio interfeiso. T.y. bent jau primityvaus grafinio modeliavimo. Tai padariau tik savo noru ir nuožiūrą.

Ko pasekoje gaudavosi kuriozinė situacija, universitetinį pažymį ‘10′ galėjo gauti tie, kurie rašė elementarias programas.

Java programų atveju, kaip jau minėjau vienas dalykas tapo idealus – tai deadline’ai. Kas dvi savaitės, o praktiškai – kas viena. Reikalavimų progresija išties puiki. Neskaitant tūpų pirmųjų programų, kuomet atsiskaityt pirmas dvi pavyko per 30 minučių, o parašyt – tik pora dienų, nes reikalavimai joms buvo tarsi cheap-quality php tinklapio.

Mano supratimu, jeigu jau mokaisi VU, ir neva hi-end specialybėje, tai apskritai joje neturėtų būti žmonių gaunančių aukštus įvertinimus rašant žemo lygio programas. Ir reikalavimai turėtų būti ne hi-end, o labiau super-hi-end.

Nes priešingu atveju universitetas neteikia jokios naudos – gi universitetas siekia išugdyti kvalifikuotus specialistus. Bet kaip jis tokius gali išugdyti, kai ’sunkiausiai’ semestro programa ‘tenkinanti’ reikalavimus teužima vos 700 eilučių ir parašoma per dieną-dvi. Ir tokia programa gerų geriausiai teišnaudoja vos pusę programavimo kalbos galimybių.

Ir po to tokie specialistai eina dirbti į įmones. :) Nieko stebėtina, kad pačios įmonės po to turi inverstuoti tūkstančius į darbuotojų kvalifikacijos kėlimą.

——-

Kitas aspektas – tikrai neturėtų būti taip, kad visus semestro laboratorinius programavimo darbus pavyktų atsiskaityt vos per pirmas 4-5 semestro savaites kiekvienai programai skiriant vos viena-dvi dienas darbo.

O to esmė vėlgi, kaip jau ir minėjau – tiesiog programų sudėtingumo kilimo kreivė yra kone horizontali, nors pagal Kembridžo dėsnius ji turėtų būti bent jau geometrinės progresijos arba netgi eksponentinė.

Galbūt ir tokiu atveju būtų įmanoma atsiskaityti darbus per 7-8 semestro savaites, bet tokiu atveju vienai programai mažiausiai 4 pilnų dienų gilinimosi į prog. kalbos galimybes ir jos realizacija prireiktų, ir bent jau gavęs diplomą studentas galėtų sakyti kad jis kažko vertas.

Dabar gi gaunasi taip, kad ir tas, kuris rašo 3000+ eilučių programas realizuodamas paskutine ’sunkiausia’ semestro užduotimi 90+ proc.  prog. kalbos esminių galimybių, ir tas, kuris rašo 600-700 eilučių programas, realizuodamas vos 40-50 proc. prog. kalbos savybių, gauna lygiai tokius pačius diplomus. Negana to, jeigu pastarąjam geriau sekąsi antriniai specialybės dalykai, jis gali būti netgi aukščiau už pirmąjį žmogų.

Taigi ar tame yra logikos? Manau, kad ne.

Žinoma, visada atsiras prieštaraujančių, kad reikalavimai programoms yra ‘kosminiai’.

Bet tada kyla natūralus klausimas tokiems žmonėms – ko Jūs einate į tuos universitetus?

Kitas kuriozinis dalykas – universitetuose praktiškai nedėstomas Php. O C# dėstomas minimaliai. Kas dar kurioziškiau – realybėje realūs darbo užsakymai būtent sudaro 90 proc. būtent šioms programavimo kalboms. :)

Tačiau itin uoliai išdėstomas ‘pascal’is’. Ir turbūt būtų išdėstytas dar uoliau, jeigu ne galimybės pakeisti pascal į C++ leidimas antrame ir tolimesniuose semestruose universitete. Tačiau visgi visi dėstytojai ‘pasikaustę paskalyje’, ir kartais gana juokinga būdavo žiūrėti kaip jie vertina ‘C++ kodą’ :) . O supratę, kad C++ tai padaryti be galo paprasta ir lengva atsidurdavo keblioje situacijoje – universitetiniai reikalavimai tiesiog nėra ruošiami aukštesnio lygio programavimo kalboms.

Tai tiek minčių apie mokslo kokybę Lietuvos universitetuose. Šiuo atveju, bene geriausiu laikomame ‘VU’. Skirtumas tas, kad nuo šių metų fux’ai už tai dar moka ir kelioliką tūkstančių litų kasmet :) . Argi ne kurioziška :) .

Java, C++, C#, Php, Pascal redaktoriai ir kompiliatoriai

2009.09.12 Xamas Komentarų: 2

Pamaniau, pasidalinsiu mintimis ir atradimais, padarytus per tuos studijų ir iki studijinius metus.

Yra daugybė programavimo kalbų ir daugybė jų redaktorių.

Šiaip dažnai esu gana alergiškas ‘viskas viename’, bei ‘milžiniškos apimties’ programoms. Todėl renkuosi alternatyvas.

Šį kartą skip’insime, terminal’ą, ir Kubuntu, Linux 5 ir pan. pingvinus, nes visgi namuose dirbu XP langais(Windows XP SP2)

Taigi nuosekliai:

Pascal(programavimo kalba nuo kurios mane pykina).

Kompiliatorius: Free Pascal

Redaktorius(Source): Free Pascal (LT versija)

Beje LT versija yra tikrai puikiai paruošta, ir EN varianto tikrai nereikia

Alternatyvos: Senutėlis Turbo Pascal, ir dar keletas nereikšmingų

C/C++ :

Unversitete ir pan. bandys siūlyti visad matyt “Dev C++” programą, kuri mano nuomone po mėnesio darbo ja, yra tikras nieko vertas šlamštas. Ja nebent ‘makefile’ patogiau pasiredaguoti, t.y. dalyką kuris taip pat yra atgyvena(turiu omeny redagavimą pačiam)

Na arba iškart bus siūlomas maksimalizmas – Microsoft Visual Studio. 5 GB instaliuotas gigantas.

Aš asmeniškai pasirinkau: Code::Blocks (CodeBlocks) . Ši programa nėra didelė – užima vos ~100MB, tačiau tikrai yra tas ko bent jau man ir reikia. Ir tvarkinga, ir funkcionalu, ir kur kas geriau/patogiau už “Dev C++”, bei nėra tokia griozdiškai kaip Visual Studio. Be to jos kompiliatorių ir derinimo terpė labai interaktyvi, taip kad galima sakyti jog galima pasirinkti beveik bet ką.

Code::Blocks yra ir kompiliatorius ir puikus redaktorius.

C# (Microsoft’o Java arba ‘užturbintas’ Pascal’is):

Nesu didelis šios kalbos mėgėjas, bet čia be abejonės lyderis yra M$ tools’as “Microsoft Visual Studio”.

Java:

Pagrindiniai įrankiai: NetBeans, JBuilder bei Eclipse. Kol kas labiausiai sužavėjęs yra “NetBeans”, jeigu tiksliau, tai “JDK with NetBeans IDE Java SE bundle” (JDK – Java Developer Kit). Beje JDK įmanoma atsisiųsti tik iš Sun tinklapio :D . Download’as pilnos Java yra ~135MB, o instaliuota ~430MB, kas gal ir nėra labai mažai, bet programa tikrai gana puikiai susitvarko su mano poreikiais.

Php grupė(HTML, CSS, Php, JavaScript,MySQL DB):

Mano mėgstamiausia :) . Redaktorius Php sąsajai be abejonės Notepad++. Gana aiškus lyderis šioje srityje. Nors teoriškai galima būtų užleisti ir kompiliatorių, bet tai nėra prasminga.

Kompiliatorius šiuo atveju yra – serveris kompiuteryje EasyPhp . Turi puikią lietuvybę ir yra labai paprastas naudoti. Tai tarsi patobulintas WAMP atskirų dalių serverio instaliacijos procesas.

 

———

O dabar trumpai:

  • Pascal redaktorius: Free Pascal (LT)
  • Pascal kompiliatorius: Free Pascal (LT)

 

  • C++ redaktorius: CodeBlocks (Code::Blocks)
  • C++ kompiliatorius: CodeBlocks (Code::Blocks)

 

  • Java redaktorius: NetBeans
  • Java kompiliatorius: JKD with NetBeans

 

  • C# redaktorius: Microsoft Visual Studio
  • C# kompiliatorius: Microsoft Visual Studio

 

  • Php redaktorius(+CSS, JavaScript,HTML,MySQL DB): Notepad++
  • Php kompiliatorius: EasyPhp (LT)

Apie visa ko (be)prasmybę?

2009.08.29 Xamas Komentarų: 0

[1 dalis]

Mane visad domino diskusijos egzistencijos tematika, siekiant suprasti visa ko esmę.
O tam turime daugybe įprastų faktų, į kuriuos ne visad atkreipiame dėmesį:
-> Grįžtamieji procesai visatoje
-> Multiplikacijos procesai visatoje
-> Objektų veiklos, veiksmų, atoveiksmių ir proceso sistemiškumas.
Paimkite pastarąjį punktą. Kaip vienas filosofas iškėlė egzistencijos klausimą, kas yra tikra, o kas yra menama: “Egzistuoju, vadinasi esu”. O štai kai kalbame apie mišką, mes neišsikiriame medžio, kai objekto, miškas mums jau yra objektas. Priešingai negu kalbėtume apie konkretų medį. Čia jau ir kyla egzistencijos/būties klausimas.

Kitas aspektas būtų – jeigu paklaustume savęs – “Kas yra gyvybė?” ir “ar ji apskritai egzistuoja?“. Vienas iš esminės šių dienų gyvybės apibrėžimo tezių yra aksioma laikomas “gyvybė – tai protinga mastanti būtybė, kurios veiksmų mes negalime nuspėti”. Tačiau ir tas pats uolos gabalas, ir žmogus sudarytas iš tų pačių atomų. Nors turime skirtingas molekulių grandines, valentingumą, bet esame visi sudaryti iš tų pačių primityvių cheminių elementų.
Kadangi kol kas niekas taip ir nesugebėjo sukurti dirbtinio intelekto, kol kas su gyvybės apibrėžimo aksioma negalėtume nesutikti. Visi bandymai sukurti dirbtinį intelektą užsibaigia tuo, kad tiesiog turime robotizuota sistemą, kuri geriausiu atveju iš gautų įvesties žodžių gauti tai mikrosekudei sugeneruota atsitiktinį veiksmą. Tačiau net ir čia vėl meluojame, pagal nenuginčiająmą aksiomą tikrą atsitiktinį veiksmą gali padaryti tik gyvybė. Visą kitą remiantis moksline informacija mes galime pagrįsti. Kad ir elementari rand() funkcija, kuria remiasi bet kokia sudėtingesnė atsitiktinumą generuojanti sistema ar robotas.

Tačiau iš tiesų ta pati rand() funkcija tai nėra atsitiktiniai duomenus. Šiuo duomenis mes galime nuspėti su viena iš X galimybių teiginiu. Kadangi esmė ta, kad 95 proc. atsitiktinių generatorių remiasi laiko savoka. Tik laikas yra skaičiuojamas mikrosekundėmis, ar dar smulkesniu mastu, bet jis yra skaičiuojamas ir tai yra daroma nuo konkretaus atskaitos taško. Ir pagal gautą laiką, ir dar galbūt pora konstantų, ar iracionalių skaičių(kaip santykio x/y), mes gauname pasirinkta atsakymą. O tai reikia kad žinodami principą, visados galime pasakyti ir būsimą atsakymą tuo laiko momentu.

Bet kokia robotizuota būtybė nesugeba pati galvoti ar interpretuoti reiškinio nenuspėtinai. Ji gali tiesiog įsiminti veiksmų seką, ir tuo pačių rand() būdu ją gebėti atkartoti nebūtinai ta tvarka.

Tad dabar keliame klausimą – ar tikrai žmogus yra nenuspėjama, atsitiktinį veiksmą galinti atlikti būtybė. Su tuo galime sutikti iki tol, kol nėra iššifruoti žmogaus DNR kodai(kol kas tik segmentai) ir žmogaus protas bei jo veikimo principai.

Šiuolaikinės genetikos dėka, jau yra įmanoma nustatyti būsimas vaiko ligas, jo ūgį, akių spalvą, ar fizinę jėga. Tai yra tai, kas yra užprogramuota jo genuose. Bet tai galima dalinai pakeisti. Kas jau dabar kelia klausimą dėl ateityje būsiančių sportininkų gavusių genų dopingą. Ar tai bus ta pati būtybė, ar tai bus tas pats žmogus?

Šių dienų technologijomis yra įmanoma, nuskaityti žmogaus mintis 90 proc. tikslumu vos užsidėjus žmogaus smegenų nervų impulsus sekantį šalmą ant galvos. Nereikia net tiesioginio kontakto.
O tai jau gali sugriauti net ir mitus apie tai kad neįmanoma, žmogaus skaitančio kitų mintis, egzistencija. Pasirodo įmanoma, tereikia kad toks žmogus gebėti justi ir analizuoti kito asmens smegenų nervų impuslų seką.

Tiesa, kažkur skaičiau, kad žmogaus skaičiavimo galimybės prilygsta geriausiu atveju 20 hertzų procesoriui, žmogaus akis skiria tik vienos minutės kampą, o klausa net ir fenomenalių žmonių dėka, neišilipa iš 12-22000Hz rėmų. Tačiau egzistuoja būtybių, turinčių kur kas geresnį faktorių šiais punktais:

  • Erelio skiria matyt ne minutės, bet netoli sekundės kampą, ir gali įžiūrėti kur kas toliau esantą objektą tiksliai. Tai jam leidžia dėl kur kas tankiau nervų lastelių šviesai išsidėsčiusių erelio akiduobėje nei žmogaus.
  • Šikšnosparniai geba girdėti ultragarsą.
  • Kai kurie gyvūnai puikiai mato naktį.
  • O beždžionė gali atsiminti 4 kartus ilgesnį skaičių parašyta lentoje ir žmogui/beždžionei matytą 1 minutę.

Todėl esant tokiems potencialams, įmanoma sugalvoti nukrypimą už žmogaus galimybių ribos, kuris tenkintų tuos faktorius.

Taigi, matomai atsakinėdami į klausimus kol kas susiduriame tik su vieninteliu faktoriumi ir trikdžiu – laiku…

[1 dalies pabaiga]

84 valandos – pc įjungtas nesustojant…

2009.08.29 Xamas Komentarų: 0

Gavosi taip, kad dar kartą pagerinau savo šių metų kompiuterio darbo be pertraukos rekordą. Prieš išjungiant jis dabar jau rodo – 3 paras ir 12 valandų :D . Ir vėl viskas vardan darbo ir tikslų siekiant svajonių :D

uptime-84valandosTaigi fiksuojame naują šių metų PC uptime rekordą:

84 valandos 11 minučių 12 sekundės.

Kas atspės – kuris iš Jų nėra seimo narys? :D

2009.08.06 Xamas Komentarų: 0

 Aukštyn ranką!
Įdomių veikėjų turime mūsų šalyje, ir aš neabejoju kad koks užsienietis, paklaustas kuris iš žemiau nuotraukoje esančių žmonių nėra seimo narys, kiek sutriktų, bet primiausią įvardyti kuris tikrai yra seimo narys :D :D.

Ir kas galėjo pagalvoti, kad tai turėsime savo mažoje Lietuvėlėje.

Kaip Valinskas sakė(pagrindinės dvi “prisikėlusiųjų” kertinės tezės) :D :

  • “Jūs jau prisidirbot, leiskite prisidirbti ir mums”
  • “Kuo giliau į kapines, tuo mažiau prisikėlusiųjų”
Kuris iš šių žmonių nėra seimo narys?

Kuris iš šių žmonių nėra seimo narys?

Na o pabaigai dar vienas anekdotas apie Lietuvos ir užsienio politikus:

Susitinka Vokietijos , Lenkijos ir Lietuvos premjerai.
Vokietijos :
- Pas mus žmonės gauna algos 2000 eurų, 200 sumoka mokesčiam, kaip jie su 1800 pragyvena nelabai suprantu…
Lenkijos:
- Pas mus žmonės gauna algos 500 eurų, 200 sumoka mokesčiam, kaip jie su 300 pragyvena nelabai suprantu…
Lietuvos:
- Pas mus žmones algos gauna 200 eurų, 300 sumoka mokesčiam, iš kur jie gauna tą 100 mokesčiam sumokėt, niekaip neįsivaizduoju…

Kompiuteris įjungtas: 2 paras 12 valandų 12 minučių…

2009.08.06 Xamas Komentarų: 0
2 dienos 12 minucių 12 sekundzių

2 dienos 12 minucių 12 sekundzių

Pastebėjau, kad šiomis gūdžios nakties baigiu sumušti ne vieną savo kompiuterio neišjungimo rekordą per pastąjąjį laikotarpį… Jeigu gerai prisimenu, savo stacionariąjam kompiuteriui tokį ilgą darbą be poilsio buvau davęs paskutinį sykį prieš bene gerus pusantrų metų turbūt, jeigu ne seniau :) … O viso to priežastis labai naivi ir paprasta… Kadangi dienomis orai puikūs, o darbas vistiek yra privalomas, paskutinėmis savaitėmis teko iškeisti darbą dienomis į darbą naktimis :) … Taip ir gaunasi, kad nueini gilaus miego, iki galo vis kažko nepabaigęs viename ar kitame projekte, ir negali išjungti(turiu didelę alergiją ‘hibernate’ funkcijai, todėl ja nesinaudoju).

Na o pabaigai pasidžiaukime šiuo puikiu UPTIME :D .

Kagi, labos ir saldžių visiems ;D…
—–
Edit: (Kita diena) Išjungiau kompiuterį lygiai 6 valandos 21 minutė ryto, taigi rekordą nustatom ties:
Longest UpTime: 2 dienos 14 valandų 0 minučių 0 sekundžių :)

Atsikėliau 15:03…

2009.07.28 Xamas Komentarų: 0

Vajej, šiandien, t.y. jau vakar, pasipiktinau vienu dalyku. Atsibudau šio pirmadienio rytą, 15 valandą 3 minutės. Dar labiau papiktino tai, kad miegui skyriau bene 11 valandų, ir pramiegojau 12:35 skambėjusį žadintuvą. Po to neužteko jėgų eiti apšaukti kieme ant sraigės pykstančio šuns… Tai ne tik jai prastaugė galvą, bet ir buterbrodą dariau iš poros pagalvių su intencija kad nustos… Nelaimei procedūrą baigė bene po 40 minučių… Manau tai taip pat prisidėjo prie tokio miego periodo.

Na bet rytojui, tai yra šiandienai, reikia pasižadėti neviršyti 13 val 30 min atsikėlimo deadline’o :D .

Miegam

Miegam

Kategorijos: Mano filosofavimai, Prisiminimai Žymos: