LLevo unas dias teniendo problemas al sacar respaldos del sitio del corporativo donde trabajo. Cuando lo saco desde mi casa, sale bien pero desde el trabajo no. Ya probe con diferentes passwords , ips, laptops, pero es igual. Creo que hay un caso de MITM o de paquetes perdidos por errores de configuración de Linksys, o por exceso de puertas de enlace. Algunos sitios tardan bastante en responder.

Por si las dudas, deberé cambiar todas mis passwords de acceso a servidores, ya que utilizo a veces para hacer pruebas esta conexión.

Las implicaciones básicas serán escribir en la noche, no de día. Probablemente también deba migrar algunos sitios extras al cluster lobonegro.

Mañana sera un dia de junta completa, de todo el dia, en el corporativo. Con las personas que caben en el area disponible.

Si el tiempo promedio de atencion son 10 minutos de la mayoria de las personas, ocho horas suena fuera de lugar.

Además, le acaban de avisar a uno de los expositores (una de las gerencias, que no soy yo) que tiene mañana que presentar dos presentaciones de 20 minutos.

Una de ellas es presentar una solucion a alterna a una propuesta que hice yo, probada, de otras empresas.

Solo me queda sentarme y ver…

Mientras siguen los problemas de impuntualidad de varias personas.

Mañana trataré de solo tener la maleta de la sub netbook que ocupa muy poco espacio, para evitar extravios del otro equipo.

Y todo notas en papel.

Quedó pero no fue nada fácil.

Básicamente ell código manejaba un capturar contenido de inputs a variables de java para despues pasarlas a gets. Esos gets por lo mismo no pueden pasar de cierto espacio.

Lo malo, es que al final de proceso manejaba el original llamadas a gets por request, lo cual es peligroso porque pueden estar llamando cookies y no gets.

Lo mio lo hice sobre gets directos despues de la conversion de las variables java, dando un htmlentities en medio.

En horas de trabajo fueron unas nueve, y no les va a salir precisamente barato, lo bueno es que parece que si quieren nueva versión desde cero.

Ya quedó en la etapa en que debo sentarme a hacer los inserts dando sanitize primero.

Unas tres horas de trabajo porque hablamos de 9 tablas(dos direcciones y dos telefonos son dos links extra cada una). Y me avisan que una junta del jueves que no se hizo se pasa para hoy a las tres. Arghhhh.

Debo considerar una media hora perdida despues en lo que vuelvo a ubicar el codigo.

Al estar haciendo pruebas en este cluster de lo del colegio (en un subdirectorio de este dominio), me di cuenta que estan pasando cosas raras con la carga de mysql del cluster. Probablemente el proveedor esta otra vez usando la misma pc como mysql server en lugar de dar una pc diferente para el mysql del cluster.

Después de sacar notas del problema de las fechas, me encargaron otra cosa simple aparentemente pero que resulta enredadisima.

El software del colegio hecho en jquery tiene una pantalla para alta RAPIDA de profesionistas, a la que me piden anexar el historial academico, los telefonos y las direcciones.

Revisando la base de datos, los datos de persona son una tabla, los de direcciones otra, los de telefonos otra y los academicos otra.

Asi que para relacionarlas se usan tablas liga. Persona_telefonos, persona_direcciones, etc.

Pero resulta que hay una subclase de tipos de direcciones (correspondencia, casa, oficina, etc) y una subclase de telefonos (similar) y otraacademica.

Asi que lo que sería TRIVIAL si lo hubieran hecho en una base de datos normalizada (1 tabla con integridad referencial) , resulta de locos cuando son siete tablas en las que se guardan los datos, 6 las que se leen y tres punteros de last_insert_id que hay que verificar. Y como los datos de CUALQUIERA de los datos son opcionales, antes de grabar hay que verificar que los tres sean diferentes a cero.

Me aventé cuatro horas para poner el layout de jquery en una sola forma que se viera bien en chrome/explorer/firefox, y todavia falta la programacion de la introduccion de datos, mas las validaciones para evitar sql injecting.

Espero terminarlo hoy.

Se de varios lugares que manejaban internet redundante a través de ego. El servicio desaparece y eso afecta de manera indirecta.

Recibí este correo y la información esta también en su sitio:

http://www.igo.com.mx/

“Apreciable suscriptor:

“Es lamentable para nosotros tener que comunicarte que por razones de fuerza mayor y que nos son ajenas; dejaremos de brindarte el servicio de Internet que tenemos contratado a partir del 30 de junio de 2011.

“Estimado suscriptor esta empresa ha hecho un esfuerzo, para que el servicio se te brinde por treinta días más, y lo cual está acorde con el contrato que tenemos celebrado.

“En caso de que requieras mayor información, nos ponemos a tus órdenes en el teléfono número 51740245 (para el caso de Guadalajara 36787890; Monterrey 83993096; Toluca 2770088; y Mexicali 018003433346) y por correo electrónico a: informes@ego.net.mx

“La cuenta de correo que tienes asignada como suscriptor, con terminación @ego ó @igo; dejará de funcionar a partir del 30 de junio de 2011.

“Si has realizado pagos por adelantado y que corresponden a meses posteriores al 30 de junio de 2011, te haremos el reembolso respectivo.

“Personal autorizado de nuestra empresa, te visitara en tu domicilio, a fin de recoger el equipo de nuestra propiedad a través del cual te prestamos el servicio o bien nos entregues dicho equipo en el Centro de Atención a Clientes de tu localidad.

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.

Mientras escribo al mismo tiempo pienso en una situación que crea dos problemnas.

SITUACION:
Inicialmente me estan pidiendo una rutina para uso interno que verifique en tablas medianas unas comprobaciones básicas que otras personas no hicieron. Incluye unos subselect anidados, y será un proceso pesado. Se indica el cliente, yo calculo su identidad y verifico contra el detalle.

PROBLEMA 1:
el proceso implica una cantidad tremenda de tablas (2 por cada cliente) porque se estableció de esa manera por las máquinas virtuales. No puedo crear índices en tablas que no existen y pierdo tiempo verificando si existen. No puedo asumir que existen o que estan bien diseñados. En el cliente ejemplo, La tabla Padre usa 4003 registros, la hija unos 16 mil. Esto indica por lo menos correr 8006(padre*2) ordenes sql, debido a que justamente estamos detectando inconsistencias entre totales, para correr otras sql correctivas. Evidentemente esto puede causar sobrecarga, pero no puedo alterar de manera definitiva tablas que no existen todavia (de los clientes que se hará) y es mas suceptible a fallas. Las tablas actuales, siguiendo la norma de diseño que implanté usan INOODB y no MYISAM aunque no usan integridad referencial.

Cual es el alcance ?
Se deduce que esa unidad de negocio no tiene implementado diseño de unidades de prueba, y la carencia de índices indica que nadie tiene idea de mantenimiento a Bases de datos posterior… ni control de calidad sobre el diseño de base de datos.

La consulta a realizar es pesada, de uso interno, bajo pedido de alguien de soporte, y debe mostrar el avance en un lugar fijo de pantalla para que no piensen que se paralizó. Preferentemente mostrar loads de linux.

Solución:
Implementar un innerhtml para que se vea el avance. Crear uno o mas indice y borrarlo al terminar. Una hora o dos de codificación para el reporte.

=======================================
Problema 2:

Igualito al alcance:

Se deduce que esa unidad de negocio no tiene implementado diseño de unidades de prueba, y la carencia de índices indica que nadie tiene idea de mantenimiento a Bases de datos posterior… ni control de calidad sobre el diseño de base de datos.

Las ultimas semanas he estado notando inestabilidades del browser conocido como chrome o chromium, específicamente en sitios que sirven subconjuntos de java o LJS. (http://www.google.com/#sclient=psy&hl=es&source=hp&q=ljs+java&aq=f&aqi=&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=5e1f10055c27afe0)

Uno de los paneles de control de dominios que uso, HSPHERE, tiene una sección mas o menos amplia de control de cuentas, que tiene bastante LJS.

Aunque los problemas de caché de chromium es algo de lo que hablaré después, El origen del problema de momento es por el uso de LJS o java cuando no es necesario.

Vamos por partes:

Javascript muestra información en la computadora del usuario, y no realiza cambios en el servidor.

Los lenguajes como Php, realizan algo en el servidor, y después muestran los resultados en la computadora.

Esto significa que Php carga/cambia cada vez la página , y javascript muestra algo que se cargó una sola vez.

Ajax es una tecnología / metodología que permiite hacer algo en java y pasarlo al servidor. Pero muy pocos sitios avisan si algo no paso al server. Así que podemos ver un «editor» java, donde se capturó datos de un producto o cliente, que se ven como guardados, pero que realmente no existen en el servidor.

Para evitar la recarga de archivos servicios como yahoo han estado sirviendo desde cachés hasta LJS y estandares JSON en lugar de XML. Si bien creo que XML no es seguro, es mucho mejor que JSON.

La principal limitación de JSON es la obligación de hacer un parser adicional (porque no identifica elementos), y si NO sabes hacer un parser como Dios manda, probablemente se acaba ejecutando un eval sobre el conjunto de datos. Resultado, JSON es absolutamente inseguro , o tu haces tu parser espcializado. Si bien el volumen de datos es mas pequeño, es mas ambiguo, hay unos ejemplos claros en http://es.wikipedia.org/wiki/JSON

La mayoría de los servicios JSON o XML que he visto no regresan una hora en formato UTC o de cualquier tipo, asi que no estás seguro si estas viendo o no resultados en caché.

El problema es que muchos grandes proveedores de servicios, están haciendo con JSON los que les da la gana. Hay diversos artículos acerca de como hacer crossforge con JSON (por el problema de rutas predecibles), pero lo que regresan muchos idiotas es «ese JSON está mal implementado porque permite objetos», y no conocen el estandard que dice

http://tools.ietf.org/html/rfc4627

Extracto:
JSON can represent four primitive types (strings, numbers, booleans,
and null) and two structured types (objects and arrays).

A string is a sequence of zero or more Unicode characters [UNICODE].

The terms «object» and «array» come from the conventions of
JavaScript.

JSON’s design goals were for it to be minimal, portable, textual, and
a subset of JavaScript.

Lo cual significa que tienes dos o tres entradas de datos que no autentifican nada, no guardan nada en server (al ser javascript), o de plano te limitas a un absurdo límite sin objetos de java, que ya no es JSON sino un XML mal diseñado, que no tiene validadores en línea y sin XSLTs.

Creo que a mediano plazo, todas las aplicaciones de seguridad caerán en un modelo mas «xml-rpc», de autentificación pero JSON será para mi un riesgo de seguridad. El colegio que he mencionado antes, tuvo el viernes un problema bastante extraño por unos cachés, que de entrada hubieran llevado a pérdida de datos o respuestas parciales.

Asi que, la solución a corto plazo es:
1 ) Evitar usar jquery
2 ) usar bitácoras via APACHE o similares.
3 ) No usar JSON excepto si XML o XML-rpc no son viables.

La real sería eliminar LJS completammente, o su evaluación de Objetos. El eval es quizá el problema de seguridad mas grande del diseño online, y aunque ne php podemos prohibirlo en nuestro servidor, como el java es por pc, puede hacerse lo que le de la gana… y ser diferente a lo que está en nuestro servidor.

Y en la mayoria de los casos Es mucho mejor usar un FTP o un XML-RPC que JSON.

O que de plano le quiten el manejo de objetos, creo yo.

Debido a que necesitaba unos datos en el trabajo, de la netbook lg110 que normalmente está en casa, me la llevé al trabajo.

Historia del equipo:
Esa netbook tuvo un problema de sobrecalentamiento de disco duro y tuve que instalarle ubuntu (lo comente en http://alfonsoorozcoaguilar.com/node/523 ).

Esa laptop la preparé en una red inalámbrica a la que no se le ha cambiado la contraseña desde entonces, y luego me la llevé a mi casa (por cuestiones de seguridad y rendimiento todo lo tengo wired, evito como la peste lo inalámbrico ).

Al conectarla en el trabajo… después de haberla upogradeado en mi casa a Nerval, no reconoce la red de ninguna manera. Si reconoce la red inalámbrica del starbucks (probado para eliminación), así que quizá ubuntu nerval tiene problemas en detectar inalámbricas cuando a través de un linksys se hace la salida a dos inalambricas. De por sí ubuntu tiene problemas con las wifi, pero no tiene porque perder la configuración de donde se instaló, si le dije específicamente no remover paquetes.

Considerando otro asunto de correos, y que Outlook express es le mejor motor programable bajo windows para filtro de correos, y que por esas mismas razones esa pc tenía windows en un principio, se está preparando para tener el windows home que viene de fábrica. No se necesita nada mas para ver correos y usar skype en esa laptop.

El nuevo disco duro que le puse es de 160 gb, así que podría ponerle un linux, pero mejor dejo el live usb de karmic koala y la dejo tal cual por mientras. Quizá le ponga un linux fluxflux , porque mint también es temperamental con las wifi , aunque nada mas pienso usar esta en casa.