Obtener el máximo y mínimo de una lista de números con Java 8

Desde hace mucho tiempo quiero empezar a escribir sobre Java 8 y el uso de Lambda Expressions. Por cuestiones de tiempo no me ha sido posible dedicarme a escribir sobre el tema. En esta ocasión compartiré pequeños tips sobre el manejo de listas en Java. Ya hemos escrito sobre listas en este blog:

Las expresiones lambda son sumamente útiles cuando se manejan grandes cantidades de datos almacenados en listas. Supongamos que tenemos la siguiente colección de números:

Ahora deseamos saber cual es el máximo y el mínimo de esta serie de datos. En programación convencional haríamos lo siguiente:

Esto funciona bien pero no es eficiente. Para cuestiones de simplicidad (bueno no tanto pero todo es relativo) utilizamos expresiones Lambda propias de la versión 8 del lenguaje de programación Java. El código mostrado arriba quedaría así:

Solo dos líneas… ¿Interesante no? Probemos el código completo:

El resultado es el siguiente:

Obtener el máximo y mínimo de una lista de números con Java8

 

El resultado es exactamente el mismo, pero utilizando menos instrucciones. Espero que esta información les sea útil. Saludos.

Leer Más

Utilizar Github como repositorio de Maven

Hace poco escribí un post sobre qué es Maven y para que se utiliza. Algo sencillo, sin entrar mucho en detalles, pero a la vez práctico y ajustado a las necesidades del usuario promedio de Panama Hitek. En esta entrada me voy a dedicar a explicar cómo podemos utilizar Github como repositorio de Maven.

Primero lo primero: en Panama Hitek hemos escrito 2 guías, una para principiantes y una avanzada sobre el uso de Git y Github. Estas son:

Ahora lo que haré será dirigirme a aquellos programadores que desarrollan códigos para Java y les gustaría que sus contenidos estén disponibles para el público a través de Maven. Vamos a utilizar un servicio llamado Jitpack.

En un mundo perfecto deberíamos poder subir nuestro repositorio a Maven Central y hacerlo público como cualquier otra dependencia de las que vemos por ahí en Internet. Sin embargo esto es complicado y yo la verdad no he encontrado la forma de hacerlo. Quizás no he investigado más a fondo debido a que la opción que Jitpack me ofrece es mucho menos complicada que cualquier otra que haya visto navegando en la web. (más…)

Leer Más

¿Qué es Maven y para qué se utiliza?

Una de las cosas que más me gusta de Java es la gran cantidad de código que hay escrito allá afuera. Son cientos o quizás miles de librerías que podemos utilizar para múltiples propósitos. Programar no significa inventar la rueda sino aprovechar los recursos que ya existen de la mejor forma para lograr los objetivos propuestos.

Una de las herramientas más útiles a la hora de utilizar librerías de terceros es Maven. Maven se utiliza en la gestión y construcción de software. Posee la capacidad de realizar ciertas tareas claramente definidas, como la compilación del código y su empaquetado. Es decir, hace posible la creación de software con dependencias incluidas dentro de la estructura del JAR. Es necesario definir todas las dependencias del proyecto (librerías externas utilizadas) en un fichero propio de todo proyecto Maven, el POM (Project Object Model). Este es un archivo en formato XML que contiene todo lo necesario para que a la hora de generar el fichero ejecutable de nuestra aplicación este contenga todo lo que necesita para su ejecución en su interior.

Sin embargo, la característica más importante de Maven es su capacidad de trabajar en red. Cuando definimos las dependencias de Maven, este sistema se encargará de ubicar las librerías que deseamos utilizar en Maven Central, el cual es un repositorio que contiene cientos de librerías constantemente actualizadas por sus creadores. Maven permite incluso buscar versiones más recientes o más antiguas de un código dado y agregarlas a nuestro proyecto. Todo se hará de forma automática sin que el usuario tenga que hacer nada más que definir las dependencias. (más…)

Leer Más

¿Qué es Arduino y para qué se utiliza?

Esta entrada debimos escribirla hace mucho tiempo. Es algo que se debió definir antes de iniciar el proyecto Panama Hitek. Hemos hablado tanto de Arduino, escrito tantos posts, publicado tantos proyectos y tantos tutoriales y no hemos sido capaces de contestar la pregunta básica: ¿qué es Arduino y para qué se utiliza?.

En esta ocasión escribiré una entrada dirigida a los principiantes, los novatos, los curiosos, los autodidactas, artistas, innovadores, emprendedores, gente con nada que hacer, gente con mucho por hacer y la lista se extiende. Trato de que cada post que escribo para este blog quede como mi contribución a esta sociedad, a la humanidad, al mundo entero. A continuación mi aporte para ustedes. (más…)

Leer Más

FLISOL 2015 en Panamá

Todos los años se realiza el Festival Latinoamericano de Instalación de Software Libre mejor conocido por su acrónimo FLISOL. Este es un evento el cual tiene como objetivo difundir el movimiento de software libre mediante un día lleno de actividades como talleres, charlas e instalaciones de las diferentes distribuciones Linux/GNU que existen actualmente. Panamá es uno de los países en donde el movimiento de software libre y código abierto es de suma importancia y por tal razón la comunidad Floss-Pa una vez decide sumar esfuerzos para poder realizar el FLISOL este año.

Desde hace más de dos años colaboro con este equipo de personas amantes de la tecnología y recomiendo que asistan a este evento si quieren comenzar sus pininos en estas áreas de tecnología, especialmente de los sistemas operativos abiertos. A diferencia de otros años, el 2015 trae una grandiosa sorpresa y es la realización del FLISOL en la provincia de Chiriquí, específicamente en David. El FLISOL David se estará dando en la sede de la Universidad del Istmo este sábado 11 de Abril en donde la entrada será totalmente gratuita.

Para el FLISOL David tendremos charlas y talleres completamente variados que van desde desarrollo de aplicaciones móviles, virtualización, electrónica con webserver y más. Adicional, tambień tendremos algunas mesas demostrativas de Beagle Board, Icaro, Rasperry Pi, Arduino entre otros.

Por otro lado, la capital no será excluyente en este evento y tendremos el evento en Panamá el día sábado 25 de Abril en la Universidad del Istmo, desde las 9 de la mañana hasta las 5 de la tarde. Como es de esperar, se tiene una página web que pueden utilizar para obtener información más actual y precisa, www.flisolpanama.org. De igual manera al final de este artículo dejaré los banners promocionales en donde se tienen todos los datos que harán que seas participe de este magno evento.

Este es un evento en donde si tienes un ordenador y estas pensando o te ha pasado por la cabeza cambiarte de sistema operativo, entonces esta es tu oportunidad ya que se tendrá gente dispuesta a ayudarte a realizar ese gran paso.

Finalmente, para las personas que estén interesadas en la parte de hardware, voy a estar realizando un taller en donde se podrá trabajar con un servidor web y la plataforma arduino. Si quieres tomar este taller sería genial que llevases tu placa Arduino, y un ordenador con cualquier sistema operativo Linux/GNU que tenga instalado apache y php.

Sin más, espero verlos en el FLISOL 2015 sede David y Panamá =).

FLISOL 2015. David, Chiriquí . Banner promocional.
FLISOL 2015. David, Chiriquí . Banner promocional.
FLISOL 2015, Ciudad de Panamá. Banner promocional.
FLISOL 2015, Ciudad de Panamá. Banner promocional.

Leer Más

Escalando unidades de conversión Analógica-Digitales

Escalando unidades de conversión análoga-digitales  es una técnica utilizada para convertir la magnitud física analógica en cualquier tipo de salida deseada.

En esta entrada intentaremos explicar una técnica matemática simple que utiliza las funciones recta como base , y a partir de ella será posible lograr que una señal analógica del mundo físico, como por ejemplo la salida de un sensor o transductor, a partir de sus unidades de conversión digital, sean escaladas al tipo de salida deseado. Por ejemplo un sensor de distancia , podrá representarse como una salida en metros o centímetros ( lo clásico) o por ejemplo en escala porcentual de 0 a 100%, o la escala que se desee, por ejemplo adimensional entre -70 y 70, es decir de acuerdo a lo que se desee. La condición fundamental es que el sensor o transductor sea lineal al menos en nuestro rango de uso. Este tipo de escalamiento se utiliza para manejar salidas mas acordes a nuestros requerimientos , en donde por ejemplo no sea de importancia el valor absoluto de la medición sino medidas relativas o en otro rango. Por ejemplo se desea controlar la temperatura de un horno, para lo cual se desea implementar un sistema que mantenga al mismo al 60%  de su capacidad máxima. (más…)

Leer Más

Guía práctica sobre el uso de LaTeX

El siguiente documento pretende ser una guía para aquellas personas que utilicen el Sistema LaTeX para la elaboración de artículos científicos o documentos en general. Está basada en el uso del software TeXnicCenter, el cual es completamente gratuito y puede ser descargado desde Internet.
Los ejemplos desarrollados en este documento están basados en la plantilla de la IEEE para LaTeX, la cual utiliza la clase IEEETran, propia de la IEEE. Se explicará cómo instalar el software, cómo configurarlo para que su uso sea más amigable al usuario, las principales modificaciones que se deben hacer a la plantilla que se va a utilizar,  modificaciones al estilo del formato, aspectos relacionados a la redacción en general y la inserción de imágenes, gráficos y tablas en documentos.

El uso de LaTeX es requisito para muchas revistas indexadas que sólo aceptan los documentos si estos se encuentran traducidos a código LaTeX. (más…)

Leer Más

Una visita a la termoeléctrica Miraflores, en el Canal de Panamá

El Canal de Panamá, una de las más importantes rutas del comercio mundial requiere de recursos energéticos seguros y confiables de manera permanente. La termoeléctrica Miraflores es una de las plantas de producción de energía que forma parte del complejo de la ACP, encargado de proporcionar la energía necesaria para el funcionamiento de la vía interoceánica

 

Actualmente en nuestro país se vive una situación muy delicada en cuanto a la producción de energía eléctrica. Podemos decir que nos encontramos en medio de una crisis. Dependemos mucho de la producción de energía en las termoeléctricas y en las hidroeléctricas. Existen pocas opciones en cuanto a energías renovables.

Como parte de mi formación como Ingeniero Electromecánico he tenido la oportunidad de asistir a una gira técnica a la termoeléctrica de Miraflores y a la hidroeléctrica Madden. Ambas forman parte del complejo de producción de energía que se encarga de abastecer el Canal de Panamá y aportan energía al Sistema Eléctrico Nacional. (más…)

Leer Más

Uso básico de LabView

El uso básico de LabView es una de aquellas habilidades que nunca estará de más. Es algo fundamental que debemos tener a mano, ya que nunca sabremos el momento en el cual lo vayamos a utilizar. Al menos entre nosotros, los estudiantes de ingeniería.

El LabView es una plataforma y entorno de desarrollo para diseñar sistemas, con un lenguaje de programación visual gráfico. Recomendado para sistemas hardware y software de pruebas, control y diseño, simulado o real y embebido, pues acelera la productividad. El lenguaje que usa se llama lenguaje G, donde la G simboliza que es lenguaje Gráfico.

Yo la verdad no se mucho de LabView, sin embargo en la universidad estoy tomando el curso de Laboratorio de Teoría de Control II donde tenemos que utilizar este software, por lo que me he propuesto documentar en video los conocimientos que adquiera durante el trascurso del semestre. (más…)

Leer Más