
Original en | Scenes from a memory
El siguiente codigo no es mio, pero hace mas de dos años programe un modulo así, es muy interesante.
Para crear la miniatura necesitamos la Librería Gráfica GD, en este script estamos usando la versión 2.0.28 de esta librería.
Si esta librería está activada, en el phpinfo()
debe salir algo como esto:
Si no la tenemos activada solo tenemos que modificar el archivo php.ini que se encuentra en C:\Windows (puede variar según tu versión de Windows), y agregar la línea extension=php_gd2.dll
en la sección "Dynamic Extensions". El archivo php_gd2.dll debe estar en la carpeta "extensions" dentro del directorio donde instalaste el php, por ejemplo "C:\php\extensions". Si no tienes el archivo php_gd2.dll, te lo puedes descargar aquí.
El formulario de upload y el script php está en una sola página, la nombré como blob.php, empezemos entonces:
Ya tienes ubuntu instalado y como te gusta?
Ya tienes XGL funcionando y tus amigos Windowseros se mueren de envidia de como se hacen gelatina tus menus, ventanas y todo?
Pero aun tienes una partición de Windows porque te dejan tarea en Autocad, te mandan trabajos con WordArt y no se ve muy lindo con OpenOffice? Te da miedo que necesites Windows un dia y no tenerlo instalado? (Asi como los condones, mejor tenerlos y no usarlos que necesitarlos y no tenerlos)
Pues ya podrás deshacerte de tu partición de Windows, Si asi es, gracias a este tutorial para instalar VMWare Server, con el cual, podremos instalar Windows XP en nuestro ubuntu, Antes utilizaba VMWare Player pero esto es mucho mejor:
Esto es solamente para poner a trabajar una Máquina Virtual en un escritorio local, por lo que omito la parte de administración remota. El Fin de esto es simplemente instalar Windows XP en nuestro ubuntu. Si deseas ejecutar tareas un poco mas avanzadas, sería buena idea seguir este otro en tutorial howtoforge hasta la segunda parte, de administración remota.
Ok, comencemos entonces. Primero instalaremos algunos paquetes necesarios, dependiendo de los paquetes que tengamos y los que no, esto puede tardar cierto tiempo. para esto abrimos una consola y ejecutamos:
sudo apt-get install linux-headers-`uname -r` build-essential xinetd
(Este paso es indispensable para continuar, por lo menos en mi caso, si ya tienes estas herramientas úedes omitir este paso, aunque no se incluía oficialmente en el how-to; y es básicamente instalar las fuentes del kernel que estoy usando, mas herramientas de compilación)
sudo apt-get install linux-kernel-headers libx11-6 libx11-dev libxtst6 xlibs-dev xinetd wget
sudo apt-get install gcc binutils-doc cpp-doc gcc-4.0-locales make manpages-dev autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.0-doc libc6-dev-amd64 lib64gcc1
En cuanto se instalen podremos continuar con el siguiente paso, que es crear una carpeta para nuestras máquinas Virtuales, si tu estas usando VMWare Player no debes tocar tu partición Virtual Ok:
sudo mkdir /var/vm
Ahora debemos obtener VMWare Server, que es gratuito (almenos por ahora). Para eso vamos a la página: http://www.vmware.com/download/server/ donde debemos registrarnos (gratuitamente) para obtener un serial (que será necesario durante la instalación).
a continuación se nos presenta un vínculo para descargar VMWare, sin embargo al ser un archivo de 100MB, es buena idea usar wget, o usar DDM. la forma sencilla es dar click derecho en el vínculo y seleccionar “copiar dirección del enlace” para despues pegarlo en la consola, precedido de wget; en mi caso y para la versión que estaba disponible al momento de la descarga, el comando era:
wget http://download3.vmware.com/software/vmserver/VMware-server-1.0.0-28343.tar.gz
Es importante copiar nuevamente la dirección en lugar de usar el comando anterior exactamente como está, porque asi nos aseguramos de tener la versión mas reciente.
Dependiendo de tus amigos de VTR esto puede durar varios minutos o unas horas, asi que hay que tomarselo con calma es buena idea prepararse un Café o tomarse unas Chelas para el calor.
Una vez descargado, debemos descomprimirlo, en mi caso el comando usado fué:
tar xvfz VMware-server-1.0.0-28343.tar.gz
De nueva cuenta, si la versión que descargaste no concuerda, modificala para que se ajuste a tu caso. la forma sencilla de hacerlo es escribir hasta server y despues presionar la tecla tab para autocompletar.
Despues de que se hayan descomprimido los chorrocientosmil archivos contenidos en el tar, debemos cambiarnos al interior de la carpeta recien desempaquetada:
cd vmware-server-distrib
y ahora, para instalar el programa, ejecutamos el script de instalación… pero como super usuario (yo lo hice con sudo sin mayor problema; aunque algunos dicen debe ser como root)
sudo ./vmware-install.pl
esto inicia el script de instalación, que nos hará una serie de preguntas a las que debemos responder. Aqui copiaré lo que indica el how-to original, ya que es muy acertado:
Creating a new installer database using the tar3 format.
Installing the content of the package.
In which directory do you want to install the binary files?
[/usr/bin] <– /usr/bin
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc] <– /etc
What is the directory that contains the init scripts?
[/etc/init.d] <– /etc/init.d
In which directory do you want to install the daemon files?
[/usr/sbin] <– /usr/sbin
In which directory do you want to install the library files?
[/usr/lib/vmware] <– /usr/lib/vmware
The path “/usr/lib/vmware” does not exist currently. This program is going to
create it, including needed parent directories. Is this what you want? [yes] <– yes
In which directory do you want to install the manual files?
[/usr/share/man] <– /usr/share/man
In which directory do you want to install the documentation files?
[/usr/share/doc/vmware] <– /usr/share/doc/vmware
The path “/usr/share/doc/vmware” does not exist currently. This program is going
to create it, including needed parent directories. Is this what you want?
[yes] <– yes
The installation of VMware Server 1.0.0 build-28343 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: “/usr/bin/vmware-uninstall.pl”.
Before running VMware Server for the first time, you need to configure it by
invoking the following command: “/usr/bin/vmware-config.pl”. Do you want this
program to invoke the command for you now? [yes] <– yes
Making sure services for VMware Server are stopped.
Stopping VMware services:
Virtual machine monitor done
You must read and accept the End User License Agreement to continue.
Press enter to display it.
….. snip [LICENCE TEXT] ……
Do you accept? (yes/no) <– yes
Thank you.
Configuring fallback GTK+ 2.4 libraries.
In which directory do you want to install the mime type icons?
[/usr/share/icons] <– /usr/share/icons
The path “/usr/share/icons” does not exist currently. This program is going to
create it, including needed parent directories. Is this what you want? [yes] <– yes
What directory contains your desktop menu entry files? These files have a
.desktop file extension. [/usr/share/applications] <– /usr/share/applications
The path “/usr/share/applications” does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes] <– yes
In which directory do you want to install the application’s icon?
[/usr/share/pixmaps] <– /usr/share/pixmaps
(En la siguiente sección, la instalación no encontró un modulo apropiado para mi, asi que lo compiló. en realidad solo fue necesario:
1) indicar la ruta al código fuente del kernel, en mi caso: /usr/src/linux-headers-2.6.17-10-Generic/include ; hay que notar que esto puede variar considerablemente con las diversas actualizaciones, asi que será necesario verificarlo antes de indicar cualquier cosa.
2) establecer el compilador a usar (acepté los valores por omisión y funcionaron sin mayor problema).
Despues de eso, no fue necesario proporcionar mas información a este respecto, aunque fue necesario compilar algunas otras cosas en el proceso, pero esto ya se realizó de manera automática)
Trying to find a suitable vmmon module for your running kernel.
The module bld-2.6.17-10-generic loads perfectly in the running
kernel.
Do you want networking for your virtual machines? (yes/no/help) [yes] <– yes
Configuring a bridged network for vmnet0.
The following bridged networks have been defined:
. vmnet0 is bridged to eth0
All your ethernet interfaces are already bridged.
Do you want to be able to use NAT networking in your virtual machines? (yes/no)
[yes] <– yes
Configuring a NAT network for vmnet8.
Do you want this program to probe for an unused private subnet? (yes/no/help) <– yes
Probing for an unused private subnet (this can take some time)…
The subnet 192.168.246.0/255.255.255.0 appears to be unused.
The following NAT networks have been defined:
. vmnet8 is a NAT network on private subnet 192.168.246.0.
Do you wish to configure another NAT network? (yes/no) [no] <– no
Do you want to be able to use host-only networking in your virtual machines?
[yes] <– yes
Configuring a host-only network for vmnet1.
Do you want this program to probe for an unused private subnet? (yes/no/help)
[yes] <– yes
Probing for an unused private subnet (this can take some time)…
The subnet 172.16.37.0/255.255.255.0 appears to be unused.
The following host-only networks have been defined:
. vmnet1 is a host-only network on private subnet 172.16.37.0.
Do you wish to configure another host-only network? (yes/no) [no] <– no
Trying to find a suitable vmnet module for your running kernel.
(aqui es donde fue necesario compilar el otro módulo, pero por omisión tomólos valores proporcionados en el comentario anterior. En caso de que no fuera asi, solo es necesario repetir las respuestas)
The module bld-2.6.17-10-Generic loads perfectly in the running
kernel.
Please specify a port for remote console connections to use [902] <– 902
Stopping internet superserver: xinetd.
Starting internet superserver: xinetd.
Configuring the VMware VmPerl Scripting API.
Building the VMware VmPerl Scripting API.
Using compiler “/usr/bin/gcc”. Use environment variable CC to override.
Installing the VMware VmPerl Scripting API.
The installation of the VMware VmPerl Scripting API succeeded.
Generating SSL Server Certificate
In which directory do you want to keep your virtual machine files?
[/var/lib/vmware/Virtual Machines] <– /var/vm
Please enter your 20-character serial number.
Type XXXXX-XXXXX-XXXXX-XXXXX or ‘Enter’ to cancel: <– Tu Serial de VMware Server
Starting VMware services:
Virtual machine monitor done
Virtual ethernet done
Bridged networking on /dev/vmnet0 done
Host-only networking on /dev/vmnet1 (background) done
Host-only networking on /dev/vmnet8 (background) done
NAT service on /dev/vmnet8 done
The configuration of VMware Server 1.0.0 build-28343 for Linux for this running
kernel completed successfully.
Ok ya tienes VMWare instalado en tu ubuntu. Ahora, para correrlo, está disponible en Aplicaciones / herramientas del sistema / VMWare server console.
Ahora falta instalar Windows; pero todos ustedes han instalado Win alguna vez en su vida no me vengan con cuentos a mi ok.
En todo caso el procediendo es este
Install enter
Siguiente, siguiente, siguiente, etc, etc, etc… y asi .
...Finalizar
Extraido tal cual de | antofalinux.clRegión 1Seguímos en línea.
Familia 95: de $00000000 a $003FFFFF
Familia NT: de $00000000 a $00000FFF
Región privada para permitir la compatibilidad con aplicaciones de MS-DOS. En MS-DOS no era posible escribir dentro de los primeros 4Kb de memoria, así que cuando diseñaron Windows tuvieron que continuar con la misma limitación. Un intento de lectura/escritura sobre las primeros 4 Kb (desde $0000 a $FFFF) provocará una violación de acceso. Esa región también es privada para detectar la utilización de punteros nulos, ya que intentarían escribir en la dirección 0.
Región 2
Familia 95: de $00400000 a $7FFFFFFF
Familia NT: de $00001000 a $7FFEFFFF
En esta región es donde se almacenan los datos privados de cada proceso. Como podemos ver, la cantidad de memoria que puede llegar a utilizar una aplicación no son 4 GB como dijimos en principio, sino que son aproximadamente 2 GB.
En la familia NT se almacenan tanto el código y datos de los ejecutables como las DLL del sistema y de usuario. Cualquier variable que utilicemos desde nuestros programas estará en este rango.
Región 3
Familia 95: de $80000000 a $FFFFFFFF
Familia NT: de $8000000 a $FFFFFFFF
Región privada donde se carga el kernel del sistema operativo y los controladores de dispositivos (archivos .VXD).
En Windows 95 además, esta región alberga las DLLs y los archivos proyectados en memoria. Otra diferencia entre Win95 y NT es que para el primero, la región es accesible por el proceso, y el segundo provocará una violación de acceso si se intenta leer/escribir en este rango de direcciones.
Nota: Con estas herramientas pretendo dar más ejemplos, así que se las recomiendo mucho.Seguímos en Linea.
SELECT columna FROM tabla LIMIT 10Esto es similar a la clásula TOP de Microsoft SQL Server, sin embargo, en MySQL el LIMIT siempre va al final de la sentencia SQL.
SELECT columna FROM tutabla LIMIT 10 OFFSET 10Esta característica hace que sea muy fácil programar la paginación de resultados haciendo que los valores para el LIMIT y el OFFSET sean variables.
<?php
if (($PHP_AUTH_USER!="Joe") || ($PHP_AUTH_PW!="123")) {
header('WWW-Authenticate: Basic realm="Acceso restringido"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
}
?>
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Ha conseguido el acceso a la <B>zona restringida</B>.
</body>
</html>