Archive for category cosas técnicas

Jueves 7, probando con PHP

Pues eso, hoy día de San Valentín Fermín (sí, el de 1 de enero, 2 de febrero, 3 de marzo, 4 de abril, 5 de mayo, 6 de junio, 7 de julio…) y el día en que mi amiga Ana es tita nuevamente, me ha dado por probar una cosa muy simple en PHP, (esta sería la primera vez que escribo código de PHP), y en esta página voy a hacer la prueba antes de hacerla en la parte que en realidad me interesa.

Es algo muy simple, obtener los segundos actuales y mostrar un mensaje de si es menor o no que 30.

A ver si me sale… ahí va:

 

59 es mayor que 30.

 

El código usado es el siguiente:
 

<?php
 $los_segundos = date("s");
 if ($los_segundos < 30) {
   echo "$los_segundos es menor que 30.";
   }
 else {
   echo "$los_segundos es mayor que 30.";
   }
?>

 

¿Ha funcionado?

Espero que sí...

Y para comprobarlo, esta es la fecha y hora actual:

19/05/2012 12:44:59

 

Nos vemos.

Guillermo

P.S.

Parece ser que el editor este no permite usar código internamente... ni siquiera usando el bloque <code> ... </code> :-(

Aunque sea un rollo (al cambiar del editor al código se cambia el código)... siempre hay alternativas...

...

Tags:

Domitienda.com ofrece hosting con bases de SQL Server 2008 sin coste adicional

Pues eso… ya sabes que www.Domitienda.com colabora “activamente” con el mantenimiento de mis sitios y de este blog y cuando digo “colabora” me refiero a que colabora económicamente, así que… aquí estoy yo poniéndole un poco de publicidad para que sepas que además de ofrecer alojamiento (o hosting) de todo tipo y a un precio que con la calidad de servicio que dan es difícil de que encuentres algo mejor, pues eso, que no sólo alojamiento de ASP.NET 4.0 (incluso de versiones anteriores) o alojamiento para ASP y PHP y bases de MySQL o Access o de SQL Server 2005 (si ya empiezas a usar el alojamiento básico), ahora también puedes crear bases de datos de SQL Server 2008 y sin coste adicional, por supuesto las bases de datos de SQL Server (sea de la versión que sea) puedes usarlas si contratas el alojamiento Básico que sólo cuesta 59,40 euros al año (4,95 euros al mes) más impuestos,

Así que… ya sabes… entérate de qué tienes que hacer para usar las bases de datos de SQL Server 2008 en los alojamientos de www.Domitienda.com y empieza a sacarle más rendimiento a tu alojamiento.
En ese post del blog de Domitienda te explican cómo usar/configurar las bases de datos desde tu equipo usando el SQL Server Management Studio 2008 Express.

Nos vemos.
Guillermo

Tags: ,

Reutilizar un control en otros controles

Pues eso… aquí te voy a explicar cómo usar un mismo control en más de un "contenedor" (o colección de controles), y como comprobarás, en principio, es algo muy simple de hacer (una vez que se sabe cómo hacerlo, claro, que si no… ¡ja! ya me dirás tú cómo lo harías si nadie lo explicara, pues eso…)

 

Sí, es un tema técnico… ;-) pero eso no quiere decir que no lo empiece cómo "debe ser".

 

A lo que vamos, de lo que se trata es de tener, por ejemplo, un control PictureBox y ese mismo control mostrarlo (o usarlo) en controles diferentes.
En realidad en contenedores de controles o colecciones de controles, que para el caso es lo mismo, además de que en .NET todos los controles pueden tener otros controles dentro (al menos eso es lo que parece o hace suponer al existir en cada objeto de tipo Control una propiedad llamada Controls que es un objeto del tipo ControlCollection (para saber más pulsa en los enlaces y te llevará a la documentación de .NET Framework 4.0).

Para lograr eso lo que tenemos que hacer es añadir el control en cuestión a la colección Controls del contenedor al que lo queremos mover.
Por ejemplo, si tenemos un control del tipo TabControl y cuando pulsamos en la primera y/o la segunda ficha (TabPage), haremos que un control llamado PictureBox1 se añada a esa ficha.
Con el siguiente código (para Visual Basic) lo conseguiremos:

 

Private Sub TabControl1_SelectedIndexChanged(ByVal sender As Object, _
                                             ByVal e As EventArgs) _
                                            Handles TabControl1.SelectedIndexChanged

    Select Case TabControl1.SelectedIndex
        Case 0
            TabPage1.Controls.Add(PictureBox1)
        Case 1
            TabPage2.Controls.Add(PictureBox1)
    End Select
End Sub

 

Si prefieres usar C#, utiliza el siguiente código:

private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
    switch (tabControl1.SelectedIndex)
    {
        case 0:
            tabPage1.Controls.Add(pictureBox1);
            break;

        case 1:
            tabPage2.Controls.Add(pictureBox1);
            break;
    }
}

 

Si en lugar de añadirlo directamente a una ficha (tabControl) necesitas que esté en otro contenedor, por ejemplo, dentro de un GroupBox, simplemente sustituye el nombre del control que hay justamente antes de Controls.Add por el control que te convenga. Lo mismo ocurre con el control añadido (el que está entre paréntesis después de .Add), puedes añadir cualquier control.

 

Si al ver el código de ejemplo te preguntas algo así:

P: Guille, ¿no crees que sería necesario quitar el control antes de añadirlo a otra colección? ya que de esa forma tendríamos repetido el mismo control en más de una colección.

La respuesta podría ser como esta:

R: Buena pregunta, lo que indica que "has leído el código", pero no es necesario.

 

¿Por qué no es necesario eliminar un control de una colección antes de añadirla a otra?

Porque el propio .NET se encarga de eso, es decir, si un control se añade a una colección de controles, automáticamente se quita de la que ya estuviera.

Esto no es que lo haya "adivinado" yo, es que está en la documentación del método Add, que por cierto yo no lo había leído hasta después de hacer el proyecto de ejemplo, en el que me dio por probar a ver qué pasaba si no eliminaba previamente el control de la colección, y al ver que no ocurría "nada raro" (es decir, todo funcionaba como debería funcionar) me dio por leer la documentación y esa documentación tiene una nota que dice:

 

Un objeto Control sólo se puede asignar a una colección Control.ControlCollection a la vez. Si el Control ya es secundario de otro control, se quita de ese control antes de agregarlo a otro.

(el texto anterior está extraído de la ayuda en línea de .NET Framework 4.0 en castellano, concretamente de la definición del método Add de la clase Control.ControlCollection)

 

 

Espero que te sea de utilidad.

 

Nos vemos.

Guillermo

Publicado con fecha del lunes 16 de mayo a las 22:00, pero en realidad lo acabé de escribir (y publicar) el martes 17 de mayo a las 00:05

Tags: , , , ,

Recuperando cosas de elguille.info

Pues eso… que ya que no me "animo" a escribir cosas nuevas, he pensado que puedo ponerte enlaces (links) a cosas que ya publiqué en otros años, ya que, por si no lo sabes, en noviembre de este año 2011 hará 15 años que mi sitio está en la red de redes… osease Internet.
Así que… material para mostrarte hay… lo que aún no he decidido es cómo ir poniendo los enlaces, ya que en un principio había pensado hacerlo desde el más antiguo al más reciente, pero no sé… algo se me ocurrirá…

Es que no quiero que te quedes con la cosilla de que te he abandonado, ya que abandonar a "mi gente" nunca lo haré… o al menos intentaré por todos los medios no "tener" que hacerlo, y mira que ha habido momentos muy malos (tanto económica como moralmente) en los que casi he estado a punto de tirar la toalla (o mandarlo todo a freir espárragos), pero… aquí sigo…
Es que, ya sabes (o deberías saber) que mantener un sitio en Internet necesita no sólo dinero (que también) si no mucho tiempo que dedicarle y el que me diga que eso lo soluciona con sólo prestarle atención una vez a la semana, pues… yo le digo que sí, que vale, pa ti la burra… pero a mí eso nunca me ha funcionado y esto de ponerme a escribir o actualizar cosas me toman más de tres o cuatro horas… incluso escribir esto que te pongo hoy supone dedicarle al menos una hora… como te lo digo…

Que soy un pamplinoso, puede (seguro que tienes razón) pero… así soy y no creo que a pocos meses de cumplir los 54 vaya a cambiar… que lo mismo puedo cambiar… pero no sé yo si me gustaría ese cambio… ¡umaíca, déjame como estoy! ;-)

 

Lo dicho, hoy te pongo un par de enlaces y cada semana intentaré añadir un par de ellos más para que así puede que encuentres cosas que pensabas que no estaban en mi sitio y… pues eso,que sí que estaban.

 

Nos vemos.
Guillermo

P.S.
Este misma nota (o "post") la he publicado en mi sitio, pero te la pongo en el blog por si quieres comentar algo, que a muchos os gusta hacer comentarios, y ya que eso es gratis, pues… ¡venga! ¡comenta lo que quieras! ;-)

Tags:

Yo lo intento, pero el Expression Web sigue con sus fallos

Pues eso, que me pongo hoy a actualizar cosas de mi sitio y después de un rato creando secciones, las páginas de enero, y esas cosas… y aunque ya había guardado las cosas escritas, aunque sin tanta insistencia como con las versiones anteriores (ahora uso el Expression Web 4) ya que se "colgaba" menos que las versiones anteriores… pues… va y me da un error en una página maestra (master page) y después de darle a cancelar (para comprobar si realmente me había cargado algo) va y se cuelga… creo que sólo me ha dejado esa página sin guardar pero… no deja de ser un incordio… y si ya me cuesta trabajo ponerme con el Expression Web a crear/actualizar las páginas de mi sitio, si además se sigue colgando el puñetero programa, pues… menos ganas tengo de "perder" el tiempo… en fin… paciencia… y a seguir usando el Crtl+S (para guardar, sí, uso la versión en inglispitinglis).

Además lo curioso es que siempre se me cuelga con alguna página que usa o es una página maestra (master page) y claro, cuando reporto el bug (o reportaba, ya que después de reportar unos cuantos o varias veces el mismo, como que me he hartado de que no lo puedan reproducir) y me dicen que no lo pueden reproducir o que a gente que lo usa bastante (el Expression Web) no se le cuelga, eso me da que pensar de que esa gente (ni siquiera los de Microsoft) utilizan las Master Page (páginas maestras), pero como da la casualidad de que yo si las uso… porque pensé que era una buena solución para mí, ya que yo NO uso bases de datos para almacenar el contenido de mi sitio (sí, puede que tuviera que hacerlo, pero… ¡me niego! bastante tengo con el blog) por tanto no me vale el usar plantillas "estáticas" o configurables (como prefieras llamarlas), si no, que he optado por usar las master page y esas páginas maestras están muy bien, además de que a mí en particular me ayuda a tener ciertas secciones o partes de las páginas actualizadas sin tener que modificar chorrocientasmil páginas (que son las que tengo desde hace casi 15 años en mi sitio web), y el problema es que esas páginas maestras sólo las soporta este editor Web además del Visual Studio, pero éste último es poco amigable para usarlo como editor de sitios Web, aunque en la versión actual (VS 2010) no lo he probado tan a fondo como en la versión 2008, pero si en la versión anterior fallaba al usarlo como editor de páginas Web no quiero pensar qué es lo que ocurrirá con la versión 2010… lo mismo lo pruebo un día de estos…

Bueno… te dejo, que con esto ya he descargado un poco el "mal rollo" que me ha dado con el puñetero Expression Web 4.

 

Nos vemos.
Guillermo

Tags: ,

Obtener info de la ventana en la que está el cursor del ratón

Pues eso… un ejemplo para Visual Basic .NET y C# de cómo usar funciones del API y de .NET… no me enrollo, te dejo la descripción y el enlace:

 

 

Obtener info de la ventana en la que está el cursor del ratón

Usando funciones del API de Windows (WindowFromPoint y GetWindowText) y clases de .NET Framework (Cursor.Position), averiguar el handle de una ventana según la posición del cursor del ratón (mouse) y como ejemplo mostrar el texto de esa ventana y su handle, la ventana puede ser incluso un control.

 

 

Nos vemos.
Guillermo

Tags: , ,

C++/MFC: Cambiando el comportamiento predefinido de un control (IV)

Pues eso, una nueva entrega de RFOG sobre la forma de cambiar el comportamiento de los controles usando C++

 

Cambiando el comportamiento predefinido de un control (IV)

  • Creación de nuevos mensajes
  • Ahora que ya hemos redefinido y ampliado el comportamiento del control, es tiempo de hacer algo para que el contenedor o propietario sepa que han ocurrido eventos como la creación de un nuevo elemento.

 

¡Que lo disfrutes!

 

Nos vemos.
Guillermo

Tags: , , ,

Sorteo solidario: participa y gana un VS2010 + MSDN

And the winner is (o sea, el ganador es):

Joan Baptista Fabregas

que ha donado a la Cruz Roja Española

¡Enhorabuena!

Tags: ,

Se solidario y gana un Visual Studio 2010 Ultimate con MSDN

 

 

And the winner is: (o sea, el ganador es)

Joan Baptista Fabregas

que ha donado a la Cruz Roja Española

¡Enhorabuena!

 

 

Pues eso… que ya llevo unas cuantas semanas queriendo proponértelo, pero por unas cosas u otras, pues… y la cuestión es que el plazo se va acabando, ya que el tiempo máximo para responder a esta "solicitud" acaba el 23 de este mes de diciembre.

El regalo principal (el que más urge entregar) consiste en una suscripción a MSDN con Visual Studio 2010 Ultimate, que en los EEUU está valorado en 11,899.00 USD y en España está valorado en 15.299,00 Euros, y por si no te lo crees te dejo los links a esas dos "ofertas" para que lo compruebes y de paso veas qué es lo que contiene, que como adelanto te puedo  decir que contiene prácticamente todos los productos de Microsoft… sí, lo que yo te diga, desde sistemas operativos a herramientas como Office o Expression Studio…

¿Cómo participar?

Muy fácil, haz un donativo de una cantidad mínima de 10 unidades de la moneda de tu país, por ejemplo, 10 euros en España, 10 USD en los EEUU, 10 soles en Perú, 10 pesos mejicanos en México, etcétera.

Ese donativo lo puedes hacer a cualquier ONG o entidad sin ánimo de lucro que se dedique a ayudar desinteresadamente a otra gente, como puede ser la Cruz Roja, médicos sin fronteras, etc.
También puedes aportar a Ayuda a Juanma, que como sabes hace tiempo que desde mi sitio he estado apoyando (y sigo haciéndolo aunque no lo vaya pregonando), pero el darte más oportunidades de que esa donación la hagas de forma "localizada" en tu propio país es para que no haya excusas de que ese importe no lo puedes enviar a España… y como ves también estoy facilitándote las cosas con idea de que el ingreso lo hagas en la misma moneda de el país en el que residas, así no habrá gastos extras por cambios de divisas.

Por cada donativo que hagas por la cantidad "mínima" tendrás una oportunidad en el sorteo que haré el día 24.

Esto quiere decir, que si haces un donativo de 20 ??? tendrás dos oportunidades en el sorteo.

¿Cómo justificar que has hecho el donativo?

En principio lo comentas en este mismo "hilo", además me mandas un mensaje a esta cuenta:

mensaje_elguille.info

indicando cuánto has donado y a qué ONG has donado y en qué fecha has hecho el donativo.

En el asunto, por favor escribe: Sorteo solidario 2010.

NO HACE FALTA QUE ME MANDES EL JUSTIFICANTE.

Ese justificante te lo guardas (debe existir un justificante del ingreso que realices, si no, no vale) y si te toca, me mandas una copia, ni que decir tiene que ese ingreso debe tener la misma fecha que me hayas indicado en el mensaje que me mandaste en su momento, si no… ¡NO SERÁ VÁLIDO! (así evito que la gente pueda hacer trampa).

La fecha límite para participar en este primer sorteo es a las 23:59 del 23 de diciembre de 2010 (hora de España).

Habrá más sorteos, entre otras cosas:
-2 Visual Studio 2008 Professional (sólo para España, ya que son los paquetes tal y como se venden)
-3 alojamientos web durante un año (con soporte PHP y ASP)
-y más que aún tengo que concretar

Y todos los que no consigan el regalo que corresponda, participarán en los siguientes, es decir, que ese donativo que hagas ahora te puede servir para el próximo sorteo.

¿Esto que dices es fiable?

Por si te entra la paranoia de pensar que esto es mentira (¿cómo puede el Guille regalar más de quince mil euros si siempre dice que está tieso?), decirte que ese Visual Studio 2010 Ultimate con MSDN es un regalo que la gente de Microsoft me ha dado por haber participado en la evaluación de Visual Studio y además ser un MVP de una herramienta de desarrollo de Microsoft.
Y para tu tranquilidad comentarte que en las dos versiones anteriores de Visual Studio, también hubo regalos parecidos y la gente que los disfrutó en su momento te lo puede confirmar.

Bueno, ya sabes, haz tu donativo, comenta aquí mismo en el blog que lo has hecho (para comprobar mejor el correo por si no lo veo o se pierde en el SPAM) y sobre todo mándame un mensaje con el importe que has ingresado y a qué entidad lo has hecho (y la fecha).

Esperemos que no haya que dejar este primer premio por falta de donativos (espero que como mínimo hayan donado unas 20 personas).

Algunas organizaciones a las que puedes hacer el donativo

Por si tienes dudas de dónde hacer el donativo, aquí te dejo algunos enlaces de la Cruz Roja (y Media Luna Roja) de España y Latinoamérica, con idea de que no tengas que perder mucho tiempo en indagar.

Decirte que entres en la página de tu país y busques cómo hacer donativos, ya que en las páginas de cada país te indican cómo hacer ingresos en tu propia moneda, mientras que en la página "internacional" los donativos deben hacerse en dólares USA, francos suizos o euros.

Médicos sin fronteras:

  • AMAIF (Asociación Madrileña de Ayuda a la Infancia)

Bueno, espero que participes en el sorteo y si tú no ganas algo, al menos habrás ayudado a que otros ganen ayuda, que no es poco.

Nos vemos.
Guillermo

P.S. (20:53 23/Dic/10)
Para que haya más oportunidades (y no queden excusas) para participar, admitiré los donativos que me lleguen (avisados por correo electrónico) antes de las 11:00 GMT+0 del 24 de diciembre, es decir, una ampliación de 12 horas al plazo establecido… es que hasta esa hora más o menos no me pondré con el sorteo, así que… un poco más de tiempo ;-)

Tags: ,

Martes 26, la segunda charla en Monterrey

Pues eso… que hoy martes 26 de octubre a las 10 de la mañana en el Auditorio Gumersindo Cantú Hinojosa, FACPyA que está en la Av. Universidad s/n, Ciudad Universitaria en San Nicolás de los Garza, México, será la segunda y última charla que daré en el "1er Encuentro Internacional de Tecnología de Información: Haz Click Piensa en TI", en esta ocasión el tema será sobre las novedades de Visual Basic 2010.

Espero que en esta ocasión lo pasemos igual o mejor que ayer lunes… creo que la gente se divirtió además de aprender algunas cosas nuevas… al menos los que estaban pendientes de la charla (que era la mayoría, todo hay que decirlo… y estamos hablando de que habría más de 1200 personas… sí, muchas)

 

Bueno… nos vemos allí y si no puedes asistir, pues… ya te contaré por aquí que tal ha ido o también te puedes enterar por mi página de "el Guille info en Facebook".

 

Nos vemos.
Guillermo

Tags: , , , ,