Hace unos años una pequeña empresa con librerías en GIT / GITHUB fue amenazada de ser demandada por otra empresa, asi que lo que hizo fue quitar todos su repositorios, provocando con ello problemas en muchos lugares, creo que hasta en kernel de linux, porque esta persona era sin saberlo la fuente de las rutinas left y right.

Composer actualiza las librerias de terceros. No me gusta usarlo por varias razones. De momento estoy en un server con problemas de SSH.

https://web.archive.org/web/20170710204208/https://www.codeenigma.com/build/blog/do-you-really-need-composer-production

  • large VCS repository size and diffs when you update code;
  • duplication of the history of all your dependencies in your own VCS; and
  • adding dependencies installed via git to a git repo will show them as submodules.

Asi es. La gente en general no se da cuenta que cambio de versiones  de PHP o de servers pueden tener problemas, pero activar composer a lo bestia no es buena idea aunque sea de moda.

Otro comentario en otra pagina menciona el problema del bloqueo de GIT por interfases firewall, o el consumo de ancho de banda en malas conexiones.  Despues de eso comentan:

https://www.ostraining.com/blog/coding/composer-cms/

«Composer has a myriad awful problems asides from attitudes, it has technical problems. I basically feel the same overall. I’ll point out the great firewall of chine problem has quite a large scope and isn’t entirely on composer though when it pulls stuff from git that is a questionable model as opposed to its own repository system.»

 

I don’t like the term but it generally is a best practice to not have builds depend on external resources.

When updating (resolving dependencies), it uses gigabytes of memory and that really makes no sense. It’s gotten slightly better in new versions but it’s still dog slow and really quite amazing just how much resources it needs. Out of a dozen package managers for different languages and operating systems there’s nothing at all approaching composer in terms of resource consumption. When it takes a couple minutes and over 4GB of RAM to upgrade a single package that’s just not acceptable.

Whoever thinks a system that takes several minutes and huge amounts of RAM to resolve dependencies in cases that should not be difficult needs their brain examined.

 

http://www.pcworld.com.mx/Articulos/24977.htm

https://web.archive.org/web/20130323085502/http://www.pcworld.com.mx/Articulos/24977.htm

http://www.elmonetario.com.mx/?p=33774

 

 

El departamento de seguridad interior de USA recomienda desinstalar Java. En lo personal siempre evito java al máximo. En algunas ocasiones ya he tenido que revisar sistemas hechos con librerías como node.js, jquery , y frameworks como struts o backbone.

EL sistema mas «intensivo» que he hecho en java los ultimos años es justamente el dashboard pero por requisitos del cliente, para hacer las sumas de una celda a otra no queda de otra si queremos usar look and feel de excel (en lo personal creo que para esa aplicación Visual Basic o .net les resultaría mejor, pero es decisión del cliente)

Normalmente es raro ver una tabla de datos de mas de cien campos.

Hace unos doce años me tocó modificar un sistema para Lucent Technologies que usaban para dar seguimiento a sus labores para Alestra y AT & T.

En aquella época acababa yo de salir de las gaseras, y justamente se llevaba tiempo trabajando con Eduardo en la primera Razón social. Nunca supe que pasó en cuanto al diseño pero un día me dicen que tenian problemas con un «brinco de registros» en un software de Visual Basic 5.0 para MSSQL 6.5 que era MARAVILLOSO en concepto, que se le había desrrollado y puesto a Lucent y en el que no tuve que ver en su formación.

Al poner manos a la obra resultó que como pensé, los programadores de Eduardo estaban usando DAO en lugar de ADO (y una orden en RDO que por entonces era imposible hacer en ADO de Alter Tables). El problema se debía a que los programadores esperaban 7.0 y se encontraron con problemas del collation.

Pero como iba diciendo, ya que arreglé el software y con tiempo libre por no estar en las gaseras, revisé con calma la base de datos y se usaba una tabla con mas de 700 campos.

El problema era único y la respuesta era eficiente y manejarlo por maestro detalle era de locos. En pocas palabras el objetivo del programa era controlar unos 600 datos de una «hoja central» donde guardaban todo el control de calidad y numeros varios de las ordenes de trabajo. Y no todas las personas, de todo el mundo, podían ver todos los campos, y algunas personas tenían derechos de escritura sobre algunos campos. Así que lo que se hacía era que, el instalador jefe por ejemplo tenía una vista de supervisión donde el y solo el podía poner la fecha de terminación, pero no veía nada de aduaanas, y el agente aduanal por decir algo, podía dar alta de las columnas aduanales relacionadas con la orden de trabajo.

A final de cuentas era una sola tabla consultada por unos cuarenta perfiles diferentes de usuarios que tenian acceso de consulta a solo lo que debían ver. Era correcto hacerlo de ese modo porque cada tres o cuatro semanas salían nuevos controles de calidad y mantener un maestro detalle para sesenta perfiles era una labor estúpida. Mucho mas fácil hacer que los nuevos campos fueran invisibles para todos, e irles dando los derechos como si fuera una red Banyan Vines ( http://en.wikipedia.org/wiki/Banyan_VINES ) en base a negación inversa

Después de aquello, nunca pensé que me iba a encontrar con la necesidad de hacer mas de 100 campos.

Justamente me estoy peleando con un software de control de produciión con dos líneas de producto pero que maneja mas de 400 parámetros dependiendo de las diferentes lineas de producción. Y como los totales deben ir en el resumen principal, lo mas sensato era una sola tabla, sobre todo porque simplifica los 200 campos informativos en sumas de javascript y se está simulando una hoja de excel que manejaban antes.

Mañana o pasado tengo que generar elementos de muestra simulando un año de producción, y empezar a graficar la captura.

Esta semana va a ser de las mas pesadas del mes. Espero para finales del 24 estar mas tranquilo.

Desde hace unos años tuve que decidir entre usar notepad++ y pspad, editores de texto para windows. Cuando uso linux suelo usar aptana.

Por lo general solo uso notepad ++ cuando tengo que editar archivos de varios mb, como 320 mb en adelante. Gracias a pspad y su sistema de cache temporal, no se perdio nada del cliente principal/trabajo anterior.

Mi proveedor de todas maneras sigue haciendo la recuperación, pero ya probé y se guarda perfecto en la base de datos, todo esta tranquilo.

Vale la pena usar este proveedor: Esta es la segunda vez que necesito un servicio de este tipo, y la vez pasada fue porque una programadora del trabajo anterior le dio en la torre a un directorio completo y era mas rápido un respaldo de modulo que descargar y descompactar 15 gb de respaldo de ese sitio

En el año 1997 tomé mis primeros cursos de sql server. En el 2000 me tocó ver como autorizaron la licencia a un sistema inútil, mientras que yo debía usar dbfs.

Poco después me tocó la implantación y cambios en Lucent a un sistema que estaba pensado para trabajar en SQL Server 6,5 y se migró a 7. Recuerdo esas noches hasta altas horas de la madrugada, alterando el código ajeno que se conectaba por DAO y visual basic a nivel internacional, esas jornadas maravillosas mientras mis manos cambiaban, por si las dudas, no solo enlaces por ADO bajo MSDE 2.6 o 2.8, sino la sintaxis de los campos ajenos para usar mayúsculas, y no tener problemas si en el cambio se perdía el valor que hacía intercambiables como finalmente sucedió.

Esas mañanas al ver el sistema funcionando bajo 7.0, el levantar en pocos días el sistema de jueces, la sobriedad de unas ordenes de consola acariciadas por el nuevo Service Pack….

Mas adelante la labor en la empresa de alimentos, habiendo sido contratado para programar, y dedicando los siguientes tres años a mantener vivo un servidor agonizante por problemas de antiguos proveedores el as 400 apagado, y cada mañana, de manera clara, durante un mes y medio, levantando de la nada el sql2000 con sus service packs y los soportes AWE, para unos minutos después, con tristeza, ver como la bestia de 4 terabytes de disco duro y 16 gb de ram, en el 2006, caía de rodillas bajo el influjo de ese software basura llamado Dynaware.

Esa experiencia de levantar el servidor cada mañana durante semanas; un trabajo coordinado de tres hombres, y al filo de las siete de la mañana, mientras sabíamos que se aproximaba a su muerte por ese día, el humilde servidor sql 7, levantado por milagro, para enfrentarse a la decadencia de un software basura, dynaware, por solamente el esfuerzo de un hombre.

Y la victoria, cuando conseguí a través de la ciega suerte, que otro proveedor nos ayudara , de maner gratuita, a migrar su software de recursos humanos, que si funcionaba, a otra computadora mas poderosa.
y el ver a la pc que mantuve viva por varios años, y el nuevo servidor
normal, enfrentarse al coloso que caía de rodillas por la estupidez de
un software que usaba ODBC para mas de 32 usuarios.

El triunfo.

Salir de ese lugar , sabiendo que las computadoras se anulan entre sí y que importa mas el hombre, me vi obligado a alejarme por un tiempo de sql server 2000, olvidando la dulzura de procedimientos almacenados, integridad referencial y respaldos gigantescos a través de los mdf y ldfs…

Después el ver en otros lugares los problemas de progress, los pininos de mysql, y luego, otra vez, como un huracán, el sistema de control de cotizaciones, ordenes de compra, autorizaciones y el poder de una cadena de insumos encadenado a una base de datos SQL 2000… para descubrir que quien encargó el sistema no sabía que en realidad todo lo demás de la empresa corrían con sql 7, y que se habían invertido dos años( en parte mios) para hacer que el active directory hiciera lo deseado….. Mas noches revisando los respaldos, y decidiendo como hacer que coexistieran ambos servidores sql en una de las redes mas infames que el mundo haya visto, y la decisión haciéndose lógica:

Crear los usuarios al vuelo desde Visual Basic y después PHP. Olvidar los SA y la clave maestra: el trazado a través de triggers específicos que ligaban a la bitácora incluso las modificaciones desde consola, ver nacer y morir los usuarios de sql por el producto de mis manos…..

Mañanas de ver como el sistema ordenaba el viaje por avión, calculando
la disponibilidad, las pantallas lanzandose al vuelo del director general, para que autorizara la ganadora de tres cotizaciones, el poder de aceptar una partida de cada una, mientras en la lejanía el rugido del sistema y la planta , producto de la mente de un hombre, recordaba el poder de un ser humano; ser de aquellos hombres que hacían moverse los sistemas SCADA, decidir que se apagaba por si solo, viendo a los obreros, sin producto de su mente, pero a diferencia de las sectas destructivas, dispuestos a trabajar en algo real, y ver como, al nivel de su capacidad, esos obreros anónimos daban lo que podían dar en el mundo real, sabiendo que yo ganaba lo de 20 obreros, a pesar que los alimentos de la fábica eran los mismos; obreros: personas simples pero dispuestas al trabajo, ajenos a las fantasías de mentes enfermas, mismos que través de los ajustes manuales al producto de las redes SCADA que yo controlaba, eran personas productivas mientras que el clamor de una mente depuraba los puertos seriales RS435 y sus limitaciones.

¿Como pude olvidar esas depuraciones ? Esas semanas de entender vistas
creadas por integridades referenciales de cuatro campos por tabla que a su vez eran llave, ese eliminar las vistas creadas por personas que pensaban que así escapaban de una red infame… y después, cayendo, una por una todas las vistas menos dos, mientras que el sistema de triggers era capaz de registrar en bitácora lo sucedido en la consola….

Mañanas y noches hermosas , mientras los hornos de las fábrica con su estruendo eran la música que superaba nuestras voces…

Y después… adiós !

Saber que las cadenas de conexión de ADO se dejaban de lado, me era
doloroso, a pesar que lo siguiente era usar mi software en PHP demostrando que lo que fallaba eran los protocolos de la red: Que tcp/ip era como un rayo, mientras que los protocolos establecidos por la disparidad de las pc que eran los clientes de los servidores, llevaban ese sistema a su conclusión.

Supongo que fue por esas fechas que empecé a recibir encargos de sistemas bajo mssql server y mysql al mismo tiempo, lo cual no es problema si se mantiene el modelo vista controlador, en lugar de un malentendido proceso por capas, en el que programadores noveles tratan de meter las reglas de negocio en una base de datos. Es decir, el poder de los procedimientos almacenados no debe usarse para casarse con una base de datos, sino para lo que es.

En cierto modo hacer sistemas portables entre distintos motores de bases de datos, me salvó cuando empezaron los problemas de compatibilidad de sql 2008 y windows vista; esas interfaces infames de sql 2005 en el cual la compresión de base de datos se hacía por scripts y no por opciones de menú no era lo mas sano, pero ese sacrilegio que hicieron las primeras versiones de sql 2008 con la importación de textos planos, y los problemas con los nulos, mas la carencia de interfaz, me llevaron una vez más a añorar el poder de la interfaz nativa de sql 2000.

Y entonces vino el momento. Decidir dejar si una topología de red, profanada se llevaba mi esfuerzo, migraba a un sql2008 con demasiados recursos y costo mas alto y con menos prestaciones, o pasar a algo mas duro: ORACLE y sus sinónimos.

Abandoné sql server 2005 en adelante.

Despues de todo, fueron tantas las versiones que instalé de servidores hp con cinco licencias gratuitas de sql 2000 incluidas, que pasar a 2005 era estupidez económica además de sacrilegio.

Y esas mañanas se fueron, los sueños con Store Procedures fueron cambiados por Grants y repman.

Ahora, años después de eso, veo frente a mi, a mi alcance, la posibilidad de un desarrollo adicional sobre sql 2000, así que en los próximos años, el regreso de trabajo real sobre sql 2000 en una base de datos que
crecerá de sus 10 gb actuales….

Es hermoso ver el futuro… sentir aproximarse los grants a través de php, y saber que los usuarios serán creados al vuelo, y que las bitácoras permitirán asegurarnos otra vez los controles HIPAA. (sabiendo que la falta de interfaz gráfica de sql 2005 para la compresión y detección de errores hace a sql2000 mucho mejor que el 2005)

Y entonces… en este nuevo lugar, sabiendo que la importación de csv hace suicida usar sql 2005 en adelante, me he acercado con temor al conmutador de teclados en el cuarto de servers, y bajo mis manos la orden @@version regresa el número 2039. Sql 2000 con los service pack instalados.

Que belleza !

Y ahora, sigue lo normal del producto de una mente, y de trabajo de una mente experimentada, sin interferencia de protocolos blasfemos, y teniendo las copias de seguridad iniciando por si solas, mientras el sistema de discos externos iomega de 160 gb, decretan por si solos el inicio y el fin de un nuevo día, como un moderno Dios.

Bienvenido SQL 2000 sp4, de regreso a mi vida: Ahora será bajo Php 5.3 y yo me encargaré de eliminar las vistas infames y crear de mis manos triggers y store procedures para en un futuro mandar SMS por nextel
cuando algo pase a los SCADA, haciendo portable con mysql y Oracle, mientras que los fines de semana estaré viendo el producto en mi mesa llena, con productos que ayudé a crear, alimentandome nuevamente , de manera plena, con el producto de una mente, pero ahora al servicio de una
PYME propia, y no como años atrás, bajo el comando de topologías
infames !

Envié este correo hace unos años en otra empresa al tomar posesión de mi puesto de jefe de desarrollo. Tiene varias ideas, que es justo lo que falta aquí aunque no funciona en los ambientes empresariales viciados.

Notese que permite scrum y continuidad de negocio.
=======================================
Para poder comunicarme de manera rápida con las personas de desarrollo,
elaboré un mecanismo que me permite fijartes tareas diarias, y que reporten tener terminadas las tareas, además de concentrar informacion util y clasificarla.

Despues de pensarlo un poco, encontré que la mejor manera de llevar a la
vez un control de documentos / control de versiones / knowledge Base, era
implementar un Repositorio mediante un foro gratuito, que usuarios externos no pueden ver.

Ya se esta parametrizando la información, y necesitaba hacer esto como paso previo para poder poner en la knwoledge base la documentación tecnica del proyecto. Los niveles de visibilidad no estan funcionando todavia ( voy en proceso ), pero la idea basica es usar un subforo como si fuera un gabinete y asi las intrucciones especificas a programadores se guardan en su propio gabinete. Ademas no tienen derecho a editar, por lo cual la implementación es segura y podemos funcionar inclusive en caso de incendio, robo o algo que nos deje sin equipos de computo. La continuidad del proyecto estaría asegurada.

De manera temporal he implementado el repositorio en base a usuarios que
son las INICIALES de cada persona, y solo los usuarios pueden ver el contenido.

Le he reservado la clave de usuario:
admin
password *************

http://*********/foros/

Creo que sería conveniente darlo de alta a usted como usuario ( igual con
iniciales y le ponemos nivel de administrador), por si quiere añadir o
consultar datos de las labores que se estan desempeñando. El alta de usuario se maneja en http://*************

Me tomé la libertad de añadir a **** al repositorio, y así ella misma
podrá ver el cumplimiento de obejtivos, el trabajo realizado diariamente e
información en general que pueda serle util.

aclaraciones:

1 ) Este es un trabajo en formación:
2 ) Estoy en proceso de realizar la documentación tecnica sobre alcances.
3 ) Instalaré Skype mañana jueves.

En espera de sus comentarios y sugerencias.
Gracias.

Hace una semana alguien consciente de la seguridad decidió cambiar el acabado de presentación visual de la empresa pero de pilón causó problemas que nadie esperó.

Cuando llegamos a estas oficinas, me pareció excelente el acabado tipo loft (http://es.wikipedia.org/wiki/Loft) en lugar de las típicas oficinas oscuras o estilo Dilbert (llena de casilleros). La principal razón o ventaja de ser Loft para mí, era la rapidez que implica en certificarnos en ISO 17799 0 27002 y hasta en HIPAA aunque nuestro sector no aplica a derivados de la salud humana aunque incidentalmente tratamos con el IMSS.

http://privacy.med.miami.edu/glossary/xd_iso_phys_env_sec.htm

La idea básica era que cualquier auditor podía desde afuera ver nuestro cumplimiento de la norma y seguridad (menos el server de una de las unidades de negocio) que está a proposito fuera de la vista.

De cara a la escalera y al elevador tenemos unos paneles de vidrio que cubren en total unos 2 metros 30 por 9 metros, y los vidrios de los extremos de la oficina son poco vulnerables a robos, tanto por las alarmas como por la altura. El problema es que por el ángulo y el tipo de vidrio se concentra el calor en ocasiones.

Y a una persona se le hizo facil mandar polarizar el vidrio del panel largo, supuse que para poner un logo polarizado de las empresas del grupo pero no, la barrera de 2 metros 30 por 9 metros ahora está polarizada en su totalidad y nos estamos asando.

De pasada la certificación de iso 27002 nos exigirá comprobaciones adicionales.

Sigo sin ver el caso de polarizar el vidrio, aunque entiendo que otras empresas del edificio se sorprendan por el número de laptops y el haberlo vuelto loft. Recuerdo haber visto en ocasiones dos o tres personas sorprendidas viendo los pizarrones de cristal y relieve y las cámaras por todas partes.

Vi la posibilidad que traten de implementar scrum en el trabajo. Esto sería recomendable pero un poco estúpido.

Yo tuve Scrum funcionando en el área hasta que los cambios del corporativo (24 nov) dejaron fuera esa manera de trabajar. Curiosamente varias comunidades en línea y dos razones sociales que manejo usan la misma fecha pero este no es un evento relacionado.

Lo extraño del caso es que , como dije, Tanto SAEM como XFB y AGB ya estaban usando Scrum con su lista de labores del día, pendiente del día y demás. Todo en basde al procedimiento, sabiendo que era SCRUM pero sin decirlo. Funciona.

Hace unos años empezó este problema en varias consultorías que he visto. Personas que tienen idea de vocabulario, escupen metodologías y no implementan ninguna. En este caso, no solo están regresando al repositorio, sino que supongo se darán cuenta de que ya estaba implementado 5s y CMMI 2, además de los 12 pasos de Joel on Software (entre otras).

No me gusta decir se los dije, pero como se los dije, probablemente usen otra metodología y no Scrum.

Un resumen de Scrum tomado de :
===================================================
http://www.ingenierosoftware.com/equipos/scrum.php

estión de proyectos con SCRUM

Por Joaquin Gracia
4 de Septiembre de 2006

¿Qué es SCRUM? SCRUM es una forma de gestionar proyectos de software. No es una metodología de análisis, ni de diseño, como podría ser RUP, es una metodología de gestión del trabajo.

Una de las características más importantes es que es muy fácil de explicar y de entender, lo que ayuda mucho a su implantación.

Por otra parte SCRUM puede ser aplicado a distintos modelos de calidad (como podría ser CMMI) puesto que estos te dicen qué tienes que hacer, es decir, te dicen que tienes que gestionar el proyecto, pero no te dicen cómo. Ahí es donde entra SCRUM como modelo de gestión del proyecto.

Pero vamos a la materia, los siguientes son los elementos básicos de SCRUM.

Una lista con las funcionalidades de la aplicación ordenadas de mayor a menor importancia. Esta lista se llama «Product Backlog». No hace falta que esta lista contenga todas las funcionalidades inicialmente.

De la lista anterior, se toman las primeras funcionalidades, se descomponen en tareas y son anotadas en una lista que se llama «Sprint Backlog». Estas tareas serán realizadas en el siguiente mes.

Además de estos elementos tenemos unas cuantas reglas básicas y sencillas que tenemos que cumplir.

Una vez que se pasan las tareas más prioritarias del «Product Backlog» al «Sprint Backlog», estas no se pueden cambiar, esto quiere decir, que el trabajo de un mes queda fijado. Esta es la regla más importante de todas.

Al final del mes, este periodo se le llama «Sprint», se tiene que tener un ejecutable con las funcionalidades del «Sprint Backlog».

Todo el mundo puede añadir funcionalidades al «Product Backlog», pero sólo una persona puede ordenarlo. A esta persona se le denomina «Product Owner». Es el responsable del producto final.

Cada día se hace una reunión de menos de 15 minutos, en la que se reúne todo el equipo: ingenieros y gestor (llamado «Scrum Master») en la que cada miembro del equipo expone sólo los siguientes temas:
¿Qué es lo que se hizo el día anterior?
¿Qué es lo que se va a hacer hoy?
¿Qué impedimentos tengo para realizar mi trabajo?
Sólo se tratan estos temas para que la reunión sea rápida y no malgastemos el tiempo de los demás. Si se tiene que tratar otro tema se hace otra reunión sólo con las personas implicadas. ¿Recordáis la serie de TV «Canción triste de Hill Street» en la que el sargento tenía una reunión matutina con sus agentes y que terminaba con un «Tengan cuidado ahí fuera»? pues viene a ser algo parecido.

Al final del mes, es decir, al final del Sprint, se presenta el producto y se toma del «Product Backlog» ordenado las funcionalidades para cubrir en el siguiente mes.
Básicamente esto es todo. Como podéis observar las reglas son sencillas y claras.

La duración del Sprint se puede modificar. Hay gente que prefiere Sprints más largos al comienzo, mes y medio o dos meses, ya que al principio cuesta más obtener un ejecutable y al final Sprints más cortos, una semana o dos, cuando se está en la fase final de refinamiento. Pero básicamente el proceso es el mismo de principio a fin.

Para gestionar el proyecto sólo necesitamos dos listas, el «Product Backlog» y el «Sprint Backlog». Podemos usar Excel para manejarlas.

El día de ayer tuve que apoyar a los que están implementando. De las cinco implementaciones de ayer, una de ellas no LEYO los requerimientos de nuestro software. Por una parte del sistema de deployment hecho por una tercera persona, es necesario o un Linux Debian, o Windows XP pro.

En días anteriores no se pudo instalar en un usuario que tenía servidor Mandrake Bluebird (casi 5 años), por conflictos en el deployment tanto como el manejo de UTF 8.

El caso es que ayer, al conectarme con estos cinco clientes, uno de ellos tenía uno de los mejores servidores que he visto en años, de rapidez y configuración…. y le tuvimos que pedir otra PC, por la necesidad de Win XP pro.

Lo bueno es que entendió.

Lo malo, es que se castigue a administradores decentes como ese, para ser compatibles con nuestro deployment. Menos mal que yo solo hice el diseño básico del sistema, tres de los submódulos, todo el manejo de catálogos y la configuración atómica de de nuestra sincronización entre servidores de cliente y el nuestro.

Por el momento, aunque ayer me fui a las 9 porque no tenía caso que me quedara al no estar relacionado con los XML ni pdfs, las personas que se quedaron a velar ya se les ve mucha cara de sueño, y el problema se pudo haber prevenido tomando solo una hora de comida desde hace un mes por parte de los que se quedaron a velar.