Sistemas & Desarrollo
16 meneos
472 clics
Vue.JS 2.0, un gran alternativa a AngularJS

Vue.JS 2.0, un gran alternativa a AngularJS

En esta entrada vamos a ver Vue.JS, un framework de JavaScript potente y ligero diseñado para construir interfaces web, especialmente en aplicaciones SPA (Single Page App). Vue.JS destaca por su velocidad, sencillez y ligereza. De hecho, es tan ligero que resulta adecuado incluso para dispositivos IoT como el ESP8266 y el ESP32. ¿Cuál es el interés en Vue.JS? ¿Por qué es interesante frente a otras opciones como Angular, React o Knockout? ¿Qué tiene Vue.JS que le hace tan especial? Lo respondemos a continuación.
289 meneos
9302 clics

De como escribir código imposible de mantener. [EN]

En el interés de crear oportunidades de trabajo en el campo de la programación en Java, describo algunos consejos de como escribir código tan difícil de mantener, que las personas que vengan después de ti tardarán años en hacer los cambios más simples. Además, si sigues estás reglas religiosamente, te aseguraras tu empleo de por vida, ya que no habrá persona viva salvo tú que pueda mantenerlo. De nuevo, si sigues estás reglas demasiado religiosamente, ni tu serás capaz de mantenerlo.
129 160 0 K 43
129 160 0 K 43
28 meneos
748 clics
Shell inversa con Powershell mediante una imagen PNG

Shell inversa con Powershell mediante una imagen PNG  

Imagina que cualquier imagen que visualizas en una web a parte de ser una simple imagen es también la “herramienta” que utiliza un atacante para ejecutar una shell inversa desde tu ordenador. Aparentemente esa imagen es un simple fichero PNG, pero entre sus píxeles se encuentra embebido un script en Powershell con un payload de Meterpreter. La herramienta que posibilita hacerlo fácilmente es Invoke-PSImage de Barrett Adams, que inserta los bytes del script en los píxeles de una imagen PNG y además genera un “oneliner” para ejecutarlo desde […].
19 9 0 K 42
19 9 0 K 42
13 meneos
1185 clics
Comparando el rendimiento de C, C++ y D con un proyecto real [ENG]

Comparando el rendimiento de C, C++ y D con un proyecto real [ENG]

Hace tiempo escribí una entrada donde comparaba el rendimiento de C y C++ en un proyecto real. Hoy he migrado ese proyecto a D y he hecho los mismos tests. Estos son los resultados.
46 meneos
1244 clics
Catorce de los proyectos de código abierto más activos en GitHub

Catorce de los proyectos de código abierto más activos en GitHub  

En GitHub hay miles, incluso decenas de miles de proyectos de software open source (y otras muchas cosas, que abogados, periodistas o escritores están apuntándose cada vez más al versionado). Tantos que uno puede no saber por donde empezar. Una manera muy interesante es el propio ranking de tendencias de GitHub, una especie de Los 40 Principales del software libre, ideal para encontrar proyectos en los que colaborar, forkearlos o simplemente inspirarse. Estos son actualmente los más calientes a fecha de noviembre de 2017.
35 11 1 K 49
35 11 1 K 49
202 meneos
968 clics
Diciendo adiós a Firebug [ENG]

Diciendo adiós a Firebug [ENG]

Firebug fue la más famosa y potente herramienta de desarrollo web durante su vida, unos 12 años. Firebug tuvo un fenomenal éxito entre los desarrolladores web de todo el mundo, ya que fue la primera herramienta que permitía inspeccionar, editar y depurar código (tanto Javascript como CSS y HTML) directamente en Firefox. Por eso es triste decir que con la versión 57 de Firefox (Quantum) Firebug alcanza el final de su vida útil. Las buenas noticias son que la mayoría de esas características están ya en las herramientas de desarrollo de Firefox.
113 89 1 K 27
113 89 1 K 27
301 meneos
6185 clics
Cómo desactivar Intel Management Engine (IME) [ENG]

Cómo desactivar Intel Management Engine (IME) [ENG]

Intel Management Engine (IME) es un coprocesador integrado en todos los procesadores de Intel fabricados después de 2006. Este coprocesador tiene acceso completo a la red y a la memoria y ejecuta código cerrado y propietario independientemente de la BIOS, el procesador principal y el sistema operativo, un hecho que es un riesgo de seguridad inaceptable. En esta guía se detalla cómo desactivar IME usando varias herramientas que operan en el firmware del PC almacenado en el chip de la BIOS.
140 161 0 K 45
140 161 0 K 45
12 meneos
333 clics
Código seguro en D [ENG]

Código seguro en D [ENG]

He visto a buenos programadores en C++ cambiarse a Java o C#. La pregunta es: ¿por qué lo abandonan una vez que tienen un amplio conocimiento del mismo? La respuesta universal es “productividad”. ¿Qué impide a C++ lograr productividad? La horrible sintaxis y la seguridad son dos de los mayores impedimentos. Aunque también tiene cosas buenas, como su gran rendimiento. Entonces, ¿existe algún lenguaje que sea sencillo, seguro y potente a la vez? Te voy a contar un secreto: ese lenguaje existe y es D.
252 meneos
5978 clics
Cómo funciona Git (parte 1)

Cómo funciona Git (parte 1)

Git es una herramienta de control de versiones distribuida, pero en última instancia no es más que un gestor de contenido, y en este post entenderéis por qué. El núcleo de Git no es ni más ni menos que un mapa clave-valor de toda la vida, donde las claves son valores hash generados mediante el algoritmo SHA1, y los valores pueden ser varias cosas. En este post nos centraremos en los diferentes tipos de valor que Git puede almacenar.
124 128 5 K 52
124 128 5 K 52
20 meneos
383 clics
Cómo funciona Git (parte 2)

Cómo funciona Git (parte 2)

En el primer post de esta serie comenzamos a destripar el funcionamiento interno de Git, revisando los diferentes tipos de datos que Git soporta internamente dejando nuestro repositorio de ejemplo con un solo archivo llamado hello.txt en el directorio base conteniendo dicho archivo el texto “Hello World”. Tras hacer nuestro primer commit y añadir un tag, nos quedó la siguiente estructura interna.
18 2 0 K 30
18 2 0 K 30
67 meneos
652 clics
Práctica funcionalidad de BASH: sustitución de procesos [ENG]

Práctica funcionalidad de BASH: sustitución de procesos [ENG]

Hace algún tiempo me surgió un problema en el trabajo donde tenía que comparar dos archivos descargados. La solución fue simple: descargar el primero archivo, descargar el segundo para finalmente ejecutar un diff entre ellos. Tres pasos: curl URL1 > file1; curl URL2 > file2; diff file1 file2. Pero antes de poder teclearlo, un compañero me quitó el teclado y escribió un raro código vudú que nunca había visto: diff <(curl URL1) <(curl URL2). ¿Qué rara sintaxis era esa? Más aún, ¿por qué iba el doble de rápido que mi solución?
56 11 1 K 50
56 11 1 K 50
9 meneos
299 clics
Cómo desarrollar tu propio cargador de arranque (boot loader) [ENG]

Cómo desarrollar tu propio cargador de arranque (boot loader) [ENG]

Este artículo está escrito para aquellos interesados en programación en lenguajes de alto nivel (C++, C#, Java) que a veces necesitan programar a bajo nivel en Windows. En nuestro ejemplo se tratará la programación a bajo nivel del cargador de arranque (boot loader). Además, se dedicará parte del tiempo a describir qué ocurre cuando un ordenador se enciende y se carga el sistema. Después de esto, se mostrará el proceso de escribir el código fuente de nuestro propio cargador de arranque.
30 meneos
360 clics

La mejor manera de guardar tus 'dotfiles': un repositorio 'bare' de Git [ENG]

El único requisito previo es instalar Git. No hacen falta herramientas adicionales, ni symlinks; los ficheros se vigilan en un sistema de control de versiones, puedes usar diferentes ramas de git para diferentes máquinas y puedes replicar fácilmente tu configuración en una nueva instalación.
8 meneos
333 clics
La potencia de los recortes de código (snipples)

La potencia de los recortes de código (snipples)

Un recorte de código es una pequeña plantilla que podemos reutilizar dentro de un editor de textos. Esta plantilla se pega, en el texto que se está editando, al escribir una palabra y pulsar el tabulador. En el siguiente ejemplo, al escribir html5 y pulsar tabulador, se pega la plantilla correspondiente:
289 meneos
8704 clics

Consejos para crear scripts con suficiente calidad para ser de producción [ENG]

Los scripts de shell son una forma de automatizar tareas en sistemas Linux/Unix (u otros sistemas operativos). En esta entrada se darán consejos básicos para escribir scripts con la suficiente calidad como para ejecutarlos en producción, escritos de una forma clara y limpia y reportando correctamente los errores detectados dejando la mejor huella posible.
141 148 4 K 56
141 148 4 K 56
8 meneos
617 clics
Trucos para BASH [ENG]

Trucos para BASH [ENG]

Trucos para la shell BASH para acelerar el uso diario.
95 meneos
2152 clics
Envío erróneo o controvertido, por favor lee los comentarios.

Howto iDental  

Objetivo: iDental (Clínicas odontológicas low cost); WAF/IDS: CDN de Incapsula; Vulnerabilidad explotada: SQLInjection; Bypas de WAF: Script Base64; Programación: PHP; Java DataTable para la paginación de resultados; Base de Datos: MYSQL; Hosting: OVH. En un primer análisis comprobamos que el dominio dirige a una IP asignada a una CDN (Red de distribución de contenidos) de Incapsula Inc que actúa como WAF impidiendo escaneos con herramientas habituales. Un whois sobre el dominio nos indica que los datos de registro están […].
66 29 16 K 34
66 29 16 K 34
221 meneos
4797 clics
Análisis de Erebus, un ransomware para Linux

Análisis de Erebus, un ransomware para Linux

Esta semana hemos conocido que la empresa surcoreana NAYANA, proveedora de servicios web, sufrió un ataque de una variante del ransomware Erebus. El caso llamó la atención dado que infectó a 153 servidores, todos ellos con sistema operativo Linux, en el cual más de 3400 archivos se han visto afectados. En este artículo vamos a llevar a cabo un análisis sobre una muestra del ejecutable encargado de llevar a cabo la infección en esta última campaña de Erebus.
102 119 2 K 32
102 119 2 K 32
40 meneos
929 clics
Envío erróneo o controvertido, por favor lee los comentarios.

Introducción a la expansión de parámetros en BASH [ENG]

En BASH, las entidades que almacenan valores que llaman parámetros. Sus valores pueden ser cadenas o arrays creados con una sintaxis regular, pero también pueden ser números enteros o arrays asociativos con unos atributos y una sintaxis específica con la función ‘declare’. En BASH hay tres tipos de parámetros: parámetros posicionales, parámetros especiales y variables.
26 14 9 K 29
26 14 9 K 29
20 meneos
1109 clics
Envío erróneo o controvertido, por favor lee los comentarios.
No pagues la tasa de los bucles ‘for’ [ENG]

No pagues la tasa de los bucles ‘for’ [ENG]

Una vez, haciendo una revisión de código de uno de mis compañeros, vi que usaba un bucle for cuando no era necesario (existía una declaración más legible) . Como chiste dije que habría que poner la “tasa bucle for” (for-loop tax) para cada bucle que se usase de forma innecesaria. Sin embargo, ese chiste me hizo pensar por qué la gente usa el bucle for, más propenso a errores, antes que otras soluciones mejores. La conclusión fue que nos enseñan cómo usar los bucles, pero apenas nos enseñan por qué se necesitan.
63 meneos
925 clics
Envío erróneo o controvertido, por favor lee los comentarios.

Google "AMP"

Google AMP es un nuevo "estándar" de google. AMP significa "Accelerated Mobile Pages", es decir un formato para acelerar páginas vistas por móvil. ¿En qué consiste? En un subconjunto de HTML y CSS en el que se suprimen ciertas etiquetas que, al menos en teoría, ralentizan la descarga y el "renderizado", añadir algunas etiquetas especiales y algunos scripts. El servicio se lanzó en febrero de 2016, pero reconozco que es la primera noticia que tengo, ha despertado entusiasmos... y críticas.
48 15 9 K 37
48 15 9 K 37
12 meneos
532 clics
En crudo y sin censura: raw sockets I (en C)

En crudo y sin censura: raw sockets I (en C)

Aprovechando que tengo que guardar reposo por un mini accidente laboral, he decidido ponerme con algo que llevaba posponiendo un tiempo (permitirme la redundancia): salsear un poquito con los sockets en C y ya de paso escribir una entrada en el blog. A lo largo de esta serie de entradas intentaré mostrar para qué podemos utilizar la programación de sockets (sobre todo los RAW) siempre mirando desde un prisma, digamos, oscuro. Soy consciente que no es un tema fácil de tratar, y mucho menos hacer que la lectura sea liviana a la […].
9 meneos
339 clics

Herramientas de línea de comandos más rápidas usando el lenguaje de programación D [ENG]

Esta entrada muestra cómo unas simples construcciones en el lenguaje de programación D pueden hacer que una ya rápida herramienta de línea de comandos se convierta en una especialmente rápida sin perder la simplicidad inherente del programa original. La solución es aplicable a muchos problemas de programación, no sólo a herramientas en línea de comandos. Esta entrada muestra cómo funcionan estas técnicas y por qué son efectivas.
8 meneos
97 clics
Ejecutar aplicaciones ZooKeeper sin usar ZooKeeper gracias a zetcd [ENG]

Ejecutar aplicaciones ZooKeeper sin usar ZooKeeper gracias a zetcd [ENG]  

Los sistemas distribuidos generalmente confían en protocolos de consenso para coordinar su trabajo. Estos protocolos garantizan que la información sea distribuida en orden y sin conflictos. La usabilidad de estos protocolos es evidente debido a la proliferación de varias implementaciones, como chubby, ZooKeeper, etcd, consul, etc. que, aunque difieren en filosofía, sirven los mismos datos. Como parte de etcd, el equipo ha desarrollado zetcd para servir peticiones de ZooKeeper sin ZooKeeper.
6 meneos
405 clics
Cinco razones por las que el lenguaje de programación D es una buena elección para el desarrollo [ENG]

Cinco razones por las que el lenguaje de programación D es una buena elección para el desarrollo [ENG]

El lenguaje de programación D es de propósito general, tiene tipado estático, sintaxis similar a C y C++ que compila a código nativo, etc. Estas son varias de las razones por las que este lenguaje de programación es una buena elección para desarrollar aplicaciones.

menéame