PHP utml.

Par outsourcingu uz Indiju – stāsts no dzīves

4

Kādu laiku iepriekš biju rakstījis par Web projektu outsourcingu uz eksotiskām valstīm. Ja iepriekšējais teksts bija tikai mans apcerējums par attiecīgo tēmu, tad tagad piedāvāju izlasīt kāda reāla Latvijas iedzīvotāja pieredzi ar Web projektu outsourcingu uz Indiju. Pārpublicēts šeit no tavsdarbs.lv. Un jā – tiku saņēmis autora atļauju.

Elle un Indija. Pirmā sērija

Indija. Elle. Kas tur nav bijis – nespēj to ne iztēloties ne aptvert. Es ari tur neesmu bijusi, taču, man pat laikam ir iemesls stipri negribēt.

(more…)

Izvilkums no Google Reader par tēmu PHP, CSS, Ajax, Web

1

Raksta par jaunumiem, kuri tiks ieviesti PHP5.3 un PHP6 komentāros minēju, ka nopublicēšu sarakstu ar saitēm uz blogiem, kurus regulāri lasu un kuri ir par tēmu PHP, CSS, Ajax, Web utml. Nedaudz papētot Google Reader attiecīgo sadaļu atlasīju 24 saites, kuras tad redzamas turpinājumā. Lielākā daļa no saitēm ved uz nevis blogiem, bet palieliem resursiem par attiecīgajām tēmām. Ja arī tu regulāri lasi līdzīgas tematikas Web lapas, turklāt tās nebūs pieminēti manā sarakstā, lūdzu dalies ar saitēm komentāros vai savā blogā. (more…)

“Zend Framework in Action” review

1

Zend Framework in Action Īsti nezinu, kā tālāku tekstu nosaukt. Apskats, recenzija vai vēl kā citādi. Lai nu kā, esmu izlasījis grāmatu “Zend Framework in Action” (ZFiA) un vēlos padalīties ar informāciju par to, kas kurā grāmatas nodaļā rakstīts, kā arī kas manuprāt no rakstītā ir īpaši noderīgs un kas nav pateikts. Uzreiz jāpiebilst, ka grāmatas versija, kuru lasīju bija “Nepabeigts melnraksts” stadijā. Taču neskatoties uz to, ka līdz grāmatas izdošanas brīdim tajā var notikt nelieli papildinājumi, pamatlietas nemainīsies. Brīdinu – apraksts sanācis nedaudz pārāk garš.

Kā jau liecina nosaukums, ZFiA ir grāmata par Zend Framework. Šo grāmatu sarakstījuši 3 autori: Rob Allen, Nick Lo un Steven Brown. Visi savas jomas lieli speciālisti. Grāmata ir sadalīta 3 daļās un tai ir divi pielikumi. 3 lielās daļas satur kopā 16 mazākas sadaļas, kuras aptver visus būtiskākos Zend Framework laukus. Šobrīd grāmatai ir 279lpp, bet tā kā izmantotais fonts ir visai smalks, tad iekļautās informācijas apjoms ir liels. (more…)

Drīzumā grāmatas Zend Framework in Action recenzija

0

Zend Framework in Action Kā jau būsiet pamanījuši, esmu nostājies uz Zend Framework apgūšanas ceļa. Kādu laiku atpakaļ biju pa kreisajiem ceļiem sameklējis grāmatas Zend Framework in Action stipri pavecu versiju. Jautāsiet – kā var būt paveca versija? Ļoti vienkārši. Šī grāmata joprojām ir tapšanas stadijā un tai tiek pieslīpētas pēdējās nodaļas. Savukārt tā versija, kuru biju ieguvis es, bija labi ja puse no tā, kas ir tagad uzrakstīts. Turklāt vecajā versijā bija arī vairākas kļūdas. Taču nu es esmu ieguvis pašu svaigāko grāmatas versiju (neejot kreisos ceļus), kuru tagad cītīgi lasu. Kad lasīšana būs pabeigta, uzrakstīšu recenziju, iekļaujot tajā informāciju par to, kas grāmatā atrodams, kādi iespaidi rodas grāmatu lasot (pozitīvi, negatīvi) utt. Tāpēc, ja jums ir vēlme uzzināt sīkākus iespaidus par grāmatu, neaizmirstiet šeit iegriezties pēc kāda laika. Kā arī – ja jums ir kādi īpaši jautājumi par grāmatu un tajā atrodamajām lietām, droši rakstiet komentāros zem šī raksta. Ja jautājumi būs, tad uz daļu atbildēšu komentāros, bet uz daļu pie recenzijas (atkarībā no tā kāda tipa jautājumi tiks uzdoti).

Kas jauns gaidāms PHP6 un PHP5.3 ?

6

Jau vairākas reizes esmu lasījis dažādus aprakstus par to, kas jauns gaidāms PHP6 un PHP5.3. Pēc katras šādas reizes bija radusies vēlme uzskaitīt jaunievedumus un pastāstīt tos tiem, kas neko par jaunievedumiem nav dzirdējuši vai dzirdējuši pavirši. Beidzot saņēmos.

IBM.com ir nopublicēts raksts “The future of PHP“, kurā smuki uzskaitītas lietas, kuras parādīsies jaunajās PHP versijās, kā arī kuras pazudīs. Es viņas uzskaitīšu, bet ja gribat palasīt sīkāk, kā arī redzēt dažus īsus koda piemērus, tad dodieties uz augstāk pieminēto rakstu.

Jaunievedumi PHP6

Uzlabots Unicode atbalsts. Vairākās kodola funkcijās būs nodrošināta iespēja darboties ar Unicode stringiem (virknēm).

Namespace atbalsts. Šī ir lieta, kuru gaida daudzi, kas aktīvi izmanto OOP principus savos skriptos. Namespace atbalsts nodrošina to, ka turpmāk vairs nebūs nepieciešams domāt par to, ka jāizmanto unikāli klašu nosaukumi. T.i. ja agrāk kāds bija uzrakstījis klasi PDF_generator un šo klasi jūs jau savos kodos izmantojāt, bet gribējāt izveidot savu implementāciju ar tādu pašu nosaukumu, tad jūs to nevarējāt izdarīt. Bija jātaisa klasi liekot tās nosaukumam kādu prefiksu vai pavisam citādu nosaukumu. Savukārt, ja ir Namespace atbalsts, tad nav problēmu izmanto kāda cita rakstītu klasi PDF_generator un jūsu paša rakstītu klasi PDF_generator. Iespējams, ka izteicos neskaidri, tāpēc, ja nav skaidrības kas ir Namespaces iesaku izlasīt šo rakstu. Nav gan labākais raksts, bet man kaut kur pazudusi saite uz vienu citu rakstu. Ja atradīšu – piemetīšu vēlāk klāt.

SOAP atbalsts būs iespējots pēc noklusējuma (PHP5 jau ir SOAP paplašinājums, bet tas pēc noklusējuma nav aktivizēts). SOAP ir protokols ar kura palīdzību savā starpā var sarunāties dažādas programmēšanas valodas.

XMLReader un XMLWriter atbalsts kodolā pēc noklusējuma. Kaut gan PHP manuālī teikts, ka XMLWriter atbalst kodolā ir jau tagad un nav speciāli jāpieinstalē, pretstatā XMLReader. Tā, ka šis mani nedaudz mulsina.

Lietas kuras no PHP pazudīs
magic_quotes
register_globals
register_long_arrays
safe_mode

Sīkāk šīs četras lietas neaprakstīšu, jo ja programmējat PHP, tad zināsiet par ko iet runa.

Pazudīs ASP tipa PHP tagu atbalsts. Tātad ja izmantojāt savos skriptos <% %>, tad pienācis laiks aizstāt tos ar <?php ?>.

Pazudīs FreeType1 un GD1 bibliotēku atbalsts.

Arī ereg vairs netiks atbalstīts, tā vietā jāizmanto preg funkcijas. Tātad ereg() un eregi() vietā preg_match(), bet ereg_replace() un ereg_replacei() vietā jāizmanto preg_replace().

Daļa no PHP6 jaunievedumiem tiks ieviesti arī PHP5.3.

Piemēram, Namespace atbalsts un XMLReader un XMLWriter būs kodolā pēc noklusējuma.

Bez jaunām funkcijām PHP5.3 būs arī ievērojams ātrdarbības pieaugums salīdzinājumā ar PHP 5.2 (līdz pat 30%).

Ja es kaut ko aizmirsu vai kaut kur saputrojos – labojiet komentāros.

Lapa par Zend Framework

0

Es pēdējās laikā mēģinu saprast kā notiek lietas pasaulē, kuru dēvē par Zend Framework. Teikšu kā ir – visai grūti un negribīgi šīs pasaules likumi padodas manai saprašanai. Iepriekš nebiju strādājis pēc kādiem PHP patterniem, tāpēc ir visai grūti pierast pie MVC, singleton utt. Turklāt Zend Framework ir sarakstīts izmantojot augsta līmeņa objektorientētās programmēšanas principus (vismaz man tā šķiet). Ar augsta līmeņa es domāju tādu, kur iekļauti teju vai visi objektorientētās programmēšanas principi. Tā kā biju dzīvojies pārsvarā uz PHP4, tad arī OOP prasa visai daudz jaunu lietu apgūšanu.

Tāpēc esmu nolēmis, ka veltīšu blogā speciālu lapu, kurā apkopošu saites uz dažādiem materiāliem par Zend Framework. Lai gadījumā ja vēl kāds sadomā lauzties šajā sistēmā, tad, lai viņam būtu kāds daudz maz sistematizēts resursu apkopojums no kura smelties zinības. Šobrīd resursu uzskaitījums ir visai haotisks, bet cerams, ka ar laiku tas tiks labots.

Spēle Super Mario – veidota ar JavaScript!

5

Mario in JavaScript Lūk tas jau ir interesanti. Jacob Seidelin ir izveidojis populārās spēles Super Mario versiju izmantojot JavaScript. Turklāt sakompresētā versijā šis fails aizņem tikai 14kb. Spēlē netiek izmantoti attēli vai kādi ārēji faili, bet visa grafika tiek renderēta ar JavaScript izmantojot cavas elementus vai parastus div veidošanas principus.

Spēlei pat ir versija ar MIDI mūziku, kas arī iekļauta JavaScript failā iekodējot datus ar base64.

Spēle nav pilnīga kopija Super Mario. Turklāt tai trūkst vairāki būtiski elementi. Taču rezultāts ir ļoti iespaidīgi. Nebiju domājis, ka ar JavaScript var kaut ko tādu paveikt. Es tikai neņemos prognozēt to, cik šī spēle labi spēlēsies uz vājākiem datoriem. Jo JavaScript mēdz labi aizņemt procesora resursus.

Lai izmēģinātu spēli varat izmantot šīs saites.
Regulārā versija: bez mūzikas vai ar mūziku
Dubultā izmērā: bez mūzikas vai ar mūziku

Vairāk par spēli, kā arī palasīt komentārus par attiecīgu tēmu un lejupielādēt nekompresētu JavaScript varat šeit.

Atkal uzdevumiņš PHP programmētājiem

19

Šodien rakstot kārtējo kodu gabalu nonācu līdz situācijai, kad bija jāsakārto masīvu, vadoties pēc kādas noteiktas tā vērtības. Pirmajā minūtē pat nevarēju iedomāties kā lai to izdara. Protams, pēc vēl minūtes apjukums bija pazudis un kods uztapa. Secināju, ka vajadzētu atkārtot klasiskos algoritmus. Ievadu esmu devis. Tagad pats uzdevums. Jums arī piedāvāju uzrakstīt sortēšanas kodu. Lai būtu interesantāk – visas atbildes tiks turētas moderēšanas režīmā 2 dienas. Tas tā – lai citi nešpiko. Pēc šī laika atbildes aktivizēšu. Interesanti būtu redzēt – vai citi izmantotu to pašu algoritmu kuru es – vai pavisam kaut ko citu. Protams, savus variantus var rakstīt arī tie, kas programmē citās valodās, jo uzsvars ir nevis uz konkrētu valodu, bet algoritmu. Un jā – nav arī jēgas tagad atvērt kādu manuāli un uzrakstīt algoritmu. Rakstiet tā kā varat izdomāt.

Tātad uzdevums. Ir dots masīvs ar nenoteiktu skaitu elementu. Indeksi ir no 0 līdz X, pieaugot pa 1. Vērtības ir masīvi. Šiem vērtību masīviem viens no indeksiem ir ‘value’, savukārt vērtība pie attiecīgā indeksa ir Y. Y ir kaut kāds pozitīvs skaitlis.
Piemērs diviem no iespējamajiem veidojumiem:

$data[0]['value'] = 12;
$data[0]['title'] = 'Some title';
$data[1]['value'] = 43.3;
$data[1]['title'] = 'Some title2';

Masīvu ir jāsakārto tā, lai ['value'] lauki būtu dilstošā secībā. Tātad piemērā $data[0] vērtība ir jāapmaina vietām ar $data[1] vērtību. Pēc sortēšanas nedrīkst būt pazuduši kādi no masīva uzbūves noteikumos iekļautajiem ierobežojumiem. Piemēram, $data masīva indeksiem joprojām jābūt no 0 un pieaugošiem pa 1.

Ja gadījumā galīgi nav skaidrs uzdevums – sakiet par to komentāros – mēģināšu paskaidrot.

Kāpēc zaļā gaisma EclipsePDT?

6

Es pilnībā saprotu tos, kas PHP koda rakstīšanai izmanto redaktorus nevis IDEs. Pats kādus divus gadus tik vien darīju, kā meklēju man piemērotākos redaktorus, pat neskatoties uz IDE pusi. Laikam baidījos no tā, ka IDEs ir pārāk smagas. Tāpēc priekšroka tika dota kaut kam tik elementāram kā Notepad2. Tagad tas šķiet ļoti neprātīgi, taču vairāki desmiti tūkstoši koda rindiņu ir sarakstīti tieši ar Notepad2. Pāreja uz Linux nozīmēja arī daļāju redaktora maiņu. Jā – uz Linux lieliski strādā arī Notepad2, bet ja ir iespējams, cenšos Wine neizmantot. Līdz ar to bija situācija, ka Windows lietoju Notepad2, bet Linux Gedit. Taču tas bija ļoti nepareizi. Kāpēc? Tāpēc, ka IDE sniedz daudz, daudz tādas lietas, kuras parasti un pat funkcionālākie redaktori nespēj. Tā kā neesmu tik bagāts, lai par IDE izmestu 300$, tad Zend Studio un Komodo nemaz nemēģināju lietot. Tā vietā sāku apgūt EclipsePDT, kas ir pilnībā bez maksas. Nedēļu paspēlējos arī ar Aptana, kam ir bezmaksas versija, bet nepilnīgās funkcionalitātes dēļ Aptana pagaidām netiks izmantota. (more…)

Web projektu outsourcings uz eksotiskām valstīm

6

Vispirms – kas tad īsti ir outsourcings. Latviskajā variantā tas skan šādi: Ārpakalpojuma izmantošana. Citas firmas pakalpojumu izmantošana, lai izveidotu kādu produktu vai pilnveidotu agrāk izveidoto produktu, piemēram, izstrādātu konkrētu programmatūru.

Bieži vien tas ir prātīgs solis. Nav visām firmām nepieciešams algot programmētājus, kā pastāvīgos darbiniekus. Tas ir dārgi. Algas tādi prasa virs vidējā valstī, nodokļi lieli, darba telpas nodrošināšanai arī ir izmaksas. Tāpēc prātīgs lēmums ir pakalpojuma pirkšana no specializētiem uzņēmumiem.

Es nedaudz pārzinu situāciju Latvijas Web projektu tirgū, tāpēc apskatīšu tieši šo segmentu. Latvijā ir daži nopietni lielie kantori, kuri var izstrādāt Web projektus. Tiem ir lieli darbaspēka resursi, liela pieredzes un zināšanu bāze. Līdz ar to parasti cenas ir visai augstas. Bez lielajiem uzņēmumiem ir čupiņa ar vidējiem un ļoti daudzi mazie, jeb mikro uzņēmumi (starp tādiem es ielieku arī freelancerus). Tie otrie un treši izmaksu ziņā ir krietni pieejamāki daudziem potenciālajiem pakalpojuma pircējiem. Daži kantorīši un freelanceri pat dempingo tirgu. Uz tā rēķina cieš produktu kvalitāte, kā arī citi tirgus dalībnieki un visa nozare kopumā (piemēram, parādās uzskats, ka mazs = nekvalitatīvs).

Tā rezultātā uzņēmējiem, kuri grib naudu ietaupīt rodas nākamās ģeniālās idejas. Viņu domu gājiens ir aptuveni šāds: Lielie kantori ir dārgi. Tas neder. Daži sakarīgākie no vidējiem ir pārāk noslogoti. Pārējie vidējie/mazie gan jau ir ļoti nekvalitatīvi, tāpēc jāskatās ārpus Latvijas robežām. Varbūt nebūs tā augstākā kvalitāte, bet vismaz būs daudzas reizes lētāk, kā Latvijā. Esmu dzirdējis, ka X valsts koderi ir ļoti zinoši. Taisam projektu ar viņiem.

Te uzreiz jāmin, ka X vietā nav kāda Eiropas vai Austrumeiropas valsts, bet Āzijas reģiona valsts. Līdz ar to mūsu uzņēmēji, lai paglābots no it kā nekvalitatīvā Latvijas produkta ielien sev nezināmā vidē. Šīs X valsts programmētāji bieži vien raksta ļoti apšaubāmas kvalitātes kodu, komunikācija ar viņiem ir apgrūtināta, viņu uztveres īpatnības ir neizprotamas. Jā – iespējams sadarbības beigās tiks iegūts produkts, jo visticamāk, ka tas tiks uztaisīts burts burtā kā rakstīts specifikācijā. Bet kas tiks ziedots? Pirmkārt – laiks. Komunikācija ar otrā pasaules malā esošajiem nav tā produktīvākā lieta. Otrkārt – daudz nervu šūniņu. Nu būs, būs grūti atrast kopīgu valodu. Iespējams brīžiem viss ritēs ļoti labi, bet brīžiem abas puses runās tā, ka viena otru tā arī neizpratīs. Treškārt – tad kad vajadzēs produktu papildināt, modificēt, tad visai apšaubāmi ir tas, ka gribēsies atkal ar eksotisko zemju cilvēkiem noņemties, lai dabūtu kāroto produktu. Tāpēc pastāv visai reāla iespēja, ka produkts tomēr tiks uzticēts kādam vietējam izstrādātājam. Bet paredzu, ka pirmais ko vietējais teiks, būs “tie trakie Xieši, tak sarakstījuši kodu tā, ka tajā var galvu nolauzt” vai tml.

Vai tas ir tā vērts? Pirmajā mirklī šķiet, ka varbūt ir, bet es atļaušos apgalvot, ka nav. Ja taisa outsourcingu uz citām valstīm, tad būtu jāizvēlās tādas, kas atbilst sekojošiem kritērijiem: Valsts ir netālu un uz to nepieciešamības gadījumā var aizbraukt; Valsts iedzīvotāju dzīves uztveres un kultūras veids ir saprotams; Tādā gadījumā es varētu pieņemt, ka outsourcings uz citu valsti ir prātīgs risinājums.

Kāpēc es to visu rakstu? Uz šādām pārdomām pamudināja viena šodienas saruna ar kādu personu, kura vada kādu Web projektu. Un jā – šis projekts tiek izstrādāts vienā no Āzijas valstīm. Redzēju dažus koda piemērus. Gluži kā kādā joku grāmatā. Turklāt citāti no savstarpējām sarunām arī ir zelta vērti. Un nē – kantoris, kurš attiecīgo pakalpojumu nolēmis izmantot nav no tiem nabadzīgākajiem vai nepazīstamākajiem.

Rezumējot augstāk teiktu gribu aicināt potenciālos ārpakalpojumu izmantotājus. Ja esat nolēmuši tā darīt – padomājiet, vai tiešām tas ir tā vērts, lai ņemtu izstrādātājus no citām valstīm. Bet ja tomēr nolemjat, ka citas valsts produkts ir izdevīgāks, tad esiet prātīgi un sadarbojieties ar tiem, kurus varēsiet izprast un viegli komunicēt.

Go to Top