Archivos de 'Programación'
Recuperar los últimos videos de un canal de YouTube
octubre 5th, 2011. Publicado en General, Programación. Sin Comentarios. 403 Lecturas
He buscado mucho widgets para páginas web que promocionen un canal de YouTube pero los pocos que he encontrado no me convencían del todo. Aquí les comparto este código javascript recupera los últimos videos subidos a un canal de YouTube desde un feed usando la API GData.
Para adaptarlo a tus necesidades deberás cambiar las opciones de ancho, alto, título, donde dice “username” reemplazarlo por el nombre del canal y ajustar el parámetro max-results que es la cantidad de videos a recuperar.
(más…)
Opción de mostrar fecha en plugin de WordPress (actualizado)
junio 14th, 2011. Publicado en Programación. Sin Comentarios. 836 Lecturas
Enhanced Recent Post es un plugin WordPress mejorado que muestra las últimas entradas de tu sitio seleccionando la cantidad, el orden, las categorias y ahora si deseas mostrar la fecha de publicación o no.
Nota: Esta modificación funciona para la última versión 1.2.0
La modificación:
(más…)
Métodos Heterodoxos en la Arquitectura de Software
abril 14th, 2011. Publicado en General, Programación. Sin Comentarios. 920 Lecturas
Desde la década de los 50 comenzó la inquietud de normalizar y estandarizar procesos en la elaboración de proyectos tanto en el área de la manufactura industrial como en la milicia. De aqui empezó el desarrollo de métodos y técnicas que ayudan a medir, controlar y desarrollar estos procesos y algunos fueron adoptados por la industria del software que junto a otros teóricos se logro obtener un abanico de metodología disponibles a mediados de los 90.
Fue justo este tiempo donde surgió otra perspectiva de análisis tratando de adaptar una metodología a los tiempos que corren donde los cambios son cada vez mas vertiginosos. Estos son los métodos ágiles en contracara a los métodos tradicionales.
Carlos Reynoso es un antropólogo, investigador, autor y profesor universitario de la UBA y en su sitio web publicó un juego de papers (Microsoft USA 2004) en español sobre la Arquitectura de Software, el tercero de ellos trata de los Métodos Ágiles y es una excelente lectura para la introducción a estos.
Métodos Heterodoxos (PDF)
Simplificando clases en Ruby con Struct
marzo 10th, 2011. Publicado en Programación. Sin Comentarios. 784 Lecturas
Hace un par de semanas prepare un programa hecho en ruby para un trabajo y necesitaba guardar objetos con multiples atributos en una colección de datos (array) y descubri una forma sencilla de hacerlo utilizando la Clase Struct de la siguiente manera:
#Creación de la clase con 2 atributos cualquiera class Miembros < Struct.new(:fitness, :str) end #Completamos el array de tamaño 5 poblacion = Array.new for i in 0..5 p = Miembros.new #Utilizo rand() para asignarle algun valor al atributo p.fitness = rand() p.str =rand() #Almaceno el objeto en el array poblacion.push(p) end #Si se quiere podemos ordenar los objetos del array segun el valor del atributo fitness poblacion = poblacion.sort_by{|a| [a.fitness]} #Por ultimo mostrar el contenido del array poblacion.each { |p| puts p[:str] puts p[:fitness]} #O bien de esta forma for i in 0..Pobsize-1 puts poblacion[i].fitness puts poblacion[i].str end
Muy interesante. Para saber más sobre las posibilidades de la Clase Struct se pueden dirigir a la documentación de Ruby.
Manipulación de archivos con Ruby
diciembre 18th, 2010. Publicado en Programación. Sin Comentarios. 1.767 Lecturas
Ruby es un lenguaje de alto nivel orientado a objetos que para mi gusto es muy, muy atractivo trabajar con el y si no me creen con este ejemplo de manipulación de archivos se convencerán.
Las tareas comunes con archivos son: abrir, leer, escribir, cerrar y eliminar archivo y eso es lo que veremos como hacer con Ruby.
Ruby posee una clase llamada IO la cual cuenta con una subclase llamada File que es la que nos permitira acceder de manera sencilla a los archivos. Algunos métodos de esta clase son:
- basename: Devuelve el nombre del archivo.
- chmod: Como lo imaginamos, cambia los permisos sobre el archivo.
- chown: Cambia el propietario y el grupo del archivo.
- copy: Copia el archivo.
- new: Abre o crea un archivo.
- zero: Retorna un valor verdadero si el archivo esta vacío.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #Primero pregunto si es que existe el archivo sino habrá que crearlo en el mismo directorio. if File.exist?("texto.txt") #Abro el archivo para escritura. Borra lo que este en el archivo. archivo = File.new("texto.txt", "w") archivo.puts "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed quis sem et turpis commodo luctus non eu arcu. Praesent id urna nibh, vel ornare odio. Quisque tellus massa, mollis sit amet hendrerit sit amet, ullamcorper eget urna. Nullam risus nisl, rhoncus vel volutpat non, cursus a eros. Donec viverra viverra magna eget adipiscing.\n\n" archivo.close #Abre el archivo para lectura muestra el contenido y lo cierra File.open("texto.txt").each{|linea| puts linea} #Abre el archivo para añadir contenido archivo = File.new("texto.txt", "a") archivo.puts "Sed quam urna, fringilla sit amet lacinia eget, hendrerit at ligula. Pellentesque tortor lectus, pretium vel dictum mollis, molestie sit amet turpis. Aenean blandit dui vitae elit porta fermentum. Nulla interdum congue felis, sed semper lectus sagittis pretium." archivo.close File.open("texto.txt").each{|linea| puts linea} print "Desea eliminar el archivo? S/n: " opcion = gets.chomp if opcion.downcase == 's' #Borro el archivo en caso de confirmación File.delete("texto.txt") puts 'Archivo eliminado' end else puts 'El archivo no existe' end |
Parámetros de acceso para File:
- r: Apertura para lectura.
- r+: Lectura y Escritura
- w: Solo escritura
- w+: Escritura y lectura
- a: Solo para añardir contenido
- a+: Para escritura y lectura pero añadiendo contenido.
- b: Acceso a binario.
¿Muy sencillo no?.
Demuestra tus conocimientos con los quiz de la W3School
diciembre 4th, 2010. Publicado en Internet, Programación. Sin Comentarios. 772 Lecturas
La W3School ofrece una serie de quiz para sus estudiantes. Seguro lo podrás resolver con tus conociomientos en:
Link: www.w3schools.com
Exportar datos a WordPress con PHP
diciembre 1st, 2010. Publicado en Programación, Tutoriales. 9 Comentarios. 1.895 Lecturas
Este es mi primer post escrito en LaREPAWEB sobre WordPress y justamente al hacer este pasaje fue necesario exportar todos los post desde la base de datos anterior a la de WordPress.
Para esto cree un script en PHP para extraer todos los posts y volcarlos en un archivo XML o WXR (WordPress eXtended RSS). Antes que nada se deberá crear un archivo con permisos de escritura llamado wxr.xml en la raíz del sitio, luego ejecutar este script también en la raíz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | <?php //Completa los datos de conexión a la base de datos $dbName = 'base_anterior'; $dbUser = 'username'; $dbPass = 'password'; $dbHost = 'host'; //Completa los datos de tu tabla de post $tablePost = 'posts'; $fieldId = 'post_id'; $fieldtTitle = 'post_titulo'; $fieldContent = 'post_contenido'; $fieldDate = 'post_fecha'; //Utilizamos al usuario admin por defecto $fieldAutor = 'admin'; $mysql = new mysqli($dbHost, $dbUser, $dbPass, $dbName); if(mysqli_connect_errno()){ echo 'Imposible conectar'; exit(0); } $query = "SELECT $fieldId, $fieldtTitle, $fieldDate, $fieldContent FROM $tablePost ORDER BY id ASC"; $result = $mysql->query($query) or die($mysql->error); $xml = '<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:excerpt="http://wordpress.org/export/1.0/excerpt/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wp="http://wordpress.org/export/1.0/" > <channel>'; while($row = $result->fetch_array()){ $xml .= "\n<item>\n"; //opcional para extraer las categorías de cada post. Deberas editar los nombres de las columna y tablas según tu base. $query = "SELECT DISTINCT categorias.nombre FROM categorias_posts INNER JOIN categorias ON categorias.id = categorias_posts.categoria_id WHERE categoria_posts.post_id = $row[$fieldId]"; $result_1 = $mysql->query($query) or die($mysql->error); while($row_1 = $result_1->fetch_array()){ $xml .= '<category><![CDATA['.$row_1['nombre']."]]></category>\n"; } $result_1->close(); unset($rowa); $xml .= '<title>'.$row[$fieldtTitle]."</title>\n"; $xml .= '<dc:creator><![CDATA['.$fieldAutor."]]></dc:creator>\n"; $xml .= '<pubDate>'.date(r,$row[$fieldDate])."</pubDate>\n"; $content = str_replace('<p>[cut]</p>','',$row[$fieldContent]); $content = str_replace('[cut]','',$content); $xml .= '<content:encoded><![CDATA['.$content."]]></content:encoded>\n"; $xml .= "<excerpt:encoded><![CDATA[]]></excerpt:encoded>\n"; $xml .= '<wp:post_id>'.$row[$fieldId]."</wp:post_id>\n"; $xml .= "<wp:comment_status>open</wp:comment_status>\n"; $xml .= "<wp:status>publish</wp:status> <wp:post_parent>0</wp:post_parent> <wp:menu_order>0</wp:menu_order> <wp:post_type>post</wp:post_type> <wp:post_password></wp:post_password> <wp:is_sticky>0</wp:is_sticky>\n"; $xml .= '</item>'; } $xml .= "</channel>\n</rss>"; //echo $xml; try{ $file = fopen("wxr.xml","w"); fwrite($file,$xml); fclose($file); $msg = 'Archivo generado'; }catch(Exception $error){ $msg = $error->getMessage(); } echo $msg; $result->close(); $mysql->close(); ?> |
Ahora sólo resta descargar el archivo wxr.xml, ingresar al panel de administración de WordPress ir a Herramientas / Importar y utilizar la importación WordPress (es la última de la lista). En caso de no tener el plugin de importación instalado WordPress lo hará por nosotros.
Edad de una persona en años, meses y días con PHP
noviembre 29th, 2010. Publicado en General, Programación. Sin Comentarios. 608 Lecturas
![]()
Este clase en PHP determina la edad de una persona en años, meses y días teniendo en cuenta años bisiestos. La lógica pasa por hacer una diferencia directa entre la fecha actual y la fecha de nacimiento y realizar un ajuste en caso de que los valores de los meses y/o días den negativo.
El código es el siguiente:
/*
Programa: Determinar la edad de una persona en años, meses y dias
Version: 0.1
Fecha: 30 May 2010
Autor: Luis Chavez
Mail: lchavez@larepaweb.com.ar
Web: www.larepaweb.com.ar
Pastebin: http://www.pastebin.org/296286
*/
class edadAMD{
private $fActual;
private $fNacimiento;
function __construct($fActual, $fNacimiento){
$this->fActual = $fActual;
$this->fNacimiento = $fNacimiento;
}
private function bisiesto($anio){
return checkdate(2,29,$anio) ? true : false;
}
private function validar(){
//validar el formato y que la fecha de nacimiento sea menor que la actual
if(!isset($this->fActual)||!isset($this->fNacimiento)){
echo ‘No se definieron las fechas’;
return false;
}
return true;
}
function calcularEdad(){
if(!$this->validar()){
return false;
}
$anacimiento = explode ( “/”, $this->fNacimiento);
$aactual = explode ( “/”, $this->fActual);
$anios = $aactual[2] – $anacimiento[2];
$meses = $aactual[1] – $anacimiento[1];
$dias = $aactual[0] – $anacimiento[0];
if ($meses < 0){
–$anios;
$meses = ($aactual[1] + 12) – $anacimiento[1];
}
if ($dias < 0){
–$meses;
//array con la cantidad de dias por mes
$ameses = array(1=>31, 2=>28, 3=>31, 4=>30, 5=>31, 6=>30, 7=>31, 8=>31, 9=>30, 10=>31, 11=>30, 12=>31);
$mAnterior = $aactual[1] – 1;
if($mAnterior>0 && $mAnterior<>2){
$dmAnterior = $ameses[$mAnterior];
}
elseif($mAnterior == 2){
//si el mes es febrero controlar si el año es bisiesto
($this->bisiesto($aactual[2])) ? $dmAnterior = 29 : $dmAnterior = $ameses['2'];
}
else{
//para el caso de que 01 (enero)-1 sea igual a 0 correspondería a diciembre del año anterior
$dmAnterior = $ameses['12'];
}
$dias = ($aactual[0] + $dmAnterior) – $anacimiento[0];
}
$edad[0] = $anios;
$edad[1] = $meses;
$edad[2] = $dias;
return $edad;
}
}
?>
El modo de uso es:
//$fActual = date(‘d/m/Y’);
$fActual = ’30/05/2010′;
$fNacimiento = ’20/10/2000′;
$edad = new edadAMD($fActual,$fNacimiento);
$tiempo = $edad->calcularEdad();
echo “Fecha Actual: $fActual
Fecha de Nacimiento: $fNacimiento
Usted tiene $tiempo[0] años, $tiempo[1] meses y $tiempo[2] dias”;
?>
La url en pastebin.org es: http://www.pastebin.org/296286
Medir el tiempo de ejecución de script PHP
noviembre 29th, 2010. Publicado en Programación. Sin Comentarios. 464 Lecturas
Este es un sencillo ejemplo que permite medir el tiempo (en segundos) de ejecución de scripts PHP:
<?php
function get_micro_time(){
list($mseg,$seg) = explode(” “,microtime());
return ((float)$mseg+(float)$seg);
}
$inicio = get_micro_time();
sleep(6); //Aqui tu codigo a testear
$fin = get_micro_time();
echo ‘<p>Tiempo</p>Inicio: ‘,$inicio,’<br />’;
echo ‘Fin: ‘,$fin,’<br />’;
echo ‘Total: ‘,$fin-$inicio;
?>
Esto se logra gracias a la función microtime() de PHP que según el manual de ayuda dice que marca de tiempo Unix actual con micro-segundos y que sólo funciona si se encuentra disponible la llamada de sistema gettimeofday() en el sistema operativo.



¡Bienvenido a este sitio! Mi nombre es Luis Chavez soy informático, aficionado al mountain bike y amante de la música y el cine.

Últimos Comentarios