Archive for the 'Mokslai' Category

Naktinėju

Šiaip ne(be)mėgstu rašyt apie mokslus. Skaityt taip pat. Nes sesijos metu, artėjant jos pabaigai ar pan. į blogsferą pasipila n panašių įrašų. Bet fakju, pasiguost tai reikia :-) Tai va, prasidėjo paskutinė semestro savaitė. Ryt kolis, dviejų laborų gynimai, keturių fabrikėlio produktų deadlainas. Gtkmm’as duoda pasidžiaugt Segmentation fault. Nežiūrint į tai, kad pakeitimų kode nedaroma, klaida randomu mėtoma atsitiktinose vietose. Tuo labiau, kad būtent šis kodas prieš metus veikė kuo puikiausiai. Smagu. Ai, o koliui prie visos neišdėstytos teorijos paskirta atmintinai išmokt apie 10 algoritmų sourcų, tokių kaip Dijksta, Bellman-Ford ir t.t. Teks naudot Boost library :-) Tiesą sakant, neskaitant to, jog dabar tai tiesiogiai proporcinga būsimam pažymiui, nematau prasmės mokintis algoritmų kodo. Mano manymu užtenka žinoti jų paskirtį, pliusus ir minusus, bei veikimo principą (nebūtinai). Na o patys algoritmai būna surašyti knygose. Tuo tarpu mane online palaiko venomis tekantis kofeino perteklius, įtampą mažina švelnus E-Z Rollers drum’as.

(Čia šitą naktį parašiau, bet internetas dingo :-))

Bėdos su dinaminiu DLL užkrovimu su C++

Gaminu čia mokslams tokį kursinį. Semestro darbas. Nors pradžioje turėjom vilčių pradėt (ir užbaigt) kuo anksčiau, bet va, mokslų liko tik viena savaitė, o mūsų projektas dar neužbaigtas. Norėjosi geriau, gavosi kaip visada. Žodžiu, reikia parašyti programą, dirbančią su aprašytomis schemomis. Nusprendžiau, kad bus labai gražu ir patogu duotas schemas sukompiliuoti į DLL failus, o paskui, programos vykdymo eigoje, vartotojas (aka dėstytojas) galės pasirinkti schemą. Vakar teko užtektinai su tuo pasikrušti. Pagal visus oficialius ir neoficialius pavyzdžius NIEKAIP nepavyko suprograminti, kad DLL’as būtų užkraunamas dinamiškai.

Anot visokių wikipedijų ir MSDN’ų, apsirašom DLL’ą maždaug taip:


#include <windows .h>

BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
{
    return TRUE;
}

//Eksportuojam funkciją.
extern "C" __declspec(dllexport) int test()
{
    return 123;
}

Sukompiliuosim ir turėsim DLL’ą su labai reikalinga funkcija test(), kuri grąžins 123 :-) Dabar galim bandyti naudoti šį kūrinį statiškai (bandžiau įsitikinti ar veikia).


#include <windows .h>
#include <iostream>

//Importuojam funkciją.
extern "C" __declspec(dllimport)int test();

int main(int argc, char **argv)
{
    int tmp = test();
    std::cout < < tmp << endl;
    return 0;
}

Viskas kaip ir OK, veikė kuo puikiausiai (į projektą įtraukus *.lib). Reiškia DLL’as gyvas. Bet kadangi mano užduočiai statinis variantas netiko, nes schemų gali būti bet kokių ir bet kiek, tai reikėjo rinktis dinaminį DLL užkrovimą. Maždaug pasirenku kokį noriu failą, jis patikrinamas ar tai būtent schemos failas (ar turi reikiamus metodus), jei viskas tvarkoj - naudojam. Viso šito sourcas toks:


#include <windows .h>
#include <iostream>

//Būsimos funkcijos aprašas.
typedef int (*importFunction)();

int main(int argc, char **argv)
{
    importFunction test;
    int result;

    //Užkraunam DLL'ą.
    HINSTANCE hinstLib = LoadLibrary("ManoDLL.dll");
    if (hinstLib == NULL)
    {
        std::cout < < "ERROR: unable to load DLL" << endl;
        return 1;
    }
    // Gaunam rodyklę į funkciją.
    test = (importFunction)GetProcAddress(hinstLib, "test");
    //Tikrinam ar funkcija egzistuoja.
    if (test == NULL)
    {
        std::cout << "ERROR: unable to find DLL function" << endl;
        FreeLibrary(hinstLib);
        return 1;
    }
    result = test();
    // Iškraunam DLL'ą iš atminties.
    FreeLibrary(hinstLib);
    std::cout << "The result was: " << result << endl;
    return 0;
}

Va čia ir prasidėjo bėdos. DLL’as būdavo užkraunamas, tačiau GetProcAddress vis nesugebėdavo atrinkti reikiamo metodo. Kas man iš to dll’o jei negaliu naudot jo metodų? Buvo siūlymų prie metodo eksportinimo darašyt cdecl, tačiau tai nepadėjo. Po kelių valandų bandymų ir ieškojimų išradau, jog DLL’e aprašant funkciją, reik prirašyt __stdcall:


//Eksportuojam funkciją.
extern "C" __declspec(dllexport) int __stdcall test()
{
    return 123;
}

Dabar viskas veikia kuo puikiausiai :-) Daugiau info MSDN’e ir Wikipedijoj.

Liko dvi savaitės…

…o man liko:

  • 2 koliai +1 testas.
  • 2 kursiniai.
  • 4 laboratoriniai darbai.
  • Kokie 3 anglų straipsniai.
  • Grupinis alaus ragavimas (grupinis todėl, kad grupės).
  • Kalėdinis balius su darbo kolektyvu (lėksim į Vilniu, tad laiko resursai susinaudos žymiai, įskaitant reabilitaciją).

Per visą šitą show dar reik pasistengt išlikti žmogumi.

Tikimybių teorijos ir statistikos disciplinos sudorojimas

Jums reikės:

  1. ~1 savaitės.
  2. Savo saulutės (bonusui gauti).
  3. Kelių balų investitijos iš semestro. Nors galima apseiti ir be jų.
  4. Televizoriaus.
  5. Dar kažko.

Veiksmų planas:

  1. 1 diena. Laikom 2 kolio teoriją. Išeinam vidutiniškai nusiteikę, bet lyg ir turėtų užtekti. Su kolega ragaujam alų, dalinamės rašinėlio įspūdžiais, bei prognozėmis.
  2. 2-3 ir 4 dienos. Kadangi išpuolė savaitgalis + bonusas (pirmadienis - nedarbo diena), kasom pilvą, žiūrim putbolą, ragaujam alų, aplankom gimines & toliau žiūrim putbolą, nudirbam keletą darbų, beveik uždirbam milijoną, pagal pavyzdį susimontuojam statistikos uždavinį (egzamino užduotis), neramiai galvojam apie 2 rašinio rezultatus ir laukiam kitos dienos egzamino gynimo.
  3. 5 diena (antradienis). Rašinėlio rezultatai stebina - gauta kokius 8 kartus mažiau nei tikėtasi, užpuola mintys apie planų keitimą - kaip išlipti iš duobės, egzamino gynimas pavyksta neblogai, vyksta moralinis nusiteikimas ir ruošimasis po kelių valandų vyksiančiam 1 kolio perrašymui, pietūs su saulute (alkis stabdo mąstymą), iš saulutės gaunamas bonusas: luck +1 (palinkėjo sėkmės), vyksta kolio perrašymas, ŠŪDAS!!!, pateikiama apeliacija, gaunamas bonusas: +20%, nugali stipriausias :-)
  4. 6 diena (šiandienadienis). Lieka tik formalumai: gautas profesoriaus autografas, bibliotekai atiduotos knygos, grąžinta suvestinė.

Žodžiu, sesija finišd, pradedamos proto atostogos :-)

Laisvai pasirenkamas modulis: Ką rinktis?

Reik mums laisvai pasirinkt laisvai pasirenkamą modulį :-) Tik va bėda - nežinau ką rinktis. Štai turiu aš tokį sąrašiuką ir galvoju ką daryt:

Kodas F Studijų moduliai Rud Pav Kr. Dėstytojas
    Moduliai vedami ir rudenį,
ir pavasarį
       
T120B523 1 Daugiaterpių sistemų inžinerija
(P)
R P 4 doc. A.Ostreika
P170B510 2 Diskretinės matematikos metodai R P 4 prof. G.Palubeckis
P170B003 1 Kompiuterizuoto įmonių valdymo
pagrindai
R P 4 lekt. V.Kuosa
T120B108 1 Multimedijos kūrimo elementai R P 4 doc. A.Ostreika
P176B001 1 Intelektualiųjų sistemų
modeliavimas
R P 4 doc. B.Tamulynas
P176B332 1 Programiniai agentai žinių
inžinerijoje
R P 4 doc. B.Tamulynas
P175B524 1 Programavimas Java R P 4 doc. A.Riškus
T120B020 1 Programavimas Visual Basic R P 4 doc. A.Ostreika
P170B806 1 Skaitiniai metodai R P 4 doc. K.Plukas
T120B106 2 Skaitmeninis vaizdo ir garso
apdorojimas
R P 2 doc. A.Ostreika
T120B112 2 Trimatė animacija ir virtualios
sistemos
R P 4 doc. A.Lenkevičius
T120B356 1 Žiniatinklio sistemų kūrimas R P 4 lekt. V.Limanauskienė
T120B121 1 E. leidybos grafinis dizainas R P 4 lekt. J.Smolinskas
    Moduliai vedami tik rudenį        
T120B321 1 Grupinis projektas (P) R 4 lekt. V.Limanauskienė
T120B120 1 Įmonių informacinės technologijos R 4 lekt. A.Janavičiūtė
T120B114 1 Kompiuterių architektūros
kursinis projektas
R 4 doc. S.Maciulevičius
T120B003 1 Praktinis programinės įrangos
kūrimas
R 4 doc. D.Rubliauskas
P175B509 1 Programavimas Windows aplinkoje R 4 doc. D.Rubliauskas
P170B417 1 Programų kūrimas Microsoft
.NET aplinkai
R 4 doc. V.Pilkauskas
P170B102 1 Verslo apskaitos sprendimų
projektavimas
R 4 lekt. dr. G.Budnikas
P176B010 1 Intelektualiosios sistemos R 4 doc. G.Ziberkas
    Moduliai vedami tik pavasarį        
T120B609 1 IS projektavimas ir CASE technologijos P 4 doc. R.Gustas
P175B007 1 Integruotos verslo valdymo
sistemos
P 4 doc. A.Venčkauskas
P170B515 1 Kombinatorinė optimizacija P 4 prof. G.Palubeckis
T120B311 1 Paskirstytosios duomenų bazės P 4 lekt. N.Sarafinienė
T120B529 1 Windows Server diegimas ir
palaikymas)*
P 4 lekt. J.Končienė
P170B103 1 Duomenų saugyklos ir verslo
duomenų analizė
  P 4 Doc. V.Šakys

Kadangi esu pasirinkęs programavimo specialybę, tai koks nors vadybos modulis manęs netraukia. Tiksliau pats norėčiau pasirinkt ką nors arčiau programavimo. Norėčiau ko nors praktiškesnio, nei programavimas konkrečia kalba (pvz Visual Basic), kad ateityje man tai praverstų ne tik kai turėsiu reikalų su Basic’u :-) Gal jūs turit ką pasiūlyt ar apasidalint patirtimi iš savo vaikystės? Parašykit savo nuomonę. Ačiū.

P.S. Jei kam laaabai įdomu, plačiau apie modulius galite paskaityti čia, įvedę atitinkamo modulio kodą.

Duomenų bazių laboratorinis darbas

Turim šį semestrą duomenų bazių discipliną. Kad kažką nuveiktume praktiškai, tai kiekvienam asmeniškai duota po tris lenteles su ryšiais iš kurių reiks suprojektuoti mini duomenų bazę su visomis formomis, raportais ir t.t. Nors pagal įdėją visi turėtume dirbti paskaitų metu, tačiau mūsų laboratorinų darbų dėstytoja, teta - praktikantė, pareiškė, jog lankomumas nėra būtinas. Na ką padarysi, neverčia nieks dirbt, tai ir tingim. Taip, žinau, kad visą šį darbą pradėsiu daryt kai šikna degs. Na nebent labai pasistengsiu, bet kai nieks neverčia tai taip ir gaunasi.

Pratybų dėstytojas pastoviai mini Informixą :-), tačiau pagal nutylėjimą darbų atlikimui išlieka MS Access. Ech, nemėgstu aš to Accesso. Buvau gyvenime gal kokius tris kartus pasileidęs. Kiek pamenu būdavo maždaug tokia situacija: logiškai suprantu ką noriu padaryt, bet kaip tai padaryt su Access’u - nesuvokiu. Praktikos stoka. Tad nuspręndžiau darytis su MySQL, bei PHP. Turiu visokių savo brudų prisikodinęs, kurie reikalauja perrašymo, tad bus puiki proga bent truputį apsitvarkyt :-). Apskritai jau prie PHP senokai bebuvau prisėdęs, nes kai nėra konkretaus reikalo, tai saviraiškai laiko nerandu. Dar vienas dalykas, kurį noriu išmėginti, tai sukurpti ką nors panaudodamas AJAX :-) Manau laaaabai gerai viskas čia ir tiks :-)

Sesija: dviejų parašų per dieną nebūna

Man galioja toks kiaulystės dėsnis, kad per dieną dviejų parašų į semestro suvestinę niekaip negaliu gauti. Prieš keletą dienų laikiau fiziką, šiandien pasiemiau parašą. Atrodė, jog šia diena ir užsibaigs man sesija, nes trūko tik diskrečiųjų struktųrų dėstytojo autografo. Egzaminas vyko šiandien. Vėl rašiau. Tiksliau bandžiau. Šį kartą iškart neišėjau. Išėjau truputį vėliau :-) Aišku pasitaikė kitas kaiulystės dėsnis, kad gavau būtent tuos klausimus kurių nemokėjau, nors visa tai paaiškinama tuo, jog paprasčiausiai per pora dienų nuo praeito egzamino nespėjau pasiruošt. Tad antrojo parašo šiandien negavau. Nieko, paimsim kitą savaitę. Einu miegot :-P

Neprisimokiau :-(

Nuotaika sušikta, keiktis noris. Nuėjau šiandien 9 valandą ryte į Diskrečiųjų struktūrų egzaminą, pasėdėjau, klausimus užsirašiau, atsistojau ir išėjau. Po kelių minučių grupiokas pasekė mano pavyzdžiu. 9:15 sėdėjom Kreizhauze (nežinantiems: studentų kabakas) ir gėrėm alų. Rezultatas: jau du egzaminai skolų savaitėje. FUCK!