Por
campusMVP
.
Publicado el
El que a estas alturas tenga todavía dudas de que gran parte de las guerras del futuro se librarán en Internet, debería leer esto. En diciembre del año pasado se produjo un incidente en tres compañías eléctricas de Ucrania, que enseguida dio la vuelta al mundo. Se trataba del primer ataque informatizado contra una infraestructura nacional. que se lleva a cabo con efecto. Es decir, sí, ya había habido multitud de ataques a centrales nucleares, controles de oleoductos, redes semafóricas, etc...pero nunca uno cuyo efecto hubiera impactado en el servicio. En este caso cerca de la mitad de los hogares de la región ucraniana de Ivano-Frankivsk se quedaron sin electricidad; más de 225 mil casas...
[Más]
Por
campusMVP
.
Publicado el
Los algoritmos. Esos conceptos abstractos que se estudian en la teoría de computación y que luego raramente los usas en tu trabajo diario programando. ¿Cuándo fue la última vez que creaste una lista enlazada o diseñaste un algoritmo para búsqueda eficiente de datos? Probablemente nunca. De hecho, cualquier lenguaje o plataforma que se precie te ofrecerá "de serie" el 90% de los algoritmos que vas a necesitar usar alguna vez...
Sin embargo, cualquier problema que debas resolver usando un programa se reduce al final a crear un algoritmo, una serie de pasos lógicos y ordenados que te permiten resolver el problema de la manera más eficiente posible. Conocer la teoría y los conceptos que hay debajo de los algoritmos comunes (los que ya te da resueltos el propio lenguaje), aunque puedan parecer abstractos, en realidad marcan la diferencia entre un buen programador y un gran programador.
[Más]
Por
José M. Alarcón Aguín
.
Publicado el
.NET Core es la nueva generación de tecnologías basadas en .NET y orientadas a la nube. No se trata de una nueva versión llamada a sustituir a la anterior, sino que es una nueva tecnología que se mantendrá en paralelo a la tecnología actual. Tiene unos objetivos diferentes: sobre todo que sea multi-plataforma (Windows, Linux y Mac), que ofrezca más rendimiento y menos uso de recursos para su uso en la nube, y que sea totalmente modular. En un artículo te explicábamos hace poco en qué consiste .NET Core, qué contendrá y qué esperar de esta tecnología en el corto plazo.Hace poco el equipo de .NET Core sacó un artículo en el que explicaban a vista de pájaro qué opciones existen para poder migrar tus aplicaciones desde la versión completa de .NET a la más liviana y multi-plataforma nueva versión, que por otro lado no ha sido lanzada todavía...
[Más]
Por
campusMVP
.
Publicado el
En los últimos años son numerosos los nuevos lenguajes de programación que van ganando aceptación entre los desarrolladores. Estos lenguajes revolucionaron la industria tecnológica, llegando en algunos caso a superar en popularidad a los lenguajes “de toda la vida”, como por ejemplo sucedió con Go de Google o Rust de Mozilla en su momento de mayor apogeo. Sin embargo, a excepción de Swift, cuya adopción parece imparable, de acuerdo con los datos publicados por la empresa RedMonk, los desarrolladores siguen prefiriendo los lenguajes establecidos. La figura que se muestra a continuación ha sido extraída de los datos publicados por RedMonk (véase enlace anterior) y por lo tanto es propiedad de RedMonk. En un post anterior ya os explicamos con qué propósito realizan este ranking de lenguajes y cómo llevan a cabo el análisis, por lo que ahora...
[Más]
Por
campusMVP
.
Publicado el
Te proponemos una tarea complicada: vete a tu buscador de imágenes favorito, busca una fotografía cualquiera y trata de adivinar, solo usando la imagen, aproximadamente en dónde fue tomada. No hace falta acertar la ciudad, llega con el país o incluso el continente... Parece una tarea sencilla, pero no lo es en absoluto. Si la foto tiene un edificio representativo o un cartel de carretera es muy fácil, pero si lo único que tenemos es un paisaje o, peor aún, el interior de un edificio, es casi imposible acertar por mucho mundo que tengamos.
Hace unos días un equipo de investigación de Google, liderado por el especialista alemán en visión artificial Tobias Weyand, han lanzado un software, PlaNet, capaz de hacer precisamente eso: identificar la ubicación aproximada de una foto usando tan solo la propia foto.
[Más]
Por
Eduard Tomás
.
Publicado el
El pattern matching (se podría traducir como búsqueda de patrones) es otro concepto traído de la programación funcional que (como la propia programación funcional, de hecho) está tomando cada vez más importancia. ¿Pero… en qué consiste exactamente? Muchos lenguajes tienen este concepto, aunque no todos con el mismo nivel de profundidad. En este artículo hablaremos un poco del pattern matching , su importancia y veremos algunos ejemplos. En la actualidad ECMAScript ya dispone de ciertas capacidades de patrones y se está valorando incluirlo en C# 7, por lo que conviene ir aprendiendo sobre el asunto. Nota: Aunque los conceptos son genéricos, el lenguaje que vamos a usar para los mismos es Elixir. Elixir es un lenguaje funcional que se ejecuta bajo BEAM, la máquina virtual de Erlang. La razón para escojer Elixir es que el pattern ...
[Más]
Por
Javier Suárez Ruiz
.
Publicado el
Actualmente los teléfonos inteligentes o smartphones forman parte de nuestro día a día, entrando de lleno en las actividades diarias de cada uno de nosotros. Desde despertarnos a escribir un correo, pasando por estar al tanto de las últimas noticias, tomar fotos o permanecer en comunicación constante. Con cada revisión de hardware se aumentan las posibilidades de estos dispositivos como, por ejemplo, la integración de pagos o la conexión con otros dispositivos con el gran auge del Internet de las Cosas. Todo el apogeo del mundo móvil tiene una gran repercusión en nuestro mercado, el tecnológico, en nuestro mundo, el de los desarrolladores. Aunque las áreas de movilidad de las empresas cada vez tienen más y más peso, el desarrollo móvil es sin duda, un gran reto. Con diferentes plataformas dominando el mercado, con diferentes lenguaj...
[Más]
Por
campusMVP
.
Publicado el
Si estás probando una aplicación lo normal es que quieras probarla usando las condiciones más realistas posibles, y usando los datos más reales que puedas. En una aplicación que ya está en producción son los propios usuarios los que llenan la base de datos de información, pero mientras estás desarrollando no tienes nada de esto, y debes inventarte los datos tú mismo. Si introduces esos datos a mano, uno por uno, no vas a ir muy lejos.
Si los generas de manera aleatoria es fácil para campos numéricos, pero muy complicado para otro tipo de datos, como nombres, direcciones o incluso tarjetas de crédito. Además a veces es importante generar los datos de manera realista, y no solo "que funcionen". Por ejemplo, para hacer una demo a clientes o cre...
[Más]
Por
campusMVP
.
Publicado el
Cuando trabajas en un proyecto de tamaño pequeño es fácil encontrar las cosas. Si necesitas ver el código para tal o cual funcionalidad puedes localizar rápidamente el archivo en el que está porque tienes unas pocas decenas de ellos. Si además eres una persona ordenada los tendrás bien organizados en carpetas, por área funcional o un criterio similar.
Sin embargo cuando debes trabajar con soluciones grandes, con centenares de archivos, en varios proyectos dentro de la misma solución, capas, funcionalidades diversas y relacionadas, etc...es mucho más complicado. No solo eso, cuando tienes que tocar alguna funcionalidad debes abrir varios archivos relacionados al mismo tiempo, incluso muchas veces pertenecientes a varios proyectos. Si encima debes alternar con fre...
[Más]
Por
Eduard Tomás
.
Publicado el
A pesar de que pueda parecer lo contrario, la currificación no tiene sus orígenes en a
[Más]