Golem14 n-a murit, Golem se transformă!

Golem14 n-a murit, Golem se transformă!

Golem14 a dispărut din online câteva zile. Doar o mână de oameni i-au sesizat lipsa, în rest liniște. Site-urile cad și mai devreme sau mai târziu, reapar. Nu-i nimic spectaculos în asta.

Și uite așa, într-o zi cu soare îți crapă un plugin și dintr-o dată te plesnește o drăgălașă și nefolositoare “500 Internal Server Error”. Apoi dă-i și discută cu suportul tehnic despre filozofia erorii, care de fapt ascunde o altă eroare și pe care numai un vraci (administrator de sistem) poate să ți-o descifreze, căci tu nu ai acces la mai nimic. Ritmul discuțiilor atinge viteza maximă de un email pe zi (în weekend) și până înțelegi ce naiba se întâmplă…. trece timpul… Și… ca să nu te plictisești îți imaginezi cum ai pierde bani frumușei dacă website-ul tău ar fi fost vreun magazin online sau ar fi avut vreun alt profil, în care menținerea non-stop online ar fi fost vitală pentru business-ul tău.

Îmi doream de ceva vreme să fac saltul către un server în cloud. Mă documentam, tatonam terenul, testam diverse chestii, iar ultimul incident avea să grăbească puțin lucrurile.

Treaba stă în felul următor. Dacă vrei un website/blog, cel mai simplu e Blogger-ul – soluția gratuită de la Google. Vrei ceva mai avansat, mergi spre WordPress, Joomla, Tumblr sau altele… Vrei ceva specific, cum ar fi să zicem un mediu de dezvoltare Python, te îndrepți către soluții dedicate (Python Anywhere, Openshift, Google App Engine, etc)…

Și dacă vrei de toate, și WordPress și mediu de testare și control aproape total (bine… cât timp nu ai serverul tău fizic, există întotdeauna limite hardware sau financiare, politici de securitate și tot felul de opreliști. Și chiar dacă ai avea server-ul tău, unde să-l ții, în cămară?… O să râdă Telekom-ul, RDS-ul, UPC-ul și mai ales ENEL-ul de tine la fiecare cădere a rețelei)… Ei bine… atunci te îndrepți către un server virtual… în cloud… unde la același preț primești mult mai multă libertate decât de la un web-host normal (de ex: de 5 ori mai mult spațiu de stocare, găzduire în SUA, Europa sau Asia, posibilitate de upgrade resurse în timp real, etc), cu o singură condiție… și anume să ai habar cu ce se mănâncă toată treaba… Slavă internetului că există Google și oameni dornici să împartă din experiența lor… Răbdare și timp să ai, și le rezolvi pe toate.

Trăim vremuri interesante… Cine se plânge că nu are de unde învăța, e orb!… Un orb din ăla care moare de foame bâjbâind pe lângă munți de hrană… Hrana minții!…

Photo: daenzar.deviantart.com

Ce ar trebui să știi dacă vrei să înveți Python

Ce ar trebui să știi dacă vrei să înveți Python

Interpretatorul Python, adică programul care transformă liniile de cod ale limbajului de programare cu același nume, în comenzi reale, îl găsești sub două versiuni (v2 și v3) pe site-ul oficial www.python.org. Tot acolo găsești toată documentația de care ai nevoie, link-uri către comunitățile locale (ex: Grup de Utilizatori Python din Romania) și link-uri către diverse resurse de bază (ex: manual tradus în limbă română, scris de olandezul Guido van Rossum – inventatorul limbajului de programare Python, poate fi descărcat de aici: Tutorial Python 2.2).

Python 2 vs Python 3

Cu care din cele două sa încep?, este întrebarea pe care și-o pune orice începător. Imaginați-vă Python 2 ca fiind un bătrân cu multă înțelepciune și experiență de viață pe când Python 3 este un tânăr talentat care promite multe. Eu am ales să le învăț pe amândouă ca și cum ar fi unul singur (baza e cam aceeași), vânând micile diferențe. Până acum m-am lovit doar de trei: modul de scriere a funcției Print, împărțirea numerelor reale și prezența sau absența unor librarii. O părere generală pe această temă găsiți aici: What should I learn as a beginner: Python 2 or Python 3?, sau una tehnică, aici: Python 2 vs. Python 3: How to Choose.

Cursuri

Există o mulțime de cursuri care te ajută să înveți Python. Cum e firesc, unele sunt gratuite, altele contra cost. Mai jos am enumerat cursurile peste care am dat în căutările mele și care sunt gratuite sau cel puțin accesibile. Cursurile sunt etichetate cu #începător, #mediu sau #avansat în funcție de grupul căruia i se adresează.

Cursuri COURSERA

Cursuri UDEMY

Alte cursuri gratuite

Cursuri pe care le găsești pe torrente

Integrated Development Environment (IDE)

Pentru a scrie Python nu ai nevoie decât de Notepad. Totuși ca începător, dacă vrei să ai viața mai ușoară, încearcă înainte de toate un Integrated Development Environment. Un IDE este un program care îți “colorează” codul în așa fel încât să fie ușor de parcurs, îl verifică și pe alocuri scrie fragmente de cod pentru tine, ajutându-te să fii rapid și eficient. O mulțime de erori apar datorită tastării greșite sau a uitării unor caractere, un IDE te va ajuta mult în a depăși problemele de acest fel.

  • IDLE (Phyton GUI) – Cel mai simplu IDE vine deja integrat în versiune de Python pe care o ai instalată (caută-l în folderul interpretatorului Python).
  • Notepad++ – După cum se poate ghici din denumirea sa e un Notepad mai altfel… Adică e un fel de super-notepad care te ajută să scrii linii de cod în diverse limbaje de programare. Tot ce trebuie să faci e să-l descarci, să-l instalezi și apoi să adaugi plugin-urile specifice pentru Python (PyNPP, Python Indent, Python Script, etc). Nu ar fi rău să adaugi și alte plugin-uri cum ar fi cele pentru HTML, XML etc. pentru că vei avea nevoie de ele mai târziu când te apuci de diferite proiecte.
  • PyCharm – E cel mai tare IDE pentru Python la ora actuală. Pentru mine a fost mană cerească… Acest IDE se prezintă sub mai multe versiuni (Educational, Community Edition și Professional). Vă recomand folosirea lor exact în ordinea asta. Primele două sunt gratuite, iar ultima contra cost. După ce ați trecut de faza de profan, Community Edition vă va satisface majoritatea nevoilor. Apoi când lucrurile devin mai complicate puteți opta pentru a cumpără versiunea pro sau puteți migra către un alt IDE concurent, care este open source – PyDev (Python IDE for Eclipse).
  • O listă cu toate IDE-urile pentru Python găsiți aici:      http://wiki.python.org/moin/IntegratedDevelopmentEnvironments

Medii de testare

Să presupunem că ai chef să scrii niște cod pe care să-l testezi și nu te găsești tocmai în fața PC-ului tău (cu de toate) de acasă. Atunci, poți apela la unul din următoarele instrumente:

Web

  • codeskulptor.org – este playground-ul pentru cursul Coursera – An Introduction to Interactive Programming în Python (vezi mai sus);
  • repl.it – este preferatul meu. Arată bine și e o platforma care se adresează mai multor limbaje de programare în caz ca vrei să testezi și altceva.
  • pythonanywhere.com – acesta este un server de găzduire unde se pot testa proiecte mai complexe ce implică interfața web ca django, CherryPy etc.

Android

Testimonials

  • How to Learn Python in Five Minutes – O prezentare scurtă și la obiect realizată de Daniel Moniz, despre ce trebuie să faci ca să înveți Python și apoi să-ți iei o slujbă în domeniu.

 

  • From nothing to daily use – How Python changed my work life – Poate nu veți înțelege chiar tot ce spune Jay Gattuso în filmulețul de mai jos, însă rețineți ideea de bază – chiar dacă uneori habar nu aveți cu ce să începeți sau mai rău, ce faceți, concentrați-vă pe a rezolva o problemă și… mai devreme sau mai târziu veți găsi resursele necesare pentru rezolvarea ei. Nu o să vă iasă din prima cel mai bun cod… însă important e să rezolve problema și apoi în timp vă puteți concentra și asupra optimizării lui.

Alte resurse:

Cover: Marcelo Martinovic

Later update: Cel mai mișto curs de care am dat până acum (pentru android și nu numai): http://www.sololearn.com/Course/Python/

Ce tac când fac!…

Ce tac când fac!…

O vreme am învățat Coldfusion, apoi mi-am băgat nasul și în HTML, CSS, XML, JavaScript, PHP, MySQL, Microsoft SQL Server și alte treburi asemănătoare, suficient de mult cât să-mi înțeleg și totodată să-mi îmbunătățesc instrumentele de lucru. Acum e timpul să-mi hrănesc creierul cu treburi ceva mai laborioase… cum ar fi de exemplu un limbaj de programare… Dar care?… Sunt o mulțime, fiecare cu dificultatea, caracteristicile și puterea lui…

A trebuit să îngurgitez ceva informație până să mă lămuresc cum stă treaba și în final am ales, după vreo două tentative, tot Python. Apoi, în perigrinările mele IT-iste am dat peste schema de mai jos care mi-a confirmat buna alegere. Pentru nevoile mele Python este suficient…

The Zen of Python by Tim Peters

 

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren’t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one– and preferably only one –obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it’s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea — let’s do more of those!

PS: … și da, cam asta e senzația. Asocierea limbajelor de programare cu lumea fantastică din Stăpânul Inelelor nu este deloc întâmplatoare. După ce rulezi primele programe făcute de tine (chiar dacă nu sunt mare scofală) în sinea ta începi să te simți precum un mic vrăjitor sau un mic alchimist al vremurilor noastre (și mai ales a celor ce vor veni…). Voi oferi detalii despre materialele și cursurile disponibile gratuit pe internet, pe care le-am urmat ori intenționez să le urmez, aici.

Sursa: carlcheo.com/startcoding