<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>pinax &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/pinax/</link>
	<description>Feed of posts on WordPress.com tagged "pinax"</description>
	<pubDate>Wed, 10 Feb 2010 04:43:56 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[pesce - polisillabo]]></title>
<link>http://lemmarioenciclopedico.wordpress.com/2009/09/06/pesce-polisillabo/</link>
<pubDate>Sun, 06 Sep 2009 10:07:37 +0000</pubDate>
<dc:creator>antoniobon</dc:creator>
<guid>http://lemmarioenciclopedico.wordpress.com/2009/09/06/pesce-polisillabo/</guid>
<description><![CDATA[pésce,pesce, pésce ago,pesce_ago, pésce àngelo,pesce_angelo, pésce arcière,pesce_arciere, pésce arge]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>pésce,pesce, pésce ago,pesce_ago, pésce àngelo,pesce_angelo, pésce arcière,pesce_arciere, pésce argentino,pesce_argentino, pésce azzurro,pesce_azzurro, pésce balèstra,pesce_balestra, pésce beccaccino,pesce_beccaccino, pésce bòve,pesce_bove, pésce bùfalo,pesce_bufalo, pescecane,pescecane, pésce cappóne,pesce_cappone, pésce castagna,pesce_castagna, pésce chirurgo,pesce_chirurgo, pésce chitarra,pesce_chitarra, pésce cinghiale,pesce_cinghiale, pésce coltèllo,pesce_coltello, pésce combattènte,pesce_combattente, pésce còrvo,pesce_corvo, pésce dal crocifisso,pesce_dal_crocifisso, pésce dall’òlio,pesce_dallolio, pésce d’argènto,pesce_dargento, pésce delle caravèlle portoghési,pesce_delle_caravelle_portoghesi, pésce del paradiso,pesce_del_paradiso, pésce di Cristo,pesce_di_cristo, pésce di Grimaldi,pesce_di_grimaldi, pésce elefante,pesce_elefante, pésce falso pulitòre,pesce_falso_pulitore, pésce farfalla,pesce_farfalla, pésce fiamma,pesce_fiamma, pésce gallo,pesce_gallo, pésce gatto,pesce_gatto, pésce girino,pesce_girino, pésce imperatóre,pesce_imperatore, pésce ìstrice,pesce_istrice, pésce lancétta,pesce_lancetta, pésce lantèrna,pesce_lanterna, pésce lima,pesce_lima, pésce lucèrna,pesce_lucerna, pésce luna,pesce_luna, pésce lupo,pesce_lupo, pésce manzo,pesce_manzo, pésce martèllo,pesce_martello, pésce nastro,pesce_nastro, pésce pagliàccio,pesce_pagliaccio, pésce palla macchiato,pesce_palla_macchiato, pésce pappagallo,pesce_pappagallo, pésce pècora,pesce_pecora, pésce pigna,pesce_pigna, pésce pilòta,pesce_pilota, pésce pipa,pesce_pipa, pésce pipistrèllo,pesce_pipistrello, pésce pompadour,pesce_pompadour, pésce pòrco,pesce_porco, pésce prète,pesce_prete, pésce pulitóre,pesce_pulitore, pésce quattròcchi,pesce_quattrocchi, pésce ragno,pesce_ragno, pésce re,pesce_re, pésce rósso,pesce_rosso, pésce san Piètro,pesce_san_pietro, pésce sciàbola,pesce_sciabola, pésce séga,pesce_sega, pésce sèrra,pesce_serra, pésce sóle,pesce_sole, pésce spada,pesce_spada, pésce spàtola,pesce_spatola, pésce tamburo,pesce_tamburo, pésce tòpo,pesce_topo, pésce trombétta,pesce_trombetta, pésce véla,pesce_vela, pésce véscovo,pesce_vescovo, pésce violino,pesce_violino, pésce volante,pesce_volante, pésce vólpe,pesce_volpe, pescheréccio,peschereccio, pescherìa,pescheria, peschièra,peschiera, pèschio,peschio, Pésci (zoologia),pesci, pesciaiòla,pesciaiola, pesciaiòlo,pesciaiolo, pescièra,pesciera, pescino,pescino, pesciolino,pesciolino, pescivéndolo,pescivendolo, pèsco,pesco, pescosità,pescosita, pescóso,pescoso, peseta,peseta, peshw\f4~a\f0~,peshwa, pesièra,pesiera, pesista,pesista, pesìstica,pesistica, péso (sostantivo),peso1, péso (aggettivo),peso2, peso,peso, pésolo,pesolo, pessàrio,pessario, pèssi,pessi, pessia o -pèssi,_pessia_o__pessi, pessimismo,pessimismo, pessimista,pessimista, pessimìstico,pessimistico, pèssimo,pessimo, pésta,pesta, pestàggio,pestaggio, pestano,pestano, pestare,pestare, pestaròla,pestarola, pestata,pestata, pestatòio,pestatoio, pèste,peste, pèste d’àcqua,peste_dacqua, pestèllo,pestello, pesticida,pesticida, pestìfero,pestifero, pestilènte,pestilente, pestilènza,pestilenza, pestilenziale,pestilenziale, pésto,pesto, pestóne,pestone, pestóso,pestoso, PET,pet, petàcchio,petacchio, Petalìctidi,petalictidi, petalismo,petalismo, petalite,petalite, pètalo,petalo, petalòide,petaloide, petaloidèo,petaloideo, petardo,petardo, Petasites,petasites, pètaso,petaso, Petaurista,petaurista, Petauristini,petauristini, petàuro,petauro, petécchia,petecchia, petecchiale,petecchiale, petit-beurre,petit_beurre, petit-four,petit_four, petit-gris,petit_gris, petitio hereditatis,petitio_hereditatis, petitòrio,petitorio, petit rat,petit_rat, petizióne,petizione, peto,_peto, péto,peto, petrale,petrale, petrarcheggiare,petrarcheggiare, petrarchésco,petrarchesco, petrarchismo,petrarchismo, petrarchista,petrarchista, petrèllo,petrello, petrière o petrièro,petriere_o_petriero, petrino,petrino, petro-,petro_, petrobitume,petrobitume, petrodòllari o petroldòllari,petrodollari_o_petroldollari, Petrogale,petrogale, petrogènesi,petrogenesi, petròglifo,petroglifo, petrografìa,petrografia, petrolato,petrolato, petrolchìmica,petrolchimica, petrolchìmico,petrolchimico, petrolièra,petroliera, petrolière,petroliere, petrolièro,petroliero, petrolìfero,petrolifero, petròlio,petrolio, petrologìa,petrologia, Petròmidi,petromidi, Petromizónti,petromizonti, Petromizontifórmi,petromizontiformi, petroniano,petroniano, petrosélce,petroselce, petroselcióso,petroselcioso, Petroselinum,petroselinum, petrosite,petrosite, petróso,petroso, petrotettònica,petrotettonica, pettata,pettata, pettazzurro,pettazzurro, pettégola,pettegola, pettegolare,pettegolare, pettegolézzo,pettegolezzo, pettegolìo,pettegolio, pettégolo,pettegolo, pettignóne,pettignone, pettinàccia,pettinaccia, pettinare,pettinare, Pettinariìdi,pettinariidi, pettinata,pettinata, pettinato,pettinato, pettinatóre,pettinatore, pettinatrice,pettinatrice, pettinatura,pettinatura, pèttine,pettine, pettinèlla,pettinella, pettìneo,pettineo, petting,petting, Pèttinibranchi,pettinibranchi, pettinièra,pettiniera, pettino,pettino, pettirósso,pettirosso, pètto,petto, pettorale,pettorale, pettorina,pettorina, pettoruto,pettoruto, petulante,petulante, petulanza,petulanza, petùnia,petunia, Peucedanum,peucedanum, pévera,pevera, peveràccio,peveraccio, peyotismo,peyotismo, peyòtl,peyotl, pezetèri,pezeteri, peziòlo,peziolo, Peziza,peziza, pèzza,pezza, pezzame,pezzame, pezzato,pezzato, pezzatura,pezzatura1 pezzatura2, pezzènte,pezzente, pezzétta,pezzetta, pèzzo,pezzo, pezzóne,pezzone, pezzòtto,pezzotto, pezzullo,pezzullo, pezzuòla o pezzòla,pezzuola_o_pezzola, pfaffiano,pfaffiano, pH,ph_1, Phacops,phacops, Phalera,phalera, Phallaceae,phallaceae, Phallostethus,phallostethus, Phallus,phallus, Pheidole,pheidole, Phenacodus,phenacodus, phersu,phersu, phi,phi, Phi Beta Kappa,phi_beta_kappa, Philanthus,philanthus, Philine,philine, Phillipsia,phillipsia, phillipsite,phillipsite, Phillyrea,phillyrea, Philodendron,philodendron, Philonotis,philonotis, Phleum,phleum, Phlox,phlox, Phoenix (botanica),phoenix, Pholcus,pholcus, Pholiota,pholiota, Phoma,phoma, phòn,phon, Phormium,phormium, Phororhacos,phororhacos, phòt,phot, Photocorynus,photocorynus, photo finish,photo_finish, Phragmidium,phragmidium, Phragmites,phragmites, Phyllirhoe,phyllirhoe, Phyllocactus,phyllocactus, Phylloceratina,phylloceratina, Phyllograptus,phyllograptus, Phylloteca,phylloteca, phylum,phylum, Physalis,physalis, Physcia,physcia, physiologies,physiologies, Phyteuma,phyteuma, Phythelephas,phythelephas, Phytophthora,phytophthora, pi,pi, piaccicóso,piaccicoso, piaccicòtto,piaccicotto, piacènte,piacente, piacentino (di Piacenza),piacentino1, piacentino (gastronomia),piacentino2, piacènza,piacenza, Piacenziano,piacenziano, piacére (verbo),piacere1, piacére (sostantivo),piacere2, piacévole,piacevole, piacevoleggiare,piacevoleggiare, piacevolézza,piacevolezza, piàcolo,piacolo, piada,piada, piae causae,piae_causae, piaga,piaga, piagare,piagare, piaggerìa,piaggeria, piàggia,piaggia, piaggiare,piaggiare, piagnistèo,piagnisteo, piagnóne,piagnone, piagnucolare,piagnucolare, piagnucolìo,piagnucolio, piagnucolóne,piagnucolone, piagnucolóso,piagnucoloso, piagóso,piagoso, pialla,pialla, piallàccio,piallaccio, piallare,piallare, piallatrice,piallatrice, piallatura,piallatura, piallétto,pialletto, piallóne,piallone, piamadre o pìa madre,piamadre_o_pia_madre, piana,piana, pianale,pianale, pianalto,pianalto, piancito,piancito, pianeggiare,pianeggiare, pianèlla,pianella, pianèlla della Madònna,pianella_della_madonna, pianeròttolo,pianerottolo, pianéta (astronomia),pianeta1, pianéta (religione),pianeta2, pianetino,pianetino, pianézza,pianezza, piangènte,piangente, piàngere,piangere, piangiucchiare,piangiucchiare, pianificare,pianificare, pianificazióne,pianificazione, pianigiano,pianigiano, pianino,pianino, pianismo,pianismo, pianista,pianista, pianìstico,pianistico, piano (aggettivo e avverbio),piano1, piano (sostantivo),piano2, piano (economia e altro),piano3, piano (musica),piano4, piano bar,piano_bar, pianocilìndrico,pianocilindrico, pianocòncavo o piano-còncavo,pianoconcavo_o_piano_concavo, pianoconvèsso o piano-convèsso,pianoconvesso_o_piano_convesso, pianofòrte,pianoforte, pianòla,pianola, pianòro,pianoro, pianotèrra,pianoterra, pianta,pianta, piantacaròte,piantacarote, piantàggine,piantaggine, piantagióne,piantagione, piantagrane,piantagrane, piantana,piantana, piantare,piantare, piantata,piantata, piantatóre,piantatore, piantazióne,piantazione, pianterréno,pianterreno, pianto (participio passato),pianto1, pianto (sostantivo),pianto2, piantonàio,piantonaio, piantonare,piantonare, piantóne,piantone, pianura,pianura, piarda,piarda, piartro,piartro, piastra,piastra1 piastra2, piastrèlla,piastrella, piastrellàio,piastrellaio, piastrellare,piastrellare, piastrellista,piastrellista, piastrìccio,piastriccio, piastrina,piastrina, piastrinemìa,piastrinemia, piastrino,piastrino, piastróne,piastrone, piatire,piatire, piato,piato, piattabanda,piattabanda, piattafórma,piattaforma, piattàia,piattaia, piattèllo,piattello, piattézza,piattezza, piattina,piattina, piattino,piattino, piattitùdine,piattitudine, piatto (aggettivo),piatto1, piatto (sostantivo),piatto2, piàttola,piattola, piattonare,piattonare, piattonata,piattonata, piattóne,piattone, piazza,piazza, piazzafòrte,piazzaforte, piazzaiòlo,piazzaiolo, piazzale,piazzale, piazzaménto,piazzamento, piazzare,piazzare, piazzaròlo,piazzarolo, piazzata,piazzata, piazzato,piazzato, piazzatóre,piazzatore, piazzista,piazzista, piazzòla,piazzola, pible,pible, pica,pica1 pica2 pica3, picador,picador, picapare,picapare, picarésco,picaresco, pícaro,picaro, picca,picca1 picca2, piccamarra,piccamarra, piccante,piccante, piccardo,piccardo, piccare,piccare, piccarsi,piccarsi, piccata,piccata, piccatìglio,piccatiglio, piccatura,piccatura, picchettàggio,picchettaggio, picchettaménto,picchettamento, picchettare,picchettare, picchettato,picchettato, picchettazióne,picchettazione, picchétto (sostantivo),picchetto1, picchétto (gioco),picchetto2, picchiapètto,picchiapetto, picchiare,picchiare, picchiata,picchiata, picchiatèllo,picchiatello, picchiatóre,picchiatore, picchière,picchiere, picchierellare,picchierellare, picchierèllo,picchierello, picchiettare,picchiettare, picchiettato,picchiettato, picchiettatura,picchiettatura, picchiettìo,picchiettio, pìcchio (sostantivo),picchio1, pìcchio (zoologia),picchio2, picchiottare,picchiottare, picchiòtto,picchiotto, pìccia,piccia, piccinerìa,piccineria, piccinina,piccinina, piccino,piccino, pìcciolo,picciolo, picciòlo o picciuòlo,picciolo_o_picciuolo, piccionàia,piccionaia, piccióne,piccione, picciòtto,picciotto, piccirillo,piccirillo, picco,picco, piccolézza,piccolezza, pìccolo,piccolo, picconare,picconare, picconata,picconata, piccóne,piccone, picconière,picconiere, piccóso,piccoso, piccòzza,piccozza, Picea,picea, picène,picene, picèno,piceno, pìceo,piceo, picetum,picetum, pici,pici, Pìcidi,picidi, Picifórmi,piciformi, pickeringite,pickeringite, pick-up,pick_up, piclàggio,piclaggio, picnìc,picnic, pìcnico,picnico, picnìdio,picnidio, picno-,picno_, picnoconìdio,picnoconidio, Picnogònidi,picnogonidi, Picnogonomòrfi,picnogonomorfi, picnolessìa,picnolessia, picnòmetro,picnometro, Picnonòtidi,picnonotidi, picnòsi,picnosi, picnòstilo,picnostilo, pico-,pico_, Picodnavìrus,picodnavirus, picolina,picolina, picolìnico,picolinico, picolìt o piccolìt,picolit_o_piccolit, Picornavìrus,picornavirus, picotite,picotite, picòzzo,picozzo, picpusiani,picpusiani, picrasmina,picrasmina, picratòl,picratol, pìcrico,picrico, picrite,picrite, picrofarmacolite,picrofarmacolite, picrotossina,picrotossina, picura,picura, Pidgin-English,pidgin_english, pidiessino,pidiessino, pidocchiàia,pidocchiaia, pidocchierìa,pidocchieria, pidòcchio,pidocchio, pidocchióso,pidocchioso, piè,pie, pièce,piece, piedàrm o pièd’arm,piedarm_o_piedarm, pied-à-terre,pied_a_terre, pied-de-poule,pied_de_poule, piède,piede, piède di gatto,piede_di_gatto, piède di pellicano,piede_di_pellicano, piedino,piedino, piedipiatti,piedipiatti, piedistallo o piedestallo,piedistallo_o_piedestallo, pièdra,piedra, piedritto,piedritto, pièga,piega, piegabaffi,piegabaffi, piegacìglia,piegaciglia, piegafèrro,piegaferro, piegafiletti,piegafiletti, piegaménto,piegamento, piegare,piegare, piegata,piegata, piegatrice,piegatrice, piegatura,piegatura, pieghétta,pieghetta, pieghettare,pieghettare, pieghettato,pieghettato, pieghettatura,pieghettatura, pieghévole,pieghevole, piègo,piego, pielite,pielite, pielo-,pielo_, pielocistite,pielocistite, pielografìa,pielografia, pielonefrite,pielonefrite, pielostomìa,pielostomia, piemìa,piemia, piemontése,piemontese, piemontesismo,piemontesismo, piemontite,piemontite, pièna,piena, pienézza,pienezza, pièno,pieno, pienóne,pienone, pienòtto,pienotto, Pièridi,pieridi, pièrio,pierio, piercing,piercing, pièta,pieta, pietà,pieta_1, pietanza,pietanza, pietanzièra,pietanziera, pietismo,pietismo, pietìstico,pietistico, pietóso,pietoso, piètra,pietra, piètra fungàia,pietra_fungaia, pietràia,pietraia, pietrificare,pietrificare, pietrigno,pietrigno, pietrino,pietrino, pietrischétto,pietrischetto, pietrisco,pietrisco, pietrista,pietrista, pietrosità,pietrosita, pietróso,pietroso, pievano,pievano, piève,pieve, piè-velóce o pievelóce,pie_veloce_o_pieveloce, piezo-,piezo_, piezoclasi,piezoclasi, piezoelettricità,piezoelettricita, piezoelèttrico,piezoelettrico, piezometrìa,piezometria, piezomètrico,piezometrico, piezòmetro,piezometro, pif e paf,pif_e_paf, pifferàio,pifferaio, pifferare,pifferare, pìffero,piffero, pìffete,piffete, pìgamo,pigamo, pigaròlo,pigarolo, pigato,pigato, pigeonite,pigeonite, pigiama,pigiama, pìgia pìgia,pigia_pigia, pigiare,pigiare, pigiata,pigiata, pigiatrice,pigiatrice, pigiatura,pigiatura, pigìdio,pigidio, pìgio,pigio, pigionale,pigionale, pigionante,pigionante, pigióne,pigione, pigliamósche,pigliamosche, pigliare,pigliare, pigliatutto,pigliatutto, pìglio,piglio1 piglio2, pigmentare,pigmentare, pigmentàrio,pigmentario, pigménto,pigmento, pigmèo,pigmeo, pigna,pigna, pignatta,pignatta, pignoccata,pignoccata, pignolato,pignolato, pignoleggiare,pignoleggiare, pignolerìa,pignoleria, pignolésco,pignolesco, pignòlo,pignolo, pignóne,pignone, pignorabilità,pignorabilita, pignorare,pignorare, pignoratìzio,pignoratizio, pigo,pigo, Pigòfori,pigofori, pìgola,pigola, pigolare,pigolare, pigolìo,pigolio, pìgopo,pigopo, Pigopòdidi,pigopodidi, pigoscèlide,pigoscelide, pigostilo,pigostilo, pigrìzia,pigrizia, pigro,pigro, pig trade,pig_trade, piha-kaetta,piha_kaetta, P.I.L.,p_i_l_, pila,pila1 pila2, pilaf,pilaf, pilare,pilare, pilastrata,pilastrata, pilàstrico,pilastrico, pilastro,pilastro, pilatura,pilatura, Pilea,pilea_1, pileato,pileato, pileflebite,pileflebite, piléggio,pileggio, pìleo,pileo, pileoriza,pileoriza, pilidium,pilidium, pilière,piliere, pilìfero,pilifero, piligno,piligno, pill,pill, pillàcchera,pillacchera, pillare,pillare, pilling,pilling, pillo,pillo, pìllola,pillola, pillottare o pilottare,pillottare_o_pilottare, pillòtto o pilòtto,pillotto_o_pilotto, pillow-lava,pillow_lava, pilo,pilo, pilocarpina,pilocarpina, piloerezióne,piloerezione, pilonaménto,pilonamento, pilóne,pilone, pilòrcio,pilorcio, pilòrico,pilorico, pilòro,piloro, piloroduodenite,piloroduodenite, piloroplàstica,piloroplastica, piloroptòsi,piloroptosi, pilorospasmo,pilorospasmo, pilosebàceo,pilosebaceo, pilòta,pilota, pilotàggio,pilotaggio, pilotare,pilotare, pilotàssico,pilotassico, pilotina,pilotina, pilotis,pilotis, pilpul,pilpul, piluccare,piluccare, Pilularia,pilularia, pim,pim, pimaricina,pimaricina, Pimelòdidi,pimelodidi, pimelòdo,pimelodo, pimentare,pimentare, piménto,pimento, pimpante,pimpante, pimperimpèra,pimperimpera, pimpinèlla,pimpinella, Pimpla,pimpla, pin,pin, pinàccia,pinaccia, pinace,pinace, Pinàcee,pinacee, pinacocito,pinacocito, pinacodèrma,pinacoderma, pinacoidale,pinacoidale, pinacòide,pinacoide, pinacotèca,pinacoteca, pinastro,pinastro, pínax,pinax, pinca,pinca, pince,pince, pince-nez,pince_nez, pincèrna,pincerna, pinch,pinch, pinché,pinche, pinch-off,pinch_off, pinco,pinco1 pinco2, pindàrico,pindarico, pindarismo,pindarismo, pineale,pineale, pinealòma,pinealoma, pinèlla,pinella, pinène,pinene, pinéta,pineta, p’ing-chun,ping_chun, pìngere,pingere1 pingere2, ping-pong,ping_pong, pìngue,pingue, pinguècola,pinguecola, pinguèdine,pinguedine, Pinguicola,pinguicola, pinguino,pinguino, pinkus,pinkus, pinna,pinna, Pinna,pinna_1, pinnàcolo (architettura e geologia),pinnacolo1, pinnàcolo (gioco),pinnacolo2, Pìnnidi,pinnidi, Pinnìpedi,pinnipedi, pinnoite,pinnoite, pinnotère,pinnotere, pìnnula,pinnula, Pinnularia,pinnularia, pino,pino, pinoccata o pinocchiata,pinoccata_o_pinocchiata, pinòcchio,pinocchio, pinocitòsi,pinocitosi, pinòlo,pinolo, pinot,pinot, Pinscher,pinscher, pinta,pinta, pintadera,pintadera, pinto,pinto, pintura,pintura, Pinus,pinus, pinyin,pinyin, pinza,pinza, pinzare,pinzare, pinzatrice,pinzatrice, pinzatura,pinzatura, pinzétta,pinzetta, pinzimònio,pinzimonio, pinzo,pinzo, pinzòchero,pinzochero, pio-,pio_, pio (aggettivo),pio1, pio (voce onomatopeica),pio2, piobacillòsi,piobacillosi, piocèfalo,piocefalo, piocèle,piocele, piocianina,piocianina, piocito,piocito, piòda,pioda, piodermite,piodermite, Piofìlidi,piofilidi, piòggia,pioggia, piòlo,piolo, piombàggine,piombaggine, piombàggio,piombaggio, piombare,piombare, piombatóio,piombatoio, piombatura,piombatura, piombìfero,piombifero, piombino (sostantivo),piombino1, piombino (zoologia),piombino2, piómbo,piombo, piombóso,piomboso, piombotetraetile,piombotetraetile, piomètra,piometra, pióne,pione, pionefròsi,pionefrosi, piònico,pionico, pionière,pioniere, pionierismo,pionierismo, pionierìstico,pionieristico, pionièro,pioniero, pioperitonèo,pioperitoneo, piopneumotorace,piopneumotorace, piopparèllo,piopparello, pioppèlla,pioppella, pioppéto,pioppeto, pioppicoltura,pioppicoltura, pioppino,pioppino, piòppo,pioppo, piorrèa,piorrea, piorròico,piorroico, piosalpinge,piosalpinge, piòta,piota, piotare,piotare, piòva,piova, piovanèllo,piovanello, piovano,piovano1, piovasco,piovasco, piovènte,piovente, piòvere,piovere, piovigginare,piovigginare, piovìggine,pioviggine, piovigginóso,piovigginoso, piovìschio,piovischio, pioviscolare,pioviscolare, piovórno,piovorno, piovosità,piovosita, piovóso,piovoso, piòvra,piovra, pip,pip, pipa,pipa, Pipa,pipa_1, pipare,pipare, pipata,pipata, pipelet,pipelet, pipeline,pipeline, pipenzolato,pipenzolato, Piperàcee,piperacee, piperazina,piperazina, piperidina,piperidina, piperidióne,piperidione, piperidolato,piperidolato, piperina,piperina, piperonàlio,piperonalio, piperossano,piperossano, pipétta,pipetta, pipettare,pipettare, pipì,pipi, Pìpidi,pipidi, pipilare,pipilare, pipistrèllo,pipistrello, pipistrèllo marino,pipistrello_marino, pipita,pipita, pipobromano,pipobromano, pippióne,pippione, pìppolo,pippolo, Pipra,pipra, Pìpridi,pipridi, piqué,pique, pira,pira, piràlide del granoturco,piralide_del_granoturco, Piràlidi,piralidi, piramidale,piramidale, piramidato,piramidato, piràmide,piramide, Piramidellàcei,piramidellacei, piramidóne,piramidone, pirandelliano,pirandelliano, pirandellismo,pirandellismo, piranha,piranha, piranòmetro,piranometro, pirargirite,pirargirite, pirata,pirata, pirateggiare,pirateggiare, piraterìa,pirateria, piratésco,piratesco, piràtico,piratico, pirazina,pirazina, pirazinammide,pirazinammide, pirazòlo,pirazolo, pirazolóne,pirazolone, pirenàico,pirenaico, pirène,pirene, pireney,pireney, pirenòide,pirenoide, Pirenomicèti,pirenomiceti, pirètico,piretico, piretògeno,piretogeno, piretoterapìa,piretoterapia, piretrina,piretrina, pirètro,piretro, pirex,pirex, pirgèometro,pirgeometro, piribenzamina,piribenzamina, pìrico,pirico, piridazina,piridazina, piridina,piridina, piridinolcarbammato,piridinolcarbammato, piridossina,piridossina, piridostigmina,piridostigmina, pirifórme,piriforme, pirilamina,pirilamina, pirimetamina,pirimetamina, pirimidina,pirimidina, pirite,pirite, pirìtico,piritico, pirla,pirla, piro-,piro_, piro,piro, pìroa,piroa, piroaurite,piroaurite, pirobitume,pirobitume, pirocatechina,pirocatechina, piroclàstico,piroclastico, piroclòro,pirocloro, pirocroite,pirocroite, piroelettricità,piroelettricita, piroelèttrico,piroelettrico, piroeliometrìa,piroeliometria, piroeliòmetro o pireliòmetro,piroeliometro_o_pireliometro, piroétta,piroetta, piroettare,piroettare, piròfila,pirofila, pirofillite,pirofillite, piròfilo,pirofilo, pirofobìa,pirofobia, piroforicità,piroforicita, pirofòrico,piroforico, piròforo,piroforo, pirofosfatasi,pirofosfatasi, pirofosfato,pirofosfato, pirofosfòrico,pirofosforico, piròga,piroga, pirogàllico,pirogallico, pirogallòlo,pirogallolo, pirògeno,pirogeno, pirografìa,pirografia, pirogràfico,pirografico, pirografista,pirografista, Pirola,pirola, piròlisi,pirolisi, piròlo,pirolo, pirolusite,pirolusite, piromagma,piromagma, piromagnètico,piromagnetico, piromagnetismo,piromagnetismo, piròmane,piromane, piromanìa,piromania, piromante,piromante, piromanzìa,piromanzia, pirometallurgìa,pirometallurgia, pirometrìa,pirometria, piromètrico,pirometrico, pirometrista,pirometrista, piròmetro,pirometro, piromorfite,piromorfite, piróne,pirone, piro-piro,piro_piro, Piroplasmèi,piroplasmei, Piroplàsmidi,piroplasmidi, piroplasmòsi,piroplasmosi, piròpo,piropo, piròscafo,piroscafo, piroscissióne,piroscissione, piroscisto,piroscisto, pirosfèra,pirosfera, piròsi,pirosi, pirosolfato,pirosolfato, pirosolfito,pirosolfito, Pirosòmidi,pirosomidi, pirossenite,pirossenite, piròsseno,pirosseno, pirossilina,pirossilina, pirotècnica o pirotecnìa,pirotecnica_o_pirotecnia, pirotècnico,pirotecnico, Pirotèri,piroteri, pìrrica,pirrica, pirrìchio,pirrichio, pirro-,pirro_, Pirrocòridi,pirrocoridi, Pirròfite,pirrofite, pirròlo,pirrolo, pirronismo,pirronismo, pirronista,pirronista, pirronìstico,pirronistico, pirrotina,pirrotina, pirssonite,pirssonite, pirùvico,piruvico, pirùvico-chinasi,piruvico_chinasi, pirùvico-decarbossilasi,piruvico_decarbossilasi, pisano,pisano, Pisàuridi,pisauridi, piscàtico,piscatico, piscatòrio,piscatorio, pìscia,piscia, pisciallètto,piscialletto, pisciare,pisciare, pisciasàngue,pisciasangue, pisciata,pisciata, pisciatóio,pisciatoio, Piscicola,piscicola, Piscicòlidi,piscicolidi, piscicoltóre,piscicoltore, piscicoltura,piscicoltura, Piscidia,piscidia, piscina,piscina, pìscio,piscio, piscióne,piscione, pisèllo,pisello, pisifórme,pisiforme, Pisiònidi,pisionidi, pisolare,pisolare, pìsolo,pisolo, pispàino,pispaino, pispigliare,pispigliare, pispìglio,pispiglio, pispiglìo,pispiglio_1, pispillòria,pispilloria, pìspino,pispino, pìspola,pispola, pispolétta,pispoletta, pissaladièra,pissaladiera, pìsside,pisside, pissi pissi,pissi_pissi, pista,pista, pistàcchio,pistacchio, Pistacia,pistacia, pistacite,pistacite, pistagna,pistagna, pistard,pistard, pistatrice,pistatrice, pistillìfero,pistillifero, pistillo,pistillo, pistillòdio,pistillodio, pistòcco,pistocco, pistòla (militaria),pistola1, pistòla (moneta),pistola2, pìstola,pistola, pistolèro,pistolero, pistolése,pistolese, pistolettata,pistolettata, pistolétto,pistoletto, pistolòtto,pistolotto, pistóne,pistone, pistrinàio o prestinàio,pistrinaio_o_prestinaio, pistrino o prestino,pistrino_o_prestino, Pisum,pisum, pitagorèo,pitagoreo, pitagòrico,pitagorico, pitagorismo,pitagorismo, pitale,pitale, pitanga,pitanga, pitango,pitango, pitcher,pitcher, pitchpine,pitchpine, Pitecantropine,pitecantropine, pitecàntropo,pitecantropo, pitecantropòide,pitecantropoide, pitècia,pitecia, Pitecini,pitecini, píthos,pithos, pitìade,pitiade, pitiatismo,pitiatismo, pitirìasi,pitiriasi, pitoccare,pitoccare, pitoccherìa,pitoccheria, pitocchétto,pitocchetto, pitòcco,pitocco, pitóne (zoologia),pitone1, pitóne (orologeria),pitone2, pitonéssa,pitonessa, pitònico,pitonico, Pitònidi,pitonidi, pitta,pitta, pittare,pittare1 pittare2, Pìttidi,pittidi, pìttima (sostantivo),pittima1, pìttima (zoologia),pittima2, pitting,pitting, pittografìa,pittografia, pittogràfico,pittografico, pittogramma,pittogramma, pittóre,pittore, pittorésco,pittoresco, pittoricismo,pittoricismo, pittoricità,pittoricita, pittòrico,pittorico, Pittosporàcee,pittosporacee, pittòsporo,pittosporo, pittura,pittura, Pittura, Pittura_storia, classificazioni, movimenti e scuole, Pittura_lessico, tecniche, materiali, tipologie, Pittura_il Medioevo, Pittura_la pittura del Quattrocento, Pittura_la pittura del Cinquecento_ Pittura_la pittura del Cinquecento, in Italia, Pittura_la pittura del Cinquecento_in Germania e Austria, Pittura_la pittura del Cinquecento_negli altri Paesi europei, Pittura_la pittura del Cinquecento_in Asia, Pittura_la pittura del Seicento, Pittura_la pittura del Seicento_in Italia, Pittura_la pittura del Seicento_in Francia, Pittura_la pittura del Seicento_in Spagna e Portogallo, Pittura_la pittura del Seicento_negli altri Paesi europei, Pittura_la pittura del Seicento_in Asia e in America, Pittura_la pittura del Settecento, Pittura_la pittura del Settecento_in Italia, Pittura_la pittura del Settecento_in Francia, Pittura_la pittura del Settecento_in Germania e Austria, Pittura_la pittura del Settecento_in Gran Bretagna, Pittura_la pittura del Settecento_in Spagna e Portogallo, Pittura_la pittura del Settecento_negli altri Paesi europei, Pittura_la pittura del Settecento_in Asia e in America, Pittura_la pittura dell’Ottocento, Pittura_la pittura dell’Ottocento_in Italia, Pittura_la pittura dell’Ottocento_in Francia, Pittura_la pittura dell’Ottocento_in Germania e Austria, Pittura_la pittura dell’Ottocento_in Gran Bretagna, Pittura_la pittura dell’Ottocento_nel Benelux, Pittura_la pittura dell’Ottocento_negli altri Paesi europei, Pittura_la pittura dell’Ottocento_in Asia, Pittura_la pittura dell’Ottocento_nelle Americhe, Pittura_la pittura del Novecento, Pittura_la pittura del Novecento_in Italia, Pittura_la pittura del Novecento_in Francia, Pittura_la pittura del Novecento_in Germania e Austria, Pittura_la pittura del Novecento_in Gran Bretagna, Pittura_la pittura del Novecento_in Spagna e Portogallo, Pittura_la pittura del Novecento_nel Benelux, Pittura_la pittura del Novecento_negli altri Paesi europei, Pittura_la pittura del Novecento_in Asia, Africa e Oceania, Pittura_la pittura del Novecento_nelle Americhe, pitturare,pitturare, pitùita o pituita,pituita_o_pituita, pituitàrio,pituitario, Pitymys,pitymys, Pityrosporum,pityrosporum, più,piuyy, piuccheperfètto,piuccheperfetto, piuma,piuma, piumàccio,piumaccio, piumàggio,piumaggio, piumato,piumato, piumétta,piumetta, piumino,piumino, piumóso,piumoso, piùria,piuria, Piùridi,piuridi, piuttòsto,piuttostoyy, piva,piva, pivèllo,pivello, piviale,piviale, pivière (zoologia),piviere1, pivière (sostantivo),piviere2, pivieréssa,pivieressa, pivo,pivo, pivot,pivot, pixel,pixel, piyy\f4~u\f0~\f3~t\f0~,piyyut, pìzio,pizio, pizza,pizza, pizzaiòla,pizzaiola, pizzaiòlo,pizzaiolo, pizzarda,pizzarda, pizzardóne,pizzardone, pizzare,pizzare, pizzerìa,pizzeria, pizzicàgnolo,pizzicagnolo, pizzicare,pizzicare, pizzicata,pizzicata, pizzicato,pizzicato, pizzicherìa,pizzicheria, pizzichino,pizzichino, pìzzico,pizzico, pizzicóre,pizzicore, pizzicottare,pizzicottare, pizzicòtto,pizzicotto, pizzo,pizzo, pizzòcchero,pizzocchero, pizzutèllo,pizzutello, pizzuto,pizzuto, placare,placare, placca,placca, placcàggio,placcaggio, placcare,placcare, placcato,placcato, placcatura,placcatura, placchétta,placchetta, placèbo,placebo, placènta,placenta, placentale o placentare,placentale_o_placentare, Placentati,placentati, placentazióne,placentazione, placer,placer, pla-chon,pla_chon, placidità,placidita, plàcido,placido, placitazióne,placitazione, plàcito,placito, Placodèrmi,placodermi, Placodónti,placodonti, Placòfori,placofori, Placozòi,placozoi, plafonatura,plafonatura, plafond,plafond, plafóne,plafone, plafonièra,plafoniera, plaga,plaga, plagale,plagale, plagiare,plagiare, Plagiaulax,plagiaulax, plàgio,plagio, Plagiochila,plagiochila, plagioclasi,plagioclasi, Plagiòrchidi,plagiorchidi, Plagiòstomi,plagiostomi, plagiotropismo,plagiotropismo, plaid,plaid, plàkea,plakea, planante,planante, planare (aggettivo),planare1, planare (verbo),planare2, Planaria,planaria, Planàrie,planarie, planàrio,planario, planarità,planarita, planata,planata, plància,plancia, planctòfago,planctofago, plàncton o plànkton,plancton_o_plankton, Planctosferoidèi,planctosferoidei, planctotròfico,planctotrofico, planeicità,planeicita, planèico,planeico, planeità,planeita, planetàrio (aggettivo),planetario1, planetàrio (sostantivo),planetario2, planetesimale,planetesimale, planetésimo,planetesimo, planetogènesi,planetogenesi, planetòide,planetoide, planetologìa,planetologia, planetòlogo,planetologo, plangi,plangi, plani-,plani_, Planigale,planigale, planimetrìa,planimetria, planimètrico,planimetrico, planìmetro,planimetro, Planipènni,planipenni, planisfèro,planisfero, planitùdine,planitudine, planivolumètrico,planivolumetrico, planning,planning, planocito,planocito, planoconìdio,planoconidio, planogamète,planogamete, planografìa,planografia, Planòrbidi,planorbidi, planospòra,planospora, plantagenèto,plantageneto, plantàggine,plantaggine, Plantaginàcee,plantaginacee, Plantago,plantago, plantare,plantare, plantìgrado,plantigrado, plàntula,plantula, plànula,planula, plaquette,plaquette, plasia,_plasia, Plaskett, stélla di-,plaskett_stella_di_, plasma,plasma, plasmacèllula,plasmacellula, plasmafèresi,plasmaferesi, plasmalèmma,plasmalemma, plasmalògeno,plasmalogeno, plasmare,plasmare, plasmàtico,plasmatico, plasmide,plasmide, plasmina,plasmina, plasmodèsma,plasmodesma, plasmòdio,plasmodio, Plasmodiophora,plasmodiophora, Plasmodium,plasmodium, Plasmòdromi,plasmodromi, plasmòide,plasmoide, plasmòlisi,plasmolisi, plasmóne,plasmone, Plasmopara,plasmopara, plàstic,plastic, plàstica,plastica, plasticare,plasticare, plasticismo,plasticismo, plasticità,plasticita, plàstico (aggettivo),plastico1, plàstico (sostantivo),plastico2, plastìdio,plastidio, plastificante,plastificante, plastificare,plastificare, plastificatóre,plastificatore, plastificazióne,plastificazione, plastigèl,plastigel, plastilina,plastilina, plastisòl,plastisol, plasto,_plasto, plastòcrono,plastocrono, plastòmero,plastomero, plastotipìa,plastotipia, plastron,plastron, Platacantòmidi,platacantomidi, Platanàcee,platanacee, platanéto,plataneto, platanista,platanista, Platanìstidi,platanistidi, plàtano,platano, Platanthera,platanthera, platèa,platea, plateale,plateale, plateàtico,plateatico, plateau,plateau, Platelminti,platelminti, plateosàuro,plateosauro, platerésco,plateresco, platforming,platforming, Platiastèridi,platiasteridi, platibasìa,platibasia, platicefalìa,platicefalia, platicnemìa,platicnemia, Platicnemìdidi,platicnemididi, Platicòpi,platicopi, Platictenèi,platictenei, platicùrtico,platicurtico, platidàttilo,platidattilo, plàtina o platina,platina1_o_platina, platinare,platinare, platinatura,platinatura, plàtinax,platinax, platinìfero,platinifero, platinite,platinite, plàtino,platino, platinòid,platinoid, platinòr,platinor, plàtipo,platipo, Platirrini,platirrini, plàtisma,platisma, Platisomoidèi,platisomoidei, platistèrno,platisterno, platònico,platonico, platonismo,platonismo, plattnerite,plattnerite, Platybelodon,platybelodon, Platycerium,platycerium, plaudire,plaudire, plausìbile,plausibile, plàuso,plauso, plàustro,plaustro, plautino,plautino, playa,playa, play-back,play_back, playboy,playboy, playground ball,playground_ball, playmaker,playmaker, plebàglia,plebaglia, plèbe,plebe, plebeismo,plebeismo, plebèo,plebeo, plebiscitàrio,plebiscitario, plebiscito,plebiscito, Plecòtteri,plecotteri, plectènchima,plectenchima, Plegàdidi,plegadidi, plegia,_plegia, plèiade,pleiade, plein air,plein_air, pleiocàsio,pleiocasio, pleiotropismo,pleiotropismo, Pleistocène,pleistocene, pleistocènico,pleistocenico, Pleistogène,pleistogene, plenàrio,plenario, plenilunare,plenilunare, plenilùnio,plenilunio, plenipotenziàrio,plenipotenziario, plenitùdine,plenitudine, plenum,plenum, Pleociemati,pleociemati, pleocròico,pleocroico, pleocroismo,pleocroismo, plèon,pleon, pleonasmo,pleonasmo, pleonàstico,pleonastico, pleòpodo o pleòpode,pleopodo_o_pleopode, pleotèlson,pleotelson, plerione,plerione, plerocercòide,plerocercoide, plerocercòsi,plerocercosi, pleròma (botanica),pleroma2, Plesiadapoidèi,plesiadapoidei, Plesianthropus,plesianthropus, Plesiocidaròidi,plesiocidaroidi, plesiomorfismo,plesiomorfismo, plesiomòrfo,plesiomorfo, Plesiosàuri,plesiosauri, Plesiosaurus,plesiosaurus, plesioterapìa,plesioterapia, Plesiotèutidi,plesioteutidi, plesiotipo,plesiotipo, plessimetrìa,plessimetria, plessìmetro,plessimetro, plèsso,plesso, pletismografìa,pletismografia, pletodónte,pletodonte, Pletodòntidi,pletodontidi, plètora,pletora, pletòrico,pletorico, Plettògnati,plettognati, Plettospòndili,plettospondili, plèttro,plettro, plèura,pleura, Pleuracanthus,pleuracanthus, pleurale,pleurale, pleuralgìa,pleuralgia, pleureuses,pleureuses, plèurico,pleurico, pleurite,pleurite, pleurìtico,pleuritico, pleuro-,pleuro_, Pleurobrachia,pleurobrachia, pleurocarpo,pleurocarpo, Pleurocèli,pleuroceli, pleurodèle,pleurodele, pleurodinìa,pleurodinia, Pleurodiri,pleurodiri, pleurodónte,pleurodonte, Pleurògoni,pleurogoni, pleuròlisi,pleurolisi, Pleuronèttidi,pleuronettidi, Pleuronettifórmi,pleuronettiformi, pleuropericardite,pleuropericardite, pleuropolmonite,pleuropolmonite, Pleurosigma,pleurosigma, pleurotèrgo,pleurotergo, Pleurotomariàcei,pleurotomariacei, Pleurotrèmi,pleurotremi, Pleurotus,pleurotus, plèxiglas,plexiglas, plica,plica, plicato,plicato, plico,plico, plié,plie, Pliensbachiano,pliensbachiano, pliniano,pliniano, plinto,plinto, Pliocène,pliocene, pliocènico,pliocenico, Pliohippus,pliohippus, Pliopithecus,pliopithecus, Pliosaurus,pliosaurus, pliotrèma,pliotrema, plissé,plisse, plissettato,plissettato, plissettatura,plissettatura, Plocèidi,ploceidi, plòceo,ploceo, ploceopàssero,ploceopassero, plòia,ploia, Ploiaria,ploiaria, Ploimi,ploimi, plorare,plorare, plot,plot, plòto,ploto, plotóne,plotone, Plotòsidi,plotosidi, plotter,plotter, plotting,plotting, plückeriano,pluckeriano, plug-in,plug_in, plugo,plugo, plumàrio,plumario, Plumatella,plumatella, plumbagina,plumbagina, Plumbaginàcee,plumbaginacee, plùmbeo,plumbeo, plumboferrite,plumboferrite, plumbojarosite,plumbojarosite, plum-cake,plum_cake, plumetis,plumetis, plùmula,plumula, plurale,plurale, pluralismo,pluralismo, pluralista,pluralista, pluralìstico,pluralistico, pluralità,pluralita, pluralizzare,pluralizzare, pluri-,pluri_, pluriaggravato,pluriaggravato, pluriàssico,pluriassico, pluricellulare,pluricellulare, pluriclasse,pluriclasse, pluricoltura,pluricoltura, pluridecorato,pluridecorato, pluridimensionale,pluridimensionale, pluriennale,pluriennale, plurigemellare,plurigemellare, plurigèmino,plurigemino, plurilaterale,plurilaterale, plurilinearità,plurilinearita, plurilìngue,plurilingue, pluriloculare,pluriloculare, plùrimo,plurimo, plurimodale,plurimodale, plurinazionale,plurinazionale, plurinominale,plurinominale, plurìpara,pluripara, pluripartìtico,pluripartitico, pluripartitismo,pluripartitismo, pluripersonale,pluripersonale, pluripósto,pluriposto, plurirèddito,plurireddito, pluriscafo,pluriscafo, plurisecolare,plurisecolare, plurisìllabo,plurisillabo, plurisoggettivo,plurisoggettivo, pluristàdio,pluristadio, pluriuso,pluriuso, plurivalènte,plurivalente, plurìvoco,plurivoco, plurivoltinismo,plurivoltinismo, plurivoltino,plurivoltino, plusvalènza,plusvalenza, plusvalóre,plusvalore, plutarchismo,plutarchismo, plùteo,pluteo, pluteus,pluteus, Pluteus,pluteus_1, plutòcrate,plutocrate, plutocràtico,plutocratico, plutocrazìa,plutocrazia, plutologìa,plutologia, plutóne,plutone, plutònico,plutonico, plutònio,plutonio, plutonismo,plutonismo, plutonite,plutonite, plùvia,pluvia, pluviale,pluviale, pluvio-,pluvio_, plùvio,pluvio, pluviògrafo,pluviografo, pluviometrìa,pluviometria, pluviomètrico,pluviometrico, pluviòmetro,pluviometro, pluvionivòmetro,pluvionivometro, pluvióso,pluvioso, Plymouth rock,plymouth_rock, pnèuma,pneuma, pneumàtico (filosofia e religione),pneumatico1, pneumàtico (tecnica e altro),pneumatico2, pneumato-,pneumato_, pneumàtodo,pneumatodo, pneumatòforo,pneumatoforo, pneumatògeno,pneumatogeno, pneumatòlisi,pneumatolisi, pneumatologìa,pneumatologia, pneumatòmachi,pneumatomachi, pneumatòsi,pneumatosi, pneumo-,pneumo_1 pneumo_2, pneumoaddòme,pneumoaddome, pneumoartro,pneumoartro, pneumoartrografìa,pneumoartrografia, pneumocòcco,pneumococco, pneumoconiòsi,pneumoconiosi, pneumogàstrio,pneumogastrio, pneumòlisi,pneumolisi, pneumomediastino,pneumomediastino, pneumonectomìa,pneumonectomia, pneumònico,pneumonico, pneumoperitonèo,pneumoperitoneo, pneumoradiografìa,pneumoradiografia, pneumotàssico,pneumotassico, pneumotorace,pneumotorace, pneumotoracentèsi,pneumotoracentesi, pnp,pnp, po’,po2, Po (metrologia),po, Poa,poa, Poàcee,poacee, pochade,pochade, pochette,pochette, pochézza,pochezza, pocket-book,pocket_book, pocket gopher,pocket_gopher, pòco,pocoyy, pocomanìa,pocomania, pòculo,poculo, podagra,podagra, podagróso,podagroso, podàlico,podalico, podalìrio,podalirio, Podàrgidi,podargidi, podargo,podargo, podària,podaria, podatus,podatus, pode,_pode, poderale,poderale, poderante,poderante, podére,podere1 podere2, poderóso,poderoso, podestà,podesta2, podestaréssa,podestaressa, podestarile,podestarile, podesterìa,podesteria, podèzio,podezio, podiatra,podiatra, pòdice,podice, pòdii,podii, podilègidi,podilegidi, podilimbo,podilimbo, pòdio,podio, podismo,podismo, podista,podista, podìstico,podistico, podo- o -podo,podo__o__podo, Podocarpacee,podocarpacee, podocarpo,podocarpo, podòce,podoce, Podocòpi,podocopi, Podocoryne,podocoryne, podofillina,podofillina, podofillite,podofillite, podofillo,podofillo, podofillotossina,podofillotossina, podoflemmatite,podoflemmatite, Podogóni,podogoni, podòlico,podolico, Podolskian,podolskian, podòmetro,podometro, Podophrya,podophrya, Podosphaera,podosphaera, podsòl,podsol, podsolizzazióne,podsolizzazione, Podura,podura, pòe,poe, poèma,poema, poemétto,poemetto, poesìa,poesia, poèta,poeta, poetae novelli,poetae_novelli, poetare,poetare, poeteggiare,poeteggiare, poetéssa,poetessa, poètica,poetica, poeticità,poeticita, poeticizzare,poeticizzare, poètico,poetico, poetizzare,poetizzare, poffare,poffare, pòggia o pùggia,poggia_o_puggia, poggiacapo o appoggiacapo,poggiacapo_o_appoggiacapo, poggiafèrro o appoggiafèrro,poggiaferro_o_appoggiaferro, poggiamano o appoggiamano,poggiamano_o_appoggiamano, poggiapièdi o appoggiapièdi,poggiapiedi_o_appoggiapiedi, poggiare,poggiare1, poggiare o puggiare,poggiare2_o_puggiare, poggiata,poggiata1, poggiata o puggiata,poggiata2_o_puggiata, poggiatèsta o appoggiatèsta,poggiatesta_o_appoggiatesta, pòggio,poggio, poggiòlo,poggiolo, Pogonatum,pogonatum, pogoniulo,pogoniulo, Pogonòfori,pogonofori, pogrom,pogrom, pòh,poh, Pohlia,pohlia, pohlmann,pohlmann, pòi,poiyy, poiana,poiana, poicèfalo,poicefalo, poiché,poicheyy, poièsi,_poiesi, poièsi,poiesi, Poinciana,poinciana, pointer,pointer, pointillisme,pointillisme, pointolite,pointolite, pois,pois, poise,poise, poitou,poitou, pòker o pòcher,poker_o_pocher, pokerista o pocherista,pokerista_o_pocherista, polàbico,polabico, polacca (danza e abbigliamento),polacca1, polacca (bastimento),polacca2, polacchina,polacchina, polacco,polacco, polaccóne,polaccone, poland china,poland_china, polare,polare, polarimetrìa,polarimetria, polarimètrico,polarimetrico, polarìmetro,polarimetro, polariscòpio,polariscopio, polarità,polarita, polaritóne,polaritone, polarizzabilità,polarizzabilita, polarizzare,polarizzare, polarizzatóre,polarizzatore, polarizzazióne,polarizzazione, polarografìa,polarografia, polaròide,polaroide, polaróne,polarone, pole,pole, Polemaetus,polemaetus, polemarco,polemarco, polèmica,polemica, polèmico,polemico, polemista,polemista, polemizzare,polemizzare, polemologìa,polemologia, Polemoniàcee,polemoniacee, polèna,polena, polènta,polenta, polentina,polentina, polentóne,polentone, poleografìa,poleografia, poleògrafo,poleografo, pole position,pole_position, polesano,polesano, polésine,polesine, poli-,poli_, poli,_poli, poliachènio,poliachenio, poliacrilato,poliacrilato, poliacrìlico,poliacrilico, poliacrilonitrile,poliacrilonitrile, poliacusìa,poliacusia, poliaddizióne,poliaddizione, poliaddótto,poliaddotto, poliadelfìa,poliadelfia, poliadèlfo,poliadelfo, poliadenite,poliadenite, poliadenòma,poliadenoma, poliadenomatòsi,poliadenomatosi, poliàlcol,polialcol, polialite,polialite, poliallelìa,poliallelia, poliallìlico,poliallilico, poliallòmero,poliallomero, poliambulanza,poliambulanza, poliambulatòrio,poliambulatorio, poliammide,poliammide, poliandrìa,poliandria, polianite,polianite, poliarchìa,poliarchia, poliàrchico,poliarchico, poliartrite,poliartrite, poliatòmico,poliatomico, polibasite,polibasite, polibutadiène,polibutadiene, policaprolattame,policaprolattame, policarbonato,policarbonato, Policàrpiche,policarpiche, policàrpico,policarpico, policefalìa,policefalia, policeman,policeman, policèntrico,policentrico, policentrismo,policentrismo, polichemioterapìa,polichemioterapia, Polichèti,policheti, policìstico,policistico, policistòsi ovàrica,policistosi_ovarica, policitemìa,policitemia, policitòsi,policitosi, Polìcladi,policladi, policlìnico,policlinico, Policlinidi,policlinidi, policòcco,policocco, policoltura,policoltura, policondensato,policondensato, policondensazióne,policondensazione, policondrìte,policondrite, policorìa,policoria, policorale,policorale, policotilèdone,policotiledone, policràsio,policrasio, policromare,policromare, policromàtico,policromatico, policromìa,policromia, polìcromo,policromo, polidattilìa,polidattilia, polidàttilo,polidattilo, polidemonismo,polidemonismo, Polidèsmidi,polidesmidi, polidipsìa,polidipsia, polidisplasìa,polidisplasia, polidràmnio,polidramnio, polidromìa,polidromia, polìdromo,polidromo, poliedricità,poliedricita, polièdrico,poliedrico, polièdro,poliedro, poliembrionìa,poliembrionia, poliennale,poliennale, polièstere,poliestere, poliestesìa,poliestesia, polièstro,poliestro, poliètere,polietere, polietilène,polietilene, polietilènico,polietilenico, polietismo,polietismo, Polìfagi,polifagi, polifagìa,polifagia, polifase,polifase, polifenolossidasi,polifenolossidasi, polifilètico,polifiletico, polifiletismo,polifiletismo, polifilla,polifilla, polifiodónte,polifiodonte, polìfito,polifito, polifonìa,polifonia, polifònico,polifonico, polifonismo,polifonismo, polifonista,polifonista, polìfora,polifora, polifosfatasi,polifosfatasi, polifosfoinositide,polifosfoinositide, polìgala,poligala, Poligalàcee,poligalacee, poligamìa,poligamia, poligàmico,poligamico, polìgamo,poligamo, poligènesi,poligenesi, poligenètico,poligenetico, poligèni,poligeni, poligènico,poligenico, poligenismo,poligenismo, polìgeno,poligeno, poliginìa,poliginia, poliglìcol,poliglicol, poliglobulìa,poliglobulia, poliglòtta o poliglòtto,poliglotta_o_poliglotto, poliglòttico,poliglottico, Poligonàcee,poligonacee, poligonale,poligonale, poligonazióne,poligonazione, poligonizzazióne,poligonizzazione, polìgono,poligono, poligrafare,poligrafare, poligrafìa,poligrafia, poligràfico,poligrafico, polìgrafo,poligrafo, poliimmidi,poliimmidi, poliisobutène o poliisobutilène,poliisobutene_o_poliisobutilene, poliisocianato,poliisocianato, poliisoprene,poliisoprene, polilèmma,polilemma, polilobato,polilobato, polimastìa,polimastia, Polimastìgidi,polimastigidi, polimatèrico,polimaterico, polimaterismo,polimaterismo, polimerasi,polimerasi, polimerìa,polimeria, polimerizzazióne,polimerizzazione, polìmero,polimero, polimetacrilato,polimetacrilato, polimetamorfismo,polimetamorfismo, polimetilmetacrilato,polimetilmetacrilato, polimetrìa,polimetria, polimètrico,polimetrico, polìmetro,polimetro, polimiària,polimiaria, polimigmatite,polimigmatite, polimìttico o polimìctico,polimittico_o_polimictico, polimixina,polimixina, polimodalità,polimodalita, polimorfismo,polimorfismo, polimòrfo,polimorfo, polimorfonucleato,polimorfonucleato, Polinèmidi,polinemidi, polinesiano,polinesiano, polinevrite,polinevrite, Polinòidi,polinoidi, polinòmio,polinomio, polinòsico,polinosico, polinsàturo,polinsaturo, polinucleato,polinucleato, polinucleotide,polinucleotide, polinucleotide-fosforilasi,polinucleotide_fosforilasi, pòlio (patologia),polio1, pòlio (botanica),polio2, Poliodòntidi,poliodontidi, polioencefalite,polioencefalite, poliolefìnico,poliolefinico, poliomielite,poliomielite, poliomielìtico,poliomielitico, Poliopistocotilèi,poliopistocotilei, poliòptila,polioptila, poliorcètica,poliorcetica, poliorcètico,poliorcetico, poliorchidìa,poliorchidia, Poliovìrus,poliovirus, polipàio,polipaio, polipectomìa,polipectomia, polipeptide,polipeptide, polipètalo,polipetalo, polìpide,polipide, Poliplacòfori,poliplacofori, poliplegìa,poliplegia, poliplòide,poliploide, poliploidìa,poliploidia, polipnèa,polipnea, polipnòico,polipnoico, pòlipo,polipo, polìpode,polipode, Polipodiàcee,polipodiacee, Polipodiali,polipodiali, polipòlio,polipolio, Poliporàcee,poliporacee, Polìporo,poliporo, polipòsi,poliposi, poliprisma,poliprisma, polipropilène,polipropilene, Poliprotodónti,poliprotodonti, polipsichismo,polipsichismo, polipsònio,polipsonio, Polipterifórmi,polipteriformi, poliptòto,poliptoto, polire,polire, polirème,polireme, poliritmìa,poliritmia, polirìtmico,poliritmico, pólis,polis, polisaccàride,polisaccaride, polisemìa,polisemia, polisèmo,polisemo, polisènso,polisenso, polisierosite,polisierosite, polisilìcico,polisilicico, polisìllabo,polisillabo,</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Some Windows Pinax help]]></title>
<link>http://tombrander.wordpress.com/2009/07/04/some-windows-pinax-help/</link>
<pubDate>Sat, 04 Jul 2009 12:55:25 +0000</pubDate>
<dc:creator>tbrander</dc:creator>
<guid>http://tombrander.wordpress.com/2009/07/04/some-windows-pinax-help/</guid>
<description><![CDATA[This is just an overview: See the Wiki here for the nitty gritty&#8230; For widows users: 1st thing ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This is just an overview: See the Wiki <a href="http://code.pinaxproject.com/wiki/PinaxWindowsDevelInstallation/" target="_blank">here</a> for the nitty gritty&#8230;</p>
<p>For widows users: 1st thing which is not obvious is that all the installation steps must be done from the command shell in windows (preferably in admin mode if on Vista), from the correct directory. You do not use the python idle environment, nor do you explicitly invoke python, (except at the very end!!)</p>
<p>You must have SVN and GIT installed and on your path (which the &#8220;normal&#8221; installations take care of) note that Tortoise SVN is not sufficient (It does not have the command line interface) Slik svn does <a href="http://www.sliksvn.com/en/download" target="_blank">http://www.sliksvn.com/en/download</a>, both can co-exist, Tortoise Git  <a href="http://code.google.com/p/tortoisegit/" target="_blank">http://code.google.com/p/tortoisegit/</a> is a good install for windows users and includes a complete tool set. The boot and install scripts depend and use these programs to install source code from many locations/libraries, really very cool&#8230;therefore you must have a good internet connection!!</p>
<p>You should probably execute the command shell with the &#8220;run as administrator&#8221; if using Vista, if xp you should be an administrator.</p>
<p>You do not need to do a checkout or download of any files other than the &#8220;pinax-boot.py&#8221; file, which should be placed in a directory that you want to use as your base installation directory.</p>
<p>a general outline of what happens&#8230;..<br />
You run pinax-boot.py<br />
It downloads the base Pinax repos and installation scripts.<br />
You &#8220;activate&#8221; pinax-env<br />
(it is really running in the command shell)<br />
That changes your prompt. You will then do your directory changes within this new pinax-env prompt&#8230;&#8230;<br />
(this took a while for me to wrap my head around but I now agree that it&#8217;s a really neat good idea!!, I would not try without it)<br />
pip install &#60;&#60;&#60;this step processes a very long and involved script which gets numerous dependent/pre-requisite packages and places them properly in the &#8220;virtual-environment&#8221;<br />
you remain in pinax-env all during this process&#8230;.and following&#8230;.<br />
pinax-admin clone_project retrieves the proper stuff from the set of files that you have downloaded and sets up another directory containing just your project as a django project&#8230;<br />
It is a good idea to go with the default sqllite db (ie. don&#8217;t touch settings!!)<br />
Now follow the directions, again from within pinax-env,, and cd into your project directory and runserver.. You should get a nice pinax complaint about no db.. follow the instructions to syncdb and so on&#8230;</p>
<p>See the Wiki <a href="http://code.pinaxproject.com/wiki/PinaxWindowsDevelInstallation/" target="_blank">here</a> for the nitty gritty&#8230;</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Shooting myself in the head with Python, Django,Pinax]]></title>
<link>http://tombrander.wordpress.com/2009/06/29/shooting-myself-in-the-head-with-python-djangopinax/</link>
<pubDate>Mon, 29 Jun 2009 16:28:11 +0000</pubDate>
<dc:creator>tbrander</dc:creator>
<guid>http://tombrander.wordpress.com/2009/06/29/shooting-myself-in-the-head-with-python-djangopinax/</guid>
<description><![CDATA[Well I decided to take some time off from working with the App-engine-patch and try Native Django,, ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Well I decided to take some time off from working with the App-engine-patch and try Native Django,, go more mainstream so I could take advantage of more robust database and tutorials&#8230;</p>
<p>I&#8217;m using Python 2.62 Win 64 Eclipse 3.4 Ganymede, and trunk SVN Django 1.1</p>
<p>1st, one must install a Mysql driver The one in the &#8220;official library won&#8217;t work, version differences.. go here for a windows installer for Python 2.6 https://sourceforge.net/forum/forum.php?thread_id=2316047&#38;forum_id=70460  Fwiw I&#8217;m using 32 bit versions although there is a 64 bit version available (for both Python and the Mysql driver (lower down on that thread).</p>
<p>You also need to add the following change manually to the Mysqldb code</p>
<p>About warnings:</p>
<p>1) file &#8220;__init__&#8221;, replace:</p>
<p>from sets import ImmutableSet<br />
class DBAPISet(ImmutableSet):</p>
<p>with</p>
<p>class DBAPISet(frozenset)</p>
<p>2) file &#8220;converters.py&#8221;, remove:</p>
<p>from sets import BaseSet, Set</p>
<p>3) file &#8220;converters.py&#8221;, change &#8220;Set&#8221; by &#8220;set&#8221; (IMPORTANT: only two places):</p>
<p>line 48: return set([ i for i in s.split(',') if i ])<br />
line 128: set: Set2Str,</p>
<p>I hope this be useful.</p>
<p>Regards,</p>
<p>Luis Moreno<!-- google_ad_section_end --></p>
<p>I realized That I had not been documenting myself when I blew up and was about ready to re install and realized I&#8217;d have to look every thing up again&#8230; Hence back to posting!</p>
<p>One of the most interesting revelations for me recently is how Python &#8220;installs&#8221; and referrers to packages and extensions. At this point I now think that all the trashing about is a bit too much on many installs. Looking in site-pkges in Libs in the Python directory I noticed several .pth files named for some of the extensions I was installing and using, the file was the module name.pth.. and contained the full path to the module&#8230; cool! So that is a mechanism that can be used to create a nice place to keep that stuff without messing up your basic Python install&#8230; good to know..</p>
<p>Another major revelation has been the use of revision control systems,,, It seems that it is well worthwhile to have a copy of all of the major systems on your machine. Git, SVN and Mercurial. If you checkout a copy of a system like Django,,, then when you want a update to the current version just do another checkout and your done!</p>
<p>Btw it turns out that even if you use TortoiseSVN as I do it is a good ides to install Silk SVN also because Tortoise does not provide command line access, which is used by some packages for automated installation/updating, in particular Pinax! So even if you don&#8217;t want command line you need to have it on your system&#8230;</p>
<p>If you use tagging with the 1.0 or latter Django you must use the svn version of tagging &#8230;.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Q: How to add blog functionality into pinax basic project?]]></title>
<link>http://weboom.wordpress.com/2009/06/22/q-how-to-add-blog-functionality-into-pinax-basic-project/</link>
<pubDate>Mon, 22 Jun 2009 04:46:52 +0000</pubDate>
<dc:creator>weboom</dc:creator>
<guid>http://weboom.wordpress.com/2009/06/22/q-how-to-add-blog-functionality-into-pinax-basic-project/</guid>
<description><![CDATA[]]></description>
<content:encoded><![CDATA[<div class='snap_preview'></div>]]></content:encoded>
</item>
<item>
<title><![CDATA[django and pinax setup]]></title>
<link>http://weboom.wordpress.com/2009/06/21/django-and-pinax-setup/</link>
<pubDate>Sun, 21 Jun 2009 23:55:28 +0000</pubDate>
<dc:creator>weboom</dc:creator>
<guid>http://weboom.wordpress.com/2009/06/21/django-and-pinax-setup/</guid>
<description><![CDATA[1. install django 2. intall pinax 3. $ source ./pinax-env/bin/activate     //this seems to use pytho]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>1. install django</p>
<p>2. intall pinax</p>
<p>3.</p>
<p>$ source ./pinax-env/bin/activate     //this seems to use python under pinax not general python</p>
<p>4. create project</p>
<p>(pinax-env) $ pinax-admin clone_project social_project yourprojectname</p>
<p>5. go to yourprojectname directory</p>
<p>$python manage.py syncdb</p>
<p>$python manage.py runserver www.amazon.com:8081</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Pycon 2009 Day 2]]></title>
<link>http://gregorus.wordpress.com/2009/03/29/pycon-2009-day-2/</link>
<pubDate>Sun, 29 Mar 2009 05:25:39 +0000</pubDate>
<dc:creator>gregorus</dc:creator>
<guid>http://gregorus.wordpress.com/2009/03/29/pycon-2009-day-2/</guid>
<description><![CDATA[Day two of the Python Programming Language Convention! I got up and headed out at 7:45 to attend the]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Day two of the Python Programming Language Convention!</p>
<p>I got up and headed out at 7:45 to attend the morning lightning talks (luckily I hadn&#8217;t been out all too late the night before).  I didn&#8217;t know what to expect: lightning talks are 5 minute talks on whatever topics people had decided to speak about the day before.  Many of them were funny or just plain fun, but one of them stood out for me in particular.  It also foreshadowed the rest of the day: today was to be the day of useful tools.</p>
<p>Anyway, the lightning talk that really interested me was on a tool called <b>SQLPython</b>.  It makes talking to Oracle databases (which I sometimes need to do for work) very easy by creating a shell for them that gives you interesting UNIX-style commands like &#8216;ls&#8217;, &#8216;cat&#8217;, and &#8216;grep.&#8217;  I will definitely be looking into this further.</p>
<p>After the lightning talks was the keynote by the inventor of Python and &#8220;Benevolent Dictator for Life&#8221;, GvR.  Guido&#8217;s talk was a little underwhelming, but as always interesting.  I think he may be burned out on giving keynotes after doing it every year for many many years in a row.</p>
<p>Anyway, then I attended two more talks about tools that seemed very useful.  First was <b>The State of Django</b>.  Django is the darling Web Framework in Python and, while I have never used it, this talk definitely made me want to.  It didn&#8217;t hurt that the next talk, <b>Pinax: a platform for rapidly developing Websites</b> was about a tool that is built on Django and lets you build sites with all kinds of social networking widgets automatically available (thing like wikis, tagging, user management, user signup, photo sharing, etc).  This definitely made me want to get my brother (the idea guy) to come up with some ideas for sites that I could try to implement for him.</p>
<p>Lunch was just as fancy as the day before: pasta with a tomato sauce, broccoli, and key lime cheesecake.</p>
<p>After lunch I only attended 3 talks (out of a possible five).  The first was a panel on <b>Object Relational Mappers</b>, which help you to define and use a database without leaving your Python code.  This was not as interesting as it could have been, but ORMs definitely seem like they might be useful tools.</p>
<p>Then it was time for another tool that might be fun:  I attended <b>Seven ways to use Python&#8217;s new turtle module</b>.  Turtle, if you don&#8217;t know, is a cool way to teach young people how to program by giving them a little turtle on the screen that they can control.  They can move it around the screen and have it draw lines and do other things; this cute old high school teacher from Austria was demonstrating the turtle package he had written and gotten included in the Python Standard Library.  The talk had a lot of cool examples and, though he ran out of time, definitely made me want to show turtle to some folks and get them to learn Python.</p>
<p>Finally, I attended <b>Python 2.6 and 3.0 compatibility</b> which was a little dry, but very important information to have.</p>
<p>After the conference events, some coworkers and I went down to the Logan Square area of Chicago and went to a restaurant called Lula Cafe.  It was sleeting at the time, and very cold.  The food was good and we had planned to go to another mexican restaurant in the area after, but the weather was just too harsh.  We made our way back to the hotel and hung out in the bar next to a fireplace.  We had the prime location for Earth Hour, when the hotel turned out all the lights for an hour, and I tried my first margarita.  My coworker Dan is an excellent photographer and took some cool pictures; if I get access and permission I may post a few here.</p>
<p>I am very excited for tomorrow&#8217;s keynote, by the creators of <a href="http://www.reddit.com/">Reddit</a>.  Let&#8217;s hope I can wake up on time!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[4 Hour Liveblog: Website development with Django and Pinax]]></title>
<link>http://biostumblematic.wordpress.com/2009/03/21/4-hour-liveblog-website-development-with-django-and-pinax/</link>
<pubDate>Sat, 21 Mar 2009 17:47:12 +0000</pubDate>
<dc:creator>jwinget</dc:creator>
<guid>http://biostumblematic.wordpress.com/2009/03/21/4-hour-liveblog-website-development-with-django-and-pinax/</guid>
<description><![CDATA[This post is the most popular on my blog. I&#8217;m worried that people are reading it and not getti]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This post is the most popular on my blog. I&#8217;m worried that people are reading it and not getting too much out of it, so let me just summarize with a brief tl;dr. I found it extremely easy to install Pinax and get the basic setup working. I was not as successful in customizing the look and matching it to what I needed, but to be honest I never got the chance to follow up and put a decent effort into this.<br />
&#8212;&#8211;<br />
One of the projects I&#8217;ll be involved in at the start of my new post-doc is developing a website.  This site will be a portal to enable researchers in our field to communicate, as well as a gateway to the database I will (likely) be developing.</p>
<p>I&#8217;ve tinkered with <a href="http://www.djangoproject.com/">Django</a> before and really liked it.  I&#8217;ve recently heard about <a href="http://pinaxproject.com/">Pinax</a>, which is an open-source set of Django applications that are designed for general &#8220;plug and play&#8221;-like use on a variety of websites.  Many of the features of Pinax are elements that would be great to implement on this portal site I need to work on.</p>
<p>I&#8217;ve heard quite a bit about how fast it is to develop sites using these methods, so I&#8217;ve decided to take 4 hours out of my Saturday and put this to the test.  Of course I&#8217;m a super-green programmer, so it&#8217;s a tough test indeed.  I&#8217;ll be updating this post as I go with progress reports, so stay tuned!</p>
<p><strong>10:30-10:45 AM &#8211; Setting up the environment</strong><br />
I&#8217;m working on two machines today.  My linux box is where the actual Django/Pinax will live, and I&#8217;m using a Windows machine to update the blog and do graphics work (I&#8217;m still a slave to Photoshop).</p>
<p>I&#8217;ve already got a recent SVN version of Django installed, so the first real step is installing Pinax.  First let&#8217;s download the SVN version:</p>
<pre>svn checkout http://svn.pinaxproject.com/pinax/trunk/ pinax</pre>
<p>The <a href="http://pinaxproject.com/docs/trunk/install.html">installation docs</a> for Pinax include some simple instructions for obtaining dependencies.  Following the instructions verbatim gives you both a recent copy of Django as well as Pinax itself, so you can probable just start from there if you are new to the system.</p>
<p>You can then use a couple of methods to install the various dependencies.  Since I&#8217;m doing this the quick way, I just ran:</p>
<pre>pip install --requirement src/pinax/requirements/external_apps.txt</pre>
<p>Which should install everything.  This cranked away in the terminal for a bit.</p>
<p>After it finished, I changed into the src/pinax/pinax/projects/complete_project/ directory and ran:</p>
<pre>./manage.py syncdb</pre>
<p>and</p>
<pre>./manage.py runserver</pre>
<p>and here is what we see:</p>
<div id="attachment_57" class="wp-caption alignnone" style="width: 310px"><a href="http://biostumblematic.wordpress.com/files/2009/03/pinax_1.png"><img class="size-medium wp-image-57" title="pinax_1" src="http://biostumblematic.wordpress.com/files/2009/03/pinax_1.png?w=300" alt="Vanilla pinax installation" width="300" height="149" /></a><p class="wp-caption-text">Vanilla pinax installation</p></div>
<p>Not bad at all for 15 minutes of work.  Next up: investigating the Pinax back end and customization.</p>
<p><strong>10:45 &#8211; 11:15: Exploration</strong><br />
During the installation process, I was asked to create a super user.  These credentials can be used to log in to the vanilla pinax site.  On the login screen, we already see one of the features of pinax &#8211; integration with OpenID:</p>
<div id="attachment_60" class="wp-caption alignnone" style="width: 610px"><a href="http://biostumblematic.wordpress.com/files/2009/03/pinax_login.png"><img class="size-full wp-image-60" title="pinax_login" src="http://biostumblematic.wordpress.com/files/2009/03/pinax_login.png" alt="pinax login screen" width="600" height="331" /></a><p class="wp-caption-text">pinax login screen</p></div>
<p>Once logged in, you are directed to a page which gives you some user functions.  What I want to see first however is the admin area, which is available as a link at the top right of the screen.  This is just the baked-in admin that Django itself includes (which is really great, don&#8217;t get me wrong).  You can click on the various modules to change them, add new items, etc.  To be honest, this isn&#8217;t as exciting as I thought it might be; let&#8217;s go back to the user page.</p>
<p>Just exploring the tabs along the top, it&#8217;s very simple to edit your user profile, create projects, etc.</p>
<div id="attachment_61" class="wp-caption alignnone" style="width: 451px"><a href="http://biostumblematic.wordpress.com/files/2009/03/pinax_tweets.png"><img class="size-full wp-image-61" title="pinax_tweets" src="http://biostumblematic.wordpress.com/files/2009/03/pinax_tweets.png" alt="Twitter clone in Pinax" width="441" height="313" /></a><p class="wp-caption-text">Twitter clone in Pinax</p></div>
<p>I did run into a few bugs here.  When trying to add a bookmark, I got an error which broke the page, giving a template syntax error:</p>
<pre>Caught an exception while rendering: 'NoneType' object has no attribute 'append'</pre>
<p>The &#8220;Locations&#8221; tab also coughed up an error, but this is simply because I hadn&#8217;t entered an API key for Yahoo maps yet.</p>
<p>When trying to add events to a tribe&#8217;s calendar, it initially didn&#8217;t work at all.  I had to first enter an event in the admin screen to get the calendar link on the user side to work at all.  Once this was in place, trying to add an event was difficult because the date/time fields were just unguided text entry that would give an error stating &#8220;Enter a valid date/time.&#8221; whenever I would try to put in the information.</p>
<p>Looks like we will have to do some troubleshooting.</p>
<p><strong>11:15 &#8211; 11:45: Moving out of the nest</strong><br />
Before we get into this, however, let&#8217;s get ourselves into a better position from which to work from.<br />
I copied the pinax &#8220;basic project&#8221; folder out into a new directory.  I edited the settings.py file to point at the Pinax installation, but got an import error when trying to view this new project:</p>
<pre>ImportError at /

No module named basic_project.urls</pre>
<p>Next I tried going into my pinax bin directory and using the following command:</p>
<pre>python pinax-clone-project.py ../projects/basic_project /home/user/path/to/myproject/</pre>
<p>I then changed into the new directory and edited the settings.py file (line 83) to read:</p>
<pre>ROOT_URLCONF = 'myproject.urls'</pre>
<p>This worked, and I could now log in to the basic site.  Next I&#8217;ll re-enable some of the apps.</p>
<p>Hour 1 is done</p>
<p><strong>11:45 &#8211; 12:30: Enabling applications and customizing the template</strong><br />
Since I cloned the basic project, I want to turn back on some of the applications.  I opened up the settings.py files for the &#8220;complete project&#8221; included with Pinax and that for my project, and pasted in the applications I wanted under INSTALLED_APPS.  I also had to copy some code over into TEMPLATE_LOADERS, MIDDLEWARE_CLASSES, TEMPLATE_CONTEXT_PROCESSORS and COMBINED_INBOX_COUNT_SOURCES.  In the end the changes were so extensive that I just gave in and copied over the entire text of the complete_project settings.py file and commented out the stuff I didn&#8217;t want.</p>
<p>Unfortunately, when I would try to run syncdb, I&#8217;d get an error:</p>
<pre>Error: No module named photos</pre>
<p>which I couldn&#8217;t trace back by commenting out certain lines, etc.  At this point I&#8217;m starting to get a hair frustrated.</p>
<p>Back to square one.  I deleted that project and just cloned over the complete project as described above, and we were back in business.</p>
<p>Now let&#8217;s try to get rid of the applications I don&#8217;t want: swaps and locations.  I had already commented these out under INSTALLED_APPS in settings.py, but they still show up in the template.  This should be an easy fix&#8230; let&#8217;s just open up site_base.html in the templates directory and delete the code for these tabs.</p>
<p>We don&#8217;t even have to restart the development server for this one; just refresh the page and they are gone!</p>
<p>That took much longer than I had hoped&#8230; I need a short break.</p>
<p><strong>12:30 &#8211; 2:30: Theming and visual customization</strong><br />
Rather than break this out into small chunks, I&#8217;m just going to lump the second half under theming and customization.  Obviously I don&#8217;t want the vanilla look complete with Pinax logo at the top, so let&#8217;s dive into the Django templating system.</p>
<p>Firstly, I made a directory in the myproject folder called site_media, and placed a custom logo in a subfolder of this called images.  To display this image, I just had to modify site_base.html under the templates directory to read:</p>
<pre>{% block logo_link_image %}&#60;a href="{% url home %}"&#62;&#60;img src="{{ MEDIA_URL }}/images/logo.png" alt="" /&#62;&#60;/a&#62;{% endblock %}</pre>
<p>I also had to change a little bit of myproject/media/base.css in order to avoid resizing the new logo.</p>
<p>Most of the rest of my time was spent playing around with the base.css file, just getting a feel for what defined the different bits of the site.  I think I got a little burnt out on some of the minor bugs, and just didn&#8217;t have the drive to get my hands dirty mucking about at the lower levels any more today.</p>
<p>That isn&#8217;t to say that I&#8217;m not very impressed with Pinax.  I haven&#8217;t even mentioned some of the nice features (like built-in RSS feeds for the twitter clone).  There are some things that I&#8217;d like to see added, like auto-population of slug fields, however I plan on working some more with this system over the coming weeks to see if I can&#8217;t iron out some of the kinks &#38; problems.  I&#8217;m just a bit of a slow learner, so it&#8217;s going to take me longer than this afternoon to sort out exactly what changes need to be made and where to make them.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Pinax, acercando la web 2.0 ]]></title>
<link>http://okkum.wordpress.com/2009/02/10/pinax-acercando-la-web-20/</link>
<pubDate>Tue, 10 Feb 2009 15:21:38 +0000</pubDate>
<dc:creator>Xavi</dc:creator>
<guid>http://okkum.wordpress.com/2009/02/10/pinax-acercando-la-web-20/</guid>
<description><![CDATA[Ya comente que estábamos realizando una comunidad virtual alrededor de Turistec, la hemos basado en ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ya comente que estábamos realizando una comunidad virtual alrededor de <a href="http://turistec.org" target="_blank">Turistec</a>, la hemos basado en <a href="http://pinaxproject.com/" target="_blank">Pinax</a>, un proyecto desarrollado con <a href="http://www.djangoproject.com/" target="_blank">django</a>. Es una interesantisima plataforma sobre la que construir aplicaciones en las que la interacción entre los usuarios y la creación de contenidos es primordial.<!--more--></p>
<p>Estas son sus principales características, en estos momentos:</p>
<div class="col2">
<ul>
<li>soporte openid</li>
<li>verificación de email</li>
<li>gestión de contraseñas</li>
<li>anuncios del sitio</li>
<li>framework de notificación</li>
<li>mensajeria usuario a usuario</li>
<li>invitación a un amigo (interna y externa)</li>
<li>un clon de twitter</li>
<li>soporte oembed</li>
<li>soporte gravatar</li>
<li>grupos de interes</li>
<li>proyectos con tareas basicas</li>
<li>foros</li>
<li>wikis con varios lenguajes de marca soportados</li>
<li>blogging</li>
<li>bookmarks</li>
<li>etiquetas</li>
<li>importar información de contacto (from vCard, Google or Yahoo)</li>
<li>galerias de fotos</li>
</ul>
<p>y mucho más en camino.</p>
<p>La gran ventaja es que al ser un conjunto de aplicaciones django, podremos usar el proyecto completo o cada una de las aplicaciones que nos interese. Por ejemplo, estas comenzando a desarrollar una aplicación en la que será imprescindible tener una buena herramienta de notificaciones, pues a usar la de Pinax.</p>
<p>El avance del proyecto es espectacular, aunque hay muchas cosas que todavia deben mejorar, por ejemplo el tema de las traducciones (no que los textos esten traducidos), faltan etiquetas de {%trans texto_a_traducir %} en las plantillas, hemos corregido muchas de ellas y hemos enviado el parche a la comunidad. Os iré contando más cosas de Pinax y de Turistec 2.0.</p></div>
<div id="seolinx-tooltip" style="border:1px solid #000000;display:none;opacity:0.9;position:absolute;width:auto;z-index:99999;margin:0;padding:0;">
<table style="border:0 none;border-collapse:separate;width:auto;margin:0;padding:0;" border="0">
<tbody>
<tr>
<td style="border:0 none;font-family:Tahoma;font-size:11px;font-weight:bold;margin:1px;padding:0;">
<div style="overflow:auto;width:auto;margin:0;padding:0;">
<table id="seolinx-paramtable" style="border:1px solid gray;border-collapse:separate;margin:0;" border="0">
<tbody>
<tr>
<td style="border:1px solid gray;background:#f0f0f0 none repeat scroll 0 0;color:darkgreen;font-family:Tahoma;font-size:7pt;font-weight:bold;white-space:nowrap;padding:2px;"><img style="vertical-align:middle;" src="http://toolbarqueries.google.com/favicon.ico" alt="" width="12" height="12" /> PR: <a title="Google pagerank" href="{}">wait&#8230;</a></td>
<td style="border:1px solid gray;background:#f0f0f0 none repeat scroll 0 0;color:darkgreen;font-family:Tahoma;font-size:7pt;font-weight:bold;white-space:nowrap;padding:2px;"><img style="vertical-align:middle;" src="http://www.google.com/favicon.ico" alt="" width="12" height="12" /> I: <a title="Google index" href="{}">wait&#8230;</a></td>
<td style="border:1px solid gray;background:#f0f0f0 none repeat scroll 0 0;color:darkgreen;font-family:Tahoma;font-size:7pt;font-weight:bold;white-space:nowrap;padding:2px;"><img style="vertical-align:middle;" src="http://www.google.com/favicon.ico" alt="" width="12" height="12" /> L: <a title="Google links" href="{}">wait&#8230;</a></td>
<td style="border:1px solid gray;background:#f0f0f0 none repeat scroll 0 0;color:darkgreen;font-family:Tahoma;font-size:7pt;font-weight:bold;white-space:nowrap;padding:2px;"><img style="vertical-align:middle;" src="http://siteexplorer.search.yahoo.com/favicon.ico" alt="" width="12" height="12" /> LD: <a title="Yahoo linkdomain" href="{}">wait&#8230;</a></td>
<td style="border:1px solid gray;background:#f0f0f0 none repeat scroll 0 0;color:darkgreen;font-family:Tahoma;font-size:7pt;font-weight:bold;white-space:nowrap;padding:2px;"><img style="vertical-align:middle;" src="http://search.msn.com/favicon.ico" alt="" width="12" height="12" /> I: <a title="MSN index" href="{}">wait&#8230;</a></td>
<td style="border:1px solid gray;background:#f0f0f0 none repeat scroll 0 0;color:darkgreen;font-family:Tahoma;font-size:7pt;font-weight:bold;white-space:nowrap;padding:2px;"><a title="Sitemap.xml" href="{}">wait&#8230;</a></td>
<td style="border:1px solid gray;background:#f0f0f0 none repeat scroll 0 0;color:darkgreen;font-family:Tahoma;font-size:7pt;font-weight:bold;white-space:nowrap;padding:2px;"><img style="vertical-align:middle;" src="http://siteanalytics.compete.com/favicon.ico" alt="" width="12" height="12" /> C: <a title="Compete Rank" href="{}">wait&#8230;</a></td>
<td style="border:1px solid gray;background:#f0f0f0 none repeat scroll 0 0;color:darkgreen;font-family:Tahoma;font-size:7pt;font-weight:bold;white-space:nowrap;padding:2px;"><img style="vertical-align:middle;" src="http://seodigger.com/favicon.ico" alt="" width="12" height="12" /> SD: <a title="Seodigger" href="{}">wait&#8230;</a></td>
</tr>
</tbody>
</table>
</div>
</td>
<td style="border:0 none;cursor:pointer;vertical-align:middle;width:auto;margin:0;padding:1px;"><img src="//seoquake/content/skin/close.gif" alt="" /></td>
</tr>
</tbody>
</table>
</div>
<div id="seolinx-tooltip" style="border:1px solid #000000;display:none;opacity:0.9;position:absolute;width:auto;z-index:99999;margin:0;padding:0;">
<table style="border:0 none;border-collapse:separate;width:auto;margin:0;padding:0;" border="0">
<tbody>
<tr>
<td style="border:0 none;font-family:Tahoma;font-size:11px;font-weight:bold;margin:1px;padding:0;"></td>
<td style="border:0 none;cursor:pointer;vertical-align:middle;width:auto;margin:0;padding:1px;"><img src="//seoquake/content/skin/close.gif" alt="" /></td>
</tr>
</tbody>
</table>
</div>
<div id="seolinx-tooltip" style="border:1px solid #000000;display:none;opacity:0.9;position:absolute;width:auto;z-index:99999;margin:0;padding:0;">
<table style="border:0 none;border-collapse:separate;width:auto;margin:0;padding:0;" border="0">
<tbody>
<tr>
<td style="border:0 none;font-family:Tahoma;font-size:11px;font-weight:bold;margin:1px;padding:0;">
<div style="overflow:auto;width:auto;margin:0;padding:0;"></div>
</td>
<td style="border:0 none;cursor:pointer;vertical-align:middle;width:auto;margin:0;padding:1px;"><img src="//seoquake/content/skin/close.gif" alt="" /></td>
</tr>
</tbody>
</table>
</div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Descubriendo aplicaciones de django]]></title>
<link>http://okkum.wordpress.com/2008/12/05/descubriendo-aplicaciones-de-django/</link>
<pubDate>Fri, 05 Dec 2008 13:38:42 +0000</pubDate>
<dc:creator>Xavi</dc:creator>
<guid>http://okkum.wordpress.com/2008/12/05/descubriendo-aplicaciones-de-django/</guid>
<description><![CDATA[Ayer tuve uno de esos raros días en los que puedo sentarme delante del ordenador a hacer lo que más ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ayer tuve uno de esos raros  días en los que puedo sentarme delante del ordenador a hacer lo que más me  gusta: programar. Dedique toda la mañana a probar una interesante solución que han montado sobre django la gente del <a href="http://code.google.com/p/django-hotclub/" target="_blank">HotClubofFrance</a>: <a href="http://pinaxproject.com/" target="_blank">Pinax</a>.</p>
<p>Consiste en un conjunto de aplicaciones (en el sentido que le da django) <em>arrejuntadas</em> para crear una estructura básica de proyecto web 2.0, incluye, de casa, galerías de fotos, blogs, un clon de twitter, mensajes, &#8220;tribus&#8221; que vienen a ser foros, &#8230; Me gusto, porque facilita la vida del programador que quiere hacer una red social sin reinventar la rueda, pero añadiendo las singularidades del proyecto que esta creando.</p>
<p>En Okkum estamos empezando <a href="http://code.google.com/p/okkumproject/" target="_blank">algo parecido</a>, orientado a webs corporativas. De momento es nuestra propia web y a medida que se vaya consolidando lo haremos un poco más flexible, podéis echarle un  vistazo y opinar.</p>
<p>También encontré una interesante herramienta psyco (gracias a <a href="http://mundogeek.net/archivos/2008/11/26/python-mas-rapido-con-psyco/" target="_blank">mundogeek</a>) que permite mejorar los tiempos de ejecución de código python y controlar el rendimiento del mismo.</p>
<p>Además anteayer <a href="http://www.python.org/download/releases/3.0/" target="_blank">salio Python 3.0</a>, con novedades que a medio plazo pueden ser muy interesantes para la evolución de este lenguje y la comunidad cada día más amplia de programadores que lo usamos.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Exploring Pinax Series]]></title>
<link>http://fernandoacorreia.wordpress.com/2008/11/08/exploring-pinax-series/</link>
<pubDate>Sat, 08 Nov 2008 11:26:36 +0000</pubDate>
<dc:creator>fernandoacorreia</dc:creator>
<guid>http://fernandoacorreia.wordpress.com/2008/11/08/exploring-pinax-series/</guid>
<description><![CDATA[Pinax is an integrated collection of selected Django reusable applications. It can be used as a head]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://pinaxproject.com/">Pinax</a> is an integrated collection of selected <a href="http://www.djangoproject.com/">Django</a> reusable applications. It can be used as a head start for website projects and also to experiment patterns of Django applications.</p>
<p>As I learn how to leverage Pinax to build Web applications, I&#8217;m writing about my experiences. I plan to update this article and to use it as an index:</p>
<ul>
<li><strong><a href="http://fernandoacorreia.wordpress.com/2008/10/22/exploring-pinax-part-1/">Part 1</a>:</strong> Installing Pinax.</li>
<li><strong><a href="http://fernandoacorreia.wordpress.com/2008/10/23/exploring-pinax-part-2/">Part 2</a>: </strong>Creating a new tab<strong>.<br />
</strong></li>
<li><strong><a href="http://fernandoacorreia.wordpress.com/2008/10/24/exploring-pinax-part-3/">Part 3</a>: </strong>Creating a new application inside a Pinax website.</li>
<li><strong><a href="http://fernandoacorreia.wordpress.com/2008/10/26/exploring-pinax-part-4/">Part 4</a>: </strong>The main domain object of the sample application.</li>
<li><strong><a href="http://fernandoacorreia.wordpress.com/2008/10/28/exploring-pinax-part-5/">Part 5</a>: </strong>A form for submitting new items.</li>
<li><strong><a href="http://fernandoacorreia.wordpress.com/2008/10/30/exploring-pinax-part-6/">Part 6</a>:</strong> Comments on approaches to revision control.</li>
<li><strong><a href="http://fernandoacorreia.wordpress.com/2008/11/08/exploring-pinax-part-7/">Part 7</a>: </strong>Notifications.</li>
</ul>
<p>The source code for the sample application is hosted on <a href="http://github.com/fernandoacorreia/oxybeles/tree/master">GitHub</a>.</p>
<p>I also have a <a href="http://fernandoacorreia.wordpress.com/tag/pinax/feed/"><strong>feed</strong></a> for my Pinax-related articles.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Exploring Pinax - Part 7]]></title>
<link>http://fernandoacorreia.wordpress.com/2008/11/08/exploring-pinax-part-7/</link>
<pubDate>Sat, 08 Nov 2008 11:22:14 +0000</pubDate>
<dc:creator>fernandoacorreia</dc:creator>
<guid>http://fernandoacorreia.wordpress.com/2008/11/08/exploring-pinax-part-7/</guid>
<description><![CDATA[I&#8217;m proceeding in my quest to learn how to create a Django application using Pinax as a base. ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;m proceeding in <a href="http://fernandoacorreia.wordpress.com/2008/11/08/exploring-pinax-series/">my quest</a> to learn how to create a <a href="http://www.djangoproject.com/">Django</a> application using <a href="http://pinaxproject.com/">Pinax</a> as a base. I&#8217;m writing a sample paste bin application called <a href="http://images.google.com/images?q=Oxybeles">Oxybeles</a>. It&#8217;s main feature will be the ability to send pasted items to another user and to receive new pasted items as responses.</p>
<p>I want a user to be <strong>notified</strong> when another user sends an item or responds to one. So I went looking how the applications integrated into Pinax do that. For instance, the Inbox feature in Pinax can be used to send a message to another website user:</p>
<p><img class="alignnone size-full wp-image-301" title="Compose Message" src="http://fernandoacorreia.wordpress.com/files/2008/11/pinax-part7-1.png" alt="" width="340" height="100" /></p>
<p>The Propose Swap feature of the Swaps application will also notify another user:</p>
<p><img class="alignnone size-full wp-image-302" title="Propose Swap" src="http://fernandoacorreia.wordpress.com/files/2008/11/pinax-part7-2.png" alt="" width="337" height="205" /></p>
<p>Those notifications can be seen in the Notices feature of the Inbox:</p>
<p><img class="alignnone size-full wp-image-303" title="Notices" src="http://fernandoacorreia.wordpress.com/files/2008/11/pinax-part7-3.png" alt="" width="545" height="177" /></p>
<p>By inspecting the source code for these features, I found out that they use the <a href="http://code.google.com/p/django-notification/"><strong>django-notification</strong></a> app. There is some <a href="http://pinaxproject.com/docs/trunk/external/notification/index.html">documentation</a> about it on the Pinax project website. So, I started following it.</p>
<h1>Creating notice types</h1>
<p>Following samples and <a href="http://pinaxproject.com/docs/trunk/external/notification/usage.html#creating-notice-types">documentation</a>, I created the file <strong>apps/oxybeles/management.py</strong> that creates notice types at syncdb time:</p>
<pre class="brush: python;">
from django.db.models import signals, get_app
from django.utils.translation import ugettext_noop as _
from django.core.exceptions import ImproperlyConfigured

try:
    notification = get_app('notification')

    def create_notice_types(app, created_models, verbosity, **kwargs):
        notification.create_notice_type(
            &quot;pasteditem_received&quot;,
            _(&quot;Pasted Item Received&quot;),
            _(&quot;you have received a pasted item&quot;))
        notification.create_notice_type(
            &quot;pasteditem_sent&quot;,
            _(&quot;Pasted Item Sent&quot;),
            _(&quot;you sent a pasted item&quot;))

    signals.post_syncdb.connect(create_notice_types, sender=notification)
except ImproperlyConfigured:
    print &quot;Skipping creation of NoticeTypes as notification app not found.&quot;
</pre>
<p>Then I ran syncdb:</p>
<pre>$ python manage.py syncdb
Created pasteditem_received NoticeType
Created pasteditem_sent NoticeType</pre>
<h1>Notification templates</h1>
<p>Then I created the templates that will be used to format the notifications. Each set is composed by three files: short.txt, full.txt and notice.html. For each notification type I created a directory under apps/oxybeles/templates/notification. For instance:</p>
<p><strong>apps/oxybeles/templates/notification/pasteditem_received/full.txt:</strong></p>
<pre class="brush: xml;">
{% load i18n %}{% blocktrans with pasted_item.get_absolute_url as pasted_item_url %}
{{ sender }} sent you a pasted item:

http://{{ current_site }}{{ pasted_item_url }}{% endblocktrans %}
</pre>
<p><strong>apps/oxybeles/templates/notification/pasteditem_sent/notice.html:</strong></p>
<pre class="brush: xml;">
{% load i18n %}
{% blocktrans with pasted_item.get_absolute_url as pasted_item_url %}
You sent a &lt;a href=&quot;{{ pasted_item_url }}&quot;&gt;pasted item&lt;/a&gt; to {{ recipient }}.
{% endblocktrans %}
</pre>
<h1>Sending notification</h1>
<p>After that I should be able to notify a user when someone sends a pasted item. The first step is to add an appropriate field to the pasted item detail template:</p>
<p><strong>templates/oxybeles/pasteditem_detail.html:</strong></p>
<pre class="brush: xml;">
...
&lt;h1&gt;Pasted Item&lt;/h1&gt;
&lt;pre&gt;
&lt;p&gt;{{ object.text }}&lt;/p&gt;
&lt;/pre&gt;
&lt;div id=&quot;basic-form&quot;&gt;
&lt;fieldset&gt;
&lt;legend&gt;{% trans &quot;Send Item&quot; %}&lt;/legend&gt;
&lt;form id=&quot;pastebin_send_form&quot; method=&quot;POST&quot; action=&quot;&quot;&gt;
&lt;div&gt;{{ form.non_field_errors }}&lt;/div&gt;
&lt;div&gt;{{ form.recipient.errors }}&lt;/div&gt;
&lt;div&gt;Send to another user: {{ form.recipient }}&lt;/div&gt;
&lt;div&gt;&lt;input type=&quot;submit&quot; value=&quot;send&quot; class=&quot;button&quot; /&gt;&lt;/div&gt;
&lt;input type=&quot;hidden&quot; name=&quot;action&quot; value=&quot;send&quot; /&gt;
&lt;input type=&quot;hidden&quot; name=&quot;uuid&quot; value=&quot;{{ object.uuid }}&quot; /&gt;
&lt;/form&gt;
&lt;/fieldset&gt;
&lt;/div&gt;
...
</pre>
<p>And a form to deal with the submitted data:</p>
<p>In <strong>apps/oxybeles/forms.py</strong>:</p>
<pre class="brush: python;">
...
class SendItemForm(forms.Form):
    uuid = forms.CharField(max_length=36)
    recipient = forms.CharField(max_length=30)
...
</pre>
<p>The view that shows a pasted item now will also act on this form&#8217;s data:</p>
<p>In <strong>apps/oxybeles/views.py</strong>:</p>
<pre class="brush: python;">
...
def detail(request, uuid, form_class=SendItemForm, template_name='oxybeles/pasteditem_detail.html'):
    form = form_class()
    if request.method == 'POST':
        if request.POST[&quot;action&quot;] == &quot;send&quot;:
            form = form_class(sender=request.user, data=request.POST)
            if form.is_valid():
                form.save()
                request.user.message_set.create(
                    message=ugettext(&quot;The pasted item was sent.&quot;))
                url = form.pasted_item.get_absolute_url()
                return HttpResponseRedirect(url)
    pasted_item = get_object_or_404(PastedItem, uuid=uuid)
    return render_to_response(template_name,
                              { 'object': pasted_item, 'form': form },
                              context_instance=RequestContext(request))
detail = login_required(detail)
...
</pre>
<p>The <strong>form.save()</strong> function will notify the recipient and also the sender.</p>
<p>In <strong>apps/oxybeles/forms.py</strong>:</p>
<pre class="brush: python;">
...
def save(self):
    self.pasted_item = self.cleaned_data['uuid']
    self.recipient_user = self.cleaned_data['recipient']
    if notification:
        notification.send([self.sender], &quot;pasteditem_sent&quot;,
                            {'pasted_item': self.pasted_item,
                            'recipient': self.recipient_user,})
        notification.send([self.recipient_user], &quot;pasteditem_received&quot;,
                            {'pasted_item': self.pasted_item,
                            'sender': self.sender,})
...
</pre>
<p><a href="http://code.google.com/p/django-notification/"><strong>django-notification</strong></a> does all the work. It creates the notifications and will also mail the user if the preference is enabled. The email will only be sent when we run <strong>manage.py send_mail</strong>, though.</p>
<p>Now I can send a pasted item I&#8217;m seeing:</p>
<p><img src="http://fernandoacorreia.wordpress.com/files/2008/11/pinax-part7-4.png" alt="Sending a pasted item" title="Sending a pasted item" width="213" height="322" class="alignnone size-full wp-image-320" /></p>
<p>Those sendings are recorded as notifications:</p>
<p><img src="http://fernandoacorreia.wordpress.com/files/2008/11/pinax-part7-5.png" alt="Item sent notification" title="Item sent notification" width="403" height="35" class="alignnone size-full wp-image-321" /></p>
<p>And the recipient is notified when someone sends an item:</p>
<p><img src="http://fernandoacorreia.wordpress.com/files/2008/11/pinax-part7-6.png" alt="Item received notification" title="Item received notification" width="450" height="37" class="alignnone size-full wp-image-322" /></p>
<p>Pinax is an integrated collection of selected reusable Django apps, and I&#8217;m starting to learn how to leverage it. Seems pretty nice so far.</p>
<p>The code for this article is hosted at <a href="http://github.com/fernandoacorreia/oxybeles/tree/225476e42b28d91fecbd664746afabb91a5fc538">GitHub</a>. Feedback is welcome.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Exploring Pinax - Part 6]]></title>
<link>http://fernandoacorreia.wordpress.com/2008/10/30/exploring-pinax-part-6/</link>
<pubDate>Thu, 30 Oct 2008 22:53:26 +0000</pubDate>
<dc:creator>fernandoacorreia</dc:creator>
<guid>http://fernandoacorreia.wordpress.com/2008/10/30/exploring-pinax-part-6/</guid>
<description><![CDATA[I think this series of articles is starting to pay off&#8230; A few people are using my first articl]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I think this <a href="http://fernandoacorreia.wordpress.com/tag/pinax/">series</a> of articles is starting to pay off&#8230; A few people are using my first article to learn how to set up a new Pinax website. And also, I am getting feedback on how to do things better.</p>
<p>On the pinax-users list, Bob Haugen <a href="http://groups.google.com/group/pinax-users/browse_thread/thread/699a6cd60cc89e22/7d9a3ef4c446b18a?hl=en#7d9a3ef4c446b18a">pointed out</a> that I was not following the recommended setup, because I was creating my new website inside Pinax&#8217;s project directory. There was no real harm, but he was right. I updated <a href="http://fernandoacorreia.wordpress.com/2008/10/22/exploring-pinax-part-1/">my instructions</a> so Pinax and the custom website are in separate directories.</p>
<p>As I wrote on the user list:</p>
<blockquote><p>Let me explain my motives. I use Subversion daily and I&#8217;m comfortable<br />
with it. I knew that just copying the directory would give me lots of<br />
trouble when I decided to update Pinax. So the &#8220;export&#8221; idea was<br />
natural.</p>
<p>I just exported it alongside the sample project because I was just<br />
starting to learn Pinax and didn&#8217;t want to mess too much with the<br />
structure because I didn&#8217;t know about its dependencies. I had read the<br />
customization doc, but it was not so clear to me at first sight.</p>
<p>But the official doc is right. I think we should consider Pinax more<br />
like a library, like Django itself, that should be installed and<br />
updated on its own, and the website we build should be a separate<br />
project, with its own version control. So it should be natural to put<br />
Pinax where we store random software (I used ~/opt) and our website<br />
where we put things we&#8217;re working on or software we deploy (I used<br />
~/Projects).</p></blockquote>
<p>I&#8217;m very grateful for the feedback and I hope this humble series may be helpful.</p>
<p>Cheers!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Exploring Pinax - Part 5]]></title>
<link>http://fernandoacorreia.wordpress.com/2008/10/28/exploring-pinax-part-5/</link>
<pubDate>Tue, 28 Oct 2008 22:50:37 +0000</pubDate>
<dc:creator>fernandoacorreia</dc:creator>
<guid>http://fernandoacorreia.wordpress.com/2008/10/28/exploring-pinax-part-5/</guid>
<description><![CDATA[Proceeding with my project to learn how to develop a Django web application over Pinax, I build two ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Proceeding with <a href="http://fernandoacorreia.wordpress.com/tag/pinax/">my project</a> to learn how to develop a Django web application over Pinax, I build two simple forms: one for submitting a new item, and another to show an item.</p>
<p>As one reader commented, up to this point I&#8217;m not really using any Pinax feature other than the website structure itself, like authentication, templates and menus. I&#8217;m starting with a basic Django application. I hope to add soon features like notification, messaging, tagging, gravatar.</p>
<p>So, in this sprint I started by defining two URLs:</p>
<ul>
<li><strong>/pastebin/</strong> to submit a new item</li>
<li><strong>/pastebin/&#60;uuid&#62;/</strong> to view a submitted item</li>
</ul>
<p>This is what my <strong>apps/oxybeles/urls.py</strong> file looks like:</p>
<pre class="brush: python;">
from django.conf.urls.defaults import *
from oxybeles.models import PastedItem

info_dict = {
    'queryset': PastedItem.objects.all(),
    'slug_field': 'uuid',
}

urlpatterns = patterns('',
    url(r'^$', 'oxybeles.views.new', name='oxybeles_new'),
    url(r'^(?P&lt;slug&gt;[-0-9a-f]{36})/$',
        'django.views.generic.list_detail.object_detail',
        info_dict,
        'oxybeles_detail'),
)
</pre>
<p>I also updated <strong>apps/oxybeles/models.py</strong> so it knows how to build a URL for a pasted item:</p>
<pre class="brush: python;">
def get_absolute_url(self):
    return ('oxybeles_detail', (), { 'slug': self.uuid })
get_absolute_url = models.permalink(get_absolute_url)
</pre>
<p>I wrote a simple form class in <strong>apps/oxybeles/forms.py</strong>:</p>
<pre class="brush: python;">
from django import forms
from django.utils.translation import ugettext_lazy as _ 

from oxybeles.models import PastedItem 

class PastedItemForm(forms.ModelForm):
    class Meta():
        model = PastedItem
        fields = ('text',)

    def __init__(self, user = None, *args, **kwargs):
        self.user = user
        super(PastedItemForm, self).__init__(*args, **kwargs)
</pre>
<p>And finally I wrote in <strong>apps/oxybeles/views.py </strong>the view function that is in charge of the form for submitting new items:</p>
<pre class="brush: python;">
from django.shortcuts import render_to_response, get_object_or_404
from django.http import HttpResponseRedirect, get_host
from django.template import RequestContext
from django.core.urlresolvers import reverse
from django.utils.translation import ugettext, ugettext_lazy as _
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required

from oxybeles.models import PastedItem
from oxybeles.forms import PastedItemForm

def new(request, form_class=PastedItemForm, template_name=&quot;oxybeles/new.html&quot;):
    &quot;&quot;&quot;
    Form for pasting new items.
    &quot;&quot;&quot;
    form = form_class()
    if request.method == 'POST':
        if request.POST[&quot;action&quot;] == &quot;paste&quot;:
            form = form_class(request.user, request.POST)
            if form.is_valid():
                item = form.save(commit=False)
                item.user = request.user
                item.save()
                request.user.message_set.create(
                    message=ugettext(&quot;The new pasted item was saved.&quot;))
                    # some problem with ugettext_lazy here
                return HttpResponseRedirect(reverse('oxybeles_detail',
                                            args=(item.uuid,)))
    return render_to_response(template_name,
                              { &quot;form&quot;: form, },
                              context_instance=RequestContext(request))
new = login_required(new)
</pre>
<p>Finally, I wrote the two templates.</p>
<p><strong>templates/oxybeles/new.html:</strong></p>
<pre class="brush: xml;">
{% extends &quot;site_base.html&quot; %}

{% load i18n %}

{% block head_title %}{% trans &quot;Paste Bin&quot; %}{% endblock %}

{% block body %}
&lt;div id=&quot;basic-form&quot;&gt;
&lt;fieldset&gt;
&lt;legend&gt;{% trans &quot;New Item&quot; %}&lt;/legend&gt;
&lt;form id=&quot;pastebin_new_form&quot; method=&quot;POST&quot; action=&quot;&quot;&gt;
&lt;div&gt;{{ form.non_field_errors }}&lt;/div&gt;
&lt;div&gt;{{ form.text.errors }}&lt;/div&gt;
&lt;div&gt;{{ form.text }}&lt;/div&gt;
&lt;div&gt;&lt;input type=&quot;hidden&quot; name=&quot;action&quot; value=&quot;paste&quot; /&gt;
&lt;input type=&quot;submit&quot; value=&quot;paste&quot; class=&quot;button&quot; /&gt;&lt;/div&gt;
&lt;/form&gt;
&lt;/fieldset&gt;
&lt;/div&gt;
{% endblock %}
</pre>
<p><strong>templates/oxybeles/pasteditem_detail.html:</strong></p>
<pre class="brush: xml;">
{% extends &quot;site_base.html&quot; %}

{% load i18n %}

{% block head_title %}{% trans &quot;Paste Bin&quot; %}{% endblock %}

{% block body %}
&lt;h1&gt;Pasted Item&lt;/h1&gt;
&lt;pre&gt;
&lt;p&gt;{{ object.text }}&lt;/p&gt;
&lt;/pre&gt;
{% endblock %}
</pre>
<p>And this is the final result:</p>
<p><strong>http://127.0.0.1:8000/pastebin/</strong></p>
<p><img class="alignnone size-full wp-image-280" title="New Pasted Item" src="http://fernandoacorreia.wordpress.com/files/2008/10/pinax-part5-01.png" alt="" width="355" height="284" /></p>
<p><strong>http://127.0.0.1:8000/pastebin/47d33482-a936-453a-8d4a-88aada4ebc44/</strong></p>
<p><img class="alignnone size-full wp-image-282" title="View Pasted Item" src="http://fernandoacorreia.wordpress.com/files/2008/10/pinax-part5-021.png" alt="" width="345" height="164" /></p>
<p>So, the basic app is in place. The source is in <a href="http://github.com/fernandoacorreia/oxybeles/tree/1af5676234f4ea1a29da3662e57fde92c052b2eb">GitHub</a>. In the next article I plan to implement a command to send a pasted item to a user, using Pinax&#8217;s features.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Exploring Pinax - Part 4]]></title>
<link>http://fernandoacorreia.wordpress.com/2008/10/26/exploring-pinax-part-4/</link>
<pubDate>Sun, 26 Oct 2008 23:49:04 +0000</pubDate>
<dc:creator>fernandoacorreia</dc:creator>
<guid>http://fernandoacorreia.wordpress.com/2008/10/26/exploring-pinax-part-4/</guid>
<description><![CDATA[This is the fourth of a series of articles about my experience learning Pinax. In the previous artic]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This is the fourth of a <a href="http://fernandoacorreia.wordpress.com/tag/pinax/">series of articles</a> about my experience learning <a href="http://pinaxproject.com/">Pinax</a>. In the previous articles I created a new option in the menu for a paste bin application and linked it to a very basic view.</p>
<p>My next step is to create a form for pasting text. I plan to do that using a form based on a model object. So the first thing I did was to write that model.</p>
<pre>$ gedit apps/oxybeles/models.py</pre>
<pre class="brush: python;">
from django.contrib.auth.models import User
from django.db import models
from django.utils.translation import ugettext_lazy as _
from uuid import uuid4

class PastedItem(models.Model):
    &quot;&quot;&quot;
    An item that was pasted.
    &quot;&quot;&quot;

    uuid = models.CharField(_('identifier'), max_length=36, unique=True)
    text = models.TextField(_('text'))
    in_response_to = models.ForeignKey('self', related_name='responses',
        blank=True, null=True, verbose_name=_('in response to'))
    user = models.ForeignKey(User, related_name=&quot;pasted_items&quot;,
        verbose_name=_('user'))
    pasted_at = models.DateTimeField(_('pasted at'), auto_now_add=True)

    def __unicode__(self):
        return self.uuid

    def save(self):
        if not self.uuid:
            self.uuid = str(uuid4())  # random so it can't be easily guessed
        super(PastedItem, self).save()
</pre>
<p>The <strong>uuid</strong> will be used later to refer to an object in a URL. It will be a random unique identifier. The <strong>text</strong> field is what the user pasted, and is the main content of this object.</p>
<p>I plan to allow responses to pasted items, so that two users can share different versions of the same text. The <strong>in_response_to</strong> field will be used for that.</p>
<p>Since now the application has a model object, I must tell Django about it:</p>
<pre>$ gedit settings.py</pre>
<p>Insert the application name inside the INSTALLED_APPS list:</p>
<pre class="brush: python;">
INSTALLED_APPS = (
...
    'oxybeles',
...
)
</pre>
<p>Then I was ready to review if the table would be created correctly:</p>
<pre>$ python manage.py sqlall oxybeles</pre>
<pre class="brush: sql;">
BEGIN;
CREATE TABLE &quot;oxybeles_pasteditem&quot; (
    &quot;id&quot; integer NOT NULL PRIMARY KEY,
    &quot;uuid&quot; varchar(36) NOT NULL UNIQUE,
    &quot;text&quot; text NOT NULL,
    &quot;in_response_to_id&quot; integer NULL,
    &quot;user_id&quot; integer NOT NULL REFERENCES &quot;auth_user&quot; (&quot;id&quot;),
    &quot;pasted_at&quot; datetime NOT NULL
)
;
CREATE INDEX &quot;oxybeles_pasteditem_in_response_to_id&quot;
ON &quot;oxybeles_pasteditem&quot; (&quot;in_response_to_id&quot;);
CREATE INDEX &quot;oxybeles_pasteditem_user_id&quot;
ON &quot;oxybeles_pasteditem&quot; (&quot;user_id&quot;);
COMMIT;
</pre>
<p>Finally, I updated the database structure:</p>
<pre>$ python manage.py syncdb</pre>
<p>To test this model, I defined an administrative interface:</p>
<pre>$ gedit apps/oxybeles/admin.py</pre>
<pre class="brush: python;">
from django.contrib import admin
from oxybeles.models import PastedItem

class PastedItemAdmin(admin.ModelAdmin):
    list_display = ('uuid', 'user', 'pasted_at',)
    fields = ('text', 'in_response_to', 'user',)

admin.site.register(PastedItem, PastedItemAdmin)
</pre>
<p>Starting the server again and browsing to <a href="http://127.0.0.1:8000/admin/oxybeles/pasteditem/">http://127.0.0.1:8000/admin/oxybeles/pasteditem/</a>, I was able to create a few pasted items to verify that all is working:</p>
<p><img class="alignnone size-full wp-image-271" title="Pasted Items Administrative Interface" src="http://fernandoacorreia.wordpress.com/files/2008/10/pinax-part4-01.png" alt="" width="744" height="242" /></p>
<p>In the next step I will create the user interface to paste new items and to view stored items.</p>
<p>The source code is hosted on <a href="http://github.com/fernandoacorreia/oxybeles/tree/9f854acb9c9118a6717ff191d1bc9c41c352a08d">GitHub</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Exploring Pinax - Part 3]]></title>
<link>http://fernandoacorreia.wordpress.com/2008/10/24/exploring-pinax-part-3/</link>
<pubDate>Fri, 24 Oct 2008 23:51:47 +0000</pubDate>
<dc:creator>fernandoacorreia</dc:creator>
<guid>http://fernandoacorreia.wordpress.com/2008/10/24/exploring-pinax-part-3/</guid>
<description><![CDATA[This is the third of a series of articles about my experience with the Pinax project. I am building ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This is the third of a <a href="http://fernandoacorreia.wordpress.com/tag/pinax/">series of articles</a> about my experience with the <a href="http://pinaxproject.com/">Pinax</a> project. I am building a sample paste bin application named <a href="http://images.google.com/images?q=Oxybeles">Oxybeles</a>, of all things.</p>
<p>On the previous articles I installed Pinax and created a tab in the main menu for my new app. Now I want to create a basic view, but first I need to start a new Django app.</p>
<pre>$ python manage.py startapp oxybeles</pre>
<p>It seems that it would be appropriate to move it into the apps directory, so I did that:</p>
<pre>$ mv oxybeles/ apps/</pre>
<p>Here, I took a detour to create a <a href="http://github.com/fernandoacorreia/oxybeles/tree">GitHub repository</a> to host this application, but I won&#8217;t record my git sessions on this series, because the focus is on Pinax and Django.</p>
<p>After exploring a bit how other Pinax application URLs are set up, I decided to start by copying the pattern used in the &#8220;about&#8221; application.</p>
<p>I started by creating a basic template:</p>
<pre>$ mkdir templates/oxybeles
$ gedit templates/oxybeles/new.html</pre>
<p>I created the new file <strong>templates/oxybeles/new.html</strong> with this content:</p>
<pre>{% extends "site_base.html" %}

{% load i18n %}

{% block head_title %}{% trans "Paste Bin" %}{% endblock %}

{% block body %}
    {% blocktrans %}
        &#60;p&#62;This will be a form to post some text.&#60;/p&#62;
    {% endblocktrans %}
{% endblock %}</pre>
<p>Next, I created a new urls.py file inside the new app:</p>
<pre>$ gedit apps/oxybeles/urls.py</pre>
<pre class="brush: python;">
from django.conf.urls.defaults import *
from django.views.generic.simple import direct_to_template

urlpatterns = patterns('',
    url(r'^$',
        direct_to_template,
        {&quot;template&quot;: &quot;oxybeles/new.html&quot;},
        name=&quot;oxybeles_new&quot;),
)
</pre>
<p>Then I added the new application to the main <strong>urls.py</strong> file:</p>
<pre>$ gedit urls.py</pre>
<p>Around line 56, inside the urlpatterns list declaration, I inserted:</p>
<pre>(r'^pastebin/', include('oxybeles.urls')),</pre>
<p>And finally, I changed the menu option to link to the new URL:</p>
<p>$ gedit templates/site_base.html</p>
<p>Changing:</p>
<pre>&#60;td class="tab rtab_pastebin"&#62;&#60;div&#62;&#60;a href="#"&#62;{% trans "Paste Bin" %}&#60;/a&#62;&#60;/div&#62;&#60;/td&#62;</pre>
<p>To:</p>
<pre>&#60;td class="tab rtab_pastebin"&#62;&#60;div&#62;&#60;a href="{% url oxybeles_new %}"&#62;{% trans "Paste Bin" %}&#60;/a&#62;&#60;/div&#62;&#60;/td&#62;</pre>
<p>Now the <strong>Paste Bin</strong> menu item links to <a href="http://127.0.0.1:8000/pastebin/">http://127.0.0.1:8000/pastebin/</a> and that renders the <strong>oxybeles/new.html</strong> template that shows just:</p>
<pre>This will be a form to post some text.</pre>
<p>Good, the new app is linked to Pinax and the basic view is working. In the next article I&#8217;ll try to get a basic form working.</p>
<p>The application source code at this stage can be found in <a href="http://github.com/fernandoacorreia/oxybeles/tree/bc8a5567478a483b7e8182a0b5cee838806b5ff2">GitHub</a>.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Exploring Pinax - Part 2]]></title>
<link>http://fernandoacorreia.wordpress.com/2008/10/23/exploring-pinax-part-2/</link>
<pubDate>Thu, 23 Oct 2008 22:59:36 +0000</pubDate>
<dc:creator>fernandoacorreia</dc:creator>
<guid>http://fernandoacorreia.wordpress.com/2008/10/23/exploring-pinax-part-2/</guid>
<description><![CDATA[This is the second of a series of articles where I register what I learn about developing Web applic]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>This is the second of a <a href="http://fernandoacorreia.wordpress.com/tag/pinax/">series of articles</a> where I register what I learn about developing Web applications with <a href="http://pinaxproject.com/">Pinax</a>.</p>
<p>In the <a href="http://fernandoacorreia.wordpress.com/2008/10/22/exploring-pinax-part-1/">first part</a> I got the sample website running. Now I&#8217;m going to add a section for a new application.</p>
<p>I will develop a simple <a href="http://en.wikipedia.org/wiki/Pastebin">paste bin</a> where people will be able to store small ammounts of text and send it to other people. I will try to write it as a reusable Django application and leverage Pinax&#8217;s features.</p>
<p>I will call this application <a href="http://images.google.com/images?q=Oxybeles"><strong>Oxybeles</strong></a>: an implement for throwing things, because when you paste something online you usually want to &#8220;throw&#8221; it to someone. Besides, a Greek name fits a Pinax app.</p>
<h1>Creating a new tab</h1>
<p>The first thing I wanted to do was to create a new tab in the site interface for the paste bin app. After searching a little I found out that the website tabs are defined in <strong>templates/site_base.html</strong> and that the actual text is stored in localizable resource files such as <strong>locale/en/LC_MESSAGES/django.po</strong>.</p>
<p>So I edited <strong>templates/site_base.html</strong> and inside the {% block right_tab %} section I inserted this line, among the others:</p>
<pre>&#60;td class="tab rtab_pastebin"&#62;&#60;div&#62;&#60;a href="#"&#62;{% trans "Paste Bin" %}&#60;/a&#62;&#60;/div&#62;&#60;/td&#62;</pre>
<p>After that I thought I should edit <strong>locale/en/LC_MESSAGES/django.po</strong>. But it seemed autogenerated, so I went to learn how that works. <a href="http://docs.djangoproject.com/en/dev/topics/i18n/">Django&#8217;s documentation</a> is great. I quickly found out that internationalization is very easy and automatic in Django. While I&#8217;m developing I can just use the English text. If I want to update the translation files I can use this command at the project&#8217;s root dir:</p>
<pre>$ python manage.py makemessages -l en</pre>
<p>The first time, I got a message complaining that xgettext was not found. I corrected that by installing gettext:</p>
<pre>$ sudo aptitude install gettext</pre>
<p>After that, I generated the makemessages command again and I could see that <strong>locale/en/LC_MESSAGES/django.po</strong> was updated. I learned that I should also compile those files. But I reckon I&#8217;d only need to do that before a release, not during development.</p>
<p>So, with only a single new line in a template, I got the <strong>Paste Bin</strong> tab:</p>
<p><img class="alignnone size-full wp-image-247" title="Paste Bin tab" src="http://fernandoacorreia.wordpress.com/files/2008/10/pinax-part2-011.png" alt="" width="397" height="47" /></p>
<p>In the next step I will develop a basic view for this tab and maybe start the model object.</p>
<p>Your feedback is welcome.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Exploring Pinax - Part 1]]></title>
<link>http://fernandoacorreia.wordpress.com/2008/10/22/exploring-pinax-part-1/</link>
<pubDate>Wed, 22 Oct 2008 23:13:27 +0000</pubDate>
<dc:creator>fernandoacorreia</dc:creator>
<guid>http://fernandoacorreia.wordpress.com/2008/10/22/exploring-pinax-part-1/</guid>
<description><![CDATA[What this is about After learning how to build a Flex client and a Python server running on Google A]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h1>What this is about</h1>
<p>After learning how to build a Flex client and a Python server running on Google App Engine, I decided to try a pure-Web, pure-Python alternative. I chose <strong><a href="http://www.djangoproject.com/">Django</a></strong>, a first-class Web framework. I went through the <a href="http://docs.djangoproject.com/en/dev/intro/tutorial01/">tutorial</a> and read the excellent book <a href="http://www.amazon.com/Practical-Django-Projects-Pratical/dp/1590599969">Practical Django Projects</a>. The next step is building a website with some applications.</p>
<p>Fortunately, I found out about the <a href="http://pinaxproject.com/"><strong>Pinax</strong></a> project. It builds a website framework over Django and provides patterns for interoperable applications. I decided to learn how to leverage it so I can learn best practices and use some of its nice features like notifications.</p>
<p>I will do my learning in the open, as I did <a href="http://fernandoacorreia.wordpress.com/2008/08/23/example-of-ria-in-the-cloud/">before</a>, sharing my path and my discoveries. This is a journey from the eyes of a n00b that knows very little about Python, Django and Pinax.</p>
<p>I found out that this process helps me focus and structure my self-learning. I hope it may be useful to someone that follows the same path. And maybe someone more knowledgeable will correct one or two of the bloopers I make.</p>
<h1>Installing Pinax</h1>
<p>I started in a development environment that was already configured to run Django applications and had its fair share of tools, like a <strong>Subversion</strong> client and <strong>sendmail</strong>. You will have to refer to basic Django and Python material if you need to learn how to get to this point. Also, all my work is being done on <strong>Ubuntu 8.10</strong>, so you may need to adjust some commands if you use other environment.</p>
<p><strong>Making a directory for Pinax:</strong></p>
<pre>$ mkdir ~/opt/django -p
$ cd ~/opt/django</pre>
<p>Downloading Pinax and associated applications and libraries:</p>
<pre>$ svn checkout http://svn.pinaxproject.com/pinax/trunk/ pinax</pre>
<p>I am using version 0.5.0rc1. Things might be different if you use a newer version.</p>
<h1>Creating a sample project</h1>
<p><em><strong>Edit:</strong> I changed these instructions twice, first to reflect <a href="http://pinaxproject.com/docs/0.5.0/customization.html">best practices</a>, thanks to <a href="http://groups.google.com/group/pinax-users/browse_thread/thread/699a6cd60cc89e22/7d9a3ef4c446b18a?hl=en#7d9a3ef4c446b18a">a tip</a> by Bob Haugen and later when Pinax was updated to require only changes in settings.py and not in manage.py.<br />
</em></p>
<p>Pinax comes with a sample project that can be used directly, but I will create an independent clone that I can change at will without getting in trouble with repository updates later.</p>
<pre>$ cd pinax/projects/
$ svn export complete_project/ ~/Projects/exploring_pinax</pre>
<p>Now we must edit settings.py to reflect the directory where we installed Pinax:</p>
<pre>$ cd ~/Projects/exploring_pinax
$ vi settings.py</pre>
<p>Change PINAX_ROOT to the main Pinax directory. For instance:</p>
<pre>...
PINAX_ROOT = '/home/fernando/opt/django/pinax'
...</pre>
<p>Also set ROOT_URLCONF using the name of the directory you exported the website project to:</p>
<pre>...
ROOT_URLCONF = 'exploring_pinax.urls'
...</pre>
<p>After that, save settings.py.</p>
<p>If we want, we can also create a file for future local settings like database passwords. I won&#8217;t use it now, but it may be handy to have it already created:</p>
<pre>$ touch local_settings.py</pre>
<p>Now create the local sqlite3 database:</p>
<pre>$ python manage.py syncdb</pre>
<p>When asked, create a superuser (admin).</p>
<h1>Starting the website</h1>
<pre>$ python manage.py runserver</pre>
<p>Open <a href="http://127.0.0.1:8000/">http://127.0.0.1:8000/</a> in your browser. You should have a Pinax website running. Congratulations! Login with your superuser and explore at leisure.</p>
<p><img class="alignnone size-full wp-image-236" title="Sample Pinax website" src="http://fernandoacorreia.wordpress.com/files/2008/10/pinax-part1-01.png" alt="" width="583" height="453" /></p>
<p>If you want to follow this series, browse <a href="http://fernandoacorreia.wordpress.com/tag/pinax/">http://fernandoacorreia.wordpress.com/tag/pinax/</a> for more articles or subscribe to my <a href="http://fernandoacorreia.wordpress.com/feed/">feed</a>.</p>
<p>Your feedback is most welcome.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Newbie's Experience Setting Up a Pinax Site]]></title>
<link>http://fitzgeraldsteele.wordpress.com/2008/10/16/newbies-experience-setting-up-a-pinax-site/</link>
<pubDate>Thu, 16 Oct 2008 19:20:28 +0000</pubDate>
<dc:creator>fitzgeraldsteele</dc:creator>
<guid>http://fitzgeraldsteele.wordpress.com/2008/10/16/newbies-experience-setting-up-a-pinax-site/</guid>
<description><![CDATA[As I mentioned last week, I&#8217;m using Pinax to test a new website for my research lab.  The site]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://fitzgeraldsteele.wordpress.com/2008/10/10/playing-with-pinaxplaying-with-pinax/">As I mentioned last week</a>, I&#8217;m using <a href="http://pinaxproject.com">Pinax </a>to test a new website for my research lab.  The site is now in private alpha, which means I&#8217;m getting some internal users to log in, test it out, and give me feedback, and I don&#8217;t think it will fall over.  I&#8217;m writing up my experience to 1) help others get started quickly, and 2) start talking about how the pinax community can get people ramped up faster.</p>
<p>My background:</p>
<ul>
<li>Journeyman Python Programmer.  Can independently write code, diagnose most problems.</li>
<li>Journeyman HTML/CSS/Javascript. Can independently write code, diagnose most problems.</li>
<li>Some experience doing apache configuration, though not recently. No experience with mod_python or mod_wsgi.  I largely rely on documentation and examples found on the interwebs.</li>
<li>No major prior experience with <a href="http://www.djangoproject.com">django</a>, and none deploying it via Apache/mod_{python,wsgi}.  I almost exclusively rely on documentation and examples found on the web (although my python experience helps)</li>
</ul>
<p>The nice thing about pinax is that it has an active community; in particular an active IRC channel (#pinax on freenode).  The pinax maintainers have been there, patiently answered my newbie questions, and got me going.</p>
<h3>Step 1 &#8211;  Get the base pinax software running.</h3>
<p>Download and install django and pinax.   I first did this on a WinXP desktop.  Crap.  The templates aren&#8217;t rendering properly.  I try commenting out the offending lines in the templates, but problem after problem comes up.  Jump on #pinax.  Did you do seed the database with <code>manage.py syncdb</code>?   Uhh, no.  I do that, but still having problems.  Back to #pinax.  Are you running WinXP?  Why yes!  Oh, pinax on Windows has a known bug (<a href="http://groups.google.com/group/django-hotclub/msg/e41d4220d7f65299">which really is caused by one of the external apps they rely on</a>).  Copy some files to a new location, or install on an OS which supports soft links.  I choose door 2, recheckout on my Ubuntu machine, sync the database, run the django dev server (<code> manage.py runserver</code>) and we&#8217;re good to go.</p>
<h3>Step 2 &#8211; Make sure everything in the base site works as expected.</h3>
<p>The pinax project comes with a complete working example under the directory projects/complete_projects.  I copy this to a new directory so that I can refer back to the complete_project in case I screw something up.  This means you have to change the ROOT_URLCONF in the settings.py</p>
<p>Added some users via the admin interface&#8230;looks great.  Added an account via the Sign-Up page.  Accounts are created (with or without OpenID), but no confirmation emails are being sent.  Hmm  Check out the included <a href="http://code.google.com/p/django-mailer/">django-mailer</a> app, which uses the same configuration as the <a href="http://docs.djangoproject.com/en/dev/topics/email/">standard django.core.mailer</a>.  We need to add some settings to settings.py: EMAIL_HOST, EMAIL_HOST_USER, EMAIL_HOST_PASSWORD.  I set these to use my gmail account to do email.  But really, it&#8217;d be better to have the emails coming from the local machine, and I really don&#8217;t want to hardcode my gmail password into the config file.  I need <a href="http://www.sendmail.org/">sendmail</a> on this machine (<code>sudo apt-get install sendmail</code>).  Now that the local machine has its own SMTP server, I can remove the EMAIL_* settings from settings.py.</p>
<p>Hmm&#8230;emails still not going out.  Let&#8217;s look at the django-mailer docs.  Oh, I see&#8230;email messages aren&#8217;t actually sent until manage.py send_mail is run from the command line.  The recommended solution is to add a couple lines to the system crontab so that they are run regularly (<a href="http://pinaxproject.com/docs/deployment.html">this is now much clearer in the pinax deployment docs</a>).  Now we&#8217;re sending emails!</p>
<h3>Step 3 &#8211; Configure templates, images, and site text for our lab.</h3>
<p>Ok&#8230;first thing is that the default site says &#8216;Pinax&#8217; everywhere.  I need to change that to the name of our lab, GROK Lab.  There&#8217;s an <a href="http://code.google.com/p/django-hotclub/issues/detail?id=29">outstanding ticket</a> to use a SITE_NAME variable in settings.py which would be displayed throughout the site.  Until that gets resolved, we just have to find all the hardcoded [Pp]inax strings are replace them with the SITE_NAME variable.  I just used grep to find them all, and then I replaced the ones I needed to replace (I left things like Built with Pinax, About Pinax, James Tauber is the awesomest creater of Pinax ever, etc).  Pinax has several translations available, which I think means that I should have been making most of my changes to externalized text strings in locale/en/LC_MESSAGES.  But I didn&#8217;t, and just changed the template files.  I&#8217;m not sure what will happen when another language is selected.  Should learn more about <a href="http://docs.djangoproject.com/en/dev/topics/i18n/#topics-i18n">django internationalization</a>.</p>
<p><em><strong>Update 11/14</strong></em><em>: Fernando Correia did some more digging on how to <a href="http://fernandoacorreia.wordpress.com/2008/10/23/exploring-pinax-part-2/">properly externalize strings in django</a>.</em></p>
<p>One particular place this got me into trouble was, again, the django-mailer app.  Invitations to join the site are generated via two templates: templates/friends/join_invite_message.txt and templates/friends/join_invite_subject.txt.  I wanted the subject of my email to say &#8220;You have been invited to join the new SITE_NAME.&#8221;  I tried to use the variable substitution syntax {% site_name %} but got an exception that I couldn&#8217;t use that tag inside a trans tag.  Read more django docs to learn about <a href="http://docs.djangoproject.com/en/dev/ref/templates/#ref-templates-index">template tags</a> and internationalization.  I also tried changing the join_invite_subject.txt to use {%blocktrans %}, similar to the other template file in that directory.  Oops.  I accidentally added newlines to the subject template, which django-mailer does not like.  I revert to the original join_invite_subject file, and simply hardcode &#8216;GROK Lab&#8217; into the subject string.  Hmm&#8230;still getting the same error messages about newlines in the header, even though I&#8217;ve changed the template.  Oh, the old messages with the bad header are still in the email queue&#8230;its trying to send those, not render new ones based on this template.  I clear out the emails with the bad header out of the database via the admin interface, and email is working again.  Whew&#8230;</p>
<p>The logo image says Pinax.  That&#8217;s no good&#8230;I want to replace that with our lab logo.  Everything is nicely styled with CSS.  My image is a slightly different shape than the pinax logo, so I need to change the height/width in the base.css #tabhead .logo img selector to match my logo file (I made our logo the same height as the original pinax logo to simplify).</p>
<p>This is supposed to be a serious research site, so we probably don&#8217;t need games (although I played some on cloud27 &#8212; they&#8217;re pretty fun, and might be a nice way to encourage a more active community).  I commented out the arcade and games apps in the settings.py, all the related ARCADE_* variables, and the URLpattern in urls.py.  Oops&#8230;many of the templates expect to have the arcade app installed (for example, the navigation tabs are hard coded).  Use grep again to find all mentions of &#8216;arcade,&#8217; and comment them all out.</p>
<p>Finally, there were some functionality that the default installation hides if the user is not logged in.  I wanted to be able to have some read views of the people, projects, blogs, tweets available to anyone who visited the site, but only allow writing if they were logged in.  This involved again grepping through the templates for the right section of code, and adding {% if user.authenticated %} &#8230; {% endif %} tags.</p>
<h3>Step 4 &#8211; Configure site to run through Apache instead of the dev server.</h3>
<p>So I had the site up and running using the django development server on the default port 8000.  But I needed it deployed through apache so that in case of a server restart, I did not have to restart the site by hand.  <a href="http://www.20seven.org/journal/2008/09/pinax-setup-and-deploy.html">The most commonly referenced post for deploying pinax is here</a>.  It gives two sample configurations depending on whether you want to use apache modules mod_wsgi or mod_python.  Which one do I want to use?  What&#8217;s the difference between the two?  No idea.  Look up <a href="http://djangobook.com/en/1.0/chapter20/">django docs on deployment</a>; it seems to recommend mod_python, so I&#8217;ll try that. I wrestle with that for a few hours, but little success.  Back to #pinax, where the consensus is mod_wsgi good, ignore mod_python.  Ok, after another few minutes of messing with my apache site config file, and the pinax.wsgi file, we got it up and running.  A few gotchas:</p>
<ul>
<li>Added the appropriate WSGIScriptAlias to my apache site config.  I could view the site; however, I got errors that apache didn&#8217;t have permissions to write to the db.  Added WSGIDaemonProcess to the site config and that fixed it.</li>
<li>I could access the admin site, but it did not have the correct styles/media.  Needed to add an Alias and Directory commands to the apache site.</li>
<li>Changed the name of the pinax.wsgi to match our site name; need to change the DJANGO_SETTINGS_MODULE variable inside this file</li>
</ul>
<p>So the appropriate section of my apache VirtualHost configuration looks like this:</p>
<p><code># attempt to setup pinax<br />
WSGIScriptAlias / /path/to/your/pinax/project/deploy/pinax.wsgi<br />
WSGIProcessGroup name<br />
WSGIDaemonProcess name user=unixusername group=unixgroup threads=25</code></p>
<p><code>Alias /media/ "/path/to/django/contrib/admin/media/"<br />
&#60;Directory "/path/to/django/contrib/admin/media/"&#62;<br />
Order allow,deny<br />
Options Indexes<br />
Allow from all<br />
IndexOptions FancyIndexing<br />
&#60;/Directory&#62;</code></p>
<p>When debugging this, it was helpful to watch all the appropriate log files to see what error messages were being generated where: <code>tail -f <em>apache.log apacheerror.log projectsend_mail.log project.send_mail_deferred.log</em></code><em></em>.</p>
<h3>Conclusions</h3>
<p>Clearly one area where we can improve pinax is the installation experience.  Compare it to the wordpress install experience&#8230;download into a web accessible directory, open a web page, short configuration, done.</p>
<p>More difficult to deal with is the fact that, in order to use pinax, you need to acquire at least a passing knowledge of django convention and configuration, apache convention and configuration, and all the external apps bundled with pinax.  This can be a tall order.</p>
<p>Still, I got my site up and running, with much more integrated functionality than I would have had with django alone.  I learned alot about pinax, django, and apache, and should have less trouble on my next site.  And I get the desired &#8216;oohs&#8217; and &#8216;ahhs&#8217; and &#8216;damn, how long did it take you to do this?&#8217; from people in the demo.</p>
<p>The next step is a bit more fun.  Now that I&#8217;ve got a basic feel for the technology, I can really think about how to design the site and workflows to best serve the users.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Playing with Pinax]]></title>
<link>http://fitzgeraldsteele.wordpress.com/2008/10/10/playing-with-pinax/</link>
<pubDate>Fri, 10 Oct 2008 21:55:02 +0000</pubDate>
<dc:creator>fitzgeraldsteele</dc:creator>
<guid>http://fitzgeraldsteele.wordpress.com/2008/10/10/playing-with-pinax/</guid>
<description><![CDATA[I&#8217;ve had fun this afternoon playing with Pinax, and new social media framework based on Django]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I&#8217;ve had fun this afternoon playing with <a href="http://pinaxproject.com">Pinax</a>, and new social media framework based on <a href="http://www.djangoproject.com">Django</a>.  I got it up and running very quickly, and with very little configuration (changing template files here and there, styles, etc) I&#8217;ve got a brand new website for my <a href="http://groklab.org">research lab</a> that features user profiles, project sites complete with wikis and task assignment, social bookmarking, discussion boards, and a host of other features. I showed it to a couple of my labmates.  They were able to log in and get up and running without any prompting for me, so it seems to have a familiar and easy-to-use-and-learn interface.  Those that were running their own projects enjoyed the project interface, and the ability to link and follow activities of different team members.</p>
<p>I think James and the rest of the Pinax team have hit the nail right on the head.  Out of the box I get about 90% of the functionality I was considering building for our lab.  I&#8217;d like to create and and in a django-references app, which would store citation information, who&#8217;s read what, who&#8217;s written what, etc.</p>
<p>I&#8217;m looking forward to seeing how much functionality I can add in how much time.  This type of thing could really transform scholarly communication:)</p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
