* You are viewing the archive for the ‘Programación’ Category

VirtualBox: Convertir un disco dinámico en fijo

En VirtualBox podemos crear discos duros de dos tipos: Dinámico y fijo. Los primeros tienen la ventaja principal de ocupar menos espacio en disco que los segundos. Es decir, en los primeros, el tamaño va aumentando en función de las necesidades y solo tienes que hacer la reserva inicial del espacio que se estima como máximo. Sin embargo, este tipo de discos dinámicos ofrece un peor rendimiento que los de tipo fijo.

Los discos de tipo fijo reservan desde un principio todo el espacio asignado pero ofrecen mayor rendimiento.

Con todo esto, a veces puede darse el caso de querer convertir un disco de tipo dinámico a otro de tipo fijo, para ello se puede usar este comando:

VBoxManage.exe clonehd <ruta_archivo_disco_dinamico.vdi> <ruta_archivo_disco_fijo.vdi> –variant Fixed

Por ejemplo, el comando que he ejecutado yo es:
C:\Archivos de programa\Oracle\VirtualBox>VBoxManage.exe clonehd “d:\maq virtual
es\windows xp2.vdi” “d:\maq virtuales\winfijo2.vdi” –variant Fixed
Atención: Según el tamaño del disco y de la máquina donde se esté ejecutando, este comando puede tardar varios minutos.

Script PHP para subir vídeos a Youtube

Hace tiempo estuve trasteando, como hacía años que no hacía, con las APIs (Application Programming Interface) y haciendo alguna chorrada de las mías, mas que nada por echar ratos.

Con un par de ratos, con un estilo nulo de programación y con una solución chapuza, he realizado un script que sube un vídeo de una carpeta a tu cuenta de Youtube, bastaría con abrir la web para subir el vídeo, a partir de ahí las aplicaciones son infinitas.

Para que esto funcione, es necesario instalar las librerías de Zend_Gdata que puede descargarse aquí y seguir los pasos oportunos que pone aquí.

El script adjunto no tiene mucha descripción, creo que está bastante claro, bastaría con llamar a la página y pasarle como variable por el método GET el vídeo que se quiere subir.

$dir = "../../../../library/Zend/Gdata/App/";
$file=$_GET["file"];
$file=$dir.$file;
$titulo="Upload: ....."." ";
$desc="Upload: ....."." ";
$tags="test1,test2";
require_once '../../../../library/Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata_YouTube');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
$developerKey = 'KEY_DE_LA_API';
$applicationId = 'tu_application_id';
$clientId = 'user_id';
$authenticationURL= 'https://www.google.com/youtube/accounts/ClientLogin';
$httpClient =
Zend_Gdata_ClientLogin::getHttpClient(
$username = 'user_id',
$password = 'password',
$service = 'youtube',
$client = null,
$source = 'MySource',
$loginToken = null,
$loginCaptcha = null,
$authenticationURL);
$yt = new Zend_Gdata_YouTube($httpClient, $applicationId, $clientId, $developerKey);
$myVideoEntry = new Zend_Gdata_YouTube_VideoEntry();
$filesource = $yt->newMediaFileSource($file);
$filesource->setContentType('video/quicktime');
$filesource->setSlug($file);
$myVideoEntry->setMediaSource($filesource);
$myVideoEntry->setVideoTitle($titulo);
$myVideoEntry->setVideoDescription($desc);
$myVideoEntry->setVideoCategory('Autos');
$myVideoEntry->SetVideoTags($tags);
$myVideoEntry->setVideoDeveloperTags(array('mydevtag', 'anotherdevtag'));
$yt->registerPackage('Zend_Gdata_Geo');
$yt->registerPackage('Zend_Gdata_Geo_Extension');
$uploadUrl = 'http://uploads.gdata.youtube.com/feeds/users/default/uploads';
try {
$newEntry = $yt->insertEntry($myVideoEntry, $uploadUrl, 'Zend_Gdata_YouTube_VideoEntry');
} catch (Zend_Gdata_App_HttpException $httpException) {
echo $httpException->getRawResponseBody();
} catch (Zend_Gdata_App_Exception $e) {
echo $e->getMessage();
}

A modo de resumen:

- $dir es la varible del directorio donde está el vídeo a subir

- La variable se obtiene mediante método GET y nombre de la varibale “file”.

- $titulo, $desc y $tags son las variables de título, descripción y tags que pondrá al vídeo que se sube.

- El requiere_once incluye las librerias necesarias

- Se deben rellenar los valores de API_KEY, nombre y usuario de la cuenta asociada en Youtube.