viernes, 12 de abril de 2019

Firefox Quantum vs Chrome, ¿quién gana en un benchmark?




Hola amigos MATE&CODEros, como les va? hoy les traemos una pregunta que seguro muchos se hacen. ¿Cuál es mas rápido? ¿Firefox o Chrome?.

La verdad que como MOZILLERO a veces cuesta un poco ser objetivo, pero lamentablemente estos ultimos años Chrome estuvo por encima de Firefox, aún así, luego de la salida de Firefox Quantum me surgió la duda que tanto pudo haber mejorado Firefox respecto a la competencia (contra su versión anterior es claramente superior).

Las primeras impresiones de usarlo apenas salio fueron claras y me autocito "Gau! esto vuela!" y es la verdad, la gente de Mozilla hizo bien los deberes esta vez, pero aún así me parecio interesante buscar información respecto a Becnchmarkings de empresas que se dedican a hacer eso (ya que ahi ibamos a ver la verdad de la milanesa y no con una "prueba de impresión y reacción" que haya yo en mi casa xD)

Así que aquí abajo les dejo un extracto de Computer Hoy que me parece interesante...


"...Dejando a un lado los retoques en la interfaz, lo nuevo de Firefox Quantum está en las mejoras de rendimiento. Mozilla dice que la nueva versión de su navegador es hasta dos veces más potente que las anteriores actualizaciones de Firefox, y pone el foco en un aspecto muy polémico: dicen que es incluso más potente que el navegador Chrome de Google, algo de lo que muchos han intentado presumir hasta ahora. En Laptopmag han decidido comprobar si esto es cierto, y han hecho una comparativa entre Firefox Quantum y Chrome en las principales plataformas de benchmarking. La verdad es que el resultado no sorprende.

Tal y como coinciden en señalar los análisis de Firefox Quantum que ya están circulando por la red, efectivamente el nuevo navegador de Mozilla es más potente que Chrome. De las tres pruebas a las que han sometido a este navegador en Laptopmag, Firefox vence sobradamente en dos de ellas, y en la única en la que queda por detrás de Chrome lo hace con muy pocos puntos de diferencia. Además, en esta prueba también se evidencia la mejor optimización de recursos del nuevo navegador Quantum.

Prueba de rendimiento de Quantum

 En la prueba de WebXPRT 2015, la cual simula una determinada serie de tareas cotidianas, el navegador Firefox Quantum logra 491 puntos, por encima de los 460 que consigue el navegador de Google. En otra prueba de benchmark, la de JetStream 1.1, Quantum es bastante más rápido y consigue 183,1 puntos (cuanto más alto, mejor) en comparación a los 178,4 puntos de su competidor. La única prueba en la que pierde es la de Octane 2.0, con 35.148 puntos frente a los 35.622 de Chrome.

Por lo tanto, incluso las pruebas más imparciales están coincidiendo en que Mozilla ha hecho un excelente trabajo de optimización con Quantum. Y llega en un momento en el que muchos usuarios ya han empezado a cansarse de los problemas de consumo que genera en muchos PCs el navegador de Google. Puedes descargar el nuevo Firefox en este enlace.

..."


Luego de ese extracto y hasta mi experiencia personal puedo concluir que Firefox supera en todas las pruebas de Benchmarking a Chrome, y en la unica que no lo hace, queda muy muy cerca. Tiene un mejor manejo de memoria (cosa que a todos nos molesta cuando usamos Chorme es lo ambisioso y jodidamente codicioso que es), además de una nueva interfaz renovada y mas bonita.

Como contras, puedo decir que a mi parecer para el uso cotidiano, Chrome tiene extensiones mas interesantes, auque ojo, Firefox tiene opciones. Aún asi me siguen pareciendo mejores las de Chrome.

En fin, espero que esto haya sido al menos ALGO educativo y les aclare un poco el panorama a la hora de elegir o seguir elegiendo su navagador!!

SALUDOS!! :D







jueves, 11 de abril de 2019

Comentar lineas en SublimeText

Hola amigos, como les va? gustoso de volver a poder escribir algo para este blog!

Hoy les traigo algo sencillo, pero de tremenda utilidad para quienes escriben sus lineas de código en sublime text , y es la opción de poder comentar una o varias lineas con un simple atajo de teclado, independientemente del lenguaje que estemos escribiendo.

Para ello simplemente vamos a ir a "PREFERENCES --> Key Bindings"

y nos va a abrir una ventana como esta:


y nosotros en la ventana de la derecha (donde dice .... - user) vamos a agregar lo siguiente:


{ "keys": ["ctrl+1"], "command": "toggle_comment", "args": { "block": false } },
{ "keys": ["ctrl+shift+1"], "command": "toggle_comment", "args": { "block": true } },

 Guardamos con la combinación "ctrl+s" y ya podemos utilizar la combinación "ctrl + 1" para comentar nuestro código.

También podemos personalizarlo, cambiando entre llaves donde dice ctrl + 1 y poner la combinación de teclas que deseemos.

Al final nos va a quedar algo asi:


Me despido saludándolos muy afectuosamente y esperando que este sencillo "truquito" les haga la vida tan fácil como me la hace a mi. SALUDOS y que la fuerza los acompañe! B-)

jueves, 4 de abril de 2019

¿Cuál es el lenguaje mas popular?

Muchas veces, ya sea por simple y mera curiosidad o porque queremos elegir el mas popular para aprenderlo y dedicar nuestra vida profesional, nos hacemos esta pregunta (bueno, al menos yo me la vengo haciendo hace mucho). Y aunque seguramente no ha de ser fácil poder medir esto, la gente de TIOBE lleva una medida mes a mes acerca de los lenguajes mas populares del momento mas una indicación si en el ultimo mes crecieron en popularidad o bajaron.

Este dato me parece al menos por cuanto curioso y aquí les dejamos los el top 50 de lenguajes de programación del momento:

Mar 2019 Mar 2018 Change Programming Language Ratings Change
11
Java14.880%-0.06%
22
C13.305%+0.55%
34changePython8.262%+2.39%
43changeC++8.126%+1.67%
56changeVisual Basic .NET6.429%+2.34%
65changeC#3.267%-1.80%
78changeJavaScript2.426%-1.49%
87changePHP2.420%-1.59%
910changeSQL1.926%-0.76%
1014changeObjective-C1.681%-0.09%
1118changeMATLAB1.469%+0.06%
1216changeAssembly language1.413%-0.29%
1311changePerl1.302%-0.93%
1420changeR1.278%+0.15%
159changeRuby1.202%-1.54%
1660changeGroovy1.178%+1.04%
1712changeSwift1.158%-0.99%
1817changeGo1.016%-0.43%
1913changeDelphi/Object Pascal1.012%-0.78%
2015changeVisual Basic0.954%-0.79%

Arriba vemos el top 20 de lenguajes mas populares del momento y una comparativa con el mismo periodo del año pasado con el dato que antes mencionabamos en cuanto mejoró o bajo su popularidad.

Los 30 restantes los mostramos en la siguiente lista:

PositionProgramming LanguageRatings
21SAS0.929%
22PL/SQL0.734%
23Dart0.724%
24D0.618%
25Scratch0.549%
26COBOL0.522%
27Fortran0.472%
28Scala0.467%
29Lua0.418%
30Transact-SQL0.415%
31ABAP0.395%
32Lisp0.372%
33Prolog0.368%
34Scheme0.355%
35Rust0.310%
36Ada0.310%
37LabVIEW0.309%
38Logo0.296%
39Kotlin0.288%
40Ladder Logic0.241%
41Bash0.213%
42Julia0.210%
43Haskell0.207%
44Hack0.191%
45PowerShell0.180%
46Awk0.176%
47ML0.163%
48PL/I0.163%
49Erlang0.155%
50RPG0.152%

Sólo como dato curioso, me pareció interesante ver aún en el TOP 50 lenguajes que muchas veces se cree en desuso (para los que creen que son lenguajes muertos y no tendrían trabajo en caso de estudiarlos), como son el caso de Delphi/Object Pascal (aun en el top 20, aunque en caída), COBOL, FORTRAN, LISP, PROLOG, ADA. Lo que demuestra cada vez mas que uno debe aprender y programar en lo mas le guste, si es bueno, el trabajo va a aparecer ;).

Si quieren seguir leyendo abajo cito la fuente que se extrajo la información ya que al menos me parece una pagina curiosa e interesante para darle una leida. 

Luego de este sencillo post los saludo como siempre de forma muy afectuosa mis amigos MATEros y entusiastas de la tecnología ;).

FUENTE: https://www.tiobe.com/tiobe-index/

miércoles, 3 de abril de 2019

Listado de comandos útiles para la consola de Linux

Hola mi gente, ¿cómo les va? La idea de este post es sencilla pero seguro a mas de uno le va a servir (como a mi por ejemplo :P ) y es de armar una lista de todos los comandos útiles para la consola de Linux divididos en distintas categorías según su uso. Sin mas palabras, ¡VAMOS A ELLO!

MANEJO DE CARPETAS

  • Crear carpeta: $ mkdir nombre_carpeta
  • eliminar carpeta: $ rmdir nombre_carpeta
  • acceder a la carpeta: cd nombre_carpeta.
  • volver al directorio anterior, (al anterior sub nivel de la taxonomia): cd ..
 
  <continuará>

MANEJO DE PERMISOS

Tengan en cuenta que se necesitan permisos de súper usuario para poder hacer esto - recordamos que para esto ante ponemos el comando sudo o bien podemos ser usuarios root si ponemos su y la contraseña - .

Cambiar permisos en carpetas:

$ chmod xxx nombre_carpeta
ademas podemos agregar el comando -R para que repita la operación de forma recursiva para sus archivos y subdirectorios, y nos quedaría algo así:

$ chmod xxx -R nombre_carpeta

Comprendiendo códigos de permisos en Linux

En este extracto trataremos de explicar un poquito como se manejan los permisos en Linux y que significan las populares combinaciones 777, 775 o 764 entre otras y cuando utilizar cada una.

En los entornos Unix básicamente cada permiso tiene el siguiente valor:
  • Lectura: 4
  • Escritura: 2
  • Ejecución: 1

Debemos aprender a jugar con estas combinaciones números a fin de sacarle el máximo provecho a nuestra PC o el sistema que estemos operando y evitar acciones no deseadas (en resumen y en humano, en tu PC personal rara vez va a pasar algo raro, pero ojo con poner todo 777 en un servidor que salga al público):

Si deseamos establecer un permiso de escritura usaremos el 6 (4 + 2= Lectura + Escritura)

Si deseamos que un usuario pueda ejecutar usaremos el 7 (4 + 2 + 1= Lectura + Escritura + Ejecución)

Ahora contamos con la siguiente tabla de valores:
  • 0: Sin permisos
  • 1: Ejecución
  • 2: Escritura
  • 3: Lectura y escritura
  • 4: Lectura
  • 5: Lectura y ejecución
  • 6: Lectura y escritura
  • 7: Lectura, escritura y ejecución

PERMISOS MAS COMUNES


Citamos algunas combinaciones de números que hacen a los permisos mas utilizados comúnmente:

  • 777: De privilegios de escritura, lectura y ejecución a todos los usuarios.
  • 666: Permite que todos los usuarios puedan leer y escribir sobre un archivo/carpeta.
  • 755: Permite al propietario del archivo, ejecutar, leer y escribir el archivo y a los demás solo leer y escribir.
  • 644: Permite al propietario leer y escribir el archivo, pero no ejecutarlo; el resto solo puede leerlo.
  • 700: El propietario tiene acceso total al archivo (lectura, escritura y ejecución) mientras que el resto no tendrá ningún acceso.

Apagar (Reiniciar Sistema o Cerrar Sesión)

  1. shutdown -h now: apagar el sistema (1).
  2. init 0: apagar el sistema (2).
  3. telinit 0: apagar el sistema (3).
  4. halt: apagar el sistema (4).
  5. shutdown -h hours:minutes &: apagado planificado del sistema.
  6. shutdown -c: cancelar un apagado planificado del sistema.
  7. shutdown -r now: reiniciar (1).
  8. reboot: reiniciar (2).
  9. logout: cerrar sesión.


Archivos y Ficheros comprimidos

  1. bunzip2 file1.bz2: descomprime in fichero llamado ‘file1.bz2’.
  2. bzip2 file1: comprime un fichero llamado ‘file1’.
  3. gunzip file1.gz: descomprime un fichero llamado ‘file1.gz’.
  4. gzip file1: comprime un fichero llamado ‘file1’.
  5. gzip -9 file1: comprime con compresión máxima.
  6. rar a file1.rar test_file: crear un fichero rar llamado ‘file1.rar’.
  7. rar a file1.rar file1 file2 dir1: comprimir ‘file1’, ‘file2’ y ‘dir1’ simultáneamente.
  8. rar x file1.rar: descomprimir archivo rar.
  9. unrar x file1.rar: descomprimir archivo rar.
  10. tar -cvf archive.tar file1: crear un tarball descomprimido.
  11. tar -cvf archive.tar file1 file2 dir1: crear un archivo conteniendo ‘file1’, ‘file2′ y’dir1’.
  12. tar -tf archive.tar: mostrar los contenidos de un archivo.
  13. tar -xvf archive.tar: extraer un tarball.
  14. tar -xvf archive.tar -C /tmp: extraer un tarball en / tmp.
  15. tar -cvfj archive.tar.bz2 dir1: crear un tarball comprimido dentro de bzip2.
  16. tar -xvfj archive.tar.bz2: descomprimir un archivo tar comprimido en bzip2
  17. tar -cvfz archive.tar.gz dir1: crear un tarball comprimido en gzip.
  18. tar -xvfz archive.tar.gz: descomprimir un archive tar comprimido en gzip.
  19. zip file1.zip file1: crear un archivo comprimido en zip.
  20. zip -r file1.zip file1 file2 dir1: comprimir, en zip, varios archivos y directorios de forma simultánea.
  21. unzip file1.zip: descomprimir un archivo zip.

Paquetes Deb (Debian, Ubuntu y derivados)

  1. dpkg -i package.deb: instalar / actualizar un paquete deb.
  2. dpkg -r package_name: eliminar un paquete deb del sistema.
  3. dpkg -l: mostrar todos los paquetes deb instalados en el sistema.
  4. dpkg -l | grep httpd: mostrar todos los paquetes deb con el nombre “httpd”
  5. dpkg -s package_name: obtener información en un paquete específico instalado en el sistema.
  6. dpkg -L package_name: mostar lista de ficheros dados por un paquete instalado en el sistema.
  7. dpkg –contents package.deb: mostrar lista de ficheros dados por un paquete no instalado todavía.
  8. dpkg -S /bin/ping: verificar cuál paquete pertenece a un fichero dado.


Actualizador de paquetes APT (Debian, Ubuntu y derivados)

  1. apt-get install package_name: instalar / actualizar un paquete deb.
  2. apt-cdrom install package_name: instalar / actualizar un paquete deb desde un cdrom.
  3. apt-get update: actualizar la lista de paquetes.
  4. apt-get upgrade: actualizar todos los paquetes instalados.
  5. apt-get remove package_name: eliminar un paquete deb del sistema.
  6. apt-get check: verificar la correcta resolución de las dependencias.
  7. apt-get clean: limpiar cache desde los paquetes descargados.
  8. apt-cache search searched-package: retorna lista de paquetes que corresponde a la serie «paquetes buscados».

CD-ROM

  1. cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force: limpiar o borrar un cd regrabable.
  2. mkisofs /dev/cdrom > cd.iso: crear una imagen iso de cdrom en disco.
  3. mkisofs /dev/cdrom | gzip > cd_iso.gz: crear una imagen comprimida iso de cdrom en disco.
  4. mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd: crear una imagen iso de un directorio.
  5. cdrecord -v dev=/dev/cdrom cd.iso: quemar una imagen iso.
  6. gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom –: quemar una imagen iso comprimida.
  7. mount -o loop cd.iso /mnt/iso: montar una imagen iso.
  8. cd-paranoia -B: llevar canciones de un cd a ficheros wav.
  9. cd-paranoia – ”-3”: llevar las 3 primeras canciones de un cd a ficheros wav.
  10. cdrecord –scanbus: escanear bus para identificar el canal scsi.
  11. dd if=/dev/hdc | md5sum: hacer funcionar un md5sum en un dispositivo, como un CD.

Trabajo con la RED ( LAN y Wi-Fi)

  1. ifconfig eth0: mostrar la configuración de una tarjeta de red Ethernet.
  2. ifup eth0: activar una interface ‘eth0’.
  3. ifdown eth0: deshabilitar una interface ‘eth0’.
  4. ifconfig eth0 192.168.1.1 netmask 255.255.255.0: configurar una dirección IP.
  5. ifconfig eth0 promisc: configurar ‘eth0’en modo común para obtener los paquetes (sniffing).
  6. dhclient eth0: activar la interface ‘eth0’ en modo dhcp.
  7. route -n: mostrar mesa de recorrido.
  8. route add -net 0/0 gw IP_Gateway: configurar entrada predeterminada.
  9. route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1: configurar ruta estática para buscar la red ‘192.168.0.0/16’.
  10. route del 0/0 gw IP_gateway: eliminar la ruta estática.
  11. echo “1” > /proc/sys/net/ipv4/ip_forward: activar el recorrido ip.
  12. hostname: mostrar el nombre del host del sistema.
  13. host www.example.com: buscar el nombre del host para resolver el nombre a una dirección ip(1).
  14. nslookup www.example.com: buscar el nombre del host para resolver el nombre a una direccióm ip y viceversa(2).
  15. ip link show: mostar el estado de enlace de todas las interfaces.
  16. mii-tool eth0: mostar el estado de enlace de ‘eth0’.
  17. ethtool eth0: mostrar las estadísticas de tarjeta de red ‘eth0’.
  18. netstat -tup: mostrar todas las conexiones de red activas y sus PID.
  19. netstat -tupl: mostrar todos los servicios de escucha de red en el sistema y sus PID.
  20. tcpdump tcp port 80: mostrar todo el tráfico HTTP.
  21. iwlist scan: mostrar las redes inalámbricas.
  22. iwconfig eth1: mostrar la configuración de una tarjeta de red inalámbrica.
  23. whois www.example.com: buscar en base de datos Whois.

Redes de Microsoft Windows (SAMBA)

  1. nbtscan ip_addr: resolución de nombre de red bios.
  2. nmblookup -A ip_addr: resolución de nombre de red bios.
  3. smbclient -L ip_addr/hostname: mostrar acciones remotas de un host en windows.


<contiuará...>

P/D: La idea del post como dije al principio era tener una cantidad de comandos útiles para la terminal de Linux. La lista como se imaginarán es casi infinita (casi), asi que en el siguiente link de la fuente donde saque la mayoria pueden buscar mas en caso de que no encuentran lo que buscan en aquí

Fuente: https://habemuslinux.wordpress.com/2016/02/02/lista-de-comandos-para-la-consola/

Cambiar la contraseña de un usuario en Linux


Hola amigos MATEros, hoy les traigo este sencillo post, pero que en algún momento de la vida nos puede ser de gran utilidad:

Para cambiar la clave a un usuario utilizaremos la terminal:

Primero veamos unas reglas que se aplican en todo sistema UNIX:
  1. Un usuario puede cambiar su contraseña.
  2. El súper usuario (root) puede cambiar cualquier contraseña de cualquier usuario.

EN FIN, cambiemos la cuenta:

Primero debemos loguearnos con el usuario root y para ellos podemos utilizar el comando su o sudo -s para "loguearnos" como root (estoy usando distribuciones basadas en debian, como ubuntu, lubuntu y el mismo debian 9... la verdad desconozco si funcionará en otras distros).

Otra opción es utilizar el siguiente comando:

$ sudo passwd nombreDeUsuario
 
 Ingresamos una contraseña y luego confirmamos:



ejemplo de cambio de cambio de contraseña para el usuario "marcelo".



Luego tenemos un comando para ver información útil acerca de la contraseña de un usuario:

$ passwd -S nombreDeUsuario



el cual nos retornará los siguientes parámetros:
  • marcelo: Es el nombre del usuario.
  • P: indica que el password esta vigente, sino puede mostrar L si esta bloqueado o NP si no tiene password.
  • 04/03/2019: Muestra la fecha del ultimo cambio de password.
  • 0: Fecha mínima de expiración.
  • 99999: fecha máxima de expiración del password.
  • 7: periodo de alerta previo a expirar.
  • -1: Periodo de inactividad para el password. 
Un último comando que quisiera presentar en este post es el comando chage, el cual nos da información acerca de la antigüedad del password:


En conclusión en este post presentamos tres comandos muy útiles, que nos permiten cambiar la contraseña y obtener información útil acerca de la contraseña de un usuario. Me despido de ustedes saludándolos muy afectuosamente como siempre. y HASTA LA VISTA! ;)

martes, 2 de abril de 2019

Menu en consola con Python

Código de ejemplo:


En este ejemplo se simula un cajero automático (ATM) indicando cuales podrían ser las opciones a mostrar.

Tenemos 2 funciones sencillas:

imprimir() --> que sirve para imprimir un saludo de bienvenida y todas las opciones disponibles

menu() --> que es nuestro "menú" que muestra siempre las opciones disponibles
Pueden ocurrir 3 situaciones:
  1. Fin del programa: el usuario ingresó el número 0. El programa finaliza indicando un saludo de despedida
  2. Opción Válida: el usuario ingresa un numero (1,2,3 o 4) y el programa indica que opción se ingreso
  3. Opción Inválida: el usuario ingresa un número que no sea del 0 al 4.
  4. Dato Inválido: el usuario ingresa un carácter , una cadena de texto, o no ingresa nada. 
El "flujo" principal del algoritmo es controlado por el while True. La única forma de salir del bucle es cuando el usuario ingresa el numero 0. Ingresando cualquier otro valor el bucle se sigue ejecutando.