Archive for the ‘PHP’ Category

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

Posted on April 23rd, 2012 in PHP | 44 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 | 42 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 | 18 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ā!

DrupalCamp Baltics 2010 aizvadīts

Posted on September 25th, 2010 in PHP | 9 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

Google Gadgets

Posted on March 13th, 2008 in Internets, PHP, Projekti | 2 Comments »

Kas ir Google Gadget?

Google Gadgets ir miniatūri rīki, kas piedāvā dinamisku saturu, kuru ir iespējams izvietot jebkurā mājas lapā. Šādi rīki var jūtami atvieglot darbu (darāmo darbu saraksti, valūtas pārveidotāji, kalendāri, kalkulatori) vai arī vienkārši ļauj sekot līdzi jaunumiem - ziņām, blogiem, u.c. Ja uz šiem rīkiem paskatās šauri tehniski, tad tās ir minimālas tīmekļa aplikācijas, kas darbojas uz tās izstrādātāja servera, bet citās mājas lapās tiek iekļautas ar iframe palīdzību. Tā kā aplikācija lapā tiek ievietota izmantojot iframe, tad tas uzreiz garantē, ka aplikācijas izstrādātājs nevarēs nekādi kaitēt lapai, kurā šis rīks ir izvietots. To, ka šādi rīki ir populāri var secināt kaut vai apskatoties Google Gadgets lapu, kurā angļu valodā ir pievienotas gandrīz 40 000 šādas miniatūras aplikācijas.

Triviāla Gadget izveide

No kā tad īsti sastāv šāds rīks? Patiesībā viss, kas ir vajadzīgs ir viens XML fails, kurā ir nodefinēts saturs, kas ir jāparāda. Ja ar tīru HTML/CSS/JavaScript saturu kādam ir par maz, tad tā vietā, lai šajā XML failā norādītu parādāmo saturu, ir iespējams arī norādīt izpildāmo tīmekļa aplikācijas adresi. Tā, piemēram, triviālais “Hello world!” piemērs:

<?xml version="1.0" encoding="UTF-8" ?> <Module>
<ModulePrefs title="hello world example" />
<Content type="html">
<![CDATA[ Hello, world! ]]> </Content>
</Module>

Lai būtu nedaudz interesantāk, es izdomāju, ka varētu uztaisīt rīku, kas parādītu nekur.lv jaunākos pievienotos ierakstus. Te nu ar pliku HTML/CSS/JavaScript varētu būt par maz, tāpēc rīka XML failu pārveidoju par šādu:

<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="Nekur.lv news feed" scrolling="true" author_email="hi5@webtech.lv" />
<Content type="url" href="http://www.webtech.lv/projects/gadgets/nekur.lv"></Content>
</Module>

Būtībā ar to arī beidzās specifiskās lietas, kas saistītas ar mana rīka izstrādi - tālāk jau vairs atlika tikai uzrakstīt attiecīgo tīmekļa aplikāciju, kas slēpjas adresē http://www.webtech.lv/projects/gadgets/nekur.lv.

Kur likt gatavo Gadget?

Patiesībā iespējas izvietot savus garadarbus ir pietiekami plašas. Līdz ar Google Gadget API iekļaušanu lielākajos sociālajos tīklos, var droši teikt, ka ir vērts piedomāt par šādu sīku rīku izstrādi. Tā, piemēram, viens no standarta veidiem, kā izmantot izveidoto rīku ir to pievienot savai iGoogle lapai.

igooglepage.gif

Nākamais solis ir skatīties sociālo tīklu virzienā. Tā, piemēram, manis izveidotais rīks izskatās vienā no pasaules lielajiem sociālajiem tīkliem hi5.com:

hi5.gif

Metam pie malas sociālos tīklus, ir kas vēl interesantāks. Patiesībā ar Amnesty™ Generator palīdzību visus šos Google Gadget rīkus var darbināt arī Windows Vista sāna rīku joslā (sidebar). Iespaidīgi, vai ne? Visbeidzot katrs pats var šādus rīkus izvietot arī savās mājas lapās izmantojot Google piedāvāto gmodules.com servisu. Tā, piemēram, lai ievietotu manis izveidoto rīku savā lapā, ejam uz gmodules.com lapu un izvēlamies, kā izskatīsies pats rīks. Pēc tam jau saņemam HTML kodu, kuru vienkārši jāievieto savā mājas lapā. Pēc ievietošanas mājas lapā tas izskatīsies šādi:

Kas tālāk?

Tālāk mēs varam atkal atgriezties pie sociālajiem tīkliem un paskatīties Google OpenSocial virzienā, izstrādāt savus rīkus uzreiz vairākiem sociālajiem tīkliem, kuri jau izmantotu ne tikai mūsu servera resursus, bet arī konkrētā sociālā tīkla draugu tīkla un citu specifikācijā definēto funkcionalitāti. Tāpat tālāk var skatīties arī uz iespējām pašiem savā sistēmā ieviest atbalstu šādu rīku izmantošanai (skatamies un sekojam līdzi Apache Shindig projekta attīstībai). Katrā ziņā tiem, kas nodarbojas ar programmēšanu un interesējas par sociālajiem tīkliem, ir vērts ar vienu acs kaktiņu pieskatīt lietas, kas pavirzās uz priekšu šajā jomā.

Nobeigumā vēl interesenti var paspēlēties ar manu sarakstīto izejas tekstu: nekurlv-gadget.zip

Ievads Zend Framework

Posted on December 9th, 2007 in PHP | 1 Comment »

Sen sen atpakaļ pārtulkoju kādu salīdzinoši vienkāršu PHP grāmatu latviešu valodā un cilvēki to vēl līdz šim brīdim izmanto kā savu PHP apguves sākuma literatūru. Tā kā latviešu valodas PHP lietotāju skaits ir pārāk mazs, lai būtu izdevīgi rakstīt biezas grāmatas par sarežģītām ar PHP saistītām tēmām, tad vienīgais uz ko mēs varam cerēt - kāds iztulkos vai uzrakstīs kādu mazāku, taču labu un diezgan specifisku pamācību, kā izdarīt vienu vai otru lietu.

Ir jau pagājuši laiki, kad cilvēki centās katru reizi būvēt sistēmas no pašiem pamatiem. Protams ir gadījumi, kad tā ir vienīgā pareizā izvēle, taču vēl biežāk cilvēki sāk novērtēt citu veidoto darbu augļus. Tā pirms dažiem gadiem secināju, ka WordPress kā platforma ir pietiekami spēcīga, lai vairs nebūtu vērts katram bloga īpašniekam censties un rakstīt savu dzinēju. Šobrīd jau ļoti liela daļa blogu darbojas tieši uz WordPress vai kāda cita gatava produkta.

Līdzīgi ir arī ar programmēšanu. Kādā brīdī tu vienkārši saproti, ka cita darbu izmantot nemaz nav tik slikti. Pie tam ja tas vēl ir veidots izmantojot labo programmēšanas praksi, tad tas drīzāk tavam darbam piedod papildus vērtību, nevis kaunu. Tā nu dažas nedēļas atpakaļ papētīju Zend Framework un secināju, ka tas ir tā vērts, lai par to iztulkotu kādu pamācību no angļu valodas. Lai arī tulkošanai vairs nav tāda nozīme, kāda tā bija PHP programmētāja rokasgrāmatas tulkošanas laikā, manuprāt, reizi pa reizei ir vērts parūpēties, lai kaut ko varētu lasīt arī latviski.

Tiem, kurus tas varētu interesēt:

Oriģinālās pamācības angļu valodā:

Evolūcija

Posted on October 21st, 2007 in PHP | No Comments »

5 gadi

Kā nu gadījās, kā ne, sanāca parakāties pa “nesenā pagātnē” rakstītu PHP kodu. Nesenā pagātnē tiek likts pēdiņās, jo būtībā atradu savu pirmo nopietno PHP garadarbu, par kuru arī saņēmu savu pirmo oficiālo algu kā programmētājs un kuru vēlāk izmantoju, kā savu programmētāja profesionālās izglītības kvalifikācijas darbu. Paskatoties uz failu modifikācijas laiku secināju, ka pa PHP lauciņu dzīvojos nu jau vairāk, kā 5 gadus. Ja sākumā likās, ka labāk nevajadzētu skatīties, ko esmu tur sarakstījis, tad pēc brīža iedomājos, ka jāpapēta, kas tad īsti tur ir sarakstīts, ņemot vērā šībrīža zināšanas.

Kas pats dīvainākais - tās bailes nebija gluži pamatotas. Ja neskaita dažādus iesācējiem raksturīgus brīnumus un absolūtu nedomāšanu par slodzēm, tad kods priekš iesācēja ir tīri normāls. Tur ir atrodama gan ievaddatu pārbaude, gan arī cīņa pret SQL injekcijām. Tāpat arī koda rakstīšanā ir domāts par koda noformējumu ar atkāpēm (indentation), ir arī atsevišķi komentāri (kas gan šobrīd liekas salīdzinoši bezjēdzīgi). Tas, par ko man ir vislielākais prieks - jau tobrīd biju sapratis, ka kodu ir jāmēģina strukturēt - tā nu bija arī atsevišķi faili funkcijām, failu izmēri pārsvarā nepārsniedza 10KB robežu, tādējādi vienā failā atradās tikai tas, kam tur jāatrodas. Protams, ir interesanti paskatīties kā es programmēju tolaik, taču pats iedvesmojošākais fakts šajā visā ir tas, ka tā sistēma vēl joprojām darbojas nu jau vairāk kā 5 gadus bez manas līdzdalības.

Skatoties uz tik seniem garadarbiem pārņem tādas interesantas izjūtas - no vienas puses vēl šodien atceros, kā es cīnījos caurām dienām rokoties pa php.net dokumentāciju un uzmācoties gudrākiem cilvēkiem ar saviem absolūti jocīgajiem jautājumiem. No otras puses atkal paskatoties uz failu modifikācijas datumiem pārņem sajūtas, ka tas viss ir bijis tik sen, ka pat grūti vairs atcerēties par to, kāda bija PHP programmēšana tolaik.

HTMLPad 2006

Posted on March 5th, 2006 in CSS, PHP, XHTML | 7 Comments »

Nu jau vairs neatceros, cik gadus, bet liekas, ka jau veselu mūžību savā darbā izmantoju HTMLPad, lai rediģētu HTML kodu. Tas, manuprāt, ir viens no veiksmīgākajiem HTML redaktoriem, kas neskatoties uz plašo iespēju klāstu piedāvā arī apbrīnojamu ātrdarbību.

Pēdējā laikā gan manas prasības pret redaktoriem pamanījās augt straujāk, nekā paši redaktori un tāpēc nu jau vairāk kā gadu ikdienas darbā izmantoju Zend Studio. Taču pēc visa spriežot, situācija var mainīties. Pie tam var mainīties par labu mūsu pašu vietējam programmatūras izstrādātājam.

Read the rest of this entry »

Zend piedāvā savu PHP Framework publiskai apskatei

Posted on March 5th, 2006 in PHP | 2 Comments »

Jau labu laiku atpakaļ parādījās informācija, ka viens no galvenajiem PHP izstrādātājiem Zend ir sācis darbu pie PHP ietvara (framework), kas būtu balstīts uz labo programmēšanas praksi, sarežģītu problēmu vienkāršiem risinājumiem, paaugstinātu PHP scenāriju drošību un visādi citādi pretendētu uz vietu korporatīvajā PHP izstrādē. Tie, kas baidās no vārda ietvars var īpaši nesatraukties, jo ietvara izstrādātāji ir pārliecināti, ka tā izmantošana lieki nesarežģīs izstrādi un būtībā tā kļūs vēl vienkāršāka un ērtāka, nekā līdz šim.

3. martā Zend ir laidis klajā pirmo publisko sava ietvara versiju. Tā kā tā ir tikai apskates versija (preview version), tad ne uz ko pārāk daudz laikam iesākumā nevajadzētu cerēt, taču ir vērā ņemamas lietas, kas liecina, ka šis projekts varētu dzīvot gana ilgi un veiksmīgi.

Read the rest of this entry »

WYSIWYG online image crop tool

Posted on March 5th, 2006 in CSS, PHP, XHTML | 4 Comments »

Agrāk es necietu JavaScript. Iespējams, ka necietu tāpēc, ka tā likās kaut kāda mistiska un nevienam nevajadzīga programmēšanas valoda. Laikam ejot, domas mainījās. Mēs jau esam pieraduši pie WYSIWYG tipa redaktoriem interneta pārlūkā, tas vairs neliekas nekas īpašs un katrs daudz maz saprātīgs, JavaScript pārzinošs indivīds ir spējīgs uzrakstīt pats savu WYSIWYG HTML redaktoru. Līdzīgi ir arī ar cita tipa redaktoriem. Izmantojot dažu labu programmētāju veikumu ir iespējams ļoti vienkārši un ļoti īsā laikā panākt objektu pārvietošanu pa lapu ar peles palīdzību. Jā, runa iet par “Drag & Drop” funkcionalitāti mājas lapās. Izmantojot šo funkcionalitāti, kāda projekta vajadzībām izveidoju bildes apgraizīšanas rīku, kas darbojas pārlūkprogrammā.

Read the rest of this entry »