Posted tagged ‘java’

Android como plataforma de desarrollo

25 abril, 2019

Hola a todos,

Trayéndoles las siguientes notas del curso de Android, ahora vamos a conocer a Android como plataforma de desarrollo. Conoceremos las herramientas con las que podemos producir aplicaciones Android, cómo se administra la ejecución de las aplicaciones, cómo y qué se debe tomar en cuenta al desarrollar una aplicación.

Aquí las notas: http://www.nachintoch.mx/teaching/mobile_dev/android-framework.pdf

Códigos hash: ¿Qué son? ¿para qué sirven? ¿cómo se usan?

11 mayo, 2017

Hola a todos,

les comparto de nueva cuenta y como no he hecho en algún tiempo, notas de clase… Este semestre he estado impartiendo cursos que ya había dado en el pasado, por lo que en lugar de escribir nuevas notas he estado afinando las que ya tenía.

Pero, hubo un cambio en el material de estas fechas, por lo que preparé una clase sobre códigos hash; aquí presente.

En este resumen, se nos explica qué es un código hash, algunas de sus aplicaciones dentro del dominio de las estructuras de datos y cómo podemos usarlas en nuestros programas y aplicaciones.

A continuación, la liga a las notas.

Si desea conocer las aplicaciones que tiene el hashing en la seguridad informática, puedes consultar este material en seguridad y ruby; recomendaría también consultar el proyecto de ejemplo anexo.

Espero les sea útil y que el límite sea la imaginación.

¡Primera versión estable de la biblioteca de utilidades para Java & Android!

15 septiembre, 2016

¡Hola cibernautas!

Hace como 3 años; sinceramente ya no recuerdo bien cuanto tendrá de esto (y me da flojera buscarlo en el histórico de publicaciones honestamente), anuncié que llevaba algún tiempo trabajando con una biblioteca de propósito general para Java.

Posteriormente; conforme fui desarrollando nuevos proyectos, la encontré útil también para desarrollar aplicaciones nativas en Androd… Pero también me empezó a ganar el proyecto.

Entre que todavía estaba terminando mis créditos de grado, tenía un trabajo -muy- demandante y factores personales, por allí del 2014 me ví en la necesidad de meter el proyecto a la nevera.

La verdad hasta lo había olvidado, hasta que el año pasado integré algunas cosas que usé para el curso de computo concurrente de ese momento.

Luego la miré con ojos más fríos y decidí que había muchas cosas redundantes porque las podemos encontrar con mejores implementaciones en las bibliotecas de Java o ya habían sido resuelto de mejor manera por otros desarrolladores, y empecé a seleccionar aquellas clases que consideré realmente útiles.

Quizá la más útil de todas sea Sprite; que como su nombre sugiere, modela una hoja de animaciones bidimensionales y además le da características físicas, como masa, fricción y fuerza; para simular movimientos como se acostumbra hacer en los videojuegos.

El resto son básicamente “hijas” de las clases envolventes de tipos de datos primitivos de Java, pero con la adición de extender a comparable. Quizá esto ya no sea tan novedoso desde que Java 7 nos permite usar objetos como números (cuando son de la clase Byte, Integer, Double u otras que en efecto representan números); pero aún así pueden ser de utilidad para usarlo con estructuras de datos como listas o hashes que requieren de objetos comparables para ordenarse.

Así que con esto, entrego lo que es deuda. Algunos notarán que ya había una versión publicada, pero no estaba terminada y tenía algunos problemas.

Sin más, les dejo enlace a:

Espero que les sea de utilidad.

Java: Introducción a la programación usando hilos de ejecución

7 septiembre, 2016

Hola a todos!

En esta ocasión les comparto un material que nos introduce a la programación con hilos en Java. Las notas asumen que el lector está familiarizado con el lenguaje (Java).

Las notas nos dan a conocer cómo trabajar con hilos y cual es su utilidad; a grandes rasgos en qué casos de uso debemos utilizarlos. Nos enseña a crear hilos y cómo configurarlos para que se comporten de distintas formas; interrumpirlos y cómo reanudarlos y por supuesto: cómo hacer que se ejecuten varias tareas al mismo tiempo en un mismo programa.

Las notas aprovechan y nos dan a conocer algunas primitivas de sincronización incluidas en Java.

También se nos explica qué son los thread pools… Que no tienen nada que ver con fiestas de hilos en albercas; pero nos permiten tener un arsenal de hilos listos para ejecutarse, haciendo más eficiente el uso de hilo, al coste de mayor uso de memoria. Las thread pools son bastante útiles cuando la funcionalidad de nuestra aplicación incluye atender varias fuentes asíncronas simultáneamente, en tiempos diferentes.

Finalmente, nos hablan de Callable, Future y SwingWorker; que nos permiten explotar los hilos de distintas maneras y tener un mejor control sobre el flujo de su ejecución, en un mundo donde no hay forma de explícitamente saber o controlar los tiempos y turnos que toman para su ejecución.

A continuación las notas: http://www.nachintoch.mx/teaching/concurrent_computing/18ago-Threads.pdf

Las notas tienen el siguiente anexo: http://www.nachintoch.mx/teaching/concurrent_computing/ejemplo_hilos.zip

También hacen referencia al siguiente ejemplo de calendarización: http://www.nachintoch.mx/teaching/intro_data_structure/ejemplo_calendarizador.zip

Java Swing: Introducción a las Interfaces Gráficas de Usaurio

6 septiembre, 2016

Hola de nuevo!

En esta ocasión; vengo a chorearlos queridos cibernautas, con las interfaces gráficas de usuario; mejor conocidas como GUI por sus siglas en inglés. El desarrollo de software; mejor dicho, aplicaciones que usan una GUI es bastante interesante y es un tema muy muy extenso; tan extenso que es difícil que una persona pueda con el desarrollo íntegro de ellas

Ya que involucra los aspectos más técnicos de programación y dominio de conocimiento sobre computación concurrente y administración de recursos. Por otro lado, involucra aspectos mucho más artísticos, como la distribución de espacios, selección de colores, fuentes de texto; etc.

Esta pequeña introducción nos da a conocer algunos de los aspectos más elementales para programar GUIs usando Java Swing. Se recomienda ampliamente el uso del IDE NetBeans, ya que contiene una herramienta para el desarrollo de GUI basado en Swing que abstrae algunas de las cuestiones técnicas que pueden resultar muy engorrosas para los programadores que empiezan a adentrarse en el desarrollo de GUIs.

Para usar la mencionada herramienta gráfica de NetBeans, primero debemos haber creado un proyecto que corresponda a una “aplicación de Java”. Damos click derecho sobre nuestra aplicación de Java y seleccionamos “New”  y acontinuación “Java Frame Form”. Notará que sobre el área de trabajo aparecerá un nuevo botón que dice “Design”. Este nos lleva a un panel de edición en el que podemos manipular el tamaño de nuestra ventana (o contenedor cuando extendemos a un JPanel) y simplemente arrastrar y colocar los elementos de Swing que queremos en la posición que necesitamos, ahorrándonos la molestia de administrar manualmente los layouts.

¿Qué es un elemento de Swing? Aquí el texto: http://www.nachintoch.mx/teaching/concurrent_computing/intro_GUI.pdf

Bonus level: Programa de ejemplo: http://www.nachintoch.mx/teaching/concurrent_computing/guis.zip

Estructuras de datos aplicadas – Ejemplo de árboles: sistemas de archivos

5 septiembre, 2016

Saludos a todos,

después de casi medio año sin publicar nada; he vuelto de los rincones más fríos y oscuros de la vida y sus constantes altibajos; de pendiente prácticamente infinita pensada como derivada 😛 Y esta semana procuraré ponerme al corriente con el material que he trabajado en este tiempo.

En fin, en este post les dejo unas notas en las que se ejemplifica la estructura de datos árbol usando sistemas de archivos.

Muchos sistemas operativos, trabajan con sistemas de archivos que ocupan una jerarquía de directorios para organizar los archivos del sistema y sus usuarios.

Por ejemplo, Windows usa varios árboles enraizados en cada unidad. Así, el disco duro principal del sistema se identifica como C:\ y los directorios que contiene son hijos de este nodo raíz C:\; por ejemplo, users, windows, program files, etc. Y a su vez, estos directorios son raíces de más subárboles enraizados en ellos, y así sucesivamente.

Linux y Mac; en general los sistemas POSIX-compatibles, usan un sólo árbol que agrega dinámicamente los subárboles de los dispositivos que se le conecten o inserten al sistema; tales como memorias USB, CD, smartphones, etc…

Los archivos en todo caso, son siempre hojas en los árboles de los sistemas de archivos.

Y el enlace a las notas: http://www.nachintoch.mx/teaching/intro_data_structure/21_abr-EjemploarbolesSA.pdf

Y un ejemplo en Java: http://www.nachintoch.mx/teaching/intro_data_structure/ejemplo_arboles_archivo.zip

Saludos!

SO: Simple calendarizador hecho en Java

15 abril, 2016

Hola a todos!

Quiero compartir una solución a un ejercicio bastante interesante. El propósito original del ejercicio es ejemplificar el uso y utilidad de  la estructura de datos “Cola”, con el ejemplo de calendarización de procesos en un sistema operativo.

Sin embargo, al final me pareció muy ilustrativo el pequeño calendarizador que ejemplifica esto, así que quiero compartirlo con todos ustedes. Les dejo un enlace al proyectito en Java que implementa un simple calendarizador basado en Round & Robin:

http://www.nachintoch.mx/teaching/intro_data_structure/ejemplo_calendarizacion.zip

También anexo unas notas con conceptos introducidos en este problema, útil para los aficionados y estudiantes de los primeros semestres en carreras como ciencias de la computación o ingeniería en computación:

http://www.nachintoch.mx/teaching/intro_data_structure/Conceptos%20en%20el%20ejemplo%20de%20calendarizaci%C3%B3n%20de%20procesos.pdf

Espero les sean de utilidad.

Saludos!


A %d blogueros les gusta esto: