Archive for September, 2007
WordPress baltās lapas, jeb uzmanieties no spraudņiem
3WordPress ir spēcīgs rīks. Un jo vairāk tam tiek sarakstīti dažādi funkcionalitāti paplašinošie spraudņi, jo spēcīgāks tas kļūst. Es jau iepriekš rakstīju, ka WordPress pašam pietiek dažādu problēmu, bet nesen saskāros ar pavisam jaunu un ļoti neizskaidrojamu. Situācija bija tāda, ka nenoteiktos laika periodos, nenoteiktu laika sprīdi WordPress izdvesa tikai baltu lapu. Tātad verot vaļā jebkuru pup.lv lapu varēja redzēt nevis saturu, bet tukšumu. Pat ne lapu ar <html> atverošajiem/noslēdzošajiem tagiem. Bija dienas, kad šādu parādību nemanīju, bet bija dienas, kad tāda parādība bija novērojama pat vairākas stundas pēc kārtas.
Man ir smagas aizdomas, ka šo nejēdzību radīja kāds no spraudņiem, kurus izmantoju. Īsti vēl nezinu kurš. Bet nu jau ir kādas stundas apritējušas kopš esmu deaktivizējis WP-Syntax spraudni un šādas problēmas vairs neesmu novērojis. Varbūt esmu atradis vainīgo, bet varbūt nē. Katrā ziņā, pirms sāku spēlēties ar spraudņiem, šāda lieta nebija novērojama. Tāpēc esmu teju vai par 100% pārliecināts, ka tā ir spraudņu vaina. Ja gadījumā WP-Syntax nebūs pie vainas – došu info par to, kā veicas meklējot vaininieku.
Par Google un drošību utt.
0Aizvien biežāk mums nepieciešams, lai dažādas elektroniskās lietas būtu ātri un ērti pieejamas no jebkura datora, kuram ir internets. E-pasts, grāmatzīmes, kalendārs, dokumenti un citi faili bieži vien tiek izvietoti uz kādas citas puses serveriem. Piemēram, Google. Bet te sākas problēmas. Ne jau pie vainas ir paranoja par to, ka Google no saglabātajām lietām var ievākt ļoti lielu informāciju par katru indivīdu. Lieta tāda, ka jūsu informācija var nonākt arī trešās puses rokās. Šonedēļ kā sēnes pēc lietus saradusies informācija par daudzajām Google servisu ievainojamībām, kuru rezultātā iespējams piekļūt citu cilvēku e-pastiem, dokumentiem utt. Piemēram, kaut vai šis ieraksts. Lasam, priecājamies, bēdājamies un pārdomājam vai uzticēt savu saturu kādai citai pusei. Ne tikai Google. Ievainojamības var atrast jebkuram servisam.
Kaut kas ir jāmaina Web programmēšanas tehnoloģijās. Ar nesen ieviestajām iespējām Web lapu funkcionalitāte ir pacelta jaunā līmenī, bet arī to ievainojamība. Nav nekādu problēmu imitēt lietotāju darbības, taisīt tārpus, kas paši izplatās pa dažādiem epastiem (nav nepieciešama reāla cilvēka līdzdalība) utt. Web 3.0 nekādus uzlabojumus nesola, jo Web lapas paliks tikai vēl sarežģītākas un sastāvēs no aizvien vairāk moduļiem, kur katrs varēs būt jauns drauds kopējai drošībai. Kam ir jānotiek, lai kardināli mainītu principus pēc kādiem tiek būvētas Web aplikācijas un kādiem jābūt principiem, lai šādas ievainojamības tiktu likvidētas?
Par PHP strtotime() funkciju
3Kādu laiku iepriekš jau rakstīju par problēmām, kuras man bija radušās izmantojot PHP funkcijas date() un strtotime(). Nesen saskāros ar vēl vienu problēmu strtotime() izmantošanā. Pēc savas būtības šī funkcija ir neaizvietojama daudzās situācijās. Varbūt ir aizvietojama, bet tādā gadījumā es labprāt uzzinātu par alternatīvām ar līdzīgu funkcionalitāti. Ko tad šī funkcija dara? Viņa paņem datumu, kas pierakstīts teksta formātā un pārvērš to sekundēs. Savukārt sekundes mēs varam ar date() funkciju pārvērst par mums nepieciešamā formātā esošu datumu.
Parasti, ja funkcijai strtotime() padod datumu kādā formātā, kuru tā nespēj apstrādāt, atbildē būs sekundes, kuras neatbilst konkrētajam datuma. Nu lūk – problēma radās apstāklī, ka visi datumi, kurus Web lapā jāredz lietotājam un kurus viņš ievada nepieciešamajos laukos, ir reprezentēti formātā dd.mm.yyyy. Daudz nedomājot es šādu datumu ar strtotime() pārvērtu uz sekundēm un tālāk ar date() uz yyyy-mm-dd. Viss strādāja ideāli. Taču uzliekot skriptus uz cita servera, korektā strādāšana bija kaut kur pazudusi. Sāku meklēt kur ir kļūda. It kā strtotime() atbalsta gan PHP4, gan PHP5. Piebildīšu, ka uz gala servera stāv PHP4. Iemetot aci php.net uzreiz nekādas īpašās atšķirības nepamanīju. Iespējams ne tā skatījos. Tad uzrakstīju mazu skriptu, kurš ņēma dažādi formatētus datumus un pārtaisīja tos par sekundēm un tad atpakaļ par datumu. Skriptu palaidu gan uz PHP5, gan PHP4. Rezultāti sekojoši:
Ievads | PHP5 | PHP4
2007-09-26 | 2007-09-26 | 2007-09-26
26-09-2007 | 2007-09-26 | 2032-02-28
09-26-2007 | 1970-01-01 | 2016-07-30
2007.09.26 | 1970-01-01 | 1970-01-01
26.09.2007 | 2007-09-26 | 1970-01-01
09.26.2007 | 1970-01-01 | 1970-01-01
Kā redzams – PHP5 dd.mm.yyyy formātu labprāt konvertē tā kā vajag, bet PHP4 nē. Tāpēc mācieties no citu kļūdām un atcerieties, ka maģiskā funkcija strtotime() strādā dažādi uz dažādām PHP versijām.
WordPress 2.3
4Beidzot, pēc vairākām RC versijām ir iznākusi WordPress 2.3 fināla versija. Izmaiņas ir ļoti daudzas un ievērojamas. Svarīgākās no izmaiņām manā atreferējumā:
- Tagu (birku) atbalsts. Tagad, lai izmantotu tagus vairs nav nepieciešams izmantot speciālus spraudņus.
- Jauns atjauninājumu paziņotājs, kas ziņo par to, ka iznākusi jauna WordPress vai izmantoto spraudņu versija.
- Iztīrīti URL.
- Ieviesta “pending review” funkcija. Kāds var pateikt, kā smuki iztulkot “pending”? Loģiski saprotu, ka tas ir “vēl nenoticis, bet ceļā uz notikšanu”, bet kā to pateikt vienā vārdā? Šī funkcija paredzēta tiem blogiem, kurus raksta vairāki autori.
- Uzlabota WYSIWYG funkcionalitāte (pēc speciālas pogas uzspiešanas parādās jaunas funkcijas).
- Ieviests pilns Atom 1.0 atbalsts, jQuery ir par 800% ātrāks, uzlabotas iespējas izmantot filtrus un āķus (hooks), $wpdb->prepere() mijiedarbībai ar SQL pieprasījumiem un daudzas citas lielākas un mazākas izmaiņas.
Pilnu izmaiņu sarakstu var atrast šeit.
Neskatoties uz daudzajām izmaiņām atjaunošanās uz versiju 2.3 noritēja gludi – gluži tapat kā atjaunošanās uz 2.2.x versijām. Vienīgi bija nepieciešams viens papildus klikšķis, jo bija jaapstiprina datu bāzes struktūras maiņu. Lai gan atjaunošanās bija veiksmīga, šī ieraksta laikā jau pamanīju pirmo problēmu. Saglabājot melnrakstu tiek izmesta datu bāzes kļūda.
WordPress database error: [Table 'wp_post2cat' doesn't exist]
SELECT cat_ID AS ID, MAX(post_modified) AS last_mod FROM `wp_posts` p LEFT JOIN `wp_post2cat` pc ON p.ID = pc.post_id LEFT JOIN `wp_categories` c ON pc.category_id = c.cat_ID WHERE post_status = 'publish' GROUP BY cat_ID
Tāpēc sāk šķist, ka viss nav tik gludi, kā sākumā liekas. Bet nu to jau rādīs laiks.
Papildināts: SQL kļūdas radīja vecs Google Sitemap spraudnis.
Labākais datora aizsardzības līdzeklis pret vīrusiem
3Bieži vien Windows lietotāji saskarās ar tādu problēmu kā vīrusi un citu ļaundabīgu programmatūru. Bieži piekopts veids, kā no vīrusiem izsargāties ir izmantojot antivīrusu programmas. Bet ir atrasts vēl elegantāks veids kā ar šo kaiti tikt galā. Par visu tālāk jums apstāstīs šis video.
Ja to nerāda – dodieties uz šejieni un noskatieties to oriģinālajā vietā.
Programmē PHP un sabojā programmēšanas stilu
6Nezinu kā īsti noformulēt virsrakstu. It kā aptuvena doma ir, bet kaut kas ne līdz galam pateikts. Runa iet par to, ka PHP ar tajā pieļaujamo visatļautību skriptu veidošanā ļoti sabojā programmēšanas stilu. Es sāku programmēt ar Pascal, bet tad C++. Lūk – C++ man patika ļoti. Jā – bija nedaudz jāmaina domāšanu, salīdzinot ar Pascal, bet toties ar katru nākamo uzrakstīto kodu sapratu, ka tas, kā tas tiek veidots, ir ļoti pareizs veids un veicina pareizu domāšanas veidu. Programmēšana C++ palīdzēja pareizāk izprast programmēšanas būtību. Tad es pārslēdzos uz PHP un nu jau vairāk kā divus gadus rakstu skriptus šajā valodā. Neesmu eksperts, bet šo to māku uztaisīt. Pa šiem gadiem C++ nebiju aizticis. Bet tagad pienāca brīdis, kad nācas vienu programmiņu uztaisīt C++. Teikšu kā ir – tās bija mocības.
PHP bija mani sabojājis. Piemēram, lietas, kuras no PHP dzīves ļoti sabojā: mainīgo definēšana kā vien ienāk prātā un kurā brīdī vien gribās; dažādu struktūru izmantošana datu uzglabāšanai, pirms tam šīs struktūras nedefinējot un citas. Labi, ka es pirms tam biju saskāries ar C++, jo lai gan pārslēgties no PHP bija grūti, tas nebija neiespējami. Taču, ja man ar C++ nebūtu vispār bijusi nekāda saskarsme un tad vajadzētu kaut ko viņā uzrakstīt, es visticamāk lamātos par to, ka C++ ir nejēdzīgs un pareizākais ir PHP piekoptais stils. Jā – var arī PHP programmēt, pirms tam definējot visus mainīgos utt., un tā ir tikai mana vaina ka es to nedaru. Lai gan savu vainu atzīstu, gribu arī vainot PHP pie tā, ka tas atļauj šādu izlaidību. Paņemot 3 programmētāju PHP skriptus, varam redzēt kardināli pretējus stilus kā skripti tiek organizēti (dati, funkciju/klašu definēšana utt.), bet paņemot 3 programmētaju C++ kodus visticamāk, ka tie būs ieturēti līdzīgā stilā.
Tāpēc topošie programmētāji – iesaku jums nesākt apgūt prasmi programmēt ar PHP, bet pašus pamatus un loģikas iesākumus apgūt ar Pascal, bet tad C++. Un tikai tad kad C++ principi ir saprasti varat mēģināt programmēt PHP. Bet ik pa laikam arī uzrakstiet kaut ko C++, ja negribat sabojāt domāšanu. Savukārt, ja sāksiet ar PHP, tad domāšanu pamatīgi sabojāsiet. Nē, tas nenozīmē, ka jūs ar PHP neko uzrakstīt nevarēsiet, bet tas, ka pārslēgties uz jebkuru citu, daudz maz striktākiem noteikumiem apveltītu valodu, būs ļoti grūti ir skaidrs.
Un ko jūs pārējie, kas programmē dažādās valodās domājat par to, kurai valodai ir pareizākie koda rakstīšanas nosacījumi un kurai gluži pretēji?
Apskatam RSS lasītāju skaitu ar Google Webmaster tools
1Google regulāri papildina Webmaster tools servisa iespējas. Uzskatu, ka šis ir viens no svarīgākajiem servisiem visiem Web lapu viedotājiem (un blogu īpašniekiem), kuriem interesē tas, kā viņu Web lapas/blogi draudzējas ar Google. Funkcijas nu jau ir krietni padaudz, ja salīdzina ar pirmsākumiem, bet es tās tagad nepārskaitīšu. Minēšu tikai to, ka līdz ar dizaina pārstrādi (un navigācijas maiņu), klāt ir nākusi iespēja redzēt to, cik daudz lasītāju ir jūsu RSS, kuri izmanto kādu no Google servisiem: Google Reader, iGoogle, un Orkut. Nav pieejams sīkāks sadalījums par to, kurš serviss nodrošina cik lasītājus, bet redzams tikai kopējais skaits. Izskatās tas šādi (klikšķināt uz bildes lai redzētu lielāku):
Nevajag aizmirst, ka šie skaitļi atspoguļo tikai to lasītāju skaitu, kas izmanto Google produktus RSS apskatei. Būti interesanti redzēt arī sīkāku sadalījumu. Piemēram, to cik daudz lasītāju nāk no Google Reader un cik no Orkut. Pieļauju, ka Latvijā varētu būt ļoti, ļoti maz tādu, kas izmanto Orkut. Vēl interesants būtu sadalījums pēc dzimumiem un vecumiem. Ja jau šajā statistikā parādās tikai Google reģistrētie lietotāji, tad pie reģistrācijas varētu uzprasīt dzimumu, vecumu un šos datus attiecīgi izmantot statistikas veidošanā. Katrā ziņā vēl ir daudz iespēju, kā servisu padarīt vēl kvalitatīvāku un informatīvāku. Un gan jau Google to arī izdarīs.
Apple uzspiež iTunes lietošanu iPod īpašniekiem
5Slashdot pamanīju saiti uz šo ierakstu. Tajā ir pavēstīts, ka jaunie iPod atskaņotāji (Nano, iPod Classic un iPod Touch) būs savietojami tikai ar iTunes, bet visu citu atskaņotāju atbalsts tiekot nocirsts pašā saknē. Tātad – ja gribēsiet savā jaunajā iPod iekopēt dziesmas ar kādu citu atskaņotāju, tad jums tas nesanāks. Līdz ar to iTunes nīdēji uz Windows sāciet apgūt šo programmu, bet Linux lietotāji… skatieties kā iTunes varētu piešķilt caur Wine (nav ne jausmas cik tas ir iespējams).
Problēmas būtība slēpjas tajā, ka iPod atrodas speciāls iTunesDB fails, kurā aprakstīts tas, kāds saturs iekopēts atskaņotājā un citi dati. Sākotnējās iPod versijās šī faila struktūra bija vienkārša – tāpēc bija iespējams izveidot iTunes alternatīvas. Savukārt tagad failam sākumā ir pievienoti ieraksti, kas atgādinot SHA1 hešu, kura uzģenerēšanas būtību tik viegli nav saprast. Līdz ar to, ja tiek pamainīts fails tā, lai tas atspoguļotu tur esošās dziesmas, bet netiek nomainīti SHA1 heši, iPod uzrāda, ka atskaņotājā ir 0 dziesmas. Tāpēc, līdz brīdim, kad gudri cilvēki sapratīs kā šie SHA1 keši tiek ģenerēti nāksies visiem lietot iTunes.

Ir iespēja pieteikties Microsoft Gatineau beta testēšanai
0Iepriekš rakstīju par to, ka Microsoft gatavo konkurentu Google Analytics. Kā galvenā Microsoft servisa priekšrocība tiek minēta iespēja šķirot apmeklētājus pēc vecumiem un dzimuma. Līdz ar to iespējams iegūt precīzāku informāciju kuru prezentēt potenciālajiem reklāmdevējiem, jo viņiem šāda veida informācija ir ļoti būtiska.
Tagad Microsoft ir uzsācis Gatineau projekta beta testētāju piesaisti. Lai piereģistrētos listē un sāktu gaidīt ielūgumu jādodas uz šejieni, kur jāaizpilda sekojošus laukus: e-pasta adrese (vai adCenter konta adrese), Web lapas adrese, kategorija un apmeklētāju daudzums.
Ja domājat pieteikties ņemiet vērā sekojošu atkāpi:
Please note: During the beta phase, users of Project Gatineau will be required to create an adCenter account. While use of Project Gatineau is completely free of charge, there is a one-time $5 charge upon creation of an adCenter account. If you already have an adCenter account, you may use the e-mail address associated with that account.
Pieteikšanās notiek http://advertising.microsoft.com/gatineau
Lasam to kas interesē, jeb filtrējam WordPress RSS
0Tipiska aina Latvijas blogos ir tāda, ka teju vai visi blogi ir par daudzām tēmām. Ir tikai daži, kuri raksta par vienu un to pašu, tātad konkrētas nozares/sfēras blogi. Standarta blogs ir par autoram svarīgām/interesantām tēmām, kuru vidū var būt gan tādas kas jūs, kā lasītāju interesē, gan tādas, kas neinteresē. Ja izmantojat RSS, lai apskatītu vai blogā ir kādi jauni ieraksti, tad būsiet pamanījuši, ka parasti blogos tiek norādīta tikai saite uz pilno RSS un reizēm vēl uz komentāru RSS. Bet ko darīt, ja jums nav vēlēšanās savā RSS agregatorā redzēt ierakstus no bloga A par tēmu “tusiņi”, bet ir vēlēšanās lasīt par tēmu “foto”?
Nezinu, kā ar citām blogošanas platformām, bet WordPress (kas ir populārākā starp Latvijas blogeriem) ir lieliska iespēja izmantot kategoriju RSS. Tas nozīmē, ka neskatoties uz to, ka autors savā blogā norādījis saiti tikai uz pilno RSS listi, jūs varat izmantot tādu RSS listi, kas atbilst konkrētai rakstu kategorijai.
Piemēram, šī bloga pilnā RSS liste ir: http://www.endijs.com/feed/ Blogam ir vairākas kategorijas: Blogošana, Filmas, Humors un citas (saraksts kreisajā augšējā daļā). Lai apskatītu ierakstus konkrētā kategorijā uzklikšķinam uz attiecīgā kategorijas nosaukuma. Parasti atvērsies uzskaitījums ar rakstiem. Kad tas izdarīts apskatam un nokopējam adresi, kura redzama Web pārlūka adrešu joslā. Piemēram, atverot kategoriju “PHP utml” adrese ir: http://www.endijs.com/category/php-utml/. Nu lūk, lai lasītu šīs kategorijas ziņas savā RSS lasītājā, viss kas jādara ir šai adresei galā jāpievieno “feed”. Tātad: http://www.endijs.com/category/php-utml/feed . Saglabājam attiecīgo adresi savā RSS agregatorā un lasam tikai par to, kas mūs interesē.
Piemēram, ja no visa par ko rakstīts pods.lv interesē tas, kas atrodams kategorijā “Programmatūra” apskatamies kategorijas adresi: http://pods.lv/blog/category/soft/ pierakstam galā “feed” (http://pods.lv/blog/category/soft/feed/) un lasam attiecīgo informāciju RSS listē.
Iespējams, ka WordPress šādu iespēju var atslēgt – par to neesmu informēts, taču cik es papētīju – visiem strādāja. Vienīgi šķiet, ka blogu autoriem, kuriem ļoti svarīga šķiet FeedBurner statistika, attiecīgais RSS izmantošanas veids varētu nepatikt, jo šie lasītāji skaitītajam varētu tikt garām.
Vēl gribu minēt, ka ar šādu RSS filtrēšanu pēc kategorijām īpaši aizrauties nevajadzētu, jo gadās, ka ziņas, kuras jūs interesē var tikt publicētas tādās kategorijās, kuru RSS nesekojat līdzi.