Archive for 2013

Actualización de Workspace TFS 2013

Debido a cuestiones Administrativas a mi equipo le han cambiado tanto el IP como el Nombre.
Inicialmente tuve que desinstalar el horrible Iron Speed el cual es muy exquisito en cuanto a sus validaciones con estos dos datos y si los cambias y no has desinstalado el producto, bueno todo se arruina y luego un lloriqueo con el soporte para que desbloqueen tu cuenta... no viene al tema.
En fin tuve el cuidado de proteger todos mis proyectos en Source Control e indique que todo estaba listo. Posterior al cambio indicado abrí un proyecto el cual me dijo que el Workspace estaba apuntando a otro nombre de equipo (estaba en los planes) así que intente actualizar el nombre con el comando:
tf workspaces /updateComputerName:NombreEquipo /collection:http://Servidor:8080/tfs/DefaultCollection
!!!NO FUNCIONO!!! solo un error:
El área de trabajo Equipo\usuario no se encuentra en este equipo. Si el equipo se cambió de nombre recientemente, el área de trabajo puede actualizarse al ejecutar 'tf workspaces /updateComputerName:oldComputerName'.
OMG!, buscando en google encontré el articulo: The working folder is already in use by the workspace donde la receta es la siguiente:
tf workspace /delete /server:http://Server:8080/tfs/DefaultCollection NombreEquipo;NombreUsuario
A continuación nuevamente:
tf workspaces /updateComputerName:NombreEquipo /collection:http://Servidor:8080/tfs/DefaultCollection

:)


miércoles, julio 31, 2013
Posted by Carlos
Tag :

Calidad del Producto Software y la norma ISO/IEC 25000

La calidad del producto junto con la calidad del proceso son los aspectos más importantes actualmente en el desarrollo de Software.
En calidad del producto recientemente ha aparecido una nueva versión de la norma ISO/IEC 9126: la norma ISO/IEC 25000.
Esta proporciona una guía para el uso de las nuevas series de estándares internacionales, llamados Requisitos y Evaluación de Calidad de Productos de Software (SQuaRE). Su objetivo principal es guiar el desarrollo de los productos de software con la especificación y evaluación de requisitos de calidad. Establece criterios para la especificación de requisitos de calidad de productos software, sus métricas y su evaluación.


  • Funcionalidad - Un conjunto de atributos que se relacionan con la existencia de un conjunto de funciones y sus propiedades específicas. Las funciones son aquellas que satisfacen las necesidades implícitas o explícitas.
  • Idoneidad - Atributos del software relacionados con la presencia y aptitud de un conjunto de funciones para tareas especificadas.
  • Exactitud - Atributos del software relacionados con la disposición de resultados o efectos correctos o acordados.
  • Interoperabilidad - Atributos del software que se relacionan con su habilidad para la interacción con sistemas especificados
  • Seguridad - Atributos del software relacionados con su habilidad para prevenir acceso no autorizado ya sea accidental o deliberado, a programas y datos.

Cumplimiento de normas.

  • Fiabilidad - Un conjunto de atributos relacionados con la capacidad del software de mantener su nivel de prestación bajo condiciones establecidas durante un período establecido.
  • Madurez - Atributos del software que se relacionan con la frecuencia de falla por fallas en el software.
  • Recuperabilidad - Atributos del software que se relacionan con la capacidad para restablecer su nivel de desempeño y recuperar los datos directamente afectos en caso de falla y en el tiempo y esfuerzo relacionado para ello.
  • Tolerancia a fallos - Atributos del software que se relacionan con su habilidad para mantener un nivel especificado de desempeño en casos de fallas de software o de una infracción a su interfaz especificada.
  • Usabilidad - Un conjunto de atributos relacionados con el esfuerzo necesario para su uso, y en la valoración individual de tal uso, por un establecido o implicado conjunto de usuarios.
  • Aprendizaje cc- Atributos del software que se relacionan al esfuerzo de los usuarios para reconocer el concepto lógico y sus aplicaciones.
  • Comprensión - Atributos del software que se relacionan al esfuerzo de los usuarios para reconocer el concepto lógico y sus aplicaciones.
  • Operatividad - Atributos del software que se relacionan con el esfuerzo de los usuario para la operación y control del software.

Atractividad

  • Eficiencia - Conjunto de atributos relacionados con la relación entre el nivel de desempeño del software y la cantidad de recursos necesitados bajo condiciones establecidas.
  • Comportamiento en el tiempo - Atributos del software que se relacionan con los tiempos de respuesta y procesamiento y en las tasas de rendimientos en desempeñar su función.

Comportamiento de recursos

  • Mantenibilidad - Conjunto de atributos relacionados con la facilidad de extender, modificar o corregir errores en un sistema software.
  • Estabilidad - Atributos del software relacionados con el riesgo de efectos inesperados por modificaciones.
  • Facilidad de análisis - Atributos del software relacionados con el esfuerzo necesario para el diagnostico de deficiencias o causas de fallos, o identificaciones de partes a modificar.
  • Facilidad de cambio - Atributos del software relacionados con el esfuerzo necesario para la modificación, corrección de falla, o cambio de ambiente.
  • Facilidad de pruebas - Atributos del software relacionados con el esfuerzo necesario para validar el software modificado.
  • Portabilidad - Conjunto de atributos relacionados con la capacidad de un sistema software para ser transferido desde una plataforma a otra.
  • Capacidad de instalación - Atributos del software relacionados con el esfuerzo necesario para instalar el software en un ambiente especificado.
  • Capacidad de reemplazamiento - Atributos del software relacionados con la oportunidad y esfuerzo de usar el software en lugar de otro software especificado en el ambiente de dicho software especificado.
  • Adaptabilidad - Atributos del software relacionados con la oportunidad para su adaptación a diferentes ambientes especificados sin aplicar otras acciones o medios que los proporcionados para este propósito por el software considerado.

Co-Existencia
La subcaracterística Conformidad no está listada arriba ya que se aplica a todas las características. Ejemplos son conformidad a la legislación referente a usabilidad y fiabilidad.
Cada subcaracterística (como adaptabilidad) está dividida en atributos. Un atributo es una entidad la cual puede ser verificada o medida en el producto software. Los atributos no están definidos en el estándar, ya que varían entre diferentes productos software.
Un producto software está definido en un sentido amplio como: los ejecutables, código fuente, descripciones de arquitectura, y así. Como resultado, la noción de usuario se amplía tanto a operadores como a programadores, los cuales son usuarios de componentes como son bibliotecas software.
El estándar provee un entorno para que las organizaciones definan un modelo de calidad para el producto software. Haciendo esto así, sin embargo, se lleva a cada organización la tarea de especificar precisamente su propio modelo. Esto podría ser hecho, por ejemplo, especificando los objetivos para las métricas de calidad las cuales evalúan el grado de presencia de los atributos de calidad.
Métricas internas son aquellas que no dependen de la ejecución del software (medidas estáticas).
Métricas externas son aquellas aplicables al software en ejecución.
La calidad en las métricas de uso están sólo disponibles cuando el producto final es usado en condiciones reales.
Idealmente, la calidad interna no necesariamente implica calidad externa y esta a su vez la calidad en el uso.
Este estándar proviene desde el modelo establecido en 1977 por McCall y sus colegas, los cuales propusieron un modelo para especificar la calidad del software. El modelo de calidad McCall está organizado sobre tres tipos de Características de Calidad:
Factores (especificar): Describen la visión externa del software, como es visto por los usuarios.
Criterios (construir): Describen la visión interna del software, como es visto por el desarrollador.
Métricas (controlar): Se definen y se usan para proveer una escala y método para la medida
martes, julio 30, 2013
Posted by Carlos

Relatividad


martes, mayo 28, 2013
Posted by Carlos

Un clásico...


Trabajas en horas extrañas. ¡Como las putas!
Generalmente trabajas hasta tarde. ¡Como las putas!
Generalmente eres más productivo por la noche. ¡Como las putas!
Te pagan para mantener al cliente feliz. ¡Como las putas!
El cliente paga mucho más pero tu jefe se queda con casi todo el dinero. ¡Como las putas!
Cobras por hora pero tu tiempo se extiende hasta que termines. ¡Como las putas!
Si eres bueno, nunca estás orgulloso de lo que haces. ¡Como las putas!
Te recompensan por satisfacer las fantasías de tus clientes. ¡Como las putas!
Es difícil tener y mantener una familia. ¡Como las putas!
Cuando te preguntan en qué trabajas no lo puedes explicar. ¡Como las putas!
Tus amigos se distancian de ti y tú sólo andas con otros igual que tu. ¡Como las putas!
El cliente paga tu cuenta del hotel y por horas trabajadas. ¡Como las putas!
Tu jefe tiene un buen coche. ¡Como las putas!
Cuando vas a hacer una "asistencia" al cliente estás óptimo. ¡Como las putas!
Pero cuando vuelves pareces haber salido del infierno. ¡Como las putas!
Evalúan tu "capacidad" con horribles pruebas. ¡Como las putas!
El cliente siempre quiere pagar menos y encima quiere que hagas maravillas. ¡Como las putas!
Cada día al levantarte dices "NO VOY A HACER ESTO TODA MI VIDA!!!" ¡Como las putas!
Sin conocer nada de su problema los clientes esperan que les des el consejo que necesitan. ¡Como las putas!
Si las cosas salen mal es siempre culpa tuya. ¡Como las putas!
Tienes que brindarle servicios gratis a tu jefe, amigos y familiares. !Como las putas!
Posted by Carlos
Tag :

Restaurar BD con script




USE [master]
GO
ALTER DATABASE [BD] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
RESTORE DATABASE [BD] FROM  DISK = N'Archivo.bak' WITH  FILE = 1,  NOUNLOAD,  REPLACE,  STATS = 5
GO

lunes, mayo 13, 2013
Posted by Carlos

Lecciones de historia

Estuve leyendo La gran mentira del genocidio español en América y no puedo hacer nada mas que compartir mi indignación acerca del tremendo disparate ahí escrito.
Ahora resulta que como España tiene una deuda eterna con Roma por el legado dejado, América también tendría una deuda con nuestros benefactores.
Y es que al leer solamente el libro Brevísima relación de la destrucción de las Indias  podemos darnos cuenta de que ha sucedido realmente.

...en un periodo de dos siglos, se estima que murieron ocho millones en la mina de Potosí, Bolivia, apodada en 1550 La Boca del Infierno, cinco años después de haber sido “hallada” por los españoles. Este número aterrador de vidas perdidas se justificó a base del imperialismo de la Corona y la Iglesia española. La sangre de los indios y la plata de su territorio financiaron las sangrientas guerras católicas de Carlos V y su hijo Felipe II. Y Potosí solo queda siendo una mina entre varias que se fueron explotando a lo largo y ancho del continente americano durante la época colonial. Se dice que la plata explotada de Potosí durante este periodo hubiera podido hacer un puente desde Potosí hasta España. Los huesos de los muertos bastarían para construir un puente de regreso....

A la Madre Patria.. gracias por el legado Hijos de Puta...


lunes, abril 15, 2013
Posted by Carlos
Tag :

Guía Del Programador Pragmático

Cuida tu obra de arte
¿Por qué desperdiciar tu vida desarrollando software si no te preocupas en hacerlo bien?
¡Piensa!, sobre tu trabajo
Desconecta el piloto automático y toma el control. Critica y evalúa constantemente tu trabajo.
Proporciona opciones, no excusas
En vez de excusas, propón opciones. No digas que no se puede hacer algo, explica mejor lo que sí puedes hacer.
No vivas con ventanas rotas
Corrige malos diseños, decisiones equivocadas y el código mal escrito cuando lo veas.
Sé un catalizador para cambios
No puedes forzar que la gente cambie. En vez de eso,muestra cómo podría ser el futuro y ayúdales a participar en tu creación.

Recuerda el "Gran Cuadro"
No te obsesiones con los detalles porque hacen olvidarte de lo que ocurre alrededor.
Haz de la calidad un requisito imprescindible
Involucra a los usuarios para determinar las necesidades de calidad reales del proyecto.
Invierte regularmente en conocimiento
Haz de aprender un hábito
Analiza de forma crítica lo que lees y escuchas
No te dejes convencer por vendedores, dogmas o medios. Analiza la información en tus términos y en basada en tu proyecto.
Importa tanto lo que dices como la forma de decirlo
No tiene sentido tener buenas ideas si no las transmitimos con eficacia.
No te repitas
Cada pieza de conocimiento debe de tener una única e inequívoca representación dentro de un sistema.
Hazlo fácil de reutilizar
Si es fácil de reutilizar, la gente lo hará reutilizable. Crea un entorno que apoye la reutilización.
Elimina los efectos entre cosas no relacionadas
Los componentes de un diseño son autónomos, independientes y tienen un único propósito bien definido.
No hay decisiones finales
Las decisiones no se deben grabar en una piedra, sino en la arena de la playa. Cualquier decisión debe ser susceptible a cambio.
Tracea para llegar a to objetivo
Haz distintas pruebas y tracea los resultados para ver cómo se van compenetrando para llegar a nuestro objetivo.
Usa prototipos para aprender
Crear prototipos es un experiencia para el aprendizaje. Su valor no reside en el código generado, si no en las lecciones que aprendes al crearlo.
Programa cerca del dominio
Diseña y programa usando el mismo lenguaje usado por el usuario.
Haz estimaciones para evitar sorpresas
Haz una estimación antes de empezar. Podrás adelantarte a los posibles problemas futuros.
Sincroniza tu agenda con el código
Usa la experiencia que vayas ganando para refinar las escalas temporales de entrega del proyecto.
Siempre controla el código fuente
El control del código fuente es una máquina del tiempo, siempre puedes volver atrás.
Arregla el problema, no la culpa
No importa de quién o de qué es la culpa, sigue siendo un problema de todas formas y todavía necesita ser reparado.
No te asustes de depurar
Respira profundamente y PIENSA en la causa del error.
No asumas nada, pruébalo
Prueba tu hipótesis en el entorno actual que tengas, con datos reales y condiciones límites.
Escribe código que escriba código
Los generadores de código aumentan la productividad y evitan la duplicación.
No se puede escribir el software perfecto
El software no puede ser perfecto. Protege el código y a los usuarios de errores inevitables.
Diseña con contratos
Recurre a los contratos para documentar y comprobar que el código hace realmente lo que tiene que hacer.
Error tempranero
Un error cuanto antes sea detectado mejor, hará menos daño que aquel que se detecte tarde, hará que creemos que la aplicación funciona.
Excepciones para los problemas excepcionales
El abuso del uso de excepciones pueden convertir tu aplicación en poco legible y sostenible  Usa las excepciones para casos excepcionales.
Acaba lo que empiezas
Siempre que sea posible, terminar la funcionalidad en el día que fue comenzada y no dejarla para después.
Configura, no integres
Implementa las opciones para una tecnología usando opciones de configuración.
Diseña servicios de uso
Diseña en términos de servicios independientes.
Separa las vistas desde los modelos
Gana flexibilidad a bajo coste diseñando tu aplicación en términos de modelos y vistas.
Usa pizarras para coordinar el flujo de trabajo
Usa las pizarras para coordinar agentes y hechos dispares, manteniendo la independencia y el aislamiento entre los participantes.
No programes por coincidencia
Confíe sólo en las cosas confiables. Ten cuidado con la complejidad accidental, y no confundas una feliz coincidencia con un plan organizado.
Haz una estimación del orden de tus algoritmos
Ten una idea de la longitud de las cosas antes de empezar a escribir código.
Prueba tus estimaciones
El análisis matemático no te lo dice todo. Prueba el tiempo consumido por tu código en su entorno final.
Refactoriza pronto, refactoriza a menudo
Así como quitas las malas hierbas de un jardín y lo reorganizas, reescribe, haz de nuevo y rediseña el código cuando sea necesario. Arregla la raíz del problema.
Diseño a prueba
Empieza a pensar en las pruebas antes de escribir una línea de código.
Prueba tu software, o lo harán tus usuarios
Prueba sin piedad. No hagas que los usuarios encuentren los errores por ti.
No uses generadores de código que no comprendas
Los asistentes pueden generar montones de código. Asegúrate de entender todo antes de incorporarlo a tu proyecto.
No reúnas requisitos, búscalos
Los requisitos rara vez están en la superficie. Están enterrados bajo capas de supuestos, conceptos erróneos y política.
Trabaja como un usuario para pensar como un usuario
Esta es la mejor forma de conocer cómo funciona el sistema que utilizarán realmente.
Usa un glosario del proyecto
Crea y mantén una única fuente de todos los términos y vocabulario específico de un proyecto.
Empieza cuando estés listo
Has ido adquiriendo experiencia toda tu vida. No ignores las dudas que te puedan surgir.
Algunas cosas son mejores cuando las acabas que cuando se describen
No caigas en la espiral de las especificaciones, en algún momento tenemos que empezar a programar.
Encuentra errores una sola vez
Una vez que los probadores (humanos) encuentran un error, esta debe de ser la última vez que se encuentra. A partir de ahora tienen que ser las pruebas automáticas las que comprueben los errores.
De forma gradual, aumenta las expectativas de los usuarios
Cuando comprendas las expectativas de los usuarios, entonces es el momento de ofrecer un poco más.
Firma tu trabajo
Los artesanos de la Edad Media se sentían orgullosos de firmar su trabajo. Tu también deberías.



Traducción libre de:
"The Pragmatic Programmer" by Andrew Hunt and David Thomas
Published by Addison-Wesley, Oct 1999
ISBN: 020161622X
miércoles, abril 03, 2013
Posted by Carlos

Populares!

- Copyright © - Oubliette - -Metrominimalist- Powered by Blogger - Designed by Johanes Djogan -