Cloud Computing para dummies

cloud-computing-1

Seguramente has escuchado en infinidad de lugares, frases como : “súbelo a la nube”, “respalda tus archivos en la nube”, “mi trabajo lo hago en la nube” entre otras, pero, ¿qué demonios es la nube ?.

Over the Clouds

El concepto de “Nube” es, la forma más moderna y cool de referirnos al conjunto de direfentes servicios que se acceden a través de Internet, en donde se puede almacenar, manipular y distribuir la información.

Expliquemos un poco más esa definición. Hace unos años, ¿recuerdas tu etapa de estudiante de nivel medio superior, cuando a medio trabajo de impresión la tinta se terminaba , y después de maldecir mil veces a la impresora y a la humanidad, guardabas en una memoria USB tu documento para imprimirlo por la mañana, antes de llegar a la escuela?. Si lo hiciste, ¡felicidades eres un Millenial!, y esa era la forma más habitual de almacenar y transportar la información en ese entonces.

Lo anterior, tiene sus ventajas y desventajas, en este momento, me enfocaré sólo en dos desventajas, la portabilidad y disponibilidad de nuestra información. Si perdías la memoria USB, perdías también su contenido, y si no había respaldo, ¿era terrible verdad?, o si no la reconocía la PC del centro de computo, también era realmente frustrante. Estos problemas, son dos de tantos que podemos solucionar con el concepto de la nube.


Ahora, resulta demasiado fácil guardar los documentos en nuestro drive virtual y poder acceder a ellos desde cualquier parte del mundo, a cualquier hora y desde una infinidad de tipos de dispositivos. Ese drive virtual, realmente es, un servicio de almacenamiento que proveé alguna empresa, por ejemplo, Dropbox y realmente son servidores resguardados en Centros de Datos, en algún punto geográfico del planeta, con condiciones de seguridad muy elevada tanto de hardware como de software.

Una vez que nuestro documento queda almacenado en dichos servidores, se dice que, “lo subimos a la nube” o que “nuestro documento está en la nube”. ¿Queda un poco más claro el concepto de nube?. Espero que si.

 

¿Y qué hay del Cloud Computing?

Bueno, pues entonces el Cloud Computing, es un modelo informático que nos permite acceder a servicios informáticos a través de Internet.

Esta idea no es un invento reciente, pues desde la creación del Internet se ha tenido la idea de poder tener servicios que permitan ser productivos sin la necesidad de tener todo un equipo dotado con cientos de herramientas de software y prestaciones de hardware demasiado llamativas.

Por ejemplo, muchos estudios de animación medianos, no poseían granjas de renderizado (grandes centros con servidores dedicados a procesar los algoritmos que generar el material que podemos ver en el cine) por lo cual se rentaban las granjas de una empresa especializada y mediante enlaces dedicados se procesaba el maerial. Este ejemplo, se podría considerar como los primeros intentos del Cloud Computing, aunque no eran tan usados debido a las velocidades de Internet.

 

Entonces, ¿qué beneficios obtengo mediante este nuevo modelo informático?

¡Muchos!, por ejemplo, imagina que eres el encargado del área de informática de una empresa. Recientemente, se adquirieron 400 computadoras, y se requiere que se instale alguna suite de ofimática para que puedan trabajar los asociados y mantener los avances en el serivdor de la empresa. ¡Es una locura instalar 400 veces el mismo software!, ¿no crees?, aparte, los asuntos de licencias, hacer imagenes de respaldo, un usuario le movió y desconfiguró la suite, monitorear las condiciones ambientales del cuarto de servidores, su configuración, se cayó el servidor y detuvo el trabajo de todos, etc. ¿Te das cuenta el trabajo que conlleva?, eso es por parte del área de informática, pero ahora las cuentas de la empresa también se incrementan exponencialmente.

¿Qué podemos hacer para reducir los tiempos y costos de mantenimiento y de esta forma aumentar la productividad de la empresa?

¡Fácil!, hagamos uso de algún servicio de Cloud Computing, para “rentar” la infraestructura necesaria (EC2 de Amazón o Azure de Microsoft) y usemos algún software online de ofimática ( Zoho, Google Docs), así reducimos considerablemente los requerimientos de nuestros equipos, garantizamos que nuestra información esté disponible desde cualquier lugar del mundo y en cualquier momento, garantizamos la compatibilidad del software pues no depende del sistema operativo del equipo donde se ejecuta, entre otras muchas ventajas que trataremos en otro momento.

 

Preparemos un sandwich . . .

Existen principalmente tres modelos de servicios en el Cloud Computing y estos son los siguientes:

Infrastructure as a Service (IaaS) :

Es el primer pan del sandwich y se refiere a contratar toda la parte física, (hardware) que requiere el usuario final (una persona o una empresa). El proveedor se encarga del mantenimiento de los equipos, configuraciones de seguridad, resguardo de todo el equipo en un área geográfica.

Este modelo es utilizado mucho en el ámbito empresarial, ya que simplifica la parte de administración de los equipos y así mismo, reduce los gastos de las empresas, ya que no se hace una inversión en equipos ni en su mantenimiento, ni en su resguardo.

El usuario instala, configura y mantiene su software en los equipos remotos. Es muy utilizado en aplicaciones web, computación de alto rendimiento, análisis de datos, almacenamiento de backups, hospedaje web, principalmente.

La referencia más conocida, EC2 de Amazon

 

Plataform as a Service (PaaS) :

Este nivel es como el jamón del sandwich, explicaré qué es y por qué lo digo.

Esta capa de servicio está más enfocada a los desarrolladores, pues ya se tiene todo un hardware soportando un sistema operativo y con herramientas de desarrollo instaladas, bases de datos, etc. Aquí, el proveedor se encarga de dejar todo el equipo listo para soportar el tiempo de desarrollo de la aplicación. Por su parte, el desarrollador se rige por ciertas normas que propone el proveedor para el correcto funcionamiento y desarrollo de las aplicaciones que correrán en la nube. Todo esto reduce los costos de las empresas, pues se evita la inversión en equipos, instalaciones y ahora también, licencias de software.

¡Ya se puso el primer pan y este es el jamón! XD

En resumen, es aquí donde se desarrolla el servicio de software que estará en la nube.

Algunos ejemplos de proveedores de PaaS, AWS Elastic Beanstalk, Windows Azure, Heroku

 

Y por último, ¡la otra rebanada de pan!

 

Software as a Service (SaaS) :

El último nivel o capa, es aquí, donde ya como usuario final haces uso del software online, en nuestro ejemplo corresponde a usar la suite de ofimática y beneficiarse del trabajo online.

Ya se tiene un soporte de hardware y de software completo, o sea, ese bonito programa, editor de textos que ejecutas desde tu navegador, fue desarrollado por un grupo y está corriendo en servidores instalados, lo más seguro alrededor del mundo.

No necesitas obviamente instalar nada en tu computadora o dispositivo inteligente para poder hacer uso del software, los archivos los guardas en la nube, donde quedan respaldados y disponibles.

Un ejemplo de esta layer, Microsoft Office 365

 
En el siguiente gráfico podemos observar como están organizadas las capas anteriores para efecto de aclarar más el panorama

 

visual-uaas

 

 

¡Listo nuestro sandwich está listo!

 

Como pudimos ver, los beneficios que nos ofrece este paradigma son muchísimos, pero como todo, también hay puntos en contra, me refiero a las cuestiones de seguridad. Estas las trataremos en otra entrada.

 

¡Saludos terrícolas!

¿Qué es el Internet de las Cosas?

internet-de-las-cosas

Te imaginas poder programar el tiempo de tostado de tu pan para el desayuno del día siguiente desde la terminal del aeropuerto en Mumbai a través de tu dispositivo móvil, ¿suena a los Supersónicos, cierto?. ¡Pues no está para nada alejado de la realidad!, es totalmente posible gracias a la tecnología evidentemente y al concepto Internet de las Cosas.

El Internet de las Cosas o IoT (por sus siglas en inglés Internet of Things), es un concepto que cada vez se hace más notorio en nuestra vida diaria, se refiere a interconectar dispositivos de uso cotidiano a Internet.

 

Hablemos sobre “The thing” . . .

«Cosa», este término se refiere a cualquier “objeto” (por ejemplo un horno de microondas, la licuadora, el tocadiscos de la abuelita, la puerta principal, etc.) que mediante la integración de la electrónica necesaria (comunmente sistemas embebidos) le proporcionen funcionalidades de comunicación y/o control remoto, las cuales originalmente no estaban previstas en su diseño, permitiéndonos de esta manera controlar o monitorear desde cualquier parte su funcionamiento gracias a la conexión que este tiene a internet.

Diversos factores amplian el campo de acción del Internet de las Cosas, por ejemplo la actualización del Internet Protocol versión 6 (IPV6), esto es algo crucial pues podemos asignar una dirección IP a todos y cada uno de los relojes de mano que existen en el planeta Tierra y aún así nos sobrarían direcciones IP para regalar, ¿asombroso no?.

 

Organizando nuestras ideas . . .

Cabe aclarar que este concepto no es nada nuevo desde hace más de tres décadas varios gigantes del internet y tecnología han trabajando para lograr lo que ahora todos conocemos como dispositivos inteligentes (cosas), equipos  que hacen la vida del usuario más práctica.

Kevin Ashton es la persona quien acuñó el término Internet de las Cosas en el mundo durante una presentación cuando trabajaba para la multinacional Procter & Gamble en 1999. En ese entonces, el término quedó flotando en el medio tecnológico y fue hasta el 2009 que se retomó gracias a la potencialización de comunicaciones inalámbricas, los avances significativos en dispositivos MEMS (MicroElectroMechanical Systems), el acercamiento masivo del internet a la mayor parte de los hogares e industrias del mundo y curiosamente la llegada de Twitter pues el uso del hashtag #IoT se hizo muy popular entre los jovenes desarrolladores posicionándolo fuertemente en la industria.

 

 

Beneficios de las «cosas»

Podrías estar preguntándote, ¿ en que me puede beneficiar el IoT?, ¡en todo!, imagina que una persona padece diabetes y necesita estár monitoreando sus niveles de glucosa en la sangre (triste pero real) pues con un dispositivo dotado de los sensores necesarios se recavan las muestras y se transfieren automáticamente a la base de datos de su institución de salud donde llevan su historial clínico y en caso de alguna contingencia, se alerta a los servicios de emergencia para atendender de inmediato, reduciendo de esta manera el tiempo de respuesta al mínimo y ampliando enormemente la esperanza de vida de la persona.

En toda la industria se ha aplicado ya este concepto por ejemplo en las SmartTvs que se conectan a internet y te proponen una programación de acuerdo a tus gustos, o los refrigeradores que llevan el control de la comida para que estés al pendiente de lo que hace falta o no. En la medicina con los marcapasos que tienen conexión con el exterior para que los médicos puedan configurar y monitorear su estado y permitir que el paciente lleve una mejor calidad de vida.

 

La receta para el pastel . . .

Gracias a la introducción en el mercado “maker” de tecnologías como Arduino, Raspberry, Beaglebone, Tiva, etc, se ha facilitado la implementación del IoT pues existen infinidades de sensores, actuadores, etc. de fácil interconexión con un microcontrolador reduciendo la electónica necesaria a módulos muy amigables, así como las IDEs de programación se han desarrollado de tal forma que sean muy intuitivas para el usuario poco experimentado.

Los foros y blogs han jugado un papel muy importante pues es ahí donde la mayoría de makers buscan la información que requieren para lograr sus objetivos apoyados desde más usuarios noveles hasta usuarios avanzados de empresas que apoyan esta corriente.

 

iot-architecture.png

Arquitectura del Internet de las Cosas

 

Como ya vimos, esta nueva forma de interactuar con la tecnología está caminando a pasos de gigante posicionándose de una manera muy importante en el mercado internacional. 


Después de esto, los Supersónicos no se ven tan descabellados, ¿verdad? .

 

En próximos artículos nos centraremos en desarrolladar nuestros primeros pasos en el maravilloso mundo del  IoT.

¡Hasta la próxima!

 

 

iot

Introducción al WindowBuilder en JAVA [Eclipse]

¡Hola amig@s buen día!

En esta ocasión haré una pequeña y rápida introducción al desarrollo de Interfaces Gráficas de Usuario mejor conocidas como GUI del inglés Graphical User Interface en JAVA, las cuales son sumamente útiles para dar un aspecto más profesional a nuestras aburridas aplicaciones en consola y facilitar el manejo de alguno de nuestros desarrollos electrónicos.

Usaremos el plugin WindowBuilder de Eclipse el cual nos permite crear interfaces de una manera sumamente rápida, similar a como se desarrollan en Netbeans.

Pues bueno, comencemos . . .

1)  Instalando WindowBuilder

El primer paso será abrir nuestro Eclipse en mi caso uso la versión 4.6.2 (Neon) 
0

Paso siguiente nos vamos a Help -> Install New Software 

13

Luego abrimos el navegador de internet  y entramos al sitio https://eclipse.org/windowbuilder/ y damos click en el botón amarillo que dice Download, nos llevará a otra página donde debemos de seleccionar la versión de Eclipse en la que vamos a usar el plugin en mi caso la 4.6 [Neon]. Damos click sobre Link en la columna Update Site nos manda a la última página que tiene las instrucciones de como instalarlo.

Instalarlo consiste en copiar la URL de la útima página que se nos abrio en el sitio de Eclipse (donde están las instrucciones ) y la pegamos en el apartado de nuestro Eclipse donde dice Work with:

14

y damos click en el botón de Add. Nos aparecerá abajo el plugin, lo palomeamos y damos click en Next o Finish según sea el caso. [A mi no me aparace ya que lo tengo ya instalado].

Una vez terminado reiniciamos el Eclipse para asegurarnos que todo ande bien. Si todo anda de maravilla nos debe de aparacer la ventana como la conocemos, en mi caso:

1

2) Creando un nuevo proyecto. . . 

Hasta aquí todo va de diez, ahora lo que  procede es  crear un nuevo proyecto de Java como siempre lo hemos hecho. Nos vamos a File -> New ->Project

2

Se abre la ventanita de tipo de proyecto, nosotros seleccionamos Java ->Java Project y le damos a Next. Luego escribimos el nombre de nuestro proyecto

4

5

y clikeamos en Finish.

Una vez hecho todo lo anterior nos aparecerá el administrador de proyecto con la estructura habitual de un proyecto de JAVA. Nos vamos a dirigir a la carpeta de SRC  y con el botón derecho le damos click y nos vamos a New -> Other  en el menú contextual que apareció.

7

Nos aparece en seguida la ventana de selección de proyecto nuevo, buscamos el que dice WindowBuilder , desplegamos su contenido y damos click en Swing Designer y por último en Application Window

Se abre la ventana de nueva aplicación donde introduciremos sólamente el Nombre obviamente en el campo Name y damos click en Finish.

3) Mi primera ventanita . . . 

Una vez hecho todo lo anterior nos debe de quedar una pantalla similar  a la siguiente captura donde vemos el código de inicialización del plugin para nuestra ventanita :

10

Si miramos debajo del área donde se encuentra escrito el código veremos dos pestañitas que dicen Source y Design.

En la primera podemos acceder al codigo fuente que está detrás de nuestra ventanita, es donde trabajaremos para dar toda la funcionalidad a nuestros elementos gráficos. La segunda es el editor gráfico, el cual dispone de una amplia paleta de objetos comunes en los sistemas operativos gráficos (botones, slider, progressbars, textareas, textfields, etc.) y es en esta donde comenzaremos. Damos click en la pestañita de Design y aparecera una ventana en blanco como la siguiente imagen

15

Ahora damos click en el componente que dice GroupLayout este es un layout que nos permite desplazar los objetos en la posición que nosotros queramos a lo largo y ancho de la ventanita creada (más adelante hablaré de los difertentes tipos de layouts) y nos situamos sobre la ventanita, veremos que se enmarca de color verde damos click ahí y se liberará el cursor.

Ahora vamos a añadir dos elementos un Jlabel y un JButton de la misma forma que hicimos con el layout al sotarlos nos perdirá un nombre texto que aparecerá por default yo soleccioné los que vemos en la imagen

16

podemos mover los componentes dando click sin soltar sobre ellos y arrastrándolos. Una vez colocados donde queramos, damos click en el botón y veremos que se «selecciona «, ahora  vamos a ir al panel de Propiedades del componente (donde dice Properties) y clickeamos sobre el primer botón que dice su Alt (Show events, es como una letra «c» en un circulo verde)

17

Se desplegarán todos los eventos posibles para ese tipo de componente  buscamos el que dice mouse y desplegamos su contenido. Nos aparece el que dice clicked damos doble click sobre ese y nos mandará a su sección en código

19

Busca la parte donde escribí el comentario y ahí es justo donde vamos a escribir código para que se ejecute al dar click sobre el botón. Va a quedar así en mi caso:

20

Añadi dentro de la función mouseClicked() el código:

txtTexto.setText(» ¡HOLA MUNDOOOO! «);
btnBoton.setText(«¡Me has presionado!»);
System.out.println(«También aquí en la consola decimos : ¡HOLA MUNDO!»);

La primera línea usa el métdo setText con argumento «¡HOLA MUNDOOOO!» el cual cambia el texto que tenia en un principio el objeto txtTexto que es nuestro JLabel.

La segunda línea hace lo mimso pero sobre el objeto btnButton que es nuestro botón y por último la tercera línea imprime en la consola el texto encerrado entre comillas.

Hecho esto, daremos click en el botón verde de la barra de herramientas (ese como de play) para compilar y ejecutar nuestro ejemplo. Si todo va bien nos aparecerá nuestra ventanita funcional con nuestros objetos

21

Y si clickeamos en el botón veremos como resultado :

22

¡¡Hey funcionó!!

Como vimos no es difícil crear una GUI para nuestros proyectos ya sean de programación o de electrónica. Yo  uso mucho esto en el desarrollo de aplicaciones de controL, y monitoreo de los sistemas electrónicos que desarrollo y me ha funcionado muy bien.

Más adelante escribiré sobre como comunicarnos por puertos seriales para por ejemplo leer sensores de temperatura, de humedad, acelerómetros, comunicarnos con microcontroladores desde la computadora, etc.

 

¡Hasta la próxima!

Desmontando un controlador MIDI

Hola, antes que nada quiero dejar en claro que durante el desarrollo de este pequeño artículo ningún controlador resultó herido XD.

La idea de escribir este artículo surgió debido a que nos encontramos desarrollando una serie de equipos en EDAX Audio  basados en MIDI así mismo software de control para estos dispositivos  y la curiosidad me obligó a ver las entrañas de este controlador fabricado por M-Audio, además de que muchxs de nostrxs tal vez tenemos uno pero nos da temor desarmar tan preciados instrumentos así que decidí tomarme el atrevimiento de mostrarles que hay tras esas bonitas carcasas de plástico.

En específico el modelo que desmontaré es KeyRig 49 el cual es un teclado controlador de 49 teclas con  pitch bend y modulation wheel además de poderle añadir un pedal de sustain. Es alimentado por medio del puerto USB del ordenador.

¿Qué es un controlador MIDI?

Un controlador MIDI a grosso modo es un dispositivo electrónico que genera mensajes MIDI al tener interacción con el ejecutante y que son enviados «en tiempo real» a la PC para ser tratados y convertidos en sonidos audibles. Existen infinidad de controladores MIDI, los más comunes son los teclados pero también hay baterias, guitarras, bajos, superficies de control por mencionar algunos ejemplos.

Nótese que escribí entre comillas -tiempo real- esto lo hago porque puede que al conectar sus controladores sin ningún ajuste previo, se den cuenta de que existe cierto retardo entre su ejecución y el sonido producido por la computadora, esto es debido a que dependemos de varios factores como son: la velocidad del reloj de la computadora, los drivers de la tarjeta de audio, la tarjeta de audio, el cable usado entre muchos otros más. Algo importante que debemos de tener en cuenta es que ese retardo es algo inherente de cualquier dispositivo electrónico y jamás podremos eliminarlo por completo. Lo que si se puede hacer es disminuirlo al grado que no sea del todo perceptible o que no interfiera en nuestras actividades.

Otro aspecto que debemos de tener en cuenta siempre con respecto a nuestros controladores MIDI es que estos aparatos NO MANEJAN NINGUNA SEÑAL DE AUDIO sólo como ya lo mencioné trabajan enviando y recibiendo mensajes que llevan características para permitir al software en la computadora generar el sonido.

Recomendaría que primero leyeras Introducción al protocolo MIDI [Parte 1] donde te podrás dar una idea de como son estos mensajes y qué información es la que llevan.

Bueno, dejemos de lado la teoría y comencemos presentando a nuestro paciente. . .

keyrig-49

Quitando tornillos . . .

Procederé a quitar todos los tornillos inferiores para permitirnos apreciar el interior. De este paso no dejaré imágenes ya que considero que no es necesario.

Primer encuentro . . .

Primero quité todas las teclas para poder acceder  al PCB donde se encuentran los push buttons.
1

Quitando esto nos encontramos con esta bonita imagen de todo el equipo desnudo.
2

En esta imagen vemos las dos PCBs que conforman al equpo. La color café es la parte de control del controlador y la otra es la parte donde se recolectan los datos (o sea donde están las teclas).

3

Corazón del controlador

4

Esta tarjeta esconde detrás un gran secreto. . .  el corazón de este bonito aparato, un microcontrolador de 8 bits de la empresa taiwanesa Holtek Semiconductors. Este pequeño amigo es quien lleva por dentro todos y cada uno de los mensajes MIDI que se envian al pulsar una tecla, al hacer girar la ruedita del pitch o de la modulación,  así como también las funciones especiales del equipo y gestiona la comunicación USB. SIn este micro no serviría de nada este instrumento.

5

Supe que microcontrolador era puesto que removí la etiqueta que tiene encima jejejejejejejejeje

Entradas y salidas por aquí y por allá

Vista posterior de la tarjeta de control. Podemos ver el  puerto USB, el jack para el pedal de sustain y el interruptor.

6

Un potenciómetro deslizable es lo que hay detrás de bambalinas de un fader.

7

Aquí está los leds de selección de octava así como lso botones para poder seleccionar entre  las octavas.


8

Las control wheels de la modulación y el pitch son dos potenciómetros al igual que el slider de volumen.

9

Husmeando en las entrañas del corazón

Una vez montado procederemos a encenderlo para revisar que todo esté bien y sniffearlo para saber qué hace.

010

Vamos a usar el monitor MIDI para güindous el famoso MIDI OX [es mi preferido] configuramos nuestro controlador para que el software lo pueda sniffear y ¡Voila!.

Vemos toda la data que nos envía el microcontrolador.

midi_ox_03

Como les comenté esta entrada sólo la escribí por mera curiosidad y espero que les ayude a quitarse  también la curiosidad de muchxs en saber que llevan por dentro los controladores MIDI. Obviamente hay muchos más complejos pero en escencia es más de lo mismo.

Dejaré unos enlaces de interés :

Keyrig49 : http://www.m-audio.com/products/view/keystation-49es1#.VldQeB8qfQo
M-AUDIO :  http://www.m-audio.com
MIDI OX: http://www.midiox.com/

Software para electrónica | Lo que no podría faltar en mi alacena . . .

 

Hoy comenzaré con una lista de diversos programas que he usado o uso para temas relacionados con el diseño electrónico y programación.

Poco a poco iré subiendo algunos programas para que puedas descargarlos todos juntos aunque en su mayoría son gratuitos y los puedes descargar de sus respectivos sitios web.

ECLIPSE STUDIO

eclipse_bckgr_logo_fc_lg
Windows-Mac-Linux

Es una excelente IDE para diversos lenguajes en mi caso lo uso para programar microcontroladores AVR en C.


Descarga: https://eclipse.org/downloads/


 

ATOM
atom-editor-logo

Windows-Mac-Linux

Un excelente editor de texto con highlighting y con soporte de plugins lo cual lo hace extremadamente poderoso además de su gestor de proyectos integrado. Lo uso para programar HTML5, CSS3, PHP, JAVASCRIPT, JQUERY.

Descarga: https://atom.io/


ARDUINO IDE

hqdefault (1)Windows-Mac-Linux

Más claro ni el agua, aunque también lo uso para las custom boards que desarrollamos con diferentes micros AVR no soportados oficialmente

Descarga: http://www.arduino.cc


ENERGÍA IDE

EnergiaWindows-Mac-Linux

Es una IDE de programación para las Launchpad de Texas instruments, está basada en la IDE de Arduino, La uso para programar las tarjetas de desarrolla de Texas Instruments.

Descarga:  http://www.energia.nu


CODE COMPOSER STUDIO

CCSSPLASH

Windows-Mac-Linux

Como ya lo abrán notado es para los micros y demás cosillas de Texas Instruments. Lo uso para  las Launchpads.

Descarga: http://www.ti.com/tool/ccstudio



EAGLE CADSOFT

Created with The GIMP

Created with The GIMP

Windows-Mac-Linux

El líder en diseño de PCB desde mi punto de vista puesto que es uno de los más usados a nivel mundial y poderosísimo por sus plugins.

Descarga: http://www.cadsoft.de


 

DREAMWEAVER

macromedia_dreamweaver

Sí, lo sé, es una versión viejita pero es la que me agrada, lo uso principalmente para PHP y HTML5.
Uso una versión portable que encontré en la red y lo ejecuto con WINE en Linux.



GEDIT

650px-Gedit-logo-clean.svg

Uno de los editores de texto por default en GNOME me gusta mucho por lo liviano que es. HTML, CSS, PHP JQUERY, C principalmente.

Descarga : $ sudo apt-get install gedit


APACHE WEBSERVER

Apache-http-server

Windows-Mac-Linux

Mi servidor de desarrollo favorito por su magnífico soporte y potencia al trabajar. Lo uso en el desarrollo de apps en PHP, HTML5, CSS3, JQUERY principalmente.

Descarga: http://www.apache.org 


PROTEUS ISIS

proteus

El simulador por defecto que uso preferentemente en la versión 7. Me gusta por el soporte que tiene y su relativa facilidad de uso además de las librerias que poseé y las que andan navegando por internet.


MPLABX

21086

La IDE de programación de Microchip para sus microcontroladores. Lo uso obviamente en la programación de PICS en C y Ensamblador.

Descarga: http://www.microchip.com


CCS COMPILER

images (1)

Esta IDE la ocupo a la par que MPLAB ya que es más intuitiva y muy potente en la programación de micros en C.


VIRTUALBOX

oracle_virtualbox1

Windows-Mac-Linux

Un gestor de máquinas virtuales muy potente e interesante lo uso para cargar un windows XP donde hago ciertas pruebas y para probar una que otra nueva distro de Linux.

Descarga: https://www.virtualbox.org/

Estos son algunos de los programas que uso para hacer mis proyectos personales así como también para trabajar. La mayoría son Gratuitos. Maś adelante incluiré algunos otros que también uso.

Espero que te sirva este pequeño post.

¡Hasta la próxima!