sábado, 31 de diciembre de 2005

'Ancestors power' -» Menús

En Age of Mythology hay un poder de algunos dioses egipcios llamado "Ancestros" ('Ancestors power' porque mi Myth está en inglés), el cual consiste en que, seleccionada ya un área del mapa, aparecerán de la tierra una especie de zombies, se ve cómo salen de lo profundo de la tierra; son bien delgaditos... bueno, son cadáveres para ahorrar la descripción.

Pues así me vi yo en la mañana de hoy. Lo que hice después de escribir el post pasado fue... jugar Mythology, la partida fue algo larga y ni siquiera recuerdo si la gané.

Cuando recien comenzaba a escribir el post pasado, me comenzó a hacer efecto el frío. Aunque seguía con la ropa y los zapatos de ayer puestos, mis manos se enfriaron y comenzé a temblar mientras jugaba. Desayuné y luego fui a mi cama a taparme con mi colcha para quitarme el frío: relajé mi espalda en el colchón no ortopédico y en menos de 3 minutos quedé dormido. Cuando volví a despertar sentí que habían pasado unos 15 o 20 minutos: 1:00 de la tarde.

Me levanté tambaleante a ver la hora (a que no se imaginan: 1:00 de la tarde :P). "¡Qué rayos!", me dije. Volví a mi cama y alrededor de 10 segundos ya estaba dormido. Cuando me levanté creí que habían pasado 2 o 3 minutos: 1:50 de la tarde.

Me levanté tambaleante a ver la hora (a que no se imaginan: 1:50 de la tarde :P). "¡Qué rayos!", me dije. Volví a la cama y alrededor de 15 o 20 minutos ya estaba dormido. Cuando me levanté creí ue habían pasado unos 5 o 10 minutos: 2:45 de la tarde.

Me levanté tambaleante a ver la hora (a que no se imaginan: 2:45 de la tarde:D). "¡Qué rayos!", me dije. Volví a la cama y alrededor de 10 minutos ya estaba dormido. Cuando me levanté creí que habían pasado 3 o 2 minutos: 4:20 de la tarde.

Me levanté tambaleante a ver la hora (a que no se imaginan: 4:20 de la tarde xD). "¡Q...!", "!Un momento!, no puedo pasármela así todo el día!". Desperté. Quize seguir con lo de los menús pero me sentía muy enajenado. Encendí el ordenata y jugué unas dos partidas de Age'o'Myth (creo que me está empezando a avergonzar el vicio); apagué la máquina antes de terminar la segunda porque me sentía fastidiado: tenía bien caliente la cabeza y los ojos por tanto estar ahí; al principio creí que eran indicios de Temperatura ocasionados por mi cansansio mental y el desvelo, pero luego asumí que era por el calor que desprende esa mauser.

"Tengo que distraer mi mente un poco".

Tomé el libro de Marx para principiantes por Rius y proseguí la lectura que había dejado hace como unas semanas, y que si bien es Marx a modo de historieta, aun así me resulta duro de entender; no es que no sepa de qué hablan, sino 'entender' el oden de las cosas: fuera de las fechas, hay que asimilar y entender la forma, historia, orden, motivos e importancia de gente como Hegel, Feuerbach, Kant, y tener siempre presentes en la RAM conceptos (bien definidos) sobre la lucha de clases, la plusvalía y el capitalismo. En fin; lei unas dos horas hasta que vi que era algo de noche y me despegué para jugar Mario Bros.

Luego de eso encendí la compu y jugué Mythology dos veces, en las cuales perdí. Me conecté a internet, me fui a un foro a responder preguntas y cuando vi ya eran cuarto para la una, chequé mi correo y comenzé a escribir en este blog. En estos momentos son las 1:36 de la madrugada. Voy a darle "Publicar entrada" a esto, voy a reiniciar mi Pc y a jugar Mythology hasta que me aburra o me de sueño.

Mañana me voy a levantar tarde, voy con mis abuelos a celebrar año nuevo (este año hubo un par de circunstancias familiares y no pudimos reunirnos todos como todos los años, pero de todas formas).

No quiero saber nada de esos cochinos menús en lo que resta del año. Ya el año que viene vuelvo a ver esto y a estudiar álgebra porque me la llevé a regularización. ¡Maldito método por determinantes! Sí, lo sé, todos me dicen que despejar X, Y y Z con don Cramer es bien fácil, pero a mí, aunque hago el procedimiento, nunca me sale el resultado bien.

Bueno, hilsener y Feliz Año.

viernes, 30 de diciembre de 2005

¡Avances con los menús!

Lean el post pasado...

luego de bloggear me puse a jugar Mythology. Acabé todo como a las 12:10 de la mañana, ¡vaya que soy bueno para recordar fechas! Y dormí; ni siquiera tenía sueño, pero sí ganas de dormir; me dije: "¡vamos!, tienes la mente muy cansada y ningún libro es partidario de los desvelos", y así me fui a la cama y

Desde la noche del último post, tardé unos 10 minutos en dormir y luego... ¡como angelito!

¿A qué hora me levanté? ¡11:30 de la mañana! Tirándole a 12 del día. Casi la misma hora de ayer.

29 de Diciembre del 2005.

Me levanté, vacilé un poco, desayuné y vi unas películas y luego volví a jugar Mario Bros; pasé a jugar Mythology, apagué la computadora y dormí unos 10 minutos.

Me levanté y ¡dale!, a seguirle con lo de los menús. Estaba algo desanimado, pues no había logrado muchos avances, más que el aprendizaje de algunas funciones, pero lo que me alentaba a seguir era el saber que me había cambiado unas ricas horas de sueño tapado en mi cobija burlándome del frío, por una noche de desvelo rompiéndome le cabeza (es el término más adecuado para lo que hice) pensando y pensando. Investigando en internet y releyendo lo de MSDN.

Perdí un poco de tiempo distrayéndome y llegué como a las 4 y media a encender la computadora y Jugar Mythology, esta vez yo le gané a la computadora: Yo=Set, Compu = Odín Terreno = Anatolía Dificultad = ...moderada... Mi salvación fue que descubrí que los Priest podían convertir anilmales cuando estaban con Set (soy novato en el Myth, llevo como 3 meses nada más).

Luego volví a lo de los menús. Pero con la diferencia de que había descubierto uno de mis problemas: la razón por la que flaqueaba mi hMenú era porque había creado el menú, Y SÓLAMENTE ESO, mas la compu necesita otros datos además de la instrucción de haber creado el menú: ¿dónde chingao lo quiero? Porque como VB es chingón permite que super mega hackers creen menús en ventanas distintas a las de su aplicación, siempre y cuando se sepan el ¡hWnd! que es lo que yo no designé. Mi función quedó:

hMenú = CreateMenu

Call SetMenu(hWnd, hMenú)

Cabe decir que cuando yo hago afirmaciones del tipo "mi problema era este" y doy por saltado un obstáculo, es poque me consta que mis códigos sirven: lo testeé de varias formas: con MsgBox que me dieran los valores tanto de hMenú como de SetMenu cada que se realizaran y después de haber realizado otras acciones.

Eso me alegró mucho y me motivó a que siguiera luchando con mis rivales las APIs, sensuales Valkirias que quieren llevarme al Walhala a darme de comer uvitas en la boca, pero yo les digo "aun no, nenas,¡ grrr...!".

Aun así, mis menús seguían sin aparecer si no lo hacía con el editor de menús.

Pero, ¡eran las 11 de la noche cuando sucedió eso! Y si digo que yo seguí programando entusiasmado por el espadazo que les di, ¿qué nos da a entender? ¡Me volví a quedar sin dormir! ¿Sueño? Me dio un poco pero el frio de la noche me lo quitó, junto con una partida de 10 minutos de Age of Empires (NO Mythology xD), y en este, sin claves y en Moderada, le gané fácilmente a la máquina (combate total). Veo que los de Microsoft sanaron errores de IA del Empires2 en el Mythology.

Luego alzé mi espada como Teseo en el Age of Mythology y proseguí.

Hice otro nuevo descubrimiendo: Mi función sí creaba los menús, eso es obvio, pero antes no me mostraba ni el menú ni las funciones porque, como dije hace 3 párrafos, seguía sin aparecer: estaba mal. Luego usé la función GetMenuItemCount pa' saber qué tan falso es lo que hago. La API es esta:

Public Declare Function GetMenuItemCount Lib "user32" (ByVal hMenu As Long) As Long

que es para saber la cantidad de submenús que hay en un menú; y como parámetro en hMenú ya no le pasé el que me creaba la máquina con el editor de menús, sino con mi hMenú que había sacado con CreateMenu y SetMenuBar y adivinen lo que pasó: ¡me contó todos los menús que yo había creado! Es decir, usé mi variable hMenú con con las apis, asigné el menú y creé unos 5 menús con la función que desarrollé hace no sé cuántos días (ahí pueden ver en los posts anteriores) y el resultado que me devolvió GetMenuItemCount fue no otro que 5. Hice pruebas creando un menú, dos, no creando menús y creando 5, y en todas me devolvió la cantidad de veces que había yo usado mi función, es decir, la cantidad de menús que había creado.

Cuando vi que me devolvía los valores correctos, deformé mi cara, me paré de la silla y grité sordamente "lo logré... lo logré... ¡lo logré!... ¡¡lo logré!!... ¡LO LOGRÉ!..." pero calladito, me puse las manos en la nuca y apreté, lentamente puse mis rodillas en el suelo y me comenzé a convulsionar, caí en el piso convulsionándome sin apartar mis manos de la nuca. Medio me paré y seguí convulsionándome hasta que mi emoción cesó. Eran como las 4 o 4 y media de la madrugada, por lo que todos estaban dormidos, todos excepto el miserable nerd de la biblioteca (le llamo así a este cuarto porque es donde tengo la compu y un madrero de libros y mi consola de Mario :D). Si mi madre o mi hermana me hubieran visto así me hubiera sentido algo estúpido, quizá, o bien hubiera seguido sin importarme el que estén ahí.

Como quiera que sea, terminé de retorcerme como niño de 10 años sin ropa y en el polo norte. Seguí alentado por mi nuevo triunfo y continué.

Lo único que me mantiene en pie hasta ahora es que VOY AVANZANDO. Me quemo horas la cabeza pensando e investigando, pero al final, el avance como ese que hice de SetMenu o como el de GetItemCount, son los que me despiertan y hacen que mis dedos no se cansen.

Pero el problema persistía: le daba F5 al entorno y al ejecutarse el programa no me aparecía la condenada barra de menús. Agunos estarán pensando: ¡usa DrawMenuBar! Pues yo les digo: "hago una llamda a DrawMenuBar al final de mi función Crear_Menú y hago otra en el evento Resize del frmMain.frm.

Con todo esto podemos deducir que el problema es el siguiente: mi barra de menús está creada, está asignada a mi formulario y mis menús están creados y en mi aplicación, pero por alguna extraña y demoníaca razón no se muestran.

Eso es a lo que me enfrento ahora: ¿cómo hacer visible mi barra de menú? Ahora que estoy con esto de los menús es cosa de que abro el Microsoft Visual Basic y abro la MSDN y la pongo en 'Menu Functions', que hasta en favoritos la tengo agregada para no tardarme en llegar. Ando cheque y cheque cada API para ver si alguna me da la respuesta; y vaya que lo ha hecho.

Vean que la hora de redacción en este post es 7:19 am, pero también aprecien lo que he escrito sin parar y sin descanso. En estos momentos son las 7:54 y mi internet es de promoción: se acaba a las 8:00 y como soy bien codo, pues mejor me desconecto para no pagar... ¡pues sí!

No sé si dormir o seguir o jugar Mythology, pero ya me salgo de esto y de los menús unas horas. Más al rato volveré para seguir.

Hilsen

miércoles, 28 de diciembre de 2005

Problemas con los menús

Desde ayer a las 11 de la mañana que me levanté hasta ahora, no he dormido nada. Como verán en el post anterior, comenzé a programar el NekroEditor, pero he estado tan concentrado en los menús y tomado tanta Coca-Cola que no he dormido nada. Me quedé toda la madrugada intentando averiguar cómo es que se crea un menú en el registro. Para crear mis entradas de registro unos:

Call RegCreateKey(HKEY_CURRENT_USER, Ruta & "\Interfaz", Respuesta)

pero como la API de InsertMenuItem requiere de un tipo de datos MENUITEMINFO, no puedo crear variable tras variables As MENUITEMINFO porque eso haría un código enorme, como 10 líneas por cada menú y submenú que cree. Para eso necesito crear una función a la que llamaré: Crear_Menú() :P Soy muy creativo con los nombres, jaja.

Y le añadí unos 5 argumentos para pasarlos a la variable del tipo MENUITEMINFO; y fue precisamente en esa variable donde más me lié: no sabía bien qué valores poner y me trabé mucho con las propiedades .wID y .dwItemData, tanto para que al final ni suquiera se las puse porque resultó que son valores que asigna la máquina automáticamente ¡Ya se me hacía raro que MSDN no explicara nada más que su Application-defined value associated with the menu item o Application-defined 16-bit value that identifies the menu item! ¡Chale! Y yo que me quebré poco más de una hora adivinando qué me quería decir con eso, es decir, el modo en que se emplea, y es que soy tan necio que si no es porque consulté una página en internet que tenía eso traducido, quizá aun siguiera intentando descifrar el Código da Vinco oculto.

Cuando amanecí hoy en la mañana le seguí como hasta las 9 y media de la mañana, después apagué la computadora y me fui a jugar Mario una hora ¡Sí, señores: Super Mario Bros, el juego de Consola! Acabo de cooperar con un amigo para comprar una consola viejita que tenía Mario: y es que es el clásico de Nintendo.

Luego volví a encender este aparato del infierno para jugar Age of Mythology (ni me acuerdo de si gané o perdí, porque juego sin claves y casi todas mis partidas son iguales). Apagué la Pc y dormí un tiempo, no fue ni media hora.

Lo curioso de esta situación es que dormí porque tenía la mente bien cansada y débil, pero no tenía sueño ni ganas de dormir (que son dos cosas distintas). Dese hace como dos días que no tengo ganas de dormir.

Me paré, comí y volví a las andadas.

Con trabajo terminé la función para crear menús, después de tantas horas de sufrimiento mental y el haber borrado mil veces cada instrucción de código para corregirla. ¿Saben cómo me aseguré de que "la función sí funcionaba"? R= Creé un menú con el editor de menús de VB y luego probé mi función: sí lo agregó. Ahora el problema es mi la barra de menús que creé con la API, ¿recuerdan?, hMenú = CreateMenu; pues resulta que mi función de menú crea los menús cuando tengo la barra hecha con el editor de menús, pero no cuando la uso poniendo de hMenú al que yo hice. Sé que el problema no es mi función, sino mi barra de menús.

Otro problema es que mi función crea sólo menús, como lo pueden ser Archivo, Editar, Ver, etc., pero no submenús como Guardar cómo..., nuevo y los clásicos. Eso lo debo investigar.

Luego me harté y salí para ver unas películas, la de 4 hermanos está bien buena, me gustó mucho.

Y en la noche volví para... jugar Mythology un rato, escribirle un mail a mi padre felicitándolo por su cumpleaños, visitando el foro de Arwing y ahora estoy escribiendo este post. Luego ni sé lo que pienso hacer, quizá juege Mythology nuevamente.

Hilsen

martes, 27 de diciembre de 2005

NekroEditor

Hoy me he propuesto comenzar bien un proyecto que quería hacer desde hace meses, pero que por falta de conocimientos no había podido emprender, y ahora que tengo ganas y casi nada de conocimiento ('casi nada', pero algo es algo) decidí.

El nombre del proyecto es "NekroEditor" y consiste en un editor de códigos. Aclaro: me basé en el Notepad2; de hecho este proyecto no es nada novedoso ni que aporte algo, simplemente es una versión personalizada del Notepad2, un Notepad2 hecho en Visual Basic por un novato: lento y con no todas las funciones. Quizá ni siquiera llegue a cargarle los mismos lenguajes de programación, pero como es una versión personalizada, pues les agregaré sólo los que yo conozco: sintaxis para HTML, Visual Basic, CSS y Karel. Ni siquiera me atrevo a implementar Scripts ni C ni Java porque no me siento conocedores de todas sus palabras clave.

Lo primero fue hacer el diseño: un frmMain.frm con dos aspectos: un Option Explicit y un par de lineas para que el RichTextBox (porque uso un RTF 6.0) se acomodara acorde a la ToolBar y la Barra de Estado.

Ahora comienza la fase Modular: un Módulo modMain.bas para el Sub_Main() y las APIs que se usarán en todo el proyecto.

Seguimos con un módulo modReg.bas para las claves en el regedit. Hace unas horas yo no sabía usar ni una API del registro, así que tuve que echarme una leida a MSDN y en menos de media hora ya podía crear mis claves del registro. Las entradas aun no por lo que explicaré más adelante.

Siguiente: modStream.bas para las funciones que utilizaré para aspectos como los archivos de idioma: funciones basadas en el Objeto de Archivos del Sistema que me dirán si existe un archivo o no, si es un archivo .lng de idiomas, que almacenarán el contenido del archivo en un String, almacenarán el número de línea de un archivo, el número de palabra de la linea de un archivo, etc.

Y ahora que pienso trabajar con el Editor de Menús que trae integrado VB recuerdo que, como lo dicta la NekroLicencia, mi código debe tener soporte multilenguaje personalizado porque como va a ser muy famosísimo puede ser que los extranjeros lo quieran traducir a su idioma y ¿cómo le hacen? Pues bien, los menús que crea el editor de menús de VB (que yo sepa) no tienen una opción para cambiar su texto en tiempo de ejecución, y aunque lo tuvieran, pues el objetivo del proyecto es, también, que se me meta algo en mi vacuius cerebruzzz... es tiempo de aprender a usar las APIs de los menú o 'Menú Functions' como dice la MSDN.

Veo cómo son y cómo va la onda: primero necesito crear la barra para obtener un handle que me servirá para la mayoría de las suguientes APIs:

Dim hMenú As Long 'hMenú está en la zona de General del módulo de modReg.bas

pero antes de esta, hay que aludir a una que está en otro módulo:

Dim hWnd As Long 'Está en modMain.bas y comtemplará... el hWnd :->

¿cómo?

Public Sub Main()

   'llamamos a las entradas del registro y otras ondas
   'llamamos a la creación de menús con mi procedimiento Crear_Menús_Estándar()

   hWnd = frmMain.hwnd

   'otras cosillas

End Sub

Ni siquiera sé por qué explico esto del hWnd si se supone estoy hablando de un nivel más avanzado (uy, cállense que ahí viene el l33t c0d3r).

Como sea. Mi primera instrucción en el procedimiento Crear_Menús_Estándar es:

hMenú = CreateMenú

De aquí no platico más porque en eso estoy: aprendiendo a trabajar con la función InserMenuItem. No juego con otras como InserMenu porque son 'obsolete', tal cual las llama MSDN.

Hilsen

viernes, 23 de diciembre de 2005

NekroLicencia

He leido sobre los derechos de autor que existen en el mundo informático: el modo de ser de los "Derechos de Autor" y de la Licencia GNU GPL.

Me gustó mucho esa parodia que hicieron al Copyright: el Copyleft. Todo esto ya lo había leido desde meses atrás, pero volví a investigar para estar actualizado y llevar a buen pie un proyecto informático que tenía: la NekroLicencia.

La NekroLicencia es una licencia de derechos hecha por mí, personalizada. No tiene (creo) nada de Derechos de Autor, pero sí de Licencia GNU. Hubo cosas de ésta última que no me parecieron para mi ética de programador (como si programara mucho :P) y pues, mejor decidí hacer mi propia Licencia.

El hecho de que mi NekroLicencia estuviera basada en la Licencia GLP no significa que sea un plagio o una copia: mi NekroLicencia es mi modelo de licencia predilecto para todo programador o internauta.

La diferencia entre mi documento y (Copyright And Copyleft) destaca en estos puntos, que son cualidades de la NekroLicencia:


  • Nada se vende ni se lucra. Para los que no sepan, incluso con lic. GNU se puede vender, como es el caso de RedHat.

  • Si alguien plagia un texto, no hay forma de darle su merecido al culpable. En palabras más simples: la NekroLicencia ataca sólo de forma moral y ética y no puede haber pruebas de quién dice o no la verdad. Cuestión de honestidad.

  • El software debe incluir código fuente con libre modificación. Si el usuario no agrega el código a la carpeta o zip... no hay forma de obtenerlo.

  • La NekroLicencia consiste en versiones: la actual es la v1.0.1, osea, la primera que he hecho, con el tiempo la iré modificando y sacando a internet.


Pueden descargar la NekroLicencia siguiendo este enlace:


Saludos a Arwing, el Webmaster de la página: gracias por proporcionarme este espacio.

Léanla a ver qué les parece.

Pueden aplicarlas a sus archivos o códigos para que vayan junto con ella. ¿Por qué querrían hacer eso ustedes, programadores de calidad, redactores de e-zines distinguidos?... por ningún motivo aparente.

Hilsen

domingo, 11 de septiembre de 2005

Código del César

El ActiveX en el que pretendo clonar un control, es un proyecto que comencé a hacer sólo para incluirlo en otros que estoy haciendo: unos traductores. Bueno, hace un tiempo pensé en hacer un traductor de lo más sencillo posible.

Pensé en hacer un programa que tradujera un texto normal a uno escrito en Código del César; pues bien, me levanté, me bañé, desayuné, vi tele, jugué South Park Mario Brothers 2 y comencé.

Como sabrán, el proceso de codificación/decodificación del Código del César es de lo más sencillo en cuanto a instrucciones en Visual Basic, y aunque el código que hay tanto en el form como en el modMain.bas es un poco extenso para el fin, ya me fui dando una idea de lo cuantiosa que va a ser mi labor al pretender traductores que requieran de reglas gramaticales para funcionar, y un verdadero diccionario de palabras.

En sí, todo el proyecto encarpetado pesa 15.5 kilobytes y creo que para ser un programa de codificación de lo más básico me salió muy bien. El tiempo récord en que lo hice, desconózcolo, pero sólo fueron algunas cuántas horas, pues no es nada más de poner Chr(Asc(letra) + 3) y ya, puesto que me tuve que enfrentar al lío de las tres primeras letras y las tres últimas. Afortunadamente no le tuve que pensar nada, ya que en cuanto mi mente formuló aquel impedimento, casi de forma instantánea llegó la solución: un pequeño Select Case que usé para convertir todas las letras.

A nivel módulo me encargué de declarar la función para codificar y la función para decodificar, y a nivel formulario, que fue más código, estaba la apariencia: los ajustes para el efecto Form_Resize, el tipo, tamaño y color de letra, algunas opciones y el cmdTrans.

Realmente creo que fue el proyecto que menos tiempo me ha costado terminar.

Aunque todavía sigo pensando en eso de la clonación de Controles.

Hilsen

sábado, 27 de agosto de 2005

Problemas

Ahora estoy pasando por una serie enorme de problemas, pero por ser NekroByte en estos momentos, me voy a limitar a comentar los que he tenido con la informática, que ni son problemas comparados con los que tengo que lidiar en otros ámbitos.

Estoy buscando la forma (en Visual Basic) de hacer que un objeto se duplique: tener un Textbox y duplicarlo con un botón de comando. La respuesta me la sabía, inclusive, además de que ya la había practicado hace algún tiempo, está en MSDN, pues fue de ahí que me orienté. Pero ahora no recuerdo cómo era, ni recuerdo dónde estaba con respecto a MSDN.

Intenté de varias formas pero lo único que he logrado es hacer que una variable contenga una referencia hacia un objeto. Voy a seguir intentando.

Necesito tener esa solución para hacer un par de ActiveX que voy a emplear para unos NekroProyectos que tengo que hacer.

Dentro de el gran Proyecto Águila que estoy llevando a cabo (me llevó arduas noches diseñarlo) se encuentran los famosos "50 Proyectos" en Visual Basic, entre otras marañas. Explico brevemente: los 50 Proyectos son una etapa del Proyecto Águila que consiste en que, antes de terminar aquel proyecto, tengo que tener listos 50 NekroProyectos en Visual Basic, pero no deben ser sólo tonteras. Para que un proyecto cuente como de los 50 Proyectos tiene que tener estas características:


  • No repetirse ni tener nada que ver con los otros NekroProyectos que estoy haciendo.

  • Ser útil.

  • No ser copia de ninguno, pero sí emulación.

  • Se permiten emulaciones, pero tiene que quedar mejor que el programa al que se emula

  • No puede haber dos proyectos que traten de lo mismo: que manipulen el registro por ejemplo, sólo puede haber uno.

  • No tienen que ser algo fácil que conste de cosas que de antemano sé, pues el chiste es que aprenda mucho, ya que es por eso que lo incluí en el Proyecto Águila.



Así que no me pienso rendir. Debo aprender a clonar controles, hay que acordarse cómo. Aunque bien podría estar avanzando con otros proyectos como unos traductores que pienso hacer, creo que lo mejor es comprender primero cómo puedo clonar, sin APIs, un control que haya tenido en tiempo de diseño, pues de eso va a depender que dos proyectos que voy a tomar, logren concluirse exitosamente.

Por otra parte...

Pido ayuda: como ven, cuando se entra al blog aparece un molesto popup que NO debería aparecer. Sé que mi oferta es algo inútil y vana pero... regalo una cuenta Gmail al que me diga qué es lo que origina ese popup. No necesito que me digan cómo subsanarlo, pues entendiendo cuál es la causa, la solución no tarda en llegar.

Aunque yo con el Firefox no tengo que ocuparme de ese popup me temo que desafortunadamente la mayoría de los usuarios navegan usando Internet Explorer. Ya intenté censurando el Tag-Board que tenía el blogger (que además generaba un error para los de Internet) y quitando un contador de visitas, pero veo que ese no es el problema. Fíjense en el código fuente qué es lo que ocasiona que esa ventanita aparezca.

No creo que sea el mismo Google, pues Google no es de dar spam en sus servicios, además veo que otros Blogs no tienen esa ventanita.

Esto no es un problema, sino una molestia. Problemas los que tengo en la escuela.

Hilsen.

miércoles, 29 de junio de 2005

Va de nuevo

He reestablecido todos los post del blog. Voy a comenzar de nuevo, no sé cómo me vaya a ir, pues estoy más adentrado leyendo y no cuento con mucho tiempo para publicar algo, pero aun así lo voy a intentar.

Y bien, aquí comienza una nueva era.

Hilsener.