
Am reușit. De zile și nopți la rând trăiesc printre și pe lângă cărțile din biblioteca mea. Azi noapte afară erau cei ce serbau cu petarde și artificii. Am profitat, ascultând muzică, să indexez și ultimele cărți în aplicația mea la care am tot lucrat.
Am aflat câte cărți am: 1114.
Am aflat pe câte le-am citit: 321.
Acum știu pe câte le-am recitit: 23.
Știu pe câte încă nu le-am prea atins: 377.
Și am aflat și câte am începute (unele abandonate, altele nu… sau sper că nu): 416.
Aici e aplicația de care ziceam, scrisă de mine: Ghiță B. – Biblioteca personală
- Am indexat toate cărțile mele în ea.
- Încă mai am de adăugat detalii la fiecare carte (o mică descriere, titlul în original, tag-uri) – dar astea le pot face oricând, fără grabă.
- Are funcție de căutare: după orice cuvânt, după autor (click pe autor), după un subiect anume (click pe tag), după rating (click pe steluțe)
- Respectă perfect aranjarea lor în biblioteca mea. Chiar ăsta era unul din scopuri: dând un număr fiecărei cărți să știu pe urmă să o găsesc rapid în bibliotecă. D3_007 înseamnă de exemplu: pe a treia poliță a raftului D, a șaptea carte.
- Am implementat câteva criterii de ordonare (cea implicită e după ordinea din bibliotecă – și e utilă când vrei să vezi cărțile de pe un raft în ordinea lor), după cele mai recent actualizate (asta e util în viitor când voi adăuga cărți – ele vor apărea aici primele), după număr de pagini (crescător/descrescător). Și un criteriu care să mă ajute pe mine să decid ce carte să citesc mai departe: să mi le pună pe cele mai ușor de terminat primele (adică cele din care mi-au rămas cele mai puține pagini de citit, fără însă a fi citite complet).
Codul e aici: https://github.com/GhitaB/library. Folosesc React, HTML, CSS, JSON. Chiar dacă aplicația în sine am scris-o în puțin timp (ultimele luni), la Bibliotecă am lucrat de ani de zile, evident.
Cu cât m-am apropiat de final cu indexarea cărților mi-am tot optimizat modul de lucru. Iată pașii prin care trec cărțile de pe un raft când îl introduc în aplicație:
- Am un tabel în Google Sheets în care am toate cărțile mele. (Practic de acolo a început totul când m-am lovit de anumite limitări: nu pot pune poză cu cartea etc). Cel mai ușor să introduc cărți e totuși acolo. Scriu pentru fiecare carte: Număr de ordine (1112, 1113 etc), ID-ul din bibliotecă: C2_001, C2_002, Autor, Titlu, câte pagini am citit, număr total de pagini etc.
- După ce introduc o carte în Google Sheets, scriu și pe ultima pagină a ei numărul de ordine și codul din bibliotecă.
- Apoi din Google Sheets convertesc în json. Am un mic js care face asta.
- Înainte să pun cărțile în raft, le fac și poze.
- Pun cărțile în raft, în ordinea stabilită.
- Îmi trimit pozele pe whatsapp. Le descarc în computer. Decupez pozele. Apoi cu niște script-uri le convertesc în png, și le redimensionez la 200px pe lățime. Cu un alt script le dau nume folosind numărul lor de ordine (IMG_1113.png, IMG_1114.png). Le pun în folderul potrivit: public/images/C2, de exemplu.
- Acum că am pozele în folderul dat, am un mic script js care actualizează json-ul meu să folosească acele poze.
- În rest, rămâne să trec manual prin json și să adaug detaliile: titlu original, descriere, câte steluțe dau cărții etc.
Cifrele trebuie sincronizate, evident. Dar e simplu de tot. La final de zi, trebuie doar să știu ce cărți am citit și la ce pagină am ajuns. Fac un commit când vreau să actualizez. Peste timp, istoricul commit-urilor îmi va zice cu precizie și care au fost cărțile care mi-au atras atenția de-a lungul vremii. N-am de gând să implementez features pentru așa ceva, dar e fain cât de vast poate deveni un proiect mic.
În plus, oricine ar putea acum să folosească codul meu și să își facă relativ ușor propria bibliotecă. Practic înlocuiești .json-ul cu al tău și gata. Mai ai doar de desenat într-un tabel HTML rafturile tale. Dar e simplu de tot.
Așadar, la început de an am un punct de plecare: 1114 cărți indexate, totalizând 275284 pagini. Din ele am citit 321 cărți, 90280 pagini (incluzând paginile recitite). Cărți recitite: 23. Cărți neatinse: 377. Cărți începute: 416.
Teoretic, la finalul anului voi putea ști și câte pagini am citit între timp, nu doar cărți. Iar asta chiar va fi interesant și provocator. Și va putea ști oricine altcineva e interesat. Blog-ul meu cu cărțile pe care le citesc și le discut (ghitab.net) o să aibă, deci, și aplicația pereche Biblioteca mea (https://ghitab.github.io/library/).
Rămâne să găsesc modalități creative de a le lega una de cealaltă. Deja la unele cărți din bibliotecă am pus link cu recenzia de pe blog. Implementând niște lucruri simpluțe, aș putea pe urmă pune link-uri și de pe blog spre aplicație. De exemplu: vezi lista de cărți din aceeași serie, vezi lista de cărți din aceeași categorie (pe același subiect) sau pur și simplu: vezi și alte cărți care mi-au displăcut la fel de tare încât le-am păstrat doar ca exemplificare a unei teorii greșite.
Am descoperit că e adevărat: când lucrezi ceva ce-ți place, în loc să te simți epuizat, simți că te încarci. Mai am câteva zile libere și voi ieși și pe-afară, dar uitându-mă la munca făcută aici, mă simt complet încântat. Și nu pot decât să sper că se vor alătura și alții și alții… și apoi o să putem trage cu ochiul la cel mai frumos perete din casa fiecăruia: cel încărcat cu cărți.
Dacă n-ai idei pentru anul 2025, am eu una: Citește mai mult. Cu libertate, cărți, flori și lună, cine n-ar fi fericit?
Nu-ți ia decât vreo 15 ani să citești 275284 de pagini, dacă citești 50 de pagini pe zi. Dacă, însă, citești doar 10 pagini pe zi… va trebui să mai trăiești 75 de ani ca să le poți parcurge.
Sună descurajant poate, sau poate că provocator. Dar înainte să vorbești ar trebui să gândești. Iar înainte să gândești, e musai să citești. Deci, ușor sau greu, cum ți se pare… altă cale nu-i. Un an nou binecuvântat cu cărți citite!
