Ce nu trebuie să-ți lipsească la următorul site pe care-l vei face

Încerc pentru acest articol să cataloghez cele mai importante opțiuni pe care trebuie să le ai la îndemână pentru următorul site pe care-l vei face (pentru tine sau pentru clienți). Dacă ai la activ site-uri cu mii de vizitatori pe zi probabil te-ai lovit de cel puțin o problemă cauzata de una din ele și sper că ai învățat deja din propriile greșeli.

SSL

Până nu de mult certificatele SSL erau o fiță sau folosite doar în paginile care procesau informații confidențiale (login, register, checkout). Asta până marile browsere au început să afișeze by default mesajul “Not secure” tuturor site-urilor care nu au un SSL (inclusiv cele de prezentare cu o pagină care n-au nici măcar un formular de contact). Pentru utilizatorul de rând, acel mesaj îi dă impresia că i se va virusa calculatorul și îi vor fi furate pozele de la majorat.

Dacă până acum 2-3 ani un SSL costa minim 5$/an, partea buna e că odată cu această schimbare au apărut și alternative gratuite precum letsencrypt.org care au implementări și în majoritatea sistemelor de management al hostingului shared (cpanel, plesk, webuzo) le poți activa cu un singur click.

sursa: reddit.com

Cloudflare

Cloudflare e o struțocămila care în principiu îți permite să:

  • ai un site mai rapid (minimizare automata a codului html, css, js, cache automat)
  • ai un site mai protejat (în caz de DDOS)
  • ai un dns mai flexibil și mai rapid

Ca și implementare trebuie doar să pointezi nameserverele cloudflare la domeniu tău si restul butonezi din dashboard-ul lor. Varianta gratuită e de ajuns pentru majoritatea tipurilor de site-uri.

Cache

There are only two hard things in Computer Science: cache invalidation and naming things.

Phil Karlton

În principiu trebuie ca orice secțiune care scoate înformații din baza de date să fie salvată efectiv pe server ca un fișier static (.txt) și servită de acolo următorilor vizitatori. Partea grea e invalidarea, adică să știi atunci când trebuie să te uiți iar direct în baza de date sau să folosești informația din fișierul static salvat.

Ca și recomandare de librarie PHP pentru acest lucru folosesc PhpFastCache care știe să lucreze cu mai multe tipuri de medii de stocare (fișiere statice, memcache etc).

Pentru WordPress pentru orice site pe care-l fac instalez WP Super Cache, un plugin care face fix ce am zis mai sus și e dezvoltat de aceeași oameni cară lucrează la WordPress.

Sitemap

Dacă SEO este un aspect important pentru următorul tău site (și ar fi bine să fie) e musai să ai un sitemap care să se regenereze automat în funcție de cum apar/dispar pagini. Asta îi va spune mai rapid lui Google despre conținutul site-ului tău și ai și un control mai bun asupra a ce pagini vrei să fie indexate cu prioritate.

În principiu e un fișier /sitemap.txt sau /sitemap.xml cu structura de aici.

Pentru WordPress dacă instalezi Yoast SEO se face automat acest sitemap.

Tag Manager

În zilele noastre cam orice chestie marketing online related (analytics, engagement, creare de audiențe) presupune să instalezi un cod javascript în codul sursa al site-ului. Bineînțeles că o poți face și manual dar asta înseamna să ai un editor de cod la îndemână oriunde oricând și să știi unde să modifici de fiecare dată.

Varianta civilizată e un Tag Manager precum Google Tag Manager care odată instalat (tot pus un cod în codul sursa) îți permite să adaugi celelalte coduri prin intermediul dashboard-ului lor online. Poți pune și diverse reguli (pe ce pagina să nu apară un anume cod) dar asta e deja altă discuție.

Health Monitor

Adică un serviciu care-ți spune automat când site-ul tau e căzut. Există și variante plătite care verifică la fiecare minut dar majoritatea celor gratuite verifică la fiecare 5 minute, interval care e unul decent pentru 99% din situații. Eu folosesc Uptime Robot. E mișto că poți vedea și grafice cu uptime-ul pe o anumită perioadă.

Voi ce kit de supraviețuire pentru un site aveți?

Saga înregistrării unei mărci în România

În martie 2019 se face anul de când am demarat procedurile înregistrării eComJobs ca marcă verbala la OSIM și încă nu s-a finalizat treaba. Inițial am crezut că procedura se putea face strict online și am zis că merită 5 minute din viață ca să pot pune ®-ul lângă logo 🙂 Până la urmă a trebuit să merg și să depun fizic formularul la casierie.

Sursa: freepik.com

Procedura în teorie e simplă: depui cererea, plătești taxa și aștepți timp de 6 luni să nu-ți conteste cineva cererea. Dacă scapi fără vreo contestație, marca se înregistrează și ai scăpat. În cazul meu, cu câteva zile înainte de termenul celor 6 luni, primesc un ditamai dosarul de la un alt site cu jobs în denumire în care efectiv au printat câteva articole din blogul lor drept dovadă că folosesc termenul xxxjobs de nu știu câți ani și că dacă se aproba eComJobs ar putea crea confuzie.

Am întrebat în stânga și în dreapta ce urmează în cazul ăsta și am aflat că trebuie să fac un răspuns oficial în care să-mi justific alegerea și să contracarez acuzațiile lor. Cândva, o comisie de la OSIM va analiza argumentele fiecărei părți și va decide ceva.

Nu știu când va fi acel cândva pentru că au trecut deja 6 luni iar statusul e tot Opoziție în curs. Cu răbdare înainte!

PS: o chestie interesantă peste care am dat de-a lungul documentării despre OSIM e Plicul cu idei.

Domenii .dev

La final de februarie s-au deschis înregistrăriile pentru domenii .dev ($12/an, musai https). Ele sunt available de pe la început de februarie dar primele săptămâni au fost dedicate proprietarilor de mărci și a licitațiilor pe combinații premium. Imediat ce am văzut știrea, mi-am pus în calendar (cel de Google) un event să nu uit să verific unele domenii când o să devină disponibilă opțiunea pentru public. Doar ca UX-ul aplicației Calendar cam lasă de dorit și m-am ales doar cu o înregistrare în Calendar dar fără a fi notificat în vreun fel în ziua respectivă.

Tot așa arătați și voi când cumpărați un nou domeniu?

Mi-am adus aminte într-un final și-am intrat de bună voie dar când să vreau să dau cu cardul, Google îmi spune că România e țară de lumea a 3-a și încă nu pot fi cumpărate dacă ai domiciliul aici.

O chestie interesantă pe care am văzut-o până acum doar la ei e că dacă încerci să înregistrezi un domeniu care e și marcă înregistrată, primești o atenționare și poți vedea efectiv clasele pentru care e valabil trademark-ul respectiv.

Personal aș fi vrut un domeniu pe care să-l folosesc ca mediu de staging și pe care să-l pot da clienților dar până crește și Romania în ochii Google rămân la clasicele subdomenii dev.whatever.ro 🙂

Ce ne facem cu hosting-ul?

De cand a picat webfactor mi-am dat seama cu adevărat de cât de dependent am devenit de serviciile de hosting. De-a lungul anilor am fost clientul a peste 20 de companii din România și indiferent că erau firme de apartament sau proprietari de datacenter, la un moment dat ceva s-a întâmplat încât să mă facă să caut un alt furnizor.

sursa: pexels.com

Astfel am ajuns astăzi să folosesc 4 furnizori all-inclusive + 2 de cloud în regim self-service. Nu-mi place neaparat ideea pentru că e bataie de cap extra cu împărțirea și administrarea lor dar pur si simplu nu mai am încredere să-mi las avuția în mâinile unui singur terț unde singura putință e să aștept rezolvarea problemei.

Am început de exemplu să folosesc DNS-urile celor de la Cloudflare pentru a putea schimba rapid gazduirea unui domeniu în caz de ceva. Backup-uri se fac zilnic direct de către furnizor dar n-am încredere doar în asta și mai fac și eu periodic.

Cred că mai devreme sau mai târziu, datorită acestor așteptări de uptime 100% care prin natură ne sunt impuse (de ex: campanii plătite care merg continuu) vom ajunge tot la mâna AWS sau Google Cloud care ne va taxa de 5x mai mult pentru o replicare multi AZ și un somn mai liniștit.

Las aici un thread interesat pornit de un fost angajat Google despre cum cloud-ul își va lua încet încet încet partea leului din orice business online.

De unde îmi iau materiale grafice stock

Deși nu sunt designer, de multe ori am nevoie de diverse materiale grafice pentru o postare de facebook, un icon, o imagine pentru un hero block etc.

În primul rând recomand Canva (chiar și pachetul free) pentru că e un site foarte util atât pentru inspirație cât și pentru editorul online de materiale. Practic dacă ești pe grabă și nu vrei să deschizi Photoshop, îți poți rezolva treaba direct în site.

sursa: pexels.com

Pentru poze stock gratuite, folosesc pexels.com și freepik.com. Se repetă destul de mult conținutul de pe ambele dar cel din urma are în plus și materiale grafice de tip vector și .psd pentru template-uri de infografice, backgrounds etc. Pentru icons de cele mai multe ori m-a salvat flaticons.com mai ales că sunt grupate pe diverse stiluri și le poți descărca tip vector.

De când cochetez și cu editarea video mi s-a întâmplat să am nevoie de muzică de fundal. Și asta e al naibi de greu de găsit gratuit și de oarece calitate. Din fericire am descoperit acest site care are destul de mult content audio de calitate.

Deși nu am avut nevoie până acum, se pare că există o industrie și de stock videos. Până acum am găsit mixkit.co și videos.pexels.com dar din ce m-am uitat pe acolo cam toate au un stil prea americănesc.

Bineînțeles sunt curios să aflu și altele așa că le aștept prin comentarii. Sigur aveți și voi un folder in bookmarks cu tot felul de chestii gratuite și utile.

Cand știi mai multe totul devine mai dificil

Nu știu dacă există un sindrom cu o denumire pentru problema din titlu dar m-am lovit de ea la ultimul proiect dezvoltat, CadoList.

Pe vremuri când trebuia să creez un site parcă era mai simplu: structură baza de date, paginile html și ceva programare care să le lege. Nu mă gândeam foarte mult la securitate (a nu se înțelege că deloc), responsiveness (cum se scala by default era oarecum ok cât să înțelegi despre ce e vorba în pagina respectivă), scalabilitate, planuri de dezvoltare ulterioară a altor opțiuni.

sursa: pexels.com

Și pentru că omul cât trăiește învață, astăzi pus în situația de a nu mai repeta greșeli din trecut și de a mă folosi de cât mai multe lucruri învățate, încerc să fac totul ca la carte și să le prevad încă din stadiul proiectarii. Și chestia asta face ca totul să pară mult mai dificil, ajungând la un todolist cu un număr dublu/triplu de items față de anii trecuți pentru același tip de proiect.

Asta cred că mă face mai profi deci aș zice că… works for me 🙂

Despre recrutarea confidențială

Cum era de așteptat, de când am pornit eComJobs.ro am avut ocazia să înțeleg și să văd mai de aproape ce înseamnă industria de recrutare.

Atunci când am renunțat la WordPress și am creat de la zero o platformă specifică nevoilor noastre, am profitat de ocazie și am implementat rezolvari pentru tot ce ni s-a părut noua greșit la modul în care se face recrutare în zilele noastre.

  1. Am scos poza de profil din CV-uri pentru că nu vrem ca angajatorii să decidă dacă e interesat de el sau ea în funcție de cum arată.
  2. Atunci când un angajator refuză un CV, e obligat să spună și un motiv (care e transmis candidatului). Nici nouă nu ne-ar place să pierdem timp aplicând în stânga și în dreapta fără a primi un raspuns, fie el pozitiv sau negativ.
  3. Înțelegem că poate unele companii nu au nevoie de un angajat full time așa că am făcut o secțiune dedicată colaborarilor punctuale (de unde noi nu câștigăm nimic).
  4. Am făcut un sistem gratuit pe care companiile îl pot folosi pentru a măsura săptămânal gradul de satisfacție al angajaților și a descoperi problemele înainte de a fi prea tarziu.
  5. Cei care aplică și programează un interviu dar nu mai ajung din rea voință sunt etichetați pentru ca celelalte companii să poată afla despre acest comportament.
  6. Nu considerăm candidații o marfă expusă gata de vânzare așa că atunci când companiile sunt interesate de datele lor de contact, trebuie să le ceară explicit acordul (pe care candidații îl pot oferi sau nu).

Cu toate acestea în minte, cândva zilele trecute, o companie de recrutare s-a arătat foarte indignată că nu i-am acceptat anunțul pe site pentru că nu a vrut să menționeze compania la care candidatul ar fi ajuns. Justificarea lor era una corectă din punctul lor de vedere (nu ne lasă clientul) dar niciun moment nu le-a trecut prin minte că poate un astfel de client nu are nevoie de anunțuri publicate pe site-uri ci de o recrutare privată de genul head-hunting.

Nu că aș avea mustrări de conștiință, dar există oare oameni care ar aplica la un job fără a cunoaște unde se angajează?

Cea mai bună scoală de șoferi

Disclaimer: Scriu acest post cu dorința de a fi indexat în Google cât mai sus pentru termenul “cea mai bună școală de șoferi“.

Deși de-a lungul timpului am mai avut și mici accidente cauzate din vina mea (și unde doar mașina mea a fost implicată) , per total mă consider un șofer bun. La 18 ani am făcut școala de șoferi mai mult de plăcere decât de nevoie și cred eu că asta a contat destul de mult în felul la care m-am raportat față de ideea de condus.

Nu mai știu în zilele noastre ce se mai învață la orele de condus dar la vremea mea mai toata practică era despre manevrarea autovehicului și mai puțin despre experiența în trafic raportându-te la ceilalți participanți și la mediul înconjurător (tipuri de drumuri sau impactul vremii).

Adică poți primi în 2-3 luni acel cartonaș care îți dă dreptul să conduci dar tot pe barba ta trebuie să ieși în trafic pentru a învăța efectiv cum să te comporți în traficul de zi cu zi.

roadtrips.ro

La începutul anului am primit cadou de la soție un curs de conducere defensivă. Cu toată experiența din trecut aș fi zis că nu am nevoie, dar fiind acolo pentru câteva ore de teorie și practică, am realizat că o școală de acest format este cea mai bună școală de șoferi care poate exista și ce mi se pare și mai tare e că o poți accesa și ți se va părea utilă chiar dacă ai permis de tz ani.

Așadar după ce iei permisul, nu uita să faci și un astfel de curs de conducere defensivă.

Și pentru că mi-a plăcut calitatea experienței pe care am avut-o cu Academia Titi Aur, îi pot menționa ca și recomandare personală.

Adrese de email de unică folosință

În ton cu articolul despre adrese de email nelimitate, am găsit o soluție și pentru acele momente când trebuie să lași o adresă de email pentru a avea acces la ceva (un pdf, un cont de trial).

Bineînteles, asta se referă la acele resurse pe care ști din prima că le descarci one-time only, nefiind interesat de a primi follow up-uri în viitor.

getnada.com e un astfel de site care pune la dispoziție o adresă de email publică, adică imediat ce intri pe site, te conectează automat la o adresa de email pe care o poți folosi să… orice. Sunt mai multe servicii de genul asta și ce am observat strict în cazul getnada.com e ca dacă revii de la același calculator, te loghează în aceeași adresă ca și data trecută.

Atenție, aceste adrese de email sunt publice, adică e posibil ca sistemul să conecteze și alt utilizator la același inbox în același timp cu tine deci e de evitat atunci când mailul primit poate conține informații sensibile.

Cum să ai adrese de email nelimitate cu gmail

Ca programator se întâmplă să ai nevoie de mai multe adrese de email pentru a testa diverse functionalități la care lucrezi. De exemplu un sistem de relații (friendships) unde trebuie să faci rapid mai multe conturi ca să poți verifica că funcționează totul ok.

Dacă ai un domeniu propriu îți poti face un alias de genul [email protected] unde în loc de orice poți pune chiar orice îți trece prin minte și vei primi mailurile forward-ate pe o singură adresă de email. Bun și asa dar nu foarte practic devenind încă un lucru de setat și întreținut.

sursa: pexels.com

În gmail poți avea adrese nelimitate adăugând la numele de utilizator +orice. Dacă ai adresa [email protected], orice email trimis la [email protected] va ajunge tot la [email protected]

Un alt lucru la care poate fi folositoare opțiunea asta e înregistrarea cu o anume adresă de email pentru fiecare serviciu pe care-l folosești ca mai apoi să poți crea filtre pentru mailurile venite către adresa respectivă. De exemplu [email protected]

În felul ăsta îi poți prinde și pe cei care își împart bazele de date cu terți fără să te anunțe și să îi poți trage de urechi.