Comandos Linux de información del sistema

Post recuperado de LinuxAll…

Valencia, 19/12/2016

En el Blog Desdelinux hay un muy interesante artículo que nos muestra unos ‘cuántos’ comandos GNU/Linux que deberíamos conocer. Además, están bien clasificados. Este es el enlace: http://blog.desdelinux.net/mas-de-400-comandos-para-gnulinux-que-deberias-conocer/
Yo voy a incluirlos en LinuxAll por partes y -siempre que sea posible- con el ejemplo de código, es decir, las líneas de salida. Así, intentaré aprendérmelos todos, o al menos lo intentaré…
Empiezo por los comandos GNU/Linux de información del sistema.

arch mostrar la arquitectura de la máquina
guillermo@guillermo-OptiPlex-GX520:~$ arch
i686

uname -m mostrar la arquitectura de la máquina
guillermo@guillermo-OptiPlex-GX520:~$ arch
i686


uname -r mostrar la versión del kernel usado

guillermo@guillermo-OptiPlex-GX520:~$ arch
i686

dmidecode -q mostrar los componentes (hardware) del sistema
Necesita permisos de superusuario (sudo dmidecode -q) No adjunto resultado porque son muchas líneas de salida mostrando todos los componentes

hdparm -i /dev/sda mostrar las características de un disco duro. Necesita permisos de superusuario (sudo hdparm -i /dev/sda)
/dev/sda:

 Model=ST3200822A, FwRev=3.02, SerialNo=5LJ0Y653
 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=8
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=390721968
 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: ATA/ATAPI-6 T13 1410D revision 2:  ATA/ATAPI-1,2,3,4,5,6

 * signifies the current active mode

hdparm -tT /dev/sda realizar prueba de lectura en un disco duro. Necesita permisos de superusuario (sudo):
guillermo@guillermo-OptiPlex-GX520:~$ sudo hdparm -tT /dev/sda
[sudo] password for guillermo: 

/dev/sda:
 Timing cached reads:   1836 MB in  2.00 seconds = 918.58 MB/sec
 Timing buffered disk reads: 178 MB in  3.02 seconds =  58.88 MB/sec

cat /proc/cpuinfo mostrar información de la CPU
(No muestro líneas de salida porque son demasiadas)

cat /proc/interrupts mostrar las interrupciones
(No muestro líneas de salida porque son demasiadas)

cat /proc/meminfo verificar el uso de memoria
(No muestro líneas de salida porque son demasiadas)

cat /proc/swaps mostrar ficheros swap
guillermo@guillermo-OptiPlex-GX520:~$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sdb5                               partition 3133436 165756 -1

cat /proc/version mostrar la versión del kernel
guillermo@guillermo-OptiPlex-GX520:~$ cat /proc/version
Linux version 3.2.0-119-generic (buildd@lgw01-42) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #162-Ubuntu SMP Tue Dec 6 14:02:25 UTC 2016

cat /proc/net/dev mostrar adaptadores de red y estadísticas

(No muestro líneas de salida porque son demasiadas)

cat /proc/mounts mostrar el sistema de ficheros montado
(No muestro líneas de salida porque son demasiadas)

lspci -tv mostrar los dispositivos PCI
(No muestro líneas de salida porque son demasiadas)

lsusb -tv: mostrar los dispositivos USB
guillermo@guillermo-OptiPlex-GX520:~$ lsusb -tv
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 2: Dev 3, If 0, Class=HID, Driver=usbhid, 1.5M
    |__ Port 2: Dev 3, If 1, Class=HID, Driver=usbhid, 1.5M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
    |__ Port 3: Dev 3, If 0, Class=stor., Driver=usb-storage, 480M
    |__ Port 8: Dev 4, If 0, Class=hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 5, If 0, Class=stor., Driver=usb-storage, 480M

date mostrar la fecha del sistema
guillermo@guillermo-OptiPlex-GX520:~$ date
lun dic 19 00:36:59 CET 2016

cal 2016 mostrar el calendario de 2016
(No muestro líneas de salida porque son demasiadas)

cal 12 2016 mostrar el calendario para el mes diciembre de 2016
guillermo@guillermo-OptiPlex-GX520:~$ cal 12 2016
   Diciembre 2016     
do lu ma mi ju vi sá  
             1  2  3  
 4  5  6  7  8  9 10  
11 12 13 14 15 16 17  
18 19 20 21 22 23 24  
25 26 27 28 29 30 31 

date 041217002016.00 colocar (declarar, ajustar) fecha y hora. (Nota para mí: Comprobar formato fecha)

clock -w guardar los cambios de fecha en la BIOS

Gestor de actualizaciones de Ubuntu Linux

Post recuperado de LinuxAll…

Valencia, 15/12/2016, G.B.

Una de las enormes ventajas de utilizar sistemas operativos libres, open source, es la constante ‘puesta a punto’ del sistema. Las actualizaciones corrigen errores (bugs), instalan nuevas características y mejoran las existentes. (El vídeo siguiente no tiene nada que ver con el gestor de actualizaciones de Ubuntu, pero me ha apetecido insertarlo para probar los vídeos gratuitos de Pixabay…).

Utilizando un gestor de actualizaciones los paquetes de software se instalan con todas las dependencias necesarias, es decir, con todos los ‘subprogramas’ y actualizaciones de los mismos para que la actualización de tu distro Linux y el software que hayas ido instalando sea ‘sólido‘, estable…
Todas las distribuciones GNU/Linux gozan de esta característica. En Ubuntu Linux disponemos del Gestor de actualizaciones: Aplicaciones -> Herramientas del sistema -> Administración -> Gestor de actualizaciones. También podemos buscarlo directamente desde el menú de Unity, si es que utilizamos eses entorno de escritorio.

Personalmente me decanto más por el sistema de escritorio Gome y por distros algo más ‘antiguas’, ya que utilizo máquinas con menos recursos. Eso es otra de las ventajas de trabajar con distribuciones Linux…

Adjunto captura de pantalla del proceso de actualización, algo muy sencillo de realizar, aunque el propio sistema ‘te avisa’ de las actualizaciones disponibles. Aquí está la captura de pantalla (Ubuntu 12.04 con entorno de escritorio Gnome):

Cambiar el orden de arranque en sistemas duales con Ubuntu

Post recuperado de LinuxAll…

Valencia, 11/12/2016, G.B.

Bueno, ya sé que esto es un ‘clásico’, pero quería dejar constancia de ello aquí, ya que cada vez que instalo varios sistemas operativos en un ordenador y uno de ellos está basado en una distro Linux, me toca volver a buscar la información. 
Me refiero a cambiar el orden de arranque cuando en una máquina tenemos varios sistemas operativos instalados, por ejemplo, un Windows y un Linux. En mi caso, Windows 7 y Ubuntu 10.04, el cual he vuelto a instalar porque me gusta mucho, a pesar de ser una distribución Linux obsoleta ya, por desgracia… Pero en máquinas ‘viejecitas‘, va realmente bien si podemos ajustarlo un poco… Bien, vayamos al grano:

Para cambiar el orden de arranque cuando tenemos instalado el gestor de arranque Grub2, podemos hacerlo vía terminal o consola; no hay otra opción si utilizamos una distro Linux que ya no se actualiza, como la mencionada Ubuntu 10.04. Estos son los pasos a seguir:

1) Abrir la terminal o consola (podemos hacerlo con la secuencia de teclas Control + Alt + T):

2) Tecleamos la siguiente orden como superusuario: sudo gedit /etc/default/grub 
Con ello abriremos el archivo de configuración de arranque de Grub con el editor gedit (podemos utilizar el que más nos guste). Este es el mío (ya modificado):

# If you change this file, run ‘update-grub’ afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=6
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=20
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=»quiet splash»
GRUB_CMDLINE_LINUX=»»
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo’
#GRUB_GFXMODE=640×480
# Uncomment if you don’t want GRUB to pass «root=UUID=xxx» parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_LINUX_RECOVERY=»true»
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE=»480 440 1″

La línea que debemos cambiar es en donde aparece GRUB DEFAULT= y un número que empieza en cero, equivalente al sistema operativo que arrancará en primer lugar por defecto. Si hemos visto cuál es el orden de los sistemas operativos y opciones de arranque que aparece en la pantalla de inicio, contaremos (empenzando por cero, repito) y pondremos la cifra del sistema que queramos que sea el de arranque por defecto (DEFAULT). En mi caso es el séptimo listado, por lo que cambiaré el 0 a 6 en la línea, quedando GRUB DEFAULT=6.

También podemos cambiar el tiempo de espera hasta que se inicia el sistema operativo por defecto. Los valores son en segundos (GRUB TIMEOUT=). Yo lo he cambiado a 20, como podéis ver en las líneas de código de arriba (subrayado en amarillo).

3) Actualizamos el archivo de configuración con la siguiente orden: sudo update-grub   y listo! Dejo una captura de pantalla al respecto:

Cambiar el orden de arranque en sistemas duales con Ubuntu

La próxima vez que arranquemos nuestro ordenador, veremos que está seleccionado el orden de arranque que hemos elegido.

Aumentar la memoria en Linux con unidades Flash

Aumentar la memoria en Linux con unidades Flash
Post recuperado de LinuxAll…

Para ampliar la memoria de intercambio (swap) en Linux, podemos utilizar memorias flash (pendrives o memorias USB, tarjetas SD, microSD, etc.), al igual que se utiliza en sistemas Windows (a partir de Windows 7) con la tecnología ReadyBoost.

Para poder ‘ampliar’ la memoria de intercambio de nuestra máquina, primero podemos formatear la unidad flash como swap, si es que queremos utilizarla permanentemente: ¿Cómo? Podemos hacerlo con comandos o con algún programa editor de particiones, como por ejemplo GParted (Gnome Partition Editor).

Un ejemplo en el que ya se ha creado la partición swap en una tarjeta microSD de 4GB, la cual vamos a utilizar como memoria virtual o de intercambio:

Aumentar la memoria en Linux con unidades Flash
Luego, en la terminal o consola, damos las siguientes órdenes:
1) Activar la nueva memoria SWAP (memoria de intercambio) con prioridad alta:
# swapon -p 32767 /dev/sdd1 (nomenclatura que haya sido asignada por el sistema a la memoria flash, en este ejemplo sdd1)
2) Para comprobar si funciona y está activa:
# cat /proc/swaps
3) Para desactivarla:
# swapoff /dev/sdd1
Con ello ya tenemos una memoria ‘intermedia’ más en nuestro sistema GNU/Linux que aumentará sensiblemente el rendimiento de nuestra máquina. Eso sí, deberemos activarla cada vez que reiniciemos nuestro ordenador, o hacer un script para ello.

Enlaces recomendados al respecto:
– How to: ReadyBoost with Ubuntu Linux
– ReadyBoost en Ubuntu Linux

Cuidado con los cambios de URLs amigables en PrestaShop

Post recuperado de KnowHow…

Cuidado con los cambios de URLs amigables en PrestaShop
Valencia, 04/11/2016, G.B.
El otro día unos amigos me pidieron ayuda para solventar un problema con una tienda online realizada en la plataforma de e-commerce PrestaShop. En concreto, el fallo era que no les funcionaba el carrito de compras. El error que daba era demasiadas redirecciones cuando se accedía al carrito de compras. La tienda online estaba ‘trasladada’ de una versión en castellano a otra idioma.
¿La solución? Simplemente corregir las URLs amigables en la sección SEO y URLs de PrestaShop (si no recuerdo mal). La persona que había traducido las URLs había repetido la URL amigable (SEO Friendly) del carrito (cart.php) y la compra (order.php).

Con la eliminación de la repetición de la URL amigable a los buscadores y la restauración del nombre original del la página de pedido (order.php) se solucionó el problema. Así de fácil. Hasta pronto!

Macros en Libreoffice Base

libreoffice

Un post incompleto, por ahora…


Post recuperado de KnowHow…

Valencia, 27/10/2016, G.B.  

Adjunto -para mí- una serie de macros de LibreOffice Base, la alternativa gratuita a Microsoft Access, para abrir y cerrar formularios a través de un botón. Volveré sobre este post para explicarlo con más calma y detalle; ahora es simplemente para que no se me olvide.

Aquí van los códigos VBScript de las macros en LibreOffice Base, el gestor de bases de datos libre de LibreOffice:


BOTÓN PARA ABRIR FORMULARIO1

REM ***** BASIC *****
Sub OpenForm_FORMULARIO1
const sNewDocumentName=»FORMULARIO1″
oNewFormDocument=ThisDatabaseDocument.FormDocuments.getbyname(sNewDocumentName).open
End Sub
BOTÓN PARA CERRAR FORMULARIO1
REM ***** BASIC *****
Sub CloseForm_FORMULARIO1
const sNewDocumentName=»FORMULARIO1″
oNewFormDocument=ThisDatabaseDocument.FormDocuments.getbyname(sNewDocumentName).close
End Sub

Solución fallo editor visual en WordPress (tinymce)

Solución fallo editor visual en WordPress (tinymce)
Post recuperado de KnowHow…

Valencia, 22/10/2016, G.B.

Hace un par de días volví a encontrarme con un error en una web bajo WordPress, en concreto un fallo en el editor visual del CMS. El problema es que no se cargaba el editor visula, solo el editor de texto o HTML. 

De vez en cuando suceden estas cosas, estos inconvenientes. ¿La solución y cuál es la causa? Hay varias, tanto soluciones como causas. Puede ser una actualización del WordPress, de plugins o de temas. También pudiera ser un ‘ataque’, aunque eso suele ser mucho menos habitual. En cuanto a las soluciones, paso a comentarlas:
1) Desactivar todos los plugins y ver si se resuelve el problema. Si es así, ir activando uno a uno los plugins hasta comprobar cuál da el error, que generalmente es debido a código JavaScript o su ‘variante’ JQuery.
2) Probar con otro tema o plantilla de WordPress, ya que tras una actualización ‘drástica’, es decir, de todo el sistema de WordPress, puede que tu tema o plantilla instalado no sea compatible con la última versión del CMS o gestor de contenidos
3) Machacar el directorio wp-includes/js/tinymce con la misma versión de WordPress que tienes instalada
4) Esta, que es la que ha solucionado el último error que me he encontrado con la weblog de un amigo, es insertar una pequeña línea de código en el archivo de configuración de tu WordPress (wp-aconfig.php). Desde aquí agradezco la información que he encontrado en este enlace del blog de Aner Barrena.

Yo ya había probado las soluciones mencionadas y alguna más, pero en micaso concreto esa es la que me ha funcionado se trata de añadir la siguiente línea de código en el archivo wp-config.php, ubicado en el directorio raíz de nuestra instalación de WordPress. Aunque la entiendo, nunca se me hubiera ocurrido… Copio y pego del post mencionado:

Solución sencilla: Editamos nuestro wp-config.php y añadimos la siguiente línea

‘define(‘CONCATENATE_SCRIPTS’, false );‘
//LINEA ANTERIOR
if ( !defined(‘ABSPATH’) )
 define(‘ABSPATH’, dirname(__FILE__) . ‘/’);

//LINEA A AÑADIR
define(‘CONCATENATE_SCRIPTS’, false );

Con eso tendremos solucionado el error. Mil gracias desde aquí al blog http://www.anerbarrena.com/.

Vuelve el SEO…

Una e-reflexión… y aprovecho para subir otra imagen de la NASA…

Fuente imagen: http://apod.nasa.gov/apod/ap160418.html
Fuente imagen: http://apod.nasa.gov/apod/ap160418.html
Post recuperado de KnowHow…

Valencia, 13/10/2016, G.B.

Parece ser, según dicen los ‘expertos’ y ‘gurús’ que el SEO (Search Engine Optimization), el conjunto de técnicas y acciones encaminadas a que una web aparezca en los principales motores de búsqueda en las primeras posiciones con determinadas palabras clave o frases clave, está resurgiendo, tras un letargo propiciado por el interés casi enfermizo por las redes sociales;  nunca hay que perder los orígenes, las bases, los cimientos. Con ellos siempre podremos construir cosas nuevas con un sólido apoyo, hasta que ese apoyo haya evolucionado lo suficiente parapoder sustituirlo por otro mejor.

Las redes sociales han supuesto un punto de inflexión, un cambio radical, pero basarlo todo en ellas sospecho que es un error, un pan de hoy para hambre de mañana. ¿Por qué? Pues porque en general no nos pertenecen, pertenecen a empresas privadas con intereses claros.

En mi opinión -y creo que en la de muchos- el SEO es una de las bases de la Red, junto con el también casi denostado HTML y los protocolos propios de Internet, las ‘entrañas’ de la web. Y eso, aunque debe mejorar con el tiempo, no tendría que desaparecer de la noche a la mañana, de la misma forma en que no desaparece nuestro alfabeto o nuestra gramática, aunque vaya evolucionando con el paso de los años, poquito a poco.

En fin, me alegro que a las cosas importantes, las cosas ‘duraderas’, se les dé la importancia que merecen, sin menospreciar nuevas -por utilizar un adjetivo más cercano- acciones, nuevas técnicas, nuevas aproximaciones. Al fin y al cabo, el mensaje es lo que importa, pero también cómo, a quién y a cuántos llega, y si llega, que resultado tiene, ¿no? No es algo nuevo, pero sí algo que se renueva día a día. Nada más.

P.D. Aprovecho al temática cósmica de la imagen para insertar este vídeo que no hace falta presentar…

Variety, fondos de escritorio gratuitos en tu distro Linux

Variety, fondos de escritorio en tu Linux
Post recuperado de LinuxAll…

Valencia, 08/10/2016, G.B.

Hace tiempo que no me pasaba por aquí y lo hago ahora para hablar de una pequeña aplicación, un accesorio para distros Linux que muestra fondos de escritorio ‘aleatorios’ con una periodicidad que tú mismo defines. Se trata de ‘Variety‘ y puedes instalarlo desde los repositorios de Linux o distintos ‘centros de software’ de distribuciones Linux.  Puedes descargar y visualizar fotos impresionantes de distintas fuentes y temáticas, como por ejemplo de la NASA.

«Variety is an open-source wallpaper changer fot Linux«, como afirma su creador desde la web oficial de Variety.

Yo lo he probado con una distro Ubuntu 12.x y me ha gustado mucho. Variety te permite eligir las fuentes de donde descargar las imágenes para que ‘decoren’ tu escritorio Linux. Además, te permite guardarlas y añadir las propias, como por ejemplo, las de la carpeta imágenes. Y si te gustan las citas, también puedes incluirlas en el escritorio, además de un gadget de hora.

Si utilizáis Linux, os lo recomiendo. Hasta pronto!

Una buena noticia de Avaaz sobre la neutralidad de la Red

Post recuperado de KnowHow…

Una buena noticia de Avaaz sobre la neutralidad de la Red
Valencia, 08/09/2016
Aunque no suelo hacer esto, embeber un artículo de otra fuente, en este caso he decidido hacerlo. Se trata de una nota de la organización Avaaz congratulándose de la victoria sobre las grandes corporaciones para conseguir una Internet realmente neutral, de ‘una sola velocidad para todos‘.

Desde aquí, mi enhorabuena por la constancia y el trabajo realizado para conseguir una Internet más libre para todos. Aquí va la información recibida en mi buzón de correo:

Querido movimiento de Avaaz:
Durante 7 años hemos luchado contra los gigantes corporativos para salvar Internet, ¡¡y parece que HEMOS GANADO!!Primero lo hicimos en EE.UU., después en Brasil e India, y esto es lo que nos ha dicho ahora el principal funcionario francés (y voto decisivo) antes de anunciar la semana pasada la ley europea que protegerá el Internet de quinientos millones de personas:

Sebastien Soriano
«Debo confesar que algunos de los tuits y mensajes que recibí me conmovieron… Gente pidiéndome ‘Salvar Internet’ y ‘Detener el secuestro corporativo’… Quería darles una respuesta de verdad».
— Sebastien Soriano, director de la agencia reguladora francesa de Internet (ARCEP)

Las autoridades que anunciaron la ley mostraron gráficas con un número sin precedentes de comentarios por parte del público – 640 por minuto, ¡la gran mayoría de miembros de Avaaz!
Las empresas querían un Internet rápido para los mega ricos y uno lento para el resto. Nosotros luchamos por el principio de «neutralidad de la red» – ¡un Internet igual para todos!
Fue una lucha mundial que se desarrolló a lo largo de 7 años en 4 continentes:

Net Neutrality US

Estados Unidos – ¡fuimos 2,5 millones los que nos unimos al senador estadounidense que amenazaba con impedir el debate leyendo nuestras firmas en su turno de palabra en el Senado! El proyecto de ley se vino abajo. ¡VICTORIA!

Net Neutrality India

India – Avaaz se asocia con grupos de campañas nacionales y decenas de miles de nuestros miembros indios se unen a un llamamiento al ministro de Telecomunicaciones. ¡VICTORIA!

Net Neutrality Brazil

Brasil – Un gran número de diputados se une a nuestra campaña, consiguiendo que se apruebe el “Marco Civil” – la ley más avanzada del mundo en cuanto a protección de Internet. ¡VICTORIA!

Net Neutrality EU

Europa – Los gigantes de las telecomunicaciones lanzaron una gran ofensiva para encontrar vacíos legales en la ley de neutralidad de la red que tanto esfuerzo nos costó lograr. Los frenamos en seco. La prensa no acostumbra a contar historias felices, pero con esta noticia no pudieron contenerse. Lee más sobre esta última conquista del poder ciudadano en Reuters, Tagesspiegel, Politico, EFE, Euractiv y el Wall Street Journal. ¡VICTORIA!

Net Neutrality Media

Internet no es un asunto cualquiera. Nos otorga el poder de conectar de forma profunda con otros seres humanos. La desigualdad de la red habría canalizado ese poder hacia una minoría de ricos – sus páginas cargarían mucho más rápido y funcionarían mejor que las de pequeños negocios, las de los blogueros o las de organizaciones sin ánimo de lucro como Avaaz.
Pero hemos usado el poder de nuestra conexión para defender la conexión misma, y la neutralidad de la red es ahora el estándar para el uso de Internet en todo el mundo.
Además, es un símbolo de esperanza para todos los desafíos a los que se enfrenta el planeta. Porque, mientras permanezcamos unidos y conectados, podemos construir el mundo con el que todas y todos soñamos.
Con alegría y gratitud,
Ricken, Luis, Ben, Luca, Pascal, Emma, Fatima, Wissam y todo el equipo de Avaaz

PD: Avaaz solo puede hacer esto porque estamos financiados al 100% con pequeñas donaciones individuales — nada de dinero procedente de empresas, gobiernos, fundaciones o grandes donantes. Para que podamos continuar con nuestro trabajo a favor de la Libertad de Internet, haz tu contribución aquí: https://secure.avaaz.org/es/save_the_internet_donate/
* Y queremos dar un GRACIAS gigante y la ENHORABUENA a todos nuestros increíbles aliados implicados en la consecución de estas históricas victorias en cada país, en especial: Access Now, Digitale Gesellschaft, DemandProgress, EFF, EDRi, Fight for the Future, FreePress, Gilberto Gil, La Quadrature du Net, MoveOn, Save the Internet, World Wide Web Foundation, The Right to Know Campaign, ¡y muchísimos más!