sábado, 17 de mayo de 2008

En una de mis ideas marcianas que tengo me dio por hacer un script que transfiriera archivos MP3 de otros servidores, realizando la busqueda con Google a traves de sus busquedas avanzadas. Entre los problemas que consegui es que los ficheros se almacenaban en memoria y su size en bytes se duplica, y en caso de que sea mayor que el size destinado para los scripts en php (php.ini->memory_limit) ya saben tira un error como este donde nos avisa que nuestro script ocupa demasiada memoria.

En primer instancia buscaba verificar el size del archivo a descargar, pero no podia hacerlo que de todas maneras se saldria del limite (peleando contra la memoria), entonces lo que hice fue que a traves de sockets descargaba solamente la propiedad MIME de Content-Length: y verificar que fuese menor a la memoria que yo tenia disponible. Despues todo fue mas sencillo con cURL.


if(ereg("mp3",$img_url))
{
$img_url2= $url;
$img_url2.= $img_url; //<========== CHECAR LA DIAGONAL EN LA URL
if(get_remote_file_size($img_url2)<=12 && test_audio($img_url2)==true){
if (defined("CURLOPT_TIMEVALUE")){

$enlace = curl_init($img_url2);
curl_setopt($enlace, CURLOPT_VERBOSE, TRUE);
curl_setopt($enlace, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($enlace, CURLOPT_HEADER, FALSE);
curl_setopt($enlace, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($enlace, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($enlace, CURLOPT_USERAGENT, "HELLS-search/1.0.5");
set_error_handler("bandwitch_error_handler");
try {
$total_data = curl_exec($enlace);
} catch (Exception $e) {
echo $e->getMessage()."(".$img_url." / Failed)";
}
restore_error_handler();

curl_close($enlace);
}

$file_full = "./".$date."/".$img_url; //<====== CHECAR PATH
$fp = fopen($file_full,"w");

fwrite($fp,$total_data);

echo $img_url.' - Descargado -Memoria usada: ' . round(memory_get_usage() / 1024,1) . ' KB de ' . round(memory_get_usage(1) / 1024,1) . ' KB <br>';


}
flush();
unset($total_data);
unset($fp);
unset($item);
unset($img_url);
unset($enlace);
}

Hoy me ha pasado algo muy curioso y es que tengo mi hospedaje en http://www.webhostingbuzz.com/ y al estar desarrollando un script en php para mi web sucedio que aparentemente 2 lineas de codigo en php tumbaron un servidor Xeon con 8 CPU's y al ser un servidor campartido, todas las webs que lo compartian conmigo se vinieron abajo por una hora y media.








y es que las lineas responsables de esto son:



<?php
system("php index.php &",$return);
echo $return."<br>";
?>



Pero no es nada del otro mundo a menos que el index.php sea el script que comento en esta entrada.



Despues de media hora recibo un correo electronico avisandome que mi cuenta habia sido suspendida y que tenia dos opciones, contrataba un plan empresarial o me transferian a un servidor de altos recursos para gastarmelos. =D



Ya les estara platicando como va el otro servidor con mayor capacidad, a ver si es muy muy. :P

lunes, 12 de mayo de 2008



Via MSP Ivana Tilca me entero de los cursos de capacitacion que ofrecen las personas de Microsoft TechNet de forma totalmente gratuita.

Los cursos de capacitacion forman parte de un serie de eventos realizados en el Lanzamiento de {Heroes}

AGENDA

Key note: Bienvenida con breve introducción y paseo de la nuevas funcionalidades técnicas de Windows Server 2008, Visual Studio 2008 y SQL Server 2008.

Windows Server Core: Introducción a Windows Server 2008.

Windows Server Virtualización: Administrando la infraestructura de TI; virtualización de la plataforma para nivelar las inversiones.

Windows Server Seguridad: Evitando que la información se filtre; seguridad en la plataforma para trabajar con confianza.

Windows Server Web: Respondiendo a nuevas demandas en mi plataforma Web; optimización de la plataforma Internet para crecer.

Windows Server 2008/Vista: Windows Server y Vista. La mejor combinación.

SQL track 1: Administración en SQL 2008.

SQL track 2: Aplicaciones de Misión Crítica sobre SQL 2008.

Creando la siguiente generación de aplicaciones Web con mayor productividad. Diseñador HTML & CSS, AJAX, JS Debugging & Intellisense.

Herramientas para asegurar la calidad utilizando Visual Studio Team System. Métricas de código, cobertura de código, Testing en VS2008 e Integración de código.

Aplicaciones con interfaces familiares bajo Microsoft Office System. Ribbons Designer, Custom Task Pane, Outlook Form Regions, Workflows en SharePoint.

Clientes ricos ocasionalmente conectados. Desarrollo con WPF. Synchronization Services.

Accediendo a múltiples fuentes de datos con LINQ. Características de LINQ, combinando datos de diferentes fuentes.

Silverlight 2: Iluminando la Web. VS 2008, nuevas características en Silverlight 2.

Conectando al mundo con .NET Framework 3.5: WCF + WF para mejores resultados. Syndication Services e integración WCF+WF.

Extendiendo Visual Studio 2008. Demostraciones de extensiones de Visual Studio. Resumen de ecosistema: Shell & GAT/GAX.

Registrate AQUÍ

En primera, dejenme decirle que no tenia ni la mas remota idea de que tipo de informacion podrian mantener archivos binarios como los MP3, es decir, informacion como el titulo de la cancion, el album al que pertenecen asi como el numero de track, en principio me base en una clase algo sencilla y que funcionaba bastante bien pero solo con algunos MP3's y llegue a la conclusion de que no todos estaban estructurados o codificados de la misma manera, ya que en algunos extraia la informacion como debia, y en otros simplemente no extraia nada.


<?php
require('id3.class.php');
$myId3 = new ID3("C:\wamp\www\mp3\evoriganywhere.mp3");
$myId3->getInfo();
echo $myId3->getAlbum();
echo "<hr>";
echo $myId3->getTitle();
?>


La clase que realmente me resolvio el problema se llama getID3 y esta bastante bien documentada, con ejemplos practicos del uso de la clase y sobre todo muy facil de leer el codigo fuente.

Un saludo y a codificar MP3's.

sábado, 3 de mayo de 2008

En eSecurity Planet han realizado una gran lista de las mejores herramientas de seguridad especializadas en zonas fuertes de seguridad de redes.

Aqui estan los principales contendientes de anti-virus, firewalls, forense, detección de intrusos, y mucho más.

eSecurity Planet

Gracias a mi amiga Ivana Tilca MSP de argentina me entero de un gran video realizado por ella en Channel 8, donde se hace una demostracion de como se programan aplicaciones WPF, esta muy bien realizado y es digno de un plus. =)



Get the code and try it yourself.

  • Windows Live Contacts

    El API y el control de Visual Studio para Windows Live Contacts tiene acceso a mas de 500 Millones de libros de direcciones y 30 Billones asociaciones de contactos.


  • Windows Live ID

    El uso de Windows Live ID como un mecanismo de autentificacion como un "single-sign-on" por mas de 420 Millones de usuarios soportados por Microsoft e incrementando continuamente.

Mas entradas relacionadas:
http://pwneds.blogspot.com/2008_04_01_archive.html

viernes, 2 de mayo de 2008

Jared Bienz ha lanzado su mas reciente trabajo en WPF, en esta ocasion es el proyecto Transitionals, y el cual nos permite realizar transiciones de nuestros objetos en escenas con WPF, el codigo ha sido pegado en CodePlex.



Transitionals es un framework para desarrollar y usar transiciones en WPF y provee una forma facil para cambiar entre vista de UI y una rica y animaca forma.

The best way to get started with the Transitionals framework is to download and take a look at the TransitionalsHelp file. You can find it on the Releases tab and it includes a pretty comprehensive Getting Started guide. You can also download the binary archive which includes two sample projects. Transitionals is compiled in Visual Studio 2008 against .Net Framework 3.5.


Robotics = Servicios + Orquestacion. Ese es el concepto bajo el cual se lanzo Robochamps para todos aquellos amantes de la inteligencia artificial, para aquellos de ustedes que no han considerado esta área tan útil como el desarrollo de aplicaciones tradicionales en términos de aprendizaje acerca de software de diseño y arquitectura.

Robochamps practicamente es:

  • Una nueva liga de robots basada en simulacion
  • Nuevos entornos 3D
  • Basada en MRDS 2008

  • Dirigida a todos lo desarrolladores de software - profesionales, estudiantes, academicos y entusiastas.
  • Una comunidad que provee links, videos, entrenamiento y foros
  • Los participantes pueden ganar un robot real
El sitio Web está lleno de gran material didáctico y sobre todo tutoriales con vídeos, juegos y lo mejor es el Capítulo 3 sobre el CCR de Kyle John's próximo libro. Debo admitir que el amor a todos los bling.

RoboChamps has launched!

Yo creo que es un mezcla entre Live Mesh and the Expression Studio - ahora en la version 2 liberada esta semana, mientras que Live Mesh introducido en el mundo por su equipo de desarrollo con un grandioso post de introduccion llamado "one stop shop".

Exploring the Live Mesh Plataform


http://dev.live.com/blogs/devlive/archive/2008/04/29/290.aspx

Q. Que es esto?
A. Es justamente el principio

Y mientras que Expression Studio shippeado:

"delivering over 100 new features ranging from support for Silverlight, .NET Framework, Office 2007, and Office for Mac 2008 to PHP and Adobe Photoshop import capabilities."

jueves, 1 de mayo de 2008

Un Microsoft Gold Certified proveedor de hosting basado en Windows ha anunciado una oferta unica, como solucion para un hosting gratuito para .NET User Groups.

La solucion provista por Kentico's y Applied Innovations, proporcionan una licencia ilimitada de su CMS y el hosting en sus servidores sin costo alguno para los miembros desarrolladores que colaboren con comunidades de miembros.

El template ha sido personalizado especificamente para las necesidades de los grupos de usuarios, entre ellos apartado para documentos, meetings y articulos de los miembros.

Puedes ver todos los detalles en la fuente de la noticia.
Joe Stagner

Si andas buscando algun video, algun mp3 o algun software, mirad esta lista de paginas donde podeis encontrar lo que quieras.

[Lista en construccion]

Bien es sabido la gran flexibilidad que nos ofrece WPF a la hora de realizar aplicaciones ricas en dise~o, y sobre todo al trabajar directamente sobre vectores, pero a la hora de programar es necesario implementar una gran cantidad de codigo en funciones de 3D, es por eso que WPF Team han lanzado una libreria llamada 3D Tools que nos permitira realizar esos efectos de escena en 3D de forma muy muy sencilla.

3D Tools es una libreria completamente gratis y trae los binarios y codigos fuentes que facilmente podriamos implementar en nuestras aplicaciones, y para muestra nos proporcionan una aplicacion llamada Nimbus ++ , para vean el video de demostracion de Nimbus++.


Video: Flickr WPF Photo Browser

A collection of tools to help developers using the 3D features in the
Windows Presentation Foundation. This project currently includes utility code
for rotating the camera with the mouse, drawing ...


Enlace: 3D Tools for the Windows Presentation Foundation

Al parecer la web crece y crece, y continuamente salen paginas nuevas con nuevas ideas bastante rebuscadas y esta vez le toco a CodePad, el cual es un sitio que sirve compilador para varios lenguajes C, C++, D, Perl, Python, Ruby y algunos más.


Increible pero cierto, los ejemplos compilan y funcionan, lo mas interesante de esto es que el mismo desarrollador ha retado a hackers a que encuentren agujeros de seguridad en su aplicacion, algo que demuestra una gran confianza por su parte.

Yo solo me limito a probarlo y a ver si algun dia le encuentro algun provecho.

Enlace: CodePad

Despues de darme una buena pasada por varios sitios de internet buscando algun mailer que me pudiera sirvir para enviar bastante correo y sobre todo con codigo HTML, algo asi como un newsletter, pues me vi frustrado al ver los scripts en PHP no me funcionaban y eso que son los mas utilizados para esta tarea, y sobre todo en correos de Live Mail porque me enviaban al correo no deseado.

Y bueno esta es la respuesta a mi problematica, a traves de un sencillo winform en c# pude realizarlo muy facilmente con una clase bastante sencilla, y sobre todo utilizando el servidor de Gmail para saltarme los filtros de Live Mail y no caer en correo no deseado.

Aca muestro el codigo de la clase.

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Net;
/// <summary>
/// Descripción breve de ClsCorreo
/// </summary>
public class ClsCorreo
{
public string EnviarCorreo(string para, string titulo, string contenido)
{
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.To.Add(para);
msg.From = new System.Net.Mail.MailAddress("mail@forward.com", "Title", System.Text.Encoding.UTF8);
msg.Subject = titulo;
msg.SubjectEncoding = System.Text.Encoding.UTF8;
msg.Body = contenido;
msg.BodyEncoding = System.Text.Encoding.UTF8;
msg.IsBodyHtml = true;

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential("mail@gmail.com", "myPasSSofGmail");
client.Port = 587;
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
try
{
client.Send(msg);
}
catch (Exception ex)
{

}
return "";
}
}


Puedes encontrar el proyecto en Visual Studio ya compilado aca:
http://galeon.com/setting/mailer.rar