x-ƒ (x_f)

Kas jauns?

sestdien, 19.06.2004 @1:37 pm | x-ƒ

[info]watt it kā taisās svētdien atjaunot Cibas kodu uz jaunāku versiju. Man nav zināms, kas tieši mainīsies, taču attiecībā uz S2 varētu parādīties šis tas jauns. Piemēram, komentāru saldēšana un FOAF skats. Lai nu kā, lai S2 koderi un dizaineri :) būtu gatavi, es publicēju iespējamās S2 koda izmaiņas. (Ja nu man izrādās taisnība un pēc tam slinkums.) Pieminēti tikai tie mainīgie un funkcijas, kas varētu būt izmainīti (pievienoti), salīdzinot ar pašreizējo core.

iespējamās S2 koda izmaiņas )
x-ƒ (x_f)

RSS laika plūsma

ceturtdien, 17.06.2004 @1:20 pm | x-ƒ

Vai kāds zina, vai ir pieejama Latvija laika ziņu RSS plūsma kaut kur?
Esmu slinks, gribu, lai ziņas nāk pie manis. :)

x-ƒ (x_f)

pt vs px

pirmdien, 14.06.2004 @11:44 am | x-ƒ

Vai kāds varētu, lūdzu, paskaidrot man, kāda ir atšķirība starp "pt" un "px" mērvienībām (CSS)? Runa iet tieši par tekstu. Kuru no tām labāk izmantot fontu izmēra noteikšanai un kāpēc?
Es kaut kur laikam lasīju, ka "px" nav īsti vēlams, jo dažreiz tas ir atkarīgs no ekrāna izšķirtspējas, dpi vai kaut kā tāda. Vai otrādi. Bet varbūt arī nelasīju.

Lai nu kā – kuru labāk izmantot burtu izmēra noteikšanai? Un "tāpēc ka.." :)

(CSS 2 rekomendāciju apskatīju. Atbildi neradu.)

x-ƒ (x_f)

Fikss

piektdien, 11.06.2004 @2:51 pm | x-ƒ

Liels bija mans pārsteigums, kad, mēģinot izmantot S2 iebūvēto funkciju striphtml(), lai atbrīvotos no HTML tagiem, apskatīju dīvainu kļūdas paziņojumu. Izrādās, ka, lai gan tāda funkcija S2 valodā ir, tā nemazam nestrādā. Kompilators gan laiž cauri bez problēmām, bet.. Nu, ja kāds grib redzēt to kļūdas paziņojumu, tad pamēģiniet šo funkciju. :)

Lai nu kā, par laimi atradu citu funkciju, kas dara tieši to pašu. Un patiešām dara. Rakstījis to ir SaiteMageBoltRat. Ja izmantosiet, pieminiet. :)
Mjā, tā kā striphtml() ir iebūvētā funkcija, tad to nevar aizvietot, un tāpēc jāizmanto cits nosaukums. Tāpēc striphtmlnew().

funkciju kodi )

Varbūt kādam noderēs.

Poke-style fabrika jeb viņi ir atpakaļ

otrdien, 8.06.2004 @4:10 pm | M.

[info]all_icons - atceramies labos s1 stilus ar foršajiem slide-in/slide-out efektiem uz IE, foršos animētos gifus userpicos, brīnišķīgās krāsu gammas - sarkans uz zila, un pareizinam ar 10.
x-ƒ (x_f)

Viss ir nejaušība

pirmdien, 7.06.2004 @1:09 pm | x-ƒ

Šoreiz pamācīšu, kā kaut ko izvadīt random'ā. Piemēram, manam iepriekšējam stilam žūrnāla augšā tika izvadīts kāds no manis noteiktajiem banneriem, bet sānā – citāts no kādas dziesmas. Katru reiz pārlādējot lapu, tā izskatījās nedaudz savādāk.
Šajā piemērā uzzināsi, kā izvadīt kādu no saviem noteiktajiem userpic'iem. Nevis to, kurš uzstādīts pēc noklusējuma, bet gan jebkuru no tiem, kas uzlādēti uz servera (lai gan ne tikai – var ņemt attēlu arī no citām vietām). Pēc tam beigās paskaidrošu arī, kas jāmaina, lai attēlu vietā izvadītu tekstu – kādu citātu, sveicienu vai ko līdzīgu.

Un tātad. Savā S2 layout slānī jāizveido globālā funkcija print_random_userpic(), kas izvadīs nejauši izvēlētu lietotāja bildīti jebkurā vietā, kur vien būs vēlēšanās. Šo kodu varēs izsaukt no jebkuras funkcijas vai klases savā stilā. Un, protams, ka to var pielāgot pēc katra vajadzībām un gaumes.

Visupirms ir jātiek pie sava S2 slāņa koda. Lūk, Saitešōrtkats, lai tiktu pie saviem slāņiem. :) Izvēlies vajadzīgo un nospied pogu "Edit". Tagad Tev ir redzams Tavs S2 kods un Tev tikai jāatrod kāda vieta (kur vien vēlies), kur ievietot zemāk esošo kodu.

funkcijas kods )

Protams, jāaizvieto katra http://journal.bad.lv/userpic/####/#### teksta virkne ar ceļu pie attēliem, kurus vēlies izmantot. Šajā vietā var izmantot ne tikai userpic'us, bet kaut vai bannerus. Šis jau ir tikai piemērs.
Ņem vērā, ka, lai gan šajā piemērā tiek izmantoti seši attēli, tas nav ne minimālais, ne maksimālais vērtību skaits – vari izmantot tik daudzus, cik vien vēlies. Tāpat var arī droši mainīt izvadāmo HTML kodu pēc vajadzības, ja vien attēla src atribūts paliek nemainīgs.
Lai izsauktu šo funkciju, vajadzīgajā vietā savā S2 slāņa kodā (kur vien tas vajadzīgs) ievieto šo rindiņu:
print_random_userpic();.

Lielākoties tulkots, Saitesaite.

Trūkums šādam risinājumam ir tāds, ka nav iespējams noteikt attēla izmērus. Protams, ja ir zināms, ka visi izvadāmie attēli ir vienāda izmēra, tad nav problēmu.
Pie izmēra iespējams tikt tikai defoltajam attēlam (tai lietotāja bildei, kas uzstādīta kā "noklusētā"), piemēram, $.journal.default_pic.width un $.journal.default_pic.height (no jebkuras funkcijas, kas ietilpst Page klasē vai tās apakšklasēs). Bet ne šeit.

Lai izvadītu tekstu, ir tikai pavisam nedaudz jāpamaina iepriekš izmantotais kods.

funkcijas kods )

Nedaudz par funkciju Saiterand(). Patiesībā ir divas funkcijas ar šādu nosaukumu – rand(int high) : int un rand(int low, int high) : int. Abos gadījumos tā, kā jau redzams, atgriezīs integer tipa vērtību – kādu nejauši izvēlētu skaitli. Pirmajā gadījumā tas būs starp 1 un $high ieskaitot, otrajā – starp $low un $high ieskaitot.

x-ƒ (x_f)

Dažādo skatu piemērs

piektdien, 4.06.2004 @1:41 pm | x-ƒ

Es centīšos pavisam vienkārši paskaidrot savu iepriekšējo pukstu ar elementāru un praktisku piemēru par klašu mantošanu un dažādajiem skatiem. Kods būs no mana slāņa, tāpēc ir skaidrs, ka tas darbojas. :)

Vienmēr jāatceras, ka, ja Tu vēlies savā slānī definēt klases metodi, tad tās nosaukumam jāsākas ar lay_. Šeit – lay_print_skipsaites(). Tas tā ir tamdēļ, lai nerastos problēmas ar vienādiem funkciju nosaukumiem, ja nu gadījumā core slānim tiek pievienotas jaunas klašu funkcijas.

Manā piemērā tiek izvadītas saites, kas ļauj pārvietoties pa žūrnāla ierakstiem. Piemēram, žūrnāla un draugu lapā tās norāda uz senākiem vai jaunākiem ierakstiem (skip=20, piemēram), bet dienas skata lapā – uz nākošo un iepriekšējo dienu. Tieši tāpat ir iepējams izveidot jaunu metodi, kas darbotos katra ieraksta lapā. Vai arī, piemēram, mēneša lapā. Man tas nelikās vajadzīgs, bet tas ir iespējams (EntryPage un MonthPage).

S2 koda paraugs )

Pēc tam, lai izsauktu šo funkciju, vajadzīgajā vietā savā S2 slānī vienkārši jāieraksta $this->lay_print_skipsaites().
Manā stilā tā tiek izsaukta no šādām vietām – RecentPage::print_body, DayPage::print_body(), RecentPage::lay_print_minicalendar(). (Tikpat labi es to būtu varējis izsaukt tikai no Page::lay_print_skipsaites(), taču man bija vajadzīgs, lai saites atrastos dažādās vietās. Tāpēc tā.) Tā tiks iedarbināta jebkurā skatā, pat "reply", bet, tā kā klasē "Page" šī funkcija ir tukša (neko nedara) un atsevišķi priekš ReplyPage tā nav definēta, tad, lai gan tā izpildīsies, tā reāli nemaz nenostrādās. Skaidrs?
Protams, es būtu varējis arī definēt atsevišķi to draugu lapai (FriendsPage::lay_print_skipsaites()), taču tas īsti nav nepieciešams, jo FriendsPage klase tiek atvasināta no RecentPage.

Piezīme Klašu funkcijām ir jāatrodas kodā pirms to izsaukšanas (augstāk), citādi kompilators ziņos, ka nav atrodama tāda funkcija. Vispirms definē, pēc tam izsauc. Šķiet, ka ar globālajām funkcijām tā nav. Un vispār – galvenais, lai Page::lay_.. būtu pirms izsaukšanas. DayPage::lay_.. un citi var droši būt arī zemāk.

Ceru, ka kādam tas viesa skaidrību un noderēs. [info]wasted? :)

Labots Izlaboju dažas koda kļūdas un neprecizitātes paskaidrojumos. Atvainojos par sagādātajām neērtībām. :)

x-ƒ (x_f)

S2 skatu tipi

piektdien, 4.06.2004 @1:40 pm | x-ƒ

S2 valodā visi žūrnāla skati (views) ir definēti vienā izkārtojumā (layout). Katru skatu skatu var aplūkot kā objektu, kas satur funcijas un mainīgos, kas var tikt izmantoti šim lapas tipam. "Page" pats par sevi ir kā lietussargs visiem pārējiem, saturot funkcijas un mainīgos, kas var tikt izmantoti visos skatos, un katrs skats var pievienot kaut ko īpašu (savas funkcijas un mainīgos) galvenajai lapai ("Page").

Page
"Page" ir pati augšējā klase visiem S2 skatiem. Tas nozīmē, ka visi pārējie "skati" izriet (rodas) no šī objekta. "Page" ir ievada klase skatiem: kad Tu pirmoreiz raksti kodu savam izkārtojumam (layout), funkcija, kas izvada visu informāciju, ir Page::print. Visi pārējie skati ir "Page" apakšklases. Visiem pārējiem lapu tipiem būs iespējams piekļūt un izmantot jebkuru "Page" klases funkciju vai mainīgo.
Šajā lapā aprakstītas visas funkcijas un mainīgie, kas pieejami "Page" klasei. Lai noteiktu, kādu lapu Tu tieši pašlaik skaties, katra "Page" apakšklase satur mainīgo "view", kurš nosaka kāds lapas tips pašlaik tiek aplūkots. Šim mainīgajam var piekļūt, izmantojot "view" mainīgo, kurš atrodas visos lapu objektos. (Tas nozīmē, ka jebkurā "Page" klasē vai apakšklasē var vienkārši piekļūt "$.view".)

RecentPage$.view == "recent"
Klases "Page" apakšklase. Šī ir pati žūrnāla lapa, nesenie ieraksti. Vecajā S1 stilu sistēmā to sauca par "LASTN" skatu. "RecentPage" klase satur dažas funkcijas un mainīgos, kas attiecas tieši uz šo lapu, piemēram, izvadāmo ierakstu masīvu.

FriendsPage$.view == "friends"
Klases "RecentPage" apakšklases. Šis ir draugu skats, kurā tiek attēloti visu Tavu draugu apkopotie ieraksti. Šī skata ieraksti satur nedaudz vairāk informācijas (draugu krāsas) un ir pieejama papildus nosaukuma teksts draugu lapai, kuru var noteikt līdz ar savu personālo informāciju. Visādi citādi nav nemaz lielu atšķirību starp draugu un žūrnāla lapu.
(Patiesībā var arī vispār iztikt bez FriendsPage klases izmantošanas, ja vien atceras, ka tā ir RecentPage apakšklase un savā kodā ievieto nepieciešamās "$.view" pārbaudes. Tad gan jāiztiek bez draugu iekrāsošanas.)

YearPage$.view == "archive"
"YearPage" ir tas pats, kas kalendāra skats vecajā S1 stilu sistēmā. Šis skatu tips satur informāciju par mēnešiem un katras dienas ierakstu skaitu. Šis ir vienīgais skats, kurš nesatur nekādu informāciju par pašiem ierakstiem, piemēram, ieraksta virsrakstu vai tekstu.

MonthPage$.view == "month"
"MonthPage" satur informāciju par visiem ierakstiem, kas veikti norādītajā mēnesī. Šis skatu tips satur šo ierakstu metadatus, lai gan tam nav pieejami ierakstu teksti vai lietotāja attēli. Šo skatu parasti izmanto, lai ģenerētu norādītā mēneša ierakstu virsrakstu sarakstu.

DayPage$.view == "day"
Šis skats attēlo visus vienas dienas ierakstus. Informācija par pašu ierakstu ir tieši tāda pati, kā RecentPage skatā. Tas nozīmē, ka tā satur ieraksta pilno tekstu, virsrakstu, lietotāja attēlu, metadatus u.t.t. Ieraksti šajā lapā pēc noklusējuma tiek kārtoti hronoloģiskā kārtībā, atšķirībā no apgriezti hronoloģiskās kārtības, kāda tiek izmantota draugu vai žūrnāla lapā.

EntryPage$.view == "entry"
Atsevišķs ieraksts un šim ierakstam pievienotie komentāri. Šis skats satur pilnu ieraksta informāciju, kā arī informāciju par visiem lietotāju atstātajiem komentāriem. Šis ir viens no skatiem, kurš nosaka, kā ieraksti patiesībā izskatīsies.

ReplyPage$.view == "reply"
Lapa, lai atbildētu uz žūrnāla ierakstu vai komentāru. Šī lapa nosaka, kā Tavs žūrnāls rīkosies, kad Tu atstāsi komentāru vai atbildēsi uz citu komentāru. Tā satur īpašas funkcijas, lai ģenerētu atbildes formu, kā arī informāciju par to, kā formatēt atbildes.

Tulkots no S2 HOWTO kopienas, Saitesaite.

Šis jau reiz tika publicēts, taču atkārtot der. :)
 Page
   |– RecentPage
   |      |
   |   FriendsPage
   |– EntryPage
   |– ReplyPage
   |– YearPage
   |– MonthPage
   |– DayPage

D[ra]kone (drako)

Gribēju iemest savu..

otrdien, 1.06.2004 @3:22 pm | D[ra]kone

Gribēju iemest savu pieredzi, kā apstrādāt userpikus ...

Lieta tāda, ka IMHO tie tie labāk izskatās, ja tiem apkārt ir rāmītis viena pixeļa apmērē. Protams, par gaumi nestrīdās. Nav spiesta lieta, ja kāds to ar parastajiem līdzekļiem (ms paintbrush noderēs arī) gribēs panākt gatavu, tad te ir kā to izdarīt:

Tā, kā man pašam pa rokai nekā pārāk advancēta nav un iespējams vairumam no jums tā pat, es izlīdzos ar diezgan vienkāršu metodi.

1) Uztaisu 100x100 bildi krāsā, kādā vēlos rāmi apkārt bildei.
2) Samazinu / izgriežu izvēlēto attēlu līdz 98x98 izmēriem lai to varētu iekopēt pa vidu jau izveidotajai kompozīcijai un viola - userpiks ar rāmīti pixeļa izmērā gatavs. Atliek tikai to saglabāt kā jpg un likt pie saviem userpikiem.

Nezinu, tīri teorētiski protams pastāv iespējas advencātākos redaktoros šīs līnijas vilkt ar rociņu un zīmēt, bet neredzu tam vajadzību, ja vēlamo rezultātu var ātri iegūt darbojoties ar šo "aplikāciju papīra metodi" ;-)

Ak jā - ja ir vēlme pēc dubultā rāmīša - melniem userpikiem es parasti tādus taisu, tad 100x100 pikam pa vidu kopē gaišāku 98x98 piku, kam vēl pa virsu iekopē nepieciešamo tumšo / melno userpika bildi 96x96 pixeļu izmērā.

Stay creative ;-)
x-ƒ (x_f)

Vasarīgās noskaņās

pirmdien, 24.05.2004 @11:45 am | x-ƒ

Šīs ziņas komentāros jūs varat rakstīt, ko vien vēlaties – jautājumus, ierosinājumus, sūdzības, idejas.. Jeb ko. Visu, kas vien kaut kā varētu būt saistīts ar šo kopienu un tamlīdzīgi. Šī ziņa šeit augšā paliks ilgi. Vai mūžīgi. Tāpēc, lūdzu, speriet visu, kas uz sirds, šīs ziņas komentāros. Vai patiešo žūrnālā.

x-ƒ (x_f)

Stilu dāvāšana

ceturtdien, 20.05.2004 @12:29 pm | x-ƒ

Uzmanību! Droši vien jau vairāki būs ievērojuši, ka apskatot kādu S2 stila slāni HTML formātā, šis tas svarīgs ir pazudis. Tā ir. Kaut kur tur ir kļūda, kas ir zināma jau diezgan sen, bet izlabota vēl nav. Tā izpaužas tā, ka nokopējot šo kodu, tas gluži vienkārši nekompilēsies, jo būs pazuduši vairāki mainīgie. Arī ar manu stilu tā ir, bet tas tā nav vienmēr. Dažu stilu kodi tiek attēloti pilnībā kā vajag.

Risinājums (pagaidām). Ja vēlies publiskot savu slāņa kodu, tad citiem dod "Download" saiti, nevis "View as HTML". Tad nekas nepazudīs. Ja tev kāds ir iedevis saiti uz HTML formatēto koda attēlojumu, tad gluži vienkārši no adreses beigām vari nodzēst "&fmt=html". Un viss.

x-ƒ (x_f)

Problēma ar MSIE 6

pirmdien, 17.05.2004 @1:22 pm | x-ƒ

Bieži sastopama problēma, kā izrādās. Gadās, ka, lietojot Microsoft Internet Explorer 6, nav iespējams normāli iezīmēt tekstu. Šī problēma, lai cik dīvaini tas nebūtu, ir tieši ar sesto versiju. Ar piekto viss ir kārtībā. Lai gan tur ir citas problēmas.

Bieži vien, ja Tu centies iezīmēt tekstu, kas atrodas absolūti pozicionētos elementos, tad tas nemazam nestrādā. Tiek iezīmēta puse lapas, taču ne tas teksts, kuru vajadzēja. Šī problēma ir aktuāla tieši IE6, jo ar IE5 viss darbojās lieliski.
Šī problēma atgadās tad, ja tiek mēģināts iezīmēt tekstu, kas atrodas zemāk (vertikāli skatoties) par lapas statisko saturu (parasti tas nozīmē jebkādu taga <body> saturu) un tikai tad, ja pārlūks darbojas standards-compatible režīmā. Bet, kad tas notiek, tas ir ļoti kaitinoši. Tici man. Un, ja netici, vari pārbaudīt ar šo žūrnālu – tieši tā pati problēma.

Tagad neliela atkāpe teorijai. Kas tas tāds standards-compatible režīms? Nu, tāds.. mazs, pūkains zvēriņš, daudz neēd..
Pārlūks, attēlojot jebkuru HTML dokumentu, darbojas divos režīmos – atpakaļsavietojamajā (backward-compatible; Mozillas inženieri to sauc par quirks režīmu, MS to nesauc nekā) un standartiem atbilstošajā (Mozillai – strict, IE – standards-compatible). Otrais režīms ir pēc iespējas tuvāk W3C rekomendācijām.
Režīms, kādā pārlūks darbosies, tiek noteikts pēc HTML faila DOCTYPE. Vai tā neesamības. Īpaši lielas jēgas no DOCTYPE norādīšanas nav. Bet tas tā ir pagaidām. Nākotnē tam būs lielāka nozīme. Pagaidām tas skaitās labais stils tādu norādīt katram HTML failam. Šajā DOCTYPE var norādīt gan to, ka tas ir HTML 4.01 dokuments, gan to, ka tas ir XHTML 1.1 dokuments. Protams, ja pārlūkam kāds no šiem DOCTYPE izrādīsies liels jaunums un pirmā dzirdēšana, tad tas izmantos savu iebūvēto, veco DOCTYPE definīciju. Tas notiks arī tad, ja DOCTYPE netiks norādīts vispār. Tā ka nevar teikt, ka no tā vispār nav nekādas jēgas. Parasti to norāda tad, ja web-lapa tiek veidota tieši jaunākajām pārlūku versijām (piemēram, 6.), tiek izmantota precīza elementu pozicionēšana un smalki piestrādāts pie CSS un DOM specifikāciju ievērošanas.
Piezīme Starp citu, uzzināt, kāds režīms tiek izmantots, var ar JavaScript palīdzību, izmantojot document.compatMode īpašību. (Vienkārši dokumenta body elementā ievieto script tagu un tajā ieraksti "alert(document.compatMode);".) Paeksperimentē ar vairākiem pārlūkiem, pieliekot un noņemot gan XML prologu (<?xml .. ?>), gan pašu DOCTYPE. Rezultāti ar Netscape un MSIE atšķiras. (Heh.. protams!)
Īsumā Visas HTML 4.x/strict un XHTML DTD definīcijas ieslēdz standards-compatible režīmu, vienalga, vai, definējot DOCTYPE, ir norādīts DTD faila URL vai nav. Tāpat arī šis režīms tiek ieslēgts, ja, izmantojot HTML 4.x transitional un frameset DTD failus, tiek norādīta to URL adrese.

Un tagad atpakaļ pie problēmas. Tātad, ja IE darbojas standards-compatible režīmā, tad ir problēmas ar iezīmēšanu.
Risinājumi
1. neizmantot standards-compatible. Jā, tā var. Tādā gadījumā var vai nu vispār nenorādīt DOCTYPE (fuj!), vai arī pirms tā pierakstīt XML prologu "<?xml version="1.0" encoding="utf-8"?>" (enkoudings, protams, var būt cits). Tas nostrādās. IE darbosies tajā režīmā, ko Mozillinieki sauc par quirks. Patiesībā tas emulēs MSIE 5.x versijas pārlūku.
2. neizmantot absolūto pozicionēšanu. Stulbi.
3. neuztraukties par IE lietotājiem un ignorēt šo problēmu. Var! Lai vaino Microsoft'u, nevis mani. :)
4. SaiteTom Gilder iesaka izmantot šādu haku:

JS kods )

Hmm.. Es to izpētīju. Es to izmēģināju. Tas strādā. Bet tā arī nesapratu tā jēgu. Nu.. Kā tas darbojas un ko tas dara. Ir tāda nojauta, ka tas "izstiepj" body elementu pa visu ekrānu (un tāpēc visi absolūti pozicionētie elementi tik un tā atrodas body robežās). Tā ir? Uzminēju?

Lai nu kā, es ceru, ka vismaz kādam palīdzēju tikt vaļā no galvassāpēm bez medicīnas palīdzības, ja tas arī ir saskāries ar šādu problēmu.

Paldies SaiteKindai un Saiteasdf'am par informāciju. Šis lielākoties ir tulkots. Dažādi info avoti.
Saites: Saite1. avots, Saite2. avots, Saite3. avots.

x-ƒ (x_f)

S2 terminoloģija

piektdien, 14.05.2004 @6:20 pm | x-ƒ

Daudziem vārdiem jaunajā S2 stilu sistēmā ir pavisam cita nozīme, nekā tā bija S1. Turklāt S2 lieto daudzus jaunus terminus, kurus daudzi varētu nezināt un nesaprast. Lai būtu saprotamāks, šeit daudzi no šiem jaunajiem vārdiem ir izskaidroti.

Šī vārdnīca tika rakstīta ar nolūku izskaidrot šos terminus saistībā ar S2, nevis vispār programmēšanā.

  • layer (slānis) – atsevišķs S2 koda bloks; pavisam S2 stilu sistēmā ir 6 slāņu tipi. Tie ir uzskaitīti zemāk. Tie tiek saukti par slāņiem tādēļ, ka katras lapas skats S2 sistēmā sastāv no vairāku slāņu kopas, kurā katrs augstākais pārdefinē atsevišķas vērtības un funkcijas no zemākā.
    • core layer (serdes slānis) – pamata slānis, kurš nepārdefinē nevienu citu slāni. Tas definē funkcijas, objektus un šo objektu pamata funkcionalitāti.
      • i18nc – serdes valodas slānis. Tas satur parastos vārdus, kas tiek izmantoti citos slāņos. Katrai valodai ir savs i18nc slānis.
    • layout layer (izkārtojuma slānis) – būtībā tas ir kā S1 sistēmas stils, bet tas pārklāj visus "skatus" (no S1, LASTN, FRIENDS, utt.), nevis tikai vienu. Tas pievieno funkcionalitāti serdes slānim tā, lai tu varētu izveidot tādu lapu dizainu, kādu vien esi iekārojis.
    • i18n – valodas slānis. Tas satur vārdus, kas tiek izmantoti izkārtojuma slānī, lai šo izkārtojumu būtu iespējams attēlot vairākās valodās.
    • theme (tēma) – būtībā tā ir krāsu shēma, bet tu vari mainīt arī citas īpašības, piemēram, komentāru saites nosaukumu. Tas domāts, lai varētu modificēt izkārtojuma slāni.
    • user layer (lietotāja slānis) – būtībā tas ir kā pārdefinēšanas saraksts (override list) S1 sistēmā. Tas tiek izmantots, lai papildus pielāgotu zemāk esošos lietotāja izveidotos slāņus (layout, i18n, theme). Parasti gan lietotāji šos slāņus neveido tieši, bet izmanto palīgus (wizard).
  • style (stils) – noteikta slāņu kombinācija.
  • function (funkcija) – koda bloks, kas izpilda kādu noteiktu uzdevumu. Funkcijas var saņemt datus (kurus sauc par parametriem) un atgriezt datus. S2 stilu sistēmā funkcijas lielākoties izvada HTML.
    • function call (funkcijas izsaukums) – instrukcija izpildīt funkciju. Kad funkcija ir izpildīta, sistēma atsāk koda izpildi no tās vietas, kur tā tika pamesta, parasti tas ir tieši pēc funkcijas izsaukuma.
    • global function (globālā funkcija) – funkcija, kas var tikt izsaukta no jebkuras citas funkcijas.
    • builtin function (iebūvētā funkcija) – funkcija, kas nav implementēta S2 koda, bet gan drīzāk pašā servera kodā. Tās ir domātas, lai izpildītu tādas darbības, kas S2 kodam vienam pašam nav iespējamas. Tas var tikt definētas tikai serdes (core) slānī.
  • variable (mainīgais) – datu gabaliņš, pie kura var tikt ar tā identifikatora palīdzību. Parasti šie mainīgie satur skaitļus, tekstu vai objektu eksemplārus.
    • parameter (parametrs) – mainīgais, kas tiek nodots funkcijai, kad to izsauc.
    • properties (īpašības) – mainīgie, kas ir pieejami no jebkuras vietas. Tos var noteikt galalietotājs ar, piemēram, palīga (wizard) palīdzību. Īpašības parasti tiek izmantotas, lai noteiktu vizuālos elementus, piemēram, fona krāsu vai tabulas platumu.
    • string (virkne) – teksta virkne.
    • array (masīvs) – vairāku informācijas gabaliņu komplekts. S2 stilu sistēmā masīvi parasti satur objektu kolekcijas, piemēram, ierakstus vai komentārus.
      • associative array (asociatīvais masīvs) – vairāku informācijas gabaliņu komplekts, kurā katram šim gabaliņam ir piešķirts vārds, pēc kura pie tā var piekļūt. Asociatīvie masīvi darbojas gluži tāpat kā parastie masīvi, taču pie tā vērtībām piekļūst, izmantojot vārdus, nevis kārtas numurus masīvā.
    • operator (operators) – izpilda operācijas ar vienu vai vairākiem datu gabaliņiem (operandiem). Parastie operatori ir atrodami Saitešeit.
  • object (objekts) – datu gabaliņš, kas pārstāv konceptuālo realitāti :) (conceptual entity), piemēram, ierakstu, lapu, datumu utt.
    • inheritence (mantošana) – ideja, ka objektam var būt bērni un šie bērnu (atvasinātie) objekti manto funkcionalitāti no vecāku objekta.
    • class (klase) – objekta tips. Piemēram, ieraksts, lapa, datums utt.
    • instance (eksemplārs) – konkrēts objekta eksemplārs, notikums. Ekseplāri satur reālos datus.
    • null – objekta eksemplāra trūkums. Citiem vārdiem sakot, objekts nav ticis pārsūtīts.
    • member (elements) – datu gabaliņš, kuru satur objekts. Piemēram, ieraksta tēma.
    • parent object (vecāku objekts) – objekts, kuram ir apakšobjekti un kuri manto tā rīcību.
    • child object (bērnu objekts) – objekts, kas manto tā rīcību no cita objekta (vecāku objekta).
    • method (metode) – objekta funkcija, kas parasti izpilda kādu operāciju ar objekta elemetiem.
    • entrypage, recentpage, calendarpage, monthpage, friendspage, daypage – īpašas S2 objektu klases, kas pārstāv dažādus "skatus".
  • keywords (atslēgvārdi) – vārdi, kuriem S2 stilu sistēmā ir īpaša nozīme.
    • if, elseif, else ("if nosacījums") – nosacījums, kas izvērtē loģisko nosacījumu (piemēram, "viewer == owner") un, atkarībā no nosacījuma izpildes rezultāta, izvēlas, kuru koda fragmentu izpildīt. Piemēram, ja tas, kurš skatās žūrnālu, ir tā īpašnieks, tad rādīt ieraksta labošanas ikonu, citādi (visos citos gadījumos) – nerādīt ieraksta labošanas ikonu.
    • foreach – nosacījums, kas izpilda koda bloku katram masīva mainīgajam. Piemēram, izvadīt katru ierakstu masīva elementu (ierakstus) pārlūkprogrammai.

Mēs saprotam, ka šī vārdnīca var atbildēt uz vairākiem jautājumiem, vienlaikus radot jaunus. Tāpēc nekautrējies uzdot jautājumus, kādi tev radušies sakarā ar terminoloģiju. Centīsimies izskaidrot.

Šis ir tulkojums, Saiteoriģināls šeit (asciident).

x-ƒ (x_f)

Aptauja

ceturtdien, 13.05.2004 @1:01 pm | x-ƒ

Poll #2504
Open to: All, results viewable to: All

Rakstot HTML, kā Tu parasti pieraksti krāsas?

View Answers

vārdiem – moccasin
2 (9.5%)

hex – #ffe4b5
18 (85.7%)

rgb – rgb(255,228,181)
1 (4.8%)

vārdiem – transparent – vienīgā krāsa, kuru lietoju :)
0 (0.0%)

x-ƒ (x_f)

Ātrumam ir nozīme

otrdien, 11.05.2004 @2:33 pm | x-ƒ

Kaut kad ziemā, kad Ciba tika atjaunota un parādījās S2 stilu sistēma, kāds [info]watt'am ieminējās, ka viņam liekoties, ka S2 darbojas ātrāk par S1. Watt viņam nepiekrita.
Tomēr teorētiski darbojas ātrāk gan.

Speed
Internally, S2 code is compiled into a lower level language and run directly when the page is loaded. Unlike S1, no parsing is necessary at run time. Also, S2 outputs directly to the client instead of being entirely buffered in memory first like S1, since S2 doesn’t need to do tons of templating replacements at the end.
Trusted code by default prints direct to the client without going through the HTML cleaner. Untrusted, user-created layers send all their output through an HTML cleaner which removes JavaScript and other potentially harmful markup.
Popular S2 code & data is cached by the webserver.

x-ƒ (x_f)

S2 filosofija

pirmdien, 10.05.2004 @1:23 pm | x-ƒ

Es centīšos aprakstīt S2 stila uzbūvi un kā tas viss darbojas. Ņem vērā, ka dokumentāciju rakstīšana nav mana stiprā puse. Bet ceru, ka vismaz kāds to sapratīs un izmantos. Kad es pirmoreiz redzēju S2 kodu, tad nesapratu, ko ar to vispār var izdarīt, lai pielāgotu savām vajadzībām. Tas likās neizprotami. Bet patiesībā S2 nav sarežģīta! Vienkārši izmēģini.

Klases Page ģimenes koks
 Page
  |– RecentPage
  |      |
  |    FriendsPage
  |– EntryPage
  |– ReplyPage
  |– YearPage
  |– MonthPage
  |– DayPage

Tāda, lūk, ir S2 stila uzbūve. Tas ir koks, kurā attēlotas klases un to attiecības ģimenē un pēc nāves (mantošana). :)
Page ir pati galvenā klase. Un, kas definēts šajā klasē, attiecas uz visām atvasinātajām klasēm (bērniem).

Piemēram, manā stilā Page::print funkcija satur visu kopā. Tajā atrodas pati HTML lapa un tiek izsauktas vajadzīgās funkcijas, atkarībā no pieprasītā skata (friends, reply, calendar, ..). Man tas ir ērti, jo visām lapām tiek nodrošināts vienāds izskats.
Bet var arī darīt savādāk. Piemēram, [info]mp stilā "Debesu Zvani" šādas funkcijas Page::print nav vispār. Tur viss tiek salikts kopā katrai lapai (RecentPage, FriendsPage, EntryPage, ..) atsevišķi. Es nezinu, kāpēc M. tā darīja, bet, ja jau viņam tā likās ērtāk, tad – kāpēc gan ne. Viņa stilā universālais saturs atrodas Page::print_custom_head un Page::print_plain_footer funkcijās, kas tiek izsauktas katram skatam.

Vēl viena lieta, kas jāņem vērā rakstot stilu, ir, ka ir iespējams pārdefinēt gandrīz jebkuru (ir izņēmumi) funkciju no core slāņa (layer). Šis slānis ir brīvi pieejams jebkuram. Ja vēlies to redzēt, tad Saitespied šeit. Šķiet, ka šo un visu turpmāko vaidzēja rakstīt pašā sākumā, bet nu labi.

Katram S2 slānim, kuru Tu raksti, gan apakšā, gan virs tā var būt vairāki citi slāņi. Jebkurā gadījumā pašā apakšā būs pats galvenais slānis – core. Tālāk es aprakstīšu katru iespējamo slāni. Tie sakārtoti pretējā kārtībā, kā tie "klājas" viens uz otra. (Programmētājiem koki parasti ir ar saknēm uz augšu.)

slāņi )

Tātad pavisam kopā ir seši slāņi, no kuriem Tu vari darboties ar četriem (jo pirmie divi ir iebūvētie):
 => core
   => i18nc
   => layout
     => i18n
     => theme
     => user

Jā, man patīk zīmēt šēmiņas. :)

Vēl viena lieta, kas iesācējiem varētu noderēt, lai viss sāktu darboties. Lai varētu izmantot šos slāņus, ir nepieciešams izveidot stilu. Katrā stilā var būt iekļauti (pievienoti, pieslēgti) no 1 līdz 6 slāņiem. Tam paredzēta neliela, viegli saprotama forma.
Piezīme. Ja Tev ir vairāki stili, tad, zinot to ID numurus, Tu vari apskatīties, kā, izmantojot šo stilu, izskatīsies Tavs žūrnāls. Tev vienkārši žūrnāla adreses galā jāpieraksta "?s2id=xxxx", kur "xxxx" vietā ir slāņa ID numurs.
Vēl viena piezīme. Lai apskatītos kāda cita lietotāja žūrnālu "savā stilā", :) adreses galā pieraksti "?style=mine".

kopsavilkums par slāņiem )

Ū, pats galvenais. Ja nu kāds to vēl nezina, tad pārmainīt lietojamo stilu sistēmu ir iespējams Saitešeit. Ņem vērā, ka, ja Tu lieto S1 un vēlies izmēģināt S2 sistēmu, tad vari to droši darīt, jo Tavs S1 stils paliks neskarts. Tam patiešām nekas nenotiks un, salaižot kaut ko galīgā pakaļā, varēsi mierīgi atgriezties pie vecā, labā S1. Kamēr vien [info]watt nenometīs serveri. :)

Daļa šī puksta ir nākusi no manis, bet lielākā daļa ir tulkota no S2 Manual (PDF fails, 230k). Vēlāk varbūt vēl.

x-ƒ (x_f)

Showbiz

pirmdien, 10.05.2004 @12:15 pm | x-ƒ

Un tad mācekļi redzēja, kā Jēzus pārvērta ūdeni vīnā un jautāja Dievam: «How the hell did he do that??»
Gabaliņš no Rowan Atkinson (plašāk pazīstams kā Mr. Bean) šova.

Man radās kāda, manuprāt, noderīga ideja, taču, vai tā dzīvos vai drīz mirs, būs atkarīgs no jums. Esmu izveidojis jaunu kopienu – [info]style – un tā paredzēta visam, kas saistīts ar stiliem (gan S1, gan S2), sava žūrnāla izskatu un vispār related stuff* Sviesta Cibā. Varam diskusēt arī par vispārīgām web-tehnoloģijām – XHTML, DHTML, CSS, XML, XSL, ..

Tā ir atvērta, bez ierobežojumiem. Tā domāta, lai nesaprašanā nonākušie varētu uzdot savus jautājumus, bet apskaidrību guvušie – padalīties (uz grābekļa kāpšanas) pieredzē.
S2 darbojas jau vairākus mēnešus un ir radušies vairāki jauki stili. Jau ļoti daudziem ir zināms [info]mp ar saviem Debesu Zvaniem (savējie sapratīs :) ). Arī ar S1 ir izveidoti daudzi jauki stili, nu, piemēram, [info]munky. Sou – kāpēc gan nepamācīt citus, kā tikt pie tāda izskata un īpašībām savam žūrnālam?

Uz SaiteLiveJournal ir vairākas kopienas par šo tēmu. Mums arī vajag! Un latviski. Turklāt mēs taču esam pret patentiem. :)
Tātad, rakstiet tutoriāļus, uzdodiet savus jautājumus, aprakstiet problēmas Cibā un personiskajā dzīvē. :) Cibiņi lielākoties ir ar gaišām galviņām un noteikti centīsies palīdzēt.

«Es esmu d***ā galīgā, man nav, ko pasaukt palīgā.» :)
(No cita Rovana Atkinsona projekta – seriāla «Black Adder»)

_________
*related stuff – korelatīvās mantas :)