martes, 30 de diciembre de 2008

PCman al Rescate!!!



Es un pajaro
Noooo
Es un avion
Noooooooooo
Es PCman!!!!!!!!!

No se si es una epidemia, o simple coincidencia pero de un tiempo a la fecha me eh encontrado con una multitud de personas que me piden que les cheque su computadora que por X o Y razon ya no funciona bien o simplemente ya no funciona, pensando en eso decidi hacer una pequeña guia con pasos que realizo para detectar un problema ya sea de hardware o software.


Lo primero que hay que hacer es identificar si el error es de software o hardware, esto pese a lo que puedan imaginar no es tan complicado de adivinar, fallos tales como que no enciende el monitor, no enciende el cpu, solo se escuchan sonidos que antes no hacia (pitidos) , se ven unas cuantas letras y se congela sin siquiera haber comenzado a cargar windows o el sistema operativo en cuestion, son fallos clasico del hardware, mientras que los fallos del software pueden ser que el sistema empieza a cargar pero luego se congela, nos sale en algun momento dado las ya tan famosas pantallas azules, o mil cosas mas ya que de errores de software hay infinidad, pero para todos ellos o casi para todos hay solucion asi que Don't Worry :)
ERRORES DE HARDWARE

  • Checar que todos los cables esten correctamente conectados, si no hay alguno flojo o desenchufado (lo se es tonto pero creanme puede pasar).
  • Que no existan disquetes o CD , hay computadoras que tienen la opcion de leer primero la unidad A o la de CD antes que el disco duro y si dejas algun disco extraño dentro de alguna unidad esto te puede generar errores, si quieres cambiar este valor puedes buscar en la configuracion de la BIOS.
  • Por ultimo puede que te aparezca explicitamente un # de error, buscalo en internet para que puedas descubrir que pieza de hardware te esta funcionando mal y puedas cambiarla por una nueva.
Cabe mencionar que es posible saber que esta mal por el numero de pitidos que haga tu ordenador, para eso busca la guia de sonidos correspondiente a tu computadora GUIA, en internet hay varias y checa en ella el error correspondiente a el numero de sonidos que escuchas.

ERRORES DE SOFTWARE

Como decia anteriormente estos son inumerables asi que es dificil escribir que accion tomar en cada uno de los casos, sin embargo existen una serie de acciones que uno puede hacer para solucionar este tipo de errores.

  • Leer con atencion el mensaje del problema (importantisimo, por lo regular ni siquiera nos detemos a averiguar que dice el mensaje de error, simplemente le damos en aceptar y lo ignoramos)
  • Hacer un tipico Scandisck (muchas veces lo infravaloramos, pero a mi me a salvado en multiples ocaciones)
  • Defragmentar el Disco
  • Revisar el sistema completo con algun antivirus actualizado
  • Si estas conectado a internet revisa tu fireWall
  • Limpia el registro un buen programa para esto es el CCleaner sin embargo hay muchos otros.
  • Checa las ayudas de Windows (si es que ese es tu S.O)
  • Verifica en internet el numero del error o en su defecto el mensage que muestra el SO.
  • Recurre a foros (recuerda ser muy preciso sobre lo que quieres, no escribas en mayusculas y comenta las acciones que ya realizaste y no te sirvieron, para que la comunidad vea que si lo intentas por ti mismo, no hay nada peor en las comunidades online que las personas que quieren que uno les haga su trabajo y al mismo tiempo sirve para que no te den soluciones que no te sirvieron) algunos foros muy buenos son desarrolloweb, cristalab y maestros del web entre otros.
  • Usa la restauracion del sistema
  • Desinstala los ultimos programas que en un momento dado pudieran ser causantes del problema.
  • Entra en modo a prueba de errores (reinicia tu maquina y presiona muchas veces la tecla F8 hasta que te salga un menu donde se encuentra la opcion "modo a prueba de errores"), si el problema no aparece ahi quiere decir que el error esta en la carga inicial de alguna aplicacion, para solucionar esto no hay mas que el modo prueba y error, para esto dirigete a inicio->ejecutar y escribe msconfig luego ve a la pestaña que dice inicio y ahi juega activando y desactivando opciones hasta encontrar la que de de problema.
  • Si cuentas con un disco de tu SO usa la consola de recuperacion del mismo.
  • Si nada de esto funciona lo mejor sera respaldar la informacion y reinstalar tu SO.

miércoles, 17 de diciembre de 2008

Agrega menu a tu blogger



Existen muchas y distintas maneras de agregar un menu a tu blog la mas sencilla es a traves de enlaces, si estoy hablando de las etiquetas de tipo <a href="URL">link</a>, ahora la pregunta del millon como agregar esas etiquetas en la cabecera para que los enlaces se vean como menu.

Pues muy sencillo simplemente dirigete a la pestaña de "Personalizar", despues seleciona "Edicion html" y presiona ctrl+f para buscar la palabra showaddelement=’no’una ves localizada cambia el no a yes de tal manera que showaddelement=’yes’.

Ahora dirigete a la pestaña "Elementos de pagina" ahi veras que la estructura a cambiado y ahora bajo el elemento cabecera tienes otro que te dice añadir gadget, pues bien presionalo, añade un elemento HTML/JavaScript.


Ahora unicamente falta que agregues los enlaces que formaran tu menu, como tip si no tienes idea de como formar tus enlaces te puedes observar que si presionas alguna etiqueta veras que en la barra de direcciones de navegador aparece algo como:

http://avlprogrammer.blogspot.com/search/label/php
Siguiendo esa idea puedes hacer tus enlaces basandote en las etiquetas que pones a tu post, luego entonces si tienes varios post etiquetados con la palabra diseño y otros tantos con la palabra humor etc, entonces un ejemplo de como quedaria tu menu seria el siguiente:

<a href="http://avlprogrammer.blogspot.com/search/label/diseño">Diseño | </a>
<a href="http://avlprogrammer.blogspot.com/search/label/humor">Humor | </a>


Otra manera de poder crear tu menu es usando la busqueda, si tu realizas una busqueda en tu blog puedes ver en la barra de direcciones que aparece algo como esto:

http://avlprogrammer.blogspot.com/search?q=mysql

"q" es la variable que utiliza blogger para localizar una palabra en su base de datos, si tu conoces algo de base de datos es similar a una consulta como "SELECT * FROM POST WHERE LIKE (%mysql%);" si no conoces nada de BD o SQL simplemente ignora lo anterior me quice ver inteligente :P.

Bueno el caso es que cambiando la ultima palabra en este caso "mysql" podremos obtener como resultado todos los post que contenga dicha palabra hay que tener cuidado con esto por que puede que un post que habla de un tema de diseño en algun momento dado referencie a la palabra "mysql" sin que esta tenga una gran importancia sobre el post en general entonces si buscamos esta palabra obtendremos dentro de los resultado dicho post, el cual en realidad no tiene nada que ver con lo que el usuario quiere es por eso que recomiendo que usen la primera forma mostrada es decir establecer su menu a traves de etiquetas.

EXTRA
Si quieres saber mas del tema checa estos post son muy buenos y claros:
Activar mas elementos bloqueados por Blogger en este post explican lo del showaddelement mas detalladamente y con imagenes.


Como agregar un menu superior en blog de Blogger este post detalla el diseño del menu usando CSS, esto para que tu menu no se vea un simple conjunto de enlaces.

Todo por una mujer!!!



Help Me Please !!!!! - video powered by Metacafe

Twitter

http://www.aoddesign.com/blog/wp-content/uploads/2008/04/twitter.jpg
Twitter, Twitter oía por todos lados como si de un campeon olimpico se tratara, o como el maximo goleador de un equipo de futol, que twitter esto que twitter aquello, monton de invitaciones que nunca acepte, debo confesar que ese tal twitter ya me tenia hasta la M...

Sin embargo fue tanta la insistencia de esa palabra y ver a ese pajarillo (sin albur) azul por donde quiera que me puse a checar y al fin de cuentas twitter resulto ser una red social que es parecida a un muro de anuncios donde uno llega y pone lo que esta haciendo en ese momento o lee lo que sus amigos estan haciendo, en otras palabras alimenta el morbo y nuestra nececidad de chismes, al principo se me hizo algo completamente inutil, por dios para que esta el google talk, el messenger, el messenger de yahoo en fin tantas opciones para comunicarnos con quien deseemos entonces para que usar ese maldito twitter.



Bueno bueno pues resulta que apesar de todo lo que tenia el concepto en contra segun mis criterios ehhh aclaro, al fin de cuentas me anime a usarla y oh gran sorpresa!!! es un inventaso, aparte de que es super entretenido y adictivo :P, tambien es util en muchos sentidos, por ejemplo:

  • Si se va a armar una fiesta ya no mandamos correos o hablamos con los contactos eso es perdida de tiempo, ya no gastamos en mensages ni nada por el estilo simplemente montamos un anuncio corto y conciso en nuestro muro de twitter "Fiesta a las 3 en casa del chanfle traigan chelas y botanas" y la gente llegara sola.

  • Por otro lado puede que algun amigo o tu mismo este metido en un proyecto interesante simplemente poniendo "Estoy programando un nuevo sistema que revolucionara el mundo" acapararas la atencion de la gente y encontaras a personas que te apoyen y no se en su caso pero en el mio una buena ayuda nunca esta de mas.
  • Otra cosa puede ser la invitacion a un evento o simplemente anunciar que acabas de realizar una entrada nueva a tu blog o que te vas a brazil, colombia, españa y quien quiera que se valla contigo, etc.

Aunque el concepto es muy sencillo y la pagina mucho mas, la utilidad que tiene este sistema no es nada despreciable por eso los animo a darle una probadita y no dejen de agregarme como seguidor de su twitter ;).

EXTRA:
Twitter que estas haciendo? es un buen articulo que explica un poco mas esto del twitter, al parecer el creador de este concepto es el mismo que creo el de blogger asi que ya saben creo que vale la pena que le den una checadita.

Saber de amor


"Que el amor lo es todo, es todo lo que sabemos del amor"

Emily Dickinson

Orgullo


Sí, soy orgulloso. He de serlo, puesto que me temen hombres que no temen a Dios.

martes, 16 de diciembre de 2008

Por que programar tambien es un hobbie

Ultimamente a habido mucha union entre la comunidad desarrolladora, ya sean programadores, diseñadores, webmaster etc y como muestra esta la reunion denominada domingo en la mañana,y ahora aqui esta otra que tambien se realizo en el defectuoso la cual se denomino Super Happy Dev House Mexico City.

Me gustaria expresar la enorme alegria que siento por la euforia, el sentimiento de compartir y unir fuerzas que estamos desarrollando las personas que estamos en este medio, nos hace sentir que no estamos solos por que no me negaran lo dificil que es comunicar tu entusiasmo (habiendo sido generado ese entusiasmo por algo que tenga que ver con intenet,computadoras, programacion etc :P) a una persona que no sabe nada del medio y no entiende ni J de lo que dices, bases de datos??? (por dios quien no conoce las bases de datos, aunque no lo creamos la gran mayoria de la gente) ajax??? Dom??? seo??? que demonios es eso, con que se come, en que idioma me hablas :(, por eso siempre es gratificante encontrar personas que te entiendan (eh ahi la hermosura de estas reuniones), lo unico que espero con todo mi corazon es que esta creciente unidad siga y se extienda y no unicamente dure un tiempo mientras es novedad (bueno no mucha, pero aqui en mexico algo :P) para despues de un rato terminar extinguiendose como algo pasagero, por eso: LARGA VIDA A LAS REUNIONES GEEK!!!, bueno por otro lado a las personas de Toluca edo. Mex estamos viendo la posibilidad de realizar algo por aca, se tiene pensado que sea en Galerias Metepec, pero aun se esta planeando asi que esten atentos :)

sábado, 13 de diciembre de 2008

Playeras de microsoft

Microsoft apuesta a la moda retro para evangelizar fans jejeje en donde no metera su cuchara el gigante de redmond, sin embargo no estan tan mal chequen esta a exepcion del colorsito pasa:

jueves, 11 de diciembre de 2008

La estafa de enseñar

fuente: Diario el pais

Exelente articulo, en el cual vemos que la dura crisis en la educacion no esta solo en nuestro pais (En mi caso Mexico donde la educacion esta por los suelos, donde quieren implementar soluciones que no han sido efectivas ni en su lugar de creacion, donde las autoridades ya no se preocupan de tener personas preparadas que sean productivas y enriquezcan a la nacion, para que al fin de cuentas ya todo lo importamos y ellos cada vez mas ricos mientras el pueblo cada vez mas jodido, crisis dijo el presidente, cual crisis??? preguntaba jjaaa aparte de todo nos quieren ver la cara de inbeciles y lo peor es que algunos se lo creen, por eso solo se interesan en formar titeres personas estupidas, sin raciocinio sin criterio ni voluntad propia que solo se dejen manejar que crean cuando el presidente en turno diga no se preocupen todo va ah estar bien) si no que ya es un problema de talla mundial, en que nos estamos convirtiendo me pregunto, hacia donde queremos avanzar, estamos avanzando o retrocediendo???, me aterra al final a donde iremos a parar como sociedad, sin medio ambiente que explotar, sin educacion que nos permita tomar las deciciones adecuadas para una correcta convivencia, estamos caminando muy cerca del caos social, extremista me llamas???? tal vez sin embargo solamente mira a tu alrededor, mira la realidad que vives, te das cuenta?, aun piensas que soy extremista?. bueno sin mas aqui esta el susodicho articulo:

La publicación en EL PAÍS de un Manifiesto Contra el Nuevo Máster de Formación del Profesorado (ECI/3858/2007) ha sido respondida en estas páginas por algunos pedagogos que lo defienden. Las pretendidas evidencias con que argumentan son, sin embargo, falsas. La tesis principal es que un profesor no sólo debe conocer su materia, sino que debe también aprender a enseñarla. Esto parece muy de "sentido común", pero es un sofisma con el que los "expertos en educación" llevan muchos años abduciendo a las autoridades ministeriales. Los futuros profesores, se dice, deben "aprender a enseñar" y los alumnos "aprender a aprender". Para conseguirlo, existe un cuerpo de especialistas (con sus propios intereses corporativos), cuya función es "enseñar a enseñar". Ahora bien, para ello precisamente se confió a los pedagogos el curso del CAP (Certificado de Aptitud Pedagógica). Este curso jamás se ha sometido a una evaluación objetiva entre los profesores de secundaria y bachillerato. Se sabía de sobra que los profesores no sólo no avalarían su utilidad, sino que lo valorarían como una estafa o una impostura. ¿Qué solución propone el ministerio? Nada menos que sustituir el quinto año de preparación disciplinar específica por un Máster de Formación del Profesorado que no es más que un CAP más largo y más caro. Cualquier cosa menos preguntar a los profesores sobre la utilidad en las aulas de la formación pedagógica. Por lo visto, los únicos que saben lo que se necesita en las aulas son los que jamás han pisado un aula. Por lo mismo, los únicos que saben cómo se enseña matemáticas, gramática o historia, son los que no saben ni matemáticas, ni gramática, ni historia (pero son, en cambio, expertos en enseñar a enseñar cómo se aprende a aprender).


La mejor prueba de que algo que uno creía saber no lo sabe en realidad es que fracasa al enseñarlo

¿Por qué el CAP ha sido una estafa y una vergüenza todos estos años? No porque fuera muy corto, sino porque es falso que quien no sabe matemáticas pueda enseñar a enseñar matemáticas. Y todavía es más falso que haya un saber que no sea ni física, ni latín, ni geografía, y cuyo contenido sea el enseñar en general para cualquiera de esas disciplinas. Un profesor debe saber captar la atención de los alumnos enseñándoles a amar el conocimiento, y para lograrlo no hay otra garantía que su propio amor por el conocimiento. Las matemáticas, la historia o el derecho procesal son apasionantes y la obligación de un profesor es saber transmitirlo a sus alumnos. Ahora bien, su mejor arma, en realidad su única arma, es saber matemáticas, historia o derecho procesal. ¿Saber historia no significa saber enseñar historia? Cualquier docente experimentado diría que la cosa es exactamente al revés: la mejor prueba de que algo que uno creía saber no lo sabe en realidad es que fracasa al enseñarlo. Si no se sabe cómo enseñar algo es porque no se sabe suficientemente, y la consecuencia es que hay que estudiarlo más y mejor. Estudiar más física, matemáticas o latín, no pedagogía. Por supuesto que siempre habrá grandes investigadores muy sabios que no amen la enseñanza y se nieguen a ejercerla. La figura del buen investigador y mal docente no cesa de blandirse como un argumento incontestable, pero es una falacia: los investigadores que no aman la enseñanza enseñan mal, no porque no sepan, sino porque no quieren hacerlo, y ningún curso de formación del profesorado les hará cambiar de opinión. Por otro lado, licenciados que nunca han enseñado no saben enseñar, pero no porque les falte teoría pedagógica (o psicopedagógica), sino porque les falta práctica docente. El acceso a la profesión de profesor, como a la de juez o a la de médico, no debería hacerse sin haber superado un periodo de prácticas seriamente concebido, tutelado, y remunerado. Y por cierto que sólo una vez acreditada una formación no básica y generalista, sino avanzada y específica en un campo determinado de conocimiento. Es lo único que solicita el denostado Manifiesto. Eso, y que se deje de tomar el pelo a la sociedad mientras se desmonta pieza a pieza el sistema de instrucción pública.

Andrés de la Oliva es catedrático de Derecho de la Complutense de Madrid (UCM). Firman el texto otros 15 profesores de universidad o instituto, entre los que figuran Tomás Calvo, catedrático de Filosofía de la UCM; José Luis Pardo Torío, catedrático de Filosofía de la UCM; Alberto Fernández Liria, psiquiatra y profesor asociado de la Universidad de Alcalá; Juan José Fernández Parrilla, profesor de matemáticas de secundaria, y Silvia Porres Caballero, profesora de griego de secundaria.

Asi es la vida


En la cadena de la vida:

El rico vive del pobre.

El policia dice que cuida a los dos.

El ciudadano común se cuida de los tres.

El trabajador mantiene a los cuatro.

El vago vive de los cinco.

El comerciante comercia con los seis.

El abogado enreda a los siete.

El cantinero emborracha a los ocho.

El cura absuelve a los nueve.

El doctor cura a los diez.

El sepulturero entierra a los once.

El partido de turno gobierna a los doce.

El presidente engaña a los trece y a su vez al rico lo hace mas rico.

Al pobre lo hace mas pobre. Al mediocre lo hace imbecil. A los imbeciles, los hace ministros, diputados, senadores, y asi dejan de ser pobres.

Pero por si sirve de consuelo, en estos paises solo seis personas tienen problemas:
Yo, tu, el, nosotros, vosotros y ellos.


sábado, 29 de noviembre de 2008

Aprenda a programar en 10 años


Buen articulo que nos habla sobre todos esos libros que nos venden la idea de que aprenderemos a programar en unos cuantos dias y algunos se atreven ha enseñarnos en unas cuantas horas, tan facil es la computacion???

viernes, 28 de noviembre de 2008

Eres inteligente???

Si realmente eres inteligente, debes demostrarlo.


A continuación encontraras un test mental, el cual debe ser contestado en menos de 15 segundos, y del cual podrás evaluar tu grado de inteligencia.

Si te consideras un 'sabelotodo' que presume de sus conocimientos generales, intenta contestar correctamente las 5 preguntas de este test...Al final de esta página podrás encontrar las respuestas correctas.

1. Algunos meses tienen 30 días, otros 31. ¿Cuantos meses tienen 28 días?

2. Un granjero tiene 17 ovejas. Se le mueren 9. ¿Cuantas ovejas le quedan?

3. Tienes que entrar en una habitación fría y oscura, solo tienes un fósforo. Allí hay una lámpara de aceite, una vela y una hoguera, esperando para ser encendidas. ¿Que encenderías primero?

4. ¿Cuántos animales de cada especie llevo Moisés en el Arca?

5. Si conduces un autobús con 43 personas desde Santiago, paras en Valdivia recoges a 7 personas y bajan 5, en Osorno recoges a 4 mas y bajan 8. Luego al llegar a Puerto Montt, 20 horas después de haber partido..... ¿Como se llama el conductor?





Respuestas:

AHORA COMPARA TUS RESPUESTAS CON LAS CORRECTAS:


1.- 12 meses. Todos los meses tienen 28 días o mas.

2.- 17 ovejas, aunque 9 muertas... pero ovejas al fin y al cabo. Asi que sigue teniendo 17.

3.- Primero encenderías el fósforo... ¿o no?

4.- Ninguno, no era Moisés. El del Arca fue Noe.

5.- Te dije que tú eras el conductor. Luego su nombre era el tuyo ¿En serio tuviste que releerlo para entenderlo?



CALIFICACIÓN:

SI CONTESTASTE 5 BUENAS : INTELIGENTE

SI CONTESTASTE 4 BUENAS : MEDIANAMENTE INTELIGENTE

SI CONTESTASTE 3 BUENAS : NO MUY LISTO

SI CONTESTASTE 2 BUENAS : TONTITO

SI CONTESTASTE 1 BUENA : RE-TONTITO

SI NO CONTESTASTE NI UNA: APTO PARA POLITICO


fuente

jueves, 27 de noviembre de 2008

Metodologia Scrum

Un afectuoso saludo a todos, pues aqui traigo un tema arto interesante :P, de echo ya tenia algun tiempo queriendo escribir sobre esta metodologia pero por X o por Y no lo habia echo, ahora estoy documentando un proyecto en el que presisamente ocupe SCRUM por lo que aprovechando la documentada del marco teorico, me decidi a escribir por fin este post.



SCRUM

Scrum es una metodología ágil de desarrollo de proyectos que toma su nombre y principios de los estudios realizados sobre nuevas prácticas de producción por Hirotaka Takeuchi e Ikujijo Nonaka a mediados de los 80, su objetivo primordial es elevar al máximo la productividad de un equipo. Reduce al máximo la burocracia y actividades no orientadas a producir software que funcione y produce resultados en periodos muy breves de tiempo. Sólo abarca prácticas de gestión sin entrar en las prácticas de desarrollo como puede hacer XP. Más bien delega completamente la responsabilidad de decidir la mejor manera de trabajar para ser lo más productivos posibles.


La forma de trabajar con scrum es por medio de la product backlog y el sprint, la llamada product backlog es una pila (los que no conoscan las pilas imaginen un pastel con muchas capas, el recipiente que lleva al pastel es el contennedor mientras que cada capa de pan o lo que sea es un elemento de la pila) que contiene todas las funcionalidades que deberá tener el sistema, las funcionalidades serán acomodadas en esta de acuerdo a su importancia en el sistema, es decir una funcionalidad primordial se pone en una posición superior a la de una funcionalidad poco trascendente, por otra parte el sprint es un periodo de tiempo calculado, no mayor a 30 días (algunos dicen que hasta 40 dias esta bien, ahora si que va en gustos chato :P) hábiles en el cual se desarrollaran ciertas funcionalidades del sistema que son tomadas de la product backlog, estas funcionalidades formaran una nueva pila a la que se le llama sprint backlog, cada funcionalidad finalizada pasara a una lista de nombre “incremento de funcionalidad”, al termino del sprint se hace una reunión para ver el rendimiento del equipo y los avances realizados hasta el momento, si alguna funcionalidad no fue finalizada o existen cambios indicados por parte del propietario del producto dicha tarea se pondrá en el sprint del siguiente periodo, las tareas que se realicen por cada sprint dependerán enteramente del equipo de desarrollo, sin embargo existen algunas prácticas que son comunes y que deben de realizarse en cada sprint estas se enuncian a continuación:




Sprint Día 1 (Planificación)



En scrum es importante saber identificar cual es el papel de cada uno de los implicados para saber cuáles son sus responsabilidades en el desarrollo del sistema, esta identificación se da casi siempre de manera natural y debe de estar explicita desde el principio del proyecto, sin embargo cuando estos roles no están bien definidos podemos caer en el error de asignar tareas a quien no le corresponde, causando de esta manera un atraso en el proyecto, para evitar esto scrum define de forma sencilla tres tipos de roles con sus respectivas responsabilidades:

Propietario del producto
Representa a todos los interesados en el producto final. Sus áreas de responsabilidad son:

• Financiación del proyecto
• Requisitos del sistema
• Retorno de la inversión del proyecto
• Lanzamiento del proyecto

Equipo
Responsable de transformar la pila del sprint (Backlog) en un incremento de la funcionalidad del software.

Gestor de Scrum (Scrum manager o Scrum Master):
Responsable del proceso Scrum se encarga de organizar y guiar el desarrollo, evitar atrasos y proporcionar información a quien lo requiera ya sea al propietario del producto, a algún miembro del equipo o al equipo en general.


Al comienzo de un proyecto, este se divide en cierto número de funcionalidades, las cuales en un momento dado pueden subdividirse si se requiere, una vez divididas se les asigna a cada una de ellas una prioridad, es decir se eligen cuales son las de carácter necesario, cuales son de tipo urgente y cuáles no son realmente necesarias, hay que tomar en cuenta que alrededor del 45% de las funcionalidades solicitadas por los usuarios rara vez son utilizadas, por lo que inicialmente hay que enfocarnos en las que realmente sean funcionalidades necesarias, después todas estas funcionalidades se guardan en un apartado lógico llamado product backlog lugar del cual iremos sacando teóricamente las tareas que debemos realizar.

En scrum para realizar la división de funcionalidades se hace lo siguiente:

1) Planificación de sprint: En este punto se determina el tiempo de duración del sprint y se establecen las fechas en las cuales se cubrirá dicho tiempo.

2) Se calcula la velocidad inicial del equipo: este es un proceso muy sencillo de implementar, lo primero que se debe de hacer es multiplicar el número de horas de trabajo por el número de días que dura el sprint en caso de ser mas de un desarrollador, se multiplica la cantidad anterior por el numero de desarrolladores, con esto tendremos el total de horas de trabajo, ahora bien scrum es consciente de que las horas de trabajo no son forzosamente de rendimiento, es decir puede que trabajemos 5 horas al día, sin embargo debido a diversas circunstancias (Tiempo para iniciar, descansos, comidas etc.) realmente estamos rindiendo únicamente 3 horas, es por esto que scrum usa un porcentaje llamado factor foco para determinar la velocidad de avance, inicialmente el valor del factor foco será del 70%, por lo que si multiplicamos (número de horas al día) x (número de días del sprint) x [número de desarrolladores] x (factor foco inicial) obtendremos la velocidad inicial del equipo, este valor refleja la cantidad real de horas que disponemos para trabajar en el presente sprint, a medida que vallamos avanzando en el proyecto este valor se ajustara cada sprint pudiendo aumentar, disminuir o quedar con el mismo valor.



3) Exposición de historias: En esta etapa el Scrum Máster, el Dueño del Producto y el equipo se juntan para estimar las historias (es decir tener un panorama general de lo que tiene que hacer el sistema) y decidir cuales podrán realizarse durante el Sprint. Esta primera parte de la reunión de planificación se conoce con el nombre de "Exposición". Es importante destacar que la reunión es llevada adelante por el Scrum Máster, el cual tiene que asegurarse que la reunión no divague en temas que no afectan al Sprint y tiene que poder cerrar la reunión con las historias priorizadas y estimadas. Además, sólo se planifica el Sprint que está iniciando.


4) Creación de historias: El Dueño del Producto presenta las historias de usuario(es algo similar a los casos de uso), las cuales se escriben con títulos que el equipo comprenda en post-it amarillos grandes. Estos post-it se pegan en la mesa para que todos los vean. Cada post-it contiene 4 datos:

• Nombre de la historia
• Importancia
• Estimación
• Validación

o El nombre de la historia es una muy breve frase o título que describe a la historia (por ejemplo, "exportación de saldos", "alta de usuario", "modificación de dirección de facturación", etc.).

o La importancia es un número, mientras más grande el número más importante la historia (y deberá terminarse antes que historias de menor importancia). La importancia la indica el Dueño del Producto.

o La estimación es un parámetro que indica el número de horas de esfuerzo que nos llevara realizar alguna tarea, en principio se deja en blanco, ya que será completada más adelante (pero dentro de la misma reunión).

o La validación será la forma que el Dueño del Producto dará por aceptada la historia en la reunión de Revisión (Demo del Producto).

Así, luego de la exposición del Dueño del Producto, se tendrá cierto número de historias pegadas sobre la mesa, ordenadas por importancia.
El Equipo además puede agregar historias propias, generalmente técnicas, que considera necesarias para la ejecución del proyecto (por ejemplo, la creación de un repositorio de código, creación de un estándar, diseño etc.).

5) Estimación de historias: El Equipo y el Scrum Master son quienes estiman el tiempo que tardaran en realizar las historias. El Dueño del Producto está presente durante la estimación, para responder cualquier duda que pueda surgir, pero no estima ni opina sobre la estimación.
El equipo estima las tareas hasta un número mayor al de su capacidad (que es el valor de velocidad inicial calculado anteriormente). De esta manera, si durante el Sprint llega a terminar antes puede seguir tomando historias, y al estar estimadas luego se pueden tener en cuenta para el Factor de Foco del próximo Sprint.
Teniendo las historias estimadas, el equipo seleccionará por orden de importancia una cantidad de historias cuya estimación no supere al número de horas que hemos calculado para nuestro sprint.
Estas historias seleccionadas serán las que conformarán el Backlog del Sprint, y es el compromiso que asume el Equipo frente al Dueño del Producto. Estas historias se completarán durante el Sprint, y serán las demostradas el último día durante la Revisión del Sprint.

6) Planificación: Después de finiquitada la primera reunión el equipo y el Scrum Master ya sin la presencia del dueño del producto se vuelven a juntar para crear las tareas de las historias, y estimarlas.
En esta reunión el equipo toma cada una de las historias del Backlog del Sprint (las comprometidas) y crea las tareas que necesita resolver para terminar con la historia. Cada tarea no puede tener más de 4 días ideales (de ser mayor, debe ser dividida).




Sprint Día 2 (Inicio del proyecto)



En el segundo día, los desarrolladores eligen las tareas que van a realizar de la pila sprint backlog, tomándolas libremente, por orden de importancia. “Cada desarrollador elige la tarea, nadie se la asigna”.
Al tomar una tarea del Sprint, el desarrollador escribe su nombre en la nota adhesiva, la pasa a la columna de "Asignada" y comienza el trabajo en la misma.
Durante el tiempo que dura el sprint es norma de scrum tener una reunión diaria de no más de 15 minutos, en ella el equipo rápidamente hará un repaso de su situación y del esfuerzo restante para finalizar el Sprint. Cada integrante cuenta cuántos días le falta para finalizar la tarea que tiene asignada: tacha el valor anterior en la estimación de la tarea, y escribe la nueva estimación.
El Scrum Master lidera la reunión, y debe asegurarse que no divague en otros temas, para lograr esto debe de apegarse a cuatro preguntas básicas:

• ¿Qué hiciste ayer?
• ¿Qué vas a hacer hoy?
• ¿Qué ayuda necesitas?
• ¿Existe algún impedimento que te permita finalizar la tarea?

Cabe aclarar que durante el Scrum Diario no se resuelven problemas, tan sólo es un punto de encuentro para que todo el equipo informe su estado al resto y puedan sincronizar sus actividades. En caso de que alguien tenga un conflicto que deba que comentar con el scrum manager deberá quedarse hasta el final de la reunión y exponerlo únicamente al scrum manager y a las personas que pudieran verse directamente afectadas.




Sprint Día 3 (Terminando tareas)

Una vez repartidas las tareas, todos los días durante el Scrum Diario cada integrante dice cuánto le falta para terminar la tarea que tiene asignada. Cuando se finaliza una tarea, la misma se ubica en la columna de "Terminados" y el desarrollador toma otra tarea para seguir.
El momento de finalización de una tarea puede o no coincidir con su estimación. Es decir, por ejemplo, una tarea estimada en 4 días puede haber llevado 1 día en resolverla; a sí mismo, una tarea estimada en 1/2 día puede llevar finalmente 3 días, o una tarea de dos días puede llevar 2 días resolverla. La estimación de esfuerzo restante para la tarea se actualiza todos los días durante la reunión de Scrum Diario. Aquí se debe tener en cuenta que solo se debe estimar el tiempo restante para finalizar la tarea, no importa el tiempo que pasó, solo el que falta.



Tarea pendiente esperando ser tomada por un miembro del equipo


Al tomar una tarea el miembro del equipo escribe su nombre y la mueve a la columna "Asignada"


Durante el Scrum Diario el miembro a cargo de la tarea dice cuánto le falta para terminarla, y se actualiza la estimación.


Cuando el miembro termina la tarea tacha la última estimación y la mueve a la columna de tareas "Terminadas".

Es que las tareas se resuelvan en el orden de importancia de las historias de usuario. De esta manera el equipo se asegura de ir terminando primero las historias más importantes para el Dueño del Producto.



Finalización del Sprint



El último día del Sprint, ocurrirán dos reuniones importantes para el equipo, las cuales ya fueron planificadas por el Scrum Máster desde el inicio del Sprint. Estas reuniones son:

• Reunión de Revisión
• Reunión de Retrospectiva


Reunión de Revisión del Sprint

En la reunión de Revisión (o demostración) el Equipo muestra a los asistentes el trabajo realizado durante el Sprint. Se realiza una demostración "en vivo" del producto, mostrando el funcionamiento de las historias terminadas en el Sprint.
Esta demostración se realiza preferentemente en una de las PC de los desarrolladores, y se muestra el producto real funcionando (no hay diapositivas, ni papeles impresos: se muestra el sistema funcionando realmente) y se comienza contando el Objetivo del Sprint, y cuál era el plan original del mismo con las historias que se desarrollarían. Luego se comenta lo que es lo que se encuentra terminado y se explica que ha pasado con lo no desarrollado a grandes rasgos.

A esta reunión asisten todos los integrantes del equipo, el Scrum Máster, el Dueño del Producto, usuarios y cualquier otro interesado en el sistema.
El Dueño del Producto (y los usuarios), al ver el sistema funcionando, pueden empezar a visualizar la solución, verificar si el producto está llevando el rumbo que ellos pensaron desde el inicio, si sigue siendo útil, y qué cambios se podrían hacer. Todos pueden proponer mejoras, pero sólo el Dueño del Producto decidirá si las mismas formarán parte del sistema final.
Es muy importante tener en cuenta que lo que se muestra al usuario, es en base a la reunión de planificación que se había realizado inicialmente de cómo iba a aceptar la historia y en qué condiciones. Es importante tener esto en claro en la Reunión de Planificación del Sprint.
Esta reunión no debe durar más de 2 horas, en general, con 1 hora es suficiente para que todos puedan ver el producto, debatirlo y proponer cambios para el próximo Sprint.



Reunión de Retrospectiva del Sprint


La retrospectiva del Sprint es una reunión en la cual los Miembros del Equipo discuten el Sprint que acaba de finalizar, y determinan qué podría cambiarse en el próximo Sprint para que sea más productivo y mejor.
La Revisión del Sprint se focaliza en "Qué" construye el equipo, mientras que la Retrospectiva se centra en "Cómo" están construyendo el sistema.
El Scrum Máster lleva la reunión adelante, mostrando la dedicación del equipo dando a conocer los imprevistos e impedimentos que pudieron influir en el trascurso del Sprint.
El equipo divide los temas del Sprint en:
• Bueno
• A mejorar
• Mejora concreta (de aquí se elegirán dos o tres para poner foco en el próximo Sprint)
La dinámica será en que cada miembro exponga su impresión del Sprint y agregue temas a las dos primeras columnas. Cuando los miembros del equipo discuten sobre el Sprint que acaba de finalizar, no solo tratan temas técnicos, sino que tiene que surgir cualquier tipo de mejora.

Con esto se da por terminado el Sprint, y el equipo se prepara para comenzar una nueva reunión de planificación al día siguiente hasta llegar a la finalización eh implementación del producto.



fuentes:

The beast
Scrum
Explicando Scrum a mi abuela
Agile Spain

Agrear busqueda en tu blog

Para agregar un campo de busqueda sencillo, como el de este blog simplemente agrega a tu sidebar un gadget de codigo HTML/JavaScript a continuacion inserta el siguiente codigo:

<form id="searchthis" action="/search" style="display:inline;" method="get">
<div align="center">
<input id="search-box" name="q" type="text"/>
<br/>
<input id="search-btn" value="Buscar" type="submit"/></div>
</form>

y finalmente posicionalo en el lugar que desees.

EXTRA
Si quieres personalizar tu caja de busqueda y quieres que te quede como esta te recomiendo que le des una mirada al articulo Estilo para tu caja de busqueda con css.

lunes, 24 de noviembre de 2008

Domingo en la mañana



ueno pues resulta que ayer navegando entre mis sitios favoritos me encontre con un post de cristalab donde decian "Domingo en la mañana! Reunión este domingo en México, DF" que!!! me dije a mi mismo, pues como yo vivo en toluca (aunque no soy de ahi)me queda literalmente cerca, ademas es un evento de los que por lo menos yo, no suelo ver aqui en toluca ni en el estado apesar de que es una expriencia creo yo muy gratificante y que definitivamente me gustaria vivir, ya sabes estar con todas esas personas y hablar de lo que nos gusta, ademas de que de este tipo de charlas siempre aprendes algo, o compartes algo con gente que te entiende y que no solo te da el avion (cuando alguien te da el avion es por que regularmente no comprende de lo que estas hablando) surgen multitud de ideas y en general pasas una mañana amena y de cierta manera productiva, sinceramente me gustaria que gente de toluca se animara a juntarse tambien a compartir sus experiencias como desarrolladores, diseñadores, publicistas etc mientras nos echamos unas chelitas :P de esta manera no solo aprenderiamos cosas nuevas sino tambien extendemos nuestros lazos de amistad y en todo caso sabriamos a quien acudir cuando se nos presente un problema, ya saben zapatero a su zapato ;).

Para finalizar aqui les dejo los link que encontre del la reunion del domingo en la mñana en mexico, desgraciadamente no pude ir por que el mensage lo encontre a eso de las 7 de la noche cuando todo ya habia terminado, espero que estas reuniones se sigan celebrando.

http://www.cristalab.com/blog/64646/domingo-en-la-manana-reunion-este-domingo-en-mexico-df.html

Mapa de donde se celebran estas reuniones

http://www.danielgimenez.net/2008/11/23/sunday-morning-con-freddie-de-cristalab/

sábado, 22 de noviembre de 2008

Variables de Session en php

http://data3.blog.de/media/628/2425628_dece031612_m.jpeg



Si te encuentras en este post, seguramente ya sabras de que va esto de las variables de session, si no es asi te dire que resumiendo, las variables de session son un tipo especial de variables que nos permiten guardar informacion y concervarla durante una visita de un usuario.

Ejemplificando: si tu creas una variable digamos "$mivariable" en una pagina php cuando sales de esta y comienzas a crear una nueva pagina el valor de $mivariable se pierde, es decir que unicamente existira de manera local en la pagina donde se declaro esta variable, sin embargo si declaramos a "$mivariable" como variable de session podremos utilizarla en todas las paginas de nuestro sitio.

Este tipo de variables comunmente son utilizadas para restringir el acceso a un sitio.


Nota: El servidor crea un objeto de sesion diferente para cada usuario y lo mantiene durante un periodo de tiempo establecido o hasta que se pone fin a la session de manera explicita.


Pues bien una vez puestos en antecedentes vallamos a lo interesante:

Para comenzar a utilizar sessiones primero debemos de crear (o continuar) una session, esto se hara poniendo en las paginas donde queramos usar variables de session la siguiente declaracion:

session_start();

Esta funcion nos devolvera true si la session fue creada correctamente y false en caso contrario.

Clue: Puede que al momento de probar tu pagina esta te arroje un warning, para solucionar esto simplemente pon la declaracion de inicio de session antes que cualquier otra instruccion, inclusive antes del <html>.

Una vez iniciada la session lo siguiente sera crear una variable de session y asignarle un valor, antes de proseguir debo de mencionarles que la manera de crear una variable y asignarle un valor depende de una variable de php llamada register_globals veamos ambos casos.

  • Si register_globals=off o tu version de php es la 5 o mayor ni le busques esta es la opcion que debes de utilizar es por eso que la pongo primero.
$_SESSION['nombre_de_la_variable']=valor;

Para comprobar si tu variable fue registrada puedes implementar la siguiente funcion:

if(isset($_SESSION['nombre_de_la_variable'])){
echo "Registrada"
}else{
echo "No registrada"
}

  • Si register_globals=on entonces lo que debes de hacer es:
$variable_de_session=valor;
session_register("variable_de_session");

Para comprobar si tu variable fue registrada puedes implementar la siguiente funcion:

if(session_is_registered("variable_de_Session")){
echo "Registrada"
}else{
echo "No registrada"
}
Bueno una vez creadas las variables de session y asignados un valor ya sea de la primera o la segunda forma tendremos disponibles estas variables con sus respectivos valores en todas las paginas donde iniciemos session (es decir donde tenga session_start();).

OTRAS FUNCIONES
Las siguientes son funciones validas sin importar de que manera se dio de alta la variable.

  • Para eliminar la session unicamente hay que poner: session_destroy();
  • Para eliminar una variable registrada: session_unregister();
  • Para leer o cambiar el identificador de session actual: session_id();
  • Para eliminar todas las variables de session ojo no destruye la session solo elimina todas sus variables: session_unset();
  • Para leer o cambiar la ruta donde se guardan los datos de la session actual: session_save_path(); hay que configurar save_path para que no de error en php.ini
Pues bien con esto concluye el tema de variables de session, a que es sencillo vdd, bueno si alguien tiene algo que agregar, alguna otra funcion util o algo del tema que quieran compartir, ya saben que sera bien recibido. hasta la proxima!!!

Smart Player

Smart player es un hosting de video que nos ofrece algunas ventajas muy interesantes, pero esta de mas que se las comente, mejor chequenlas con este video que es su promocional.



More Web Tutorial at 5min.com

Life

Navegando por ahi me encontre este video que esta genial, realmente explica mi vida y me hizo reflexionar el por que aveces soy tan improductivo :P.

martes, 18 de noviembre de 2008

Entrevista con Suraski



Para las personas familiarizadas con php y su historia bien recordaran que si bien el padre de php podriamos decir que es Rasmus, ya que de el nacio el principio del concepto, tambien conoceran la importancia de Zeev Suraski que junto con Andi Gutmans rescribieron desde cero el analizador sintactico del PHP/FI para concebir junto con Rasmus y un buen numero de desarrolladores que se subieron al barco, lo que el mundo conoceria como PHP, si bien de un tiempo aca ah sufrido ya muchisimas actualizaciones, PHP se puede decir que fue PHP desde ese historico momento, weno pues resulta que navegando por aqui y por alla me encontre con una entrevista que le hizo El pais.com" , la entrevista no es nueva, es de abril del 2007 sin embargo pienso que siempre es interesante lo que estos gurus tienen que decir, asi que sin mas los dejo con ella:


Zeev Suraski, israelí de 31 años, es un hacker de manual. En vez de ir a clase, aprovechó la universidad para pasar horas escribiendo código con su amigo Andi Gutmans. Así crearon el lenguaje libre de programación PHP, para desarrollar páginas web. Hoy dirigen su compañía, Zend Technologies, demostrando que es posible hacer dinero con un producto de código abierto...


"PHP es potente, fácil, gratuito y permite a servicios como Flickr, Digg o Youtube crear aplicaciones rápidamente en un mercado veloz"


-Ya no programas?

-No mucho. Antes progrmaaba mucho, creé PHP hace 10 años, he estado muy involucrado en su desarrollo hata 2002, aunque sigo desarrollando algunas partes. Ahora ayudo a empresas a implementar php, alianzas estratégicas, etc, es lo que más hago ahora, más que programar.

-Tú y andi sois algo del estilo wozniak and steve jobs. Ahora eres el steve jobs del php?

-ok

-Cómo explicarías a un niño pequeño qué es php?

-No sé si lo entendería... Sabes esta cosa llamada Internet, donde puedes ir a sitios como Youtube, Yahoo y otros sitios web? PHP es la herramienta que usan estas compañías para crear estos sitios web. Es un lengauje de programación para desarrollar sitios web.

-Qué significa?

-Oficialement significa "PHP Hypertext Processor", sigue la misma idea de "GNU is Not Unix". Es un nombre muy malo. En el pasado significaba Professional Home Pages. Pero cuando nosotros creamos la nueva implementación queríamos encontrar un mejor nombre que PHP/F1, como lo llamó su creador, porque era difícil de pronunciar, pero no pudimos, así que seguimos llamándolo PHP, sin F1. Y PHP es PHP y ya está.

-El creador de PHP fue Rasmus Lerdof. Andi y tú lo reescribistes. Por qué?

-Usábamos PHP como usuarios para crear aplicaciones web en 1996. Estábamos haciendo un proyecto de la universidad, una tarjeta para hacer compras de comercio electrónico, lo que entonces se consideraba un proyecto muy avanzado, porque la web era algo nuevo. Yo conocía PHP, que era una alternativa a Perl, más fácil, y lo usaba, todo el mundo usaba Perl pero nosotros preferimos usar PHP.

-Y por qué reescribirlo?

-Cuando empezamos a usarlo vimos enseguida que tenía bastantes problemas, problemas serios en el lenguaje. Podríamos haber usamos Perl pero preferimos fijarnos en qué le pasaba a PHP, que era de código abierto y por tanto podíamos mirar el código. Estaba realmente embrollado, era un caos. Hablamos con su creador y nos dijo que él había hecho algo para que le funcionase a él y su equipo, que no era un informático y que si queríamos hacer cambios seríamos bien recibidos. Y lo hicimos. Para nosotros era como un hobby, gastamos todo un curso en la universidad con esto, al fin y al cabo no estábamos demasiado interesados en estudiar y hacer los exámenes. Preferíamos trabajar en esto y era una buena excusa para no estudiar.

-¿De qué parte te encargaste tú en el desarrollo de PHP?

-El desarrollo completo, el 67%. Y también Andi. Trabajábamos juntos, diseñábamos el nuevo lenguaje. Basado en PHP/F1 pero también en Java, C, un mix en diversos lenguajes. Creamos algo que tuvo mucho éxito. No fue sólo coger PHP/F1 y escribirlo de nuevo sino crear PHP de nuevo y convertirlo en un lenguaje poderoso que pudiese competir con C, Java y otros. Trabajamos en el diseño, la implementación, arreglar los fallos, etc.

-Sabes que eres un hacker?

-En el pasado, sí. Y aún lo soy, pero más orientado a los negocios.

-Cuántos servidores en Internet usan PHP?

-Los números cambian mucho y es difícil de decir. En porcentaje tenemos del 30 al 35% de toda la Internet corriendo con PHP. Si comparamos las plataformas para servidores web, PHP es la primera y la segunda es .Net. Y, en cuanto a desarrolladores, .Net y Java tienen más, pero ambas no son sólo para la web, hacen otras aplicaciones. PHP es la plataforma de desarrollo web más popular. Y, en cuanto a desarrolladores está siendo más popular que Java. En Europa y en el entorno de desarrolladores, PHP es más popular que Java.

-Por qué Europa ama PHP?

-Es una combinación de cosas. Una es que el código abierto en general es más popular en Europa que en otro lugar del mundo, quizás por diferencias culturales y también porque en Estados Unidos están las grandes empresas de código abierto, en cambio en Europa no las hay pero hay muchas comunidades locales, son muy fuertes. Hace una semana, estuve con grupos de usuarios en Alemania y la gente se reúne una vez al mes para hablar de PHP y otras cosas. Estas comunidades no existen en Estados Unidos. Es un hecho que la adopción de Linux es más fuerte en Europa que en EEUU. Todos los proyectos de código abierto son más populares en Europa que en EEUU. EEUU lo vive de otra manera. Por ejemplo, las grandes compañías están empezando a usar código abierto pero se siente más confortables si usan Oracle y software propietario.

-Por qué PHP se ha hecho tan popular?

-Por dos cosas sobre todo. Una es tecnológica: es simple, lo que lo hace más productivo. La segunda razón es social: se hizo muy popular por un círculo de efectos: hay una gran comunidad que usa PHP, lo que significa que siempre hay alguien que puede ayudarte, responder una pregunta en un foro o una lista, gente que escribe documentación, grupos de usuarios... No necesitas ser un programador para usarlo, puedes cogerlo y usarlo, normalmente gratuitamente, cambiarlo. La contribución social a PHP es la clave de su éxito y lo que lo nutre y lo hace más y más atractivo. Simplicidad y comunidad son las respuestas de su éxito.

-Y ustedes agradecen la ayuda a la comunidad dándoles PHP gratuitamente

-Muchas empresas desarrollan partes de PHP no para hacer negocio directamente, no para venderlo, sólo porque lo necesitan.

-PHP es software libre o de código abierto?

-En la definición de Richard Stallman, es código abierto porque no tiene una licencia GNU. PHP tiene su propia licencia.

-PHP es responsable del éxito de la web 2.0?

-Ha sido un elemento clave, no el único, pero lo han usado servicios web líderes porque es muy poderoso para crear aplicaciones web y gratuito, mientras que las herramientas de Microsoft son caras y necesitas usar sólo sus productos. programar PHP es fácil y permite desarrollar aplicaciones más rápido. Es difícil pensar qué habría pasado si no hubiese existido PHP pero la revolución de la web habría sido más pequeña o habría tardado más tiempo. La generación de contenido, la colaboración, que son el espíritu de la Web 2.0, lo son también de PHP. Por qué tantas aplicaciones de código abierto usan PHP? Avances como la Wikipedia, donde la gente aporta información...

-¿Cómo se siente uno cuando se echa en el sofá de su casa y piensa: yo ayudé a crear la web 2.0?

-La web 2.0 han sido un montón de cosas diferentes que han convergido al mismo tiempo, no fuímos sólo nosotros. Nosotros hemos sido unos de los colaboradores. Estoy muy orgulloso de haber sido uno de los colaboradores clave y normalmente no me siento en mi sofà pensando esto, pero ahora que estoy volando a diferentes países, Rusia, Estados Unidos, Europa y veo que en ciudades de todo el mundo hay gente usando PHP, el lenguaje que ayudé a crear, es muy bonito. No puedo hablar en español con ellos pero todos hablamos el mismo lenguaje, que yo ayudé a crear. Esto es muy bonito.

-El video mató a la estrella de la radio. PHP está preparado para la web 3.0?

-No sé cómo será la web 3.0 y no puedo decir que estemos preparados para ello pero, en general, tenemos mucho éxito en integrar tecnologías para hacerlas accesibles, integración con Java, etc. Ahora que estamos preparando la versión 6 de PHP, veo que está tan avanzado y es tan poderoso, comparado con la versión de 1996, está integrado con tantos lenguajes, muchas cosas que hemos implementado en PHP están basadas en ideas y demandas de la gente que lo está usando, quizá el 60%. Por tanto, el hecho de que PHP responda a las necesidades de la gente hace que cuando la web 3.0 sea popular, PHP soporte todo lo que necesite. Incluso sin saber que será la web 3.0, una forma de conocer el futuro es crearlo.

-Cuándo liberaréis PHP 6?

-En 2008 pero muchas cosas nuevas que habrá en PHP 6 ya las estamos ofreciendo con las nuevas versiones de PHP 5, para que no sea necesario esperar a la 6.

-Google usa PHP?

-Tiene su propio equipo de desarrolladores que hacen la mayoría de sus aplicaciones. Pero nos han contratado para crear una librería PHP para acceder a los servicios de Google. Los lenguajes que usa son Java y PHP. Pero cuando hacen servicios para el mercado, valoran PHP como tecnología clave.

-Yahoo, youtube, Flickr, Digg.. Los mejores servicios de la web usan PHP. O quizá son los mejores porque usan PHP?

-Quizá sí debas ser bueno para usar PHP :) PHP ayuda a realizar los conceptos que ellos tienen de la mejor forma posible. Les ayuda a implementar los servicios que quieren, a ser los mejores del mercado... Es una combinación de buena mercadotecnia y buena tecnología para ser los primeros. PHP les permite crear aplicaciones rápidamente en un mercado que se mueve rápidamente.

-En las listas de correu, los blogs, es fácil encontrar a gente hablando o usando PHP. También entre los servicios punteros de Internet. Ahora las compañías tradicionales, no sólo las relacionadas con la red, también empiezan a usar PHP. ¿Es así?

-Sí. Es un fenómeno bastante nuevo. Si hubiésemos hablado hace dos años no habría tenido muchos ejemplos pero hoy sí, PHP está entrando en las compañias tradicionales: telecomunicaciones, bancos, gobiernos.. Uno de los ejemplos más interesantes es el gobierno francés donde PHP está entrando muy fuerte junto con otros sistemas de código abierto. La razón de que empresas e instituciones adopten PHP es por un parte su simplicidad, también el hecho de que las grandes empresas de software han empezado a soportar PHP en los últimos años. PHP ya no es sólo un proyecto de soft de código abierto, está cambiando la percepción. Además ha penetrado con mucha fuerza en la comunidad de Internet. Está siendo cada vez más popular en grandes corporaciones, como Fiat.

-Y por qué estos sitios adoptan PHP si, por ejemplo, a la administración Microsoft le da sus herramientas gratuitamente? Si ambos son gratuitos, ¿por qué escogen PHP?

-Microsoft es muy popular y PHP menos. Mucha gente prefiere PHP y otra prefiere Microsoft. PHP es más fácil que .Net, más productivo, muy escalable y personalmente prefiero usar PHP con Linux que .Net con Microsoft porque, de esta forma, no sólo las herramientas sino todo es libre y gratuito. Además tienes el código abierto y puedes cambiar lo que quieras, lo que hace que sea más fácil cambiar de dirección.

-Ahora Java es libre. ¿Es un problema para PHP?

-No. Hay una diferencia fundamental entre ambos: Java no se ha diseñado para crear sitios web sino aplicaciones de escritorio. Es más difícil crear sitios web con Java que con PHP, sea Java libre o no. Estamos en negocios diferentes.

-Un joven que está aprendiendo a programar, es mejor que .Net o PHP?

-Si quiere encontrar un trabajo, es indiferente. Depende de tu naturaleza, de lo que prefieras: trabajar con herramientas de Microsoft o tener el control total de la aplicación y usar PHP. Hay usuarios de uno y otro.

-Si PHP es gratuito, ¿de qué vivís?

-Cuando lo creamos estábamos en la universidad y no necesitábamos mucho dinero, era un hobby. Pero cuando empezó a crecer, en ocho meses, entre 1998 y 1999 un millón de sitios web lo empezaron a usar. Fue algo increible. Y empezamos a pensar qué negocio podíamos crear, no fuimos nosotros sino que las empresas venían a nosotros, en 1999, pidiéndonos que hiciésemos determinadas herramientas para PHP que no existían o pidiéndonos soporte. Al ver esto, creamos Zend Technologies. Invertimos mucho en código abierto y lo que hacemos es vender el conocimiento y crear programas comerciales y servicios para empresas. Así hacemos el dinero. Invertimos mucho en proyectos de código abierto y donde hacemos el dinero es en los servicios comerciales.

-Y hacéis suficiente dinero para vivir tranquilamente? ¿no es una entelequia lo de vivir del software libre?

-No, no. No somos Bill Gates pero vamos bien.

-¿Zend tiene 140 trabajadores?

-Sí. La mayoría son desarrollores. Nuestra central está en California, en Cupertino, y también tenemos oficinas en Israel, Alemania y Francia.

-¿El código de PHP se produce todo en Zend?

-No. Zend es responsable sólo del kernel de PHP. El resto de contribuciones son desarrolladas por gente de Zend pero muchos voluntarios. PHP no sería lo que es sin las contribuciones de esa gente que ha creado las extensiones y otros, voluntarios de todo el mundo. Zend hace las partes quizá más complicadas pero la mayoría de gente que contribuye crea y mejora PHP son voluntarios de todo el mundo. No sería tan popular sin sus contribuciones. Si miras todas las líneas de código de PHP, quizás el 90% es de los voluntarios. PHP es como una cebolla: en el centro está el kernel y esto lo desarrollamos nosotros, pero el resto de capas las hacen voluntarios (extensiones, etc). Zend hace también una parte, pero pequeña. En PHP hay un montón de desarrollo de la comunidad. PHP es uno de los mejores ejemplos de productividad funcional de la comunidad. No somos sólo una empresa.

-¿Qué tecnologías son realmente vuestros competidores?

-Java y .Net son grandes competidores. .Net es muy bueno si te gusta Microsoft, están haciendo un buen trabajo. Java es una historia diferente, tiene mucho trabajo hecho en la percepción, en la imagen, han hecho un gran trabajo de marketing, todo el mundo piensa que debe usar Java para todo. Esta percepción es aún difícil de cambiar. Java es un competidor en el área de aplicaciones web más por la percepción de las empresas de que deben usar Java para todo. Esto está empezando a cambiar, también porque las empresas oficiales de Java están empezando a soportar PHP y vemos a Java menos como competidor y más como colega, aplicaciones que conectan PHP y Java, usar Java para unas cosas y PHP para otras, conectarlos es necesario.

-Hace unos días, leíamos que el editor de O'Reilly decía: "We've noticed that one of the signs that a language is becoming mainstreams (and perhaps being abandoned by the cutting edge developers) is that the For Dummies book becomes the top seller". ¿Es quizás el caso de PHP?

-Ahhh... Qué manía en predecir el futuro.. No, no lo creo... No sé si es un buen indicador. PHP desde el principio no ha querido dirigirse a los desarrolladores avanzados. Desde el principio sabíamos que no era para ellos, por eso lo hicimos fácil de usar. No queríamos que fuese un lenguaje élite desde el principio sino fácil para los nuevos y creo que hicimos un buen trabajo. Y ahora hay muchos novatos que lo usan y también compañías avanzadas y queremos seguir por este camino.

-Se habla mucho de la inseguridad de la web 2.0 y también de las aplicaciones PHP. No hace mucho, vuestro responsable de seguridad se marchó del grupo y anunció que daría a conocer todos los fallos de PHP. ¿PHP tiene un problema de seguridad?

-Sí, tenemos problemas de seguridad, pero los tiene todo el mundo. Y cuando los conocemos los arreglamos, respondemos muy rápido. Cuando se hizo el mes de fallos en PHP creo que respondimos rápidamente. Hay que entender también que, desde una perspectiva de seguridad, la web es un sitio muy peligroso. Cualquier aplicación que pones en línea, todo el mundo, gente de Rusia, de Australia, de Estados Unidos, se pone a intentar tumbarla. Hoy en día es muy complicado crear aplicaciones seguras. Muchos de los problemas de PHP son en aplicaciones, no en PHP en sí. Por tanto, lo que hay que hacer es educar a la gente, a los desarrolladores, para que escriban aplicaciones seguras. Zend y también la comunidad PHP está creando mejor documentación para crear aplicaciones seguras.

-Creo que también se debería educar a los usuarios. Por ejemplo a no usar javascript cuando navegadas por la web.

-Sí, pero javascript está siendo cada vez más importante, muchas webs no funcionan sin javascript.

-Odio javascript!

-Todo el mundo lo odia.

-Un hacker pide que te pregunte: ¿Cuál es tu sistema operativo preferido?

-Espero que no me maten. En el escritorio uso Windows y en el servidor, Linux, no me importa qué distribución. Para el servidor por supuesto prefiero Linux.

-PHP tiene algún conejo a punto de sacar de la chistera?

-Conejos no, solemos jugar con la transparencia en el código abierto. La discusión precisamente está en ser muy abiertos. Para la comunidad de desarrolladores, el Zend Framework y los componentes que vamos a publicar en unos meses creo que serán una sorpresa, aunque no son un secreto. Para las empresas, estamos haciendo más potente Zend Core. También estamos trabajamos con IBM en herramientas para PHP. Es difícil hablar de sorpresas porque no lo son.

-Si PHP no hubiese sido libre habría tenido este éxito?

-No. Más por la accesibilidad que por el precio, que no es un aspecto demasiado importante, aunque está claro que si no te cuesta nada entrar en esta tecnología es más fácil hacerlo. Hoy las compañías usan PHP porque la tecnología es buena, pero si no fuese popular no lo harían. La comunidad ha sido la clave del éxito de PHP.

viernes, 14 de noviembre de 2008

Solo por hoy

Solo por hoy:

  • Dile a la gente que quieres... QUE LA QUIERES!!!!
  • Cuida tu planeta
  • Regala una sonrrisa
  • Canta en la regadera
  • Si los problemas tienen solucion ¡NO TE PREOCUPES! y si no ¡PUES TAMPOCO!
  • Ve a un lugar donde nunca hayas estado
  • Llama a un viejo amigo
  • Ponte en los zapatos de los demas
  • Alegra el corazon de un niño
  • Si te equivocaste ¡ Pide perdon !
  • No te olvides de ver siempre el lado positivo de las cosas
  • Si la vida te da limones, Haz limonada :P

Gente extraordinaria

Muy buen documental sobre gente superdotada, principalmente se enfocan en daniels un chico con una habilidad sorprendente para las matemáticas.

 

miércoles, 12 de noviembre de 2008

Conceptos basicos de Bases de datos

Para los chavos de la prepa:

CONCEPTOS BASICOS

Dato: Conjunto de caracteres con algun significado.
p.e puede que "Juan" signifique el nombre de una persona registrada en nuestra base de datos.

Campo: Es la unidad mas pequeña a la cual puede referirse en un programa.

Registro: Coleccion de campos de iguales o diferente tipo de alguna manera asociados entre si.



¿QUE SON LAS BASES DE DATOS?


Una base de datos es una recopilacion de informacion relativa a un asunto o proposito particular como el seguimiento de pedidos de un clientes o el mantenimiento de una coleccion de musica.


OBJETIVOS DE UNA BASE DE DATOS

El objetivo de una base de datos es el de almacenar informacion sobre algo de manera eficiente, poniendo especial atencion en:

Disminuir la Redundancia y la Inconsistencia en la informacion: Esto quiere decir que evitaremos duplicar la informacion(redundancia) y que dicha informacion sea la mas actualizada(inconsistencia), esto lo podremos vislumbrar mejor con la siguiente analogia:
Supongamos que insertamos varios archivos mp3 a nuestro celular, entre estos archivos por un descuido metemos dos veces una misma cancion, al darnos cuenta de esto, seria logico que dejaramos que esta cancion se repitiera?, no lo creo porque lo que estaria haciendo seria unicamente ocupar memoria que bien podriamos ocupar para agregar una cancion mas a nuestro mobil o como espacio para fotos etc, pues bien uno de los objetivos de las bases de datos es acomodar la informacion de tal manera que esta no se repita inecesariamente y esto es a lo que llamamos redundancia.


Por otro imaginemos que tenemos una agenda donde tenemos anotada a nuestra amiga mari (siempre hay una mari), sin embargo recientemente mari cambio de telefono por lo que la volvemos a anotar con su nuevo telefono, ahora bien al echo de tener dos veces a la misma mari con numeros de telefonos diferentes es a lo que llamamos un error de inconsistencia, es decir forzosamente uno de los 2 numeros esta equivocado provocando que nuestra agenda no tenga informacion 100% veradera.

Reducir la dificultad para tener acceso a los datos
    Un sistema de base de datos debe contemplar un entorno de datos que le facilite al usuario el manejo de los mismos. Supóngase un banco, y que uno de los gerentes necesita averiguar los nombres de todos los clientes que viven dentro del código postal 78733 de la ciudad. El gerente pide al departamento de procesamiento de datos que genere la lista correspondiente. Puesto que esta situación no fue prevista en el diseño del sistema, no existe ninguna aplicación de consulta que permita este tipo de solicitud, esto ocasiona una deficiencia del sistema.
Eliminar problemas de seguridad en la informacion
    La información de toda empresa es importante, aunque unos datos lo son más que otros, por tal motivo se debe considerar la facilidad con que se acceden a los mismos, no todos los usuarios pueden visualizar la misma informacion, por tal motivo para que un sistema de base de datos sea confiable debe mantener un grado de seguridad que garantice la autentificación y protección de los datos. En un banco por ejemplo, el personal de nóminas sólo necesita ver la parte de la base de datos que tiene información acerca de los distintos empleados del banco y no a otro tipo de información.


MANEJADOR DE BASE DE DATOS

    El sistema  manejador   de bases de datos es la porción más importante de un sistema de base de datos. Un DBMS es una colección de numerosas rutinas de software interrelacionadas, cada una de las cuales es responsable de alguna tarea específica, dicho en otras palabras es un programa que sirve para crear y poder manipular las  bases de datos y la informacion que contienen.
TABLAS
Las tablas son la parte mas importante de una base de datos, ya que es ahi donde se guardara y organizara la informacion, las tablas se componen de dos partes la primera son las columnas(nombres de los campos) y la segunda son las filas tambien llamadas registros.

TIPOS DE USUARIOS

Existen en una base de datos dos tipos de usuarios bien definidos, el primero es el administrador de la base de datos o como todos en el medio lo conocen el DBA (Data base Administrator) de dicho usuario podemos decir que es el todopoderoso, todo lo puede ver y todo lo puede hacer vive sin limites ni reservas pero carga con la responsabilidad de todo aquello que suceda en la base de datos, mientras que el otro tipo de usuario es simplente llamado así "usuario" y este unicamente puede ver y hacer lo que el DBA le haya permitido.

Administrador de Bases de Datos

Denominado por sus siglas como: DBA, Database Administrator.

    Es la persona encargada y que tiene el control total sobre el sistema de base de datos, sus funciones principales son:

   Definición de esquema.
    Es decir es el que crea la estructura o esqueleto de la base de datos.


   Concesión de autorización para el acceso a los datos.
      Es decir genera los permisos de cuanto pueden ver o hacer los demas usuarios.

   Especificación de límitantes de integridad.
      Es una serie de restricciones que se encuentran almacenados en una estructura especial del sistema que es consultada por el gestor de base de datos cada vez que se realice una actualización al sistema.




 
 Usuarios de las bases de datos

    Podemos definir a los usuarios como toda persona que tenga todo tipo de contacto con el sistema de base de datos desde que este se diseña, elabora, termina y se usa.

Los usuarios que accesan una base de datos pueden clasificarse como:

   Programadores de aplicaciones.
      Los profesionales en computación que interactuan con el sistema por medio de llamadas en DML (Lenguaje de Manipulación de Datos), las cuales están incorporadas en un programa escrito en un lenguaje de programación (Por ejemplo, COBOL, PL/I, PHP, C, etc.)

   Usuarios sofisticados.
      Los usuarios sofisticados interactuan con el sistema sin escribir programas. En cambio escriben sus preguntas en un lenguaje de consultas de base de datos SQL.


   Usuarios ingenuos.
      Los usuarios no sofisticados interactuan con el sistema invocando a uno de los programas de aplicación permanentes que se han escrito anteriormente en el sistema de base de datos, podemos mencionar al usuario ingenuo como el usuario final que utiliza el sistema de base de datos sin saber nada del diseño interno del mismo por ejemplo: un cajero.


 
 
SQL
 
Hace algunos años cuando se descubrio la importancia de las bases de datos salieron al mercado muchos manejadores de bases de datos, cada uno utilizaba una manera muy propia para manipular los datos, esto ocasionaba principalmente dos graves problemas:

1) cada vez que se queria utilizar un nuevo manejador ya sea por su potencia, seguridad, efectividad etc; Habia que aprender desde el inicio a utilizarlo p.e en nuestro programa anterior para realizar una tarea como la de crear una nueva base de datos haciamos algo como: create new dabase with name mi_base execute now; mientras que en la nueva aplicacion para realizar la misma tarea se hacia: new data_base create now mi_base; lo que apesar de ser similar es diferente y nos causaria cierta confusion e incluso realmente la instruccion podria llegar a ser diferente: new arkud_data:data:bd_new mi_base; por decir algo.

2) El segundo problema por logica era la incompatibilidad entre bases de datos, es decir si habiamos echo nuestra base de datos en acces el mudarla a MySQL por X razon era una tarea muy tediosa si no imposible.

Observando la utilidad de las bases de datos y teniendo claro este problema se decidio crear un lenguaje de manipulacion estandar, el cual tomaria lo bueno de cada lenguaje y lo uniria para que todos los manejadores de bases de datos funcionaran con ese mismo lenguaje sin ningun problema.

Es de eso de lo que trata el Structured Query Language que no es mas que un lenguaje estándar de comunicación con bases de datos. Hablamos por tanto de un lenguaje normalizado que nos permite trabajar con cualquier tipo de lenguaje (ASP o PHP) en combinación con cualquier tipo de base de datos (MS Access, SQL Server, MySQL...).

El hecho de que sea estándar no quiere decir que sea idéntico para cada base de datos. En efecto, determinadas bases de datos implementan funciones específicas que no tienen necesariamente que funcionar en otras. 

Aparte de esta universalidad, el SQL posee otras dos características muy apreciadas. Por una parte, presenta una potencia y versatilidad notables que contrasta, por otra, con su accesibilidad de aprendizaje. 



COLUMNA(o Campo): Es un nombre que se asigna para identificar un conjunto de datos del mismo tipo.

FILA(o Registro): Es un conjunto de datos relacionados, todas las filas de la misma tabla tienen la misma estructura.

CLAVES PRIMARIAS: Se llama clave primaria a un campo, o a una combinación de campos, que identifica en forma única a cada registro.
Por ejemplo, para una tabla de clientes se podría usar, como clave primaria, una de las siguientes opciones:

La cédula de identidad del cliente.
La combinación de nombre y apellido. Esto es dudoso, ya que un dos clientes pueden tener el mismo nombre y el mismo apellido.
Un código de cliente, asignado por la empresa.
Sin embargo, lo más recomendable es utilizar un número que nunca verá el usuario final. Para este fin, se necesita un número secuencial. Esto nos trae numerosas ventajas, entre otras:

Se simplifican las claves foráneas y las relaciones entre las tablas. Por ejemplo, si para identificar a un cliente utilizamos la combinación de nombre y apellido, también necesitamos el nombre y el apellido del cliente en la factura, para identificar al cliente.
Se ahorra espacio, ya que un campo de tipo Integer (entero) sólo utiliza 4 bytes (sin embargo, permite números hasta 2 mil millones). Se puede argumentar que se necesita un campo más para la clave primaria; pero se ahorra espacio en las claves foráneas en otras tablas.
El acceso a los datos es más rápido. Esto está directamente relacionado con el hecho de que los campos de tipo Integer (y sus índices correspondientes) son más pequeños.
El usuario puede cambiar los códigos, sin que se tengan que "propagar" los cambios a otras tablas.
También hay algunas desventajas; sobre todo, la programación se hace más complicada en algunos casos. Pero he visto en la práctica que es un sacrificio que vale la pena.


CLAVES FORANEAS:  Es una referencia, en una tabla, a la clave primaria de otra tabla.

INDICES: El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla. Al aumentar drásticamente la velocidad de acceso, se suelen usar sobre aquellos campos sobre los cuales se hagan frecuentes búsquedas.
El índice tiene un funcionamiento similar al índice de un libro, guardando parejas de elementos: el elemento que se desea indexar y su posición en la base de datos. Para buscar un elemento que esté indexado, sólo hay que buscar en el índice dicho elemento para, una vez encontrado, devolver el registro que se encuentre en la posición marcada por el índice.


Bueno ya para finalizar veremos muy generalmente algunas instrucciones para manipular bases de datos, dichas instrucciones pueden variar ligeramente dependiendo del manejador que utilicemos, ya que con ustedes estaremos ocupando MySQL les recomiendo que vean los comandos especificos para este manejador en el siguiente post:



CREATE DATABASE :Utilizaremos esta instruccion para crear una base de datos.

USE: Selecciona una base de datos para trabajar con ella.

CREATE TABLE: Utilizaremos esta instruccion para crear una nueva tabla tabla en la base de datos seleccionada.

DESC | DESCRIBE: Utilizaremos esta instruccion para ver la estructura y la informacion de una tabla.

INSERT: Con este comando podremos insertar informacion a una tabla.

UPDATE: Con esta instruccion podemos modificar la informacion contenida en una tabla.

DELETE: Con este comando podremos eliminar la informacion contenida en una tabla.

TRUNCATE: Elimina de una manera mas eficiente la toda informacion contenida en una tabla, pero no es utilcuando queremos borrar unicamente una parte de la informacion en vez de toda.

ALTER: Con este comando podremos modificar la estructura de una tabla, ojo digo estructura no contenido, modificar estructura es algo asi como modificar la informacion de las columnas, aumentar o disminuir su numero, mientras que modificar la informacion (UPDATE) se refiere a modificar las filas de la tabla.

DROP: Sirve para eliminar tablas.

SELECT: Es tal vez la instruccion mas compleja y mas poderosa de todo sql, su funcion es la de buscar determinada informacion en la base de datos y presetarla para utilizarla con multiples fines.   

Dada la importancia de esta instruccion les dejo un esquema basico de esta:

SELECT [DISTINCT] { * | columna [, columna]}
FROM tabla
[WHERE condicion_de_busqueda]
[ORDER BY columna [ASC|DESC] [,columna [ASC|DESC] ];

Donde:

SELECT es la palabra clave que indica que se va a realizar una seleccion de la informacion.

DISTINCT puede ir o no ir, si se pone indica que no muestre valores repetidos.

COLUMNA es la o las columnas de las cuales nos mostrara informacion.

FROM palabra reservada que indica que lo siguiente es el nombre de la tabla de donde quieres obtener dicha informacion.

WHERE es una instrucion de condicion, puede ir o no ir y si se pone condiciona la busqueda a un parametro como por ejemplo si la tabla es estudiantes podemos indicar que nos muestre todos los estudiantes de 5to semestre.

ORDER BY indica que la informacion se va ordenar ya sea numerica o alfabeticamente deacuerdo a la informacion de la columna o columnas especificadas.

ASC y DESC indica si la informacion se va a ordenar ascendentemente de la a-z o de 1 a-n o desendentemente z-a o de n a 1.