domingo, 25 de marzo de 2007

'drives' externos....compartir archivos

Los servicios de alojamiento gratuito de información son bastante interesantes en cuanto nos brindan la posibilidad de almacenar nuestros datos fuera de nuestra computadora. A modo de complemento de nuestros backups son bastante útiles, reitero, si lo tomamos como complemento, recuerden que si usamos el servicio gratuito que no nos garantiza sobre la suerte de nuestros datos en un servidor externo.
También los utilizo mucho para compartir archivos, me resulta mas fácil subirlo una vez y que quede a disposición, que andar enviando mails.
Suelen ser servicios bastante confiables, acerca de 4shared y my fabrik no tengo quejas:


4shared

  • 1 GB de espacio libre
  • Ancho de banda ilimitado
  • Acceso ilimitado
  • No se necesita software de descarga
  • Podes subir tantos archivos como quieras por vez, siempre y cuando no superen los 50MB por archivo
  • Podes subir cuaqluier tipo de archivo (documento, música, video, documento, etc)
  • Podés generar permisos de accesos
  • Podes escuchar musica, ver videos sin necesidad de descargarlos

myfabrik
  • 1 GB de espacio en disco
  • No necesita software de descarga
  • Podes subir cualquier tipo de archivos (documento, música, video, documento, etc)
  • Podes generar permisos de accesos ya sea mediante grupos, individualmente, etc
  • Permite catalogar los archivos, tiene una interfaz amigable
  • Te da un link para que puedan acceder a tus archivos desde un blog o sitio web

dumpt almacenamiento de imágenes

  • 1 Gb de almacenamiento
  • Carpetas publicas y privadas ilimitadas
  • Imágenes sin marcas de agua
  • subir imagenes dentro de .zip
  • Links a tus imagenes
  • Cargar 10 imagenes por vez desde un navegador
  • Personalización de slideshow en tu galería
  • 3Mb por imagen
  • Comentar y rankear cualquier imagen
  • Recibir actualizaciones de imagenes o galerías
  • Ver todas las imagenes juntas
  • Establecer el orden de las imagenes en tu galería
  • Compartir tu cuenta con amigos
  • Imagenes de hasta 2500x2500

photocucket almacenamiento de imagenes

Para videos, fotos, presentaciones, compartirlas en sitios
web.




Hoy primero de abril, buscando información en un blog sobre una librería para gráficos en Delphi, encuentro que sus manuales y demos estaban en un servicio de almacenamiento que desconocía. Leyendo acerca de sus características, me resultó muy interesante, aqui está:

espins

  • Instalar un uploader integrado a la barra de herramientas del navegador (IE, Mozilla, Firefox, Opera, SeaMonkey)
  • Almacena hasta 5GB (videos, documentos, audio, etc)
  • Mostrar tu trabajo y compartirlo
  • Participar de comunidades, crear nuevas
  • Crear audio y video online en tu web
  • Organizar archivos en carpetas.
  • Cada carpeta automáticamente es una página web.
  • Escribir posts, elegir el diseño de cada carpeta y describirla con un video personal.
  • Gestion de permisos para el acceso a las carpetas
  • Introducir mensajes de voz
  • Subir hasta 100MB por vez (ZIP/RAR tienen un límite 50 MB).

sábado, 24 de marzo de 2007

Intentando aprender manejo de bitmaps - II

Esto fue otras de las cosas que hice, usar la funcion de las API GetDeviceCaps , da información específica sobre cierto dispositivo, para identificarlo lo hacemos mediante un handler, en mi caso el de la imagen img.Bitmap.Canvas.Handle.
Estos son los parámetros de la función que creí necesarios para mis cálculos:

  • HORZSIZE Anchura, en milímetros, de la pantalla física.
  • VERTSIZE Altura, en milímetros, de la pantalla física.
  • HORZRES Anchura, en pixels, de la pantalla.
  • VERTRES Altura, en líneas, de la pantalla.
Retomando la idea del post previo, la idea es calcular la correspondencia entre pixeles y mm en la imágen real (sin digitalizar). Entonces dados 2 puntos, calculo la distancia en X y en Y que los separa en pixels. Esas distancias corresponden a los catetos de un triángulo rectángulo, luego convierto las mismas a mm, obteniendo los 'catetos en mm'. Aplico Pitágoras para obtener la distancia en pixels y mm, ahí tengo la relación mm/pixels.

Este método no da el resultado que buscaba, pero si otro interesante: la medida de la distancia real entre dos puntos de pantalla en mm.

img:TImage // contiene al bitmap

// Relación horizontal y vertical entre pixels y mm
function TCmdCalcEscala.PixelHorizToMM(deltaX: Double): Double;
var
hdcDesk:HDC;
Begin

hdcDesk:= img.Bitmap.Canvas.Handle; //
Antes hdcDesk:= img.Canvas.Handle;


try
result:= deltaX * (GetDeviceCaps(hdcDesk, HORZSIZE) /
GetDeviceCaps(hdcDesk,HORZRES));
finally
ReleaseDC(hdcDesk, hdcDesk);
end;
End;>

// Relación vertical entre pixels y mm
function TCmdCalcEscala.PixelVertiToMM(deltaY: Double): Double;
var
hdcDesk:HDC;
Begin

hdcDesk:= img.Bitmap.Canvas.Handle;
try
result:= deltaY * (GetDeviceCaps(hdcDesk, VERTSIZE) /
GetDeviceCaps(hdcDesk,VERTRES));
finally
ReleaseDC(hdcDesk, hdcDesk);
end;
End;

function TCmdCalcEscala.distancia(X,Y:Double): Double;
Begin
// X distancia horizontal, Y distancia vertical

result:=Abs(Sqrt(Sqr(x) + Sqr(y)));
End;

function TCmdCalcEscala.deltaPixels(X,Y:Double):Double;
Begin
result := Abs(X - Y);
End;

//Calcula la relación entre pixels y mm.
procedure TCmdCalcEscala.ejecutar(Pto1:TPuntoVisual;Pto2:TPuntoVisual);
Var
distXpixel,distYpixel:Double;
distXmm,distYmm:Double;
Begin

distXpixel := deltaPixels(pto1.x,pto2.x); // Distancia horizontal
distYpixel := deltaPixels(pto1.y,pto2.y); // Distancia vertical

//Paso a mm esas distancias
distXmm := PixelHorizToMM(distXpixel);
distYmm := PixelVertiToMM(distYpixel);

//DistPixel, Distmm, FactorEscala son
propiedades de TCmdCalcEscala

DistPixels := distancia(distXpixel,distYpixel);
Distmm := distancia(distXmm,distYmm);
FactorEscala := Distmm/DistPixels;
End;
Ahi obtengo el factor escala que será aplicado a todas las medidas posteriores, para las medidas de los puntos en pantalla, creo que puede ser un resultado interesante.
No verifiqué si depende de la resolución, pero es de esperar que asi sea ya que los pixeles por pulgada están en proporción a la letra de la fuente.

Nota: el handler es el Canvas del objeto imagen TImage, pero podría ser la pantalla, y para ello usamos la función API GetDC , nos devuelve el handler al dispositivo para el área de cliente de la ventana especificada.

viernes, 23 de marzo de 2007

Intentando aprender manejo de bitmaps - I

Estoy desarrollando una aplicación para ortodoncia que requiere el procesamiento de imagenes digitalizadas, sobre las mismas se marcan puntos (cefalométricos) y luego se aplican cálculos geométricos. La mayoría de estos cáclulos son relativamente simples: distancia entre 2 puntos, proyección entre puntos y rectas, intersección entre rectas, cálculo de ángulos, y algun otro cálculo que no es mas que una composición de los mencionados.
El manejo por ahora no parece complicado, y lo relacionado con los cálculos geométricos anda bien. Estoy trabajando con bitmaps, ya que es el formato de archivo que me permite mayor manipulación para programar y trabajar sobre imagenes con Delphi, que es el IDE y lenguaje que estoy utilizando.

Como todo, hacerlo ahora que se algo más, no fue complicado, pero llegar a obtener y ordenar toda la información que hay sobre .bmp, y el manejo de imágenes con Delphi, fue una tarea pesada, de muchas lecturas, buscar ayuda en foros, etc.

Mi mayor problema se presentó al querer calcular la escala, esto es la equivalencia entre pixeles por mm real de la imágen, es decir por cada mm real de la imagen sin digitalizar, a cuantos pixeles equivale en la imagen ya digitalizada mediante scanner, cámara digital, etc. Sabiendo poco o menos que ahora, hice lo siguiente:

  1. antes de escanear la imágen, mido una distancia en la misma, llamemosle distmm, la cual será un dato ingresado por el usuario.
  2. el usuario marca los puntos extremos de la imagen
  3. calculo la distancia en pixeles correspondiente, como ya tengo la distancia en mm, mediante una simple regla de 3, se obtiene la relación entre mm y pixeles para la imagen dada.
Esto funciona.

Quise hacerlo mas automático, que el usuario no tenga que ingresar ningun dato, simplemente marcar 2 puntos, y obtener la escala desde la información guardada en el bmp. Esto me llevó a indagar sobre el tema, busqué en san google e internet y preguntando en foros.

Conclusión: no encontré forma de hacerlo, pero aprendí algo más sobre bmps y su información interna que quiero compartir porque creo que se abre a un mundo fascinante y que cada vez gana mas adeptos, el manejo de imágenes. Consideren estos apuntes de primera mano, una referencia introductoria y rápida, pero espero que util. Al menos que sirva para entender los cesudos artículos disponibles por toda la web a partir de esta base, si sirve para eso, me doy por satisfecha.


Bitmaps...poco conocidos

Es el formato más extendido en los sistemas Windows (aparecido en la versión 3.0) y OS/2 , siendo el arhivo BMP donde se almacenan las imágenes. Se almacenan en formato DIB (device independente bitmap, mapa independiente del dispositivo) que permite a Windows visualizar el contenido del mapa de bits en cualquier dispositivo de visualización. Esto se debe a que el mapa de bits especifica el color de un bit de forma independiente del método utilizado para representarlo.
Es un formato simple que tiene varios derivados (los .ico por ejemplo), y aunque teóricamente permite compresión no se usa en la práctica. Su desventaja es el gran tamaño de archivo (por ausencia de compresión), y que necesita una mayor velocidad de carga como consecuencia.

Forma del archivo

Veamos como está organizado:
BITMAPFILEHEADER // contiene datos sobre tipo, tamaño y diseño de un archivo del bitmap.
BITMAPINFOHEADER // cabecera de información especifica dimensiones, tipo de condensación y formato del color para el bitmap
ACOLORS DE RGBQUAD [] // vector de estructuras, contiene tantos elementos como colores haya en el bitmap
BYTE EL ABITMAPBITS []

Los colores del vector RGBQUAD suelen aparecer en orden de importancia para ayudar al driver de visualización a dibujar el bitmap en un dispositivo que no pueda visualizar tantos colores como los que tiene la imagen.

A diferencia de la mayoría de los formatos gráficos este se organiza en 4, y no en 3 partes.

Estos datos pertenecen a la API, hay que incluir la Unit Windows en Delphi para acceder a los mismos.

Me voy a concentrar en la estructura que me interesa para manejar la información de mi problema, BITMAPINFOHEADER, que tiene la forma:

 BITMAPINFOHEADER, de forma:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[ 1 ];
}BITMAPINFO;

typedef struct tagBITMAPINFOHEADER {
DWORD biSize; // tamaño de la información de cabecera
DWORD biWidth; // ancho en pixeles de la imágen
DWORD biHeight; // alto en píxeles
WORD biPlanes; // nro de planos de la imagen
WORD biBitCount; //nro de bits por pixel (puede valer 1, 4, 8 o 24)
DWORD biCompression; // compresion utilizada
DWORD biSizeImage; // tamaño de la imagen en bytes
DWORD biXpelsPerMeter; //pixeles por metro horizontal
DWORD biYPelsPerMeter; // pixeles por metro vertical
DWORD biClrUsed; // nro de colores utilizados
DWORD biClrImportant; // colores mas importantes (vale 0, si todos lo son)
} BITMAPINFOHEADER;

Importante: Cabe aclarar que esta información no está en todo bitmap, ya que dependerá de la manera en que la imagen sea creada: mediante scanner, computadora, o cámara digital. Pero es importante tenerlo presente, ya que dependerá de su origen para determinar si vamos a contar con esta información para su posterior procesamiento.
(Si el origen son imágenes usadas en medicina, es muy probable que sí contemos con estos datos)

De todos modos, no me fue util a mis propósitos por los motivos que ya diré.

Cómo acceder desde Delphi:

procedure GetBitmapInfo(Filename: string;
var
Info: BITMAPINFOHEADER);
begin
FillChar(Info,Sizeof(Info),0);
with TFileStream.Create(Filename,fmOpenRead,
fmShareDenyWrite) do
try
Seek(Sizeof(BITMAPFILEHEADER),soFromBeginning);
ReadBuffer(Info,Sizeof(Info));
finally
Free;
end;
end;
La variable Info devuelve la estructura con los datos mencionados. Veamos como usarla:

// Por ejemplo

var
Info: BITMAPINFOHEADER;
Str: string;
begin
GetBitmapInfo('c:\1.bmp',Info);
Str:=
'Ancho = ' + IntToStr(Info.biWidth) + #13 +
'Alto = ' + IntToStr(Info.biHeight) + #13 +
'Profundidad en bits = ' + IntToStr(Info.biBitCount) + #13 +
'Resolucion horizontal = ' + IntToStr(Info.biXPelsPerMeter) +
' Pixeles por metro' + #13 +
'Resolucion vertical = ' + IntToStr(Info.biYPelsPerMeter) +
' Pixeles por metro' + #13;
case Info.biCompression of
BI_RGB: Str:= Str + 'Compresion = Sin comprimir';
BI_RLE8: Str:= Str + 'Compresion = RL8';
BI_RLE4: Str:= Str + 'Compresion = RLE4';
BI_BITFIELDS: Str:= Str + 'Compresion = BITFIELDS';
end;
ShowMessage(Str);
end;
Pensaba, y estaba en un error, que con los datos
Info.biXPelsPerMeter (pixeles por metro), podría sacar la escala a mm para el eje Ox y aplicarla a mis medidas en pixeles (lo mismo para el eje Oy).
No es asi, desconozco aun en base a qué se establece esa referencia a metros, pero lo cierto es que no se corresponde con las dimensiones reales de la imagen.
Hecho que comprobé empíricamente con las medidas reales de mi imágen antes de escanear. Tampoco se refiere a mm de pantalla, a partir de la escala hallada calcule los mm, y distan de la medida real entre los puntos de pantalla.
(Reeditado)
biXPelsPerMeter y biYPelsPerMeterEstos se refieren a los valores del dispositivo destino, hecho a tener en cuenta si queremos almacenar la imagen que estamos trabajando, conviene encontrar un dispositivo destino lo mas compatible con esas magnitudes para evitar distorciones o mejor definición.

Nota-1: los valores obtenidos en Info, coinciden con los que obtiene Photoshop cuando nos dice la equivalencia entre pixeles y cms.

Nota-2: los valores de
biXPelsPerMeter y biYPelsPerMeter no cambian con la resolución, se mantienen constantes. Por lo que es la información que se guarda en el bitmap al crearse. La misma debe estar relacionada con la resolución y/o configuración del dispositivo que crea la imagen digitalizada. Estos valores, guardan relación con biWidth y biHeight (pixeles), valores que también se pueden obtener con Photoshop, asi como la equivalencia en cms, y esta relación dista de la medida de la imagen real.

Me pareció interesante para compartir, porque entre otras cosas desconozco toda la información que contiene un bmp y las variantes de uso que puede hacerse con ella. Esto es solo un (simple) ejemplo.


Off Topic - Html: usé los tags <pre> y
</pre> desde el modo de edición en HTML de blogger para formatear el código en Object Pascal de Delphi.

martes, 20 de marzo de 2007

sitios para fotografías

No mucho para agregar hoy, pero quería comentarles sobre estos sitios (registro gratuito), porque salen de antecedentes como Flickr.

http://www.imagereward.com/ permite subir tus fotos, mostrar tu trabajo, ver el de otros, y quien te dice hacerte de algunos dólares, por cada click en ellas te ganas puntos los cuales luego son cambiados por efectivo. El espacio para almacenar es ilimitado, por cada click ganas 2 puntos, y si invitás un amigo 20 más.

Ximage.com permite guardar y clasificar tus fotos online, como flickr, pero mejor. Ademas de gestionar tus imágenes pueden editarse (contraste, brillo, tamaño, etc). Te provee de código para insertar tus imágenes en foros, webs o para compartirlas con amigos.

























Via Xyberneticos.com

lunes, 19 de marzo de 2007

¿Bug de Msn Live?

Muchas veces ingreso a Msn Live como no conectada, además esta versión (la 8.1) permite chatear normalmente con tus contactos en ese estado. Todo indica que si estás conectado mas allá del estado que elijas se deshabilitan los mensajes sin conexión. Esto es obvio para aquellos contactos que si bien no te 'ven' hablan contigo. Pero he comprobado que los contactos con los cuales no estoy chateando si quieren mandarme mensajes, que para ellos serían mensajes sin conexión, no me llegarán.
Lo he probado varias veces con varios contactos, y pareciera ser así, incluso pensé que quizás al reiniciar sesión vería sus mensajes o al cambiar de estado a 'conectada' también, nada de eso ocurre, sencillamente, no los recibo.
Desconozco si es un bug o una desición de desarrollo o de uso, porque no vi en ninguna parte donde configurar esto, ni en MSN Live o en utilitarios como el MSN Plus. Tal vez al deshabilitar los mensajes sin conexión, se deshabilitan para todos los contactos, aun para quienes no chatean contigo y crean que están usando esa funcionalidad del Msn Live como corresponde (y no será asi).
No se si a alguno le ha pasado lo mismo y encontró la forma de resolver esto, aun no he podido verificar en foros.

Lo mismo sucede si ponés contactos como 'no admitidos', para ellos no estás conectado, y si te envían mensajes lo harán bajo el modo sin conexión, estos tampoco te llegaran. Este último caso puedo entenderlo más, ya que si no admitís un contacto podría tener sentido no querer recibir sus mensajes (aunque necesariamente no sea asi), pero el otro caso, francamente no lo entiendo.

Considero conveniente advertirlo, porque confiados que podemos llegar a recibir mensajes de contactos que no nos ven, o que podemos enviar mensajes a quienes no veamos conectados, nos podemos llevar una sorpresa. Por las dudas, sigo asegurándome por mail de que lleguen.


Dar a conocer tu blog II

(parte I)
Estoy suscrita a los boletines de
Webtaller porque entre otras cosas quiero aprender sobre el universo del desarrollo web, html, css, Ruby on Rails, javascripts, applets, programación de scripts del lado del servidor, etc.
No es mi perfil, pero lo considero interesante y necesario, sobre todo porque era una analfabeta total en el tema. Y además porque lo tomo como un complemento que puede abirme la cabeza a nuevos proyectos.
La 'web' me interesa, quisiera tener un sitio web y programarle aplicaciones, sobre todo del lado del servidor, ser yo la dueña total. Manejar y administrar mi propia web.

Me niego a conocer solo lo que parcialmente me sirva si no conozco mínimamente como funciona el todo, porque además lo considero necesario.
(Quisiera ejercer ese espíritu renacentista de la curiosidad como medio de vida, de comunicación mediante la idea de compartir conocimiento, esto ya es personal y utópico, pero quería decirlo)


Html (tímidos comienzos)
Estuve leyendo sobre Html, y vi las etiquetas Meta las cuales van dentro de las etiquetas <head> y </head>, su finalidad es entre otras cosas describir el contenido de la web, las palabras claves por las cuales los indexadores las buscarán, su autor, etc.

(Aqui encontrarán un buen manual de Html)
Para quien no sepa nada de que hablo, les cuento que Html es un lenguaje basado en etiquetas y es el lenguaje en el cual se realizan las páginas web. El código HTML se escribe en texto ASCII, pero con la convención que dichos archivos deben terminar con la extensión .html o .htm.
Las etiquetas o también conocidas como tags funcionan a modo de descripción de la disposición de los diferentes elementos que componen una página web, enlaces, títulos, párrafos, tablas, formularios si los hubiere, secciones, etc.
Estas etiquetas son 'entendidas' o 'interpretadas' por los navegadores para desplegar la página segun fue indicado mediante una secuencia y uso de determinadas etiquetas.

(Los navegadores son aplicaciones como Internet Explorer, Firefox, Opera, etc.)

Como no es obligación saberlo, sobre todo para alguien que no sabe nada de HTML, para editar el blog y hacer estas modificaciones deben ir a Plantilla -> Edición de HTML.

Al respecto del uso de estas etiquetas encontré información dividida en la web. Algunos afirmaban la poca repercución que actualmente tiene su uso. Principalmente porque debido al abuso de los usuarios ha llevado a que la mayoría de los buscadores hayan optado por omitirlas en sus búsquedas. Otros las siguen considerando una herramienta relativamente eficaz. Estos comentarios tan dispares datan todos del mismo año, 2006, 2007.
Ok, otra tarea más para mi "ToDo list", averiguar al respecto pero como este tópico trata sobre Html, vale la pena mencionarlas.

Pues bien volviendo a lo que interesa, en mi blog agregué estas 2:

La primera indicando las palabras claves al indexador que identifican mi blog:
<META NAME="keywords" CONTENT="programación, delphi, web, internet, desarrollo">

La segunda, describe su contenido:
<META NAME="description" CONTENT="Desarrollo de software, Delphi, web, noticias sobre el mundo del software en general, y algunos apuntes personales">

Importante, aun desconozco XML, pero me entero por ensayo y error que ese es el lenguaje usado para el diseño del blog. Al insertar las etiqueta META, tal cual la describí arriba, e intentar guardar la plantilla me arrojó error. El mismo me indicaba que ingresé etiquetas XML que no fueron cerradas debidamente (una característica típica de XML: cerrar todas las etiquetas). Las etiquetas descritas arriba quedan así :

<meta lo que vaya /> observen la retrobarra antes de la llave de cierre, debe ir.

(Lo poco que se de XML es que además de crear tus propias etiquetas, todas deben cerrarse, incluso la etiqueta <br> contrariamente a lo que sucede en HTML. En HTML esto no es necesario para etiquetas como title, head, etc)

El otro 'detalle' que no fue menor, fue donde ubiqué las etiquetas. Antes de la que dice: <b:skin ............ que se encuentra también dentro de la etiqueta Head y después de la etiqueta <title ......</title>

Si la insertaba dentro de la etiqueta skin me cambiaba el 'layout' del blog y si lo hacía después, directamente salía un error de composición de la plantilla que no me dejaba guardarla.
Google mediante no encontré nada al respecto, salvo descripciones de los diferentes usos de META con diferentes parámetros. Pero no dónde insertarlo dentro del un blog de la última versión como este. Evidentemente tiene que ver con el tema de las css, algo que me queda por investigar y aprender.
Aun así, para los interesados encontré en este blog la nueva codificación usada en blogger y algunas sugerencias. Si bien está referido a su fase beta, dudo que haya cambiado en lo escencial.

Reconozco que parte de este contenido pueda serle trivial a unos cuantos (muchos), pero determinados temas como Html, quiero que tengan el mayor alcance posible, y no solo sea para los gurús o entendidos en informática necesariamente. Ademas soy una informática, pero tampoco entendida, aqui compartí lo que empíricamente sucedió.

¿Qué habré tocado? porque veo que deshabilité la opción de agregar comentarios.

Consejos de Webtaller

viernes, 16 de marzo de 2007

Delphi 2007 para Win 32



En http://blog.firebase.com.br/?p=102 (en portugués, por eso transcribo) anuncian dos nuevas versiones de Delphi, ahora producto de CodeGear (división de Borland dedicada a IDEs y herramientas de desarrollo de software).

La mas importante es Delphi 2007 para Win32, por dos motivos principales. Uno es que aun muchos desarrolladores no están programando para .NET, y parece que Win32 seguirá viva aun por un buen tiempo. El otro, es que las versiones anteriores que intentaban combinar en un mismo IDE los dos paradigmas Win32 y .Net, no solo eran mas pesados, sino que además mostraban deficiencias para aprovechar el framework de .NET, y por si fuera poco, la versión de Borland Delphi 2006 tampoco estaba pensada para el último framework de .NET, el 2.0. Lo cual si se desea aprovechar al máximo .NET es mejor hacerlo con el padre de la bestia, y no con un sucedáneo incompleto. Así que opté por aprender C# en IDEs como VS2005 y SharpDevelop (open source, gratuito) para desarrollar en .NET descartando a Delphi.
(SharpDevelop, nos salva del tema licencias de software, ya que el Framework para .NET se puede descargar gratuitamente desde el sitio de Microsoft, lo único que necesitamos para que nuestra aplicación pueda correr es que la máquina del usuario lo tenga instalado)

Mejoras magras
Esta nueva versión de Delphi tiene una nueva arquitetura, dbExpress 4 para trabajar con las últimas versiones de motores de bases de datos como Interbase, Oracle, MySql, etc, y un suporte total de componentes VCL a los temas y a la interfaz Aero de Windows Vista. Además el IDE desde ahora cuenta componentes para generar aplicaciones web usando Ajax.
El inconveniente segun Cantú, un guru Delphi y Firebird de Brasil, es que el precio es excesivo para la (escasa) cantidad de prestaciones que ofrece.
Todo indicaría que es la última versión Delphi que permite generar aplicaciones para Win 98 y Win Me, ya que en un futuro las mismas vendrán para Windows XP y Windows Vista. Considerando que aun hay aplicaciones corriendo en versiones anteriores de Windows, podría ser una complicación a futuro, o no.

La otra versión de Delphi es Delphi PHP, un IDE para generar código PHP que sigue el fin de CodeGear de abarcar el terreno de los lenguajes de scripts para la web. De Delphi sólo tiene el nombre, pues el lenguaje es PHP, y según leí tampoco tiene una paleta tan completa de componentes.

Sobre ambos ya hay controversias entre los desarrolladores, el precio para las pocas novedades incorporadas, que haya abandonado por completo la idea de amalgamar Delphi con la tecnología .NET, que se dedique costos y tiempos a un Delphi para PHP cuando ya hay otras herramientas para hacerlo (y algunas gratuitas como PHP Designer).
(Como desconozco PHP, no puedo opinar al respecto)

En mi caso, el desconcierto: por un lado celebro que apunte a mejorar productos basados en Win32, de momento pareciera que Win32 nos van a acompañar por un buen tiempo aun, pero por otro, no veo mejoras sustantivas versión tras versión. Lo que hace que siga prefiriendo mi pirateado Delphi 7 que potenciado con algunos parches y componentes, le agrego ciertas features interesantes.





miércoles, 14 de marzo de 2007

Dar a conocer mi (tu) blog I

La verdad que esto de hacer público mi blog me genera sensaciones encontradas. Porque admito que en mi caso particular me mueven motivos mas personales que otra cosa, y no se si estos son suficientes para generar un blog de interés.
Uno de ellos es ordenarme, tal cual, como bitácora personal que me recuerde lo que he puesto y en contrapartida lo que no (sobre todo esto último), asi como también el ritmo en que realizo las actualizaciones. Digamos que funciona a modo de recordatorio para obligarme a tener cierta disciplina que genere mas productividad.

Aclarado esto, no tiene sentido publicar mi blog en cientos de indexadores si su contenido es magro, por ahora lo es, pero tampoco, por ahora, pretendo más.

Nobleza obliga sin embargo a compartir e ir mejorando este proceso orgánico de llevar esto a un blog mejor. Por eso publico aqui algo de lo que encontré referente a este tema, y quizás a mas de uno le sea útil.

  1. Al inscribierte en blogger.com, elegí la opción de compartir con todos tu blog. Busqué el mío en Google Blog Search, y apareció.
  2. Inscribirte a Technorati , ahí mismo ponés la URL de tu blog y listo. Incluso agregando un código html dentro del blog, que aun no vi donde ni cómo, podes avisarla a Technorati para que tu blog sea reindexado.
  3. http://pingoat.com/ este es un servicio que notifica a varios servicios que elijas a la vez (un solo click), para rastrear tu blog y publicarlo para que sea indexado a los motores de búsqueda. Solo tenes que ingresar la URL del blog o sitio. En mi caso http://tallerdeldisparate.blogspot.com.
    (En lo personal elegí bitacoras.com y veneblogs.com porque son en español como mi blog).
  4. Inscribirt tu blog/sitio en http://www.daypop.com/ http://www.tutop.com/ , en ambos casos hay que esperar que te aprueben. Básicamente para ver la frecuencia con que se realizan las actualizaciones, y si el contenido respeta las normas.

sábado, 10 de marzo de 2007

Aqui está tu disco

De tanto navegar di con dos sitios relacionados con la música, uno de ellos es Musicovery , es algo asi como una especie de radio, mp3 donde seleccionamos el tipo de música que mas nos gusta.
El otro, una especie de YouTube pero sólo de videos musicales de todo tipo, entrevistas a artistas y programación musical de televisión MusicPlusTV .

Esto no contiene música, sino que reproduce archivos de audio al mejor estilo Windows Media Player 11, Eclipse Media Player , pero a diferencia del anterior, es un simple ejecutable, liviano y free.

Fuentes: Musicovery, elabra.org , MusicPlusTV http://maguila.com.ar/

Actualizar blog

Cosas que debería poner en el blog:

  • sobre lo que leo de html
  • sobre tratamiento de objetos y componentes Delphi 7
  • patrones usando delphi
  • actualizar la sección de links
  • montar un servidor casero sobre apache
por ahora eso.
Sobre objetos, no lo he hecho porque me ha costado ordenar las ideas, por momentos me sobrepasan, y llego a una solución cuya única ventaja cierta es que funciona. No se si es la mejor.
html, estoy leyendo, la idea es dejar un link a la pagina que voy creando.
enlaces, porque aun no los tengo clasificados ni se de qué tipo poner aun (habría varios...).
montar servidor, lo hice hace mucho que ya no recuerdo los pasos.

Como ven, debo profundizar.