php logoStefans Essers (Stefan Esser) aizgājis no darba PHP Security Response Team. Tieši viņš bija tas, kurš bieži atrada PHP ievainojamības un PHP komandai bija iespēja lēnām tās salabot. To kādēļ viņš aizgājis varat izlasīt šeit. Kādēļ es esmu licis tādu jautājumu šī ieraksta virsrakstā? Tādēļ, ka Stefans paziņojis par to, ka arī turpmāk meklēs PHP ievainojamības un pēc kāda laika par katru no viņām paziņos publiski, neatkarīgi no tā vai PHP komanda būs paspējusi izstrādāt ievainojamības labojumu, vai nebūs. Paliek jocīgi iedomājoties par to, cik daudz būs cietušo, ja tiešām informācija par kādu nopietnu ievainojamību kļūs publiska pirms labojuma parādīšānās. Bet varbūt šāda spriedze liks PHP komandai strādāt ātrak.

Jo lielāku pieredzi gūstu kā PHP programmētājs, jo vairāk saprotu, ka šai valodai ir vairākas būtiskas nepilnības. Agrak programmējot C++ man patika, ka daudzas lietas bija stingri noteiktas. Bija formāts pie kura bija jāpieturās. Savukārt PHP ir tik liela brīvība, ka tas rada ne vien lasāmības problēmas, bet arī drošības problēmas. Jā – PHP ir mantojis vairākas sintaktiskas lietas no citām valodām, kas ir ērtas un patīkamas. Arī šī “visatļautība” ir ērta un ļauj ātri apgūt programmēšanu. Bet es labprātāk redzētu kādu PHP līdzīgu valodu, kurā būtu daudzas lietas krietni noteiktāk definētas: noteikti mainīgo tipi; stingrāk noteikts sintakses formāts.

Mani vienmēr ir interesējis, kas tieši liek cilvēkiem apmeklēt kādu konkrētu Web resursu. Tēmas, saturs, komentāri, attēli, kas vēl? Uz doto mirkli grūti pateikt, kādēļ cilvēki iegriežas pup.lv, tērējot savu laiku, lai izlasītu ko esmu uzrakstījis. Viena no cilveku kategorijām, kas apmeklē pup.lv un jebkuru citu resursu, ir tie, kas ierodas izmantojot meklētājus (google, siets utt.). Esmu uztaisījis mazu izvilkumu ar atslēgvārdiem, kuri noveduši lasītājus līdz pup.lv. Jāsaka, ka atslēgvārdi ir visai interesanti:

geitsu fond
paģiras
ubuntu grafiskā vide
photoshop instalēšana
gimp pamācība
bezmaksas programmu instalēšana
kā uzinstalēt gimp
ziemassvētku vecīša adrese
ielādēt dziesmas kad man vairs nebūs 16
krāsu paletes
primopdf
kā izveidot logo
smtp serveri latvijā
coke wallpaper xmas
novilkt opengl
microsoft office 2007 trial
kā izmantot gimp
bezmaksas video manam telefonam
mandriva 2007
xoca cola xmas

Interesanti, kā būs mainījušies atslēgvārdi, pēc aptuveni 3 mēnešiem, jo pup.lv saturs līdz tam laikam būs papildinājies ar jauniem ierakstiem par jaunām tēmām.

Dzīvojoties ar ATI video karti un Ubuntu man neizdevās pilnībā tikt vaļā no uzkāršanās. Tas, ko es biju panācis – pazuda uzkāršānās darba laikā. Bet diemžēl skatoties filmas dators uzkārās ik pēc pārdesmit minūtēm. Tas, protams, nebija pieņemams, tādēļ nolēmu, ka jāveic eksperimentu ar nVidia video karti.

Izņēmu ATI Radeon 9500 un ieliku nVidia GeForce MX400. Konsolē noinstalēju ATI draiverus, pieinstalēju nVidia draiverus. Ielogojos un viss strādāja. Nekādas uzkāršanās. Nu jau trešā diena kad dators ieslēgts 24 stundas dienā un ne reizi sistēma nav uzkārusies. Turklāt nVidia draiveriem ir normāli strādajošs kontroles panelis. Tas uzreiz rada iespaidu, ka nVidia kartēm draiveru atbalsts ir pilnīgaks par ATI. Tagad jādomā kur likt savu Radeon 9500 lai tiktu pie kādas nVidia kartes, jo šī nVidia karte drīzumā ceļos prom.

Bet, protams, arī uz doto mirkli ir pāris lietas ar kurām netieku galā. Pirmā lieta – nevaru uzlikt lielāku atjaunošanās frekvenci (Refresh rate) monitoram par 85Hz. Kaut gan visādi esmu modificējis xorg.conf, nekas nelīdz. Bet 85Hz nav tas sliktākais. Galvenais ka vairs nekarās. Otrā lieta – uz TV bilde ir nedaudz nesmuka. Precīzāk – visas vietas, kas ir krāsu pārejas ir kā ar tādu trepi un teksti ir nesalasāmi. Bet nu filmu paskatīties var. Lai gan nav tā kvalitāte kādu gribetos, bet vismaz strādā. Cerams, ka šo vel izdosies atrisināt.

rssNo šodienas notiek pāreja uz pilnajiem RSS feed’iem. Reiz izlasīju viena gudra cilvēka teikto, ka tas ir ērtāk un labak, par kopsavilkumiem. T.i. pirmajām pāris rindiņām. Nu dzīvosim – redzēsim.

Kurš var apskaidrot – kā būtu latviski pareizi “rss feed”? Zinu, ka ir bijušas diskusijas, bet tagad vairs īsti neatceros, kas tika pieņemts par optimālo variantu.

Apstāties aizliegtsUjjj kā šodien piepelnās Jelgavas pilsētas dome. Šoreiz ienākumu avots ir daudzie neuzmanīgie, kas atstājuši savus auto ierastajā vietā pie Jelgavas dzelzceļa stacijas uz Zemgales prospekta. Protams, ja tu esi nolicis savu auto stāvēšanai tādas zīmes darbības vietā, tad tu esi pelnījis sodu. Bet smieklīgs un mazliet necilvēcīgs ir veids, kā tas notiek. Daudzi, jo daudzi, ir pieraduši novietot savu auto Zemgales prospekta kreisajā malā līdz slimnīcai, kur agrāk bija “Apstāties aizliegts” zīme. Turklāt tur arī bija ērta vieta, kur uzņemt un izlaist pasažierus, kas izmanto Latvijas Dzelzceļa pakalpojumus. Bet šodien daudzi saņem soda kvītis, jo, kā man izdevās noskaidrot – piektdien vai sestdien (visticamāk, ka sestdien) zīme “Apstāties aizliegts” ir pārcelta no slimnīcas rajona līdz pašam ielas galam. Un, protams, ka vairums vēl nav paspējuši piefiksēt šo zīmi, bet tas jau neliedz policistiem izdaiļot mašīnas ar soda kvītīm, tādā veidā papildinot Jelgavas domes budžetu.

Pilnībā atbalstu, ka tiek sodīti likuma pārkāpēji, bet man šķiet nejēdzīgi tas, ka pārceļot zīmi uz citu vietu, uzreiz tiek iekasēti naudas sodi. Var tak dot dažas dienas laika aprast ar jauno situāciju. Ja esi pieradis, ka varēsi novietot savu auto tur, bet izrādās, ka tuvākā atļautā vieta tagad ir kilometra attālumā, tad tas mazliet izbojā dienas ritmu. Bet ko nu, likumu pārkāpi, maksā sodu un klusē nevis gaidi, ka pret tevi izturēsies kā pret cilvēku. Tā vietā lai taisītu šādus izgājienus labāk būtu sakārtojuši vairākus nejēdzīgos krustojumus un izgaismojuši tumšās ielas, gar kuru malām staigājošie gājēji ir potenciāli kārtējā negadījuma upuru. Jo ne tikai ielas nav izgaismotas, bet arī gājējiem ietves nav paredzētas.

Viss – dusmu izgāzu.

Ja esi lasījis/lasījusi manus piedzīvojumus un bēdu stāstus ar Ubuntu, tad iespējams, tevi interesēs, kāds ir tagadējais statuss visā šajā pasākumā. Tātad – pēc tam, kad bija atsākusies Ubuntu kāršanās nolēmu pārinstalēt visu sistēmu. Jā – man vēl nav apnicis :) Jau instalēšanas laikā notika kaut kas iepriekš nebijis. Proti, GRUB atrada Windows XP! Iepriekšējās reizēs man pašam nācās modificēt GRUB, bet šoreiz viss bija noticis automātiski. Tas viesa cerības, ka varbūt šoreiz tomēr viss būs labāk. Pēc Ubuntu uzinstalēšanas, pirmā lieta kuru darīju, bija ATI draiveru uzlikšana. Šoreiz neizmantoju draiverus no ATI lapas, bet šo pamācību. Pēc instalēšanas pārbaudīju fglrxinfo un atkal rādījās MESA. Bet vēl cerību nebiju zaudējis. Nosecināju, ka fglrx modulis neparādās ielādēto moduļu sarakstā (var apskatīt ar lsmod). Kad to biju pieinstalējis, tad pārstartēju datoru un, par laimi, šoreiz pēc fglrxinfo redzēju nevis MESA, bet ATI. Diemžēl, neatceros ar kādu tieši komandu attiecīgā lieta tika pieinstalēta, bet noskaidrošu un pierakstīšu vēlāk šī ieraksta beigās, ja kāds nebūs jau komentāros ierakstījis.

Tātad ATI draiveri bija uzlikušies veiksmīgi. Strādājot vairākas stundas nekāda uzkāršanāš vairs netika novērota. Bet tomēr, dienas laikā divas reizes sistēma uzkārās. Kā reiz sagadijās, ka tieši ap šo laiku iznāca Ubuntu nākamās versijas (Feisty) pirmā Alpha versija. Nolēmu noriskēt un uztaisīt sistēmas upgrade uz Feisty. Instalēšanas procesa laikā saņēmu kļūdu par Postfix, bet visādi citādi upgrade norisinājās veiksmīgi. Vēlāk Postifix noinstalēju un ta vietā uzliku Exim. Tā, ka par Postfix nozušanu īpašu bēdu nav. Nosecināju, ka nestrādā vēl dažas lietas Feisty: System->About Ubuntu; System->Administration->Time and date un iespējams, ka vēl kaut kā atvēršana beidzas ar kļūdu. Taču, tas nav nekas kritisks. Pats labākais ir tas, ka kopš upgrade uz Feisty nav bijusi neviena uzkāršanās jau otro dienu! Nezinu, kas ir palīdzējis – jaunais kernelis vai vēl kaut kas, bet rezultāts ir patīkams.

Runājot par Feisty jāsaka, ka šodien bija nobrucis Update Manager. Nebija vairs iespējams to atvērt. Izrādijās, ka problēmas risinājums ir Evolution noinstalēšana. Kārtējo reizi varēju nopriecāties, ka izmantoju Thunderbird. :)

Kamēr vēl neesmu atradis veidu, kā piedabūt pie dzīvības Overlay uz TV izmēģināju video output metodi norādīt OpenGL. Šis variants nostrādaja un uz TV bija iespējams skatīties filmas. Bet… Kaut kas īsti nestrāda, jo aptuveni pēc minūtēm 10-20 bilde uzkarās, bet skaņa iet uz priekšu. Tāpēc nāksies vien meklēt, kā normali dabūt Overlay.

Par pārējiem piedzīvojumiem un programmām, kuras esmu izvēlējies, kā Windows vides aizstājējus citu reizi.

Ja gadījumā kādā no ballītēm (vai vienkārši tāpat) ir sanācis iedzert pa daudz, tad jāsamierinās, ka nākamais rīts var būt krietni smags. Un iemesls tam būs pavisam vienkāršs – paģiras. Domāju, ka pirmā janvāra rīts tāds var gadīties ne vienam vien svinētājam. Lai gan metodes, ko darīt, lai paģiras nepiemeklē ir vairākas, šoreiz maza pamācība, ko darīt, ja tomēr paģiras jūs ir piemeklējušas.

Bez maz vai iesācēja cienīga kļūda radās, rakstot kārtējo PHP skriptu. Taču neskatoties uz to, ka tā ir visai primitīva cēloņa kļūda, padalīšos ar to, kāda tieši, jo varbūt kādam pagadās tieši šāda kļūda un jātērē laiku, lai saprastu, kas tad īsti noticis.

Situācija bija šāda – ir datums formātā yyyy-mm-dd, piemēram, 1990-07-22. Lai to pārvērstu LV raksturīgā variantā parasti izmantoju date('d-m-Y', strtotime($datums)). Taču, šoreiz bija gadījumi, kad attiecīgā lieta nostrādaja kā parasti un brīžiem nenostrādāja. Kad sāku pētīt uz kuriem datumiem īsti nenostrādā, sapratu, ka tie ir datumi, kas vecāki par 1970-01-01. Lūk! It kā elementāra lieta, bet rakstot skriptu pat neiedomājos, ka būs šādi datumi. Līdz ar to nācās izdomāt kādu apkārtceļu šai lietai. Tā, kā citas standarta funkcijas neatradu, kas to varētu paveikt, tad uzrakstīju mazu funkciju, kura sakārto datumu konkrētajā formātā. Nav jau ideāli, bet vismaz strāda. Ja kādam ir labāki risinājumi šai problēmai – padalieties. Funkcija bija šāda:
function ConvertedDate($date)
{
if ($date)
{
$dz = explode('-', $date);
return $dz[2].'-'.$dz[1].'-'.$dz[0];
}
}

Tātad secinājums – ja maināt datuma formātu, atcerieties par strtotime() ierobežojumiem!