Como todos los dias al llegar al trabajo lo primero que hago es encender el skype (obligatorio), y leer el correo por si hubo algun problema. Me encuentro un correo con fecha de ayer en la noche, del socio del corporativo que entiende el punto de vista tecnológico . Me pide un link de un programa web que hice el viernes, a lo que respondí dando copia de la conversación de su skype del viernes donde se la mandé.

Reviso el correo al que llegan las solicitudes de alta de los foros, no lo vi el fin de semana. Salieron unas 350 , y el proceso automático de borrado que implementé detecta casi todos como spammers y me responde un minuto y medio después (350 consultas xml-rpc en medio + query lectura + query borrado).

Mientras estaba yo haciendo otra cosa, y resulta que los mecanismos de automatización, o comandos cuerdos es lo único sensato para el uso del tiempo. Como dije en alguna ocasión es un camino sencillo de integración.

¿A que te integras?

Citando algo que escribí hace unos años sigue teniendo aplicación:
============================================================
) Integraciòn real
Cuando alguien no esta dispuesto a comprometerse con una idea comun, no hay integracion, y tampoco cuando alguien piensa que hay mejores métodos. Se trata pues de seguir metodos tranquilos, no agotantes, basados en la idea de lo que es correcto. No importan los lazos familiares o de amistad, sino estar dispuestos en usar CIERTOS métodos para un objetivo común. Y muchas veces el objetivo comun implica en si mismo ciertos mètodos, asi que desaprobar los mètodos, suele implicar otros objetivos.

Alguien que permite la venta del conocimiento no puede tener el mismo objetivo, asi como se entiende que un temperamento o momento emocional (familia o enamoramiento) no funcionen con impacientes ( que piensan que ya saben todo ), y esa es la tercera parte de la prueba. Esperar a que la ESCUELA de CONOCIMIENTO diga que ya se está preparado. Esto es pues la base del conocimiento esotèrico y el tèrmino de los una y media veces nacidos, mencionadas desde hace años, ejemplos hay muchos, pero el mas comun de la cultura popular sob Luke dejando de lado lo que le dice Yoda, o las personas que presumen de estudios universitarios que no tienen o que abandonan. No es lo mismo ir a una clase de artes marciales y decirse patriarca chino, que pasar tu examen final derrotndo a todos los contrarios en kata y kumite.
============================================================
El problema es la incapacidad de varios para usar las propias armas sobre uno mismo. En el caso que me ocupa en este momento, es como es posible si se queda que vamos a enviar links o avisos por skype pedirlos por correo, y como es posible de supuestos maestros de artes marciales que se dan tubazos en la cabeza, o el ladrón Marco Antonio Arenas Chipola que se ve obligado a insultar por internet a mi esposa por problemas de integración.

Es el simple proceso de seguir reglas cuerdas.

En el trabajo se pierden dos días (de terceras personas) en lugar de preguntarme ese mismo día (en lugar de ayer) por el link que ya había mandado. En el caso del ladrón mencionado, como no puede ver a dos metros no puede ni acercarse. Es una situación muy simple.

En el primero caso sigo estando bien en mis tiempos. En el segundo, el sujeto se encuentra en una situación donde solo puede insultar, ya que a pesar que traten de inventarme infartos los miembros de la secta Kinam / Templo Tolteca, en persona tendrían problemas tanto por su ceguera como por su rencor. El día que entiendan que era evidente que se les era necesario jalarle al excusado y correr al importador de drogas Julio Diana Alias Yeitekpatl en el 2003 por usar identidades dobles, y al ladrón Marco Antonio Arenas Chipola en el 2009 por insultar a mujeres y reclutar para sectas,
podrán salirse del excusado que es su vida actual y futura.

Es decir, el supuesto sacerdote se ve obligado a poner anuncios para obtener dinero en su blog difamatorio, y el otro a tratar de alterar la realidad a través de su suciedad.

La realidad es simple. El ladrón Marco Antonio Arenas Chipola no puede acercarse , no solo por el acoso a la madre de mis hijos, sino porque no tiene oportunidad de ganar (dificil estando medio ciego), incluso si pudiera mantenerse en pie treinta segundos, va a la cárcel por agredir sabiendo artes marciales, así que insultar por internet a mi esposa y alterar la realidad y sus recuerdos no le sirve de nada . Solo pierde tiempo. Es mas fácil decir que tengo problemas del corazón a aceptar la realidad.

Es una situación absurda. Se me puede encontrar tanto en mi casa como en las reuniones que hago. Fisicamente no pueden hacer nada, uno es drogadicto y el otro está casi ciego. Que sigan practicando los pasos de «el principe de las flores» y de «la mariposa»

Es interesante lo que implica. Lo mio es trabajar y pensar, estar en mi casa. La secta insulta por internet y no tiene trabajo. Uno se dice sacerdote y no existe su asociación religiosa, y el otro insulta por internet al que lo corre por insultar a mujeres, pero no le dice nada al que le voló a su esposa.

Si tienes la capacidad de hacer las cosas, debes hacerlas. Lo demás es pretexto.

Asi que los que insultan por internet es porque no tienen otro remedio.

A la larga, el uso de reglas claras (fijadas de antemano por la sociedad o un grupo), resulta mucho mas práctico. La libertad no se contradice a sí misma.

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.

Hace unos años descubrí que cuando un cliente no renovaba su dominio, varios registrars ponñian su publicidad. También descubrí que en ocasiones algunos registrars (stargate por ejemplo) monitoreaban ciertos dominios estáticos sin foro y lo volvían publicidad por «error del sistema», así que poco a poco migré a registrars diferentes, y para avitar confusiones abrí cuentas en SEDO y Moniker (donde he vendido dominios por Escrow), sin embargo a pesar que desde hace años tengo mi cuenta de SEDO, cada vez es mas un sitio de ganancias imposibles y ni siquiera entro a mi cuenta. Con excepción de los 1700 dolares de la venta de unos dominios hace años, no tienen un fin práctico.

Hoy entré a revisar una cuenta que tengo para probar un sistema de filtos bayesiano. Todos los correos del filtro eran basura… menos los de Sedo.

Considerando que era una cuenta catch all redirigida, y que no uso Sedo desde hace años, entiendo porque esta clasificado como Basura. Por le vocabulario.

Y tiene razón el filtro bayesiano.

Hace unos años me encontraba haciendo una maleta de libros. Básicamente la madre de mis hijos, en uno de sus arranques posteriores a las amenazas de la secta templo tolteca, decidió que según ella los libros hacían toser a uno de mis hijos. Básicamente vi venir un problema y acepté enviar a otra casa varias cajas con libros. Aunque ella se encontraba muy mal por la muerte de nuestra menor hija poco mas de un año atrás, los dos ultimos meses habían sido complicados por su tendencia a usar parte de mis ingresos para alimentar a una familia de parásitos, ligados a una de sus hermanas.

El caso es que en un momento determinado, para evitar problemas mayores, sabiendo que la desaparición de todo vinculo era inminente, empecé a guardar en cajas material de los libreros que hice a mano con mi padre hace unos años. Tenía a la mano un caja de un monitor LCD (grandecito) y por simplicidad decidí poner en ese lugar libros que no debían salir de la casa, conociendo la posibilidad que ciertas cosas fueran usadas mas adelante para tratar de presionarme.

En aquel momento tenía yo 36 años, dos empresas con actividades mercantiles y trabajaba en un proyecto especial para control de importaciones de una empresa grande. Los libros que estaban frente a mi habìan sido leídos unas 5 veces en promedio. La decisión fue simple. Algunos libros lo importante estaba ya en mi cabeza y otros eran sagrados (I ching, Wasson, Walden, catch 22, el mago de john fowles), otros eran libros que no iba a volver a leer, como el nombre de la rosa, El amigo americano (highsmith), ese dulce mal (idem) , pero que eran importantes por un contexto diferente… pero fácilmente recuperables.

Hubo algunos cuantos libros que no sabía si quedarme o enviarlos a otras manos, principalmente Stendhal, Kant, Armonia con el Infinito de Trine , etc. Decidí enviarlos por si otra persona podía sacarles todo lo que yo les aprendí.

Unas cuantas novelas importantes, como Malory de James Hadley Chase, Ernani de Victor Hugo y otras mas se fueron. Libros de consulta como Planeta de Locos (Serra i Fabra) y Lo oculto (Colin Wilson) siguieron destinos diferentes, unos se guardaron y otros se fueron.

Una caja grande se quedó, unas diez cajas hueveras se fueron.

Pero hay libros que deben vivirse y de las que es «fácil» entender el vocabulario pero es difícil entender lo que está atrás. El outsider de Colin Wilson y crítica de la razón pura de Kant son algunos de ellos. No me refiero a que un Outsider sea como entienden algunos un rebelde sin causa, sino a la importancia de decir no a los que te piden agachar la cabeza. Conozco muchos idiotas que se creen Outsiders y medio viven, que nunca han trabajado en empresas grandes, o que son geeks que usan linux y son divorciados a los que sus padres mantienen… Outsiders con BlackBerry que solo son producto de un sistema alterado que olvida l oque hace a la humanidad ser lo que es.

Kant por otra parte es asombrosamente simple si lo lees con calma. Es de los libros que se fueron lejos porque puede incluso bajarse en línea : http://www.planetalibro.net/ebooks/eam/ebook_view.php?ebooks_books_id=109
y a su vez, es el inicio de una trilogía sobre la crítica.

Algunas ideas de Kant son simples y muy evidentes, a la vez que profundas:

Pagina 11 : Tan pronto como se adquiere la convicción
de que hay un uso práctico absolutamente necesario de la razón pura (el moral),
Página 13 : Mas para la moral no necesito más sino que la libertad no se contradiga a sí misma y
Página 133: Así pues, el entendimiento no puede hacer de todos sus principios a priori y
aun de todos sus conceptos más que un uso empírico y nunca transcendental; esta es una
proposición que, una vez conocida y admitida con convicción, tiene consecuencias
importantes. El uso transcendental de un concepto, en cualquier principio, consiste en
referirlo a las cosas en general y en sí mismas.
===============================================
Y resulta tan simple…. El entendimiento solo tiene razón de ser par la práctica, de ahí uno brinca inmediatamente a la Teoría y la practica, del mismo autor.

Los libros se fueron, me separè, me casé , y los libros sacrificados estan acumulando polvo a muchos kilómetros.

Pero solamente los uqe tienen un fin aplicable en la práctica se guardaron. Evidentemente todos los libros de Castaneda menos dos se fueron a esa casa, y conservè algunos libros … se fueron el libro de Margaret Runyan sobre Castaneda y se quedan Harris y Durant.

Si bien es evidente que no hay conocimiento oculto en el supuesto Yaqui Don Juan Matus cantando Rancheras (situacion mas ridicula que Linda Goodman cantando música de Barbara Streisand a un extraterrestre), los libros de Durant tienen un fin práctico, y otros solo son puertas abiertas al pasado, a realidades superadas.

Que uso práctico para mí mismo puede tener el conservar los libros sobre los misterios de Eleusis de Wasson ? Resultan igual que el retorno de los brujos de powels. Una serie de datos sin conocimiento empírico por el momento, aunque detrás de la masacre de los hippies de francia por Carlos iV se encuentra el mismo fenómeno que detrás de los hippies de 1975, con la posibiilidad de que sirvan de paralelo.

Así que se fueron los libros que me servían como Carnada y que son semillas. Fueron una forma de ceder preparando puntos a la gran negociación. Menos de una semana después me encontraba listo para el futuro, sabiendo que puedo recuperar en una librería lo necesario o ya está superado. Y otros piensan que pueden tener un libro como símbolo, sin entender que la aplicación del mismo es lo que cuenta.

La libertad no se contradice a sí misma, diría Kant.

Hoy no pude tomar el brunch normal, así que a eso de las dos de la tarde supuse que era buena idea salir a comer algo rápido en vista de la actividad reciente.

Una persona en el elevador estaba tomando un Schweppes (agua con ginger ale o refresco de jengibre) que se ve mucho por esta zona. La asociación de ideas me hizo pensar en cuando era niño y mi padre tenía la costummbre de ir con su novia y conmigo al Restaurante Suntory a cenar ( http://www.google.com/#sclient=psy&hl=es&source=hp&q=restaurante+suntory+mexico&aq=f&aqi=g1&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=c4a11be33b94d350 ). El concepto mixto de restaurantes como el suntory nunca me ha gustado, pero lo prefiero mil veces a lugares como Mr Sushi.

Pensé en darme una escapada al Big Sushi ( http://www.google.com/#sclient=psy&hl=es&source=hp&q=big+sushi+mexico&aq=f&aqi=g1&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=c4a11be33b94d350 ), porque descubrì con mi esposa que los makisashi (rollitos sushi ) rodeados de queso les quedan muy bien, pero por cuestiones de tiempo no me convenía, así que se me hizo fácil ir a lo mas cercano al Suntory que tengo a la mano, que es un Sushi Roll de los que manejan barra de sushi y sashimi(no fastfood), en la calle de Millet.

Error y muy util a la vez.

Cuando voy en un horario que no hay barra de sushi para irme despachando, normalmente me pido dos rollos, dos kushiage y algo mas. Cuando me senté estaban sirviendole a otra persona un sashimi que se veia muy bueno (y eso que no me gusta el pescado ) mas un gohan (arroz seco).

Acabé comiendo un gohan, dos kushiage de queso, y dos rollos recubiertos por fuera de queso philadelphia. O era lo que esperaba. Sus quesos roll de salmon ahumado resultaron ser dos makis muy decentes con una o dos untadas de queso philadelphia, en lugar de lo habitual en el sushi roll de insurgentes WTC o en el mismo big sushi. De haber sabido las hubiera pedido con masago.

Asi que mientras comía me dediqué a observar. La mayor parte de los clientes eran mujeres clase alta , dos o tres con guarurasm comiendo con amigas. Unas personas tipo empleados bancarios de nivel medio usaban una mesa. Por todos lados botellas de Perrier (agua) y de salsa tabasco y canada dry (otra bebida de ginger ale de schweppes).

Regrese al trabajo y chequé en el checador biométrico antes de la hora.

Lo mas útil para mí fue recordar que hasta en eso influye el detalle de los tipos de alimentos en la memoria (lo has comido o no ?), y el background de experiencias de alguien ( útiles para ciertos fines ).

Es decir, he visto varios parásitos que solo tienen acceso cuando alguien les compra algo, aquí el folio 49553 de la caja registradora ampara lo que comí, de mi bolsillo.

El millón de segundos es un principio uqe me comentaban mis maestros acerca de que llevas en tí una inercia o momentum de mas o menos la ultima semana de tu vida, que a su vez crea una paradoja como la de la escapatoria del Teorema de Bell (http://es.wikipedia.org/wiki/Teorema_de_Bell).

Es decir, necesitas que las variables no sean ocultas para poder realizar algo, y lo que no es oculto es lo experimental y que no tan autodestructivo que te impide seguir viviendo. Es decir, a mayor experiencia, menor nùmero de variables ocultas, u a menor número de variables ocultas mas posibilidades de repeticiones uniformes que te lleven al movimiento browniano.

Es curioso que algunos mencionan ciertas cosas como capitalismo sin entender que es sentido comùn y alimentos. Por ejemplo, al comer Sushi y pensar experimentalmente en el rango de problemas prácticos sobre que comer, experiencia previa en Suntory, Sushi Roll, Mr sushi y big sushi me hicieron tomar la medida mas rápida para ese problema, sabiendo quee l satisfactor de cualquiera de ellos era similar, pero teniendo los recursos para elegir a donde ir y la capacidad de acción.

Y lo noto en personas y parásitos, que toman como un ataque o muestra de problemas el disponer de mi tiempo sin limitaciones de dinero.

El resultado es que la parte que permite la repetición regular, voluntaria y uniforme de elementos de cierto peso quimico (como podrían ser los alimentos) nos llevan a una base para el movimiento browniano (http://www.google.com/#hl=es&xhr=t&q=movimiento+browniano&cp=19&pq=movimiento%20browniano&pf=p&sclient=psy&source=hp&aq=0&aqi=&aql=&oq=movimiento+brownian&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=c4a11be33b94d350&bs=1), siempre y cuandoo puedas estar en el fluido y te interese el desplazamiento molecular.

Una persona es lo que hace con lo come. Si tus alimentos no tiene variedad, ni nutrientes, te ves obligado a llamarte a ti mismo sacerdote de quetzalcoatl o a insultar mujeres por internet o a probar drogas. Tan fácil que es comer bien… si trabajas.

Y por ejemplo, varios de mis subordinados, no pueden comer el mismo tipo de alimento que yo comía a su edad. No solamente por dinero, sino por ser un alimento que no estan preparados…. y al no estar preparados se crea una paradoja porque les causa problemas económicos y solamente se da un browniano de preservar su futuro.

Y no es lo mismo tomarse un agua schweppes del Sam’s Club que comer en el Suntory o en una buena barra de sushi.

Uno de los problemas que me tocó ver en ambientes de libres pensadores, hace años , en lo que para algunos serían cafés filosóficos o bohemios , era la imposibilidad de muchos para aplicar sus principios coherentemente de un modo no autodestructivo a lo idiota. Elogios a Marías Coroneles o a Julien Sorel son fuera de lugar.

Sin referirnos a Copérnico y a Galileo, que les fue mal pero no tan mal el mejor ejemplo que me viene a la cabeza es Julien Sorel, héroe para muchos que termina muerto después de dar un discurso real, pero suicida, en la novela Rojo y Negro de Stendhal.

Si bien Julien es un arquetipo citado incluso por Sartre, y basado mas o menos en la vida de Stendhal que en su momento solo fue comprendido por unos pocos, en la práctica perdieron ambos sus vidas. Julien Muere por sus principios, y Stendhal por la edad antes de ser comprendido , en una situación mediana economica mediana.

La realidad es provocar algo en tu entorno, cosa que Sorel hace en su vida ficticia, moviendo mas cosas por sus principios que la mera vida de Stendhal.

Y sin embargo, Andre Chenier, igual de talentoso que Stendhal, si muere decapitado pero por principios.

La diferencia con María Coronel es que no provocó ni madres. Chenier encendió algo que cambió a Francia… y a Rusia. María Coronel inspiró rechazo y absorbió dolor, Chenier al pie del cadalso mienta la madre a los conservadores, y hace que Robespierre caiga tres días después que él.

Y de todos modos, André Chenier resultó mas efectivo. Chenier inspira a Pushkin, María Coronel a idiotas.

Julien Sorel a personas que viven a través de otros.

Chenier, pero no Castaneda ni Sorel… ni conformarse con ser Stendhal.

Facta non verba.

Stendhal hizo algo, a su manera, mejor que Sorel. Pero Chenier hizo, aun después de muerto. Sorel no existió y provoco cosas… o fue el un reflejo de Chenier.

Chenier fue lo real.

Durante varios años me he enfocado en varias empresas a desarrollar y a veces intervenir en el plan de desarrollo comercial de sistemas de gestión.

A partir del nacimiento de términos como burbuja com, efecto slashdot, SaaS etc, me he dado cuenta de que muchas personas no entienden la base de SaaS, es decir, Software as Service.

Para que en México funcione el SaaS se necesita personal dedicado que sepa de que esta hablando, para poder dar el SERVICIO con mayúsculas. Hoy en el corporativo me tocó estar en una junta por el área de soporte (con la que no tengo nada que ver), y me pregunto como es posible que nadie se preocupe en seguimiento teléfonico o postventa en un SaaS.

No puedo explicar aquí el resultado, pero cuando me reportaron un problema que parecía ser mìo, analicé a detalle y era evidente que el problema se originó en el 2011, por lo mismo no estaba el área de soporte a mi cargo. El problema, además no era de soporte sino de captura de la fecha de una autorización del gobierno, pero sin traceabilidad hay problemas.

Eso no se puede hacer en un SaaS.

De momento todos los softwares que he desarrollado por Pymes propias en México son por proyecto o por contrato de mantenimiento posterior a puesta a punto, y el unico SaaS es con estados Unidos. El problema, y la razón de ser, no es que haya mal personal en méxico, sino que la atención a cliente en software especializados suele ser muy mala.

En este caso tengo la impresión que voy a tener que hacer la Knowledge Base a pesar de no ser mi área, y que ya dejé una operativa en noviembre del año pasado. Un Trobleshooting no estaría mal, pero como no tengo que ver con el área de soporte desde lo del corporativo no tengo relación con esa información.

Y de todas formas varios SaaS funcionan a veces en México. Tengo dos o tres ideas que hacer al respecto, pero eso lo haré a mediados del año que entra. Sigue sin existir ese tipo de proyecto, y me extrañaría mucho que alguien lo haga. Aquí les sería necesario, pero mis labores son relativas a proyectos especiales, no continuidad de negocio

Aunque hace varios años escribí bastante sobre dominios de internet y proveedores de bienes y servicios, deje de hacerlo hace unos dos años cuando noté la baja de calidad de varios de los registrars o lugares donde se compran dominios.

La calidad y el cambio de reglas de los registrars o intermediarios se han ido volviendo un problema mas o menos gradual.

Una cosa sucedida ayer quizá es un ejemplo. Resulta que los dominios .es , del país españa, siguen unas reglas diferentes a los otros whois o proveedores de datos de dominios, así que no hay forma de automatizarlo y debe hacerse a mano.

Como parte del alegato de la secta Kinam o Templo Tolteca que decían falsamente ser marca registrada a nivel internacional, se me ocurrió revisar si tenían registro de marca en Europa (evidentemente no) y al hacer la investigación tuve la oportunidad de comprar el dominio http://www.kinam.es por cinco años.

Sin embargo, los intermediarios originales (una empresa de españa) me salieron bastante maletas, así que decidí trasladar ese dominio a moniker.com , que es un muy buen lugar para registrar dominios, pero como descubrí no para .es . El resultado fue que aunque para españa yo era el dueño del dominio, para Moniker el dominio no existía. Tuvieron que pasar dos años de mi traslado a moniker, uno realmente desde que empezó el problema, para que nic.es me arreglara el problema.

Lo extraño es que debido a la necesidad de intermediarios, decidí probar con un proveedor hindú con el que he comprado dominios extraños por encargo (la empresa de videojuegos que es uno de mis clientes me pidió hace años consolidarles una cartera de 300 dominios de extensiones super raras), y el proceso fue bastante simple, gracias a que ….

Usé un correo que manejé para la venta a gandi.net de hace cinco años. Es decir, probablemente mucho del problema viene de alguna revisión de la unión europea en cuanto a país del correo. La cuenta que me permitió mover todo está en un servidor francés de una empresa hindú, y por lo mismo entra en el rango europeo.

A final de cuentas recuperé el acceso al panel de control, pero el número de proveedores de registro vigentes qe son buenos, cada vez se reduce.

Aprendí la lección y solo usaré moniker en el futuro para dominios ICON ( con net org e info) con ciertas características.

Esto es en México, distrito Federal.

Los ultimos meses he notado al ir al supermercado, menor volumen de personas comprando, y compran menos cosas. En mi trabajo tengo cerca varias «cadenas de conveniencia», lease super punto, círculo k y seven eleven. La mañana de hoy recordé que necesitaba comprar algo que me encargó mi esposa, y me llevé la sorpresa en dos circulos k que estaban vacíos, no solo de gente sino con alacenas medio llenas nada mas. También uno de ellos no tenía siquiera refrescos de lata, y ayer pasé por un seven eleven y estaba en las mismas condiciones.

Como no creo que se pongan de acuerdo cinco proveedores para no surtir tiendas en una zona de negocios que tiende a ser clase alta, me da la impresion que se debe a una baja de ventas.

Lo que son las cosas.. el mecanismo aceptado de captado de clientes es muy diferente a la realidad, pero la realidad económica debe estar peor de lo que parece.

Mucho del modelo económico actual está basado en unos cuantos productores y unos cuantos consumidores , aunque algunos buscan miles de consumidores, y eso no funciona a menos que tenga recursos el consumidor, o sea, que sea productor de bienes o servicios.

En el corporativo en que me encuentro son las ocho y 10 de la mañana, solo hemos llegado dos personas de mi área y empiezo a notar un problema por el mismo concepto. Hay demasiados distribuidores (con lazos nepóticos y no rendimiento) y están en una forma diferente de tiendas vacías. Las tiendas virtuales están llenas, pero no hay quien las reparta, y tienen pendientes por hacer.

La clave son los checklists y mecanismos de supervisión efectiva, incluso aplicado a la propia vida.

Parafraseando La decadencia de occidente la carencia de ritos sensatos en occidente lo lleva a su decadencia. Y la supervisión y aplicar sus propias armas sobre uno, es la sensatez de un negocio y de un fiósofo.

No me refiero a la lucha constante entre estancarmiento y movilidad, sino que el ser humano promedio repite los mismos errores y es incapaz de salir de esa espiral de comodidad. Aunque para algunos la comodidad sea morirse de hambre.

Lo sensato es, en todos los casos, hacer lo que debe hacerse. Otra vez Descartes y Kant Rules.

Unos correos del 2001 interesantes sobre activex


Clases, Tipos fuertes y parámetros

Tipos fuertes

Uno de los detalles que hacen utilizable realmente a Visual, es una mezcla entre los tipos de datos fuertes y débiles. Que es esto? Bueno, a grandes rasgos, Turbo Pascal se distinguió en su momento por la capacidad de darle un tipo determinado a una variable, por ejemplo, byte, shortint, string, longint, char, text, por decir algunos. Aunque las versiones originales de Basic, QBASIC y BASICA permitían una declaración de tipos fuertes, Los que usamos BASIC en ese tiempo, estábamos acostumbrados a ordenes como DIM NOMBRE$, donde el $ era equivalente al actual as String.

Por razones de compatibilidad, y de sentido común estructurado, poco a poco Microsoft fue creando una gran variedad de tipos de datos, algunos utiles y otros no. Por ejemplo, estan String, Variant, Object, Integer, Boolean, Single, Double. Pero, debido a que muchos programadores estaban acostumbrados a hacer las cosas a la carrera, desde la primera versión de Visual Basic for Dos, se tuvo que permitir utilizar tipos debiles, que significa esto ?

Un programador poco experimentado podía no declarar una variable, o cambiarle de tipo sobre la marcha. Un programa podía ser, por ejemplo:

10 nombre = space(30)
20 input nombre
30 print nombre
40 nombre = 0
50 for nombre = 1 to 10
60 hazotracosa
70 next nombre
80 goto 10
El verdadero problema fue que BASIC no solamente empezó a usarse por estudiantes, como fue en su momento, sino por profesionales que no tenian a la mano un compilador de Fortran, Pascal, o C. Y como Basic venía incluido en el MSDOS, Microsoft se encontró con que los programadores «avanzados» necesitaban características que no existian; por lo mismo el compilador en si tuvo que adaptarse. Recuerdo que en un momento dado Borland sacó un compilador llamado Turbo Basic, que compilaba en base a tipos fuertes. Para evitar la perdida del mercado, cuando se empezó a Promocionar el QBASIC, ya permitia usar tipos fuertes o debiles, sin embargo, empezaron a suceder problemas porque algunos programas hechos en BASICA, no funcionaban con el nuevo compilador, porque estaban hechos con tipos debiles.

Microsoft creó entonces un tipo de datos similar a lo que es el «any» a Lenguaje C, y su problema básico quedó resuelto. Pero se crearon problemas nuevos, para variar, el nuevo tipo fue llamado VARIANT, y es el tipo de datos predefinido por Visual Basic en las versiones actuales.

Porqué se crearon problemas? Bueno.. Aqui debo regresar otra vez a los tiempos de TP y C. El principal inconveniente de Turbo Pascal era la limitación de un programa a 64 kb de código y 64 kb de «data»; esta era una limitación porque por ejemplo, definir una cadena como string[255], usaba 255 bytes de 64,000 disponibles. Empezó a ser obligatorio andar haciendo ajustes en TP para convertir longint a shortint, y demás. (Esto no es estrictamente cierto, pero si usabas punteros en Turbo Pascal no tienes nada que hacer leyendo esto).

Visual no tenía este problema. Lo unico malo es que su tipo de datos Variant ocupaba bastante mas memoria que un integer, por ejemplo. Y un Variant permitía al mismo tiempo hacer cosas que no se debían segun los puristas. Utilizando el ejemplo anterior, la versión VB sería

dim nombre as string
nombre = space(30)
nombre=inputbox(«Introduzca el nombre»,,nombre)
print nombre
nombre = 0
for nombre = 1 to 10
hazotracosa
next nombre
Que si bien es perfectamente válido, permite errores como sumar algo que no debería sumarse. Pero si cambiamos el Dim nombre, por un Dim nombre as string, ya no es posible compilar el programa. Usando la metodología de tipos fuertes, el código debería ser:

dim nombre as string
dim i as integer
nombre = space(30)
nombre=inputbox(«Introduzca el nombre»,,nombre)
print nombre
for i = 1 to 10
hazotracosa
next i
Esto tuvo una serie de efectos no apreciables a largo plazo. Realmente el principal problema fue que los programas que no definian el tipo, es decir, que decian dim variables sin decir el tipo ( as string por ejemplo ), ocupaban a veces 10 o doce veces mas memoria de la necesaria. Se ha hablado mucho de elegir los tipos de datos correctos al programar, usar en lo posible integer por ejemplo, que esta ligado al sistema operativo y ademas de usar menos memoria que un long, se ejecuta mas rapido.

Para fines prácticos, lo que necesitamos saber es que ademas de los tipos de datos tradicionales, existen dos tipos llamados comodines, que son Variant y Object. Mas adelante hablaremos sobre Object. Un ultimo detalle es que los tipos en Visual Basic, si no se define el tipo, quedan como variant por default, ejemplo:

dim a,b as string ‘ a es variant, b es string
dim c,d ‘ c y d son variant
dim e as string, f as string ‘ los dos son cadena.
Quiero destacar que no necesariamente usar Variant es malo, solo que tiene la desventaja de ser mas lento y usar más memoria, pero hay ocasiones en que voluntariamente a fuerzas la solución mas elegante es usar variant en algun proceso. Sin embargo, creo que un buen programador siempre debe de tratar de usar en lo posible tipos fuertes ( y se evita el problema de hacer «casting» como en lenguaje C ).

Parámetros

En el correo anterior mencionamos algunas cosas sobre los sub y function, pero hay que hacer de una vez una aclaración importante. Los Function o funciones, pueden ( y en casos ideales deben ) regresar un tipo fuerte. Si nosotros no especificamos el tipo, obtendremos un variant. Veamos un ejemplo:

private function nombre_empresa
dim pass as string
pass=»www.laempresa.com»
nombre_empresa=pass
end function
Fuera de toda lógica aparente, el resultado será un variant y no un string. Lo correcto sería:

private function nombre_empresa as String
Muchas personas se preguntan que es un parámetro y para que nos sirve. Nos sirve para modificar nuestro código sin tener que hacer gran cambio. Por ejemplo, supongamos que hemos hecho un programa que usan nuestras diez sucursales, pero no queremos hacer una funcion diferente para cada una. Vamos a suponer que de un lugar determinado, leimos el numero de la sucursal o empresa y lo guardamos como la variable numcons. Y mas adelante queremos hacer un reporte que de un encabezado diferente para cada sucursal. Podríamos usar algo similar a:

private function nombre_empresa (num_empresa) as String
dim pass as string
select case num_empresa
case 1: pass= «www.laempresa.com»
case 2: pass= «www.laempresa2.com»
case 3: pass= «www.laempresa3.com»
case else
pass = «Empresa desconocida !!!!»
end select
nombre_emperesa=pass
end function
Este código nos permite de manera muy simple usar en la cabecera del reporte un print nombre_empresa(numcons), que hace el código mas legible.

Es importante destacar que podemos usar también tipos fuertes en los parámetros, e igual que dijimos antes, si no especificamos el tipo por default tomará variant, por lo que si queremos tipos fuertes, deberíamos declararlo así:

private function nombre_empresa (num_empresa as integer) as String
Parámetros por referencia y por valor

Otro de los detalles que nos heredó BASIC / BASICA, fue que cuando empezaron a usarse los procedimientos en la versiones mas avanzadas, los procesos a veces cambiaban el valor de una variable. Por ejemplo, supongamos un sub que genera el cuadrado de un numero:

numero=4
msgbox numero
call cuadrado(nume)
msgbox numero

private sub cuadrado(nume as integer)
nume=(nume*nume)
end sub
Nos da una desagradable sorpresa. Numero ahora vale 16, aunque no debía ser. Esto se debe a que por default, Visual Basic toma los parámetros por referencia, es decir, considera el parámetro como el NOMBRE de lo que debe cambiar. Una aproximación mas razonable, y menos propensa a errores, sería declarar lo anterior como una función o function, ya que obviamente regresa un valor, asi que por principio de cuentas no tiene nada que hacer como sub.

numero=4
msgbox numero
msgbox cuadrado(nume)
msgbox numero

private function cuadrado(BYVAL nume as integer)
nume=(nume*nume)
cuadrado=nume
end function
Esto nos permite evitar efectos secundarios en el código. La palabra Clave BYVAL es un indicador que le dice a Visual Basic, que solo tome el VALOR del parámetro, sin alterarlo. Los que han seguido las lecciones desde el principio, recordarán que dije que usar parámetros byval nos quita muchos quebraderos de cabeza. Ahora es posible entender de manera mas completa el ejemplo que puse en el correo anterior:

Public Function Padl(ByVal cadena As String, ByVal largo As Byte) As String
If Left(cadena, 5) = «- » Then cadena = Trim(Right(cadena, Len(cadena) – 5))
If largo >= Len(cadena) Then ‘ no simplificar
Padl = String(largo – Len(cadena), » «) & cadena
Else
Padl = cadena
End If
End Function
La regla es usar siempre BYVAL en los parámetros, y si necesitamos el modo standard , usar en su lugar la palabra clave BYREF, aunque esto no es obligatorio puede hacernos la vida bastante mas sencilla. Finalmente nuestra función quedaría:

private function nombre_empresa (byval num_empresa as integer) as String
Además nos protege si por error cambiamos el valor de num_empresa dentro del proceso, y al ser byval, un beneficio adicional es que el código se ejecuta mas rápido.

Clases

En la lección anterior decíamos que una unidad de Turbo Pascal nos permitía procesos publicos y privados. Una clase de Visual Basic, disponible desde la versión 4, nos permite lo mismo, sin embargo, para fines prácticos vamos a referirnos solamente de VB 5 en adelante. Un detalle interesante, es que una clase de Visual Basic NO es algo orientado a objetos, por lo menos en su forma pura. Los que han manejado OOP conocen terminos como herencia, polimorfismo, etc, pero VB no permite algunas de las características distintivas de los objetos, por lo menos en la forma tradicional.

El tema de las clases es muy extenso, y lo tomaremos en las siguientes lecciones. Por mientras , sugiero que hagan un pequeño experimento. El archivo Bas que generamos en el correo anterior, desde windows o sistema operativo cambienle la extensión de BAS a CLS