How to Add Color (or image) to Sdl.Net Window

So many time from the last post, but I need to get more time to post now I write about how to add color or image background to basic Window SDL in any OS, first we need to write the next lines accord to previous post (say more with less words):

import SdlDotNet
import SdlDotNet.Graphics from SdlDotNet
import SdlDotNet.Core from SdlDotNet
import System.Drawing

screen = Video.SetVideoMode(640,480)
Video.WindowCaption = "This is a simplest sample"
screen.Fill(Color.FromArgb(255, 0, 0))
screen.Update()
Events.Quit += Events.QuitApplication
Events.Run()

If you check the code (3 new lines), we need add the System.Drawing assembly to our code to use one specific function (yeah, the Color.From.....), just few lines (only 2) to make one Sdl.Net Window with Color (in my sample code use RED -rgb: 255, 0, 0-, but you can change it that you prefer in rgb notation) and one update to the screen -screen.update()-. Now if I can change the color, how Can I put one image to background Sdl.Net Window?, So simple with Boo really just only test the next code:

import SdlDotNet
import SdlDotNet.Graphics from SdlDotNet
import SdlDotNet.Core from SdlDotNet

screen = Video.SetVideoMode(640,480)
Video.WindowCaption = "This is a simplest sample"
screen.Blit( Surface("background_image.jpg") )
screen.Update()
Events.Quit += Events.QuitApplication
Events.Run()

Note you need one Surface object, who have the name of the image file, this object is parameter to one BLIT method on Screen Object, finally you need Update the screen to works.

PD: I hope this code can be useful for any. If not please Fire this Blog with FLAMES comments. :P

Boo & Sdl.Net

Sdl.Net is a wrapper to SDL lib use the Tao Framework, it makes easy and simple the access to the common Sdl functions together a Boo (one programming language) is possible to write code meaningful (it isn´t a painfull experience) to make graphics into cross platform. I wrote the next code and works fine to me. I hope that enjoy the same...

import SdlDotNet
import SdlDotNet.Graphics from SdlDotNet
import SdlDotNet.Core from SdlDotNet
#// Make Window - Crear la ventana
screen = Video.SetVideoMode(640,480)
#// Enable Quit Event - Cerrar la ventana
Events.Quit += Events.QuitApplication
#// Give the main loop to application - Habilitar los eventos
Events.Run()


P.S.: Yes, only 6 Lines of Source Code to make ONE black WINDOW (size: 640x480 pixels), to continue with the process, you could add extra line after the "screen" creation and before first "Events" Line

Video.WindowCaption = "This is a simplest sample"

To give caption to this sample, if you ask about how to run just only type in one terminal:

$ booi fileName.boo

P.S. Aditional: This sample works fine, but need some libraries:
Sdl.Net, Tao Framework, .Net/Mono Framework and run into MS Windows and GNU/Linux. :P

mm, u r not alone!!! yet :P

Retomando el Manual

En verdad no los hemos olvidado, estaremos retomando la elaboración del manual para templates de Joomla! 1.5 posiblemente para primera semana del proximo año, que puedo decir me dejaron solo y estoy algo corto de tiempo todavia.

Disculpen las molestias

GMail prevendrá que envíes correos si estás algo alcoholizado

Gracias a Eduardo de Alt1040 descubrí una... por decirlo de alguna manera, "curiosa" utilidad para GMail; se trata de una extensión o "hack" que evitará que envíes correos electrónicos cuando estés "pasado de copas"... ebrio, borracho, alcoholizado, o como decimos acá en mi Perú, cuando estés ¡Huasca!.

¿Y en que consiste la magia? A decir verdad no se trata de ningún dispositivo para el control de alcoholemia digital ni nada parecido; se trata de lo siguiente: Una vez configurada la extensión para GMail, denominada Mail Goggles, cada vez que quieras enviar un mail un viernes, sabado o domingo por la noche (que son los momentos más peligrosos) GMail te planteará algunas operaciones matemáticas muy sencillas, si no las respondes bien en menos de 43 segundos Google te "salvará la vida" evitando que envíes ese mail del que, de otra manera, te arrepentirás de por vida.

Por defecto Mail Goggles se activará los fines de semana durante las horas que es más factible que estés ebrio (de 10 de la noche a 4 de la mañana), aunque podrás indicar tú los días y horas que te parezcan convenientes, eso de acuerdo a tus hábitos chupísticos "costumbres sociales".


Ahora hecha un vistazo a las operaciones, no son tan complicadas ¿o sí? bueno, eso depende de cuán ebrio estés.


Si crees que vas a necesitar este hack en tu GMail solo tendrás que loguearte en la versión en inglés de tu correo, dirigirte a la opción Settings y luego a la pestaña Labs que está en la parte derecha de la ventana, finalmente buscar y habilitar Mail Goggles para que comience a funcionar.

Vía | Alt1040
Enlace | GMail Official Blog

Manual de Templates para Joomla! 1.5.x - Consejos para empezar a codificar.

Continuando con el manual para templates de Joomla! 1.5.x, me encantaría qeu dejasen algunos comentarios, para indicar cuales son las deficiencias q encuentran en este manual o que creen que debería colocar, antes de seguir:

Consejos para empezar a codificar.

Una de las primeras cosas que nos dicen los manuales sobre cómo crear plantillas para cualquier CMS es que no podemos usar editores WYSIWYG como el dreamweaver o que estos no podrán sernos de gran ayuda durante el desarrollo de nuestra plantilla, a mi parecer esto no es del todo cierto por lo que considero que el diseño de una plantilla para Joomla! debe de desarrollarse en cuatro pasos:

Primer paso: El Diseño.-

No importa cuál sea el método que utilizamos para diseñar nuestra plantilla o nuestro sitio web en general, este debe de contemplar todos los aspectos de la misma o al menos los más generales que lo conforman. Lo ideal es trabajar el diseño en un programa de diseño que nos sea familiar, realizando en este las vistas que consideremos más importantes pero manejándolas inicialmente en forma grafica a manera de una maqueta. A más detallada este nuestra maqueta, más sencillos serán nuestros demás pasos.

En nuestro caso en particular lo más importante es considerar dentro de nuestra maqueta ciertas partes que son de uso general en el Joomla!; recordemos primero que el Joomla! se compone básicamente de Módulos (Menús, encuestas, Titulares, Banners, etc.), que son los que se encargan de mostrarnos la “información adicional” de cada página y los componentes (Artículos, Secciones y Categorías en vistas de Blog o simple, resultado de encuestas, etc.) que se encargan de mostrarnos el “contenido” de la página en que nos encontramos, por tanto nuestra maqueta debe de considerar estos aspectos antes de empezar a trabajar.

Segundo paso: La codificación.-

Como indicaba al inicio de este post, en lo personal creo que si se puede usar un editor WYSIWYG, solo se trata como hacerlo; lo que podemos hacer es armar en este paso el diseño que hemos realizado en el paso anterior como si de un sitio web tradicional se tratase armando cada una de las pantallas que vamos a necesitar para completar nuestra plantilla Joomla! lo único que necesitamos en esta etapa es tener en cuenta los siguientes consejos:

  1. Existen clases predefinidas en el Joomla!, las cuales debemos de usar a la hora de codificar nuestro diseño en especial el CSS. Estoy armando un “diccionario de variables” de estas clases que espero tener listo para el próximo post y estoy seguro les será de mucha utilidad.
  2. Mantener todos los archivos que vamos a usar en su construcción dentro de la carpeta de nuestra plantilla usando para relacionarnos con el archivo direcciones relativas y conservando el esquema de carpetas y archivos indicados aquí exceptuando el index.php y la carpeta html/ los cuales recién crearemos en los pasos siguientes.
  3. Guardar nuestros “archivos base” con extensión .html lo que facilitara su visualización y tratar de usar nombres descriptivos como “vista_articulo.html”.

Nota: Los archivos .html son temporales y serán eliminados una vez terminada la plantilla.

Tercer paso: Adaptación al Joomla!-

Bueno si tienen experiencia en el desarrollo de templates, supongo que el paso anterior y este son realmente absurdos, pero en verdad facilitan la comprensión de cómo trabaja el Joomla! y es posible que con algo de practica estos pasos terminen simplificándose en uno solo.
En este paso se crea el archivo index.php, basado en el código de nuestros “archivos base” anteriores, luego remplazaremos ciertas partes del código del mismo por llamadas del código de Joomla!

Cuarto Paso: Creación de Módulos y Componentes.-

Similar al paso anterior, se irá copiando código de nuestras bases y realizando las modificaciones necesarias para la creación de los módulos componentes y visualizaciones necesarias para la creación de nuestra plantilla.
En los siguientes post continuare con la construcción de el archivo index.php y de los módulos y componentes, pero antes de empezar sería recomendable leer el diccionario de variables.

Off-Topic: Triste historia...


En verdad nada les cuesta hacer click a este enlace y es que la historia es la más triste que he escuchado en mi vida... mmmm... jajaja

En fin la historia va como sigue, si consigue juntar 5 000 000 de entradas en un mes, digamos que su amiga le hará el "favor", y tomando en cuenta que esta como preso creo que el castigo de que quede como esclavo de la misma por una semana es lo de menos preocupación.

Si desean conocer la historia al detalle entren al siguiente enlace http://www.prawiczek25.pl/index_en.php donde podrán leer la historia en ingles.

Manual de Templates para Joomla! 1.5.x - templateDetails.xml

Continuando con el manual para templates de Joomla! 1.5.x, la lección de hoy es:

templateDetails.xml

Como indicamos en el post anterior, este archivo incluye la lista de todos los elementos que conforman la plantilla de Joomla! 1.5.x y es muy importante tenerlo bien configurado a la hora de la instalación del mismo, es decir, estar seguro que estamos listando todos los archivos y que todos los archivos listados existan realmente. Este archivo también incluye cierta información de la plantilla, nombre, versión y descripción, como del autor y sobre el copyright.

El código XML del mismo tiene la siguiente estructura:

<?xml version="1.0" encoding="utf-8"?>

<install version="1.5" type="template">

<name>nuestro_template</name>

<creationDate>Septiembre 2008</creationDate>

<author>Madi Malso</author>

<copyright>GPL</copyright>

<authorEmail>micorreo@dominio.com</authorEmail>

<authorUrl>www.muertoperorankeado.com</authorUrl>

<version>1.0</version>

<description>Ejemplo de plantilla para Joomla! 1.5.x</description>

<files>

<!-- Lista de todos los archivos que conforman la plantilla -->

<filename>index.php</filename>

<filename>templateDetails.xml</filename>

<filename>template_thumbnail.png</filename>

<filename>favicon.ico</filename>

<filename>component.php</filename>

<filename>param.ini</filename>

<filename>css/template.css</filename>

<filename>html/pagination.php</filename>

<filename>html/modules.php</filename>

<filename>html/com_nombre/nombre_vistas/diagramado.php</filename>

<filename>html/mod_nombre/diagramado.php</filename>

<filename>images/imagen_demo.jpg</filename>

<filename>jascript/java_demo.js</filename>

</files>

<positions>

<!-- Lista de las posiciones con las que contara nuestra plantilla, estas se encontraran definidas en el archivo index.php -->

<position>user1</position>

<position>top</position>

<position>left</position>

<position>banner</position>

<position>right</position>

<position>footer</position>

</positions>

<params>

<!-- Lista de parámetros con los que contara nuestra plantilla, estos se encontraran definidos en el archivo param.ini -->

<param name="coloresFondo" type="list" default="blanco" label="Color de Fondo" description="Colores de fondo para usar">

<option value="azul">Azul</option>

<option value="rojo">Rojo</option>

</param>

</params>

</install>

Como pueden ver la estructura es bastante sencilla y simple de armar aunque en un plantilla puede ser algo engorrosa lo mejor es mantener todos los archivos en orden he ir agregándolos a medida que los creemos. Bueno pasemos a describir algunas de estas líneas:

<install version="1.5" type="template">: Sirve para indicar al instalador que es una plantilla de Joomla! 1.5

<name>nuestro_template</name>: Nombre de la plantilla, como indicamos antes este debe ser el mismo nombre que colocamos en la carpeta que contiene la plantilla.

<creationDate>Septiembre 2008</creationDate>: Fecha de creación, no hay una estandarización al respecto así que puede colocarse de distintas maneras siempre y cuando indique la fecha en la que la plantilla fue creada.

<author>Madi Malso</author>: Sirve para indicar la autoría de la plantilla

<copyright>GPL</copyright>: Indica el tipo de licencia con la que deseamos distribuir la plantilla para su uso.

<authorEmail>micorreo@dominio.com</authorEmail>: Indica la dirección de correo electrónico del autor en caso de querer ser contactado. Esta dirección se encuentra protegida para evitar el envio de spam a través de robots

<authorUrl>www.muertoperorankeado.com</authorUrl>: Dirección del sitio web del autor.

<version>1.0</version>: Versión de la plantilla

<files>..<files>: Lista de todos los archivos que conforman la plantilla; cada elemento debe de encontrarse dentro de sus propias etiquetas bajo el siguiente esquema: <filename>carpeta/archivo.ext</filename> en caso de que estos archivos se encuentren en carpetas dentro de la plantilla estas se deben de listar de manera relativa a la posición en la que se encuentra el template, por ejemplo si quisiéramos incluir nuestro archivo template.css que se encuentra dentro de la carpeta css/ se debería colocar de la siguiente manera: <filename>css/template.css</filename>

<positions>..</positions>: Lista de las posiciones que luego serán definidas en el archivo index.php donde se integraran los módulos de Joomla! 1.5.x, similar a los archivos estos se definirán dentro de las etiquetas <position>Posición</position>

<params>..</params>: Lista de los parámetros con los que trabajará nuestra plantilla este se encuentra definido de la siguiente manera: <param name=”NombreDelParametro” type=”tipo” label=”Etiqueta para el parametro” description=”Descripción del parametro” default=”valor inicial del parametro”>; según el tipo que hayamos tiene sus propias variaciones.