splash
Apie ką aš čia?
Apie technologijas, .NET, internetinius sprendimus, darbo organizavimą, laiko valdymą ir kita.
Parašė Gintaras Slavinskas Data: 2009-10-03

Šių metų rugsėjo 29d., tikrai netikėtai man pačiam, buvau pakviestas į Microsoft padalinio Lietuvoje rengiamus „Spaudos pusryčius“, kuriuose buvo supažindinta su kompanijos ateities planais, į šį renginis buvo pakviesti spaudos atstovai ir tinklaraštininkai. Iš tiesų aš savęs ne tik kad nelaikau profesionaliu tinklaraštininku, bet ir apskritai tinklaraštininku, esu tik žmogus, kartas nuo karto pasidalinantis savo [...]

 

2009-12 mėnesio archyvas

Trumpai: „Microsoft Security Essentials“ įvertinta ekspertų

Parašė Gintaras Slavinskas Data: Gruodis 28, 2009

http://slavinskas.eu/archives/257

Visi skeptikai, vis dar pesimistiškai žiūrintys į Microsoft kuriamas apsaugos priemones, nuo šiol galės būti tikri, jog Microsoft Security Essentials suteikiamas saugumas bus užtikrinamas ne vien žodžiais o ir veiksmais. Ši antivirusinė programa įvertinta, kaip viena geriausiu tarp nemokamų antivirusinių programų. Šią naujieną atradau skaitydamas lifehacker portalo naujienas. Aš pats asmeniškai, jau kurį laiką naudojuosi šia antivirusine programa ir tikrai nusiskundimu ja neturiu. Tiesa pasakius, tikriausiai puikiausiai išsiversčiau ir be antivirusinės programos, nes lankomos svetainės ir parsisiunčiami duomenys yra patikimi ir neužkrėsti kenksmingomis programomis, tačiau nemokamai suteikiama apsauga tikrai praverčia, nes gi visiems puikiai žinoma -  “apsauga gėdos nedaro”.

Microsoft AJAX CDN – dėmesio verta nauja tecnologija.

Parašė Gintaras Slavinskas Data: Gruodis 28, 2009

Ne taip jau ir senai, Microsoft paskelbė, jog suteikia galimybę nemokamai naudotis Microsoft AJAX CDN serviso paslaugomis, jis skirtas tiek AJAX tiek jQuery bibliotekų duomenų kešavimui (nepykit, gero lietuviško atitikmens šitam terminui dar taip ir nesu radęs). Visiems, kuriems terminas CDN (CDN – Content Delivery Network) yra nežinomas, trumpai galiu paaiškinti, jog tai yra serverių tinklų sistema, sudaryta iš “strategiškai” išdėstytų serverių, kuriuose yra išsaugojami įvairūs objektai – video failai, paveikslėliai, CSS, Javascript ir kita. Šiuo atveju Microsoft AJAX ir jQuery bibliotekų duomenys. Naudojamasis CDN paspartina tinklalapio užkrovimą, kai vietoje to, kad visi svetainės elementai būtų užkraunami iš jūsų serverio, dalis šių elementų yra užkraunami pasinaudojant CDN. O kreipiantis į CDN, yra pasirenkamas artimiausias, ryšio prasme, serveris ir jau iš jo užkraunami reikalingi duomenys.

Jei jūsų rašome kode yra “gausiai” naudojamos AJAX ir jQuery bibliotekos, tai šis sprendimas tikrai padės paspartinti tinklalapio užkrovimą. Naudotis šiuo servisu yra išties paprasta, užtenka pridėti script tag’ą:

   <script src=”http://ajax.microsoft.com/ajax/jquery/jquery-1.3.2.min.js” type=”text/javascript”></script>   

Ir ties tuo geros naujienos nesibaigia, su ASP.NET 4.0 naudotis šiuo servisu bus naudotis dar paprasčiausiau, asp:ScriptManager turės naują parametrą (angl.property) – EnableCdn, ir nustačius šį parametrą EnableCdn=”true”, vietoje kreipimosi į lokalias bibliotekas, bus kreipiamasi į CDN serverius.

Jei norite daugiau pasiskaityti apie šį įrankį patariu apsilankyti ScottGu tinklaraštyje.

Smagių, gerų ir linksmų švenčių visiems!

Parašė Gintaras Slavinskas Data: Gruodis 24, 2009

Na noriu ir aš visus pasveikinti su ilgai lauktomis šventėmis, ramiu iš šiltų kūčių bei linksmų Šv. Kalėdų! Dėkoju visiems, kurie šiais metais skaitėte mano tinklaraštį ir rašėte komentarus, nors tokių buvo ir nedaug, bet vistiek smagu, kad kažkam temos, kuriomis rašau yra idomios. Na ir pabaigai norėčiau su visais pasildalinti, šiuo kalėdiniu sveikinimu, kurį gavau iš Microsoft.
P.S. Tikiuosi Microsoft atstovai neužpyks, kad šį video įkėliau ir į savo svetainę.

Programuotojo darbo procesas: #7 Programos apimties ir kūrimo trukmės įvertinimas

Parašė Gintaras Slavinskas Data: Gruodis 24, 2009

Programos apimties ir kūrimo trukmės įvertinimas yra bene sudėtingiausias uždavinys, su kuriuo tenka susidurti kiekvienam programuotojui. Taip pat ir man, gerai įvertinti programos apimties ir kūrimo trukmę, yra sudėtingas uždavinys. Tiesa sakant, aš pats įvertinu tik kūrimo trukmę, o šis terminas vis dar “užsilikęs” iš perskaitytų Watts S. Humphrey knygų. Nors apimties įvertinimas yra pakankamai gerai aprašytas ir neabejotinai pateiktų patikimus duomenis, bet, mano nuomone, nauda neatperka laiko, skirto atrinkti tinkamą istorinę informaciją, atlikti geriems programos apimtiems įvertinimams, ir atlikti pačius apimties įvertinimus. Todėl ir šiame įraše rašysiu apie tai, kaip aš siūlyčiau įvertinti programos kūrimo trukmę.

Taigi, pradėkime nuo pradžių, sudarinėjant planą, didžiausią problemą sudaro informacijos trūkumas, kadangi apie programą, kurią reikia sukurti, ar vykdoma užduotį, dažniausiai yra žinoma ypač mažai. Pagrindinė turima informacija yra tik programos ar užduoties reikalavimai. Įvertinti būsimos programos kūrimo trukmę, yra ypač sunku. Todėl svarbiausia kuo geriau išsianalizuoti reikalavimus ir pasinaudoti visa turima istorine informacija. Kad vertinimai būtų kuo tikslesni, iš pradžių reikia susidaryti konceptualų programos projektą, kuris turi atspindėti, programos kūrimo ir veikimo principus. Svarbiausia, jog konceptualus projektas būtų sudarytas iš tokių programos elementų, kuriuos jau yra tekę kurti arba bent jau būtų žinoma, kaip tai reikėtų padaryti.

Sekančiu žingsniu, sudarinėjant planą, yra vertinamas programos kūrimo laikas, skirtas programai sukurti. Kadangi konceptualiame projekte yra aprašyti programos elementai, tai reikia atsirinkti istorinę informaciją, kuri suteiktų duomenų apie panašių programos elementų kūrimą. Programos kūrimo trukmės vertinimas, remiantis panašių, anksčiau kurtų programų istorine informacija, yra vadinamas atitikmenimis grįstu vertinimu (angl. Proxy-based estimating – PROBE). Atitikmuo, kaip ir sufleruoja pavadinimas, yra programa ar jos elementas, kuris atlieka tokį patį arba labai panašų darbą, kaip ir programa arba jos elementas, kurį reikės sukurti. Atitikmenys, kuriais būtų galima pasinaudoti vertinant būsimos kūrimo trukmę, turi būti kuo panašesni į naujai kuriama programą/modulį. Taigi, atitikmenimis grįstas vertinimas yra sudarytas iš tokių žingsnelių.

  1. Išsiaiškinami programos reikalavimai.
  2. Surenkama kuo daugiau istorinės atitikmenų informacijos.
  3. Sudaromas konceptualus projektas iš į atitikmenis panašių programos elementų.
  4. Visiems programos elementams atrenkama pati tinkamiausia atitikmenų istorinė informacija ir, naudojantis ta informacija, įvertinama kiekvieno elemento kūrimo trukmė.
  5. Paskutiniu žingsniu įvertinama bendra programos kūrimo trukmė.

Vertinimas yra įgūdis, kurį galimą tobulinti ir gerinti. Yra keletas būdų, kaip vertinimo rezultatus galima pagerinti. Pirmasis patarimas – sudarinėjant konceptualų planą, reikia išskaidyti programą į mažesnius elementus, kadangi taip sumažinama prastų vertinimų įtaka galutiniam visos programos vertinimui, nei vertinant visos programos kūrimo trukmę iš karto, neskaidant programos į mažesnius elementus. Ypač svarbu palyginti kiekvienos programos realius kūrimo trukmės rezultatus su suplanuotaisiais, kadangi vertinant gali būti padaromos tendencingos paklaidos, pavyzdžiui, vertinimų duomenys visuomet yra ~40% mažesni nei gauti realūs rezultatai. Todėl, atliekant tolimesnius vertinimus, reikia įtraukti šią paklaidą, atitinkamai sumažinant arba padidinant galutinį vertinimo rezultatą. Tačiau reikia nepamiršti pastoviai lyginti realius duomenis su suplanuotaisiais, kadangi paklaidos gali kisti. Sekantis patarimas – kuriant konceptualų projektą, atrasti optimalų programos elementų išskaidymo lygį. Svarbu, jog konceptualus projektas nebūtų nei per daug nei per mažai detalus, kadangi tai stipriai įtakoja vertinimų tikslumą ir kokybę.

Na o ar jūs vertinate savo būsimų programų kūrimo trukmę? Jei taip, tai kaip tai darote?

Trumpai: WordPress atnaujinimo klaida

Parašė Gintaras Slavinskas Data: Gruodis 21, 2009

http://slavinskas.eu/archives/240

Norėčiau pasiaiškinti, dėl šiandieninio įrašo, kurį gavote į savo RSS skaitykles. Šis įrašas buvo su pavadinimu – “Laikinas skelbimas, naudojamas temai nustatyti (553c2496-ec32-4940-9d05-7067f866e0a0 – 3bfe001a-32de-4114-a6b4-4005b770f6d7)”. Tiesa pasakius, nežinau kas paskatino tokio įrašo atsiradimą, tačiau turiu du galimus kaltininkus: „Wordpress“ atnaujinimo į 2.9 versiją klaida arba „Windows Live Writer“ informacijos apie tinklaraštį atnaujinimo klaida. Daugiau paaiškinimų neturiu, nors ir klaidos pranešimo abiejų šių operacijų metu negavau.

P.S. Mane nustebino, tokio pavadinimo įrašo populiarumas, o dar sako, kad antraštė neturi įtakos populiarumui :) .

Programuotojo biblioteka

Parašė Gintaras Slavinskas Data: Gruodis 20, 2009

Na šis įrašas yra daugiau idėjos aprašymas, siekiant užvesti diskusiją, nei siekis pasidalyti turimomis žiniomis. Taigi, apie kokią idėja aš ruošiuosi šnekėti, visų pirma, man pačiam, kartas nuo karto, tenka susidurti su sudėtingesniu ir retesniu programavimo uždaviniu, kuriam išspręsti, reikia ieškoti informacijos turimose knygose ir Google platybėse. O tam reikia laiko, o neretu atveju ir pakankamai daug. Na šioje vietoje problemos kaip ir nebūtų, nes tos informacijos ieškoti bet kokiu atveju reikėtų. Tačiau problema atsiranda tada, kai panašų uždavinį tenką spręsti dar kartą, jau praėjus nemažam laiko tarpui, kai pasimiršo, kaip buvo išspręstas ankstesnis uždavinys, ir prie to programavimo kodo nėra galimybės prieiti. Todėl ir kilo idėja sukurti tokį dokumentą – biblioteką (toliau tekste – programuotojo biblioteka), kuriame visa ši informacija būtų kaupiama ir klasifikuojama, kad vėliau būtų ją galima nesunkiai pasinaudoti.

Na kol kas pati idėja yra labai šviežia ir neapdirbta, tačiau tikiuosi, kad laikui bėgant ir naudojantis pildoma programuotojo biblioteka, sugebėsiu išgryninti mintis, kaip reikia kurti ir pildyti, kad ja būtų galima efektyviai naudotis. Ir jei matysiu, jog ši biblioteka gali padėti ir kitiems, mielu noru, šiuo dokumentu galėsiu pasidalyti. Kol kas savo mintis išdėstysiu punktais, kaip ruošiuosi šią biblioteką kurti ir pildyti:

  1. Informaciją bibliotekoje klasifikuoti pagal programavimo kalbas, platformas ir sritis, tokias kaip C#, Javascript, JQuery, SQL, ASP.NET, ASP.NET MVC, Silverlight ir kitas.
  2. Kiekvienoje kategorijoje informaciją klasifikuoti papunkčiais:
    1. Bazinės struktūros, elementai ir aprašymai su pavyzdžiais,
    2. Baziniai metodai ir aprašymai su pavyzdžiais,
    3. Kodo ištraukos su aprašymais,
    4. Sudėtingesni ir retesni programavimo sprendimai su išsamiais aprašymais ir pavyzdžiais,
    5. OpenSource’iniai sprendimai, internetinės informacijos klasifikavimas, aprašymas.
  3. Įvairios pastabos.

Sakyčiau toks būtų vaizdas, kaip aš įsivaizduoju tokią programuotojo biblioteką. Na o kaip jums atrodo, ar tokia biblioteka išties yra reikalinga? O galbūt jau tokia turite ir pildote? Kokių minčių kyla, kaip būtų galima patobulinti šią biblioteką, jog ši būtų naudingesnė ir verta laiko, praleidžiamo ją pildant? Lauksiu jūsų nuomonių.

"Kodo ištraukos" (Code snippets) – pliusai ir minusai.

Parašė Gintaras Slavinskas Data: Gruodis 20, 2009

Na šis įrašas būtų ne tik apie kodo ištraukas, bet ir apskritai apie bendrą darbo palengvinimą naudojantis įvairiomis programavimo aplinkomis/programavimo darbo vietomis(šiuo atveju Visual Studio). Kiekvienas, kuris naudojasi Visual Studio, galėtų patvirtinti, jog ši programavimo aplinka suteikia aibę įrankių palengvinančių mūsų – programuotojų darbą. Bet egzistuoja geras posakis, kuris ypač tinka šios dienos įrašui – „Lazda turi galus“.

Na bet iš pradžių norėčiau pakalbėti apie pliusus, kuriuos įvairūs programavimo aplinkos komponentai mums suteikia:

  1. „IntelliSense“ – kažin ar rastume programuotoją, dirbanti su .NET ir Visual Studio, kuris įsivaizduoja savo darbą, be šio komponento. Užtenka parašyti du, tris simbolius, jei reikia, išsirinkti reikiamą elementą ir paspausti tab mygtuką – programos kodo rašymo greitis tampa žymiai didesnis.
  2. Įvairių VS(Vartotojo sąsajos, angl. UI – User Inteface) elementų įrankių dėžė (angl. ToolBox) – programuotojams, kurie programuodami, naudojasi dizaino peržiūros vaizdu (angl. Design View), šis komponentas taip pat gerai pažįstamas, kuomet bet kurį VS elemento HTML šabloną galima nesunkiai, pelės gestu, perkelti į HTML kodą, nepaspaudžiant nė vieno klaviatūros mygtuko. Įvairių įvykių (angl. events) .cs kodo generavimas taip pat yra supaprastinamas iki kelių pelės mygtuko paspaudimų.
  3. „Kodo ištraukos“(angl. Code snippets) – šis Visual Studio programavimo aplinkos komponentas yra  naudingiausias (bent jau man asmeniškai) “pagalbinis” komponentas. Juolab, kad su Visual Studio 2010 (Beta 2) versija, yra suteikiama dar daugiau galimybių naudotis vadinamosiomis kodo ištraukomos. Jei norite pasiskaityti apie tai daugiau apsilankykite ScottGu tinklaraštyje.

Na bet, kaip jau sakiau įrašo pradžioje, tai visi šie pagalbiniai komponentai neretai padaro „meškos paslaugą“. Įsivaizduokime situaciją, jog nebegalime visais šiais komponentais, tai kas nutinka:

  1. Neturint galimybės naudotis Intellisense, prireiktų laiko vėl prisiminti tikslius visų komponentų, atributų, įvykių aprašymus, kadangi su Intellisense kodo rašymas apsiribodavo pirmųjų kodo simbolių parašymu ir tab mygtuko paspaudimu.
  2. VS įrankių dėžės, dizaino peržiūros rėžimo ir kodo ištraukų teikiamų privalumų neteikimas, taip pat sukeltų alternatyvių problemų.

Na žinoma, šie pagalbiniai komponentai tikrai niekur nedings iš artimiausių Visual Studio versijų, tačiau kartas nuo karto profilaktiškai rašau kodą, nesinaudodamas visai šiais pagalbiniais komponentais, kad jei kada tektų rašyti kodą be visų šių pagalbinių komponentų nereikėtų raudonuoti, neprisimenant vieno, kito elemento tikslaus kodo aprašymo. O be kokių komponentų, kurie pagreitina programos kodo rašymą, jūs neįsivaizduojate savo darbo? Žinoma, neapsiribojant vien Visual Studio programavimo aplinka.

Programuotojo darbo procesas: #6 Planavimas

Parašė Gintaras Slavinskas Data: Gruodis 16, 2009

Na iš karto noriu visus perspėti, kad šis straipsnis yra mėgėjiškas (tikiuosi, ateityje galėsiu ir turėsiu pakankamai žinių, pasidalinti profesionaliu, rimtais straipsniais ir argumentais pagrįstu straipsniu apie planavimą) pamąstymas, apie, tai kas mano manymu yra planavimas, kokia jo paskirtis ir koks turi būti planavimo procesas. Tikiuosi sulaukti ir jūsų nuomonių, nuorodų į straipsnius apie tai kaip jūs planuojate savo darbą arba bent jau norėtumėte planuoti.

Taigi, planavimas yra viena svarbiausių, bet tuo pačiu ir daugiausiai problemų sukeliančių, programuotojo darbo sričių. Problemų sukelia tai, jog nedaugelis programuotojų žino, kas turi būti plane ir kaip jį sudaryti. Prastas planavimas arba visiškas jo nebuvimas sukelia keletą, bet rimtų problemų. Visų pirma, kas yra akivaizdu, nesusiplanavus savo darbo, neįmanoma pasakyti, kiek laiko darbas užtruks. Gana dažnai tenka matyti, jog programuotojai paprasčiausiai nenori įvertinti ir susiplanuoti savo darbo iš anksto. Neretai naudojamasi argumentais, jog programavimas yra pernelyg neprognozuojamas darbas, kuris priklauso nuo aibės aplinkybių. Tačiau sutikite, tikrai nenorėtumėte, jeigu jūsų namą statantis architektas pareikštų, jog dabar prognozuoti statybų eigos neįmanoma ir net neleistų žvilgterėti į namo brėžinius ir statybos planus. Bet grįžkime prie darbo planavimo, programuotojo darbo planus galima panaudoti:

  • Kaip susitarimo pagrindas dėl darbo trukmės ir kainos,
  • Kaip darbo atlikimo schema,
  • Kaip struktūra parodanti, kokie resursai bus reikalingi darbui atlikti,
  • Kaip standartinis įrankis įvertinti darbo būsenai,
  • Kaip įrašas, nurodantis kas ir kada buvo ir bus atlikta.

Aš asmeniškai, darbo planus sudarinėju dėl poros pagrindinių priežasčių: pirma, susidarius darbo planą yra žymiai lengviau įvertinti laiko resursus, reikalingus tam planui įgyvendinti ir antra, turint darbo planą daug lengviau sekti savo darbą ir susigaudyti kiek darbo atlikta ir kiek liko. Mano nuomone, darbo plano (planavimo proceso) susidarymo žingsniai turi būti tokie:

  1. Išsiaiškinti būsimos programos (užduoties) reikalavimus ir funkcionalumą, kurį reikės įgyvendinti.
  2. Suskaidyti visas užduotis, kurioms atlikti reikia daugiau nei keletos dienų, į mažesnes ir atskirai įvertinti darbo apimtį ir laiką, reikalingą kiekvienai iš šių užduočių atlikti. Aš pats stengiuosi laikytis tokių principų, jog kiekvienos užduoties trukmė turėti būtų nemažesnė nei 2 valandos ir nedidesnė nei 16 (2 darbo dienos) valandų.
  3. Atliekant kūrimo trukmės ir apimties įvertinimus, naudotis panašaus pobūdžio darbų istorine informacija.
  4. Dokumentuoti visus įvertinimus, kad vėliau juos būtų galima palyginti su realia informacija.
  5. Keičiantis kuriamos programos reikalavimams ir funkcionalumui, tuo pačiu pakeisti ir darbo planą.

Prieš sėdant planuoti, patarčiau susidaryti ir projekto – užduoties koncepcinį planą. Konceptualus planas turi abstrakčiai apibrėžti programos veikimo principus, pagrindinius elementus ir jų funkcionalumą. Šio konceptualaus plano pagalba daug lengviau susiplanuoti savo darbą ir įvertinti visus faktorius. Paskutinis dalykas, kurį norėčiau paminėti, jog dirbant neretai kinta reikalavimai užduočiai ar darbas vykdomas ne pagal planą, todėl reikėtų nepamiršti po visų pasikeitimų modifikuoti ir darbo planą, kad ir toliau būtų galima juo naudotis.

Na o kokiais principais jūs planuojate savo darbą ir ar išvis tai darote?

Asmeninė buhalterija – www.manofinansai.lt

Parašė Gintaras Slavinskas Data: Gruodis 13, 2009

Šiaip jau esu vienas iš tų, kuris mėgsta sekti savo išlaidas ir pajamas. Jau seniau rašiau apie vieną asmeninės buhalterijos įrankį – www.kurdingopinigai.lt. Šiame įraše aptariamas projektas, startavo ne taip ir senai – vasaros pabaigoje. Šiuo įrankiu naudotis yra itin paprasta ir lengva. Grafinės diagramos yra mielos akiai ir pakankamai informatyvios. Taigi, negaišdamas jūsų laiko pakalbėsiu apie šios svetainės pliusus:

  • Paprastas, greitas ir lengvas išlaidų ir pajamų įvedimas. Naudojantis kitais, panašaus pobūdžio įrankiais neretai tekdavo įvedinėti perteklinę ir realios naudos nesuteikiančią informaciją.
  • Finansinio tikslo įvedimas ir sekimas yra naudinga savybė. Kiekvienas iš mūsų visada taupo ir turi kažkokį tikslą, kam sutaupytus pinigus išleis, todėl šis įrankis padės sekti progresą, kaip sekasi taupyti užsibrėžtam tikslui.
  • Virtualūs personažai – išskirtinė šio projekto savybė. Taigi šie virtualūs personažai savo elgesiu gali atitikti bet kurį iš mūsų, todėl sekti, kaip jiems sekasi pildyti ir vykdyti savo biudžetą, bus įdomu kiekvienam. Juolab, kad jiems savo tikslų patarimais siekti padeda “SwedBank” finansų ekspertai. O šiais patarimais galime pasinaudoti ir mes.
  • Nuolatiniai straipsniai įvairiomis su šeimos biudžeto valdymu ir taupymu susijusiomis temomis.
  • Grafinės diagramos pateikiančios įvairią informaciją yra išties malonios akiai ir pakankamai informatyvios.

Na, o mano pastebėtų minusų nėra tiek jau ir daug, bet visgi juos išvardinsiu:

  • Neredaguojamas išlaidų ir pajamų kategorijų sąrašas. Išties galėčiau šią savybę priskirti ir prie pliusų, kadangi nereikia sukti galvos dėl pajamų ir išlaidų kategorijų, bet pačiam neretai teko “pagauti” save galvojant, kad vienokiai ar kitokiai išlaidų kategorijai reiktų naujos kategorijos.
  • Nėra galimybės peržiūrėti įvestų išlaidų ir pajamų pagal atskirus įrašus. Dažnai norėtųsi peržiūrėti kiek, kam ir kokią dieną buvo išleista pinigų, tačiau tokia galimybė nėra suteikta, todėl kartais tai erzina.

Tiesa sakant, šis įrankis yra sukurtas “Swedbank” iniciatyva, su kuo juos ir pasveikinčiau, nes išties neretam žmogui pagalba tvarkant savo biudžetą yra išties reikalinga. Taigi, jei ieškote būdų ir patarimų kaip sutaupyti, projektas – www.manofinansai.lt yra tai ko ieškote.