miércoles, 27 de febrero de 2013

Why We Age - And How We Can Stop It

domingo, 24 de febrero de 2013

GESTION DE PROCESOS parte 3


Segun mi bibliografia:

Para determinar si una actividad realizada por una organización es un proceso o subproceso, debe cumplir los siguientes criterios:


  • La actividad tiene una misión o propósito claro. 
  • La actividad contiene entradas y salidas, se pueden identificar los clientes, 
    proveedores y producto final. 
  • La actividad debe ser susceptible de descomponerse en operaciones o tareas.
    ¿Que significa ser suceptible?¿Acaso las actividades tienen sentimientos?(lo que quieren decir es que se puede descomponer en operaciones o tareas). 
  • La actividad puede ser estabilizada mediante la aplicación de la metodología de gestión por procesos (tiempo, recursos, costes). 
  • Se puede asignar la responsabilidad del proceso a una persona. 


Una de mis mayores era, porque tantas definiciones, porque tantas recetas. A veces, por lo menos para mi, es mas facil aprenderse una pregunta que toda la respuesta. A veces una pregunta bien hecha te permite reproducir nuevamente toda una larga respuesta. En mi caso que lei por primera vez las preguntas que vinieron a mi cabeza fueron.

¿Que es lo que no es una actividad? ¿Porque toda esta receta? Pues a mi forma de ver, todo era una actividad de alguna manera. Y la receta que tenemos anteriormente, debe salir de algun lado. Luego de esas preguntas las respuestas me empiezan a salir. Una de los principales objetivos de esta asignatura es tener una organizacion y clasificacion clara de las cosas. Los cuatro ultimos puntos, tienen que ver con eso. El primer punto era el que mayor confusion me hacia. Que es la tarea que no tiene objetivo claro? Bueno al parecer, las Tareas. Lo que se quiere decir, en esa lista, es que para que una tarea sea un proceso, tiene que tener un unico objetivo. Tiene que estar direccionado hacia un lado. No importa si es muy grande o muy pequeño, el objetivo es que si una tarea tenga varias subtareas esta tenga un solo objetivo y no varios. Un ejemplo sencillo de una actividad que puede ser una tarea.

Tarea (o Actividad):

Cojer un plato sucio,  ponerlo en el lavaplatos, encender el lavaplatos.

La tarea tiene un objetivo claro. Lavar el plato. Lo que se desea siempre, es que ese conjunto de tareas siempre sean para un mismo fin. Que al final, al parecer, siempre se puede conseguir una tarea mas global que cubre todos esos subprocesos. Por ejemplo, una actividad que aparentemente no tiene objetivo o mision.

Tarea:

Cojer un plato sucio, cojer ropa sucia, poner en el lavaplatos el plato sucio, poner en la lavadora la ropa sucia, encender el lavaplatos, encender la lavadora.

¿Tiene una mision clara la actividad? Al parecer no, porque ¿es lavar los platos o lavar la ropa?

Sin embargo, un lector podria decir, que el objetivo es Limpiar o Lavar. Y la respuesta estaria correcta. Pero la idea entonces quedaria de otra manera.

La activdad que se considere proceso, es recomendable dividirlo hasta tal punto, que este claro su objetivo final (ya que cualquier tarea tiene un objetivo).


sábado, 23 de febrero de 2013

Arduino Motor DC con 3 estados Parte 1

Recien empeizo hacer algo con Arduinos, y bueno la electronica no es muy fuerte ya que no se casi nada o nada de ella. Pero a los pocos siento que voy avanzando. En este tutorial, intento explicar como hacer un motor dc, pueda rotar en una direccion, en la opuesta y sin moverse.

Muchas maquinas su funcionalidad basica envuelve encender y apagar motores o invertir su direccion. Sin embargo hay muchos motores que ya vienen con un integrado dando la posibilidad de hacerlo mas facil, pero tambien se eleva su coste. Sin embargo lo unico que se necesita, para tener esta funcionalidad es un relay.

Para entender los relays en los diseños a seguir, debemos entender lo basico de la logica de interruptores (switch logic). Un interruptor es un dispositivo que abre o cierra un circuito, o sea, que deja pasar corriente o no. Un ejemplo de un interruptor, es el encendedor de una lampara, cuando la encendemos, dejamos pasar corriente y asi se enciende la lampara (circuito cerrado) y cuando la apagamos (circuito abierto). En terminologia de logica, un circuito cerrado, representa 1 y un circuito abierto representa 0.

Los interrupores son diseñados con una cantidad de poles y throws,  terminologia que no se en español, ya que lo aprendi investigando en ingles, cualquier electronico podria comentarme los nombres y los añadaria a los articulos sin problem. Los Throws, son contactos fijos, mientras los poles son los contactos que se mueven cuando el interruptor es activado. En el ejemplo de una lampara los poles, es la palanca interior, que hace contacto con las dos terminales haciendo que pase la corriente.

La tipica nomenclatura de los interruptores es P para poles y T para throws, con el numero que se especifica con la primera letra, yo realmente criticaria esta forma, ya que se usaria la notacion inglesa, si fuera con numeros al menos causaria menos dudas en otros ideomas. Por ejemplo, un interruptor podria ser SPDT, que significa S de Single (Uno), P de Pole, D de Double (Dos) T Throw.Sin embargo cuando tienen mas Poles y Throws, si es dado con numeros.

Para poner un poco mas integro el conocimiento, los interruptores pueden ser Momentanios o Continuos. Un timbre de puerta, es un ejemplo de un interruptor momentanio. Mientras el boton no esta siendo presionado el circuito esta abierto, sin embargo, cuando presionamos el boton, el circuito esta cerrado y pasa corriente. En la representacion de abreviaturas los interruptores momentanios, tendrian como throws, n.o y n.c, que significan, normalmente abierto (normally open) y normalmente cerrado y el pole se usa la expresion com (de commun).




Para interruptores com mas de dos poles o throws podemos ver el siguiente ejemplo "4PDT" que significaria, 4 Poles, Double Trows. En este  diagrama, las lineas discontinuas indican que todos los poles del interruptor operan juntos.













martes, 19 de febrero de 2013

LA GESTIÓN POR PROCESOS parte 2

En esta segunda seccion, vienen definiciones un poco mas formales, pero a mi forma de ver no completas e confusas. Intentare dar ejemplos y decir que parte de mi bibliografia dice una cosa y que pienso yo al respecto. Dejando al lector la posibilidad de debatir con comentarios y llegar a una metodologia o definiciones mas completas.

Segun mi bibliografia:


Un proceso es un conjunto de actividades interrelacionadas entre sí que, a partir de una o varias entradas de materiales o información, dan lugar a una o varias salidas también de materiales o información con valor añadido.

Que problema tiene la definicion anterior?
1- Ambigua, no pudiendo reestringir en ningun momento, sobre ninguna teoria las entradas de materiales o informacion, al final, esa entrada se puede siempre reducir a elementos basicos, o una medida.
2-Tendra confusion cuando se defina que es un procedimiento.
3-Obliga tener un valor añadido(Ambiguo).

Un proceso lo definiria como una funcion matematica, que dado unos parametros (entrada de materiales o informacion) tiene una salida (dan lugar a una o varias salidas también de materiales o información con valor añadido).


Mi definicion de proceso:


donde N se consideran los naturales. Y cada dimension la propiedad que necesitamos de la entrada.

NOTA: Esta definicion, no es la que el cliente final se enfrenta, sino es la definicion formal, para integrarla a un sistema sin ambiguedades y ademas sustentarse sobre teorias ya existentes.

Ejemplo:
Para el cliente final:
              Proceso: Limpiar un carro
              Entrada:
                            13   Litros de Agua
                            500 ml de detergente
                            10 ml de aromatizante
              Salida:
                          Coste:10 €
                          Tiempo: 30 min

Proceso para nuestro sistema:
         Proceso: Limpiar un carro
         Entrada:
                    X-Cantidad de litros de Agua
                    Y- Cantidad de Detergente
                     Z-Aromatizante
         Salida:
                    C- Coste
                    T- Tiempo



Al final no es mas que una sucesion de pasos, que se siguen para realizar una determinada actividad.

Una definicion menos formal y mas facil de entender es transformar el conjunto de elementos de entrada en un resultado.

Segun mi bibliografia:

Un proceso no es lo mismo que un procedimiento:
Un procedimiento es el conjunto de reglas e instrucciones que determinan la manera de
proceder o de obrar para conseguir un resultado. 

Segun mi definicion:

Son iguales, ya que al final , se puede ver como entrada el conjunto de reglas e instrucciones y como salida la manera de proceder o de obrar para conseguir un resultado.

La definicion matematica, no trae ambiguedad en ese caso, ya que de forma matematica, las funciones son de por si metafunciones (funciones que usan funciones como parametros y como salida).

Una funcion es una manera de proceder para tener un resultado (definicion de procedimiento).
Una funcion es un conjunto de entrada que transforma en una salida (definicion de proceso).

Al final, esa definicion ambigua se debe, a que se quiere expresar que:


Un proceso define que es lo que se hace, y un procedimiento, cómo hacerlo. En otras palabras un proceso te dice como hacer una receta de comida y un procedimiento como hacerlo.

¿Vale la pregunta?
 Si hacemos un procedimiento,  que sea definir lo que se hace en un problema. ¿No seria un proceso?

Si nos fijamos en un detalle, el proceso dice QUE es lo que se hace, y un procedimiento COMO se hace. La diferencia de esas dos palabras realmente son, que el cliente cliente usa QUE y los programadores COMO. El cliente usa lenguaje natural y nosotros formal. Si lo vemos como paradigma de programacion, los lenguajes como Prolog, se programan usando el QUE y los clasicos como C#, se programa usando COMO.

Mas una razon para decir que son lo mismo. Aunque admito que quieren definir dos estados diferentes de una misma cosa, o sea, que algo se puede definir tanto desde un procedimiento como desde un proceso. Que ambos tienen el mismo alcance.

Despues de un largo debate con un profesor de la asignatura, termino con la definicion de que si, son lo mismo. Lo que simplemente uno es dicho y otro es hecho. O sea, receta para hacer el pan, seria un proceso, pero los pasos de esa receta es lo que se llama procedimiento. Al final y al cabo, no deberia ser implementacion?

Creo que esta area, esta dispuesta a ser muy generica y esta dejando atras las areas en que se aplica. Ya que tanto la informatica como la Ciencia de la Computacion tienen bien claros conceptos de los mismos. Creo que ademas deberia hacerse especifica de nuestra area y no intentar dejarla de la manera que se desarrolla.



LA GESTIÓN POR PROCESOS parte 1


LA GESTIÓN TRADICIONAL

DIVISION DE TRABAJOS EN UN SOFTWARE

Todo proyecto tiene unos fines ligados a la obtención de un producto o servicio. Para llegar a este producto o servicio, se recomiendo dividir estas actividades y agruparlas en fases, (como en programacion que dividimos los problemas en subproblemas para que la resolucion de cada subproblema sea mas facil y asi mas facil la resolucion del problema general). El conjunto de estas fases, se denominan ciclo de vida.

Esta claro, que es muy general la forma de atacar a cualquier produccion de producto o de servicio, luego la forma de agrupar estas actividades, los objetivos de los mismos, etc. Son diferentes dependiendo de las tecnologias y del producto en si.

La relacion entre estas actividades son muy grandes , luego es muy importante que la division de los proyectos sea organizada en fases sucesivas consiguiendo asi una reduccion muy grande de la complejidad del proyecto.

Cada fase tienen sus tareas planificadas. Dependiendo del proyecto este puede tener fases que generan bucles de realimentacion, de manera que lo que se considera una fase puede repetirse varias veces a lo largo del proyecto.

NOTA: Asumo que los que les interesa la gestion de proyectos, son programadores (y tambien de otras carreras) que nunca han gestionados grandes proyectos y necesitan cierta organizacion. Luego, para poner un poco claro pondre dos simples ejemplos de lo dicho anteriormente.

Ejemplo 1:

Supongamos que una empresa hipotetica 2A&M tiene cinco departamentos. Programacion, Diseño , Contabilidad y Finanzas, Recursos Humanos y Limpieza. Todo proyecto que se resive en la empresa, va tener una separacion, que sera enviada a cada seccion. Ese proceso de separacion es un ejemplo de fases. 

Primero los recursos humanos entrega define la cantidad de personas para un Proyecto X, despues la Contabilidad y Finanzas establece un primer aproximado de presupuesto, los departamentos de Diseño y de Programacion establecen el tiempo que creen que se podria demorar con la gente asignada por el departamento de Recursos Humanos. Y al final de cada tiempo, el departamento de Limpieza hace limpieza en el local. Este departamento fue puesto, para ilustrar un ejemplo sencillo de repeticion de una misma tarea en un Proyecto. Cada fase(Departamento) esta llena de actividades y cada actividad tiene sus objetivos y asi sucesivamente. Al final y al cabo es aplicar recursivamente el proceso.


Ejemplo 2:

Este ejemplo es mas sencillo y mas parecido a un algoritmo. Imaginemos que tenemos un rollo de papel con numeros, los cuales tenemos que ordenarlos de menor a mayor y ponerlo en otro rollo de papel. Si los numeros son 5 o 10, puede ser que no tengamos problemas pero si son 10000 ya la situacion cambia un poco. Luego, hemos decidio llevar el problema a las siguientes fases:

Primero lo dividimos en dos listas, uno con una lista ordenada y otra con el resto si ordenar. Entonces tenemos dos nuevos problemas.

 1. Insertar un nuevo elemento en la lista ordenada y reordenar la lista (Un problema mas sencillo que el anterior)

 2. Ordenar una lista desordenada pero con menos numeros (Un problema mas sencillo que el anterior)

De esa manera terminaremos organizando las dos listas. Pero a mitad de proyecto nos damos cuenta de algo, que si dividimos en N listas donde cada lista representa el numero de digitos y ordenamos cada lista por separados, despues seria solo unir las listas. Y estaria ordenado. De esta forma de ataque, hemos divido el problema en N diferentes problemas. Muchos mas sencillos y con menos numeros. E hicimos una retroalimentacion, que fue organizar listas, en cada sublista. Otra realimentacion, fue el cambio de estrategia, ya que nos dimos cuenta en un punto avanzado del proyecto.

Caracteristicas

  • Dependencia casi total de las personas responsable por cada fase: La calidad conseguida en el trámite administrativo depende de las personas que lo realizan. Esto es debido a que al ser los responsables de una determinada etapa, tienen el conocimiento completo del estado en que se encuentra.

  • Materialización sobre papel: Todos los trámites generan papel, produciéndose problemas de almacenamiento y archivo del mismo con riesgo de pérdida o deterioro, ineficiencias en la localización, excesos en el uso de copias, etc. El cual hoy en dia se puede gestionar de forma digital.

  • Poca información sobre la situación de los procesos o haciendo costosa y complicada su determinación
  • Insatisfacción en el personal: Gran parte de las tareas que se realizan aportan muy poco valor añadido a los procesos.






Calidad de proyectos de Informática Avanzada I

Recien empiezo a estudiar esta asignatura en mi Master y creo que es una de las asignaturas mas aburridas, pero creo tambien que pueden dar una buena idea de como organizar los proyectos grandes, que puede ser intuitivamente correcto, y ademas sacarle un costo y tiempo de finalizacion apropiado. Lo cual ya no entra en la parte de intuitivo, ya que depende de la sociedad y muchos factores externos.


Desde la introducción en 1916 de la primera función de control y garantía de calidad formal en los laboratorios Bell de Estados Unidos, las organizaciones productoras de bienes de cualquier tipo y las suministradoras de servicios han ido incorporando mecanismos, cada vez más efectivos, que aseguren la calidad de los productos elaborados y de los servicios realizados. El interés por la calidad ha dado lugar a la proliferación de asociaciones nacionales e internacionales sobre el tema y a un esfuerzo normativo por parte de los organismos de estandarización para unificar criterios y proponer normas y guías universalmente aceptadas.
En este sentido, hay que destacar que el cenit normativo se pude situar en marzo de 1987 con la aparición, después de cinco años de trabajo del “Comité Técnico de Gestión y Aseguramiento de la Calidad” de ISO, de las primeras normas de la serie ISO 9000, que definían “los requisitos de los sistemas de calidad que pueden utilizarse para el aseguramiento externo de la calidad, es decir, para que un suministrador demuestre su capacidad y para la evaluación de la capacidad de un suministrador por partes externas”.
La situación actual de la calidad en el ámbito informático está condicionada principalmente por las normas ISO de aseguramiento de la calidad, como ISO 9000, ISO 9126, ISO 15504 o ISO 20000; por el modelo de evaluación y mejora de la calidad del proceso software CMMI (Capability Maturity Model Integration); por el modelo ITIL (Information Technology Infrastructure Library); y, en el ámbito europeo, también por el modelo EFQM (European Foundation for Quality Management).
Todas estas normas y modelos se caracterizan por aplicar un enfoque basado en procesos. La gestión por procesos es un esquema que permite organizar los esfuerzos y la utilización de los recursos para lograr la satisfacción balanceada de todos los entes vinculados a cada uno de los procesos que definen a un sistema organizacional. Este esquema de gestión requiere que las partes que lo componen se caractericen por crear relaciones coordinadas, para lograr niveles de eficacia y eficiencia en el sistema, que cumplan con los tres elementos básicos de una gestión de calidad: alcanzar los requerimientos de los clientes finales, en los tiempos establecidos y a los costos presupuestados.
Son tales los beneficios del esquema de gestión por procesos, que las normas y modelos de calidad citados, lo consideran como un requisito. Así, por ejemplo, en la norma ISO 9001 “se promueve la adopción de un enfoque a procesos para el desarrollo, implantación y mejora de la eficacia de un sistema de gestión de la calidad, para aumentar la satisfacción del cliente mediante el cumplimiento de sus requisitos”; y en el modelo EFQM se señala la importancia del diseño y gestión sistemática de los procesos críticos, su revisión y mejora continua con base a las necesidades y expectativas de los clientes y demás entes que se relacionan con los procesos de una organización.
En esta asignatura se estudian los principales estándares relacionados con la calidad informática, comenzando previamente por el estudio de los principios que rigen el enfoque de la gestión por procesos, dado que es la base en la que se sustentan los estándares sobre calidad. 


lunes, 18 de febrero de 2013

Entrando en la Robotica con Arduinos

Recien llega mi primer Arduino, el Arduino Leonardo. Para instalarlo en mi Mac con Lion, lo unico que hay que hacer es descargar de aqui . Y copiar el programa en la carpeta de programas si lo deseais.

Al parecer la pagina de Guia resulta bastante fiel hasta un momento. Que es que no me carga el ejemplo de Blink y ningun otro. Por alguna razon, dice que el puerto esta ocupado siempre. La explicacion esta en el enlace que deje anteriormente, pagina Guia.

Al parecer lo que pasa es que el directorio "/var/lock" es necesario, el cual no existe. Cree el directorio via shell y le di los permisos correctos, y me cargo perfectamente el codigo.

sudo mkdir /var/lock

te pedira el password y pondar el de usuario y despues se le pondra los permisos.

sudo chmod 777 /var/lock 

Luego cuando intente cargar nuevamente mi programa, Voila!!! Funciono!!! Una cosa curiosa intente nuevamente subir exactamente el mismo codigo y me dio el mismo error, pero si lo cambio lo vuelve a subir.

domingo, 17 de febrero de 2013

Default en C#

Hace mucho que no hago nada muy competitivo en C#, luego para calentar motores empece con una caracteristica que me estaban preguntando hace unos dias. Default(T)

Aqui les explico un poco de default(T).

Un ejemplo muy simple:

Estoy creando mi proprio diccionaria y tengo la siguiente implementacion.


class MyEmptyDictionary<K, V> : IDictionary<K, V>
{
    bool IDictionary<K, V>.TryGetValue (K key, out V value)
    {
        return false;
    }

    ....

}


El codigo anterior tiene problemas implementando la funcion TryGetValue. Cuando no se encuentra una llave. No tendria nada que asignar al parametro de salida, entonces uno piensa dejarlo asi como esta. Esa accion lleva al siguiente error. "The out parameter 'value' must be assigned to before control leaves the current method".

Luego, basicamente, lo que hace falta es devolver el valor por defecto (0, false, o dependiendo del tipo)

Luego la solucion es default(V)


class MyEmptyDictionary<K, V> : IDictionary<K, V>
{
    bool IDictionary<K, V>.TryGetValue (K key, out V value)
    {
        value = default(V);
        return false;
    }

    ....

}


mas informacion




sábado, 16 de febrero de 2013

How to tag all your audio files in the fastest possible way


I’d introduce efficient ways to add ID3 tags to MP3 files. For me, adding such tags is an absolute necessity. If I really want my MP3 files to be and remainproperly sorted and quickly usable even if I change software, I must guarantee that:
  • They are indexable through an open standard that many software tools can process automatically.
  • The corresponding data are written inside the files themselves, to follow them when the files move to another computer or operating system, and inside backups.
This said, let me make clear from the beginning that “the fastest possible way to tag MP3 files” can still involve a lot of manual work. Actual songs often are not a big deal, but MP3 audio can beanything. My own MP3 collection contains both songs directly ripped and fully tagged, in one round, from my own CDs, and other files from everywhere, all encoded without any tags. Most of those “non-song” files of mine are either:
  • Digitized analog recordings (you know what I mean: things like me singing “Merry Christmas” in kindergarten…), normally made by relatives and friends who have no clue of what tagging is, or…
  • Podcasts from “professional” radio stations, that were very unprofessionally published online without any tagging whatsoever.

Tagging songs with a graphic interface

Many music files are catalogued in several online databases. The most famous ones that are managed in an Open Source way and fully compatible with Linux are FreeDB and MusicBrainz. I have used Picard, the official MusicBrainz tagger, to tag semi-automatically the majority of my music files. The process, described in detail here, consists of these main steps:
  1. File Loading:
    • Launch Picard, select View | File Browser in the top menu.
    • Find in the Browser your music folder and drop it in the left Picard pane. Picard will put untagged files in its “Unmatched Files” folders and already tagged albums in its right pane
    • If there are files that Picard doesn’t recognize, you should probably remove them
  2. Clustering:
    • Click on “Cluster”, and Picard will rearrange the “Unmatched files” files likely to belong to the same album into album clusters.
  3. Automatic, metadata-based lookup:
    • Select unmatched files or albums and click on “Lookup”: Picard will use the (few) tags they may
      already contain to fetch other data from MusicBrainz and put all the albums it recognizes in this way in the right pane
    • At least initially, do this only on a few files or albums at a time, to understand how Picard works
    • Inside those albums (See Figure A at right), tracks actually present on your drive are represented with coloured rectangles (red means bad match, green good or perfect match), the others with music notes.
  4. Automatic, “fingerprint” based lookup:
    • If you click on “Scan” after selecting some files, Picard will calculate their Acoustid “fingerprint” and compare them against those in the online database. If there’s a match, Picard will download all the tags for those songs (see Figure B below).
    • This option works on uncompressed audio, not MP3 files, so it is normally useful (only) when you first rip songs from a CD, where they are uncompressed but untagged.
  5. Manual tagging and reordering
    • At this point, check what Picard did automatically and:
    • Manually drag and drop in the right album files that you know, but are still unmatched.
    • Select all the files and albums that are properly tagged and “Save” (right-click menu): only at this point the ID3 tags will be written inside the files, making them ready for automatic reordering with Picard itself, my script, or other methods.

Figure B

And now one shell way to tag MP3 files

The easiest way to prepare non-song MP3 files for proper tagging is to give them consistent and meaningful names. Once that precondition is verified, you can automatically use those names to write tags with a script like this:
   1 #! /bin/bash
   2
   3 for SONG in `find $1 -type f -name "*mp3"`
   4     do
   5        TITLE=`basename $SONG | cut -d_ -f1 | tr "-" " "`
   6        LEAD=`basename  $SONG | cut -d_ -f2 | tr "-" " "`
   7        YEAR=`basename  $SONG | cut -d_ -f3 | cut -c1-4`
   8        id3tag   --song="\"$TITLE\"" $SONG
   9        id3tag  --album="\"$TITLE\"" $SONG
  10        id3tag --artist="\"$LEAD\"" $SONG
  11        id3tag       -y$YEAR $SONG
  12     done
  13     exit
Here I assume that each file has a name in the format TITLE_LEAD_DATE.mp3, with the first four characters of the DATE being the YEAR of recording. Of course, once you get the trick, you can easily hack the script to work with any other (constant!) naming format. Lines 5 to 7 extract title, lead and year from the file name, replacing hyphens with spaces: a file named The-Wall_Pink-Floyd-19791130.mp3 will return “The Wall” for TITLE, “Pink Floyd” as LEAD and 1979 as YEAR. Once these strings are inside shell variables, we only have to call the id3tag program (lines 8 to 11) to write each tag inside the file. Easy, isn’t it?

source: http://www.techrepublic.com/blog/opensource/how-to-automatically-rename-and-reorder-mp3-files/3425

miércoles, 13 de febrero de 2013

Analistas Programadores – Qué hacen y qué se necesita para serlo



El Analista Programador es la persona que realiza las funciones de un analista técnico y de unprogramador; es decir, parte de una información previa recibida del analista funcional, en función de la cual desarrolla las aplicaciones y organiza los datos. Es el perfil más buscado en la actualidad.



En base a sus conocimientos en el o los lenguajes de programación necesarios en cada caso, sintetiza, organiza y lo lleva a la práctica mediante la codificación de la silución. Requiere características de personalidad similares a las de un programador, con mayor visión global y capacidad de análisis y síntesis.

Competencias Blandas

Pensamiento lógico
Interés por el orden
Constancia
Capacidad de atención y concentración
Innovación

Competencias Técnicas

Paradigma de Objetos
Lenguaje de diagramación de sistemas UML
Lenguaje de consulta de bases de datos SQL
Conocimiento real de al menos un lenguaje de programación
Técnicas de calidad de software.



No me cabe la menor duda que esta posición es la que absorbe más presión y en las áreas de desarrollo a quienes gentilmente llaman por las noches en caso de cancelaciones.Es uno de los tramos en donde pones a prueba verdaderamente tu vocación.

fuente:http://micarreralaboralenit.wordpress.com/2007/12/05/analistas-programadores-que-hacen-y-que-se-necesita-para-serlo/

martes, 12 de febrero de 2013

How to install PIL on mac os x 10.7.2 Lion

you can just download/build/install it from source:



# download
curl -O -L http://effbot.org/downloads/Imaging-1.1.7.tar.gz
# extract
tar -xzf Imaging-1.1.7.tar.gz cd Imaging-1.1.7
# build and install
python setup.py build
sudo python setup.py install
# or install it for just you without requiring admin permissions:
# python setup.py install --user




I ran the above just now (on OSX 10.7.2, with XCode 4.2.1 and System Python 2.7.1) and it built just fine, though there is a possibility that something in my environment is non-default.

For those having trouble with gcc or llvm-gcc command not found error when running setup.py, check in xcode that commande line tools are installed by going to "Xcode -> Préférences -> Downloads -> Commande Line Tools -> Install".

Alternatively,


If you use homebrew, you can install the PIL with just brew install pil. You may then need to add the install directory ($(brew --prefix)/lib/python2.7/site-packages) to your PYTHONPATH, or add the location of PIL directory itself in a file called PIL.pth file in any of your site-packages directories, with the contents:
/usr/local/lib/python2.7/site-packages/PIL
(assuming brew --prefix is /usr/local).



source:http://stackoverflow.com/questions/9070074/how-to-install-pil-on-mac-os-x-10-7-2-lion

jueves, 7 de febrero de 2013

Usando pep8.py para escribir un buen codigo en Django


Este es otro screencast creado por el site http://agiliq.com/, de la coleccion "Getting Started with Django".



Mas abajo tambien hay un video para hacer buen codigo de python con pyflakes


Fuente

martes, 5 de febrero de 2013

Configurando un poco con Google Maps

Hace poco en el proceso de hacerle un site a unas amistades, recorde que habia visto en algun site, un enlace directo, donde apareciera la direccion de un lugar fisico (hotel, instituicion, etc) como destino, y apareciera la direccion de origen vacia. De tal manera, persona que quisiera ir al local y no supiera como, solo tendria que poner su posicion y google le explicaria el camino.



donde origen, es la direccion donde el usuario esta y destino donde esta la instituicion, hotel, etc, donde queremos ir. En este caso por ejemplo si nos gustaria ir a una direccion cualquiera como. Avenida El Ecuador, numero 42, Codigo Postal: 46025, en Valencia España. Bastaria con la siguiente url


http://maps.google.com/maps?daddr=Avenida+el+ecuador+42+46025+Valencia+spain


Como sabemos en un pedido GET no pueden ir los espacion, luego, los espacios en un pedido GET son equivalentes a el simbolo de "+" . En este caso el origen se omite, para que el usuario que quiera llegar a la direccion, solo tenga que escribirlo.