Mostrando las entradas con la etiqueta Programación. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Programación. Mostrar todas las entradas

miércoles, febrero 13, 2013

Definir un path de carrera.


Pues después de meditar un rato sobre lo debería estar haciendo y lo que estoy haciendo en estos ultimas semanas, y también de revisar mis metas personales en ámbitos de salud y financieros he llegado a establecer a corto plazo el hecho que debo re-definir que espero realizar en cuestiones profesionales y laborales, así que en este post he escribir y referir algunas de las ideas y consejos que encontré en varios sitios web, Tweets y entrenamientos de mi empleador; así como mi definición y como llegue a el.

Si he de ser franco esto es algo que hace unos días o mejor dicho muchos ayeres me había planteado y definido,  pensado en cual era el camino y las metas a cumplir, un poco básico pero efectivo hasta hace unos pocos meses;poco  importa del todo tu carrera profesional y gustos, si no mas bien llenar un perfil para un puesto. El problema ocurre cuando el proyecto para el que fuiste contratado originalmente se ha terminado y es fácil colocarte en uno nuevo, ya sea porque tienes un perfil con habilidades(skills) muy especializados o porque donde podrían colocarte llegan a interferir otros detalles ademas de tus "aptitudes y actitudes" como el costo. Después alcanzar un poco de seniority en una herramienta, es difícil llegar a hacer un giro a tu carrera por que sera difícil colocarte (¿pagar como senior a un junior?), así sea que ganas 3 pesos, siempre hay quien quiere la mitad de precio y el doble de bueno. Pero este no es el post para definir como colocarte o vender mejor un recurso. este estará enfocado en mejorar tus habilidades en algunas áreas:
  • Productividad
  • Liderazgo
  • Comunicación
  • Habilidades de Managment
  • Habilidades técnicas

Debo aclarar que separo Dirección a las de Liderazgo por una sencilla razón   podrás no ser jefe de un proyecto o equipo de trabajo pero siempre podrás ejercer liderazgo en el;  llevar la estafeta y proponer el rumbo al que esta en el timonel, es por esa razón que en muchos deportes existe el rol de capitán, ademas del que tiene la dirección del equipo.


Otro punto importante es la cuestión de que en muchas escuelas, el tema de liderazgo y dirección esta relegado en las carreras técnicas, eso no quiere decir que se justifique el no haber leído y aprendido de esos tópicos por consejo de amigos, familiares y hasta algunos maestros, aun cuando no fue un tema de mayor importancia o se te evaluara. Recordando una imagen de FB, 


Que bien pudiera ser: "No se Justifica en estos tiempos ser ignorante"

En el sector de Managment (directores o gerentes), tal vez por la experiencia que he tenido en las empresas que he trabajado y platicando con varios amigos y compañeros me doy cuenta como se comportan muchos gerentes y jefes en términos generales, también como es su forma de pensar, sus responsabilidades;y siendo honesto he aprendido lo bueno y malo que se hace y generar el "Rol Model" que quiero ser.

El sector mas difícil de definir, irónicamente puesto que estudie en escuela técnica, es en generar nuevas (o renovar) mis habilidades técnicas  porque cada vez me convenzo mas de que es muy variable las habilidades técnicas, un SAPero podria cubrir un rol de Programmer en C, por el mero hecho de decir que desarrollo en ABAB; o bien alguien que sabe de SQL puede hacerla de Developer en Java, con la cuestión de que se usa mas para crear reportes, o tal vez otro mas interesante por ser System Admin en Unix podrías ser System Admin pero en Windows, o bien Adminstrar Aplicaciones Web  ¿Todos estos roles están relacionados? Si, porque son del área de tecnologías de información y es muy amplio, pero bien con ese enfoque es dificil ser especializado como te venden las empresas, Web Services Developer o  Oracle Real Application Clusters 11g and Grid Infrastructure Administrator o un Certified Hacking Forensic Investigator. Por que no tienes garantizado que estarás en un proyecto de una sola índole  si bien es bueno porque no te aburres, no es optimo saber de todo aunque sea poco. Lo comparo con un Doctor, si es valido hacer la comparación, un neurocirujano puede y sabrá hacer lo que hace un medico cirujano (obvio ya lo estudio),  en una emergencia sabrá operar y sacar una bala, o tal vez una operación mas delicada, pero no es su especialidad, no es lo que espera, ni por lo que especializo, a  diario.

Esa en parte ha sido la motivación de esta publicación, definir un conjunto de skils y habilidades que me especialicen con mis actuales habilidades sin importar el próximo rol que obtenga. En mi empresa me definen por Capability: (conjunto de conocimientos que te hacen capaz para un posible rol) así pues alguien del capability de pruebas debería obtener un rol relacionado a testing, pero no siempre ocurre y puede llegar al capability de servidores.

Esta publicación ya es larga y generara mas publicaciones y sin más después de navegar e investigar un largo tiempo he decidido leer por lo menos un libro de las siguiente lista que genere, a excepción de habilidades técnicas  ahí son mas conceptos y certificaciones que me gustaría obtener y debo investigar mas.

Bien la lista es la siguiente:
      • Creating Personal Presence: Look, Talk, Think, and Act Like a Leader by Dianna Booher Booher Consultants, Inc. © 2011
      • The Titleless Leader: How to Get Things Done When You're Not in Charge by Nan S. Russell Career Press © 2012
      • HBR ’s Must Reads on Leadership by Harvard Business Review Press Harvard Business Press © 2011
      • First, Break All the Rules (1999), by Marcus Buckingham and Curt Coffman
      • Presentation Secrets: Do What You Never Thought Possible with Your Presentations by Alexei Kapterev John Wiley & Sons © 2011
      • Improve Your Communication Skills, Revised Second Edition by Alan Barker Kogan Page © 2010
      • The Elements of Style (4th Edition) by William Strunk, E. B. White
      • ToastMaster
  • Productivity:
    • No Excuses! The Power of Self-Discipline by Brian Tracy Perseus Publishing © 2010
    • Getting Things Done: The Art of Stress-Free Productivity by David Allen
    • 8 to Be Great: The 8-Traits That Lead to Great Success by Richard St John
    • Next Generation Product Development: How to Increase Productivity, Cut Costs, and Reduce Cycle Times by Michael E. McGrath
  • Managment 
    • It's Your Ship: Management Techniques from the Best Damn Ship in the Navy by D. Michael Abrashoff
    • Supervision Today! by Stephen P. Robbins, David A. DeCenzo, Robert Wolter.
    • How to Win Friends & Influence People by Dale Carnegie
    • Peopleware: Productive Projects and Teams by Tom DeMarco
    • The Success Principles: How to Get From Where You Are to Where You Want to Be by Jack Canfield, Janet Switzer
    • The Everything Coaching & Mentoring Book: Increase Productivity, Foster Talent, and Encourage Success by  Nicholas Nigro
    • Make Their Day!: Employee Recognition that Works, Proven Ways to Boost Morale, Productivity, and Profits by  Cindy Ventrice
    • Employee Engagement 
  • Technical
    • Linux (1)
      • LPIC.
      • Etical Hacker 
      • Certified Hacking Forensic Investigator
    • Project managment: (4)
      • Scrum Master ( Agile)
      • ITIL Foundamentals
    • Programming. (2)
      • Java
      • C
      • Python
      • Macros for excel
    • Databases (3)
      • Oracle
      • Access
      Testing (5)
      • Performance Center
      • Load Runner / VuGen
      • Selenium.

lunes, febrero 02, 2009

Unable to initialize TldLocationsCache

A 500 error is presented in JBoss AS, when I access to my application, this error is :
org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: java.util.zip.ZipException: invalid entry size (expected 2173829128 but got 830 bytes)
org.jboss.web.tomcat.service.jasper.TagLibCache.init(TagLibCache.java:106)
org.jboss.web.tomcat.service.jasper.TagLibCache.getLocation(TagLibCache.java:83)
org.apache.jasper.JspCompilationContext.getTldLocation(JspCompilationContext.java:530)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:419)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:476)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1426)
org.apache.jasper.compiler.Parser.parse(Parser.java:133)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:316)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:336)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)



org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

This error is because I have defined jasper compiler as false, "jboss/server/default/deploy/jboss-web.deployer/conf/web.xml"

<init-param>
<param-name>development</param-name>
<param-value>false</param-value>
</blockquote>

The JSP should be precompiled, i don't undestand very well but this is the solution or change the value to true, but in production environments, this should be false

lunes, agosto 25, 2008

Algunas aplicaciones

Pues para mi futura referencia, y para mis amigos lectores he decidido hacer una lista de algunas herramientas y programas que he tenido que usar en mi actual trabajo/proyecto .
- Keith's Putty : Es prácticamente el mismo putty de toda la vida solo que tiene unos pequeños addons (De mi agrado, que recuerda las últimas conexiones).
- Putty conection managment : Soy fanático de las pestañas, y ante la ausencia de mi gnome-terminal o kterm, pues este programa me ha fácilitado la vida.
- notepad2 : un sustituto al tradicional bloc de notas de windows, simple y liviano para editar archivos rapido.
- notepad ++ : otro editor de textos, con muchas mas funcionalidades a través de plugins, el más utilizado por mi un equivalente al diff de *nix
- cygwin : la versión de Linux portada a Windows, lo utilizo para tener un servidor X en Windows y poder ejecutar aplicaciones gráficas remotamente
- firefox : Hay algún mejor navegador, bueno tal vez mi antiguo browser le haga competencia, opera, pero después de configurar los plugins correctos y el tema de tu agrado no habra otro browser en tu cabeza.
- winscp : una simple herramienta para transferir archivos por el protocolo SSH desde Windows a *nix.
- jprofiler : quieres monitorear el comportamiento de tu JVM, cuantos objetos hay en memoria, se esta saturando el heap, esta es la solución.
- apache : Alguien no lo conoce, es simplemente uno de los mejores (o el mejor) servidores web
- netmeeting, webex: bueno pues he tenido que mostrar mi pc, para no compartir contraseñas ni privilegios de un server, o simplemente para ver los errores, ejemplos de un usuario remoto.
- tortoise : un cliente de SVN para Windows, utilizado principalmente para la documentación del projecto
- MS Office : la paquetería normal para archivos de hojas de cálculo, textos, y sobre todo correo electrónico.
- Sametime : un mensajero instantáneo al estilo MSN, ICQ, etc.
- Conectivity VPN : para trabajar desde casa o cualquier parte, necesito acceder a la red privada desde internet, es momento de usar un cliente de red VPN
- MS Visio : en realiad muy poco usado y más para ver archivos de terceros.
- Support central : es un "foro" donde postean casos y se tienen que resolver en los tiempos que se marcan dentro del contrato ( llamados SLAs, dando prioridad y tiempo de respuesta)
- Kintana : pues aqui registro mis actividades, con lujo de detalle (en cuanto documentación), permitiendo y facilitando la implementación de CMMI

Y estas son algunas tecnologías que he tenido que usar, o al menos conocer un poco de ellas:
- F5 load balancer : para tener una redundancia en los servidores es necesario tener un balanceador de carga (con diferentes polítcas), puede ser por software o por hardware, tal es el caso del F5, usado para attender las peticiones a una ip (vip en realidad) y redirigir a cualquiera de x ips
- SSO Siteminder : Las múltiples aplicaciones existentes en la compañía necesitan tener un solo acceso a las aplicaciones (un solo usurario / password) para tal motivo se utiliza el single sign on, en este caso el software que lo provee es siteminder.
- JBoss : simplemente es un servidor de aplicaciones que cumple los estándares J2EE, más adelante escribo un post de este servidor.
- EJB : bueno aún no los he comprendido bien, pero la idea es que haya objetos en común y faciles de acceder para otras aplicaciones, esta es una de las tecnologías en las que quiero programar, aunque debo empezar primero con lo básico de JSP
- Solaris : si el tan sonado UNIX de Sun Microsystems, pues he tenido que aprender de zonas, limites, configuración y administración en general
- Six Sigma : reducir las imperfecciones, pues no es una crema, pero la finalidad de esta interésante técnica es la de evitar piezas imperfectas en producción sirviendo para procesos industriales, y en este caso de desarrollo de software y/o entrega de servicios de TI
- CMMI : una metodología de desarrollo de software para documentar los procesos, tener métricas, conocer riesgos, defectos, verificar y validar y muchas más coas de TI y desarrollo de software que me podría llevar muchos post
- ITIL : ITIL, bueno en primera, una de las tecnologías a aprender para un empleo bien pagado. ITIL son librerias de buenas prácticas para llevar a cabo las actividades de entrega de un provedor de servicios, y también algo de lo que habrá que estudiar más y publicar más post
- Load runner : pues tal vez hayas oido hablar de pruebas o testing, bien este es un software que te permite llevar a cabo varias veces una tarea determinada(s) y así verificar el correcto funcionamiento, guardando estadísticas de los eventos realizados y arrojados por la aplicacion.
- Clustering : pues en realidad se tenia una breve noción de que es, pero ahora ya lo estoy implementando y llevando a cabo, conociendo más a detalle lo que son las replicaciones.
- NAS : network access storage, pues simplemente son unidades en red para tener la información por separado de la información, y permitiendo un trato diferente para su respaldo.

Bien esto en ámbitos generales y espero no olvidar software, son las herramientas con las que trabajo a diario y tecnologías usadas a diario, directa o indirectamente por mi, en mi actual empleo.

viernes, agosto 22, 2008

plugins firefox

Una pequeña recomendación de plugins para Firefox.

  • Httpfox: para medir la velocidad que tarda en descargar los elementos de una Web, muy útil si trabajas con servidores Web, y monitoreando rendimiento
  • Webdeveloper: su nombre lo dice todo, y aunque no seas desarrollador te servirá mucho como para desactivar imágenes, u objetos flash, etc.
  • Meboo, si tienes que utilizar MSN y no tienes acceso en la red, o simplemente porque necesitas utilizar mas de una cuenta de mensajera instantánea, este es tu plugin
  • Logme in, en algunas ocasiones es necesario acceder a un equipo de manera remota, y generalmente son Windows, como nuestros equipos personales, este servicio y su plugin son los indicados para ti
  • Download them all: hace mucho que deje de utilizar programas de gestores de descarga, desde que uso este plugin
  • ietab: algunas veces es Nazario, por sitios no compatibles, (como ticketmaster y Bancomer)
  • iMacros, me fue bastante útil cuando tuve que probar la velocidad de las aplicaciones soportadas, hay que hacer que las cosas sean mas fáciles, y esta utilidad te permite generar macros, para hacer pruebas en tus paginas y no hacer cosas rutinarias manualmente.
  • newsfox, hace mucho que visitar una pagina para leer las noticias no se usa, en vez de eso un lector de RSS hace el truco y lees tus noticias favoritas de manera mas cómoda y rápida.
  • switchproxy, es muy útil cuando se trabaja con varios Proxy, y ayuda a cambiar rápida y cómodamente entre ellos
  • Firegestures: quien ha usado opera sabrá que hace este plugin, quien no, pues bueno este plugin sirve para que algunas funciones como abrir pestañas, hacer zoom, y cerrarlas sea tan fácil como dibujar.
  • Extended status bar, muy útil para pruebas de speed de mis servidores Apache/JBoss en conjunto con iMacros.

viernes, octubre 26, 2007

Diez tips para trabajar con su desarrollador de software

Interesante artículo extraído de aquí

El mundo de los administradores es muy diferente al de los desarrolladores de software y con frecuencia tienen problemas para comunicarse entre sí.

¿Por qué ocurre esto? Buena parte se debe a que el desarrollo de aplicaciones es una habilidad difícil de adquirir y dominar. A un desarrollador le preocupan más el aspecto técnico que el económico -negativo o positivo- de sus acciones. Su visión muchas veces es limitada y no tiene “sentido del impacto político que puede causar”, como argumentan algunos administradores de dependencias gubernamentales.

El autor del libro sobre programación The Ruby Way, Hal Fulton, con una amplia experiencia como desarrollador en la industria de cómputo, nos comparte sus consejos para motivar a los desarrolladores de código, comunicarse mejor con ellos, y entender a esas “extrañas personas” que diseñan las aplicaciones en que tanto confiamos.

1. Recuerde al desarrollador que “la excelencia técnica no es garantía de éxito”. Muchas veces estos conceptos ni siquiera están relacionados. La historia está llena de ejemplos en que productos superiores fracasaron por diversas razones y los desarrolladores lo entenderán si se les recuerda esto.

2. Señale el impacto económico siempre que pueda y sea lo más específico posible. Si un desarrollador quiere atrasar la agenda un mes para añadir una funcionalidad que él considera importante, introduzca el dinero en la ecuación. Háblele de la importancia de tener a tiempo el desarrollo y el impacto de retrasar un mes la entrega del sistema, ya sea en cuantificación monetaria -tal vez por recaudar menos o por gastar más en el desarrollo- e incluso el impacto político que puede tener. Pida al desarrollador que evalúe la situación a la luz de esos hechos.

3. Explore las razones que tiene el desarrollador para estar en desacuerdo, porque pueden ser válidas. No olvide que el otro lado puede tener la razón. Lo más importante es tener una buena comunicación entre las dos partes para mitigar el conflicto. Si un desarrollador está en contra de seguir un plan de acción, no deseche su opinión de inmediato; él es un profesional en su campo, tal como usted lo es en el suyo. No sea un dictador.

4. Explique al desarrollador las limitaciones y las suposiciones sobre las cuáles está usted trabajando, así como la razón de sus decisiones. Si debe ignorar la opinión de un desarrollador, ¡al menos tenga una justificación para ello! Ambas partes suelen ser razonables y todo es cuestión de una buena comunicación.

5. Para que la comunicación sea posible es necesario que ambas partes hablen el mismo lenguaje. Si la organización tiene programas de actualización, promueva que los desarrolladores estudien algo relacionado con administración. Si tiene suerte, eso les “abrirá los ojos”.

6. Tampoco hace daño que el administrador estudie algo en un nivel más técnico. No se trata de igualar el nivel experiencia de un programador, pero sí de entender mejor el aspecto técnico y estar actualizado en las tendencias y novedades. Nunca pretenda saber algo que no conoce. La ignorancia honesta siempre es mejor que el conocimiento supuesto.

7. No sujete demasiado a los desarrolladores a la burocracia que suele existir dentro de las organizaciones. Nada frustra más a un desarrollador que estar alejado del trabajo real para llenar formas o atender a aparentes reuniones sin sentido en las que no se logra nada. Seguir las reglas y procedimientos es necesario, pero no se convierta en un esclavo de ellas.

8. Aleje a sus desarrolladores de la burocracia tanto como pueda. Ellos lo apreciarán y lo respetarán más y serán más productivos.

9. Ayude a hacer más eficientes los procesos, e incluso reducirlos, si esto ayuda a la productividad. ¿Necesitan sus desarrolladores registrar lo que hacen cada15 minutos? ¿Requieren llenar un reporte de tres páginas cada semana? Si estas cosas contribuyen al resultado final, manténgalos; pero si no es así, mire a otro lado mientras esas prácticas inútiles se dejan de hacer.

10. Léa la tira cómica Dilbert. No le sorprenderá darse cuenta que gente con la que trabaja se parece mucho a Dilbert, el personaje de la tira estadounidense. Si usted mira más allá de la exageración del cómic, apreciará la realidad. ¿Quién dijo que aprender no puede ser divertido?

sábado, agosto 11, 2007

JAVA e Interfaces Glade

muy interesante este flash para programar java usando interfaces glade en eclipse http://people.redhat.com/overholt/nativeeclipse/index.html

jueves, mayo 31, 2007

lo que el usuario realmente necesita...


ya había tenido la oportunidad de encontrar y ver imágenes donde se explica las etapas y deficiencias del desarrollo de software pero ninguna como esta....

domingo, abril 22, 2007

Graficas Flash en php

Buscando alguna herramienta que me ayude al momento de desarrollar reportes he encontrado php/swf charts, excelente libreria para generar gráficas, y al revisar el código fuente, parece realmente sencillo de utilizar, habra que dar un vistaso más a fondo

10 pasos para planear tu aplicación web

Realmente estoy de acuerdo con estos 10 pasos que encontre navegando por la web de vivaphp
  1. Planea para el futuro.
  2. Documenta.
  3. No hagas trabajos poco importantes al principio.
  4. Diseña tus interfaces
  5. Evita escribir tu propia librería/framework en lo posible.
  6. Crea un plan de proyecto.
  7. Elije el lenguaje apropiado.
  8. Apártate de las distracciones.
  9. Apoya el control de calidad desde el primer día.
  10. Identifica problemas que puedan suceder más adelante en el proceso de desarrollo.

jueves, agosto 24, 2006

Tarde....

Para variar, después de dos semanas de no publicar nada, pues he vuelto con las noticias de los últimos partidos de nuestro equipo de fútbol uruguayo Incógnito, los cuales hemos perdido el primero por default ya que ese día fue cuando entregaron los papeles de egresado en el auditorio Eduardo Tres Guerras, por lo cual no fuimos la mayoría del equipo solo fueron Tito e Isai. Después de los papeles nos fuimos de aventura (a festejar)

Jeje… bueno después de andar un rato de compras y buscando lugar donde empezar a festejar nos fuimos a la casa de Eduardo Cobo

Los videos los estoy terminando de subir a www.youtube.com por lo pronto he subido estos:

Sí alguien esta interesado en un pack o algún video en especifico, solicítamelos por email y te mandare los videos.

Continuando con el tema del Fútbol Uruguayo, el partido del lunes pasado lo perdimos, también fuimos muy pocos jugadores al encuentro

  • Eduardo Cobo
  • Tomas
  • Noé
  • Isai
  • Jonatan (el cual llego tarde pero fue que es lo importante)
  • Tito
  • Jaime (su servidor)

Y como se podrán dar cuenta no nos acomodamos bien, y perdimos de forma desastrosa “todo por culpa del portero” (jaja, para nada poco pudo hacer realmente) la verdad es que fallamos tenemos el problema de llegar y no disparar queremos “meternos hasta la cocina”, y la defensa fue o se vio mal, considerando que la media fue nula. En fin hago un llamado al resto de los integrantes del equipo a que confirmen si van a continuar con el equipo o si buscamos nuevos aspirante porque la verdad se hace muy pesado pagar la cantidad de $50.00 por jugar una hora.

Bueno también le ofrezco una disculpa publica, a nuestro portero porque he sido un poco injusto solo mencionando sus malas actuaciones y descartando cuando ha tenido buenas participaciones y excelentes atajadas (error común de fútbol, el portero llama mas la atención por sus errores que por sus aciertos)

Por otro lado y pasando a cosas menos triste, ya empecé a trabajar en CRODE Celaya, la cual es un centro que atiende a la DGEST y al sistema de Institutos Tecnológicos. Existen cuatro CRODEs en la republica, y yo entre en el área de programador, estaré trabajando con Power Builder y con PostgresSQL, ocasionalmente me puede tocar trabajar con PHP o con Flash


Editado: como ya me dio flojera terminar de subir los videos a youtube.com mejor los subi en un mega pack a megaupload: aquí el link