Testējamu PHP aplikāciju būvēšana

Posted on April 23rd, 2012 in PHP | 7 Comments »

PHP programmēšanas valodu pēdējā laikā cilvēki krietni aprunā. Ceļ gaismā visādas šīs valodas dīvainības un nejēdzības. Lai arī pēdējā laikā programmēju krietni mazāk, arī man ik pa laikam nākas uzdurties uz kādiem brīnumiem, kas mēdz kaitināt.

Šoreiz par labajām lietām un pareizo piegājienu programmēšanā. Nedēļas nogalē izlasīju The Grumpy Programmer’s Guide To Building Testable PHP Applications. Salīdzinoši īsa un viegli lasāma grāmata - nieka 66 lapas. Pamatā grāmatā uzsvars ir uz to, kā būvēt aplikācijas, kuras pēc tam būtu viegli testējamas un uzturamas. Ar testēšanu šeit saprotot ne tikai vienībtestēšanu, bet arī integrācijas testēšanu, funkcionālo testēšanu.

Grāmatā tiek visai labi izskaidrots Dependency Injection programmēšanas šablons (pattern), kas ļauj pēc tam arī veiksmīgi testēt katru no programmatūras komponentiem individuāli. Ja līdz šim man īsti nebija skaidrības ar ko Dependency Injection un Dependency Injection Container atšķiras no parasta Registry šablona lietošanas, tad tagad viss ir skaidrs. Tāpat grāmatā tiek stāstīts par to, kā nodrošināt, ka visas vides ir vienādas - gan izstrādes vide, uz kuras strādā katrs individuālais programmētājs, gan produkcijas vide, kurā pēc tam darbojas pati aplikācija (Vagrant, Chef, Puppet). Tiek apskatīti koda statiskās analīzes rīki (PHP Mess Detector, PHP Dead Code Detector, PHP Code Sniffer). Tāpat tiek apskatīts arī Continous Integration (PHP UnderControl, Jenkins CI) piegājiens programmatūras piegādei uz produkcijas vidi un citi pieredzējušākiem programmētājiem interesanti temati.

No grāmatas gan biju cerējis sagaidīt vairāk tieši ar testēšanu saistītas informācijas, taču arī šādā redakcijā grāmata bija pietiekami interesanta. Jāatzīst gan, ka tā ir vairāk tēmēta uz programmētājiem ar vairāku gadu pieredzi programmēšanā, jo iesācējiem vairums no apskatītajiem tematiem varētu būt visai liela Ķīnas ābece. Tas, ko visticamāk kādā brīdī pamēģināšu - izstrādes vides būvēšana izmantojot Vagrant un kādu no saistītajiem rīkiem. Visticamāk, ka būs jāpaspēlējas arī ar PHP Dead Code Detector un PHP Mess Detector, jo to izmantošana varētu būt gaužām vienkārša.

Ja grāmata jāvērtē ar zvaigznēm, tad dotu kaut kur ap 3.5. Biju gaidījis vairāk.

PHP Tester - 2 nedēļas vēlāk

Posted on April 18th, 2012 in PHP, draugiem.lv | 6 Comments »

Pirms 2 nedēļām publicēju informāciju par PHP Tester jeb maza izmēra platformu, ar kuras palīdzību testēt programmētāju zināšanas. PHP Tester bija 2 mērķi. Pirmkārt pārbaudīt man pašam kādu brīdi iekšā dzīvojušas idejas dzīvotspēju, otrkārt - pamēģināt pievērst PHP programmētāju uzmanību, lai viņi piesakās pie mums darbā draugiem.lv grupas uzņēmumos (tas arī ir iemesls, kāpēc Draugiem Pase šobrīd ir vienīgais autorizācijas mehānisms).

Iesākumā nedaudz statistikas. Kopā šajā rīkā ir autorizējušies nedaudz virs 200 cilvēkiem, ir bijuši ap 900 mēģinājumi veikt testus, no kuriem nepilni 200 ir bijuši veiksmīgi. Šo statistiku gan mazliet pabojāja fakts, ka bija kļūdas arī testēšanas sistēmā. Paskatot cauri cilvēkus, kas ir piedalījušies, atradu arī vairākus pazīstamus cilvēkus, kas ne tuvu ikdienā nenodarbojas ar PHP programmēšanu, taču ar vairumu testiem varēja tikt galā.

Nedaudz izvērstāk padomājot par idejas dzīvotspēju un potenciālu ir skaidrs, ka ideja būtu dzīvotspējīga, vienīgi ir jārēķinās, ka ilgtermiņā ir jāiegulda krietni liels darbs, lai ražotu saturu un jaunus testus. Vairāki no dalībniekiem jau ir vismaz pāris reizes pajautājuši, kad būs pieejami jauni testi.

Ar jaunu testu pievienošanu ir problēma - ir jābūt pilnīgai pārliecībai un garantijai, ka tavs izveidotais testēšanas scenārijs ir bez kļūdām, tātad pirms testu piedāvāšanas publikai, tie ir jānotestē kādā šaurākā testa grupā. Tas arī pierādījās esošajos testos. No esošajiem sešiem testiem divos es pats biju ielaidis neliela izmēra kļūdas testēšanas scenārijos, kā rezultātā uz šīm kļūdām, veidojot savus risinājumus, man norādīja dalībnieki. Tāpat arī atspēlējās pilnīgi nejauša testu datu ģenerēšana un daži no programmētājiem pamanījās datuma korektuma pārbaudes testus iziet ar ļoti vienkāršiem testa piemēriem un attiecīgi arī nepilnīgiem risinājumiem.

Visai pagrūti ir arī izdomāt kvalitatīvus, interesantus, pietiekami sarežģītus testa uzdevumus, jo PHP programmēšanas valoda ir ārkārtīgi brīva un vienu un to pašu lietu var darīt neskaitāmos dažādos veidos. Piemērs ar asociatīva masīva atslēgu samainīšanu vietām ar vērtībām. Izrādās tam ir pat speciāla iebūvēta PHP funkcija array_flip, kuru līdz šim nebiju piefiksējis. Tāpat piemērs ar 6. testa uzdevumu un MySQL vaicājumu ģenerēšanu. Komunicēt ar MySQL var izmantojot standarta mysql_* funkcijas, mysqli interfeisu, PDO bibliotēku, izmantot kādu ORM risinājumu. Katram no programmētājiem ir savs problēmu risināšanas piegājiens un pieredze ar izmantotajiem risinājumiem, turklāt dažiem no šiem risinājumiem uzdevumā minētā problēma vienkārši nav aktuāla, jo tiek risināta citā līmenī.

Raugoties no darba devēja viedokļa šāds rīks ir noderīgs un var dot ieskatu programmētāju izvēlētajos risinājumos, nemēģinot programmētājus piespiest programmēt darba intervijas laikā, kad kandidātiem nereti ir krietni paaugstināts stresa līmenis. Pie tam tiek dots ieskats arī tajā, kāds ir bijis programmētāja domu gājiens neveiksmīgajos testu mēģinājumos, cik ātri ir novērstas problēmas, u.c. Īsti nezinu vai tieši pateicoties šim rīkam, taču izskatās, ka vismaz vienu no nepieciešamajiem programmētājiem būsim atraduši, bet vakance PHP programmētājiem vēljoprojām ir aktuāla.

Ir viegli vēl pirms darba intervijas veikšanas identificēt cilvēkus, kuriem vēl ir nepieciešams krietni papildināt savas zināšanas, tāpat var viegli identificēt cilvēkus, kuriem varētu būt visai labas zināšanas par programmēšanu un ar kuriem noteikti ir vērts aprunāties klātienē.

Par tālākajiem nākotnes plāniem. Šobrīd nekādu tālāku grandiozu nākotnes plānu nav. Visticamāk, ka šo rīku izmantosim reizēs, kad gribēsim iegūt nedaudz vairāk informācijas par programmētāju pirms darba intervijas veikšanas. Šobrīd ir sagatavoti pāris jauni testa uzdevumi, kurus vispirms drošības pēc notestēšu slēgtā testa grupā un publicēšu tuvākajā laikā.

PHP Tester - zināšanu ieguves/pārbaudes risinājums PHP programmētājiem

Posted on April 4th, 2012 in PHP, Projekti | 5 Comments »

PHP Tester ir neliels eksperiments ar domu “fail early, fail often”, jeb ar minimāliem līdzekļiem un laika ieguldījumu radīts risinājums, kuram ir nepieciešams saprast publikas reakciju un nākotnes potenciālu, iespējams, globālā mērogā.

Laikā, kad mācījos vidusskolā man bija interese piedalīties dažādās ar programmēšanu saistītās aktivitātēs internetā. Tolaik bija populāras dažādas sacensības, kur organizatori bija sagatavojuši uzdevumus, dalībnieki iesūtīja savas programmas, tad tās ar automātiskiem testiem notestēja sistēma un iedeva dalībniekiem rezultātu, ko varēja salīdzināt ar citiem. Tas bija viens no maniem lielākajiem motivatoriem iemācīties programmēt un kļūt labākam par citiem programmētājiem.

Jau labu laiku biju domājis, kā šo procesu varētu pārvērst mūsdienīgākā risinājumā un uz tām programmēšanas valodām un problēmām, ar kurām šobrīd cilvēki sāk darboties. Bieži vien izpildāmas programmas sūtīšana uz serveri nozīmē arī būtiskus drošības riskus. Manā izvēlētajā PHP programmēšanas valodā tie ir pat ļoti izteikti. Tāpēc izveidoju risinājumu, kurā ar serveri notiek vien testa datu / rezultātu apmaiņa. Lai programmētāji nevarētu krāpties ar rezultātiem, testu dati tiek nejauši ģenerēti atbilstoši uzdevumu nosacījumiem katrai testēšanas reizei.

Ko var darīt ar PHP Tester?

  • Pārbaudīt un salīdzināt savas zināšanas ar citiem dalībniekiem. Šobrīd aplikācijā ir pieejami 6 testi, iebūvēts dalībnieku TOP, kurā var redzēt savu rezultātu attiecībā pret pārējiem dalībniekiem.
  • Apgūt jaunas zināšanas. Ja kāda no problēmām iepriekš nav risināta, tad pilnīgi noteikti tiks iegūtas jaunas zināšanas, šobrīd gan ar testiem vajadzētu varēt visai vieglit tikt galā jebkuram kaut nedaudz pieredzējušam PHP programmētājam. Tā kā šai sistēmai var visai viegli pievienot papildus testus, tad arī testu kopa un apgūstamo zināšanu apjoms nav ierobežots. Atliek vien izdomāt pietiekami interesantus testus.
  • Meklēt darbiniekus. Šobrīd programmētājiem, kas tiks galā ar vismaz 4 testiem tiks piedāvāts uzmeklēt kādu darba devēju Latvijā. Kāpēc lai šādu sistēmu neizmantotu arī citi uzņēmumi? Izdomā savu testu, nopublicē sistēmā un saki, ka runāsi tikai ar tiem, kas būs šo testu izpildījuši. Vai arī vienkārši saki, ka tevi interesē tikai darbinieki, kas šajā sistēmā būs izpildījuši vismaz X testus. Papildus - servera pusē ir iespējams redzēt programmētāju izmantotos risinājumus (programmas kods tiek sūtīts līdzi uz serveri). Tādējādi darba devējs var novērtēt, cik saprātīgi cilvēks ir programmējis un kāds tieši ir bijis izvēlētais risinājums.

Kāpēc tikai PHP?

Nav neviena sakarīga iemesla, kāpēc tam visam vajadzētu aprobežoties tikai ar PHP programmēšanas valodu. Tikpat labi var izmantot jebkuru citu programmēšanas valodu, kas spēj sarunāties ar izveidoto serveri un apmainīties ar datiem JSON formātā.

Ja kādam ir interese padarīt šos uzdevumus pieejamus arī citām programmēšanas valodām, tad varu piepalīdzēt ar informāciju, lai tiktu radītas klientu bibliotēkas citām valodām. Kontakti: ingus@webtech.lv.

Komentāros droši var padalīties ar ieteikumiem, kā arī interesantiem testiem, kurus pievienot sistēmai.

Esi gatavs pārspēt kādu? Dodies uz PHP Tester un pierādi, ka vari tikt galā!

Kas ir Raspberry Pi un kāpēc tam ir vērts pievērst uzmanību?

Posted on March 9th, 2012 in Pārdomas | 8 Comments »

Agrāk datorus lietoja tikai cilvēki, kam bija dziļi tehniskas zināšanas. Tehnoloģijas attīstījās un datoriem pievērsās arvien mazāk un mazāk tehniski cilvēki. Ja pirmsākumos datorus spēja lietot cilvēki, kas pārzināja bitu operācijas, elektroniku, datoru arhitektūru un citas interesantas lietas, tad laikam ejot un tehnoloģijām attīstoties, esam tikuši tik tālu, ka šobrīd praktiski jebkuru datoru var lietot cilvēks bez īpašas sagatavošanās. Tajā skaitā pat pāris gadus veci bērni mierīgi tiek galā ar iPad, iPhone, Android lietotāja saskarnēm. Liekas, ka pat nav vērts pieminēt, kāda bija datoru jauda un pieejamās atmiņas apjoms pirms 10 gadiem un kāds tas ir tagad.

Tas viss protams ir labi, taču ja visi to vien darīs, kā lietos šīs ārkārtīgi ērtās un vienkāršās saskarnes, nesatrauksies par to, cik lietderīgi uzrakstītā programmatūra izmanto resursus, tad mēs ātri vien varam aizbraukt grāvī.

Laikā, kad es pievērsos programmēšanai tā bija visai loģiska izvēle - interneta pieejamība bija minimāla vai teju nekāda (aizmirstiet par Youtube, sociālajiem tīkliem, blogiem, utt), programmatūras un pašu datoru cenas bija astronomiskas, pirātiskos diskus varēja dabūt tikai braucot 100km līdz Rīgai, datori bija ārkārtīgi mazjaudīgi, reti pieejami un arī nekāda dižā spēļu spēlēšana nesanāca. Kas atliek? Radīt kaut ko pašam.

Cik daudz ir jauniešu, kas šobrīd spēj pretoties laika nosišanas kārdinājumam un spēj pievērsties kaut kā radīšanai? Cik daudzi jaunieši vispār pašmācībā mācoties programmēt saprot, ko nozīmē programmatūras ātrdarbība un ko nozīmē aizņemtās atmiņas apjoms? Liekas, ka arvien mazāk un tikai retais saprot, ko patiesībā nozīmē ierobežoti resursi.

Te nu sākas labās ziņas. Izskatās, ka cilvēki Anglijā ir izdomājuši, kā šo problēmu risināt un šīs problēmas iespējamais risinājums saucas Raspberry Pi.

Raspberry Pi ir

  • pilnvērtīgs maza izmēra dators, kas atbilst apmēram kredītkartes izmēram, uz tā var darbināt Linux operētājsistēmu ar grafisko saskarni
  • ārkārtīgi lēts. Tas maksā $25 vai $35 atkarībā no konfigurācijas (ar / bez tīkla savienojuma)
  • multimediju dators, kas spēj brīvi rādīt augstas izšķirtspējas video (1080p)
  • dators, kuru var pa taisno pieslēgt pat jebkuram +/- modernam televizoram
  • dators, kas spēj darboties pat no dažām AA tipa baterijām - ārkārtīgi energo efektīvs
  • dators, kas ir primāri radīts, lai ar to apgūtu programmēšanu un elektroniku
  • dators, kuram ir speciāli paredzētas vietas, lai to varētu paplašināt ar elektronikas komponentiem, piemēram, dažādiem sensoriem
  • dators, kas darbojas ar atvērtā koda programmatūru

Galvenais Raspberry Pi radītāju mērķis ir pievērst cilvēkus programmēšanai un izpratnei par datoriem, resursu ierobežojumu. Lai samazinātu pašas iekārtas cenu, viņi ir nevis dibinājuši uzņēmumu, bet produktu rada bezpeļņas organizācijas ietvaros. Šis fakts savukārt būtiski palīdz sarunās ar komponentu piegādātājiem.

Līdzīgi, kā dažus gadu desmitus atpakaļ, kad cilvēki savās garāžās būvēja dažādus elektronikas brīnumus, tā arī tagad cilvēkiem būs pieejams lēts, pilnvērtīgs un galvenokārt mūsdienīgs rīks eksperimentiem.

Viens no svarīgākajiem momentiem ir šī datora cena. Tas kļūst pieejams pat tiem, kam ar finansēm iet ļoti grūti. Ja tu iedosi bērnam šo datoru kā rīku ar ko spēlēties, tad ja arī kaut kas saplīsīs, tie būs nieka 35 dolāri. Tikpat maksā salīdzinoši vienkāršas radiovadāmās rotaļlietas.

Es atceros, kā pats pirmās reizes tiku pie tūkstošus vērta datora mammas darbā un kā man trīcēja rokas, kad nemācēju tikt ārā no kādas programmas. Zemā cena nozīmē, ka tev nav jābaidās par to, ka tu varētu kaut ko izdarīt nepareizi. Tu vari droši eksperimentēt. Tāpat vecākiem vairs nav jābaidās, ka bērns nejauši izdzēsīs kādu vērtīgu informāciju no mājas datora.

Interesanti, ka šo produktu atbalsta arī lielās korporācijas, piemēram, Nokia savu Qt izstrādes rīku ir pielāgojuši tam, lai aplikācijas, kas ar to ir radītas varētu darbināt arī uz Raspberry Pi.

Raspberry Pi iegāde
Ņemot vērā lielo publikas interesi un pirmās partijas nelielo izmēru (tikai 10 000 vienību). Visi līdz šim saražotie Raspberry Pi tika izpārdoti jau neilgi pēc tirdzniecības uzsākšanas (dažu stundu laikā) Turklāt šobrīd pastāv ierobežojums, ka vienai personai pārdod tikai vienu iekārtu, lai sasniegtu maksimālu personu skaitu, kas tiek pie iekārtām.

Es savu Raspberry Pi pasūtīju nedaudz vēlāk un to sola piegādāt ap 14. maiju, kas ir aptuveni 2 mēneši. Iespējams, ka šobrīd piegādes rinda ir izstiepusies vēl garāka, jo interese ir tiešām milzīga.

Lai nu kā, manuprāt ir vērts šim produktam pievērst uzmanību un kaut vai paspēlēties ar to, lai radītu kaut ko interesantu hobija līmenī. Man pašam ir plāns ar to paspēlēties kaut kādas mājas elektronikas vadības virzienā, iespējams, apgūt kādu jaunu programmēšanas valodu (iespējams tas varētu būt īstais iemesls, lai apgūtu Python) un gan jau radīsies vēl visādas interesantas idejas tad, kad tikšu pie paša datora.

Vairāk informācijas par pašu produktu: http://www.raspberrypi.org.

Un arī video:

Kā ievietot “ieteikt draugiem” pogas savā wordpress.com dienasgrāmatā?

Posted on December 13th, 2010 in draugiem.lv | 6 Comments »

Neliela video-pamācība, kā savā wordpress.com dienasgrāmatā ievietot “ieteikt draugiem” pogas.

Dodies uz wordpress.com, autorizējies ar savu lietotāja vārdu un paroli, dodies uz savas dienasgrāmatas uzstādījumu lapu, atver “Settings -> Sharing”.

Šeit var redzēt visas wordpress.com piedāvātās iespējas, kā var dalīties ar saturu. Tā kā pagaidām draugiem.lv runā sadaļa vēl šeit nerādās, tad tā ir jāpievieno pašam. Jāklikšķina uz “Add a new service”.

Izlec logs, kurā var redzēt vairākus datu ievades laukus:

  1. Service name - servisa nosaukums, kuru var brīvi izvēlēties. Var ierakstīt, kaut vai “draugiem.lv”
  2. Sharing URL - saite, uz kuru tiks pārsūtīts lietotājs. Ir ļoti svarīgi šeit precīzi ierakstīt šādu tekstu (drošāk būs izmantot copy&paste):
    http://www.draugiem.lv/say/ext/add.php?link=%post_full_url%&title=%post_title%&nopopup=1
  3. Icon URL - saite uz ikonu. Ieteicams izmantot standarta draugiem.lv ikonu:
    http://www.draugiem.lv/img/logo16x16.png

Kad forma ir aizpildīta, spiežam “create share”. Tikko izveidotajam servisam “draugiem.lv” vajadzētu parādīties sarakstā pie visiem pārējiem servisiem. Tagad atliek vien to ievilkt ar peli blokā nedaudz zemāk. Video ir redzams, kur jāievelk jaunizveidotais serviss, lai tas parādītos zem “share” pogas, ievelkot to vienkārši blakus lielajā laukumā, kur ir redzams teksts “Drag and drop available services here”, tā būs redzama bez papildus pogas.

Kad viss ir izdarīts, spiežam uz pogas “Save changes” un dodamies aplūkot rezultātu uz savu dienasgrāmatu.

Amazon Kindle 3

Posted on October 16th, 2010 in Pārdomas | 79 Comments »

Ja kāds man, piemēram, vidusskolā būtu teicis, ka es lasīšu grāmatas, es uz viņu paskatītos kā uz stulbu. Jā, apmēram tāda attieksme manī ir dzīvojusi diezgan ilgi. Pēc vidusskolas beigšanas mēdzu šad tad palasīt tomēr kādu speciālo literatūru - par programmēšanu un citām līdzīgām lietām, jo tajā laikā interneta pieejamība bija salīdzinoši vāja, bija arī pierasts, ka jauno lietu apguve notiek izmantojot grāmatas. Nekādi pārāk regulārie grāmatu lasīšanas ieradumi tomēr man izveidojušies nebija.

Pēdējā laikā viss pamazām pa nelieliem soļiem mainās - līdz ar ģimenes pieaugumu iegādājos bariņu ar grāmatām par dvīņu audzināšanu un prātā nesajukšanu viņus audzinot, tad sekoja vēl pāris grāmatas no gudrajiem vīriem (Guy Kawasaki - The art of the start, Jason Fried - Rework, Chip Heath & Dan heath - Switch: How to Change Things When Change Is Hard, u.c.). Jāatzīst, ka grāmatu iegāde ārzemēs nav no tiem lētākajiem priekiem, bieži vien nākas arī kādu brīdi pagaidīt uz piegādi. Kādu brīdi biju arī domājis par Amazon Kindle vai kāda cita e-grāmatu lasītāja iegādi, taču uz reālu pirkumu nebiju saņēmies.

Kādu rītu pamanīju kolēģa ziņu draugiem.lv runā sadaļā par pieredzi ar Kindle. Tipu, tapu un jau turēju savās rokās Kindle 3 lasītāju. Pirmais iespaids bija vienkārši “wow”. Es biju lasījis par e-ink ekrāniem, par to cik tie ir tuvi papīra izjūtām, bet vairāk to laidu gar ausīm kā kārtējo mārketinga pasākumu. Brīdī, kad sanāca pašam savām acīm apskatīt, divu domu nebija - tas ir lielisks. Vēl lieliskāku šo produktu padara pāris apstākļu sakritības:

  1. tā cena laika gaitā ir būtiski sarukusi un jaunajam modelim ar iebūvētu WiFi savienojumu, cena ir vien $139, kas pārvēršot latos tuvu 70 latiem. Pierēķinot piegādi ar kurjerpastu sanāk iekļauties aptuveni 85 latos.
  2. Latvijas likumdošana nosaka, ka muitojamas un ar nodokļiem apliekamas ir tikai preces, kas pārsniedz 150 EUR vērtību. Kindle 3 ar visu piegādi iekļaujas šajās robežās.

Sarēķinot kopā Kindle 3 cenu ar piegādi, man tas izmaksāja precīzi 85 latus, kas rupji rēķinot ir tas pats, kas iegādāties aptuveni 5 parastās grāmatas turpat Amazon.com. Viena no lieliskākajām Kindle funkcijām ir iespēja vienkārši iekopēt tajā PDF failus un tos lasīt. Uz datora izlasīt garāku PDF failu traucē visi mūžīgie uzmanības novērsēji. Sociālie tīkli, e-pasts, Skype, citi komunikācijas un izklaides rīki. Ja tu paņem rokās Kindle, tad nekas netraucē pašu galveno - lasīšanu.

Ņemot vērā, ka Kindle ekrānam nav nekāda “backlight” jeb izstarojošas gaismas, tad par apgaismojumu ir jāparūpējas pašam. Dienasgaismā lasīšana ir īpaši patīkama. Pie mākslīgā apgaismojuma ir nepieciešams mazliet vairāk gaismas, nekā tas ir ar parastu papīra grāmatu. Patiesībā tieši izstarojošās gaismas trūkums ir tas, kas ļauj lasīt ilgstoši un bez acu noguruma. Lasot uz datora ātri vien iestājas pamatīgs nogurums, lasot Kindle tādu noguruma sajūtu neesmu manījis arī pēc 3 stundu nepārtrauktas lasīšanas.

Liekas, ka laika sprīdī, kopš esmu saņēmis savu Kindle divas nedēļas atpakaļ, esmu izlasījis vairāk, nekā pēdējo pāris gadu laikā kopā ņemot. Lasīšana pēkšņi ir kļuvusi eleganti vienkārša. Tu pamani kādu e-grāmatu, kuru būtu vērts izlasīt, lejupielādē to savā Kindle, ķeries pie lasīšanas. Kindle var sakrāmēt kaudzi ar grāmatām, kā rezultātā tu jebkurā brīdī vari palasīt kaut ko domu lidojumam atbilstošu, bet līdzi nēsā mazāk kā vienas standarta grāmatas svaru. Arī baterijas darbības laiks ir vienkārši lielisks - kopš Kindle pirkšanas vēl neesmu to lādējis, baterijas indikators šobrīd rāda aptuveni pusi. Sanāk, ka ar maniem lasīšanas paradumiem lasītājs varētu bez uzlādes būt lietojams aptuveni mēnesi, līdzīgs laiks, liekas, bija minēts arī kaut kur Kindle aprakstos.

Man īsti nav saprotama digitālo grāmatu cenu politika, jo bieži vien ir pat situācijas, kad papīra grāmata ir lētāka par tās digitālo versiju. Vismaz šobrīd es psiholoģiski neesmu gatavs iegādāties grāmatu digitālās versijas par tādu pašu cenu, kā papīra versiju. No otras puses, iespējams, ka ir vērts samaksāt tādu pašu naudu par servisu, kura rezultātā grāmatas digitālo versiju tu vari izlasīt jau pa to laiku, kamēr papīra versijas grāmata vēl guļ kādā noliktavas plauktā vai kurjerpasta automobīlī. Šis liekas ir stāsts par manu pirmo oficiāli iegādāto e-grāmatu “Web Form Design: Filling in the Blanks“, kuru es iegādājos izdevniecības lapā par $9 ceturtdienā, bet šodien jau pabeidzu lasīt. Tiesa šai grāmatai digitālā versija bija būtiski lētāka par papīra versiju.

Katrā ziņā, ja ir vēlme iegādāties e-grāmatu lasītāju, manuprāt, vairs nav neviena iemesla, lai to atliktu uz vēlāku laiku. Vismaz Kindle šobrīd strādā vienkārši lieliski, arī tā cena ir pat ļoti pieejama Latvijas iedzīvotājiem.

DrupalCamp Baltics 2010 aizvadīts

Posted on September 25th, 2010 in PHP | 3 Comments »

Praktiski pašā pēdējā brīdī (aptuveni trešdien) uzzināju par šajā nedēļas nogalē notiekošu pasākumu, kas veltīts Drupal izstrādātājiem un interesentiem. Tā kā neesmu manījis Latvijā PHP izstrādātājiem veltītas konferences vai kā tās tagad mēģina padarīt neoficiālākas, saucot par “campiem”, tad nolēmu piedalīties. Mana pieredze ar Drupal ir visai neliela. Savulaik esmu nomigrējis vienu savu Wordpress blogu uz Drupal ar domu, ka tā varētu pārtapt par komūnas lapu ar daudziem blogotājiem, forumiem un visu citu. Dažādu apstākļu sakritības dēļ gan projekts jau pāris gadus ir pamests novārtā un spambotu apsēsts. Lai nu kā, interese par Drupal, kā izstrādes platformu man nav īpaši mazinājusies. Pietiks priekšvārdam, par pašu pasākumu.

Ierados norises vietā, SSE Riga, mani laipni sagaidīja, iedeva pierakstāmos materiālus, pasākuma programmu ar dalījumu pa auditorijām, tiku arī pie konferences T-krekla.

Sākumā mazliet sabijos par to, ka manas Drupal zināšanas varētu būt par īsu, lai varētu tikt līdzi pārējiem dalībniekiem. Tieši šī iemesla dēļ izvēlējos klausīties vairāk tās lietas, kas būtu piemērotas Drupal iesācējiem un manai zināšanu bagāžai tīmekļa lietu izstrādē:

  • Starting with Drupal: Installation, building with CCK & Views (James Nesbitt) - ievads Drupal, uzstādīšanas nianses, konfigurēšanas nianses, produkcijas, staging, izstrādes vides, utt.
  • Mapping with Drupal (Artis Bajārs) - Google Maps integrācija Drupal, projekti ar lielu ģeogrāfisko objektu skaitu un atlasēm
  • Drupal module development (Domas Monkus) - ievads Drupal moduļu sistēmā, tās iespējās.
  • Advanced AJAX with less Javascript (Miķelis Zaļais) - prezentācija ar praktisku ievirzi Drupal moduļu izstrādē, standarta darbību padarīšana par AJAX darbībām, izstrādātājiem domātie rīki
  • From a html/css template to a Drupal theme (Hans Rossel) - ievads Drupal tēmu izstrādē, visai praktiska prezentācija, kā no internetā atrasta bezmaksas šablona izveidot Drupal tēmu

Lielos vilcienos attiecīgo lekciju noklausīšanās bija diezgan vērtīga, lai saprastu, kā drupal strādā, kā tas tiek izstrādāts un kā es pats varu sākt izmantot tā paplašināšanas un izstrādes iespējas. Ja pirms pasākuma Drupal man asociējās ar sarežģīti administrējamu satura pārvaldības sistēmu, tad tagad es to vairāk uzskatu par izstrādes platformu, kas tā patiesībā arī ir.

Man kā praktiskam cilvēkam vislabāk patika Miķeļa Zaļā sniegtais ieskats Drupal AJAX/JavaScript, kas iekļāva ne tikai informāciju par JavaScript/AJAX lietām, bet arī pamata lietas par Drupal moduļu izstrādi. Tā kā tieši pirms šīs lekcijas biju klausījies Domas Monkus prezentāciju par moduļu izstrādi, tad šī prezentācija pat zināmā mērā papildināja iepriekšējo.

Labas bija arī James Nesbitt un Hans Rossel prezentācijas, attiecīgi par Drupal tēmu izgatavošanu no gatava HTML/CSS šablona un vispārējs ievads Drupal un izstrādē ar Drupal. Vienīgais, kas mani no dzirdētā līdz galam neaizķēra, bija Arta Bajāra stāsts par karšu moduļu lietošanu. Visticamāk tādēļ, ka es pārāk maz zināju par pieminētajiem moduļiem un Drupal izstrādi kā tādu. Droši vien man mazliet traucēja arī zināšanu bagāža par šāda tipa servisu izstrādi no nulles, neizmantojot Drupal un Arta pieminēto Apache Solr, tā vietā izmantojot Sphinx meklētāju.

Noslēgumā jāsaka liels paldies par šāda pasākuma organizēšanu. Iespējams, ka dalībnieku būtu vēl vairāk, ja informācija par šo pasākumu būtu parādījusies publiskajā telpā kādu brīdi agrāk. Turklāt paziņojumā par pasākumu noteikti vajadzēja minēt, ka gaidīti ir ne tikai Drupal lietpratēji, bet arī vienkārši interesenti.

DrupalCamp Baltics 2010 lapa

Dtweet 2.0

Posted on August 23rd, 2010 in Internets, Projekti | 3 Comments »

Kopš pašas pirmās Dtweet versijas ir pagājis jau vairāk kā gads. Tolaik tas tika veidots kā projekts, lai nodemonstrētu draugiem.lv api iespējas. Laiks gāja uz priekšu, bet dtweet mazliet bija aizķēries savā attīstības fāzē. Kādu laiku atpakaļ lietotāju ērtībām pievienoju iespēju autorizēties ar draugiem.lv pasi, lai nebūtu jācīnās ar parolēm, e-pastiem un visu pārējo. Taču dtweet lietošana joprojām bija salīdzinoši sarežģīta - draugiem.lv aplikāciju apstiprināšanas mehānisms vienkāršajam lietotājam ir salīdzinoši nesaprotams. Ik pa laikam ienāca arī jautājumi no lietotājiem par jaunām iespējām. Tā nu nolēmu, ka ir vairākas būtiskas lietas, kas ir jāsakārto un ķēros pie pārbūves darbiem. Un te nu tas ir - jaunais dtweet.lv ir uzbūvēts kā draugiem.lv integrētā aplikācija, kas nozīmē, ka vairs nevienā mirklī nav jācīnās ar aplikāciju apstiprināšanu - tikko tu ieej aplikācijā, tev ir jāatbild uz jautājumu par to, vai atļausi aplikācijai piekļūt saviem datiem un viss. Tālāk jau vairs tikai norādi savu Twitter vārdu, kura datus gribēsi publicēt draugiem.lv un viss.

dtweet20

Papildus ir ieviesta arī sinhronizācija otrā virzienā - publicējot ierakstus draugiem.lv pusē, tie tiks publicēti Twitter plūsmā. Tiem, kas aktīvi izmanto draugiem.lv runā un Twitter, šī varētu būt īpaši vērtīga iespēja. Jāpiezīmē, ka vienlaikus ir iespējams lietot abas sinhronizācijas un ieraksti publicējas tikai vienā virzienā. Tas nozīmē, ka ierakstot Twitter, sinhronizējot uz draugiem.lv ar otru sinhronizācijas virzienu ieraksts vairs atkārtoti netiks publicēts.

Vēl daži jaunumi:

  • Vairs nav jānorāda Twitter lietotāja vārds un parole. Virzienā Twitter -> draugiem pietiek ar vienkāršu Twitter vārda ierakstīšanu, otrā virzienā darbojas oAuth autorizācija, kas arī neprasa lietotāja vārda un paroles atklāšanu.
  • Tagad vienam draugiem.lv runā kontam var piesaistīt vairākus Twitter kontus un otrādi. Ieraksti publicēsies visos saistītajos profilos

Noslēgumā neliels grafiks par to, kā aug no twitter pārpublicēto ierakstu skaits:

Kad uznāks iedvesma, pielikšu arī sen prasīto iespēju sinhronizēt tikai tos ierakstus, kas satur noteiktu Twitter “hashtag”. Lai veicas lietojot!

Draugiem.lv “iesaki draugiem” poga ar ieteicēju skaitu

Posted on July 28th, 2010 in draugiem.lv | 17 Comments »

Draugiem.lv klusiņām ieviesuši resursa ieteikšanas pogu komplektā ar ieteikušo cilvēku skaita attēlošanu. Daudzos ārzemju resursos šis mehānisms ir darbojies jau labu laiku (tweetmeme, rebuzz, digg, u.c.). Pievienojot pogai jau ieteikušo cilvēku skaitu diezgan bieži nostrādā psiholoģiskais efekts - “ja jau citi iesaka, tad tas ir forši, es arī ieteikšu”. Pogas lietošana un ievietošana ir gaužām vienkārša - atliek tikai ievietot HTML iframe elementu ar pāris parametriem:

title
Iesakāmā resursa virsraksts (draugiem.lv “Runā” tiks attēlots kā saites teksts)
url
Iesakāmā resursa adrese (nenorādot šo parametru, tiks paņemta lapas adrese no HTTP referrer)
titlePrefix
Neobligāts parametrs, teksts, kas tiks attēlots pirms klikšķināmās saites (nenorādot šo parametru, tiks ņemta iesakāmās saites domēna vērtība)
<iframe height="20" width="84" frameborder="0" src="http://www.draugiem.lv/say/ext/like.php?title=Saites%20teksts&url=http://www.tava.lapa.lv/saite/uz/resursu&titlePrefix=tava.lapa.lv"></iframe>

Rezultātā tas viss izskatās šādi:

Starp citu pēc statistikas datiem, šobrīd vairāki Latvijas interneta resursi diezgan būtisku daļu no savas auditorijas savāc tieši ar draugiem.lv starpniecību un draugu ieteikumiem. Šāda veida ieteikuma poga varētu vēl vairāk motivēt cilvēkus ieteikt saturu.

Klīst runas, ka drīzumā būs vēlviens interesants lapās ievietojamais elements no draugiem.lv puses. Gaidam!

dtweet.lv statistika par 5 mēnešiem

Posted on November 3rd, 2009 in Projekti | 3 Comments »

Lai arī nekādas mārketinga aktivitātes neesmu izveicis, interesanti, ka oktobrī ir vērojams diezgan būtisks pārpublicēto tvītu skaita pieaugums (35%). Nedaudz pasekojot līdzi lietotājiem, redzam, ka dtweet.lv izmanto arī tādi twitter lietotāji kā dinamofans, bkventspils, grupacosmos, cvlv un citi. Vēl tikai grafiks dinamikas atspoguļošanai:

dtweet.lv ir serviss, kas ļauj tev sasaistīt savu Twitter.com profilu ar jebkuru no tev pieejamajiem Draugiem.lv “Runā” sadaļas profiliem. Tajā skaitā ārējiem profiliem. Ko tas nozīmē? Ja tu esi aktīvs Twitter lietotājs un gribi bez liekām pūlēm sasniegt arī Draugiem.lv auditoriju, tad var vienkārši sasaistīt savus kontus un visi ziņojumi (pagaidām atbildes neapstrādājam) tiks publicēti arī atbilstošajā piesaistītajā Draugiem.lv “Runā” profilā.