Se afişează cele mai noi 16 (de) postări din 24 din octombrie 2008. Doresc să se afişeze postări mai vechi

EconomistStiglitzDebateLumea arde si eu mi-am pus sablon nou. Au aparut o gramada de probleme dar, din pacate, nu am timp sa le rezolv. Asa ca merg inainte, urmand sa corectez problemele in cateva zile, cand voi avea mai mult timp. Pan-atunci, sa ne-atintim privirea-n lume.

Mi-au poposit ochii recent pe un foarte lung thread dintr-un forum al bloggerilor. Un blogger proaspat si fresh care este el, Bancheru - dupe nume, dupe port, a solicitat pareri despre noul sau blog si a fost apoi masacrat de comentatori.

Masacre colective online se-ntampla tot timpul si nu e nici o coincidenta ca site-urile dedicate exclusiv acestori activitati, pitzipoanca.org si cocalari.com, se afla in mod constant in top, atat la trafic cat si la comentarii. Exista in noi toti un puternic instinct de haita si indeobste il indreptam asupra celor mai neajutorati. Este firesc sa fie asa si -cine stie?!- poate chiar bine ca milenii de evolutie si cilivizare (sic) n-au schimbat asta. Cei altfel, cei diferiti, cu accent sau limbaj aparte, dar si emo, LGBT, goti, handicapati, tigani, sau din alte minoritati, sunt instinctiv asupriti de majoritate si sil(u)iti in patul lu' Procust. Incercari legislative de a atenua aceste tendinte de turma s-au soldat cu succese moderate. Dar nu despre bully-ing vreau sa ma esprim in acest articol care este el, ci despre gramatica.


Limba si gramatica sunt pentru mai toate popoarele trasatura definitorie; pentru romani, intr-o masura mai mare decat pentru altii. Cata vreme teritoriul era impartit intre cateva imperii cu limbi, culturi si religii complet diferite, limba romana a fost singura noastra comonalitate. Acesta este, de altfel, si unul din motivele pentru care am aberat intens pe seama unui limbaj mai clar.

Traditional, comunicarea scrisa a fost tinuta la un standard mai inalt de cat cea orala (colocviala, mai exact). SMS-ul, Internetul (IRC + IM) cu promisiunea interactivitatii si satisfactiei instantanee, a schimbat insa asta. Comunicarea scrisa a devenit aproape echivalenta cu cea verbala, intai ca timp si simplicitate si apoi ca prescurtari, "scurtaturi" si logica a frazei. A ramas diferita asupra unui punct unic: ramane. Cum au spus Romulica si Remusica (sau Decebal si Traian, sau oricare alte cupluri de parinti de natiune) atunci cand au fost intrebati de ce-si doresc atat de mult hartia de insuratoare: verba valea, scripta manea. Initial, greselile gramaticale starneau asa-numitele flame wars (wikipedia:Flame_war), care urmau intotdeauna o traiectorie simpla si clara: Cineva face una sau mai multe greseli de exprimare, iar un grammar nazi se trezeste sa le corecteze, mai mult sau mai putin ironic, facand sau nu el insusi o astfel de greseala. Cel corectat se simte atacat personal si raspunde eventual printr-un alt atac personal. Eventual, fiecare isi aducea prietenii sa participe si ei in razbel, discutia originara fiind complet uitata/abandonata. Treptat, cei cu state mai vechi intr-ale Internetului au inceput sa onoreze un armistitiu neoficial (sau oficializat in regulile de netiquette): greselile gramaticale sau de expresie sunt ignorate, raspunsurile fiind date numai la fond, nu si la forma. A te lega de astfel de greseli este o dovada de prost gust sau bobocenie.

Si totusi, nu-i chiar asa de simplu. Limbajul este probabil cel mai important factor in crearea primei impresii. (Infatisarea si pantofii sunt mai importante la femei, zice-se, dar oricum pe Internet nu prea se vad sau pot fi usor trucate.) Greselile gramaticale, de exprimare sau de logica a frazei, in special in scris, denota in general o educatie deficitara si, prin extensie, un om de valoare redusa. La polul opus sunt grammar nazis, cei care corecteaza incontinuu, fie ca au sau nu dreptate, fie ca greseala este sau nu scapare din condei, si pe a caror carte de vizita ar trebui scris know-it-all sau om de luat la palme. Flame wars centrate pe limbaj (forma) nu vor dispare niciodata, pentru ca pe cat e de greu sa nu interpretezi o critica indreptatita ca atac la persoana si sa ti-o insusesti, pe atat de greu este sa ignori greseli gramaticale multiple si repetate.

Si-uite-asa ajungem la forumul si discutia cu pricina, de la care am pornit. E o discutie interesanta, pentru ca citind-o ajungi sa-ti pui o gramada de-ntrebari:
  • armistitiul sus-pomenit se aplica unui blogger care solicita activ o parere critica despre blogul sau?
  • dar daca bloggerul cu pricina solicita o parere numai despre design si aspect?
  • trebuie un blogger tintuit in standarde de jurnalist / scriitor, sau i se aplica ingaduinta acordata pushtanilor din mall-uri?
  • este normal sa ne-asteptam ca cineva sa-si insuseasca o critica ce-i semnaleaza numai greselile, fara a-i explica de ce este o greseala? este treaba lui sa incerce sa afle ceea ce nu stie - si este acest lucru posibil (cu alte cuvinte, daca regina vreunui imperiu maritim l-ar fi trimis pe Cristobal Colon sa gaseasca America, in conditiile in care nimeni nu stia inca ce-i aia, ar fi stiut acesta ce sa faca)?
  • sunt greselile gramaticale un motiv de ban pe forumuri? - aici a raspuns deja arhi.
De fapt, de asta ii consider pe arhi si pe Buddha singurii bloggeri cu adevarat profesionisti din blogo.ro-oaie (TM): sunt singurii dintre cei mari care tolereaza pareri contradictorii si critici, sau cel putin o fac intr-o masura mult mai mare decat ceilalti. Mai mult decat atat, ambii intra in discutii, raspund cu argumente si chiar cand sunt eronati raspund cu argumente rationale. Ei par sa fi descoperit un secret care a ramas straini multor altora: respectul conversational trezeste deseori un respect total in ochii interlocutorului. Raspunzand fara ura sau ad hominem unor critici transformi deseori the critic -=> your biggest fan.

Surse

Bancheru's blog - Page 8 - Forumul bloggerilor

De cateva luni contemplu mutarea la un nou sablon. Una din probleme consta in mutatul widgeturilor de la cel vechi la cel nou. Iata doua metode.

Prima metoda apartine bloggeritzei dot si a fost postat pe forumul Blogoree (1):



1. Mergi la Layout -> Edit HTML
2. Scroll down pana la sfarsit, la </b o d y></h t m l> (fara spatii)
3. Inlocuieste </b o d y></h t m l> cu
<b:section id='backupwidget' showaddelement='yes'/></b o d y></h t m l> (ultimele tag-uri fara spatii)
Aceasta va avea ca rezultat crearea unui nou container pt page elements in partea de jos a template-ului.
4. Salveaza template-ul si mergi la tab-ul Page Elements
5. Acolo trage in containerul nou creat, cel din partea de jos, toate elementele pe care doresti sa le pastrezi
6. Salveaza si mergi inapoi la Edit HTML
7. Scroll down pana la sfarsit. Vei observa ca partea adaugata de tine e acum schimbata (s-a adaugat codul corespunzator tuturor elementelor adaugate de tine in containerul respectiv).
8. Copiaza respectivul cod (de la <b:section id='backupwidget' showaddelement='yes'/> pana la sfarsit)
9. Mergi in fisierul xml in care ai template-ul nou, cel cu care vrei sa-l inlocuiesti pe cel curent; acolo inlocuieste </b o d y></ h t m l> cu ce ai copiat anterior.
10. Salveaza fisierul.
11. Layout -> Edit HTML din nou, apesi Browse, alegi locatia fisierului de care vorbeam anterior, apesi Upload, apesi Save.

!Atentie: se poate intampla ca noul template sa aiba deja unele elemente din cele pe care doresti sa le pastrezi (ca de exemplu arhiva sau labels). In acest caz cand incerci sa salvezi o sa-ti dea o eroare, elementul cu numele "nume" (de obicei Label1 sau BlogArchive1) exista deja. Solutia este sa te duci la cod, la sfarsit, si sa cauti ceva care arata in genul widget id='nume', si evident, schimbi respectivul nume in altceva wink emoticon (adaugi un 1 or something)


12. Mergi din nou in tab-ul de page elements si iti tragi elementele din containerul de jos unde vrei tu
13. Done. cheesy emoticon < b : s e c t i o n i d = " b a c k u p w i d g e t " s h o w a d d e l e m e n t = " y e s " > < / b : s e c t i o n >


Cea de-a doua metoda apartine bloggeritei de la BloggerBuster (2), care a postat-o in Septembrie 2007:



  1. Log in to your Blogger dashboard.
  2. You will need to be able to edit both your existing blog template and your test blog template, so it's advisable to have two browser windows (or tabs) open at the same time. You can easily do this by keying CTRL+N to bring up a new page. So for the moment your Blogger dashboard will be available in both browser windows.
  3. Now, in the first browser window, select your test blog and go to Template>Edit HTML. Click on the "Upload New Template" link near the top of the page and upload the new XML template you wish to adapt for your main blog. Once this template has uploaded, deselect the "expand widget templates" box.
  4. In the second browser window, select your existing blog template and again go to Template>Edit HTML. Do NOT check the "expand widget templates box", as this will make things much easier for you. Now, locate the widget content identifiers in your template sidebar. Most likely, the section will look something like this: The code featured inside the red box displays the identifying code for your widgets, which calls the widgets to appear in your blog. You need to copy all of these < b : widget ... > sections to yout clipboard, or paste into Notepad for easy editing in a few moments.
  5. Once you have copied the widget identifiers from your old template, go back to the browser window in which you can edit your new template.
  6. Find this section in your blog template:
    < d i v   i d = ' s i d e b  a r    -        w r a p p e r  ' >
    < b : s e c t i o n    c l a s s = ' s i d e b a r '   i d = ' s i d e b a r '   p r e f e r r e d = ' y e s ' >
    There may or may not be content here... < / b : s e c t i o n >
    < / d i v >
    If there are any widgets defined here, it is advisable to delete them. Otherwise you may end up with duplicated widgets. Then in their place, paste the widget codes from your old template:
    < d i v   i  d = ' s i d e b  a r - w r a p p e r ' >
    < b : s e c t i o n  c l a s s = ' s i d e b a r '   i d = ' s i d e b a r '  p r e f e r r e d = ' y e s ' >
    Paste the widget identifiers here < / b : s e c t i o n >
    < / d i v >


    If there are no widgets present in the sidebar of your new template, the code may look like this instead:
    < d i v   i d = ' s i d e b a r - w r a p p e r ' >
    < b : s e c t i o n   c l a s s = ' s i d e b a r '   i d = ' s i d e b a r '  p r e f e r r e d = ' y e s ' / >
    < / d i v >
    In this case, you should delete the trailing slash from the end of the line (highlighted in red). Make a line break then paste your widget content as before. Then finally create another line break and add the following line:
    < / b : s e c t i o n >
    The finished result should look something like this:
  7. IMPORTANT! Do not preview your template at all during this process! If you do, you run the risk of duplicating the widgets which will cause you many problems. This seems to be a glitch on Blogger's behalf rather than an error of this method. In any case, do not preview the template.
  8. At this point, you should save the test blog template, after which you can view your blog in the normal manner. You will notice that no widget content is actually showing, only the widget titles. This is perfectly normal: as I mentioned earlier, the widget content is stored in the settings for your original blog.
  9. Okay, now we have copied over the widgets, we can download the XML template ready to transfer over to the original blog. To do this, go to Template>Edit HTML and select "Download full template" near the top of the page. Save the template to your computer with a name you can easily identify.
  10. Now back to the other browser window where you should have the Edit HTML page for your original blog still on the page. Here you should look for the "upload new template" section near the top of the page. Browse for the template you just downloaded from your test blog and upload it. You should NOT receive any error messages, like this: If you do see such error messages, take note of the widgets the template wants to delete, then choose to cancel the process. You should then copy the appropriate widgets from the old template into the new template in your test blog (as before), save the template and attempt to upload it again.
  11. If you receive no error messages, your template will be saved, and you can now view your new blog template with all your old widgets still in place. You can then move the widgets around however you wish in the Layouts section of your dashboard.

Pana sa citesc aceste metode, eu m-as fi dus in codul HTML (ma rog, XML), as fi copiat direct widgeturile si le-as fi pus acolo. Asta nu ar fi mers pentru ca unele widgeturi introduse direct prin modificarea sablonului (Edit HTML) nu pot fi modificate prin interfata de "page elements". Tot astfel, continutul unor widgets de HTML/JavaScript nu este salvat in template ci undeva, in neantul Blogger.


Surse

1. http://blogoree.ro/forum/showthread.php?t=4092
2. http://www.bloggerbuster.com/2007/09/how-i-copy-widgets-from-one-template-to.html

20090810 UPDATE: Vrei mai multe articole tehnice pentru Blogger / Blogspot? Este modificarea de aici curenta, sau am facut una noua, cu acelasi efect, dar mai buna? Toate modificarile aduse de mine acestui sablon (template) pot fi gasite in Zamolxis ChangeLog. Seria lucrand la fatada va gazdui de-acu’ incolo articole despre PR, media persuasion si eventual imaginea Romaniei.




Cum ziceam, este important, chiar esential, ca articolele tale sa fie usor de gasit pe site - in special daca-s bune. Cu cat oferi cititorului mai multe moduri de a cauta si a gasi, cu atat mai bine. In aceasta idee ne-am uitat in trecut la Tag Cloud si Blogumus si la articole aleatoare si azi ne uitam la arhiva sub forma de calendar.

Intreaga serie lucrand la fatada slujeste scopul unei prezentari mai la obiect. Azi ne uitam la cum sa-ti prezinti arhiva articolelor sub forma de calendar. Blogger ofera (cel putin in momentul de fata) 3 modalitati de prezentare a arhivei. Prima si cea mai draguta este o ierarhie tip "tree" (copac), unde fiecare luna este o tulpina expandabila apasand pe triunghiul din dreptul ei. Problema cu aceasta prezentare este ca ocupa un spatiu variabil ca lungime, in functie de cate articole ai scris in luna respectiva. Asta produce variatii indezirabile in lungimea coloanei in care se afla acest modul, in special la inceputul unei noi luni, dand impresia de mizerie (ca sa folosesc un cuvant extrem de popular). Nici celelalte posibilitati nu sunt nemaipomenite. Desi ocupa un spatiu fix, sunt mai dificil de folosit.

Cand prezinti arhiva sub forma de calendar, oferi o metafora vizuala pe care cititorii tai o vor intelege, in masura in care sunt oameni si nu bots. Un calendar este usor de folosit si este chiar fun, incurajand explorarea: "hmm, acum 18 zile eu intram in ciclu si-nfigeam agrafe in coitzele motanului - ia sa vedem, ce-a scris el atunci?".

Din fericire, au si altii motani si cineva a stat sa creeze un astfel de hack. Hack-ul consta in doua parti. In prima, pui niste javascript in sectiunea de inceput a sablonului (deasupra lu' </head>), iar in cea de-a doua pui codul propriu-zis de arhiva. Eu voi prezenta un mod de instalare mai simplu decat cel din sursa pe care il voi testa pe propriul sablon.

Prima miscare este sa copiezi scripturile si variabilele in capul sablonului. Pentru asta, poti folosi punctele 1-6 de la articoul despre Tag Clouds, facand urmatoarele substitutii: la 3, vei cauta </head>, iar la 4 vei pune urmatorul cod deasupra lui </head>, dupa cum apare-n poza:

baga codul intre /head si b:skin

Iata si codul. Selecteaza-l pe tot, copiaza-l si pune-l deasupra tagului </head>:

<!-- Blogger Archive Calendar -->
<script type='text/javascript'>
//<![CDATA[

var bcLoadingImage = "http://phydeauxredux.googlepages.com/loading-trans.gif";
var bcLoadingMessage = " Loading....";
var bcArchiveNavText = "View Archive";
var bcArchiveNavPrev = '&#9668;';
var bcArchiveNavNext = '&#9658;';
var headDays = ["Duminica","Luni","Marti","Miercuri","Joi","Vineri","Sambata"];
var headInitial = ["Du","Lu","Ma","Mi","Jo","Vi","Sa"];

// Nothing to configure past this point ----------------------------------
var timeOffset;
var bcBlogID;
var calMonth;
var calDay = 1;
var calYear;
var startIndex;
var callmth;
var bcNav = new Array ();
var bcList = new Array ();

//Initialize Fill Array
var fill = ["","31","28","31","30","31","30","31","31","30","31","30","31"];
function openStatus(){
   document.getElementById('calLoadingStatus').style.display = 'block';
   document.getElementById('calendarDisplay').innerHTML = '';
  }
function closeStatus(){
   document.getElementById('calLoadingStatus').style.display = 'none';
  }
function bcLoadStatus(){
   cls = document.getElementById('calLoadingStatus');
   img = document.createElement('img');
   img.src = bcLoadingImage;
   img.style.verticalAlign = 'middle';
   cls.appendChild(img);
   txt = document.createTextNode(bcLoadingMessage);
   cls.appendChild(txt);
  }
function callArchive(mth,yr,nav){
// Check for Leap Years
  if (((yr % 4 == 0) && (yr % 100 != 0)) || (yr % 400 == 0)) {
      fill[2] = '29';
   }
  else {
      fill[2] = '28';
   }
   calMonth = mth;
   calYear = yr;
   if(mth.charAt(0) == 0){
      calMonth = mth.substring(1);
      }
   callmth = mth;
   bcNavAll = document.getElementById('bcFootAll');
   bcNavPrev = document.getElementById('bcFootPrev');
   bcNavNext = document.getElementById('bcFootNext');
   bcSelect = document.getElementById('bcSelection');
   a = document.createElement('a');
   at = document.createTextNode(bcArchiveNavText);
   a.href = bcNav[nav];
   a.appendChild(at);
   bcNavAll.innerHTML = '';
   bcNavAll.appendChild(a);
   bcNavPrev.innerHTML = '';
   bcNavNext.innerHTML = '';
   if(nav <  bcNav.length -1){
      a = document.createElement('a');
      a.innerHTML = bcArchiveNavPrev;
      bcp = parseInt(nav,10) + 1;
      a.href = bcNav[bcp];
      a.title = 'Previous Archive';
      prevSplit = bcList[bcp].split(',');
      a.onclick = function(){bcSelect.options[bcp].selected = true;openStatus();callArchive(prevSplit[0],prevSplit[1],prevSplit[2]);return false;};
      bcNavPrev.appendChild(a);
      }
   if(nav > 0){
      a = document.createElement('a');
      a.innerHTML = bcArchiveNavNext;
      bcn = parseInt(nav,10) - 1;
      a.href = bcNav[bcn];
      a.title = 'Next Archive';
      nextSplit = bcList[bcn].split(',');
      a.onclick = function(){bcSelect.options[bcn].selected = true;openStatus();callArchive(nextSplit[0],nextSplit[1],nextSplit[2]);return false;};
      bcNavNext.appendChild(a);
     }
   script = document.createElement('script');
   script.src = 'http://www.blogger.com/feeds/'+bcBlogId+'/posts/summary?published-max='+calYear+'-'+callmth+'-'+fill[calMonth]+'T23%3A59%3A59'+timeOffset+'&published-min='+calYear+'-'+callmth+'-01T00%3A00%3A00'+timeOffset+'&max-results=100&orderby=published&alt=json-in-script&callback=cReadArchive';
   document.getElementsByTagName('head')[0].appendChild(script);
}

function cReadArchive(root){
// Check for Leap Years
  if (((calYear % 4 == 0) && (calYear % 100 != 0)) || (calYear % 400 == 0)) {
      fill[2] = '29';
   }
  else {
      fill[2] = '28';
   }
    closeStatus();
    document.getElementById('lastRow').style.display = 'none';
    calDis = document.getElementById('calendarDisplay');
    var feed = root.feed;
    var total = feed.openSearch$totalResults.$t;
    var entries = feed.entry || [];
    var fillDate = new Array();
    var fillTitles = new Array();
    fillTitles.length = 32;
    var ul = document.createElement('ul');
    ul.id = 'calendarUl';
    for (var i = 0; i < feed.entry.length; ++i) {
      var entry = feed.entry[i];
      for (var j = 0; j < entry.link.length; ++j) {
       if (entry.link[j].rel == "alternate") {
       var link = entry.link[j].href;
       }
      }
      var title = entry.title.$t;
      var author = entry.author[0].name.$t;
      var date = entry.published.$t;
      var summary = entry.summary.$t;
      isPublished = date.split('T')[0].split('-')[2];
      if(isPublished.charAt(0) == '0'){
         isPublished = isPublished.substring(1);
         }
      fillDate.push(isPublished);
      if (fillTitles[isPublished]){
          fillTitles[isPublished] = fillTitles[isPublished] + ' | ' + title;
          }
      else {
          fillTitles[isPublished] = title;
          }
      li = document.createElement('li');
      li.style.listType = 'none';
      li.innerHTML = '<a href="'+link+'">'+title+'</a>';
      ul.appendChild(li);

      }
   calDis.appendChild(ul);
   var val1 = parseInt(calDay, 10)
   var valxx = parseInt(calMonth, 10);
   var val2 = valxx - 1;
   var val3 = parseInt(calYear, 10);
   var firstCalDay = new Date(val3,val2,1);
   var val0 = firstCalDay.getDay();
   startIndex = val0 + 1;
  var dayCount = 1;
  for (x =1; x < 38; x++){
      var cell = document.getElementById('cell'+x);
      if( x < startIndex){
          cell.innerHTML = ' ';
          cell.className = 'firstCell';
         }
      if( x >= startIndex){
          cell.innerHTML = dayCount;
          cell.className = 'filledCell';
          for(p = 0; p < fillDate.length; p++){
              if(dayCount == fillDate[p]){
                  if(fillDate[p].length == 1){
                     fillURL = '0'+fillDate[p];
                     }
                  else {
                     fillURL = fillDate[p];
                     }
                  cell.className = 'highlightCell';
                  cell.innerHTML = '<a href="/search?updated-max='+calYear+'-'+callmth+'-'+fillURL+'T23%3A59%3A59'+timeOffset+'&updated-min='+calYear+'-'+callmth+'-'+fillURL+'T00%3A00%3A00'+timeOffset+'" title="'+fillTitles[fillDate[p]].replace(/"/g,'\'')+'">'+dayCount+'</a>';
                 }
              }
          if( dayCount > fill[valxx]){
             cell.innerHTML = ' ';
             cell.className = 'emptyCell'; 
             }
          dayCount++; 
         }
      }
    visTotal = parseInt(startIndex) + parseInt(fill[valxx]) -1;
    if(visTotal >35){
        document.getElementById('lastRow').style.display = '';
       }
  }

function initCal(){
   document.getElementById('blogger_calendar').style.display = 'block';
   var bcInit = document.getElementById('bloggerCalendarList').getElementsByTagName('a');
   var bcCount = document.getElementById('bloggerCalendarList').getElementsByTagName('li');
   document.getElementById('bloggerCalendarList').style.display = 'none';
   calHead = document.getElementById('bcHead');
   tr = document.createElement('tr');
   for(t = 0; t < 7; t++){
       th = document.createElement('th');
       th.abbr = headDays[t];
       scope = 'col';
       th.title = headDays[t];
       th.innerHTML = headInitial[t];
       tr.appendChild(th);
      }
   calHead.appendChild(tr);
  for (x = 0; x <bcInit.length;x++){
     var stripYear= bcInit[x].href.split('_')[0].split('/')[3];
     var stripMonth = bcInit[x].href.split('_')[1];
     bcList.push(stripMonth + ','+ stripYear + ',' + x);
     bcNav.push(bcInit[x].href);
     }
  var sel = document.createElement('select');
  sel.id = 'bcSelection';
  sel.onchange = function(){var cSend = this.options[this.selectedIndex].value.split(',');openStatus();callArchive(cSend[0],cSend[1],cSend[2]);};
  q = 0;
  for (r = 0; r <bcList.length; r++){
       var selText = bcInit[r].innerHTML;
       var selCount = bcCount[r].innerHTML.split('> (')[1];
       var selValue = bcList[r];
       sel.options[q] = new Option(selText + ' ('+selCount,selValue);
       q++
       }                   
   document.getElementById('bcaption').appendChild(sel);
   var m = bcList[0].split(',')[0];
   var y = bcList[0].split(',')[1];
   callArchive(m,y,'0');
}

function timezoneSet(root){
   var feed = root.feed;
   var updated = feed.updated.$t;
   var id = feed.id.$t;
   bcBlogId = id.split('blog-')[1];
   upLength = updated.length;
   if(updated.charAt(upLength-1) == "Z"){timeOffset = "+00:00";}
   else {timeOffset = updated.substring(upLength-6,upLength);}
   timeOffset = encodeURIComponent(timeOffset);
}

//]]>
</script>
<script src='/feeds/posts/summary?max-results=0&amp;alt=json-in-script&amp;callback=timezoneSet'></script>
<!-- End Blogger Archive Calendar -->

Salveaza sablonul, si pregateste-te spiritual pentru urmatorul pas care este el. Care este el?

A doua miscare este sa selectezi in intregime si apoi sa copiezi (Ctrl+C) codul de mai jos.

<b:widget id='BlogArchive1' locked='false' title='Blog Archive' type='BlogArchive'>
<b:includable id='main'>
  <b:if cond='data:title'>
    <h2><data:title/></h2>
  </b:if>
  <div class='widget-content'>
  <div id='ArchiveList'>
  <div expr:id='data:widget.instanceId + "_ArchiveList"'>
    <b:if cond='data:style == "HIERARCHY"'>
     <b:include data='data' name='interval'/>
    </b:if>
    <b:if cond='data:style == "FLAT"'>
      <b:include data='data' name='flat'/>
    </b:if>
    <b:if cond='data:style == "MENU"'>
      <b:include data='data' name='menu'/>
    </b:if>
  </div>
  </div>
  <b:include name='quickedit'/>
  </div>
</b:includable>
<b:includable id='toggle' var='interval'>
  <!-- Toggle not needed for Calendar -->
</b:includable>
<b:includable id='flat' var='data'>
<div id='bloggerCalendarList'>
  <ul>
    <b:loop values='data:data' var='i'>
      <li class='archivedate'>
        <a expr:href='data:i.url'><data:i.name/></a> (<data:i.post-count/>)
      </li>
    </b:loop>
  </ul>
</div>

<div id='blogger_calendar' style='display:none'>
<table id='bcalendar'><caption id='bcaption'>

</caption>
<!-- Table Header -->
<thead id='bcHead'></thead>
<!-- Table Footer -->

<!-- Table Body -->
<tbody><tr><td id='cell1'> </td><td id='cell2'> </td><td id='cell3'> </td><td id='cell4'> </td><td id='cell5'> </td><td id='cell6'> </td><td id='cell7'> </td></tr>
<tr><td id='cell8'> </td><td id='cell9'> </td><td id='cell10'> </td><td id='cell11'> </td><td id='cell12'> </td><td id='cell13'> </td><td id='cell14'> </td></tr>
<tr><td id='cell15'> </td><td id='cell16'> </td><td id='cell17'> </td><td id='cell18'> </td><td id='cell19'> </td><td id='cell20'> </td><td id='cell21'> </td></tr>
<tr><td id='cell22'> </td><td id='cell23'> </td><td id='cell24'> </td><td id='cell25'> </td><td id='cell26'> </td><td id='cell27'> </td><td id='cell28'> </td></tr>
<tr><td id='cell29'> </td><td id='cell30'> </td><td id='cell31'> </td><td id='cell32'> </td><td id='cell33'> </td><td id='cell34'> </td><td id='cell35'> </td></tr>
<tr id='lastRow'><td id='cell36'> </td><td id='cell37'> </td></tr>
</tbody>
</table>
<table id='bcNavigation'><tr>
<td id='bcFootPrev'></td>
<td id='bcFootAll'></td>
<td id='bcFootNext'></td>
</tr></table>   

<div id='calLoadingStatus' style='display:none; text-align:center;'>
<script type='text/javascript'>bcLoadStatus();</script>
</div>
<div id='calendarDisplay'/>

</div>

<script  type='text/javascript'> initCal();</script>

</b:includable>
<b:includable id='posts' var='posts'>
<!-- posts not needed for Calendar -->
</b:includable>
<b:includable id='menu' var='data'>
  Configure your calendar archive widget - Edit archive widget - Flat List - Newest first - Choose any Month/Year Format
</b:includable>
<b:includable id='interval' var='intervalData'>
  Configure your calendar archive widget - Edit archive widget - Flat List - Newest first - Choose any Month/Year Format
</b:includable>
</b:widget>

Cauti apoi codul pentru arhiva existenta (ai una, nu? daca nu, fa-ti) si-o inlocuiesti dupa cum urmeaza. Cauta <b:widget id=BlogArchive folosind Ctrl+F sau ce functie de cautat in pagina are browserul tau. Cand o gasesti, selecteaza intreaga linie astfel:

cauta <b:widget id=BlogArchive si selecteaza intreaga linie astfel:

Codul poate arata un pic diferit de ce vezi mai sus, dar nu-i bai cata vreme este 90% identic. Dupa ce-ai selectat, faci paste la codul de deasupra (pe care l-ai copiat mai devreme).

Salveaza iar sablonul. Daca ai vreo eroare, verifica daca ai copiat codul in intregime.

Ultimul pas este sa te duci in Dashboard -> Layout -> Page Layout si sa modifici Arhiva dupa cum urmeaza (poate e bine sa-ncepi cu asta, dar chiar dac-ai inceput cu asta, mai mergi o data sa fii sigur c-o poti accesa). Poti desigur sa schimbi titlul cum iti place, dar ai grija sa indeplinesti urmatoarele conditii, dupa cum apare in puoza:

poza proprietatilor Arhive de blog

In sumar:

titlul poate fi orice

stilul TREBUIE sa fie Flat List

"Show Oldest Posts First" tre' sa fie unchecked (articolele sa fie in ordine cronologica)

Frecventa arhivarii tre sa fie monthly (lunara)

Formatul datei poate fi iarasi orice

Daca ai urmat aceste instructiuni si-au mers, spune-mi. Dar multurmirile adreseaza-le autorului, ca el si-a muncit creierii Smile

20090810 UPDATE: Vrei mai multe articole tehnice pentru Blogger / Blogspot? Este modificarea de aici curenta, sau am facut una noua, cu acelasi efect, dar mai buna? Toate modificarile aduse de mine acestui sablon (template) pot fi gasite in Zamolxis ChangeLog. Seria lucrand la fatada va gazdui de-acu’ incolo articole despre PR, media persuasion si eventual imaginea Romaniei.



Dupa cum poti vedea in menu-ul de sus, acest blog are un link care apasat, produce un salt la un articol mai vechi sau mai nou, la nimereala. Desi nu-i nici un secret, m-am gandit ca poate mai multi doresc sa stie cum se face asta.

Saltul "Te simti norocos?" devine necesar cand blogul tau a ajuns la cateva sute de articole si articolele vechi, desi bune si inca actuale, sunt ignorate. Am implementat aceasta functie mai demult, dar am remarcat recent ca nu mai functioneaza, asa ca am "reparat-o". Iata codul care trebuie introdus undeva in <head>. Pentru a o instala manual, urmeaza instructiunile de la Tag Cloud pentru Blogger, facand urmatoarele substitutii:

a) la 3, cauta <head> in loc de <b:section...

b) la 4, fa copy & paste urmatorului cod:

<script type='text/javascript'>
//<![CDATA[
function showLucky(root){
    var feed = root.feed;
    var entries = feed.entry || [];
    var entry = feed.entry[0];
      for (var j = 0; j < entry.link.length; ++j) {
       if (entry.link[j].rel == "alternate") {
       window.location = entry.link[j].href;
       }
      }
   }

function fetchLuck(luck){
    script = document.createElement('script');
    script.src = '/feeds/posts/summary?start-index='+luck+'&max-results=1&alt=json-in-script&callback=showLucky';
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);
   }
function readLucky(root){
    var feed = root.feed;
    var total = parseInt(feed.openSearch$totalResults.$t,10);
    var luckyNumber = Math.floor(Math.random()*total);
    luckyNumber++;
    fetchLuck(luckyNumber);
    }
function feelingLucky(){
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = '/feeds/posts/summary?max-results=0&alt=json-in-script&callback=readLucky';
    document.getElementsByTagName('head')[0].appendChild(script);
    }
//]]>
</script>

Acum ca functia exista, o poti chema cu urmatorul link:

<a href="#random" onclick="feelingLucky()" title="Salt Aleator in Necunoscut">Norocos?</a>

Desigur, la title poti scrie orice intre ghilimele si asta va apare cand cineva zaboveste (hover) cu mouse-ul deasupra linkului. In loc de "Norocos?" poti pune orice altceva; acesta va fi linkul propriu-zis.

Pentru cei de pe platforma Wordpress, exista un plugin de random redirect care trebuie descarcat, dezarhivat, uploadat si activat. Daca preferi sa citesti in engleza sau sa instalezi automat, iata aici sursa.

20090810 UPDATE: Vrei mai multe articole tehnice pentru Blogger / Blogspot? Este modificarea de aici curenta, sau am facut una noua, cu acelasi efect, dar mai buna? Toate modificarile aduse de mine acestui sablon (template) pot fi gasite in Zamolxis ChangeLog. Seria lucrand la fatada va gazdui de-acu’ incolo articole despre PR, media persuasion si eventual imaginea Romaniei.



Acum o luna, Google a-mbogatit serviciul de traducere prin adaugarea a inca 11 limbi, pentru un total de 35 de limbi. Un prilej cum nu se poate mai nimerit de a republica widgetul de traducere cu steaguri.

Economistu' reia nominalizarea celei mai nashpa tari din lume, si solicita pe strasse nominalizari. Asta inseamna ca tu, cetatean al unei tari nu tocmai fruntase, poti sa pui umarul dezinteresat in popularizarea mizeriei altora!

Joia trecuta un francez a luat premiul Nobel pentru literatura. Asta a amintit americanilor ca exista cultura si in afara anglosferei, si uite-asa a aparut o lista de sugestii de scriitori straini.

Desi una din primele modificari facute unui nou blog de blogger, n-am scris nicodata pe larg despre acest subiect si poate-a venit momentul. Exista mai multe instructiuni in engleza dar nu am gasit nici una in romana.

poza facuta de SlovFairy Am descoperit ca exista un numar de chestii care atrag femeile tot astfel cum zgari-zgari atrage pisicile. Una are de-a face cu lama de ras; alta, cu exercitiile fizice

Le Coeur est un Chasseur Solitaire Ieri a avut loc concertul Thievery Corporation in Bucuresti. Maine e concertul NightLosers in Toronto. Eu ma gandesc la fomei si despartiri.

Am descoperit Thievery destul de tarziu (iar Röyksopp dupa), in principal prin The Heart's Lonely Hunter (playlist cu peste 70):

 

The Heart s a Lonely Hunter - book by Carson McCullersThe Heart is a Lonely Hunter este un titlu care i-a inspirat pe multi. Pe mine m-a audiopnizat cantecu, da' primul e unu', Carson McCullers, care-n 1940 a publicat o carte. Cartea a ajuns in topul celor mai tari cantece pe hartie, a fost inclusa de Time Mag in lista celor mai tari nuvele engleze 1923-2005, si-a fost recent recomandata de Oprah. Pentru mine-i suficient ca Thievery Corp, The Search si The Anniversary au facut fiecare un cantec cu acest titlu (in playlist, la sfarsit). Si daca tot nu te-ai convins s-o citesti, pot sa-ti zic ca si Bonnie Bianco si Reba McEntire au facut cantece (tot in playlist) s-a facut o piesa de teatru si-un film, si exista pana si-un torrent cu versiunea audio a cartii. Si daca esti genu' care vrea sa vada ce-au zis altii si Amazonu' nu ti-e suficient, iata alte reviews (BigRead, SparkNotes). Iata cuvintele cantecului in varianta copiabila:

The Truth is unspoken, a promise is broken
I’m under surveillance, they know what my name is
I need some protection, some love and affection
There’s 1000 reasons, but one is the number

Welcome to my spaceship
It’s beautiful forever
She’s right here where you left her
And the heart’s lonely hunter

Save bottles of water and flour and sugar
Turn off the AC and hang up the bed sheets
Cover up windows, careful where the light goes
Yank out the cable and blow out the candle

Welcome to my spaceship
You’re beautiful forever
She’s right here where you left her
And the heart’s lonely hunter

Perfectly molded almost unfolded
Under the counter well, that is your nature
Drip grind or roasted, buttered or toasted
The greater the db’s the higher the AC

Psycho acoustics
Down in the black seats
Stereo nation
Amplification
The brave and the righteous
They’re safe in their houses
Now one is just a number
The heart’s a lonely hunter
One is the number
Heart is a hunter
One is a number
Heart is a hunter

Welcome to my spaceship
You’re beautiful forever
She’s right here where you left her
And the heart’s lonely hunter

Welcome to my spaceship
You’re beautiful forever
She’s right here where you left her
And the heart’s lonely hunter

Thievery Corp au si-un mesaj politic care nu circumstantial. Dubios explica mesajul lor mai pe scurt decat as face-o eu, ceea ce in mod cert e-un lucru bun :). Iata si-o biografie de Sean Cooper:

Thievery Corporation make abstract, instrumental, mid-tempo dance music whose classification falls somewhere between trip-hop and acid jazz. Featuring the production skills of Rob Garza and Eric Hilton, Thievery Corporation released several warmly received singles on their own Eighteenth Street Lounge (ESL) label (named after their own Washington, D.C. bar and nightclub) in 1996. Although previously known primarily among acid jazz and rare-groove DJs, the group shot to minor celebrity when a track from one of their early 12"'s appeared on respected DJ/producers Kruder & Dorfmeister's mix session for Studio K7's DJ Kicks series. Similar in many respects (and more than just number) to that Viennese production duo, Thievery Corporation subsequently grew in popularity among a wider audience of DJs and headphonaunts.

The duo's debut LP appeared in 1997, along with a compilation of Washington, D.C.-based electronica artists entitled Dubbed Out in DC (both albums were released by ESL). After signing with the British label 4AD, Thievery Corporation began to work on their second LP but were forced to postpone its release date after tapes were stolen in a mugging. The stopgap remix compilation Abductions & Reconstructions was released in 1999, and their second proper album The Mirror Conspiracy followed one year later. The duo's growing fame made them a natural choice to select tracks for the 2001 Verve compilation Sounds From the Verve Hi-Fi, and they returned to their own work one year later with The Richest Man in Babylon. The mix album Outernational Sound and remix EP Babylon Rewound both appeared in 2004; that same year, the track "Lebanese Blonde" was featured in the highly successful Garden State soundtrack, which later won a Grammy Award. 2005's The Cosmic Game featured guest vocalists Perry Farrell, the Flaming Lips' Wayne Coyne, and David Byrne, and the remix compilation Versions followed in 2006. As election season approached, Thievery Corporation released the politically minded studio effort Radio Retaliation in September 2008.

.

E interesant ca Thievery au si un remix dupa un roman pe unul din albume: Habanos Days. Iata versurile si o biografie de Alex Henderson:

Din toata viata mea
Am amintiri
Iar toata lumea
Nu m-a lasat, nu m-a lasat
Sa viu acasa

Mai am o sansa acum
Sa n-o dau gres
Si visul meu
Sa mi-l urmez, sa mi-l urmez
Cu o viata noua

Romanian pan flute virtuoso Damian Draghici is not an easy artist to categorize. His recordings -- many of which are instrumental, although he sometimes features vocalists -- could be described as world music, but he certainly doesn't limit himself to any one style of it. Damian, a gypsy, is unpredictable, and the musician has been influenced by rock, pop, jazz, new age, and classical as well as Eastern European, Mediterranean, Middle Eastern, and Latin music (especially Spanish flamenco, although he has also acknowledged Afro-Cuban salsa and South American/Andean music). Although Damian now lives in Los Angeles, he was born and raised in Bucharest, Romania. The musician/composer (who plays the piano as a second instrument) is old enough to remember when Romania and the rest of Eastern Europe were ruled by oppressive Communist regimes, and Romania's was among the most brutal and restrictive in the '70s and '80s. Rock music was frowned upon by the late dictator Nikolai Ceaucescu, who ruled Romania with an iron fist and was infamous for his human-rights abuses. Nonetheless, Damian exposed himself to as many types of music as he could, and he learned to speak English by watching American movies.

Damian's first exposure to the pan flute came from an uncle, who gave him two lessons before fleeing the country; after that, Damian was on his own. But he kept practicing the instrument, and by the age of 14, Damian had performed the European classical works of Amadeus Mozart and Johann Sebastian Bach on national television. The musician became known for his impressive technique on the pan flute, and Romanians nicknamed him "the Speed of Light" because of his ability to play complex, challenging music at fast tempos. When Damian reached adulthood, he hoped to perform in other countries; in 1988, he applied for a visa. But his request was refused by the Ceaucescu regime, and the musician decided that he would try to flee the country without the government's permission. After hiking 400 miles, Damian managed to escape from Romania and get to Athens, Greece.

Several months after his escape, Damian learned that Ceaucescu's regime had been overthrown and that the hated dictator had been executed. And he also saw that Romania, like other countries in Eastern Europe, was turning capitalist; in the '80s and '90s, countries ranging from Russia and Poland to Czechoslovakia and Hungary rejected Communism and embraced free enterprise. But Damian had no desire to move back to Romania; he felt that his future was in the West and remained in Athens, where he played his secondary instrument, the piano, in Greek nightclubs. While living in Athens, Damian applied to Boston's prestigious Berklee College of Music and was accepted as a pianist; after playing Charlie Parker's bebop standard "Yardbird Suite" on the pan flute for Berklee employees, he was awarded a fully paid four-year scholarship. But it only took Damian two years to graduate from the revered music school, and after his graduation, he moved to Los Angeles. By 2000, Damian had recorded at least 12 CDs, although 1999's Romanian Gypsy: Pan Flute Virtuoso on Lyrichord was his first U.S. release. In November 2001, Damian visited Romania and played for about 72,000 people at the Centru Civic in Bucharest; that concert was taped and resulted in the album In Concert from Bucharest, which Naimad Records released in the U.S. in June 2002.

Poate-ar trebui sa-mi aminteasca de excursia in Norvegia, in special la Bergen, si pana nu demult de asta imi si aminteau, dat fiind ca Thievery sunt din Tromso. Dar am facut greseala, mai mult sau mai putin voita si / sau constienta, s-o leg de-o femeie. Slovaka, mai precis.

Faceam (fac si-acum, dar altfel) exercitii dimineata, imediat dupa trezire. Nu-mi placea sa stau prea mult facand asta, asa ca puneam Heart's a Lonely Hunter si pana la sfarsit faceam rapid 100 de abs, 30 de flotari, 30 reverse abs si 30 de lumanari (nu le faceam corect, si asta a rezultat eventual in Syndromu' Tzatze, dar asta-i alta poveste).

Partea a II-a e mai personala :)

Citeam recent ca o romanca a-nceput o campanie PR de licitatie a virginitatii. Nestiind ce se ma intampla cu legalizarea prostitutiei, m-am apucat sa caut.

Voi comenta maine... Acum mi-e nitel cam somn :)

http://www.banateanul.ro/ultima-ora/incredibil-o-timisoreanca-de-22-de-ani-si-a-scos-virginitatea-la-licitatie-audio-3298919

http://www.ziare.com/O_romanca_isi_scoate_virginitatea_la_licitatie_pentru_a_si_plati_studiile-433678.html

http://www.legislationline.org/?tid=179&jid=41&less=false

http://uk.reuters.com/article/worldNews/idUKL2864579420070228

http://www.iht.com/articles/ap/2006/09/01/europe/EU_GEN_Romania_Prostitution.php

http://camgirlnotes.15.forumer.com/index.php?showtopic=721

http://gabriel.mihalache.name/ei/article/186/civilization-or-decadence



Continui cantecelul de blues economic din prima parte, aici chiar punand nelipsitul clip iutub, ca sa contrabalensez o prezentare Sequoia Capital cu multe cifre si grafice.

Economia ii fsck-ututa Ce a cauzat depresia economica si cat de nashpa va ajunge? Am fost intrebat de mai multe ori si m-am tot gandit cum s-o explic, fara sa ma-ntind pe 7 pagini (ci pe II) si fara sa folosesc mai mult de 3 neologisme pe propozitie. Iata!

In primul rand, desi am prezis inca din 2004 ca asta se va intampla, am pierdut o suma destul de mare in crash, cu multe zerouri, din motive in care nu mai intru acum. Dupa cum se vede, sunt o Cassandra care am luat-o pe la spate, dar sa continui cu interviul acordat blogului meu :) Am prezis asta intr-un filmulet pe care l-am pus pe iutub pentru prieteni - il voi pune pentru toti si toate imediat ce-i schimb coloana sonora, care-i bazata pe St. Germain, si care l-ar face sters pentru viol de copyright in doi timpi si trei miscari.

Economia este ciclica (wikipedia:Business_cycle). Asta inseamna ca orice perioada de crestere economica este urmata de o recesie, tot astfel cum vara este urmata invariabil de iarna, ziua de noapte, nasterea de moarte, tineretea de batranete si anilingusul de viermi intestinali. Ideea asta se regaseste in filozofia chinezilor cu barba alba (Yin-Yang), in fizica (principiul actiunii si reactiunii) si in chimie (Le Chatelier). In clipa in care incerci sa eviti sau sa prelungesti una din aceste stari, nu faci decat sa acutizezi urmatoarea care vine. Nu-mi vine in minte nici un exemplu clar din viata de zi cu zi. Un exemplu neclar ar fi ca atunci cand esti racit sau ai o viroza si te-apuci sa iei sirop de tuse sau alte tampenii, simptomele sunt mai usor de dus, dar tin mai mult timp; pe de alta parte, daca te-nfofolesti, stai in pat, bei multe lichide si iei sudorifice, ai sanse sa scapi intr-o zi, dar simptomele vor fi mai acute.

Cand Bush a venit la putere, cam era momentul unei recesii. Greenspan (wikipedia:Alan_Greenspan), care inainte sa devina seful economiei fusese un gold bug (wikipedia:Gold_bug), crezand ca dolarul trebuie acoperit cu aur, schimbase cantecul, zicand ca sistemul este suficient de sofisticat ca sa previna abuzurile de fiat currency (wikipedia:Fiat_currency). Asa ca la primul semn de recesie deflationara (wikipedia:Deflation), visteria americana a-nceput s-arunce cu bani, desferecand robinetul creditelor. Asta a evitat o recesie pe moment, dar a creat dezechilibre uriase. E ca atunci cand te simti nasol si-o iei pe alcool sau dulciuri. Visteria americana urina bani si jocul investitorului inteligent era sa se pozitioneze cat mai bine si cat mai in mijlocul jetului.

Este greu de explicat si de inteles ce sume uriase au fost pompate in economie. Nici macar nu mai mentionez cat a bagat numa' Fed-u' in ultimii doi ani. Ca sa-ti faci o idee, citeste articolul despre derivative.

Partea a doua e cu mai multe numere - pune-ti o sapca, sa nu-ti explodeze capul inainte de-a o citi Worried (tot acolo poti si comenta)

Daca esti printre cei care vin aici des, vei fi remarcat ca s-a schimbat prezentarea comentariilor. Arata mai bine, mai profi, produc mai multa fericire ochiului. De unde vine treaba asta?

E simplu: IntenseDebate, intr-un cuvant - adicatelea compania care a scos un sistem de comentarii folosit de aprope toata blogosfera, recent cumparata de Automattic, parintele WordPress. Intrebarea e simpla, raspunsu-i mai lung. Exista avantaje evidente in noul sistem, dar exista si probleme majore. Momentan, toate fortele lor sunt dedicate integrarii sistemului in wordpress.com, cel putin asta ghicesc eu. Blogger si restul, fiind competitie, sunt lasate nitel la o parte. Nu te sfatuiesc sa implementezi acest sistem pe un blog unde ai multe comentarii pana cel putin problemele majore vor fi rezolvate.

Intentionez sa scriu un articol despre comentarii in week-end. Am scris unul mai demult, cand am experimentat cu iFrames. Si cum s-au strans aproape 10 articole pe teme tehnice si presimt ca se vor mai strange, m-am gandit sa dau acestor articole categoria lor proprie - lucrand la fatzada. Si cum nu par a fi gustate chiar de toata lumea, le voi publica in week-end, adica Sambata si Duminica. Desigur, le voi scrie din timp si le voi seta sa se publice singure la ora 0 aici, ora 7am in Ro.

Primele articole din week-end-ul viitor vor probabil despre comentarii si despre READMORE (sau citeshte si da mai departe). Ma bucur de intrebari tehnice si feedback, dar ele trebuiesc adresate prin comentarii la articole. Intrebarile prin Yahoo Messenger sau Google Talk sunt ignorate pentru ca nu le vad. Daca insa vreuna imi rasare in fata, intrerupandu-ma de la ce fac, va rezulta in Ignore/Ban. Nu este fair fata de altii sa pui intrebari prin IM, intrucat poate si altii s-au lovit de aceeasi problema, si punand intrebarea prin comentarii la articole ii ajuti si pe altii interesati in problema respectiva. Mai mult decat atat, folosind IM pentru astfel de chestii imi iei din timpul meu alocat altor probleme si asta nu-mi place. Acelasi lucru e valabil pentru mass-uri.

Daca sunt anumite subiecte pe care vrei sa le discut, nu ezita sa-mi ceri asta.

Numa' bine!

20090810 UPDATE: Vrei mai multe articole tehnice pentru Blogger / Blogspot? Este modificarea de aici curenta, s-au am facut una noua, cu acelasi efect, dar mai buna? Toate modificarile aduse de mine acestui sablon (template) pot fi gasite in Zamolxis ChangeLog. Seria lucrand la fatada va gazdui de-acu’ incolo articole despre PR, media persuasion si eventual imaginea Romaniei.


I find labels offensive; tu nu? Totusi, m-am gandit ca e o chestie misto de pus pe blogger. Blogger / blogspot nu are asta automat, dar ca orice altceva, se poate face un hack. Si daca esti cumva pe Wordpress (nimeni nu-i perfect), iti voi arata cum sa ai animatia si-acolo (sari direct la punctul 3).

Eu n-am de gand sa ma mut in curand de pe blogger, dar sunt anumite chestii pe care am vrut sa le-mbunatatesc, si cred c-am reusit in cea mai mare parte. Una din ele este prezentarea categoriilor.

Trebuie pastrata o diferentiere clara intre categorii (labels) si taguri (tags). Categoriile sunt scheletul blogului si nu cred ca trebuie sa ai mai mult de 30. Dac-ajungi sa ai mai mult de 30, inseamna ca tu confunzi categoriile cu tag-urile. Categoriile le alegi pe baza tematicii blogului, si cred ca-i o idee buna sa incerci sa le mentii intr-un numar cat mai mic. Alegi cuvinte generale. Tag-urile sunt cuvinte mai restrictive, si le adaugi pentru a gasi mai usor articolul (atat tu, cat si motoarele de cautare). Nu stiu in ce masura asta te-a lamurit ce-s alea; daca nu, iata o lista de tutoriale:

A) Label cloud (stil wordpress)

Desi Blogger imi permite sa arat categoriile in ce ordine vreau, optiunile nu sunt suficiente sa ma satisfaca. Am vrut sa arat Categoriile in ordine alfabetica, cu marimea fontului data de numarul articolelor sub categoria respectiva. Rezultatele pot fi vazute in subsolul blogului. Nu-mi amintesc exact ce tutorial am urmat, dar cred ca primul la care m-am uitat a fost cel a lui Phydeaux. Acesta pare mai complex decat e necesar, intrucat e prea lung, si declaratia variabilelor se face in capul sablonului.

Hackosphere a publicat in 2006 un hack pentru asa ceva, iar frivolousmotion l-a rescris. Iata hackul frivolousmotion:

1. Du-te in Dashboard si login.

2. Apasa pe Layout -> Edit HTML. Nu apasa "Expand Widget Templates" - nu e necesar.

3. Fa un backup la sablon. Poti face asta fie apasand pe "Download Template" si salvandu-l cu un nume semnificativ, fie selectand tot textul si salvandu-l cu o descriere in Google Notebooks, de pilda. Daca faci vreo greseala majora sau nu esti multumit cu rezultatul, te poti duce la Upload a template from file, Choose... si apoi apesi Upload.

3. Apasa Ctrl+F pentru a cauta in pagina, si cauta

<b:section class='sidebar' id='sidebar' preferred='yes'>

4. Imediat dedesubt, fa copy & paste urmatorului cod:

<b:widget id='Label1' locked='false' title='Labels' type='Label'>
<b:includable id='main'>

<div class='widget-content'>
<div id='LabelDisplay'>
</div>
</div>

<script language='javascript' type='text/javascript'>
function zoomStyle() {
var max = 0;
var min = 10000;
<b:loop values='data:labels' var='label'>
if (<data:label.count/> &gt; max)
  max = <data:label.count/>;
if (<data:label.count/> &lt; min)
min = <data:label.count/>;
</b:loop>
var display = &quot;";
<b:loop values='data:labels' var='label'>
var delta = <data:label.count/> - min;
var size = 80 + (delta * 100) / (max - min);
display = display + &quot;<span style='font-size:" + size + "%'><a expr:href='data:label.url + "?max-results=100"' style='text-decoration:none;'><data:label.name/></a></span> &quot;;
</b:loop>

obj = document.getElementById(&#39;LabelDisplay&#39;);
obj.innerHTML = display;
}

zoomStyle();
</script>

<b:include name='quickedit'/>
</b:includable>
</b:widget>

5. Fa un preview al sablonului apasand pe "Preview". Daca-i OK, salveaza sablonul apasand Save Template. Daca nu, apasa pe Clear Edits sau incarca sablonul salvat mai devreme, si ia-o de la capat, avand grija sa urmaresti instructiunile cu mai multa atentie - eu le-am incercat si-a mers (rezultatul se vede dedesubt, pe pagina).

6. Apasa pe Page Elements si muta Widgetul unde vrei. Apasa pe Preview inainte de a salva.

Daca preferi varianta originala (hackosphere), inlocuieste codul de la punctul 4. cu combo box (permite alegerea mai multor stiluri) sau zoom style only (un singur stil). Iata si varianta combo:

<!-- Multi-style labels - zoom, menu and list styles -->
<b:widget id='Label1' locked='false' title='Labels' type='Label'>
<b:includable id='main'>
  <h2>Multi-style Labels</h2><br/>
  <a href='javascript:void' title='Switch to List' onclick='javascript:linkStyle();'>
  <img src='http://www.anniyalogam.com/widgets/list.jpg'/></a>
  <a href='javascript:void' title='Switch to Menu' onclick='javascript:menuStyle();'>
  <img src='http://www.anniyalogam.com/widgets/menu.jpg'/></a>
  <a href='javascript:void' title='Switch to Zoom' onclick='javascript:zoomStyle();'>
  <img src='http://www.anniyalogam.com/widgets/zoom.jpg'/></a>
  <b><a href='http://hackosphere.blogspot.com/2006/09/multi-style-labels-widget-for-blogger.html'>?</a></b><br/><br/>

  <div class='widget-content'>
  <div id='LabelDisplay'>
  </div>
  </div>

  <script language='javascript' type='text/javascript'>
  function zoomStyle() {
    var max = 0;
    var min = 10000;
    <b:loop values='data:labels' var='label'>
    if (<data:label.count/> &gt; max)
         max = <data:label.count/>;
    if (<data:label.count/> &lt; min)
       min = <data:label.count/>;
    </b:loop>
    var display = "";
    <b:loop values='data:labels' var='label'>
      var delta = <data:label.count/> - min;
      var size = 100 + (delta * 100) / (max - min);
      display = display + "<span style='font-size:" + size + "%'><a expr:href='data:label.url + "?max-results=100"' style='text-decoration:none;'><data:label.name/></a></span><br/><br/>";
    </b:loop>

     obj = document.getElementById('LabelDisplay');
     obj.innerHTML = display;
  }

  function menuStyle() {
     var display = "<select onchange='location = this.options[this.selectedIndex].value;'><option>Select a label</option>";
     <b:loop values='data:labels' var='label'>
       display = display + "<option expr:value='data:label.url + "?max-results=100"'><data:label.name/> (<data:label.count/>)</option>";
     </b:loop>
     display = display + "</select>";

     obj = document.getElementById('LabelDisplay');
     obj.innerHTML = display;
  }

  function linkStyle() {
     var display = "<ul>";
     <b:loop values='data:labels' var='label'>
       display = display + "<li><a expr:href='data:label.url + "?max-results=100"'><data:label.name/></a> (<data:label.count/>)</li>";
     </b:loop>
     display = display + "</ul>";

     obj = document.getElementById('LabelDisplay');
     obj.innerHTML = display;
  }

  // set default to zoom style
  zoomStyle();
  </script>

    <b:include name='quickedit'/>
</b:includable>
</b:widget>

 

B) Blogumus

Widgetul blogumus consta intr-un tag cloud sferic, animat si poate fi vazut in stanga sus. Instalarea unui widget Blogumus este similara cu cea zoom style, diferenta constand in codul introdus la punctul 4, care-i urmatorul:

<b:widget id='Label99' locked='false' title='Labels' type='Label'>
<b:includable id='main'>
  <b:if cond='data:title'>
    <h2><data:title/></h2>
  </b:if>
  <div class='widget-content'>

    &lt;object type="application/x-shockwave-flash" data="http://halotemplates.s3.amazonaws.com/wp-cumulus-example/tagcloud.swf" width="250" height="200" allowscriptaccess="always" &gt;
        &lt;param name="movie" value="http://halotemplates.s3.amazonaws.com/wp-cumulus-example/tagcloud.swf" /&gt;
        &lt;param name="bgcolor" value="#ffffff" /&gt;
        &lt;param name="flashvars" value="tcolor=0x000000&amp;mode=tags&amp;distr=true&amp;tspeed=100&amp;tagcloud=&lt;tags&gt;
      <b:loop values='data:labels' var='label'>
<a expr:dir='data:blog.languageDirection' expr:href='data:label.url' style='12'><data:label.name/></a>
</b:loop>
&lt;/tags&gt;" /&gt;
        &lt;p&gt;Blogumulus by &lt;a href='http://www.roytanck.com/'&gt;Roy Tanck&lt;/a&gt; and &lt;a href='http://www.bloggerbuster.com'&gt;Amanda Fazani&lt;/a&gt;&lt;/p&gt;
    &lt;/object&gt;

  </div>

  <b:include name='quickedit'/>
</b:includable>
</b:widget>

Acest cod a fost publicat de Amanda Fazani la bloggerbuster (exista si o varianta mai veche). Este adaptat dupa un plugin Wordpress creat de Roy Tanck, WP-Cumulus. Atentie, insa: pluginul nu "inghite" labels sau tag-uri cu diacritice. L-am rugat pe Roy sa se uite la chestia asta, dar nu stiu cand, daca sau cum o va face.

Atributele de latime (width) si inaltime (height) pot fi modificate de la default (250px si, respectiv, 200px). Culorile textului si backgroundului sunt exprimate in hex - alb este #ffffff, negru este 000000. Exista mai multe modalitati de a afla valoarea hex asociata cu fiecare culoare, dar cea mai simpla este sa mergi in Layout -> Fonts and Colors si sa gasesti culoarea asociata cu sablonul tau (sau alta culoare, daca vrei sa fii funky). In cazul meu este #fff0e0. Nu uita sa Clear Edits dupa ce gasesti culoarea preferata, intrucat vrei sa schimbi numai widgetul, nu tot blogul.

 

C) Altele

Daca-ti place ideea de "tag cloud", s-ar putea sa te bucuri sa afli ca poti face un tag din orice, inlcusiv feed-ul comentariilor tale, site-ului tau sau chiar al altui site. Un tutorial se afla in lista de clipuri youtube de mai sus. Tot ce trebuie sa faci este sa mergi la MakeCloud.com si sa introduci un feed.

20090810 UPDATE: Vrei mai multe articole tehnice pentru Blogger / Blogspot? Este modificarea de aici curenta, s-au am facut una noua, cu acelasi efect, dar mai buna? Toate modificarile aduse de mine acestui sablon (template) pot fi gasite in Zamolxis ChangeLog. Seria lucrand la fatada va gazdui de-acu’ incolo articole despre PR, media persuasion si eventual imaginea Romaniei.