Instalando Apache PHP y MySQL
Un recordatorio para mi mismo de como instalar el tandem Apache / MySQL y PHP… siempre tengo que andar mirando cientos de articulos por ahí… cuando se supone que es lo más sencillo del mundo.
1 - Descargar Apache e instalar. (version 2.2.17 en este caso.)
1.1 Instalar en custom y agregar los headers (todo desde el ordenador.) (dar ok y permitir alertas de seguridad de windows)
2 - Descargar MySQL community server. (no registrarse… dar directamente a “no thanks take me to the downloads”) http://www.mysql.com/downloads/mirror.php?id=402100#mirrors
2.1 Instalar mysql picar en custom y asegurarse que todos los componentes están para instalar. (dar ok y permitir alertas de seguridad de windows)
2- En el configurador de MySQL seleccionar:
- Developer Machine.
- Multifunctional DB.
- El disco duro que queramos.
- Online Transaction Processing.
- Enable TCP/IP networking.
- Enable Strict mode.
- Standard Character set.
- Activar Install as windows service y include bin directory in Path.
- Establecer el password de Root. (usuario será root y password el que pongamos) !recordar este password!!!
- Excute configuration!
Esperar que tarda, y parece que se cuelga, simplemente esperar a que termine.
3 - Descargar PHP (http://windows.php.net/download/) descargar versión Thread safe. descargar el Installer.
3.1 instalar php
3.2 Aceptar e instalar como Apache 2.2.x module.
3.3 Instalar los extras y como script executable.
Install. y permitir alertas de seguridad de windows, probablemente de un error al configurar el HTTPD de apache, esto me pasa siempre y tengo que configurar manualmente… simplemente pasamos de este error.
Vale, ahora reiniciamos el ordenador.
Una vez reiniciado, veremos que el apache todavía no ha arrancado, entonces vamos a inicio / todos los programas / Apache Http server…/ Test Configuration
Esto nos abrirá una ventana de msdos con lo que está fallando.
presionamos ESC para salir y solucionamos el problema, en este caso, está intentando cargar el modulo de php desde C:/PHP/ y realmente está instalado en C:/Program Files (x86)/PHP ( o ruta similar), entonces ahora simplemente debemos cambiar la configuración de Apache para que tenga la ruta real.
Ahora nos aseguramos de que la carpeta conf del Apache tiene PERMISOS DE ESCRITURA sino no va a funcionar.
Editamos el httpd desde inicio / todos los programas … apache…/Configure Apache Server / Edit httpd.
Editamos para poner lo siguiente “hacemos ctrl+b para buscar “LoadModule”" nos saldran un montón de load modules…
al final del todo ponemos lo siguiente:
LoadModule php5_module “C:/Program Files (x86)/PHP/php5apache2_2.dll”
Una vez nos aseguramos de que la ruta apunta al php5apache2_2.dll (cada ordenador tendrá una ruta diferente)
Ahora buscamos: “AddType application” y nos saldra una seccion donde están los AddType, entonces ahí agregamos las siguientes lineas:
# PHP support.
AddType application/x-httpd-php .php .php3 .php4 .phtml
AddType application/x-httpd-php-source .phps
Ahora buscamos “DirectoryIndex” y veremos que sale una linea tal que “DirectoryIndex index.htm” bien, lo cambiamos por lo siguiente:
DirectoryIndex index.html index.html.var index.php index.php3 index.php4
Esto le dice al Apache que archivo cargar por defecto.
Bien, ahora Aseguramos que tenemos derechos de escritura en el directorio de Apache/htdocs
y creamos en el directorio una nueva carpeta llamada “tests”
dentro de esa carpeta (nuevamente asegurando que tenemos drecho de escritura) creamos un archivo “index.php” y lo editamos con el editor de texto
Ponemos
“<?php
phpinfo()
?>”
y guardamos, ahora ejecutamos el explorador web y ponemos “http://localhost/test”
y nos debereía salir la información de PHP que tenemos instalado. En este momento ya tenemos PHP.
Creando tu primer proyecto en XNA
Hola, básicamente en este tutorial vamos a ver como estructurar nuestro proyecto XNA.
Requisitos:
- Descargar e instalar las herramientas de desarrollo de XNA. [links]
La idea es hacerlo una estructura útil a la hora de irlo extendiendo y empezar bien desde el principio.
Bien, lo primero que debemos hacer es crear un nuevo proyecto, para ello simplemente “Archivo>New Project” Seleccionamos “Windows Game Library”, esta será nuestra librería genérica, es decir por llamarlo de alguna manera será nuestro “motor”, donde tenemos todas las herramientas que usarán nuestros juegos.
Una vez creado el proyecto, deberíamos tener algo así:
[imagen]
Vemos que el Visual Studio ha creado una clase por defecto, simplemente la borramos.
Ahora botón derecho sobre el nodo padre, añadimos una carpeta donde estaba la clase. La llamamos “Core”, por eso de que será la estructura básica de nuestro motor.
una vez creada esa carpeta, añadiremos una nueva clase y la llamaremos “Engine.cs” (básicamente boton derecho > new > class ) mucha gente llama a esta clase algo así como Global, para referirse a que será accesible desde cualquier lugar. Yo prefiero llamarlo Engine, puesto que será la clase que controle todas las acciones básicas de nuestro juego.
Bien, ya tenemos lo más básico en cuanto a estructura.
Ahora vamos a crear un juego que “aproveche” nuestro motor.
Para ello sobre el nodo padre más alto (el nodo de la solución.), botón derecho y damos add > new project, y en este caso elegimos “Windows Game” en vez de Windows Library, esto quiere decir que esto será nuestro juego. (Las librerías no se pueden ejecutar, por decirlo de alguna manera).
Esto agregará un Juego y su Contenido a nuestra solución. Por lo que tenemos:
Solucion:
- Motor.
- Juego.
- Contenido del Juego.
Es decir que todo se empaquetará en la misma solución. De este modo tendremos separado lo que es el motor, reutilizable por varios juegos, y el juego en sí que usará el motor.
Bien, ahora llega el momento de añadir las referencias, que significa que para que un proyecto vea al otro debe tener una referencia a él.
Esto es muy sencillo simplemente dentro del proyecto de juego hay una carpeta llamada “References” si hacemos click derecho sobre esta carpeta, le damos add>Reference y añadimos nuestro proyecto de librería (Engine).
Una vez hecho esto, tenemos la estructura más básica que podemos esperar de un Juego en XNA.
Más tarde extenderemos el Motor para que pase a ser algo más que una simple clase vacía y haremos que nuestro juego use esas caracacterísticas.
Simplemente decir que esta es una aproximación personal al desarrollo de juegos con XNA y que se aceptan sugerencias.
The light seems visible
Finally finishing part of the game… is the hardest part… to be finishing… testing and adding the final touches…
Singleton Form.
Here some useful code I use for a singleton form.
This helps me when doing some tools where I just need a simple form and change it properties values without storing it in some other place.
public sealed partial class FloatingPropertyGridForm : Form
{
private static bool IsShown = false;
private static readonly FloatingPropertyGridForm MyInstance = new FloatingPropertyGridForm();
private FloatingPropertyGridForm()
{
InitializeComponent();
}
static FloatingPropertyGridForm()
{
Instance.FormClosing += new FormClosingEventHandler(Instance_FormClosing);
}
public static FloatingPropertyGridForm Instance
{
get { return MyInstance; }
}
public new void Show()
{
if (IsShown)
base.Select();
else
{
base.Show();
this.Location = new Point(1960, 100);
IsShown = true;
}
}
private static void Instance_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
IsShown = false;
Instance.Hide();
}
public void SetObject(object obj)
{
this.propertyGrid.SelectedObject = obj;
}
public object GetObject()
{
return propertyGrid.SelectedObject;
}
public PropertyGrid GetPropertyGrid()
{
return this.propertyGrid;
}
private void FloatingPropertyGridForm_Load(object sender, EventArgs e)
{
}
}
Please Enjoy if you find it useful!
Serializer
Just a small tool I want to use always and as always I have it at home!
so posting this code here
public static class GenericSerializer
{
public static void Serialize<T>(String filename, T element)
{
Stream stream = null;
try
{
stream = File.Create(filename);
XmlSerializer serializer = new XmlSerializer(typeof(T));
serializer.Serialize(stream, element);
}
finally
{
if (stream != null)
stream.Close();
}
}
public static T Deserialize<T>(String filename)
{
FileStream stream = null;
T loaded;
try
{
stream = File.OpenRead(filename);
XmlSerializer serializer = new XmlSerializer(typeof(T));
loaded = (T)serializer.Deserialize(stream);
}
finally
{
if (stream != null)
stream.Close();
}
return loaded;
}
}
As always this code is part of multiple articles I have read over the time on internet. So may have pieces of all.
Please feel free to use that code in the case you need it!
XNA 4.0 is out there!
Some interesting features in this new XNA 4.0. Its interesting what microsoft is doing with the live platform. If its correctly delivered to the phone market, then we have a win here!
My XNA little project
As some of you know, I was doing a little game in XNA,
This is the state of the game. As it was before august 2009.
Hope you enjoy the video.
I would like to do some tutorials of the engine, but first I need to learn a bit more.
PS: I did all parts that game, the art, the programming and the design.