PHP al llarg del anys

PHP ha experimentat moltes millores significatives des de la seva creació fins a l’actualitat. Aquí tens un resum de les millores més destacades a través dels anys:

PHP 4 (2000)

  • Zend Engine 1: Millorat el rendiment i la gestió de la memòria.
  • Sessions: Introducció de la gestió de sessions.
  • Objectes i classes: Millor suport per a la programació orientada a objectes (OOP).

PHP 5 (2004)

  • Zend Engine 2: Millorat encara més el rendiment i la gestió de la memòria.
  • XML i Web Services: Suport millorat per XML i serveis web.
  • Namespaces: Introducció de namespaces per evitar col·lisions de noms.
  • Anonymous Functions: Suport per a funcions anònimes i closures.

PHP 5.3 (2009)

  • Namespaces: Millorat el suport per a namespaces.
  • Funcions anònimes: Suport per a funcions anònimes.
  • Funcions de fitxer: Suport per a funcions de fitxer.

PHP 5.6 (2014)

  • Expressions constants: Suport per a expressions constants.
  • Desempaquetat d’arguments: Suport per a desempaquetar arguments en les funcions.

PHP 7.0 (2015)

  • Tipus escalars: Declaracions de tipus escalars.
  • Rendiment: Major millora de rendiment, podent manejar el doble de sol·licituds per segon.
  • Tipus de retorn: Declaracions de tipus de retorn.

PHP 7.4 (2019)

  • Propietats tipades: Suport per a propietats tipades.
  • Separador numèric sota línies: Introducció del sota línies com a separatòr numèric.

PHP 8.0 (2020)

  • Tipus de unió: Suport per a tipus de unió.
  • JIT (Just-In-Time): Compilador JIT per millorar el rendiment.
  • Propietats de constructors: Promoció de propietats de constructors.

PHP 8.1 (2021)

  • Enums: Suport per a enums.
  • Fibres: Suport per a fibres.
  • Tipus d’intersecció: Suport per a tipus d’intersecció.

PHP 8.2 (2022)

  • Classes de nomès lectura: Suport per a classes de només lectura.
  • DNF tipus: Suport per a DNF tipus.
  • Tipus per a null, fals i cert: Suport per a tipus específics per a null, fals i cert.

PHP 8.3 (2023)

  • Propietats redactades: Suport per a redacció de propietats sensitives.
  • Extensió aleatòria: Nova extensió aleatòria.

PHP 8.4 (2024)

  • Propietats de només lectura: Suport per a propietats de només lectura.
  • Millorat el rendiment: Continuació de millores de rendiment.

PHP ha evolucionat molt des de la seva primera versió, convertint-se en una eina poderosa i versàtil per a la desenvolupament web. La comunitat PHP també ha jugat un paper important en aquesta evolució, oferint suport i innovació contínua.


*PHP (Hypertext Preprocessor) va ser creat l’any 1995 per Rasmus Lerdorf. Originalment, es va desenvolupar com a eina per gestionar el seu currículum en línia, però amb el temps va evolucionar fins a convertir-se en el llenguatge de programació web que coneixem avui.

Hi ha alguna altra cosa sobre PHP que t’agradaria saber?


El popular lloc de xarxes socials va ser inicialment desenvolupat en PHP actualment quin llenguate utilitza?

Facebook, inicialment desenvolupat en PHP, ha evolucionat significativament i ara utilitza una combinació de llenguatges per a diferents parts de la seva plataforma. Els llenguatges més utilitzats actualment a Facebook inclouen:

  • Hack: Una extensió de PHP que ofereix tipus estàtics i millors eines de desenvolupament.
  • Python: Utilitzat per tasques de processament de dades i aprenentatge automàtic.
  • Java: Utilitzat per a aplicacions empresarials i serveis backend.
  • C++: Utilitzat per a parts crítiques de rendiment.
  • Erlang: Utilitzat per a serveis de xarxa i comunicacions.
  • JavaScript: Utilitzat per a la interfície d’usuari i aplicacions web dinàmiques.

Aquesta diversitat de llenguatges permet a Facebook mantenir una plataforma robusta, escalable i eficient.

Python s’utilitza a Facebook per a diverses tasques clau. Aquí tens algunes de les aplicacions principals de Python en la infraestructura de Facebook:

  1. Processament de Dades:
  • Facebook recull enormes quantitats de dades dels usuaris, i Python s’utilitza àmpliament per processar, analitzar i extreure informació útil d’aquestes dades.
  • Llibreries com Pandas, NumPy i SciPy són utilitzades per a l’anàlisi de dades i el càlcul científic.
  1. Aprenentatge Automàtic (Machine Learning):
  • Python és molt popular en el camp de l’aprenentatge automàtic gràcies a les seves potents llibreries com TensorFlow, PyTorch i scikit-learn.
  • Facebook utilitza Python per desenvolupar i desplegar models d’aprenentatge automàtic que milloren l’experiència de l’usuari, com ara recomanacions personalitzades i detecció de contingut inadequat.
  1. Infraestructura de Serveis:
  • Python s’utilitza per escriure microserveis i altres components de backend que ajuden a gestionar i mantenir la infraestructura de la plataforma.
  • Frameworks com Flask i Django poden ser utilitzats per desenvolupar aquests serveis.
  1. Automatització i Scripts:
  • Python és ideal per a tasques d’automatització, com la gestió de servidors, la distribució de recursos i el desplegament de codi.
  • Scripts de Python s’utilitzen per automatitzar tasques rutinàries i millorar l’eficiència dels desenvolupadors.
  1. Anàlisi de Xarxes Socials:
  • Python permet analitzar patrons de comportament i interacció entre usuaris a Facebook, utilitzant llibreries com NetworkX per a l’anàlisi de xarxes.

Aquestes són algunes de les formes principals en què Python s’aplica a Facebook. La seva flexibilitat i potència fan que sigui una eina valuosa en molts aspectes del desenvolupament i manteniment de la plataforma.

Si tens alguna altra pregunta o necessites més informació, estic aquí per ajudar-te! 😊

Publicat dins de PHP

IP que utilitzen les aplicacions per passar a través dels tallafocs

1. Utilitza el Monitor de Recursos de Windows

  1. Obre el Monitor de Recursos:
    • Cerca “Monitor de Recursos” al menú d’inici i obre’l.
  2. Ves a la pestanya “Xarxa”:
    • Aquí podràs veure les connexions de xarxa actives i les adreces IP que utilitzen les aplicacions.

2. Utilitza el símbol del sistema (cmd)


Obre el símbol del sistema:
netstat -an
  1. Executa la comanda netstat:
    • Escriu la següent comanda per veure les connexions de xarxa actives:bashnetstat -an
    • Aquesta comanda mostrarà una llista de totes les connexions de xarxa actives i les adreces IP associades.

3. Utilitza eines de tercers

Hi ha diverses eines de tercers que pots utilitzar per monitoritzar les connexions de xarxa i veure les adreces IP que utilitzen les aplicacions. Algunes d’aquestes eines inclouen:

  • Wireshark: Una eina de captura de paquets que et permet veure el trànsit de xarxa en temps real.
  • TCPView: Una eina de Sysinternals que mostra una llista detallada de totes les connexions TCP i UDP actives al teu sistema.

Aquestes eines et permetran veure quines adreces IP utilitzen les aplicacions per passar a través dels tallafocs.

Si tens alguna altra pregunta o necessites més ajuda, estic aquí per ajudar-te! 🚀

Sí, TCPView és una eina de Sysinternals per a Windows. És una aplicació gràfica que mostra una llista detallada de totes les connexions TCP i UDP actives al teu sistema, incloent-hi les adreces IP locals i remotes, els ports i l’estat de la connexió. És molt útil per monitoritzar i diagnosticar problemes de xarxa.

Pots descarregar TCPView des del lloc web de Sysinternals, que és part de Microsoft. Aquí tens l’enllaç per a més informació i descàrrega: TCPView.

Copiar entrada de text al porta-papers

script

function copiarAlPortaRetalls() {
            var text = document.getElementById("entrada").value;
            console.log("Text a copiar:", text); 
            navigator.clipboard.writeText(text).then(function() {
                alert("Text copiat al porta-retalls!"); });
        }    

function copiarAlPortaRetalls() {
// Declara una funció anomenada copiarAlPortaRetalls.

var text = document.getElementById("entrada").value;
// Obté el valor de l'element HTML amb l'ID "entrada" i l'emmagatzema a la variable 'text'.

console.log("Text a copiar:", text);
// Mostra el text a copiar a la consola del navegador per a depuració.

navigator.clipboard.writeText(text).then(function() {
    // Utilitza l'API del porta-retalls per copiar el text. Si la còpia és exitosa, executa la funció dins del 'then'.

    alert("Text copiat al porta-retalls!");
    // Mostra una alerta a l'usuari indicant que el text s'ha copiat correctament al porta-retalls.
});

}

Variables d’entorn

Clic inici esquerro i cerca “Variables d’entorn” o escriu “Editar variables d’entorn del sistema” i selecciona l’opció. A la finestra Propietats del sistema, fes clic al botó Variables d’entorn… (a la part inferior). A la secció de Variables del sistema, busca i selecciona la variable anomenada ‘Path‘ i fes clic a Editar. A la nova finestra, fes clic a Nou i afegeix la següent ruta:

Les variables d’entorn en un sistema com Windows són valors que poden afectar el comportament dels programes i aplicacions. Aquestes variables són essencials per al sistema operatiu i permeten que les aplicacions es comuniquin entre elles i amb el sistema.

Alguns exemples de variables d’entorn són:

  • %USERNAME%: retorna el nom de l’usuari actualment connectat al sistema.
  • %COMPUTERNAME%: retorna el nom de l’equip.
  • %WINDIR% o %SYSTEMROOT%: directoris d’instal·lació de Windows (generalment “C:\Windows”).

Aquestes variables es poden utilitzar per a tasques de manteniment, creació de scripts o automatització de tasques. També és possible crear les teves pròpies variables d’entorn per personalitzar el sistema segons les teves necessitats.

Activar Synology Driver Clent

  1. Configura Synology Drive Client:
    • Obre l’aplicació Synology Drive Client.
    • Fes clic a “Iniciar sessió” i introdueix el QuickConnect ID, l’adreça IP o el nom de domini del teu NAS.
    • Introdueix el teu nom d’usuari i contrasenya del NAS i fes clic a “Següent”.

Vaig a fer una prova: carrego una script

PIP (Python Package Installer)

En el context de Synology, PIP fa referència a “Python Package Installer”. És una eina utilitzada per instal·lar i gestionar paquets de Python.

Per instal·lar el paquet PIP, s’ha de crear en un entorn virtual al directori d’instal·lació, ja que en el directori principal de Synology podria entrar en conflicte. Un entorn virtual és una eina que permet crear un espai aïllat dins del teu sistema on pots instal·lar paquets i dependències específiques per a un projecte de Python, sense afectar altres projectes o el sistema global. Això és especialment útil per gestionar diferents versions de paquets i evitar conflictes entre projectes.

Crear entorn virtual:

  • cd /volume1/web/0-python
  • sudo python3 -m venv ent_virt_mut
  • source ent_virt_mut/bin/activate
  • Si estas al directori

La comanda dependències

crea un entorn virtual, però no instal·la dependències per si mateixa

python3 -m venv ent_virt_mut

Si hi ha, problemes aquesta comanda sebla que ho pot arreglar.

Si ens convingues esborra un espai virtual:

  • sudo rm -rf ent_virtual_mut. Assegura’t que estàs en el directori correcte abans d’executar la comanda.

Ara ja podem instal·lar el modul PIP:

  • sudo pip install requests (instal·la)
  • pip list
  • deactivate
  • Actualitzacio: /volume1/web/0-python/ent_virt_mut/bin/python3 -m pip install –upgrade pip
urqtejmi@syn_beseit:/volume1/web/0-python$ python3 --version
Python 3.8.15
urqtejmi@syn_beseit:/volume1/web/0-python$

(ent_virt_mut) urqtejmi@syn_beseit:/volume1/web/0-python/ent_virt_mut$
pip --version                                                                                                                                                          
pip 24.2 from /volume1/web/0-python/ent_virt_mut/lib/python3.8/site-packages/pip   

Aplicació web “Hello, Flask!”. Guia

HELLO, FLASK

Quan combines Flask amb Gunicorn en un entorn virtual, estàs creant una aplicació web que pot gestionar múltiples peticions de manera eficient, cosa que és essencial per a aplicacions en producció. Això implica configurar el servidor, gestionar les dependències i assegurar-te que l’aplicació funcioni correctament en un entorn controlat.

1. Crear un Entorn Virtual

Comença creant un entorn virtual per a la teva aplicació. Això aïlla les dependències de la teva aplicació del sistema global de Python.

python3 -m venv /volume2/web/0-python/ent_virt_mut/

2. Activar l’Entorn Virtual

Activa l’entorn virtual.

3. Instal·lar les Dependències

  • Linux/MacOS: source /volume2/web/0-python/ent_virt_mut/bin/activate

3. Instal·lar dependenciències

Instal·la Flask i gunicorn dins de l’entorn virtual.

pip install flask gunicorn

(ent_virt_mut2) urqtejmi@synology_vall:/volume2/web/0-python$ pip install flask gunicorn
Collecting flask
Using cached flask-3.0.3-py3-none-any.whl (101 kB)
Collecting gunicorn
Downloading gunicorn-23.0.0-py3-none-any.whl (85 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.0/85.0 KB 406.6 kB/s eta 0:00:00
Collecting importlib-metadata>=3.6.0
Using cached importlib_metadata-8.4.0-py3-none-any.whl (26 kB)
Collecting Jinja2>=3.1.2
Using cached jinja2-3.1.4-py3-none-any.whl (133 kB)
Collecting Werkzeug>=3.0.0
Using cached werkzeug-3.0.4-py3-none-any.whl (227 kB)
Collecting itsdangerous>=2.1.2
Using cached itsdangerous-2.2.0-py3-none-any.whl (16 kB)
Collecting blinker>=1.6.2
Using cached blinker-1.8.2-py3-none-any.whl (9.5 kB)
Collecting click>=8.1.3
Using cached click-8.1.7-py3-none-any.whl (97 kB)
Collecting packaging
Downloading packaging-24.1-py3-none-any.whl (53 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.0/54.0 KB 490.7 kB/s eta 0:00:00
Collecting zipp>=0.5
Using cached zipp-3.20.1-py3-none-any.whl (9.0 kB)
Collecting MarkupSafe>=2.0
Using cached MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26 kB)
Installing collected packages: zipp, packaging, MarkupSafe, itsdangerous, click, blinker, Werkzeug, Jinja2, importlib-metadata, gunicorn, flask
Successfully installed Jinja2-3.1.4 MarkupSafe-2.1.5 Werkzeug-3.0.4 blinker-1.8.2 click-8.1.7 flask-3.0.3 gunicorn-23.0.0 importlib-metadata-8.4.0 itsdangerous-2.2.0 packaging-24.1 zipp-3.20.1
WARNING: You are using pip version 22.0.4; however, version 24.2 is available.
You should consider upgrading via the ‘/volume2/web/0-python/ent_virt_mut2/bin/python3 -m pip install –upgrade pip’ command.
(ent_virt_mut2) urqtejmi@synology_vall:/volume2/web/0-python$

Per actualitzar pip a la versió més recent, pots fer-ho amb la següent comanda:

/volume2/web/0-python/ent_virt_mut/bin/python3 -m pip install –upgrade pip

4. Instalar les llibreries Necessàries: pip install flask

5. Desactivar l’Entorn Virtual: deactivate

Verifica que l’entorn virtual s’ha creat correctament: ls /volume2/web/0-python/ent_virt_mut2

urqtejmi@synology_vall:/volume2/web/0-python$ ls /volume2/web/0-python/ent_virt_mut2 on hi ha els fitxers o directoris: bin, include, lib, lib64, pyvenv.cfg

ComandesComandes WSL, UNIX, LINUX..Comandes

Aquí es fa una mostra de comandes que es van usant

  1. sudo chmod -R 777 /volume2. La comanda sudo és una abreviació de “superuser do” o “switch user do”. Es tracta d’una comanda que permet als usuaris executar tasques amb privilegis d’administrador o superusuari (root) en sistemes Unix i Linux.Quan utilitzes sudo, introdueixes la teva contrasenya per demostrar que tens permisos per realitzar una acció específica. Això és útil per a tasques que requereixen permisos especials, com instal·lar paquets, modificar fitxers de sistema o executar comandes que afecten tot el sistema. La comanda chmod -R 777 és una comanda que s’utilitza per canviar els permisos d’un fitxer o directori en sistemes Unix i Linux.
  2. ———–
  3. Canviar el nom d’un fitxer: mv /volume2/dateutil_env/wsgi.py /volume2/dateutil_env/wsgi-old.py
  4. ——————-
  5. Moure el fitxer: mv /volume2/web/0-python/test_app.py /volume2/dateutil_env/

ASGI vs. WSGI (Enllaç)

2. Trobar on és un fitxer per exemple apache2.4-> ls -la /var/packages/Apache2.4/

urqtejmi@synology_vall:/volume2/dateutil_env$ ls -la /var/packages/Apache2.4/
total 64

  • Entrar en un entorn virtual: Navega fins al directori de l’entorn virtual:cd /volume2/dateutil_env (per exemple poden haver molts entorns virtuals)
  • Activa l’entorn virtual:source bin/activate Després d’activar l’entorn, el prompt de la línia de comandes hauria de canviar per indicar que estàs dins de l’entorn virtual, per exemple: urqtejmi@synology_vall:/volume2/dateutil_env$ source bin/activate
  • (dateutil_env) urqtejmi@synology_vall:/volume2/dateutil_env$ i per sortir :(dateutil_env) urqtejmi@synology_vall:/volume2/dateutil_env$ deactivate urqtejmi@synology_vall:/volume2/dateutil_env
  • ——————————————————————————
  • Cerca un fitxer: Un cop connectat, utilitza la comanda find per buscar el fitxer o la carpeta dateutil_env. Per exemple: find / -name "dateutil_env" es pot delimitar la recerca find /volume2. Si hi ha problemes amb els permisos: sudo find /volume2 -name "dateutil_env"
  • Què es un entorn Virtual? Un entorn virtual és un espai digital simulat on els usuaris poden interactuar amb objectes, eines i informació, sovint de manera remota o a través de dispositius electrònics1. En el context de la programació, un entorn virtual de Python és una eina que ajuda a mantenir les dependències necessàries per a un projecte en un lloc aïllat, evitant conflictes amb altres projectes.

IDE

Un IDE (Entorn de Desenvolupament Integrat) és una aplicació de programari que proporciona als desenvolupadors d’aplicacions un conjunt d’eines per escriure, editar, depurar i provar codi de manera eficient. Un IDE integra diverses eines de desenvolupament en una única interfície, cosa que facilita i agilita el procés de desenvolupament de programari.

Components típics d’un IDE:

  1. Editor de codi: Un editor de text avançat on els desenvolupadors escriuen el codi. A diferència d’un editor de text senzill, l’editor de codi d’un IDE sovint inclou funcions com l’autocompletat de codi, el ressaltat de sintaxi, i la identificació d’errors en temps real.
  2. Depurador (Debugger): Una eina que permet als desenvolupadors executar el seu codi pas a pas per identificar i corregir errors. El depurador permet pausar l’execució del codi, inspeccionar variables, i veure el flux del programa.
  3. Compilador o intèrpret: Si es tracta d’un llenguatge de programació compilat, l’IDE inclou un compilador per convertir el codi font en codi executable. Si el llenguatge és interpretat (com Python), l’IDE utilitza un intèrpret per executar el codi.
  4. Gestió de projectes: Una funcionalitat per organitzar fitxers i carpetes relacionades amb un projecte de programació. Això inclou la gestió de dependències, biblioteques i recursos.
  5. Integració amb sistemes de control de versions: L’IDE sovint inclou eines per treballar amb sistemes de control de versions com Git, permetent als desenvolupadors gestionar el codi font, fer seguiment de canvis i col·laborar amb altres programadors.
  6. Suport per a proves (Testing): Eines per executar proves automàtiques per garantir que el codi funciona com s’espera.
  7. Emuladors o entorns d’execució: Alguns IDEs inclouen emuladors per provar aplicacions en diferents entorns, com ara aplicacions mòbils en dispositius virtuals.

Avantatges d’utilitzar un IDE:

  • Eficiència: Un IDE agrupa totes les eines necessàries en una única interfície, la qual cosa estalvia temps i millora la productivitat.
  • Facilitat d’ús: Molts IDEs ofereixen assistència per al desenvolupament, com l’autocompletat de codi, suggeriments de funcions i documentació integrada.
  • Depuració avançada: Les eines de depuració d’un IDE permeten trobar i corregir errors de manera més ràpida i precisa.
  • Organització: L’IDE ajuda a mantenir els projectes organitzats, cosa que és especialment útil en projectes grans.

PyCharm, com hem comentat abans, és un exemple d’IDE específic per al desenvolupament en Python, però hi ha molts altres IDEs per a diferents llenguatges i plataformes, com ara Visual Studio per a C# o IntelliJ IDEA per a Java.

Resum de “Programación en Python Desbloqueada para Principiantes”

  • Instal·lar Python al teu sistema. en el cas de Synology només cal instal·lar el paquet y comprovar la instal·lació

urqtejmi@synology_vall:~$ python –version
Python 3.8.15
urqtejmi@synology_vall:~$


  • A continuació, passarem a la instal·lació de PyCharm. tinc instal·lada al windows 11 la versio PyCharm

PyCharm 2023.1.3 (Professional Edition)
Build #PY-231.9161.41, built on June 20, 2023

Què és PyCharm?

PyCharm és un dels IDEs més populars per al desenvolupament en Python. Ofereix una gran varietat de funcionalitats que ajuden els desenvolupadors a escriure, executar, i depurar codi de manera eficient. Algunes de les seves característiques clau inclouen:

  • Autocompletat de codi: Suggeriments intel·ligents mentre escrius codi.
  • Depuració: Eines per trobar i corregir errors en el codi de manera visual.
  • Integració amb sistemes de control de versions: Suport per a Git, Mercurial, etc.
  • Entorn de proves: Suport per a frameworks de proves com unittest, pytest, etc.
  • Refactorització: Eines per reorganitzar codi sense canviar la seva funcionalitat.
  • Suport per a frameworks web: Com Django, Flask, etc.
  • Gestió de paquets: Integració amb pip i altres eines de gestió de paquets.

Si tens algun dubte sobre PyCharm o necessites més informació sobre un tema relacionat, estaré encantat d’ajudar-te!