Job search adventures


For a couple of weeks I had an honor to talk to various people in search for a possible position as a software engineer. Personally, I have a quite wide area of interests, however in job search market, this feature of the software engineer is not a good entry in your curriculum vitae .


I would like to start with people, who interviewed me. These were various kind of people and professions. From job search agencies (I like to call them people filtering institutions) to the directors of the companies. Obviously, the big companies hire the job search agencies to filter people out, and directors interview people only in small companies. There was also human resources and sometimes project managers in the interviews.

The people filtering agencies are the nicest people in the whole planet. They don’t understand any terms you are saying, but somehow You feel like they listen and You enjoy talking to them. Maybe, it’s because they were all woman and I have had no girlfriend in months, I don’t know. They did not ask any technical related stuff, they were just interest on how You do your work and what you like to do on your free time.

Going directly to the companies, the wide spectrum of interviewing people is displaced. From the managers of human resources to project managers. Wide area of people gives the problem of what to say. Managers are only interested in how much quality your work has while software engineers are interested with which platforms You have worked. In this kind of situation, one can even say some jokes or laugh from some stupid mistakes.

Tests of skills

One of the most obscure thing during the interviews is the technological tests. These things suppose to help company understand on how good Your are in terms of theoretical and practical situations. These things are always unpleasant. For example, writing manual SQL queries is always a pain and usually this kind of stuff is written by testing it. No PC around, just a peace of paper — a lot of stress goes in Your brain and big possibility, that it will go wrong.

I personally more into practical tasks. Some of the technical directors gives quite interesting tasks. For example, the code, which is encoded in basic hex and the task is to perform the profiling of the code. And the question of interest was why the program runs so slowly. Of course, the answer to this question after debugging was pretty obvious — sleep function makes the code slow, but still it was something new. Other tasks was basically to write some simple programs — subscription module or guest-book like application.

The only interesting test was given by a big-corporate-international place. They just need to know how fast You are able to learn new stuff. Of course, in current world, everything changes day by day (except PHP) and so they literally asked some technical stuff only in the second round, then the head of programming asked me about my interests and previous experiences.

Unusual questions

Unusual questions deserves separate topic. Then You go to the interview, You are prepared with some basic answers to the standard and routine questions, like “How You imagine Yourself in 5 years?” or “The most interesting project so far?”. Of course, You get to answer them as a typing machine, nothing can go wrong. But there was couple of unusual ones:

  • What other places You have applied? (should not this be a personal thing?)
  • Are You comfortable to get up at 4 o’clock in the morning? (I’m an engineer, not a hippie)
  • How You react, then the customer changes his mind on the last day of project shipment. (I’m an engineer, not a hippie)

With more like google-type of questions, I would feel more comfortable. These questions does not show any thinking signs from the participant, just very straight-forward and plain.


All in all, it was fun experience. I have never talked to so many people in same area of interest. Some was good, some was bad. The main advice from my point of view — do not rush things. Stay calm and logic through all the job search procedure. Scale everything the interviewer does and doesn’t say. Set up every position in the field of possibilities and only then make a move.

Happy job search adventure in Vilnius! (or Kaunas!)

Hacking vilnius ticket web service


Lately I was involved in some sort of web scraping thing, and it was very exciting. One can do so many things automatically with a simple, yet powerful script. In particular what python with lxml can offer.


So, in the city of my living I came across the service, which provides You with the current information of Your public transportation card. It’s very-very not user friendly and if I catch myself on the run, I need to go to their site and log in and then I only then I can see the critical information I need — how much money is there in my public transportation card. No app is provided on any platform. So the only possibility is to do some hacking of the system and write an app for myself.


First thing to do, is to analyse the platform. What was really amazing is that there was no form elements. Everything was done, using the JavaScript. This makes life even more easier


This only means, that the data from the inputs is send directly to the server with XHR in background and then everything goes straight where it belongs to be. So the next step — what does it send?


All the form elements, plus some empty variables (?) and something randomly generated, looking like key-ish thing, which looks like no-changeable thing, because after some testing, I was still able to make a POST request to the server, and he was perfectly fine with this random thing. This is basically it, now the only thing left is the code.

The python library lies Fell free to fork it and make something from it. And here’s the screenshot of the text-content of the returned html.



After working with scrappers, I’ve realized how insecure the web is. The only thing, which can make some changes in the field is the captcha-ish things included in the forms.

The Problem


Here is the thing. Well, it is not the thing exactly, it is more like a frustration or desperate need for deformation. The work in Artificial Intelligence field is less orientated as I expected, nor it is organized. Of course, there are sets of tools to work with, witch works, after some tune-ups, but this time it is not about tools. It is more about the essential of this field, the root, which drives it forwards – the brain.


We, human living beings, are very subjective on every subject what so ever. We do go to school in order to learn how to write, calculate. There are not so many intelligence, as I define it, in those ages. It is more like an exploring process, which started immediately after memory system has been launched in the brain and finishes then we die. It is more or less continues process.

So, here is the thing: how to define, on what intelligence basis, do we develop the artificial intelligence system? Example: an older person has a quite bad memory, so the brain does not recognize some of the people faces. So does current face-recognition solutions, due to some unique specifications. Personally, sometimes I do mess up with recognising some of my fellow students, but let’s say, machine does a better job. What conclusions does it make? While, after some renewing-faces job, I do perform better job, than the machine, does it makes machine less accurate?

These questions are the essence of the brain working problem – it is not a state machine. It is a dynamic machine. You can not stop it, as a car engine, inspect it, make changes and run again. If You kill the brain, it would not rise from the dead again. This is the problem. The only possible solutions to this is to make changes, while brain is still working. This causes some ethic problems, sadly. Another solution – making models and testing them. Looking how likely it is to work as brain does. More like physics, huh? Just physics people have a good platform to test their ideas – the mighty universe. While we do have only 5 kg of neural matter, which is not possible to model on high level scale.


Brain, the dynamic system of connections, which is not possible to model, is so interesting, so frustrating and depressing on the same time. What gives us energy to explore the brain, also does make the problems to do so.

Changing the language

For a particular reason, my whole blog was entirely in Lithuanian language.

Starting from today, every single post will be in English. The possible reasons:

  1. English is a language of internets;
  2. English provides the possibility to extend the audience;
  3. (This is a good opportunity to get used writing in English, because my English writing skills are quite terrible);

Užtikrintos karjeros grafiko paaiškinimas

Neseniai pateikiau vieną tokį faktą, kurį pastebiu kiekvieną kartą, kai tik baigiasi studijų semestras. Ir kas kart, tas pastebėjimas vis paaštrėja. Taip kilo priklausomybės idėja.


Grafikas, kurį matote aukščiau, yra subtilus geek’ų humoras, kurį turbūt supras nedaug žmonių. Noriu iškarto pasakyti, kad sekanti iliustracija nėra kažkokia pašaipa ar kažkoks nusiskundimas kaip blogai yra universitete. Viskas visiškai ne taip. Ir viskas netgi atvirkščiai. Šiame įraše pabandysiu paaiškinti grafiko idėja ir galutinai apiforminti ką jis reiškia, kad neliktų nesupratusių.

Idėjos paaiškinimui pabandysiu iliustruoti paprastu uždaviniu, dviejų skaitmenų sudėtimi, sudėties operacija. Tarkim, kad ir 2+2. Kas gali būti paprasčiau, pasakysite Jūs. Tačiau, kai tik palysi giliau, viskas tampa ne taip ir paprasta.


Savo aiškinimą pradėsiu nuo mokyklos. Nuo žinių židinio, nuo pačios-pačios pradžios – paskalio. Tai iki istorinė programavimo kalba, kurią programavimo tik todėl, kad kitas pasirinkimas buvo tik asembleris ar fortranas ( nors aš turbūt geriau programuočiau asembleriu ).

Mūsų nagrinėjamos problemos sprendimas paskalio atveju atrodo taip:

program sudėtis;
  var suma : integer
  suma := 2 + 2;

Viskas kaip ir paprasta – apsibrėžėme kintamąjį, į kurį saugosime savo operacijos atsakymą. Kintamasis, šiuo atveju, yra fundamentalus dydis, su kuriuo programoje galime operuoti. Sumos operacija irgi yra fundamentalus operatorius, kadangi realiai procesorius ( o tiksliau jo ALĮ ( aritmetinis-loginis-įrenginys ) ) visiškai “nemoka” mums įprastas matematines operacijas.

Judėkime toliau, o tiksliau – giliau.


Kiekvienas programinis kodas, nesvarbu kokia programavimo kalba jis būtų parašytas – yra transliuojamas į mašininį kodą ir jo asemblerinį analogą ( *.lst ). Pabandykime dabar parašyti analogišką Paskaliui dviejų kintamųjų sudėties operacijos programą Intel’io 8051 mikro-kontroleriui. Tai senas, geras 4 KB kodo atminties turintis ir 128 B duomenų atminties turintis įrenginys, kurį kai kurie, vis dar naudoja. Kaip atrodys kodas:

	.ORG 0H		; programos pradzios adresas

	MOV A, #2D	; perkeliam 2 i ACC
	ADDC A, #2D	; prie ACC pridedam 2

	.END		; susirenkam zaislus ir einam namo

Šiuo atveju, mes jau operuojame su konkrečiu įrenginiu – ACC registru, akumuliatoriumi, tik su kuriuo iki-istoriniai procesoriai galėjo atlikti aritmetines operacijas ( tik nežinau kaip dabar su daugyba/dalyba ). Tačiau čia dar lieka viena fundamentali operacija – sudėtis, ADDC ( add with carry ). Mažą užuominą tam gali duoti transliacijos byla:

0000 7402                3             MOV A, #2D      ; perkeliam 2 i ACC
0002 3402                4             ADDC A, #2D     ; prie ACC pridedam 2

Pirmas stulpelis yra adresas ( kuris prasideda nuo 0000, kaip ir buvo nurodyta .org operatoriumi ). Mus labiau domina antras stulpelis, kuriame yra nurodytas mašininis kodas. Pirmi 8b yra operacijos kodas, kur prie sumatoriaus jis yra 0x34, o toliau jau seka pats kintamasis 0x02. Vadinasi, pirmiausiai procesorius sužino ko iš jo nori programuotojas, o paskui jau paima tą skaičių, su kuriuo bus atliekama operacija.

Judam tolyn, į aparatinį lygmenį!

Aparatinis lygmuo

Aparatiniame lygmenyje mes pasiaiškinsime paprastą aparatinį įrenginį – sumatorių. Projektuoti savo sumatorių pradėsime nuo paprasčiausio jo varianto – dviejų 1b dydžių sumavimo. Štai kaip atrodo paprastas 1b sumatorius schematiškai:

Realiai, rezultatą duoda XOR loginis įtaisas, o kuomet mums nepakanka 1b atsakymui – pasijungia AND loginis įtaisas. Taigi, kai mes turime 0b1 + 0b0, tai atsakymą mes turime:

Ir atsakymas yra 0b1, o kuomet mes turime 0b1 + 0b1, tai atsakymas yra:

Teisingai, dabar mes jau turime persipildymą, kadangi 0b1 + 0b1 = 0b10 ( 1b neužtenka atsakymui išsaugoti ). Taigi, mūsų sumavimo įrenginys, turi turėti persipildymą apdorojančią grandinės dalį, todėl mums reikia papildyti duotą schemą. Galutinė schema atrodytų taip:

O taip atrodys 2b sumatorius:

Vedant iš vieno grandinės bloko į kitą grandinės bloką persipildymo išėjimą, galima sudaryti n bitų sudėjimo grandinę. Tačiau mūsų nagrinėjamai problemai užtenka ir 2b, su persipildymo kontrole, kadangi 2 yra 0b10, o 0b10 + 0b10 = 0b100, pažiūrėkime kaip tai atrodo loginėje grandinėje:

Ir štai – sudėjome du skaičius nesiremiant jokiais fundamentaliais operatoriais – kintamaisiais, aritmetiniais ženklais.

AND loginiai vartai

Aritmetines operacijas atlikome su loginiais įtaisais, tačiau ir juos juk reikia suprojektuoti. Pateiksiu vieną tokio projekto pavyzdį, panaudojus n ir p tipo MOSFET’us.

Schema nėra iškarto lengvai suprantama, tačiau ji puikiausiai veikia. Pabandykime schemoje pakelti vieną įėjimą:

O dabar pakelkime abu įėjimus:

Kaip matote, savo loginę užduotį AND grandinė atlieka kuo puikiausiai.

Nuo paprastos paskalio programos mes nusileidome iki pat aparatinio lygmens su loginėmis grandinėmis. Žemiau jau tik yra puslaidininkių teoriją, kurią bent kiek panagrinėti reiktų dar dviejų tokio pat ilgio įrašų.


Elektronikoje nėra žmogui įprastu matematinių operacijų, kaip sudėtis, atimtis, daugyba, dalyba. Nekalbu net apie integravimą. Elektronika siekia kiekvieną žmogui įprastą operaciją aproksimuoti. Sumavimą galima pavadinti idealizuotu uždaviniu. Mes turime tik du skaičius ( arba du objektus ) ir natūraliai išplaukia išvada, kad jeigu prie dviejų kiaušinių pridėsime dar du kiaušinius, tai jau turėsime keturis kiaušinius. Tuo galime įsitikinti net skaičiuodami ant pirštų. Elektronikoje toks idealizuotas uždavinys yra aproksimuojamas naudojant puslaidininkius, iš jų sudarant logines grandis, iš loginių grandžių sudarant aparatinius įrenginius ir t.t..

Kiekvienas iš išvardintų lygmenų turi savo iššūkius ir kylančias problemas. Kiekvienas lygmuo yra įdomus ir reikalauja specifinių žinių. Problema – o kurį pasirinkti? Kokiam lygmeniui atiduoti visą savo inžinerinę esmę? Kurioje specializacijoje būčiau geresnis specialistas?

Dar taip pat į nugarą kvėpuoja tokia, labai neapibrėžta ir sunkiai kur taikoma, dirbtinio intelekto patologija..

Paslėptas Markovo modelis: Įžanga

Po truputi ruošiames baigiamąjam darbui, todėl pradėjau versti vieną gerą paslėpto Markovo modelio vadovą “A tutorial on Hidden Markov Models and Selected Applications in Speech Recognition”. Pateikiu Jums išverstą įvadą.

Nors ir buvo pristatyti dar vėlesniais 1960-tais ir ankstyvais 1970-tais metais, statistinis Markovo metodas arba paslėptas Markovo metodas tapo labai populiarūs tik paskutiniais metais. Yra dvi pagrindinės priežastys kodėl taip nutiko. Pirma, modeliai yra stipriai pagrįsti matematiškai ir iš to galima suformuoti teoretinę bazę modelių taikymui. Antra, modeliai, reikiamai pritaikyti, labai gerai dirba praktikoje, svarbiuose įtaisuose. Šiame vadove pabandysime atsargiai ir metodiškai apžvelgti teoretinius šio tipo statistinio modelio aspektus ir parodyti kaip jie yra pritaikomi balso atpažinimo problemoms spręsti.

Realaus pasaulio procesus paprasčiausiai galime apibūdinti signalais. Signalai gamtoje gali būti diskretiniai (raidės iš žodyno) arba nuolatiniai (garsiniai signalai, temperatūros matavimai). Signalo šaltinis gali būti stacionarus (jo statistiniai apibrėžimai nepriklauso nuo laiko), ar nestacionarus (signalo apibrėžimai laikui bėgant kinta). Signalai gali būti gryni (siunčiami tiesiai iš šaltinio), ar pažeisti iš kitų signalų šaltinių (kaip pavyzdžiui triukšmo) arba dėl perdavimo trukdžių, aido, kt.

Fundamentinio tipo svarbi problema yra charakterizuoti tokius, realaus pasaulio, signalus į signalų modelį. Yra keletas priežasčių dėl ko šitą problemą yra būtina spręsti. Pirmiausiai, signalo modelis suteikia mums pradinę informaciją apie signalą, kuria remiantis yra galima apibrėžti reikalingą signalą sistemos išėjime. Pavyzdžiui, mus domina pokalbio, vykstančiu telefonu, signalo sustiprinimas. Signalas yra pažeistas triukšmo ir perdavimo kliūčių. Tokiam uždaviniui atlikti mes galime panaudoti signalų modelį ir suprojektuoti sistemą, kuri pašalins nereikalingą triukšmą ir anuliuos perdavimo iškraipymą. Antra priežastis kodėl signalų modelis yra toks svarbus yra tai, kad jis potencialiai mums gali pasakyti labai daug apie signalo šaltinį, net jeigu mes jo nematome. Ši savybė yra labai svarbi, kai yra būtina gauti tikslų signalą iš šaltinio. Šiuo atveju, su geru signalo modeliu, mes galime simuliuoti signalo šaltinį ir išmokti kuo daugiau iš tokių simuliacijų. Galiausiai, pagrindinė priežastis kodėl signalo modelis yra toks svarbus – jis velniškai gerai veikia praktikoje ir leidžia mums suvokti svarbias praktines sistemas, pavyzdžiui spėjimo sistemos, atpažinimo sistemos, identifikavimo sistemos, kt.

Galima pasirinkti keletą signalo modelio tipų, kuriais galima apibūdinti nagrinėjamo signalo ypatybes. Vienas signalas gali būti išskaidytas į keletas jo sudedamąsias klases: deterministinį modelį ir statistinį modelį. Deterministinis modelis parodo pagrindinę informaciją apie signalą: ar signalas yra sinusinės formos, ar yra eksponentinė suma, kt. Tokiais atvejais, signalo apibūdinimas yra gan paprastas uždavinys. Viskas, kas reikalaujama yra nustatyti signalo modelio parametrų reikšmes (amplitudę, dažnį, fazę, kt.). Antra signalo modelio plati klasė yra statistinis modelis, kuris bando charakterizuoti statistinius signalo parametrus. Tokių statistinių modelių pavyzdžiai yra Gauso procesas, Poisono procesas, Markovo procesas, paslėptas Markovo procesas. Paslėpta prielaida yra ta, kad signalas gali būti gerai charakterizuotas kaip parametrinis atsitiktinis procesas, ir jo stochastinio proceso parametrai gali būni nustatyti tiksliai, gerai apibūdintai.

Įdomumo dėlei, nusakytas kalbos atpažinimas, abudu deterministiniai ir stochastiniai signalo modeliai turi didelį pasisekimą. Šitame straipsnyje mes orientuosimės į vieną stochastinį signalo modelį, kuris pavadintas paslėptas Markovo modelis (angliškai: hidden Markov model (HMM)). Pirmiausiai mes apžvelgsime Markovo grandinės teoriją ir ją plėsdami prieisime prie paslėpto Markovo modelio, panaudodami kelis pavyzdžius. Tuomet sutelksime savo dėmesį į tris fundamentines problemas, su kuriomis susiduriama projektuojant HMM: stebėjimo eilės tikimybės vertinimas specifiniam HMM; geriausios modelio būsenos eilės nustatymas; modelio parametrų apibrėžimas, siekiant gauti norimą signalo atsakymą. Mes parodysime, kad kai šios tris fundamentinės problemos yra išspręstos, mes galime taikyti HMM nurodytoms problemos spręsti balso atpažinimo sistemose.

Nei paslėpto Markovo modelio, nei balso atpažinimas nėra naujas dalykas. Pagrindinė teorija buvo paskelbta Baumo ir jo kolegų dar vėlyvais 1960, ankstyvais 1970 metais ir pritaikyta balso atpažinimo sprendimams Bakerio CMU ir Jelinek su kolegomis IBM 1970 metais. Tačiau, paplitęs supratimas ir HMM teorijos kalbos atpažinimo sprendimai pasirodė tik prieš kelerius metus. Tai nutiko dėl kelių priežasčių. Pirma, paslėptas Markovo modelis buvo publikuotas matematiniuose žurnaluose, kurie pagrinde nebuvo skaitomi inžinierių, kurie dirbo prie balso atpažinimo. Antra priežastis yra ta, kad pagrindiniai balso atpažinimo sprendimai nebuvo gerai dokumentuoti daugeliams vartotojų, todėl buvo sunku suprasti kokiu principu veikia sprendimas ir inžinieriai negalėjo perkelti modelio į savo tyrimus. Kuomet detalūs vadovai buvo išleisti, inžinieriai perkėlė teoretinį modelį savo laboratorijas. Šitas vadovas yra skirtas suteikti pagrindinės HMM teorijos apžvalgą (kaip ją pateikė Baumas ir jo kolegos), sutekti praktines teorinio metodo diegimo detales ir aptarti keletą nurodytų teoretinių aiškių problemų sprendimų pavyzdžių kalbos atpažinime. Vadovas sudeda iš kelių sudėtų straipsnių ir suteikia vientisą vadovą, kuris suteikia reikiamą užnugarį norint dirbti šios sferos tyrimų srityje.

Šis vadovas susideda iš sekančių sekcijų. Antroje sekcijoje mes apžvelgsime diskrečią Markovo grandinę ir parodysime paslėptos būsenos koncepciją, kur stebėjimas yra problematiška būsenos funkcija, gali būti efektyviai panaudota. Teoriją iliustruosime dvejais pavyzdžiais: monetos supimas, klasikinė kamuoliuko ir urnos sistema. Trečioje sekcijoje mes aptarsime tris fundamentines HMM problemas, ir suteiksime tris praktines technikas jas sprendžiant. Ketvirtoje sekcijoje mes aptarsime skirtinus HMM tipus, kurie buvo išstudijuoti: ergodinis ir kairys-dešinys modelius. Šioje sekcijoje mes taip pat aptarsime skirtingas modelio ypatybes, kaip stebėjimo skaičiaus funkcija, būsenos trukmės skaičius ir optimizavimo kriterijus, pasirenkant teisingas HMM parametrų reikšmes. Penktoje sekcijoje mes aptarsime problemas, kuris kyla diegiant HMM, kaip mastelio keitimas, pradinių parametrų sąmatos, modelio dydis, modelio forma, duomenų praradimas ir daugialypės stebėjimo seką. Šeštoje sekcijoje mes aptarsime izoliuotą žodžių iš balso atpažinimą, kuris yra suprojektuotas, naudojantis HMM idėjomis ir parodysime kaip jis elgiasi, lyginant su kitomis, alternatyviomis sistemomis. Septintoje sekcijoje mes išplėsime idėjas, aptartas šeštoje sekcijoje, ir pritaikysime jas sakinio atpažinimui. Tam mes jungsime atskirus, kiekvieno žodžio HMM modelius. Aštuntoje sekcijoje mes trumpai apžvelgsime didelį balso atpažinimo žodyną ir galiausiai, devintoje sekcijoje mes apibendrinsime visas idėjas, kurias aptarinėjome per visą vadovą.

Publikuojam pirmą savo knygą

Prieš rašydamas ( o tiksliau taisydamas ) esamą knygos variantą, noriu papublikuoti savo pirmą atvirai rašytą knygą. Išeities kodas visuomet buvo pasiekiamas Arch Linux Lietuva GitHub saugykloje. Realiai, knyga yra lietuviškas Beginners’ Guide variantas su keliais pridėjimais ( tiesa, šiuo metu perrašau esamą lietuvišką variantą wiki puslapyje į naujesnį ). Ateityje, kai turėsiu daugiau laiko, planuoju ją praplėsti ir pateikti ne vien tik vieno wiki puslapio lietuvišką variantą, o surinkti kiek galima daugiau informacijos apie Arch Linux naudojimą ir administravimą.

Kadangi tokios knygos neturi apčiuopiamos publikos, kuri galėtų ją pirkti, tai ją atiduodu nemokamai. Juk knygos atlieka informacijos saugojimo funkcija, o pinigai jau yra antraeilis dalykas. Be to, knyga yra parašta gan blogai, grubiai. Tai tik pirmas mano darbas, todėl noriu atsiprašyti tų, kurie tikisi rasti labai kokybiškai atliktą darbą.

Pirma gyvenimo svajonė beveik įvykdyta.

Erasmus reziumė

Įsivaizduokite asmenis, kurie didžiąją paros dalį praleidžia prie kompiuterių. Jie nežino kaip gaminti, nežino kaip teisingai reikia skalbti rūbus. O dabar įdėkite juos dviem savaitėmis į stovyklavietę, kur nėra interneto ir tik kelios rozetės, nepažįstamoje Suomijoje, kur žmonės kalba nežinoma kalba. Sudominau?

Viskas prasidėjo ankstų, žvarbų Rugpjūčio 14d rytą. Žinoma, niekas nevyksta be problemų, iš pačio ryto atradau, jog mano transporto priemonėje ( 1986 metų VW Golf ) sudegė kažkoks saugiklis ir maitinimas neateina nei į automagnetolą, nei į pridegiklį ( “prikūrkė” ). Teko ardyti priekinę panelę ir ieškoti kur nugnybti 12V bent jau GPS’ui. Laimė nusišypsojo ir kilniam reikalui pasiaukojo signalizacija.

Truputi pavėlavę išvykti iš Vilniaus, pradėjome savo kelionę. Pirmą Erasmus dvasią turėjom progą pajausti už Rygos, kuomet kelias ėjo šalia Baltijos jūros. Negalėjome nesustoti ir nepasigrožėti. Toliau sekė Rygos hidroelektrinė, Estijos vėjo jėgainės, klaiki naktis prie terminalo esančioje “Statoil” degalinėje, vėjuotos dvi valandos ant kelto tiltelio. Neišdildomas jausmas, kai pamatai ką sugeba padaryti keli tūkstančiai arklio galių su vandeniu.

Ir kaip gi mus pasitiko Helsinkis – 2.50E už 30min stovėjimą miesto centre, požeminėje automobilių stovėjimo aikštelėje. Toliau sekė stovyklavietės paieška. Mano ankščiau suplanuota stovyklavietė kažkur buvo pradingus – į GPS’ą įvestas adresas nuvedė į kažkokį individualių namų rajoną. Tačiau gan greitai radome kitą alternatyvą. Ir štai, sustojome, pastatėme palapinę ir mes jau Helsinkyje, pagal tarptautinę studentų mainų programą, Erasmus.

Žinoma, kur gi be interneto. Stovyklavietėje jo nėra. Mums, kaip tam tikro žmonių sluoksnio atstovams jis būtinas kaip vanduo. Juk reikia pakeisti savo būvimo vietą facebook’e. Artimiausias žinomas taškas iki interneto – mūsų fakultetas. Iki jo 10km pėsčiom. Ko tik negali padaryti elektronikai dėl interneto.

Toli gražu, problemos dėl gyvenamosios vietos nesibaigia. Stovyklavietė užsidaro Rugpjūčio 29 dieną, o bendrabutį gausim tik Rugsėjo 1d. Čia mums pagelbėjo mūsų naujos Erasmus bičiulės – priglaudė mus valgomajame. Ten teko susipažinti su kolektyvinio gyvenimo ypatumais – dvi prancūzės, kurios gyveno tam pačiam kambarių bloke – nenorėjo, jog mes naudotume kambarių bloke esantį dušą, tai dušą naudojom kitame kambarių bloke. Tos prancūzės..

Apsigyvenus bendrabutyje įsijungė automatinis režimas – reikia mokytis. Iš prisiminimų galima ištraukti tik kelis, labiausiai įsimintinus įvykius. Pasidalinsiu su labiausiai įstrigusiu.

Tarp mūsų Erasmus bičiulių įsivyravo viena graži tradicija – kiekvieną šeštadienį rengiamas tarptautinės kulinarijos sesija. Teko paragauti ką valgo vokiečiai, estai, turkai. Teko gaminti ir mums. Asmeniškai pats virtuvės reikaluose nelabai gaudžiausi, tačiau su mažais pamokymais iš dailiosios lyties atstovių – kažkas, visgi ir pavyko. Gaminome bulvinius
blynus su mėsa ir kūgelius. Bulves skutome valandą, tarkavome irgi tiek pat, kepimas užtruko irgi daug laiko. Bendroje sumoje, galima statyti rekordą buvimą virtuvėje – keturios valandos. Tačiau, Erasmus bičiuliams patiko vyriškas gaminimas – virtuvėje stovėti dėl to vertėjo. Vertėjo skleisti Lietuvos dvasią.

Paskutinius savo žodžius norėčiau pašvęsti mokslo sričiai. Dažnas sako, jog Lietuvos švietimas yra blogas. Palaukit. Jūs esate visiškai ir totaliai neteisūs.

Fakultete, kur teko mokytis 4.5 mėnesio, mokslo lygis yra apgailėtinas. Taip, tikinu, jog parinkau tiksliai tam tinkantį būdvardį. Temos nagrinėjamos lėtai ir paviršutiniškai. Kai mokiausi VGTU, Lietuvoje – kiekviena paskaita buvo vis gilesnis žingsnis, vis tolesnis kritimas į visatos pažinimą. Bijau įžeisti Lietuvos kolegijas, bet man atrodo, jog tokiu lygiu, kaip man dėstė Helsinkyje – pas mus atitinka kolegijos lygį. Taigi, Lietuva turi didžiuotis savo dėstytojais ir mokslo sistema.

This slideshow requires JavaScript.

Perceptrons or two daughters of cybernetics

Noriu pasidalinti įdomia citata, kurią radau “Connectionsism and the Mind” W.Bechtel and A.Abrahamsen knygoje:

Once upon a time two daughter sciences were born to the new science of cybernetics.
One sister was natural, with features inherited from the study of the brain, from the way nature does things. The other was artificial, related from the beginning to the use of computers. Each of the sister sciences tried to build models of intelligence, but from very different materials. The natural sister built models (called neural networks) out of mathematically purified neurones. The artificial sister build her models out of computer programs.
In their first bloom of youth the two were equally successful and equally pursued by suitors from other fields of knowledge. They got on vert well together. Their relatioship changed in the early sixties when a new monarch appeared, one with the largest coffers ever seen in the kingdom of the sciences: Lord DARPA, the Defence Department’s Advanced Research Projects Agency. The artificial sister grew jealous and was determined to keep for herself the access to Lord DARPA’s research funds. The natural sister would have to be slain.
The bloody work was attempted by two staunch followers of the artificial sister, Marvin Minsky and Seymour Papert, cast in the role of the huntsman sent to slay Snow White and bring back her heart as proff of the deed. Their weapon was not the dagger but the mightier pen, from witch came a book – Perceptrons …

Atviro kodo paskaita – pirmas bandymas

Taisyklė skelbia – pirmas blynas visuomet bus prisvilęs. Taip nutiko ir su pirma, atviro kodo paskaitą, kurią surengiau per VGTU Elektronikos fakulteto rengiamo “Tranzas”, elektronikų dienų.

Per mano dvejus studijų metus, teko padalyvauti tik studento rengiamoje paskaitoje. Lyginant su KTU rengiamų studentų konferencijų skaičiumi, VGTU ef lieka toli “už”. Liūdnoka.

Paskaitos tema buvo labai abstrakti – “Pingvinai daužia langus”. Kalbant lietuviškai, tai skambėtų kaip “Kodėl linux geriau už Windows”. Paskaitos metu trumpai-drūtai papasakojau apie:

  • atviro kodo filosofiją;
  • bash skriptingą;
  • latex;

Iš vieno klausytojo išgirdau, kad dar labai ilgai aiškinau kodėl komandinė eilutė yra geriau už GUI ir tai tikrai nėra labai svertinas objektas naujokui. Tiksliau tai nėra tas kabliukas, už kurio galima būtų užsikabinti paprastam vartotojui. Nors mes, VGTU EF studentai, neesam paprasti vartotojai – mes elektronikos inžinieriai. Ir studijuoti kažkokias skyles kaip tik ir yra mūsų profesija.

Sunku parinkti temą būtent kažkokiai publikai, nes savo fakultete nesutinkau labai daug žmonių besidominančiu programavimu, naujosiom technologijom. Dauguma linux taria su kažkokia pašaipa dantyse. O aš jiems atgal tą patį apie windows. :)

Įkelsiu parodyti kokia gi buvo mano auditorija. Pradžioje žmonių buvo žymiai daugiau, buvo su kuom pabendrauti, bet kadangi laiko organizavimo klausimas yra kažkoks keistas, tai teko per ilgąją pertrauką viską greitai bandyti išdėstyti, kol dauguma neišsiskirstė, o paskui jau su likusiai kažką ir pakalbėti.

This slideshow requires JavaScript.

Ką gi, sekančiais metais bandysiu padaryti kažką rimčiau ir gal padaryti konferencijas VGTU EF kažkokia gražia tradicija.