miércoles, 6 de septiembre de 2017

En los últimos años se me ha dado la oportunidad de trabajar como desarrollador web, lo cual básicamente es programar plataformas de gestión en base a tecnologías web, como por ejemplo sistemas de contabilidad, remuneraciones, inventario, etc.
La ventaja que tiene desarrollar una plataforma de estas características de forma web es la escalabilidad, ya que lo único que requiere un usuario para "hacer uso de" es un computador con un navegador e internet.
La principal desventaja es que son mucho más vulnerables, aunque esto último depende del esmero que ponga el desarrollador o el equipo de desarrollo en cuanto a la seguridad.
A pesar de lo anterior, cuando ya se ha adquirido experiencia y se conocen las tecnologías involucradas en el proceso de desarrollo de una plataforma web, se torna en un proceso bastante ágil y se tiende a utilizar las mismas tecnologías y el mismo código en futuros desarrollos, lo cual lógicamente ahorra una inmensa cantidad de tiempo.
Lo fundamental es aprender a simplificar las cosas y tener siempre la reusabilidad del código en mente.
Mantenedor es la unidad de medida básica de lo que se compone una plataforma web. En otras palabras, una plataforma web se compone de mantenedores.
Un mantenedor por lo general está compuesto de los siguientes componentes:

  • Controlador
    • Carga de Vistas
    • GET
      • Uso de Modelos
    • POST
      • Uso de Modelos
  • Vista
    • HTML
    • JavaScript
  • Modelo
    • SQL
Por lo general, este esquema es llamado MVC (Model - View - Controller), pero el modelo es básicamente lo último que se utiliza y no tiene sentido que en las siglas se encuentre en la primera posición.

Controlador: Es el segmento del código que se encarga de ser la interfaz entre el cliente y el servidor. El cliente pide y el controlador hace uso de las vistas y modelos para resolver las solicitudes.
Si el cliente pincha un vínculo en la plataforma que lo dirija a otro mantenedor, el controlador recibe esa solicitud y carga la vista correspondiente al mantenedor.
Si el cliente pincha un botón para guardar un registro, se envía una llamada GET o POST al controlador con determinados parámetros, lo cual en otras palabras es "enviar la data al servidor para ser guardada". En el controlador se valida la data recibida y se envía a la función necesaria en el Modelo para ser guardada. El modelo retorna una respuesta dependiendo del resultado del guardado de la data y esta respuesta finalmente es devuelta por el controlador al cliente, completando el círculo.

Cada llamada GET o POST puede tener una respuesta de parte del servidor, la cual básicamente es texto y puede venir formateada en lo que se requiera, ya sea JSON, HTML, etc.

jueves, 7 de agosto de 2014

Triggers... triggers y piezos.

Bueno, hace unos cuantos años (que suman varios años ya, casi cinco años) vengo pensando en la forma de hacer e implementar triggers en una batería hechos con micrófonos de contacto piezoeléctricos. Sí, esos que parecen moneda de $500, sí, esos que valen como 300 pesos en Casaroyal. He experimentado bastante con ellos durante los años como para decir que los conozco bastante bien.

Los piezos emiten un voltaje al recibir un estímulo en el cristal que llevan dentro, ya sean golpes, o un sonido que viaje a través de un objeto al cual esté pegado el piezo, de ahí el término "micrófono de contacto".

Lo genial de implementarlo en baterías no es por el hecho de simplemente grabarla, ya que tienen una pésima calidad de grabación, si no más bien por el hecho de que, en teoría, deberían captar sólo el sonido de la parte a la cual han sido adosados.

Debido a que las descargas que emiten los piezos superan bastante lo normal que debería recibir una tarjeta de sonido o cualquier otro dispositivo de grabación de sonido, es un poco peligroso conectarlo de forma directa, y en internet uno puede encontrar formas de poner un diodo entre el piezo y el dispositivo para reducir el peligro de que algo malo suceda.

Estos diodos, dependiendo del que se escoja, limitan el voltaje.

Incluso, hay circuitos disponibles que sirven para acondicionar la salida del piezo especialmente para ser usada en estos casos, pero leyendo en los comentarios, siempre hay gente reclamona que no está conforme por uno u otro motivo.

La idea de usar estos piezos en una batería es básicamente para grabar la señal obtenida de cada piezo por separado, ser convertida en midi, y servir como input en programas como Superior Drummer, Addictive Drums, etc. obteniendo una señal variable, dependiendo de la intensidad de los golpes (lo que en MIDI se traduciría como "velocidad").

Yo tengo dos tarjetas de sonido M-Audio PCI, con las cuales pretendo llevar a cabo este proyecto conectando los piezos para grabar la batería y luego pasarla a MIDI.

Personalmente, no me gusta "triggear" los platos, prefiero hacerlo sólo con los tambores (caja, bombo y toms). Para los platos prefiero poner 2 micrófonos hermanos "over", como se hace tradicionalmente. Además que el sonido que puedan captar los over de los tambores, mezclado con el de los triggers le da un poco más de naturalidad al sonido final. Recomiendo ecualizar las pistas de los over una vez grabadas y dejar pasar sólo los medios-agudos, cortar todo lo que sea bajos. De todas formas, va a pasar algo de sonido de los tambores pero será más leve.

El disco "Running Out of Life" de mi banda, Deathbed, tiene las baterías grabadas de esa forma.

Lo bueno de hacerlo de esta forma, es que si el baterista se equivocó en algún golpe, o dio dos golpes donde no debía, etc... se puede corregir una vez hayas pasado lo que has grabado a MIDI.

Hice una prueba en la sala de ensayo, y el mayor problema a la hora de utilizar piezos es la forma en que los vas a sujetar a cada parte de la batería, ya que incluso con la cinta adhesiva más poderosa, eventualmente va a ceder y se va a caer. Estoy pensando en alguna manera de enganchar una pieza metálica al aro de cada tambor, y que el piezo vaya presionado sobre el paño.

He investigado, y existen varios accesorios para baterías que podrían cumplir esta función. Pueden ser apañadores de sonido (drum muffler) o un atril de micrófono adaptado para el caso.
Es mas práctico el apañador, pero no he podido encontrar por internet, por lo menos para comprar uno y hacer pruebas. Además de no saber si funcionarán con el bombo.

Obviamente, hay triggers como los Ddrum, pero son bastante caros. Además de no saber si se podrá grabar con ellos directamente a una tarjeta de sonido, ya que no pretendo conectarlos a un modulo de batería.

Esta no es una solución profesional, es para la gente "busquilla" a la que le gusta hacer cosas y se entretiene haciendo proyectos weones como este.

jueves, 9 de agosto de 2012

9800 GT en llamas, mi solución a este problema.

¡Hola a todos!

Hace un tiempo me armé un computador "nuevo", debido a que mi anterior PC se estaba quedando atrás... muy atrás.

Entre las partes que compré para mi computador en Mercadolibre, está la tarjeta de video Zotac Geforce 9800 GT de 1 GB. Durante los primeros meses de uso me dio muchas horas de felicidad, ya que pude usar programas y juegos que antes no podía ni pensar en meterles mano, pero hace poco tiempo toda esta felicidad casi se invierte en un mundo de pesadillas.

Cada vez que hacía alguna tarea mas o menos exigente para mi tarjeta de video, el computador se reiniciaba... un rato después, o instantáneamente. En ocasiones, ni siquiera alcanzaba a cargar los juegos.
Especulé bastante... pensé en un principio que podría ser problema de la Fuente de poder, debido a que esta tarjeta es bastante exigente en cuanto a watts se refiere (alrededor de 110 watts), pero como muchos de ustedes, no tengo nada de dinero, así que no tomé ninguna acción en ese momento, y continué usando mi computador a medias.

Un par de semanas después de eso, no recuerdo por qué motivo removí la tapa del computador, y no la volví a poner en su lugar. Mi gabinete está al lado del lugar donde uso el mouse, con la tapa abierta, la tarjeta de vídeo queda a centímetros de mi mano, y en cuanto comenzé a jugar algún juego, sentí como si tuviera un calefactor apuntando hacia mi mano.

Días después, bajé un programa llamado MSI Afterburner, el cual muestra el estado de la tarjeta de vídeo en pantalla, y entre los estados que muestra, está la temperatura. Cuando no estaba jugando, la temperatura de la tarjeta era de casi 55ºc, y mientras jugaba ascendía los 70 grados.

Después de darme cuenta de eso, pensé en cambiar la tarjeta de vídeo, pero luego pensé... "este pedazo de plástico no me la va a ganar", y lo que hice fue básicamente ponerle un ventilador grande, del tipo que se usa para hacer fluir el aire hacia el gabinete, se lo amarré con un par de cables al disipador, y encendí el computador con los dos ventiladores conectados (el que trae por defecto la tarjeta, y el que acababa de instalarle).

Después de hacer ese injerto, la temperatura de la placa descendió a 30ºc en estado "idle", y no pasa de los 50 grados mientras juego cualquier cosa. Por seguridad, en el Afterburner ledesactivo la velocidad automática al fan, y lo dejo en 70 u 80%, de esa forma me aseguro de que ambos ventiladores estén siempre funcionando.

Y es así como solucioné el problema. Espero que a alguien le sirva esta información, pronto editaré este mensaje y pondré algunas fotos del asunto.