La Fundación Eclipse será el nuevo hogar de la plataforma Java EE

13/09/2017
Artículo original


Hace algunas semanas Oracle anunció la iniciativa de buscar un nuevo hogar para la plataforma Java EE. En busca de que la evolución de la misma sea más ágil, flexible y abierta.

El día de hoy se dio a conocer que después de platicar con varias organizaciones, la
a Fundación Eclipse resultó seleccionada para albergar el proyecto y plataforma Java EE.

El repositorio de código de Java EE ahora está en Github: https://github.com/javaee

Aquí el anuncio oficial de Oracle: https://blogs.oracle.com/theaquarium/opening-up-ee-update

**Update**

Anuncio oficial de Red Hat: http://middlewareblog.redhat.com/2017/09/12/java-ee-moves-to-eclipse/

leer más

TRUCO VS #4: Rodear código con una estructura automáticamente

12/09/2017
Artículo original

Hoy toca un truco muy sencillo pero extremadamente útil. Tanto que una vez lo descubras lo aplicarás continuamente...

Cuando estás escribiendo código normalmente no lo haces de arriba a abajo del tirón, a la primera. Lo habitual es que sea un proceso iterativo. Lo normal es que empieces "por el medio" casi todo lo que haces. Por ejemplo, escribes unas cuantas líneas dentro de una función con las instrucciones principales de lo que quieres hacer (o de una parte de ello), compruebas que funciona y luego empiezas a meterle posibilidades con condicionales o a envolverlo en clausulas de gestión de excepciones o a repetir la misma operación varias veces con un bucle...

La verdad es que tampoco es mucho trabajo escribir una parte del código por encima y otra por debajo par envolver algo en un condicional, pero en programación cada segundo ahorrado cuenta de cara a la productividad, así que ¿y si hubiese una forma mejor de hacerlo?

Visual Studio, como casi siempre, nos tiene cubiertos y ofrece la funcionalidad denominada "Rodear con..." (Surround).

Esta funcionalidad te permite, como su propio nombre indica, envolver o rodear el fragmento de código que tengas seleccionado con una de muchas construcciones, por ejemplo con sentencias if, bucles for/for each, sentencias try/catch y muchas otras.

Para conseguirlo simplemente tienes que seleccionar lo que quieres envolver, pulsar Ctrl+K seguido de la tecla S (o sea, en dos fases) y te ofrecerá una lista de multitud de estructuras con las que envolver el código:

Como ves en la animación anterior, puedes moverte por la lista con los cursores o, mejor aún, escribir la primera letra de lo que quieres utilizar (la "i" si quieres un if, o la "t" si quieres un try-catch, por ejemplo) con lo que lo quieres envolver, y luego simplemente pulsas Tab o Entrar. Voilà! Tu código rodeado con lo necesario en un instante...

Como digo, una vez descubras esta posibilidad no podrás dejar de utilizarla :-)

Otros trucos de esta serie:

FRIKADAS: Los 10 proyectos más tontos (pero interesantes) para Raspberry Pi

08/09/2017
Artículo original

Raspberry Pi es un dispositivo del tamaño de una tarjeta de crédito que tiene todo lo necesario para crear un ordenador personal. Es muy barato (se puede comprar desde 5 dólares) y aunque inicialmente se concibió para que los niños aprendiesen programación, en la actualidad se usa para todo tipo de cosas: desde un solucionador de cubos de Rubik, hasta la creación de robots de bajo coste para desactivar minas o globos aerostáticos que ayudan a buscar vida en Marte.

Las posibilidades son infinitas y, como en todo, se han utilizado para hacer cosas muy tontas. Y eso nos encanta en esta sección ?, así que hemos recopilado 10 de los proyectos más tontos (pero algunos con una gran complejidad) que hemos visto programados para Raspberry Pi.

10.- JavaWatch - Nunca te quedes sin café

Viviendo en el mundo de tecnología punta en el que estamos, con acceso casi universal a cosas como Deep Learning, Cloud Computing, servicios web para hacer casi cualquier cosa...lo raro es que nadie haya juntado todo esto en un complejo dispositivo que lo que hace es vigilar nuestro bote de café para asegurarnos de que jamás nos quedemos sin suministro:

Su creador, Terren Peterson, ha combinado un Raspberry Pi con su módulo de cámara junto con varios servicios de Amazon AWS (S3 para almacenamiento, SNS para notificaciones, IAM para seguridad, Lambda para orquestación y AWS Reckognition para reconocimiento y análisis de imágenes) y varias API de su servicio de comercio electrónico, para crear un alucinante cacharro que se ocupa de vigilar su bote de café, reconocer cuando se está quedando sin granos y encargar más ?

La verdad es que es un proyecto complejo y muy interesante... para obtener un resultado tan tonto. En el enlace tienes una explicación detallada sobre cómo se ha construido.

9.- El espejo fantasmagórico embrujado

Este proyecto es otro gran ejemplo de una gran cantidad de trabajo, conocimientos e imaginación usados para un fin de dudosa utilidad.

La página Filipina CircuitHelp, especializada en Raspberry PI, Arduino y otros dispositivos DIY similares, creó el año pasado para Halloween un espejo, en apariencia normal, pero que gracias a un detector ultrasónico, identifica que alguien se ha acercado y le pega un susto de muerte proyectando imágenes fantasmagóricas que salen del espejo. Es mejor que lo veas:

[youtube:eqEZVCfJxgA]

No dan detalles exactamente de cómo lo han hecho, pero es una de las mejores bromas de este tipo que hemos visto nunca.

8.- Cámara que mejora tus fotos... cambiándolas por otras mejores de lo mismo

¿Qué hay peor que una foto borrosa, oscura o pasada de luz? Este es el "problema" que trata de resolver la cámara llamada "Le Myope" de este programador/artista francés.

Lo que hace es permitirte sacar una fotografía, pero luego sustituyéndola por otra similar de buena calidad sacada de Google Images:

[vimeo:164339536]

Una cosa con bastante trabajo y muy poco útil, pero simpática. En el enlace anterior tienes una explicación de cómo crear esta cámara, con el código fuente disponible. ¡Conviértete en un mejor fotógrafo!

7.- Selfies para hamsters cuando corren por su rueda

Otro proyecto de bastante complejidad pero de poca utilidad a menos que seas un hámster... ?

El artista Neil Mendoza ha creado un dispositivo para hámsteres que incorpora un plotter gestionado con un Raspberry Pi. Cuando el hámster empieza a correr por su rueda se alimenta el plotter, el cual comienza a dibujar poco a poco un "selfie" del pequeño roedor. La imagen del hámster en movimiento es recogida por una cámara y visualizada en una pequeña pantalla. El raspberry Pi gestiona la señal de la velocidad del hámster para mover el plotter mediante comandos ASCII que van dibujando al ratoncillo. Tiene además un buen trabajo de mecánica para crear las plantillas móviles y engranajes (impresos en 3D) que mueven el plotter.

[vimeo:173067576]

¿Sabías que un hámster medio recorre sobre 8 Km cada noche en su pequeña ruedecilla? Eso da para muchos selfies, pero también para cargar tu coche eléctrico si nos permites una idea, jejeje

6.- Robocod: el pez maneja el robot

¿Conoces el chiste ese de un tipo que está mirando una pecera y acaba dominado por la mente superior del pez? Bueno, esto va un pasito más allá.

Se trata de un sensacional proyecto creado por Alex Kent, un asistente de investigación de la prestigiosa Universidad Carnegie Mellon y que ha bautizado como Robocod (cod es bacalao en inglés). Este invento piensa en estos pobres animalitos con branquias, atrapados en su pecera, y les permite ver mundo. Lo que hace es analizar la imagen de una cámara colocada sobre la pecera y determinar la posición del pez respecto al centro de la misma. Si el pez se mueve hacia adelante, la pecera se mueve en la misma dirección y al revés, manteniéndose en movimiento mientras el pez siga nadando de un lado a otro. Esto le permite al bichito "caminar" a sus anchas por cualquier estancia, saliendo del aburrido mundo de la pecera estática. Una vez más, es mejor que lo veas:

[youtube:_GDgmP1ac_A]

La batería le dura unas 5 horas, así que tampoco puede irse muy lejos...

5.- Air Drum Kit: toca la batería sin ocupar espacio

Seguro que conoces los famosos concursos de Air-Guitar en los que los participantes se desmelenan tocando una guitarra ficticia mientras suena música cañera para que puedan "tocar". Este invento de David Pride, utiliza dos mandos de una Wii y una Raspberry Pi para que no solo puedas hace que tocas la batería en el aire, sino que también se escuche, sincronizando los movimientos con el sonido de los tambores. No solo eso, sino que tocando los diferentes botones del mando se pueden simular diferentes tipos de elementos de una batería, consiguiendo 6 sonidos diferentes por cada uno de los dos mandos:

[youtube:XpKgjSYmohE]

El código fuente en Python para el "invento", lo tienes en Github.

4.- ¿Quieres una cervecita fresca? Pues te la tienes que ganar

En realidad siendo un invento británico seguro que la cerveza estaba templada. Pero no creemos que sea complicado adaptarlo para que sea fría también ?

La idea surgió como un proyecto publicitario de una marca de cervezas, pero implicó el uso real de tecnología y es una frikada de las de verdad. Básicamente consiste en que debes competir con una bicicleta estática de verdad contra el ciclista virtual que hay en la pantalla. Así que si quieres esa cerveza llena de calorías, primero debes quemar unas cuentas para compensar:

Todo el dispositivo, incluyendo la pantalla de alta definición, el control de la bici y el sistema que sirve la cerveza, está controlado por una única Raspberry Pi. En el enlace de la cabecera puedes ver la máquina en acción. ¿Merece la pena tanto esfuerzo?

3.- Apertura automática de puerta para el perro

Bueno, a medida que bajamos en la lista los proyectos son menos útiles si cabe, pero tienen bastante gracia. En este caso David Hunt no podía dormir y no se le ocurrió otra cosa mejor en la que invertir su tiempo que en crear un sistema de apertura automática de puertas para su perro que se activa con los ladridos del can. De este modo si el chucho quiere salir a hacer sus cosas a las 6 de la mañana no lo tiene que molestar: da un ladrido y la puerta se abre:

[youtube:MWfl1Nl2WIM]

Eso sí, cualquier otro perro (y suponemos que un humano imitándolo) podría abrir la puerta, así que como solución de seguridad no es muy útil, pero mola. En el enlace tienes una detallada explicación de cómo construirlo, así como el código necesario.

2.- El té siempre a punto

Todo el mundo sabe que programar es un negocio que necesita mucha cafeína. Pero en algunas latitudes son más aficionados a la teína, es decir, a las deliciosas (para el que le guste) tazas de té de Tailandia y similares. El bueno de Andrey Chilikin, que además debe de ser un vago de mucho cuidado, construyó un sistema para remojar las bolsas de té en la taza usando para ello una unidad antigua de DVD y un Raspberry Pi conectada a esta a través de la interfaz GPIO del mini-ordenador, con este resultado:

Como seguramente no puedas vivir sin el invento y estés deseando construirte uno ahora mismo, tienes el código y el esquema en Github.

1.- El quitador de calcetines automático

Bueno, esto es más una broma que un proyecto real, pero tiene mucha gracia y el autor dice que ha usado un Raspberri Pi para crearlo. Si la vagancia se apodera de ti al llegar a casa y no tienes ganas ni de quitarte los calcetines... esta es tu solución. Lo mejor es que lo veas en acción en el vídeo (como decimos, tiene mucha gracia, no te lo pierdas):

[youtube:ub6mA2m3rq4]

Lo dicho: la gente tiene mucho tiempo... y una gran imaginación ?

Y tú, ¿cuál de estos es tu favorito? (el nuestro es el del pez que se mueve con su pecera) ¿conoces algún proyecto de Raspberry Pi que merezca la pena estar en la lista? Cuéntanoslo en los comentarios de debajo.

 

Cómo utilizar Hyper-V y VirtualBox en el mismo equipo con Windows 10

06/09/2017
Artículo original

Cuando descubrí la virtualización hace más de 15 años me pareció la tecnología más maravillosa del mundo. Prácticamente magia. Por aquel entonces (año 2001) escribía todos los meses varios artículos para la revista PC World, cuando aún se publicaba en papel, y debía probar mucho software (a veces en beta) que machacaba mi computadora de trabajo. Gracias a las máquinas virtuales podía montar un sistema aparte, virtualizado, y no afectar en absoluto a mi sistema operativo. Desde entonces no he dejado de usarla. Al principio usaba VMWare, luego Virtual PC... y he ido pasando poco a poco por casi todas las tecnología existentes. Desde hace ya unos cuantos años, para mi entorno personal mi elección para virtualizar es VirtualBox. Se trata de un producto gratuito, multi-plataforma y Open Source que lo único malo que tiene es que lo compró Oracle hace unos años (junto a Sun Microsystems).

El problema de utilizar VirtualBox (o cualquier otra solución similar) viene cuando tienes que hacer ciertos tipos de desarrollos bajo Windows. Y es que, por ejemplo, si vas a usar Xamarin con Visual Studio para crear aplicaciones móviles, o si estás trabajando con Docker sobre Windows, necesitas instalar obligatoriamente1 Hyper-V, el sistema de virtualización de Microsoft. De hecho Hyper-V viene incluido con Windows 10, pero por defecto está desactivado (yo por lo menos lo desactivo).

Nota1: en el caso de Docker para Windows puedes optar por utilizar Docker Toolbox en lugar de la instalación "normal" del producto. Con esta herramienta puedes instalar Docker basándolo en VirtualBox. Pero tienes la pega de que no ejecutará contenedores nativos de Windows, solamente podrás usar los de Linux.

El hipervisor de Microsoft no permite que lo utilices simultáneamente con otros hipervisores (como VirtualBox), por lo que al activarlo por ejemplo debido alguno de los motivos descritos, tu VirtualBox dejará de funcionar.

No existe manera alguna de hacerlos funcionar al mismo tiempo en la misma máquina, pero lo que sí es posible es reiniciar el equipo y que te pregunte cuál de los dos quieres usar antes de iniciar el sistema:

Menú de inicio de mi equipo con Windows 10

En la foto anterior, de mi equipo de trabajo habitual, cuando lo arranco me permite si quiero arrancar Windows 10 con Hyper-V, de la manera normal, o bien arrancarlo sin Hyper-V de modo que pueda usar otro sistema de virtualización.

Es un poco tedioso porque hay que reiniciar, pero con un buen disco duro SSD (que deberías tener sí o sí, si te dedicas a programar), un reinicio lleva 20 segundos, así que no es demasiado problema.

Vamos a ver cómo montar se menú...

Utilizando BCDEdit para crear el menú de arranque

Para poder lograr el objetivo debemos utilizar la herramienta del sistema denominada Bcdedit.exe. Se trata de una utilidad para línea de comandos que permite consultar y gestionar la configuración de arranque del sistema operativo.

Antiguamente, en máquinas basadas en BIOS, estas opciones se almacenaban en un archivo llamado boot.ini en la raíz del sistema, pero en los sistemas modernos basados en EFI (Extensible Firmware Interface, también conocido como UEFI, por Unificado) esta información se almacena en ciertas partes de memoria no volátiles, no accesibles fácilmente, de ahí la necesidad de esta utilidad.

1.- consultar y copiar la configuración actual

Antes de hacer nada, y solo por si acaso, lo suyo es que hagamos una copia de seguridad de la actual configuración de arranque, de modo que podamos restaurarla en cualquier momento si lo necesitamos.

Abre una línea de comandos como administrador, vete a una carpeta en la que quieras almacenar la información, y escribe:

bcdedit /export bootmaganer.bak

De este modo guardarás un archivo con la configuración, como copia de seguridad:

Hacer copia de seguridad

Si más adelante quieres restaurar la configuración original solo tienes que hacer:

bcdedit /import bootmanager.bak

desde la misma carpeta, y listo.

Puedes ver la configuración de arranque actual escribiendo simplemente el nombre del comando, sin parámetros:

Configuración actual de arranque

En este caso vemos la mía original, y nos fijamos en un parámetro concreto que he resaltado en la captura, que se llama hypervisorlaunchtype y que está establecido como auto.

Este es el parámetro que debemos cambiar en la configuración alternativa. Sus dos valores posibles son Auto, para que funcione Hyper-V, y Off, que desactivará el hipervisor de Microsoft al arrancar.

Vamos a modificarlo. Para ello antes debemos hacer una copia de la configuración de arranque actual:

bcdedit /copy {current} /d "Windows 10 sin Hyper-V"

Copiado de la configuración actual

Es decir, copiamos la configuración actual ({current}) y le damos un nombre a dicha copia. En mi caso le he llamado "Windows 10 sin Hyper-V" porque voy a dejar que la opción de arranque por defecto si no digo nada sea la que tiene Hper-V activado. Si quisieses que fuese al revés, le podrías llamar a la copia "Windows 10 con Hyper-V", por ejemplo.

2.- Cambiar la configuración de Hyper-V

Vale, una vez creada la copia lo que tenemos que hacer es modificar una de las dos, la actual o la nueva, para que no tenga Hyper-V activado. Por ejemplo, vamos a modificar esta nueva copia con esta opción.

Copia el identificador de la nueva configuración (el GUID entre llaves que te muestra al terminar la operación anterior), y en la misma línea de comandos administrativa escribe:

bcdedit /set {El_GUID_apropiado} hypervisorlaunchtype off

cambio de parámetro de Hyper-V

Listo. Con esto habrás cambiado la configuración apropiadamente. Puedes comprobarlo viendo de nuevo la configuración con bcdedit:

Listado de las configuraciones de arranque existentes

A partir de ahora cuando arranques te saldrán las opciones que veíamos en la primera captura de pantalla del post y podrás elegir si usar o no Hyper-V.

3.- Parámetros extra para configuración

El menú de elegir las opciones aparece por defecto durante 30 segundos. Para mi es mucho tiempo. Con 5 segundos es más que suficiente. Puedes modificar el tiempo en el que está disponible antes de elegir la opción por defecto tocando el parámetro timeout de la configuración de arranque (en la figura anterior puedes ver que el mío está en 5 segundos), usando este comando:

bcdedit /timeout 5

Si una vez hechos los cambios quieres que la segunda opción (sin Hyper-V en nuestro ejemplo) sea la opción por defecto, puedes hacerlo con el parámetro default, que también se ve en la figura anterior. Puedes escribir:

bcdedit /default {GUID}

indicando el GUID de la opción que quieras que sea la que va por defecto.

También puedes cambiar el orden en el que se muestran usando la opción displayorder, así:

bcdedit /displayorder {GUID_1} {GUID_2} .... {GUID_N}

Fíjate en que la opción original es la que tiene por identificador {current}, que es el que debieras usar para identificarla en la lista.

El comando tiene muchas opciones que puedes consultar, y que pueden resultar muy útiles para cosas concretas. Ten cuidado al utilizarlo para no cargarte nada, y haz siempre una copia de seguridad como hemos visto.

¡Espero que te resulte útil!

TRUCO VS #3: Selección de bloques y edición multi-cursor

05/09/2017
Artículo original

Una necesidad común a la hora de editar código es la de modificar varias línea de manera idéntica. Esto tiene dos posibles vertientes:

  1. Copiar, cortar o eliminar código de varias líneas a la vez
  2. Escribir el mismo código en varias líneas al mismo tiempo

Selección de bloques de código

Por ejemplo, imagínate que tienes una clase con varias propiedades de longitud similar que debes reutilizar en otro lado para asignarle valores diferentes. Puedes copiar las líneas completas, pegarlas en otro lado y luego eliminar todo lo que te sobre, línea a línea. O puedes usar el truco que te voy a contar a continuación: la selección de una caja.

Normalmente cuando seleccionas con el cursor varias líneas, a medida que bajas se seleccionan las líneas completas, así:

Selección normal, solo con el cursor

En este caso empiezas a arrastrar hacia abajo el cursor con el ratón y, a medida que bajas, se seleccionan las líneas enteras, sin necesidad de llegar al final de éstas.

Sin embargo, si mientras bajas el cursor pulsas la tecla ALT verás que ahora se selecciona solamente el área que abarca la posición inicial del curso y la actual, creando una selección rectangular:

Selección rectangular en Visual Studio

Una vez seleccionado un rectángulo, normalmente con código idéntico o muy parecido, puedes modificarlo todo de golpe, por ejemplo borrándolo como en la animación anterior o bien copiándolo, cortándolo o arrastrándolo a otro lado con el cursor. Muy útil.

Edición multi-cursor

Pero al mismo tiempo que tenemos la necesidad de seleccionar código en un rectángulo también a veces tenemos la necesidad de escribir código en varias líneas a la vez.

Esto siempre ha sido problemático en Visual Studio, y la verdad es que, tal cual lo instalas, es complicado de conseguir. De hecho, sin ayuda externa lo único que puedes conseguir es editar varias líneas a la vez si los cursores están todos en la misma vertical. Para ello debes pulsar al mismo tiempo ALT+Mayúsculas y mover el cursor hacia arriba o hacia abajo (o pulsar con el ratón), consiguiendo varios puntos de inserción simultáneos:

Edición simultánea en la misma vertical

En este ejemplo hemos editado tres líneas a la vez, pero el cursor estaba en la misma vertical. Si intentamos ponerlo en otro sitio lo que haremos será seleccionar un bloque, como antes, ya que en el fondo esto es una variante de lo que acabamos de ver para seleccionar bloques.

Podemos solucionar el problema y conseguir una edición multi-línea de verdad utilizando la extensión llamada Multi Edit Mode de Mads Kristensen. Mads forma parte del equipo de Visual Studio desde hace muchos años y es autor de una cantidad enorme de extensiones indispensables como esta.

Para instalarla puedes hacerlo directamente desde Visual Studio como se ve en este vídeo corto:

Como se ve en el vídeo, tendrás que reiniciar Visual Studio y aceptar la "modificación del entorno" que es como lo pregunta ahora Visual Studio 2017, pero una vez reiniciado el entorno funcionará perfectamente cuando pulses la tecla ALT:

Edición con múltiples cursores en Visual Studio

Como vemos, el cursor ahora puede estar en varias verticales distintas además de en varias líneas, que es su verdadera utilidad. En la animación anterior no se aprecia bien debido a la auto-selección de cadenas iguales que hace Visual Studio, pero queda marcada la posición de cada cursor con una pequeña raya vertical.

La verdad es que es increíble que, tras tantos años, Visual Studio no incorpore esta funcionalidad "de serie", pero al menos podemos tenerla instalando esta extensión tan práctica.

¡Espero que te resulte útil!

Otros trucos de esta serie:

14 recursos / canales / podcasts sobre matemáticas

04/09/2017
Artículo original

¿Qué es esta lista?

A continuación se listan una serie de Podcast, Canales de Youtube y Blogs que sigo que hablan sobre matemáticas.

Si conoces de algún recurso digital que hable y enseñe matemáticas no listado abajo, contribuye dejándonos un comentario y lo añadiremos a la lista, o mejor aún, añádelo tú mismo haciendo un Pull Request!

Gracias a @sinclair_88 por proponer la idea de crear la lista.

Otras listas

Podcasts

Math Mutation

Welcome to Math Mutation, a short podcast for people of all ages, where we explore fun, interesting, or just plain weird corners of mathematics that you probably didn't hear in school.

Ben Ben Blue

A podcast by Grant Sanderson, Ben Eater and Ben Stenhaug about education, technology, and whatever else comes to mind.

Rel Prime

Relatively Prime is a mathematics podcast all about the stories behind the Queen of the Sciences that Samuel Hansen dreamt up in an extreme bout of egotism and delusions of grandeur where he spent too long listening to Radiolab, This American Life, and Snap Judgment and began to think, “Hey, I could do that.”

Youtube

3Blue1Brow

3Blue1Brow-postn is some combination of math and entertainment, depending on your disposition. The goal is for explanations to be driven by animations and for difficult problems to be made simple with changes in perspective.

3Blue1Brow, también tiene un podcast: benbenandblue.com.

MathoLoger

Enter the world of the Mathologer in which beautiful math(s) rules.

MinutePhysics

Simply put: cool physics and other sweet science.

MinutoDeFísica

En pocas palabras: física genial y ciencia interesante

NumberPhile

Videos about numbers - it's that simple.

NumberPhile2

This is Numberphile's "second channel" for extra footage or stuff that didn't quite fit on the main channel

PBS Infinite Series

Mathematician Kelsey Houston-Edwards offers ambitious content for viewers that are eager to attain a greater understanding of the world around them. Math is pervasive - a robust yet precise language - and with each episode you’ll begin to see the math that underpins everything in this puzzling, yet fascinating, universe.

StandUpMaths

I do mathematics and stand-up. Sometimes simultaneously. Occasionally while being filmed. (It's quite the Venn diagram.)

Blogs

Quanta Magazine is an editorially independent online publication launched by the Simons Foundation to enhance public understanding of science. Why Quanta? Albert Einstein called photons “quanta of light.” Our goal is to “illuminate science.”

Referencias

55 Blogs / Canales / Podcast sobre informática, Data Science y Seguridad

04/09/2017
Artículo original

¿Qué es esta lista?

A continuación se listan una serie de Podcast, Canales de Youtube y Blogs que sigo que hablan sobre informática, Data Science y seguridad.

Si conoces de algún recurso digital que hable y enseñe informática, data science o seguridad no listado abajo, contribuye dejándonos un comentario y lo añadiremos a la lista, o mejor aún, añádelo tú mismo haciendo un Pull Request!

Gracias a @sinclair_88 por proponer la idea de crear la lista.

Otras listas

Computer Science (Programming, Data Science & Security)

Youtube

ComputerPhile

Videos all about computers and computer stuff. Sister channel of Numberphile.

Security Now!

Steve Gibson, the man who coined the term spyware and created the first anti-spyware program, creator of Spinrite and ShieldsUP, discusses the hot topics in security today with Leo Laporte.

Podcasts

Data Science

Not So Standard Deviations

NOt so standard Deviations podcasts

Roger Peng and Hilary Parker talk about the latest in data science and data analysis in academia and industry.

Linear Digressions

Linear Digressions Podcass

Linear Digressions is a podcast about machine learning and data science. Machine learning is being used to solve a ton of interesting problems, and to accomplish goals that were out of reach even a few short years ago.

Data Skeptic

Data Skeptic is your source for a perseptive of scientific skepticism on topics in statistics, machine learning, big data, artificial intelligence, and data science. Our weekly podcast and blog bring you stories and tutorials to help understand our data-driven world.

Data Stories

A podcast on data visualization with Enrico Bertini and Moritz Stefaner

Partially Derivative

Partially Derivative is a podcast about data science in the world around us. Episodes are a mix of explorations into the techniques used in data science and discussions with the field's leading experts. The podcast is a personal project hosted by Jonathon, Vidya, and Chris -- three experts in data science.

Talking Machines

Talking Machines is your window into the world of machine learning. Your hosts, Katherine Gorman and Ryan Adams, bring you clear conversations with experts in the field, insightful discussions of industry news, and useful answers to your questions.

Computer Science

Chips with everything

Why are teens shoplifting makeup and posting their hauls to Tumblr? How can a blind man run a marathon through the desert with just an iPhone? And what happens to your social media profiles after you die? Week on week, Leigh Alexander answers questions just like these on our digital culture podcast, Chips with Everything.

Geek Speak

A weekly talk show about technology, science, and human creativity that excites, educates, and fosters curiosity. Discussions touch upon how technology affects society and how we react to that change. Hosts are passionate about explaining complex concepts in simple, easy to digest, chunks. We bridge the gaps between Geeks and the rest of humanity.

Security

Security Now!

Steve Gibson, the man who coined the term spyware and created the first anti-spyware program, creator of Spinrite and ShieldsUP, discusses the hot topics in security today with Leo Laporte.

Programming

Talk Python To Me

Talk Python to Me is a weekly podcast hosted by Michael Kennedy. The show covers a wide array of Python topics as well as many related topics (e.g. MongoDB, AngularJS, DevOps).

Blogs

Data Science

Stories by IBM Cognitive Business on Medium

This is the age of breakthrough. An age in which digital business meets digital intelligence — human expertise enhanced, scaled and accelerated.

Stories by Oliver Cameron on Medium

I lead the self-driving car team at @udacity. Previously founder of a @ycombinator startup.

Udacity Inc — Medium

Learning for the Jobs of Today, Tomorrow, and Beyond

Nathan Benaich on Medium

Investor and technologist. All things #AI and emerging tech. Former research scientist, photographer, perpetual foodie.

Adam Geitgey on Medium

Interested in computers and machine learning. Likes to write about it.

Airbnb Engineering & Data Science — Medium

Creative engineers and data scientists building a world where you can belong anywhere.

Stories by Camron Godbout on Medium

Deep Learning and NLP enthusiast

Stories by Monica Rogati on Medium

Data Science advisor. Turning data into products and stories.

Actionable Data - Medium

Big Data, data science and analytics advice from the folks at Pivotal Data.

Stories by Carlos E. Perez on Medium

Deep Learning Patterns, Methodology and Strategy @IntuitionMachine.com

Stories by Sam DeBrule on Medium

Weekly AI/ML Newsletter: machinelearnings.co. Formerly @mattermark @chartbeat. I’d love to meet you for coffee and chat about AI!

Stories by NYU Center for Data Science on Medium

Official account of the Center for Data Science at NYU, home of the Masters in Data Science.

sebastianraschka.com

Sebastian Raschka is the author of the bestselling book “Python Machine Learning.” As a Ph.D. candidate at Michigan State University, he is developing new computational methods in the field of computational biology.

Data Elixir

Data Elixir is a weekly newsletter of curated data science news and resources from around the web.

Free for data lovers.

Becoming A Data Scientist

Documenting my path from "SQL Data Analyst pursuing an Engineering Master's Degree" to "Data Scientist"

FlowingData

FlowingData explores how statisticians, designers, data scientists, and others use analysis, visualization, and exploration to understand data and ourselves.

FastML

This site is brought to you by the letters “M” and “L”. It is meant to tackle interesting topics in machine learning while being entertaining and easy to read and understand.

Natural Language Processing Blog

My biased thoughts on the fields of natural language processing (NLP), computational linguistics (CL) and related topics (machine learning, math, funding, etc.)

Andrej Karpathy blog

I am Andrej Karpathy, a PhD student at Stanford working on Deep Learning. My academic website has much more information.

Machine Learning at Berkeley Blog - Articles

Machine Learning at Berkeley (ML@B) is student-run organization based at the University of California, Berkeley, and is dedicated to building and fostering a vibrant machine learning community on the University of California, Berkeley campus as well as contributing to the greater machine learning community beyond the campus.

DataScience Blog

DataScience pairs data expertise with powerful tools to help businesses unlock the value in their data.

Programming

You've Been Haacked

I work at GitHub doing whatever I can to make it even more awesome.

Genbeta Dev

Blog sobre programación.

The Geek Stuff

I will be posting instruction guides, How-Tos, troubleshooting tips and tricks Linux and open source technologies. My focus is to write articles that will either teach you or help you resolve a problem.

Texblog - because LaTeX matters

My intention is to provide valuable tips and tricks for your daily LaTeX editing. In addition, I’ll try to give answers to questions which are not easily found on the web.

Asyncified!

Hi, my name is Yuval Itzchakov, I'm 27 years old from Israel. I've been programming for about the last 4 years, started out in the .NET stack and slowly broadening horizions to Python and some C++. I love learning internals of systems and exploring what happens under the covers.

Yegor Bugayenko

I'm Yegor Bugayenko (Russian: Его́р Бугае́нко), a programmer, a founder, an investor, and a philanthropist.

Security

JerryGamblin.com

Security Advocate. Problem Solver. Hacker. Ebullient Communicator.

Open Whisper Systems Blog

Open Whisper Systems is both a large community of volunteer Open Source contributors, as well as a small team of dedicated grant-funded developers. Together, we're working to advance the state of the art for secure communication, while simultaneously making it easy for everyone to use.

Schneier on Security

Bruce Schneier is an internationally renowned security technologist, called a "security guru" by The Economist. He is the author of 13 books--including Data and Goliath: The Hidden Battles to Collect Your Data and Control Your World-- as well as hundreds of articles, essays, and academic papers.

Krebs on Security

Brian Krebs worked as a reporter for The Washington Post from 1995 to 2009, authoring more than 1,300 blog posts for the Security Fix blog, as well as hundreds of stories for washingtonpost.com and The Washington Post newspaper, including eight front-page stories in the dead-tree edition and a Post Magazine cover piece on botnet operators. In 2014, he was profiled in The New York Times, Business Week and by Poynter.org. More recently, he was invited to an “Ask Me Anything” discussion on Reddit about investigative reporting.

ImperialViolet

Adam Langley's Weblog

Trend Micro Simply Security

For nearly 30 years, Trend Micro’s unwavering vision has been to make the world safe for exchanging digital information. Security is our entire focus, and it shows. This single-minded passion has inspired our innovations that keep up with the bad guys despite a changing IT landscape, riskier user behavior, and constantly evolving threats.

Pentester.es

Jose is one of the individuals who have earned the GIAC Security Expert (GSE) designation. He is a SANS Institute community instructor for penetration testing courses and a regular speaker at security conferences.

Un informático en el lado del mal

Seguridad informática, hacking, pentesting, ldap injection, blind ldap injection, sql injection, blind sql injection, heavy queries, connection string parameter pollution, foca, evil foca, latch, dust rss, metashield protector, faast, metadatos, libros de seguridad informática, informática 64, recover messages, 0xword, cálico electrónico, eleven paths, telefónica y chema alonso. las opiniones son de los autores de los artículos y las mías son mías personales.

MuySeguridad

Noticias sobre seguridad, virus, antivirus, hacking, phising, spam, ataques, timos, estafas, malware y otras amenazas de seguridad informática.

Security By Default

Después de mucho tiempo hablando sobre la posibilidad de crear un blog íntegramente sobre seguridad informática, nos hemos decidido a ponernos en marcha y crear un espacio donde poder compartir experiencias y hablar de los aspectos técnicos relacionados con la seguridad informática.

Lifehacker

Tips, tricks, and downloads for getting things done.

Hispasec @unaaldia

Servicio gratuito de noticias y análisis sobre seguridad en español.

Ars Technica » Risk Assessment

Serving the Technologist for more than a decade. IT news, reviews, and analysis.

22 Podcasts / Canales de Youtube / Blogs sobre Ciencia

04/09/2017
Artículo original

¿Qué es esta lista?

Para terminar esta serie de artículos que he ido publicando sobre recursos que suelo seguir sobre Informática y matemáticas, voy a publicar la última lista, sobre Ciencia.

Si sigues algún recurso no listado abajo y quieres contribuir, no dudes en hacer un Pull Request!

Gracias a @sinclair_88 por proponer la idea de crear estas listas.

Más listas

Youtube

Looking Glass Universe

Curiouser and curiouser... About the strange world of maths and physics

Sixty Simbols

Cool videos about physics and astronomy.

Veritasium

An element of truth - videos about science, education, and anything else I find interesting.

Sciencium

Exciting discoveries in science, recent and historical.

ASAP Science

Your weekly dose of fun and interesting science.

Physics Girl

Physics videos for every atom and eve.

Science Magazine

The latest videos from Science magazine, the world's leading outlet for scientific news, commentary, and cutting-edge research.

SmarterEveryDay

I explore the world using science. That's pretty much all there is to it. Watch 2 videos. If you learn something AWESOME, subscribe.

VSauce

Our World is Amazing.

Podcasts

60 seconds Science

Tune in every weekday for quick reports and commentaries on the world of science—it'll just take a minute

Physics World Science

Physics World is the world's leading physics magazine. Every month it brings you features from the world's leading physicists and science writers, comprehensive news and analysis, incisive opinion pieces, sound careers advice, reviews of the best new books and multimedia, and the ever-popular Lateral Thoughts page.

Science Talk

Join host Steve Mirsky each week as he explores the latest developments in science and technology through interviews with leading scientists and journalists

The Guardian's Science Weekly

The best place to learn about the big discoveries and debates in biology, chemisty, physics and sometimes even maths

The Titanium Physicists Podcast

Every episode, I bring together two of my physicists with some of the most fun and interesting people I have ever met, and we have a conversation about a wizard-level physics topic. It’s fun, and fascinating, and entirely unique.

ScienceVS

Science Vs Podcast

There are a lot of fads, blogs and strong opinions, but then there’s SCIENCE. Science Vs is the show from Gimlet Media that finds out what’s fact, what’s not, and what’s somewhere in between. We do the hard work of sifting through all the science so you don't have to. This season we tackle immigration, climate change, true love and artificial sweeteners.

Radio Skylab

Radio Skylab

Radio Skylab is a casual podcast about space, science and other curiosities. Made with enthusiasm from the Canary Islands by four scientific disseminators:

Víctor Manchado (@vmanchado) is the editor of Pirulo Cosmico, a blog where astronomy is explained in a simple way. Daniel Marín (@eurekablog) is responsible for the popular blog of astronomy and astronautics Eureka. Premio Bitácoras 2012, Prize 20Blogs 2015 to the best blog in the category of science, and Naukas Award 2013 to the best blog of scientific popularization. Kavy Pazos (@molasaber) is the creator of Mola Saber, the blog that through infographics and articles fuses art and science. Víctor R. Ruiz (@vrruiz) is the creator of Infoastro, a site about astronomical news; And Blogalia, the first blog service in Spanish.

Otros

Kurzgesagt – In a Nutshell

Videos explaining things with optimistic nihilism. We are a small team who want to make science look beautiful. Because it is beautiful.

Spring MVC ... primer ejemplo (Rest)

03/09/2017
Artículo original

Para este ejemplo crearemos una base de datos (yo uso postgresql) llamada proyecto, agregaremos una tabla usuario con los siguientes campos: id, nombre, password, logeado y area.

CREATE TABLE public.usuario
(
    id INTEGER NOT NULL,
    nombre CHARACTER VARYING NOT NULL,
    password CHARACTER VARYING  NOT NULL,
    logeado BOOLEAN,
    area CHARACTER VARYING,
    CONSTRAINT usuario_pkey PRIMARY KEY (id)
);

Ahora agregaremos unos datos:

INSERT INTO public.usuario(
        id, nombre, password, logeado, area)
        VALUES (1, 'Antony Yung', 00T$@l12', true, 'sistemas'),(2, 'Adrian Uribe', '3EvBb00', false, 'administracion'),
    (3,'
Ernestina Pedroza','@22GgHQll',true,'recursos humanos');

Una vez creado la base de datos y su correspondiente tabla nos enfocaremos a crear el ejemplo con Spring MVC.

¿Qués es lo que ncesitaremos?

  1. Archivo: build.gradle , para configurar las dependencias necesarias

leer más

5 errores que suponen el despido inmediato de un programador

01/09/2017
Artículo original

Cabecera Ornamental

Como programadores hay ciertas conductas que tenemos que evitar si no queremos perder nuestro puesto de trabajo en el acto. Muchas de las ideas que se comentarán a continuación pueden ser causa de despido en muchos otros sectores pero como este blog es para desarrolladores de software lo analizamos desde esa perspectiva.

En las empresas de desarrollo la confianza es un valor clave porque cualquier acto de deslealtad por parte del desarrollador puede suponer un daño irreparable para la empresa: filtraciones del código fuente, plagios, difundir información confidencial, etc...

En la mayoría de los casos podemos concluir que las causas de despido fulminante se pueden resumir en las siguientes categorías:

  • Negligencia grave, como eliminar "sin querer" una gran cantidad de datos.
  • Incompetencia,
  • La falsificación, la mentira, la tergiversación y cualquier otra acción que genere desconfianza.
  • Intenciones maliciosas como intentar apropiarse o vender a otra empresa código fuente cerrado con derechos de autor y relacionados.
  • Comportamientos ilegales o poco profesionales, como desvelar información confidencial o datos protegidos por la ley.
  • Vanagloriarse todo el tiempo de los logros personales, queriendo demostrar todo el rato ser un programador x10, que también mina la relación personal con compañeros y superiores jerárquicos ya que puede herir muchos egos.

Habiendo enumerado de forma resumida las causas más comunes que pueden desembocar en despidos "express", veremos ahora algunos casos más tangibles para entender mejor dicha casuística.

Apropiarse de código fuente cerrado

Si tu empresa simplemente te despide por apropiarte de información confidencial y revelarla a terceros, tendrás suerte. Lo normal es que te caiga una demanda penal.

Esto es algo por lo que no solo se te despide ipso facto, sino que te pueden detener, interrogar y ser acusado por sustraer información confidencial.

Se han dado casos que no son muy conocidos como el de un desarrollador que trabajaba para una empresa de programación y que programaba código dentro del ámbito de la empresa que bajo ningún caso podía programarse desde fuera. Su software periódicamente informaba sobre su estado enviando un email a un servidor que recolectaba información sobre el estado del mismo. Tanto el software que enviaba los emails como el servidor que recibía los emails se suponían que estaban en la intranet corporativa. Un día su servidor empezó a recibir emails desde fuera de la empresa. Otro empleado había sustraído una copia del código y lo estaba ejecutando desde fuera del ámbito de la empresa. Sabían perfectamente quién lo había robado, y a dónde lo había llevado: los emails fueron enviados desde nombre.del.ladrón.@nueva.empresa.com ¡Una lumbrera!

La nueva empresa fue informada sobre el suceso, y al responsable de la sustracción lo despidieron. Se llegó a pleitear y hubo condena.

La moraleja de la historia es: antes de robar código, párate a estudiarlo y a entenderlo antes de ejecutarlo. O mejor: no lo robes ;-)

Incompetencia y tergiversación

Un CEO de una empresa de desarrollo comenta que solo ha despedido a sus empleados programadores por dos razones:

  • Incompetencia, que se manifiesta cuando un desarrollador exagera sobre sus destrezas en su CV. Si dices que llevas tres años programando, tu código debe reflejarlo. Si dices que has hecho una implementación de Apache Hadoop, debes ser capaz de hablar sobre algunas de las buenas prácticas a la hora de hacerlo. Este tipo de cosas...

  • Tergiversación, que se da cuando un entregable no está a la altura de lo esperado o cuando un código no hace ni por asomo lo que tiene que hacer. Por ejemplo, un desarrollador comenta que casi ha terminado con una tarea y prolonga esa historia durante un par de sprints más. Cuando revisas el trabajo ves que el código es horrible. O lo que es peor, ves un código que solo ha requerido una milésima parte del esfuerzo que el desarrollador afirma que le ha costado hacer.

Este CEO luego comenta que cree en las segundas oportunidades, así que no despedía a nadie fulminantemente por este tipo de asuntos. Por un lado es una forma de exigirle a un empleado lo que ha prometido, tipo: "oye, has dicho que sabías hacer esto, aprende a hacerlo y rápido." Y por otro lado: "demuéstrame que eres capaz de hacer esto que dices."

Si estas situaciones no terminan en una mejora en el rendimiento y las actitudes son reiteradas en el tiempo, evidentemente termina en despido.

Saltarse órdenes directas

Una causa muy común de despidos es saltarse las órdenes específicamente indicadas por un superior.

Un ejemplo es la historia que relata un ingeniero informático. Cuenta que trabajaba con un grupo extraordinario de 20 ingenieros senior a finales de los años 90, cuando cualquier fallo en el build nocturno significaba llamar a todos los programadores implicados en la creación del código, a las 9:30 de la noche. Tenían que solucionar el problema tras una breve y colérica ráfaga de intercambio de emails. De esta forma, todo sea dicho, conseguían hacer un equipo de ingenieros orientado a hacer las cosas bien... mediante la presión de grupo.

Comenta que uno de los ingenieros hacía que el build se rompiese en varias ocasiones, y a medida que se acercaban a la fecha de lanzamiento de la versión trimestral, se le pidió expresamente que no registrara ningún cambio. Poco antes de la salida de la versión -se veía venir- registró unas modificaciones que hicieron que se rompiera el build. Al día siguiente le mostraron la puerta. Hubo aplausos.

Aquí la moraleja es no desobedecer las órdenes de tus superiores jerárquicos. Sobre todo si dichas decisiones están alineadas con las expectativas del equipo.

Revelar información confidencial

Otro desarrollador cuenta que trabajaba en una empresa de videojuegos y que uno de los equipos de trabajo estaba muy centrado en un juego con mucha expectación para la Nintendo DS. Entre ellos había un joven programador japonés un poco cándido que se sentía muy emocionado por estar trabajando en tan ilustre videojuego. Tal era su alteración que hizo un par de capturas de pantalla del videojuego y se la envió a un amigo para alardear.

Los pantallazos correspondían a una versión muy preliminar que estaba aún por definirse. Naturalmente, acabaron apareciendo en varios blogs de videojuegos, no solo en japoneses sino mundiales. La empresa rastreó la filtración hasta el inocente programador japonés y le despidieron de inmediato.

Según el protagonista era un tipo majo, y fue un error estúpido y muy ingenuo, pero la verdad es que no da mucha pena. Un videojuego es una inversión titánica y lleva muchos años desarrollarlo con un equipo enorme. Cuando muestras un juego antes de que esté terminado, el público da por hecho de que esa será la verdadera calidad del juego como producto terminado. Cualquier cosa que no esté bien pulida puede llegar a causar un verdadero terremoto entre los unos fans furibundos. Las casas de videojuegos tienen que tener mucho cuidado a la hora de sacar un juego, porque puede ser un éxito o un fracaso al antojo de un Internet inflamable. Con que un solo influencer dictamine que algo no le gusta, o extienda un rumor dañino puede arruinar totalmente un proyecto.

Mentir

Por último, recogemos la anécdota de un trabajador de una empresa de tecnologías de la información, que a pesar de ser un trabajador absolutamente incompetente, consiguió que lo despidieran únicamente tras imprimir anime "subidito de tono" en transparencias en una impresora de color en horas de trabajo. Pero no lo despidieron por esto.

Usó transparencias que no estaban diseñadas para impresoras láser, que se derritieron y terminaron estropeando una impresora muy, muy cara de forma irreparable. Pero no lo despidieron por esto.

Decidió abrir la impresora, la desmontó, e infringió las condiciones de garantía de la misma. Pero no le despidieron por esto.

Lo despidieron porque lo negó todo. Mintió. Así de fácil. ;-)

Nota: las historias de este artículo son un compendio de algunas de las respuestas de este hilo de Quora que nos han parecido más ilustrativas.

Página Anterior Página Siguiente