Hola a todos, hoy les quiero hablar sobre una conversación que tuve con un compañero de trabajo, hoy en día es ¿mas fácil o mas difícil desarrollar?.
Hoy en día hay miles de Frameworks y librerías que nos facilitan muchísimo el desarrollo de nuevas aplicaciones, como ejemplo podemos tomar a Polymer, esté se basa en del desarrollo de webcomponents, la idea es construir o re-utilizar componentes desarrollados por otros o nosotros y de esta forma aceleramos el desarrollo de una web.(Tengamos en cuenta que hoy en día esta en su etapa beta, 0.9). Estos componentes desarrollados luego los usamos como si fueran un TAG mas de nuestro HTML, poner un mapa hoy en día en una web usando Polymer es tan fácil como poner el siguiente TAG:
Con esto nos olvidamos del JavaScript y de renegar haciendo los imports y todo eso. (MAS FÁCIL IMPOSIBLE!!).
O que tal cuando queremos construir una WEB con JAVA y SPRING, con tan solo usar el annotation @RequestMapping ya tenemos un controller (BASTA DE CONFIGURACIONES RARAS), y sin hablar si queremos usar JACKSON para convertir un objeto a JSON, con tan solo declararlo en el xml de spring como un ObjectMapper, una configuración de entre 5 y 10 lineas, no mas de eso, y tenemos un mapper a json en nuestros controllers. Recordemos que de lo contrario, tendríamos que realizar la conversión antes de retornar los datos en todos nuestros controllers.
Pero hasta acá todo fácil, si es que viviéramos en un mundo ideal, ¿qué pasa si es que falla nuestra aplicación en medio de lo que desconocemos?, imaginemos que tenemos un dato de entrada a nuestros controllers y no nos llega el dato esperado del lado del server, ¿cómo sabemos lo que paso? si lo que hace spring es lo mágico que nos facilita la vida. O que tal si nos ponemos en el caso de usar Polymer y algo fallara en el renderizado del mapa usando el TAG de Polymer, ¿Cómo sabríamos que fallo?, sí el funcionamiento interno es justamente lo que desconocemos y nos facilita la vida al desarrollar.
Eh aquí donde todos nos tenemos que darnos cuenta que si bien hoy en día teneos muchas herramientas que nos facilitan la vida a la hora de desarrollar, tenemos que tener un cierto nivel de conocimiento de las herramientas que usamos para poder afrontar los problemas que podamos llegar a enfrentar, y ahí es donde la experiencia y los conocimientos a bajo nivel (conocer las entrañas de las herramientas que usamos) nos es de buena ayuda.
Por todo esto yo diría que si bien hoy tenemos muchas herramientas que nos ayudan en el día a día en los desarrollos, el nivel de conocimientos que debemos tener hoy para solventar los posibles errores que debemos afrontar requieren un mayor nivel de conocimientos, en patrones, lenguajes, arquitecturas, tecnologías, en fin, en muchísimas mas cosas que las que requeríamos antes.
Me gustaría dejar la siguiente frase para que la tengamos en cuenta:
"Hoy en día es mas fácil iniciarnos en el mundo del desarrollo, y depende de nosotros profundizar los conocimientos"
En lo personal amo esta profesión porque siempre hay algo por aprender y tengo retos nuevos todos los días, conozco gente que admiro el como realiza las cosas, como las resuelve. Y siempre que me preguntan de que trabajo responde que yo no trabajo, hago lo que mas me gusta en el mundo.
Hakiemos nuestras vidas, nuestra forma de vivir, nuestra forma de aprender, hagamos divertido nuestro aprendizaje.
Happy Haking } ; ) by Tahuri
viernes, 15 de mayo de 2015
viernes, 26 de diciembre de 2014
Mi 2014
Hola a todos, hoy les quiero contar un poco lo que fue mi 2014.
Este año comenzo con muchos obstáculos por saltar y muchas metas por cumplir, se que no eh podido cumplir todas las metas, pero las principales gracias a dios si las pude cumplir :).
En lo personal crecí muchisimo :), y lo unico que les puedo contar es que el amor que nos tenemos con mi señora se duplico :).
En lo profesional, arranque el año Trabajando en Accenture, una empresa donde aprendí muchisimo, fue mi primer trabajo en el ambito laboral, arranque dentro de Accenture trabajando en c++ haciendo servicios web en Tuxedo para Movistar España, una gran experiencia, luego pase a un proyecto web, la www de personal (www.personal.com.ar) ahí seguí aprendiendo muchisimas cosas del mundo web y de Vignette (aunque no me guste mucho), tecnologías del back-end y del front-end :), y mis últimos meses estuve en un proyecto interno de Accenture, en ese proyecto aprendí mucho de como trabajar en equipo y que cosas no tengo que hacer cuando tengo a gente a cargo XD, aprendí como un equipo tiene que tirar y laburar a la par y la organización de la misma.
Luego gracias a dios pude cambiar de trabajo y entre a trabajar en el HSBC Banck (Mediante a Tecnosoftware), ahí conocí a una gran persona, ahí conocí a Gastón alvarez, para mi esa persona es lo que yo llamo Hacker, personas con una gran inteligencia y que cualquiera, si mantiene una charla de 10 minutos aprende cosas maravillosas, él re vivió en mi la pasión por el desarrollo y las ganas de incursionar en nuevos mundos de la informática, hoy en mi trabajo actual lo extraño mucho... ;), espero poder volver a compartir una charla con él. Otra persona interesante fue Nacho XD ese es un loco que me dejo muchas lecciones de la vida, Alan otra persona que me tuvo mucha paciencia jaja en fin, muchas personas de las cuales aprendí mucho en HSBC :).
Actualmente llevo 3 meses trabajando en despegar.com, estoy mas que chocho, lugar donde hay mucha gente que sabe y no es solo eso, actualmente estoy trabajando con tecnologías de punta, con desafíos constantes y aprendiendo mucho. :), actualmente puedo hablar de Agustin y de Lucas, dos personas que saben Bocha, Otra persona que puedo mensionar es Pablo, aunque no hablo mucho con el se nota que sabe... y la charla que dio para la comunidad de JavaScript me dejo anonadado XD, El equipo entero con el cual trabajo me deja con boca abierta, y eso, hace que sea un gusto estar trabajando con ellos, hoy deje de ser aquella persona que notaba cosas malas hechas en los proyectos que participaba, a una persona que aprende como se tienen que hacer bien las cosas :).
En cuanto a mi participación en el GDG (Google Developers Groups), fue un excelente año, hoy soy Manager del GDG La Plata, tratando de levantar la comunidad en La Plata, volví a participar en el DevFest en Buenos Aires, Conocí a Diego (Manager del GDG La Plata), una excelente persona, me hice de nuevos amigos y conocidos :), Participar en esta comunidad es lo mejor que me paso en cuanto a lo profesional, constantemente estoy conociendo a personas con un dominio de las tecnologías que da envidia jaja ojo de la buena, aquella que te contagia esas ganas de seguir aprendiendo, personas que alientan a uno a crecer constantemente y que ayudan a uno a dejar de tener los miedos al cambio, a esos cambios que nos ayudan en diferentes aspectos.
Este año fue un excelente año para mi, y la verdad que estoy super agradecido a dios y a mi querida virgen de Urkupiña por el gran año que me dieron.
Debajo les dejo los resúmenes del DevFest 2013 y 2014.
Felices fiestas a todos y les deseo un excelente 2015 :) Happy Hacking };)
Este año comenzo con muchos obstáculos por saltar y muchas metas por cumplir, se que no eh podido cumplir todas las metas, pero las principales gracias a dios si las pude cumplir :).
En lo personal crecí muchisimo :), y lo unico que les puedo contar es que el amor que nos tenemos con mi señora se duplico :).
En lo profesional, arranque el año Trabajando en Accenture, una empresa donde aprendí muchisimo, fue mi primer trabajo en el ambito laboral, arranque dentro de Accenture trabajando en c++ haciendo servicios web en Tuxedo para Movistar España, una gran experiencia, luego pase a un proyecto web, la www de personal (www.personal.com.ar) ahí seguí aprendiendo muchisimas cosas del mundo web y de Vignette (aunque no me guste mucho), tecnologías del back-end y del front-end :), y mis últimos meses estuve en un proyecto interno de Accenture, en ese proyecto aprendí mucho de como trabajar en equipo y que cosas no tengo que hacer cuando tengo a gente a cargo XD, aprendí como un equipo tiene que tirar y laburar a la par y la organización de la misma.
Luego gracias a dios pude cambiar de trabajo y entre a trabajar en el HSBC Banck (Mediante a Tecnosoftware), ahí conocí a una gran persona, ahí conocí a Gastón alvarez, para mi esa persona es lo que yo llamo Hacker, personas con una gran inteligencia y que cualquiera, si mantiene una charla de 10 minutos aprende cosas maravillosas, él re vivió en mi la pasión por el desarrollo y las ganas de incursionar en nuevos mundos de la informática, hoy en mi trabajo actual lo extraño mucho... ;), espero poder volver a compartir una charla con él. Otra persona interesante fue Nacho XD ese es un loco que me dejo muchas lecciones de la vida, Alan otra persona que me tuvo mucha paciencia jaja en fin, muchas personas de las cuales aprendí mucho en HSBC :).
Actualmente llevo 3 meses trabajando en despegar.com, estoy mas que chocho, lugar donde hay mucha gente que sabe y no es solo eso, actualmente estoy trabajando con tecnologías de punta, con desafíos constantes y aprendiendo mucho. :), actualmente puedo hablar de Agustin y de Lucas, dos personas que saben Bocha, Otra persona que puedo mensionar es Pablo, aunque no hablo mucho con el se nota que sabe... y la charla que dio para la comunidad de JavaScript me dejo anonadado XD, El equipo entero con el cual trabajo me deja con boca abierta, y eso, hace que sea un gusto estar trabajando con ellos, hoy deje de ser aquella persona que notaba cosas malas hechas en los proyectos que participaba, a una persona que aprende como se tienen que hacer bien las cosas :).
En cuanto a mi participación en el GDG (Google Developers Groups), fue un excelente año, hoy soy Manager del GDG La Plata, tratando de levantar la comunidad en La Plata, volví a participar en el DevFest en Buenos Aires, Conocí a Diego (Manager del GDG La Plata), una excelente persona, me hice de nuevos amigos y conocidos :), Participar en esta comunidad es lo mejor que me paso en cuanto a lo profesional, constantemente estoy conociendo a personas con un dominio de las tecnologías que da envidia jaja ojo de la buena, aquella que te contagia esas ganas de seguir aprendiendo, personas que alientan a uno a crecer constantemente y que ayudan a uno a dejar de tener los miedos al cambio, a esos cambios que nos ayudan en diferentes aspectos.
Este año fue un excelente año para mi, y la verdad que estoy super agradecido a dios y a mi querida virgen de Urkupiña por el gran año que me dieron.
Debajo les dejo los resúmenes del DevFest 2013 y 2014.
Felices fiestas a todos y les deseo un excelente 2015 :) Happy Hacking };)
DevFest 2013
DevFest 2014
lunes, 1 de diciembre de 2014
Repaso y cosas a tener en cuenta con archivos en pascal
Hola a todos, hoy vamos a repasar algunos conceptos y mencionar algunas cosas que hay que tener en cuenta a la hora de trabajar con archivos.
Marca de fin de Archivo: Todos los archivos tienen una marca de fin de archivo EOF y para consultar si estamos en el fin de archivo tenemos la sentencia eof(nombre_logico). Este nos retorna true si es que estamos en el fin del archivo.
Control de Tamaño de Archivo: Para controlar la cantidad de elementos del archivo tenemos la sentencia filesize(nombre_logico), que nos retorna un entero con la cantidad de elementos que guardamos en el archivo.
Control de posición dentro del Archivo: Tenemos una sentencia que nos retorna la posición actual del puntero (descriptor) , este es la variable que contiene la referencia lógica de nuestro archivo. La sentencia es la siguiente: Filepos(nombre_logico), y esta nos retorna un valor de 0 al tamaño del archivo.
Ubicación física en alguna posición del archivo: Con esta operación nos podemos posicionar en cualquier lugar del archivo para leer, modificar cualquier elemento o agregar nuevos elementos, la sentencia es: seek(nombre_logico, posición), por ejemplo podemos usar esta función para pararnos al final del archivo de la siguiente forma: seek(nombre_logico, filesize(nombre_logico)).
Algunas cosas que debemos recordar es que cuando leemos un dato del archivo este puntero al archivo (nombre_logico) avanza un lugar en el archivo y cuando escribimos pasa lo mismo, por lo cual no pensemos que se queda en el mismo lugar, si no mas bien avanza una posición en ambos casos.
Por otro lado comentarles que todas estas instrucciones tienen sus equivalentes en otros lenguajes, por lo cual son facilmente trasladables a otros lenguajes.
Por ahora es todo, en los proximos post comenzaremos con la algoritmia básica sobre archivos.
Saludos y Happy Haking } ; ) .
Marca de fin de Archivo: Todos los archivos tienen una marca de fin de archivo EOF y para consultar si estamos en el fin de archivo tenemos la sentencia eof(nombre_logico). Este nos retorna true si es que estamos en el fin del archivo.
Control de Tamaño de Archivo: Para controlar la cantidad de elementos del archivo tenemos la sentencia filesize(nombre_logico), que nos retorna un entero con la cantidad de elementos que guardamos en el archivo.
Control de posición dentro del Archivo: Tenemos una sentencia que nos retorna la posición actual del puntero (descriptor) , este es la variable que contiene la referencia lógica de nuestro archivo. La sentencia es la siguiente: Filepos(nombre_logico), y esta nos retorna un valor de 0 al tamaño del archivo.
Ubicación física en alguna posición del archivo: Con esta operación nos podemos posicionar en cualquier lugar del archivo para leer, modificar cualquier elemento o agregar nuevos elementos, la sentencia es: seek(nombre_logico, posición), por ejemplo podemos usar esta función para pararnos al final del archivo de la siguiente forma: seek(nombre_logico, filesize(nombre_logico)).
Algunas cosas que debemos recordar es que cuando leemos un dato del archivo este puntero al archivo (nombre_logico) avanza un lugar en el archivo y cuando escribimos pasa lo mismo, por lo cual no pensemos que se queda en el mismo lugar, si no mas bien avanza una posición en ambos casos.
Por otro lado comentarles que todas estas instrucciones tienen sus equivalentes en otros lenguajes, por lo cual son facilmente trasladables a otros lenguajes.
Por ahora es todo, en los proximos post comenzaremos con la algoritmia básica sobre archivos.
Saludos y Happy Haking } ; ) .
domingo, 30 de noviembre de 2014
Crear, Cargar, Leer y Modificar Archivos
Hola a todos, hoy les voy a dejar un código donde se muestra como crear, cargar, leer y modificar los datos de un archivo en pascal.
Recuerden que este código lo pueden compilar y funciona perfectamente. También recuerden que las explicaciones de los mismos están como comentarios en el código.
Recuerden que este código lo pueden compilar y funciona perfectamente. También recuerden que las explicaciones de los mismos están como comentarios en el código.
domingo, 16 de noviembre de 2014
Buffers de Lectura y Escritura en Archivos
Antes de comenzar a explicar como movernos dentro de los datos de un archivo, tenemos que entender como funcionan los buffers de lectura/escritura del Sistema Operativo.
Debido a los tiempos de acceso de la RAM y del Disco Rigido, se busco una forma optima de obtener los datos, lo que se hace es leer de a bloques grandes del disco y estos datos se guardan temporalmente en memoria RAM.
Esta lectura se dispara con la petición de obtención de un dato en disco, y como se dijo, junto a ella se trae mas datos (Un Bloque), ya que es muy probable que la siguiente lectura el dato a obtener esté continua a la anterior, y por ello la siguiente vez que se requiera un dato, este no lo buscara en el disco, si no que ya estará en RAM por lo cual se ahorra mucho tiempo de espera al obtener el dato.
Pasa lo mismo con la escritura, es mas rápido escribir un bloque entero de memoria que pequeñas partes del mismo, por ello también se cuenta con un bloque para las escrituras, donde se van almacenando los datos hasta que el programa se cierre o el bloque se llene (también podemos indicar al Sistema Operativo desde el programa que escriba el buffer en disco cuando mas lo creamos conveniente).
Resumiendo un poco, recordemos que entre el disco rígido y nuestro programa vamos a tener un buffer (Estos son registros en RAM) y que gracias a ello tenemos una mejora en la performance de nuestras lecturas y escrituras.
Saludos a todos :) Happy Hacking } ; )
Debido a los tiempos de acceso de la RAM y del Disco Rigido, se busco una forma optima de obtener los datos, lo que se hace es leer de a bloques grandes del disco y estos datos se guardan temporalmente en memoria RAM.
Esta lectura se dispara con la petición de obtención de un dato en disco, y como se dijo, junto a ella se trae mas datos (Un Bloque), ya que es muy probable que la siguiente lectura el dato a obtener esté continua a la anterior, y por ello la siguiente vez que se requiera un dato, este no lo buscara en el disco, si no que ya estará en RAM por lo cual se ahorra mucho tiempo de espera al obtener el dato.
Pasa lo mismo con la escritura, es mas rápido escribir un bloque entero de memoria que pequeñas partes del mismo, por ello también se cuenta con un bloque para las escrituras, donde se van almacenando los datos hasta que el programa se cierre o el bloque se llene (también podemos indicar al Sistema Operativo desde el programa que escriba el buffer en disco cuando mas lo creamos conveniente).
Resumiendo un poco, recordemos que entre el disco rígido y nuestro programa vamos a tener un buffer (Estos son registros en RAM) y que gracias a ello tenemos una mejora en la performance de nuestras lecturas y escrituras.
Saludos a todos :) Happy Hacking } ; )
Archivos, Operaciones Básicas, Crear, Abrir y Cerrar
Hola a todos, hoy les vengo con las operaciones básicas para poder comenzar a trabajar con archivos, lamentablemente (para mi que me gustan otros lenguajes) voy a tener que usar pascal ya que la cátedra lo dicta con ese lenguaje.
Abajo dejo el código con los comentarios necesarios para comprender todo lo necesario para comenzar a trabajar con los archivos.
Abajo dejo el código con los comentarios necesarios para comprender todo lo necesario para comenzar a trabajar con los archivos.
sábado, 15 de noviembre de 2014
Formas de Acceso a la Información de un Archivo
Hola a todos, hoy les vengo con las formas que tenemos de acceder a un archivo.
Existen 3 formas de acceder a un archivo, y estas son:
Existen 3 formas de acceder a un archivo, y estas son:
- Secuencial: El acceso a los datos es secuencial, dicho de otra forma, se accede a los datos desde el principio hasta el final, uno tras el otro.
- Secuencial Indizado: El acceso a los datos se realiza según algún criterio de ordenación, sin tener en cuenta el orden físico de los datos. (Esto se realiza mediante el uso de indices en los archivos), cuando utilizamos esta forma de acceso vamos a notar que después de ingresar un nuevo dato, al recuperarlo, este estará ordenado.
- Directo: Conociendo las características de un dato se puede obtener el mismo con un solo acceso, mas allá de su orden físico o lógico predeterminado.
A partir de ahora viene lo mas lindo, que es hacer código XD.
En los próximos post, va ir acompañado de la teoría un código ejemplo del mismo en pascal, ( si lo se pascal :(, no queda de otra, la cátedra lo usa para dictar esta materia ), pero para los que les guste otro lenguaje, voy a crear un repo en githup donde iré poniendo estos mismos ejemplos en otros lenguajes de programación, de esta forma yo practico esos otros lenguajes ( También los aprendo ) y a mas de uno le servirá para aprender un lenguaje nuevo :)
Saludos a todos, Happy Haking } ; )
Suscribirse a:
Entradas (Atom)
ZonedDateTime & OffsetDateTime
Hoy quiero compartirles algunas pruebas que realice con ZonedDateTime y OffsetDateTime. En primer lugar podemos decir que tenemos un ...
-
Migración MongoDB 2.4 -> 2.6 -> 3.2 (con replicas) Este post pretende mostrar los pasos a seguir para la migración del mongoDB 2.4 ...
-
Hoy quiero compartirles algunas pruebas que realice con ZonedDateTime y OffsetDateTime. En primer lugar podemos decir que tenemos un ...
-
Hola a todos, hoy vamos a repasar algunos conceptos y mencionar algunas cosas que hay que tener en cuenta a la hora de trabajar con archivos...