Archivos en la categoría Programación

Función PHP Shuffle para reordenar aleatoriamente un array

Recientemente he tenido que utilizar en un proyecto php la función Shuffle () para reordenar de forma aleatoria el contenido de un array. En mi caso lo utilicé para una nube de tags, ya que quería que cada vez que se generase la página se ordenasen los tags aleatoriamente. Un ejemplo vale más que mil palabras:

$users = array();

$rs = mysql_query(“SELECT id,name FROM t_users”);

while ($data = mysql_fetch_array($rs)){

$users[] = array (“id” => $ data [0],
“name” => $ data [1]);

}

shuffle($users);

foreach ($users as $user){

echo $user[“name”].”  (“.$user[“id”].”)\n”;

}

Por otro lado, si lo que queremos es, por ejemplo, obtener 5 usuarios aleatorios de una tabla de nuestra base de datos, podemos utilizar directamente la función de MyQSL ORDER BY rand() para obtener todos los registros de la tabla con un orden aleatorio y limitar la consulta al número de usuarios que deseamos recuperar. Con el código mostrado a continuación cada vez que se ejecute la consulta SQL recuperaremos 5 usuarios aleatorios.

SELECT id, name
FROM t_users
ORDER BY rand()
LIMIT 5;

Sin Comentarios

Cursos subvencionados online para aprender a programar y diseñar videojuegos

Cursos subvencionados online para aprender a programar y diseñar videojuegos

En la academia Eticom Corporate University (ECU) imparten varios cursos on-line subvencionados, totalmente gratuitos para trabajadores en activo, para aprender a programar videojuegos en J2ME (Java para móviles), C/C++ y Actionscript (animaciones flash); además, ofrecen otros cursos de diseño de videojuegos para aprender a utilizar la herramienta 3D Studio MAX y conceptos de diseño 3D.

Las convocatorias, que pertenecen al periodo del 2010, finalizan en marzo del 2011, por lo que si estás interesado en participar en alguno de los cursos, que sea cuanto antes. A la hora del registro puedes seleccionar por prioridad hasta 5 cursos de los 6 que ofrecen. Una vez realizada la preinscripción entrarás en una bolsa donde tendrás que ser seleccionado para poder participar en alguno de los que has elegido.

Los cursos disponibles son los siguientes:

  • Programación de Videojuegos
    En este curso se aprenderá a programar videojuegos con la tecnología C/C++ o motores gráficos SDL. Como parte del curso, se verán conceptos de Inteligencia Artificial, diseño de videojuegos, programación para dispositivos móviles, conceptos de animación, sonido, audio, detección de colisiones, etc.
  • Programación de juegos para  móviles con JAVA
    En este caso se pretende impartir conocimientos sobre programación con J2ME, utilizando interfaces, APIs, MIDlets, etc. Se verán conceptos como el almacenamiento persistente de la información, conexión a redes, etc.
  • Especialista en creación de videojuegos para móviles con J2ME y NetBeans
    Como complemento al anterior, se aprenderá a programar J2ME con el IDE Netbeans.
  • Experto en ActionScript para diseñadores de videojuegos
    Se adquirirán conocimientos para diseñar animaciones y películas flash, además del lenguaje de programación ActionScript.
  • Diseño de Videojuegos
    Introducción al diseño 3D con herramientas de modelado y animación.
  • Diseño y animación con 3D Studio MAX
    En base a la herramienta más poderosa del sector, 3D Studio MAX, se aprenderá a crear, modelar y animar escenas y personajes.

Más info | http://www.eticomvideojuegos.com

2 Comentarios

Cómo instalar la base de datos de ejemplo AdventureWorks en SQL Server 2008 R2

Cómo instalar la base de datos de ejemplo en SQL Server 2008 R2

Desde hace años Microsoft ofrece de forma gratuita la descarga de su suite de aplicaciones de desarrollo para el entorno .NET, denominadas Express, ya que no ofrecen completamente todas las herramientas disponibles, para ello tendríamos que adquirir la versión Professional.

Con motivo de un curso sobre .NET he tenido que descargar e instalar Visual Studio 2010 Express para desarrollar aplicaciones de consola y Windows Forms, además,  uno de los módulos aborda la conexión a bases de datos y la gestión de estos  a través de SQL Server 2008 R2. Para todas las operaciones de los datos el tutor utiliza una base de datos de ejemplo que puede descargarse gratuitamente del MSDN: AdventureWorks.

Tras varios intentos, al final he logrado instalar correctamente la BBDD para poder utilizarla en los ejercicios propuestos. Por si en alguna ocasión os encontráis con este problema, os comento brevemente cómo resolverlo en unos pocos pasos.

En primer lugar, tenemos que instalar Microsoft SQL Server 2008 R2. Una vez instalado, es necesario hacer una instalación del gestor de la BBDD en nuestra máquina. Para ello, debemos ejecutar la aplicación SQL Server Installation Center, pulsar sobre la pestaña Installation y finalmente seleccionar la primera opción New Installation or add features to an existing installation. El proceso de instalación es sumamente sencillo, la única complicación con la que nos podemos encontrar es no tener iniciado el servicio SQL Server, que podemos activar desde el panel de control de Windows, o accediendo desde el menú de inicio en Microsoft SQL Server 2008 / Configuration Tools / SQL Server Configuration Manager.

Una vez terminado, descargamos e instalamos la database de ejemplo AdventureWorks. La instalación descomprime varios modelos de la BBDD en nuestra máquina:

C:\Archivos de programa\Microsoft SQL Server\100\Tools\Samples

La que nos interesa es AdventureWorks OLTP. Entramos en la carpeta que lleva este nombre y editamos el fichero instawdb.sql. Modificamos las líneas 34 y 35 quitando los comentarios y modificando los PATH de nuestra instalación de SQL Server 2008 R2 y la de los ejemplos. Sólo debes indicar la carpeta donde están todos los ejemplos (./samples/), no es necesario que especifiques el directorio de AdventureWorks OLTP, el propio script lo buscará.

:setvar SqlSamplesDatabasePath “C:\Archivos de programa\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\”

:setvar SqlSamplesSourceDataPath “C:\Archivos de programa\Microsoft SQL Server\100\Tools\Samples\”

Una vez modificado, copia en el portapapeles todo el script e inicia SQLCMD. Para ello, puedes hacerlo desde Inicio / Ejecutar escribiendo sqlcmd.exe. Se abrirá una consola donde simplemente tendrás que copiar el código (botón derecho / copiar). Cada instrucción DDL ó DML tiene asociada la instrucción GO, que ejecuta el código anterior, por lo que una vez termine el proceso en la consola, ya tendrás instalada la base de datos lista para operar con sus datos.

8 Comentarios

Cursos subvencionados online para trabajadores en activo de programación y BBDD

Cursos subvencionados online para trabajadores en activo de programación y BBDD

Recientemente me cambié de empresa y una de las ventajas del nuevo sitio donde estoy es que al tener menor número de trabajadores, es una PYME, y por tanto, tengo acceso a muchísimos cursos subvencionados a los que antes no podía acceder.

Tras buscar en numerosas páginas y blogs las convocatorias para el año 2010 y el nuevo catálogo de cursos, encontré dos que me gustaron especialmente por las posibilidades que ofrecen. Por un lado cabe destacar el portal de la Comunidad de Madrid para la impartición de cursos subvencionados, CEIM. El catálogo de esta plataforma es muy extenso y agrupa todos los sectores e intereses. Por otro lado, encontré una academia, Consultec, que se dedica a la enseñanza de nuevas tecnologías, especialmente programación, bases de datos, sistemas y redes. Además de los cursos de pago, tienen una pequeña colección de cursos subvencionados por el Plan Avanza para trabajadores en activo.

Yo, por mi parte, me he apuntado a dos cursos de Oracle en Consultec (Funcionalidades y mejoras de Oracle 10 g y Oracle Forms & Reports), de 50 horas cada uno y de modalidad Online. En cuanto los termine, pretendo apuntarme a un curso de 270 horas de Especialista en el desarrollo de páginas web, que podéis encontrar en el portal de CEIM, cuya titulación está abalada por la Universidad de Vigo.

Más información:

CEIM | www.ceim.es
Consultec | www.consultec.es/cursos_subvencionados_online.asp

2 Comentarios

Error colour_swatch.html en phpBB 3.0 al actualizar un theme

Error colour_swatch.html en phpBB 3.0 al actualizar un theme

Recientemente estuve haciendo algunas modificaciones en el theme de un foro corriendo en phpBB 3.0. Esta última versión cambió radicalmente el panel de administración y mantenimiento de los foros. La gestión de los themes también ha cambiado, disponiendo de dos partes: plantillas y temas. La primera hace referencia a la estructura y la segunda al diseño. Cuando hacemos algún cambio en los ficheros fuente debemos actualizar el caché de los foros para que los cambios tengan efecto, y es aquí donde me apareció un error:

Could not open ./../styles/prosilver/template/colour_swatch.html

Era incapaz de actualizar el caché y aplicar los cambios en el diseño del theme. Al final encontré la solución ejecutando una query en la base de datos que eliminaba un parámetro de configuración del template:

DELETE FROM `phpbb_styles_template_data` WHERE `template_filename`= ‘colour_swatch.html’;

Más info | http://ktuk.net/phpBB3/viewtopic.php?f=32&t=4503

2 Comentarios

Cómo subir archivos al servidor con PHP

Recientemente he tenido que crear un pequeño script para subir ficheros al servidor desde una web desarrollada en PHP. Normalmente este tipo de herramientas se utilizan para subir imágenes, ficheros adjuntos o para subir un avatar en un foro. En mi caso lo he utilizado para un concurso en el que cada participante debe subir tres imágenes de su proyecto.

Para poder hacer un upload de archivos en PHP necesitamos crear un formulario con un parámetro especial enctype=”multipart/form-data”. Este parámetro permite indicar que vamos a enviar, además de texto, varios ficheros al puslar el submit del formulario. Los elementos necesarios para subir los ficheros son los input file, de los cuales crearemos tantos como deseemos (asignado a cada uno un name único).

El formulario de envío nos quedaría tal que así:

<form name=”form” action=”alta.php” method=”POST” enctype=”multipart/form-data” >
<input type=”hidden” name=”MAX_FILE_SIZE” value=”1500000″>
<input name=”nombre” value=”” size=”30″>
<input name=”email” value=”” size=”30″>
<input name=”file1″ type=”file”>
<input type=”submit” value=”Enviar”>
</form>

El fichero que gestiona los datos del formulario alta.php recibirá en el contexto 3 elementos: el name, el email, y el archivo file1. Los dos primeros los recuperaremos de forma convencional a través de $_POST, mientras que el archivo lo recuperaremos a través de $_FILES, que es un array que almacena los datos del mismo: tamaño, formato, nombre, etc. El input MAX_FILE_SIZE nos permite indicar cuál es el tamaño máximo de los archivos que se pueden subir. El valor está en kbs. Sin embargo, esto se puede comprobar posteriormente en alta.php a través de la variable size del array $_FILES. Ahora lo veremos.

<?php

$nombre_archivo = $_FILES [ “file1” ] [ “name” ];
$tipo_archivo = $_FILES [ “file1” ] [ “type” ];
$tamano_archivo = $_FILES [ “file1” ] [ “size” ];
$nombre_temp = $_FILES [ “file1” ] [ “tmp_name” ];

if (((strpos($tipo_archivo, “gif”) || strpos($tipo_archivo, “jpeg”) || strpos($tipo_archivo, “png”) && ($tamano_archivo < 1500000))) {

if (is_uploaded_file($nombre_temp)) {

copy($nombre_temp, “”directorio/”.$_FILES [ “file1” ] );

}else{

echo “Se ha producido un error al intentar subir el archivo”;

}else{

echo “El archivo seleccionado no es una imagen o excede el 1.5mb de peso”;

} ?>

Al igual que recogemos del contexto cualquier elemento de un formulario, recogeremos el array con los datos del archivo con $_FILES. Una vez hemos recuperado sus características, comprobamos que cumple con los requisitos del formulario: que es una imagen (es gif, jpg ó png), esta comprobación, en vez de hacerla con los MIMEs (‘image/jpeg’), se hace de forma más sencilla buscando la extensión en el nombre del archivo subido. Además, también se comprueba que pesa menos de 1.5mb. Podemos añadir cuantas comprobaciones deseemos, basta con meterlas a continuación del primer if.

En caso de que el fichero subido cumpla con todos los requerimientos, procederemos a alojarlo en nuestro servidor. El proceso hace una copia temporal del archivo en el servidor para su posterior tratamiento. La función is_uploaded_file se encarga de indicarnos si se ha realizado correctamente o no. En caso afirmativo, se procede a hacer una copia en nuestro servidor gracias a la función copy. Esta función recibe dos parámetros: nombre y path temporales del archivo, y el path o ruta donde queremos guardarlo. Es necesario que el directorio del ftp donde queremos alojar nuestras imágenes tenga permisos de escritura. En nuestro caso vamos a copiar los archivos en un directorio creado a tal efecto.

Cómo hacer un upload en PHP para subir archivos al servidor
8 Comentarios