martes, diciembre 04, 2007

Playstation 2 Emulator




Un Emulador del playstation 2 para PC, muy bueno,aqui la fuente original y aqui el link directo

miércoles, noviembre 14, 2007

Por favor no instalés Windows Vista




El titulo de mi post pareciera exagerado, pero si vamos a mi experiencia con windows vista, es un titulo completamente valido.

Visual Studio me da errores de runtime y se cierra.
Firefox llega a ocuparme hasta 300 Mb de memoria RAM.
Tengo 8 Gb. de RAM pero si utilizo mas de 4 el disco duro trabaja incansablemente y el sistema se vuelve lento, es decir no puedo usarlos todos.
Cuando saco un backup de mi información (lo cual genera acceso intensivo a disco) mi vista se congela mientras dura el proceso.
Mi teléfono lo tengo que sincronizar por bluetooth ya que vista no reconoce mi base de sincronización.
No puedo dejar mi máquina encendida ni 3 dias ya que se va degradando aun mas el rendimiento (mi XP lo dejaba semanas).

y para colmo

Me funciona mas rápido el logmein que el Remote Desktop en vista.
Como servidor de paginas los tiempos de renderizado en vista son 10 veces mas lentos (medidos por addon de firefox) que el de un xp montado en una virtual!!!, para servir paginas tengo que montar una virtual con xp, que responde mas rápido que mi flamante vista.
Al encender mi máquina (solo encederla) ya tengo 1.6Gb. de memoria RAM ocupada, se supone que es por el superfetch pero parece no ayudar en nada al rendimiento.

En general vista da problemas de compatibilidad pero eso es comprensible, lo que es insoportable es lo lento (pude utilizar una palabra peor) y devorador de recursos que se vuelve.

pero lo peor

no puedo quitar vista de mi máquina ya que xp solamente soporta 4Gb de RAM como máximo.

jueves, noviembre 08, 2007

Aprendiendo a usar Google Maps (Segunda Entrega)



como el nombre lo dice la segunda parte del articulo de como hacer aplicaciones utilizando google maps. El artículo aquí

miércoles, octubre 10, 2007

Aprendiendo a Utilizar Google Maps (Primera Entrega)




Leyendo algunos posts que llegan a mi cuenta encontré este interesante artículo en otro blog, sobre como realizar aplicaciones que aprovechen las enormes caracteristicas del google maps. Articulo aqui.

jueves, octubre 04, 2007

Crear un virtual directory con .net

Es relativamente fácil implementar una rutina para crear directorios virtuales desde codigo, aqui el post original

Private Sub CreateVirtualDir(ByVal WebSite As String, ByVal AppName As String, ByVal Path As String)
Dim IISSchema As New System.DirectoryServices.DirectoryEntry("IIS://" & WebSite & "/Schema/AppIsolated")
Dim CanCreate As Boolean = Not IISSchema.Properties("Syntax").Value.ToString.ToUpper() = "BOOLEAN"
IISSchema.Dispose()

If CanCreate Then
Dim PathCreated As Boolean
Try
Dim IISAdmin As New System.DirectoryServices.DirectoryEntry("IIS://" & WebSite & "/W3SVC/1/Root")

'make sure folder exists
If Not System.IO.Directory.Exists(Path) Then
System.IO.Directory.CreateDirectory(Path)
PathCreated = True
End If

'If the virtual directory already exists then delete it
For Each VD As System.DirectoryServices.DirectoryEntry In IISAdmin.Children
If VD.Name = AppName Then
IISAdmin.Invoke("Delete", New String() {VD.SchemaClassName, AppName})
IISAdmin.CommitChanges()
Exit For
End If
Next VD

'Create and setup new virtual directory
Dim VDir As System.DirectoryServices.DirectoryEntry = IISAdmin.Children.Add(AppName, "IIsWebVirtualDir")
VDir.Properties("Path").Item(0) = Path
VDir.Properties("AppFriendlyName").Item(0) = AppName
VDir.Properties("EnableDirBrowsing").Item(0) = False
VDir.Properties("AccessRead").Item(0) = True
VDir.Properties("AccessExecute").Item(0) = True
VDir.Properties("AccessWrite").Item(0) = False
VDir.Properties("AccessScript").Item(0) = True
VDir.Properties("AuthNTLM").Item(0) = True
VDir.Properties("EnableDefaultDoc").Item(0) = True
VDir.Properties("DefaultDoc").Item(0) = "default.htm,default.aspx,default.asp"
VDir.Properties("AspEnableParentPaths").Item(0) = True
VDir.CommitChanges()

'the following are acceptable params
'INPROC = 0
'OUTPROC = 1
'POOLED = 2
VDir.Invoke("AppCreate", 1)

Catch Ex As Exception
If PathCreated Then
System.IO.Directory.Delete(Path)
End If
Throw Ex
End Try
End If
End Sub

miércoles, octubre 03, 2007

Util, seleccionar un registro aleatoriamente

A veces, necesitamos obtener información aleatoria de una Base de Datos por diferentes razones, aquí unas rutinas muy útiles para cuando queremos generar información de prueba.

articulo original aqui

-------------------------------------------------------------------------------

Select a random row with MySQL:

SELECT column FROM table
ORDER BY RAND()
LIMIT 1

Select a random row with PostgreSQL:

SELECT column FROM table
ORDER BY RANDOM()
LIMIT 1

Select a random row with Microsoft SQL Server:

SELECT TOP 1 column FROM table
ORDER BY NEWID()

Select a random row with IBM DB2

SELECT column, RAND() as IDX
FROM table
ORDER BY IDX FETCH FIRST 1 ROWS ONLY

Thanks Tim
Select a random record with Oracle:

SELECT column FROM
( SELECT column FROM table
ORDER BY dbms_random.value )
WHERE rownum = 1

sábado, septiembre 29, 2007

Programadores del Kernel de Linux



Como información curiosa, una fotografia del cuerpo de programadores del kernel de linux, incluyendo por supuesto al pinguino fundador Linus Torvalds.

enlace completo aqui

viernes, agosto 31, 2007

HOWTO: Compress Virtual PC virtual hard disks (.VHDs)



Para los que utilizan Vmware es un poco mas sencillo pero si tenés alguna instalación con Virtual PC, éstas instrucciones te van a ser muy útiles, casi recuperé la mitad de mi disco duro.

el artículo aquí

lunes, agosto 27, 2007

Aventura en España





Debido a compromisos de trabajo tuve la oportunidad de conocer Madrid, por supuesto una ciudad hermosa y grandísima. Tiene atractivos turísticos historicos como el Palacio Real y modernos como el Estadio Santiago Bernabeu. Además de los atractivos turísticos qué me gustó y que no, pues me gusto que da confianza salir de noche, es bastante segura, el metro de Madrid es una maravilla, podés ir de una esquina a otra de la ciudad inmediatamente, lo que no me gustó pues los precios, aunque no es algo exclusivo de Madrid sino de Europa, para nosotros los Latinamericanos que estamos acostumbrados a un nivel de vida mucho mas barato aquí, todo nos parece caro, yo desayunaba un pan tostado con mermelada, cafe y zumo de naranja y eso me costaba €8 son como $10, aquí en Guatemala eso me cuesta unos Q15 que somo como €1.5 casi $2, una coca cola en una tienda de la calle €3 que son como Q30.

martes, agosto 14, 2007

Para que practiqués




Si querés practicar un poco, éste programa tiene algunas funciones muy buenas, un listado de 8000 palabras con su traducción al ingles y su pronunciación respectiva, tiene examenes tanto de traducción textual como de comprensión auditiva, ademas se puede dejar corriendo como un widget mostrando palabras y su traducción, sin darte cuenta te las vas aprendiendo. En resumen es un programita sencillo para enriquecer el vocabulario en ingles y mejorar la comprensión, es feo pero muy útil.

enlace http://wordsgalore.com/

jueves, agosto 02, 2007

Numero a Letras en SQL




Mas de alguna vez hemos tenido la necesidad de pasar de numeros a letras, y hay una gran cantidad de rutinas muy eficientes para hacerlo, tanto para delphi, .NET, etc. Aquí una no tan común en SQL. Cortesía de Hugo.




CREATE FUNCTION [dbo].[Num2Let]
(
@Numero NUMERIC(20,2)
)
RETURNS varchar(2000)
AS
BEGIN
DECLARE @lnEntero INT,
@lcRetorno VARCHAR(512),
@lnTerna INT,
@lcMiles VARCHAR(512),
@lcCadena VARCHAR(512),
@lnUnidades INT,
@lnDecenas INT,
@lnCentenas INT,
@lnFraccion INT
SELECT @lnEntero = CAST(@Numero AS INT),
@lnFraccion = (@Numero - @lnEntero) * 100,
@lcRetorno = '',
@lnTerna = 1
WHILE @lnEntero > 0
BEGIN
SELECT @lcCadena = ''
SELECT @lnUnidades = @lnEntero % 10
SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
SELECT @lnDecenas = @lnEntero % 10
SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
SELECT @lnCentenas = @lnEntero % 10
SELECT @lnEntero = CAST(@lnEntero/10 AS INT)
-- Unidades
SELECT @lcCadena =
CASE
WHEN @lnUnidades = 1 AND @lnTerna = 1 THEN 'Uno ' + @lcCadena
WHEN @lnUnidades = 1 AND @lnTerna <> 1 THEN 'Un ' + @lcCadena
WHEN @lnUnidades = 2 THEN 'Dos ' + @lcCadena
WHEN @lnUnidades = 3 THEN 'Tres ' + @lcCadena
WHEN @lnUnidades = 4 THEN 'Cuatro ' + @lcCadena
WHEN @lnUnidades = 5 THEN 'Cinco ' + @lcCadena
WHEN @lnUnidades = 6 THEN 'Seis ' + @lcCadena
WHEN @lnUnidades = 7 THEN 'Siete ' + @lcCadena
WHEN @lnUnidades = 8 THEN 'Ocho ' + @lcCadena
WHEN @lnUnidades = 9 THEN 'Nueve ' + @lcCadena
ELSE @lcCadena
END
-- decenas
SELECT @lcCadena =
CASE
WHEN @lnDecenas = 1 THEN
CASE @lnUnidades
WHEN 0 THEN 'Diez '
WHEN 1 THEN 'Once '
WHEN 2 THEN 'Doce '
WHEN 3 THEN 'Trece '
WHEN 4 THEN 'Catorce '
WHEN 5 THEN 'Quince '
ELSE 'Dieci' + @lcCadena
END
WHEN @lnDecenas = 2 AND @lnUnidades = 0 THEN 'Veinte ' + @lcCadena
WHEN @lnDecenas = 2 AND @lnUnidades <> 0 THEN 'Veinti' + @lcCadena
WHEN @lnDecenas = 3 AND @lnUnidades = 0 THEN 'Treinta ' + @lcCadena
WHEN @lnDecenas = 3 AND @lnUnidades <> 0 THEN 'Treinta y ' + @lcCadena
WHEN @lnDecenas = 4 AND @lnUnidades = 0 THEN 'Cuarenta ' + @lcCadena
WHEN @lnDecenas = 4 AND @lnUnidades <> 0 THEN 'Cuarenta y ' + @lcCadena
WHEN @lnDecenas = 5 AND @lnUnidades = 0 THEN 'Cincuenta ' + @lcCadena
WHEN @lnDecenas = 5 AND @lnUnidades <> 0 THEN 'Cincuenta y ' + @lcCadena
WHEN @lnDecenas = 6 AND @lnUnidades = 0 THEN 'Sesenta ' + @lcCadena
WHEN @lnDecenas = 6 AND @lnUnidades <> 0 THEN 'Sesenta y ' + @lcCadena
WHEN @lnDecenas = 7 AND @lnUnidades = 0 THEN 'Setenta ' + @lcCadena
WHEN @lnDecenas = 7 AND @lnUnidades <> 0 THEN 'Setenta Y ' + @lcCadena
WHEN @lnDecenas = 8 AND @lnUnidades = 0 THEN 'Ochenta ' + @lcCadena
WHEN @lnDecenas = 8 AND @lnUnidades <> 0 THEN 'Ochenta y ' + @lcCadena
WHEN @lnDecenas = 9 AND @lnUnidades = 0 THEN 'Noventa ' + @lcCadena
WHEN @lnDecenas = 9 AND @lnUnidades <> 0 THEN 'Noventa y ' + @lcCadena
ELSE @lcCadena
END
-- centenas
SELECT @lcCadena =
CASE
WHEN @lnCentenas = 1 AND @lnUnidades = 0 AND @lnDecenas = 0 THEN 'Cien ' + @lcCadena
WHEN @lnCentenas = 1 AND NOT(@lnUnidades = 0 AND @lnDecenas = 0) THEN 'Ciento ' + @lcCadena
WHEN @lnCentenas = 2 THEN 'Doscientos ' + @lcCadena
WHEN @lnCentenas = 3 THEN 'Trescientos ' + @lcCadena
WHEN @lnCentenas = 4 THEN 'Cuatrocientos ' + @lcCadena
WHEN @lnCentenas = 5 THEN 'Quinientos ' + @lcCadena
WHEN @lnCentenas = 6 THEN 'Seiscientos ' + @lcCadena
WHEN @lnCentenas = 7 THEN 'Setecientos ' + @lcCadena
WHEN @lnCentenas = 8 THEN 'Ochocientos ' + @lcCadena
WHEN @lnCentenas = 9 THEN 'Novecientos ' + @lcCadena
ELSE @lcCadena
END
--Terna
SELECT @lcCadena =
CASE
WHEN @lnTerna = 1 THEN @lcCadena
WHEN @lnTerna = 2 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) THEN @lcCadena + ' Mil '
WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) AND
@lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0 THEN @lcCadena + ' Millon '
WHEN @lnTerna = 3 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) AND
NOT (@lnUnidades = 1 AND @lnDecenas = 0 AND @lnCentenas = 0) THEN @lcCadena + ' Millones '
WHEN @lnTerna = 4 AND (@lnUnidades + @lnDecenas + @lnCentenas <> 0) THEN @lcCadena + ' Mil Millones '
ELSE ''
END
--Armo el retorno terna a terna
SELECT @lcRetorno = @lcCadena + @lcRetorno
SELECT @lnTerna = @lnTerna + 1
END
IF @lnTerna = 1
SELECT @lcRetorno = 'Cero'
RETURN RTRIM(@lcRetorno) + ' Con ' + LTRIM(STR(@lnFraccion,2)) + '/100'
END

viernes, julio 27, 2007

miércoles, julio 18, 2007

configurar squid en 5 minutos




Probablemente como yo, tuvieron alguna vez la necesidad de montar una pequeña red con recursos compartidos, todos sabemos que si se deja la salida a Internet libre, cualquiera llega pone un p2p y nos mata a todos, y obviamente soluciones como un servidor necesitan máquinas decentes si utilizamos Windows, la solución perfecta es squid ya que con una 486 que usábamos de banca podemos instalar un servidor de Internet. Aunque el titulo dice 5 minutos a mi me llevó como 3 horas ya que yo uso kubuntu y el artículo es para Red Hat, pero es cuestión de afinamiento.

Artículo aqui

PD. squid es un proxy, open source.

viernes, julio 13, 2007

En serio tenés que verlo completo

Esto me lo envió Andrés, un amigo, hay que verlo.

jueves, julio 05, 2007

Comparacion Linux




Una pagina donde se pueden comparar entre si muchas las distribuciones de Linux, calificándolas en base a ciertas pruebas tales como facilidad de instalación, consumo de recursos, estabilidad, etc.

enlace aqui

lunes, junio 25, 2007

Cómo enviar correo electrónico por código usando cuentas de GMail

Enviar correos utilizando .NET es muy fácil sin embargo para utilizar la cuenta de Gmail se necesita un par de configuraciones adicionales como lo son el uso de SSL y un puerto diferente para la conexión

articulo original aqui

using System;
using System.Collections;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;

public class EjemploCorreoGMail
{
    public static void Main()
    {
            System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
            msg.To.Add("destinatario@dominio.com");
            msg.From = new MailAddress("micuenta@gmail.com", "Tu Nombre", System.Text.Encoding.UTF8);
            msg.Subject = "Prueba de correo a GMail";
            msg.SubjectEncoding = System.Text.Encoding.UTF8;
            msg.Body = "Cuerpo del mensaje";
            msg.BodyEncoding = System.Text.Encoding.UTF8;
            msg.IsBodyHtml = false

            //Aquí es donde se hace lo especial
            SmtpClient client = new SmtpClient();
            client.Credentials = new System.Net.NetworkCredential("micuenta@gmail.com", "miclave");
            client.Port = 587;
            client.Host = "smtp.gmail.com";
            client.EnableSsl = true; //Esto es para que vaya a través de SSL que es obligatorio con GMail
            try
            {
                        client.Send(msg);
            }
            catch (System.Net.Mail.SmtpException ex)
            {
                        Console.WriteLine(ex.Message);
                        Console.ReadLine();
            }
    }
}

jueves, junio 21, 2007

Aventura en Cuba







Bueno se que muchos al igual que yo se preguntan como es Cuba en realidad, quien miente? y luego de una semana en La Habana puedo contar lo que vi y lo que escuche, no quiero opinar ni decir si pienso que algo es bueno o malo simplemente traslado lo que viví.

1) La moneda para los turistas se llama peso cubano convertible, que esta al 1x1 con el Dolar pero te multan con un impuesto del 10% y otro recargo que no recuerdo, total por USD$100 te dan 80CUC, solo con esto ya todo sale un 20% mas caro, hay que ir con Euros, sale mejor.

2) La moneda para el pueblo cubano y con el cual pagan los sueldos se llama peso (solamente)

3) Todo se debe pagar en CUC en ningún lugar aceptan Dolares, Tarjetas o Euros.

4) Los cubanos no pueden subir a los hoteles, ni entrar a los sitios turísticos como Baradero, tienen prohibido "molestar" a los turistas

5) Se puede caminar a media noche por cualquier lugar, sin pena alguna, es increíblemente seguro

6) La educación y la salud son gratis y obligatorias.

7) también el servicio militar es obligatorio y es por 5 años

8) Es cierto hay médicos, ingenieros etc, como taxistas y meseros. Ya que la educación es accesible a todos, pero no hay suficiente oferta de trabajo.

9) El Sueldo mensual de un Medico es de USD$35

10) El estado brinda servicios básicos, como la comida, la educación y la salud, pero con su sueldo deben comprar el resto

11) El producto nacional es muy barato, digamos una pizza mediana en un restaurante cuesta 3CUC, sin embargo una gaseosa importada cuesta 2CUC, es decir La Habana esta llena de restaurantes pero un cubano con un sueldo de USD$35 no puede sentarse y comerse una pizza que cuesta como USD$5, son para los turistas

12) No hay trafico, casi no hay carros, y la mitad de los pocos carros que hay son modelo tipo '40, '50 por allí, pero muy bien cuidados.

13) Existen lugares turísticos como la Fortaleza de El Morro, El Malecón, etc. que vale la pena visitar

14) El agua potable es purificada

15) No hay Internet, en Cuba es muy caro cuesta USD$600 mensuales una linea dedicada de 64Kb, si 64Kb.

16) Que dicen los cubanos? pues algunos estan contentos con esa forma de vida, pero la mayoría quieren mas libertades

1000) bueno no me aguanté, que creo que es lo mejor de cuba? el nivel de educación, salud y seguridad, comparado con el nuestro está por las nubes. Que es lo peor? la falta de libertades.

martes, junio 19, 2007

Buscador de codigo fuente



Existe un buscador de codigo llamado Krugle, permite buscar codigo fuente en una gran cantidad de lenguajes y temas de programacion y tiene incluso plug-ins.

fuente original aqui

jueves, junio 07, 2007

Como funciona google internamente?




En 1997 los creadores de Google los estudiantes Larry Page y Sergey Brin realizaron su tesis doctoral donde planteaban las bases para lo que mas tarde se convertiría en Google.

Una traducción al español de la tesis aqui

El articulo completo del traductor aqui

(por cierto Google es ya la marca mas valiosa del mundo con un valor en Abril del 2007 de 66.000 millones de dólares, por encima de Microsoft, Coca Cola y otros)

La nueva version de Qt jambi




Trolltech ha sacado una nueva versión de su herramienta de desarrollo multiplataforma basada en java QT jambi, y los demos que muestras son increibles.

(Recordemos que KDE esta desarrollado en las herramientas de Trolltech)

lunes, junio 04, 2007

Google ya reconoce rostros

Que significa esto? en pocas palabras el resultado final dentro de poco tiempo sera que si buscas "Ronaldo", google va a reconoces todas las imagenes donde apareza su rostro.... !!!!

la noticia completa aqui

una busqueda de prueba aqui
(esta busqueda dice muestreme todas las imagenes que tengan un rostro cualquiera)

martes, mayo 29, 2007

Aventura en Bogota







Tuve la oportunidad recientemente de conocer la ciudad de Bogota, y debo decir que es un lugar precioso, el centro de Bogota es muy antiguo pero con construcciones bien restauradas, y la ciudad es increiblemente limpia, fui por motivos de trabajo lo que no me permitio conocer mucho, pero lo poco que pude conocer me gusto. Me sigo quedando con la Antigua pero con Bogota si hay competencia. Por cierto la idea del trasmetro en Guatemala fue tomado del Transmilenio de Bogota, eso si, como se puede ver en la fotografia hay una gran diferencia. Por cierto algo que olvidaba mencionar, casi todas las construcciones e inclusive los edificios son de ladrillo, entonces la ciudad se ve completamente naranja......

viernes, mayo 18, 2007

Como obtener la informacion del Disco Duro

Muchas veces nos es útil obtener información del Disco Duro por ejemplo para el control de licencias, una vez obtenido ésto podemos encriptar o manipular esa información para que nos sirva de comprobación de piratería :)

articulo original aqui

Se hace una Clase DiscoDuro.vb que será nuestra clase especializada

Public Class DiscoDuro
Private _Modelo As String
Private _Tipo As String

Private _Serial As String

'Propiedad para Manejar el Modelo del Disco
Public Property Modelo() As String

Get
'Retorna el Modelo del Diso Duro
Return _Modelo
End Get
Set(ByVal value As String)
'Asigna el Modelo del Disco Duro

_Modelo = value
End Set
End Property

'Propiedad para Manejar el Tipo del Disco

Public Property Tipo() As String
Get
'Retorna el Tipo del Diso Duro
Return _Tipo
End Get

Set(ByVal value As String)
'Asigna el Tipo del Disco Duro
_Tipo = value

End Set
End Property

'Propiedad para Manejar el Serial del Disco
Public Property Serial() As String

Get
'Retorna el Serial del Diso Duro
Return _Serial
End Get
Set(ByVal value As String)
'Asigna el Serial del Disco Duro

_Serial = value
End Set
End Property

End Class

Y el codigo para utilizarla seria asi

'Importamos el namespace System.Management para Accesar al Windows Management Instrumentation
Imports System.Management

Public Class Form1
'Declaramos una coleccion del tipo ArrayList
Dim hdLista As New ArrayList

'En el evento Load escribiremos el codigo para obtener la informacion

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
'Creamos ahora un objeto ManagementObjectSearcher y agregaremos la cadena de seleccion

'para obtener de la clase Win32_DiskDrive
' la Informacion del modelo y el tipo del Disco Duro
Dim BuscardorWMI As New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")

For Each wmi_HD As ManagementObject In BuscardorWMI.Get

'creamos un objeto del tipo DiscoDuro
Dim Hd As New DiscoDuro
'asignamos el valor del Modelo obtenido de la consulta
' en la propiedad Modelo del objeto Hd
Hd.Modelo = wmi_HD("Model").ToString
'asignamos el valor del Tipo obtenido de la consulta

' en la propiedad Modelo del objeto Hd
Hd.Tipo = wmi_HD("InterfaceType").ToString
'y Finalmente agregamos dicho objeto Hd al ArrayList que creamos
hdLista.Add(Hd)
Next


'Creamos ahora una nueva instancia del objeto que habiamos
' creado del tipo ManagementObjectSearcher
'y agregaremos la cadena de seleccion para obtener de la clase Win32_PhysicalMedia
' los seriales internos
'de los Discos Duros que hallamos encontrado en el ciclo anterior
BuscardorWMI = New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
'Deifinimos a i como un contador para manejar el ArrayList

Dim i As Integer = 0

For Each wmi_HD As ManagementObject In BuscardorWMI.Get

'Indica continuar con el ciclo mientras que i sea menor que
' la cantidad de discos encontrados
If i < hdLista.Count - 1 Then
'creamos un nuevo objeto del Tipo DiscoDuro para ir almacenando alli
'cada uno de los discos duros encontrados

Dim hd As New DiscoDuro
'asignamos el valor acutalde la lista en el objeto HD
hd = hdLista(i)
'debemos verificar que el valor del campo "SerialNumber" obtenido en la busqueda
'no sea un valor nulo de lo contrario

'la aplicacion arrojará una excepcion
If wmi_HD("SerialNumber").ToString = Nothing Then
'en el caso de que se halla encontrado el serial la propiedad "Serial" del
' objeto hd se guardará los siguiente:

hd.Serial = "No se Pudo Obtener El Serial"
Else
'en el caso contrario almacenaremos el numero de serial interno
'del disco duro en la propiedad "Serial" del objeto hd
hd.Serial = wmi_HD("SerialNumber").ToString
End If

'incrementando i
i += 1
End If
Next

'aqui coloco una manera de mostrarlo ustedes pueden escoger la que mejor les paresca
For Each hd As DiscoDuro In hdLista
'por cuestiones de tiempo yo escogí usar un MessageBox

MessageBox.Show(hd.Modelo & vbCrLf & hd.Tipo & vbCrLf & hd.Serial)
Next

End Sub

End Class

viernes, mayo 11, 2007

Un mes utilizando Windows Vista

Ya tengo un mes utilizando Windows Vista, y tengo mis observaciones (post orientado a usuario general, mas adelante pondré como me fué con las herramientas de desarrollo)



1) PRO: la apariencia Grafica que brinda el Tema Aero, es hermosa, con transparencias, brillos, efectos 3D, se nota en realidad una gran diferencia con windows XP.




2) CONTRA: eh aqui una imagen de mi monitor de proceso con el equipo recién iniciado.
Con solo entrar a Windows Vista ya tengo 1.4Gb. de memoria ocupados.





3) PRO: las busquedas y la indexacion de documentos y contenidos, permite encontrar cualquier documento ya sea por nombre, por contenido o por referencias...muy buena.









4) CONTRA: Aplicaciones, nada funciona al 100% todo es incompatible, tengo problemas en casi todas las aplicaciones instaladas. Sin embargo tambien hay truco y parches para casi todo.


En resumen Windows vista tiene sus incompatibilidades y un enorme consumo de recursos, entonces si la apariencia es muy importante pues prefiero un windows XP con algun programa de temas, y si la estabilidad lo es, pues no se, la pantalla de errores de windows Vista ahora es verde con azul eso si. Muy bonita, al final prefiero Windows Xp que Windows Vista. Eso sin mencionar que los Widgets, transparencias, efectos 3D y brillos estan en Linux y MacOSX desde hace casi 2 años.

La proxima versión de SQL Server

Aquí un adelanto.

viernes, mayo 04, 2007

mmmmm....

Hay gente que conquista medio mundo, pero valora mas la mitad que no tiene

lunes, abril 16, 2007

instalacion openSUSE 10.2




Si hay alguien que todavía crea que openSUSE es difícil de instalar, definitivamente tiene que ver éste vídeo.

vídeo aqui

lunes, abril 09, 2007

Los 21 grandes fracasos tencnológicos

Cuando escuchamos hablar de Microsoft, Apple u otros grandes pensamos solo en éxitos pero si pensamos en Windows Me o la primer PDA de Apple, recordamos grandes (enormes) fracasos.

una lista muy completa aqui

viernes, marzo 30, 2007

DELPHI 10 LITE v3.0 [SP1 Integrated]




Borland puso a la venta hace algunos meses su versión Delphi Studio 2006 (el que usa delphi no me dejará mentir que es el IDE mas rápido y que genera el código mas liviano de todos) aunque genera aplicaciones que piden pocos recuros, el IDE como tal si consume mucho, entonces en Asia (para variar) de alguna forma hicieron una versión hack llamada Delphi 10 Lite, la cual es Delphi Studio 2006 sin todos los componentes extra y sin .NET y que pide la misma cantidad de recursos que Delphi 7 pero con las bondades y novedades de Delphi 10.

Aqui el link

Y aquí el readme completo como un avance

====================================
DELPHI 10 LITE v3.0 [SP1 Integrated]
====================================


Welcome to Delphi 10 Lite, a mod of Delphi 2006 that doesn't require .NET.

1. FEATURES.
2. SYSTEM REQUIREMENTS.
3. COMPONENTS INCLUDED IN DELPHI 10 LITE.
4. COMPONENTS INCLUDED IN DELPHI 10 LITE SUPPLEMENTAL INSTALLERS.
5. WHAT IS INCLUDED IN THE HELP.
6. DELPHI TWEAKS UTILITY
7. CONTACT.


1. FEATURES
-----------

- Extremely small size. Only Standard Components and Database Components
are included.

- Optional components have been moved to supplemental installers, which may
be downloaded separately.

- The help system has been substituted by the Delphi 7 help, which is far
better and doesn't require the .NET Framework SDK.

- Included OpenHelp utility from Delphi 7.

- Included programming font Monospac821 BT. Recommended setting: size 8 with
ClearType activated.

- The Delphi Tweaks utility, located in the "Delphi 10 Lite" group, lets you
enhance the Delphi IDE in several ways. Optimum settings have already been
set, so you don't really need to run Delphi Tweaks unless you want to go
back to the default values.

- BORLNDMM.DLL has been updated to FastMM v4.62.

- Refactoring, ErrorInsite, and ActiveX support have been disabled, as they
require the .NET Framework.

- Update 1 has been installed (version of the IDE is 10.0.2166.28377)


2. SYSTEM REQUIREMENTS
----------------------

- Windows 2000/XP or higher.
- 160 MB of disk space.

For the rest, the requirements are similar to those of Delphi 7.


3. COMPONENTS INCLUDED IN DELPHI 10 LITE
----------------------------------------

Delphi 10 Lite includes the following components:

- Borland Standard Components
- Borland Database Components


4. COMPONENTS INCLUDED IN DELPHI 10 LITE SUPPLEMENTAL INSTALLERS
----------------------------------------------------------------

Delphi 10 Lite supplemental installers include the following components:

- Borland ActionBar Components
- Borland ADO DB Components
- Borland BDE DB Components
- Borland Control Panel Applet Package
- Borland DataSnap Connection Components
- Borland dbExpress Components
- Borland Editor Emacs Enhancements
- Borland Editor Script Enhancements
- Borland InterBase Express Components
- Borland Internet Components
- Borland Markup Language Wizards
- Borland MyBase DataAccess Components
- Borland Sample Components
- Borland SimpleDataset Component (DBX)
- Borland SOAP Components
- Borland WebSnap Components
- Delphi 1.0 Compatibility Components
- Internet Explorer Components
- Microsoft Office 2000 Sample Automation Server Wrapper Components
- Microsoft Office XP Sample Automation Server Wrapper Components


5. WHAT IS INCLUDED IN THE HELP
-------------------------------

The help system has been substituted by the Delphi 7 help, which is far
better and besides it doesn't require the .NET Framework SDK.

Only the reference materials have been included. These are:

- Delphi Object and Component Reference
- Delphi Language Guide
- Delphi Compiler Messages and Warnings
- Delphi Compiler Options and Directives
- Microsoft Win32 Programmer's Reference
- Glossary

If you need a programmer's guide, there are some excellent books out there,
such as the Delphi 6 Developer's Guide, by Xavier Pacheco and Steve Teixeira.

NOTE: There is no context-sensitive help, sorry. However, you can access the
help from the Delphi main menu or clicking on the Help icon in the toolbar.


6. DELPHI TWEAKS UTILITY
------------------------

Delphi Tweaks is an utility that lets you enhance the Delphi IDE in several
ways that require modifying the binaries. Hence the IDE needs to be closed
before saving any changes. Optimum settings have already been set, so you
don't really need to run Delphi Tweaks unless you want to go back to the
default values.

- Docked panels: Lets you customize the speed at which the docked panels open
and close when they are in unpinned mode.

- TFrame bugfix: Lets you fix a bug present in TFrame in Delphi 2006.
Explanation: In Delphi 2006, when you create an instance of a frame, the
IDE sets its TabStop property to "true", which is in contradiction with the
default value of TabStop. Now imagine that you want to set TabStop to
"false". Well.. you can't, because the IDE still believes that "false" is
the default value, and thus it refuses to store "false" in the DFM (it
would be a waste of disk space, in theory). Thus TabStop is always "true".
This problem is fixed here.


7. CONTACT
----------

delphi10lite@gmail.com

miércoles, marzo 21, 2007

Gotcha




Con unos amigos fuimos al Gotcha hace varios dias, no habia tenido tiempo de subir la fotografía,... pero si damos miedo.

expandirla aqui

lunes, marzo 19, 2007

¿Cuántos megapixels tienen nuestros ojos?




Estaba buscando en Internet algún listado mas o menos estandarizado de los colores de ojos que hay (el para qué es otra historia...) y encontré casualmente éste curioso artículo. aqui.

viernes, marzo 02, 2007

Vista activation cracked by brute force

Parece ser que el infalible sistema de seguridad de Windows Vista para la activación en linea Software Protection Platform (WSPP) que es WSPP?, sufrió la misma suerte que su tambien infalible sistema de protección de derechos de Autor (DRM) que es DRM?, y ya se desarrollo un metodo para burlarlo, la informacion completa Vista activation cracked by brute force

miércoles, febrero 28, 2007

Visual Studio 2005 Service Pack 1




En realidad el SP de VS2005 salió como en noviembre 2006 pero yo lo acabo de instalar por el miedo que siempre existe de que causen mas daño que bien, sin embargo me parece que éste SP hace mucho bien, ya que resuelve al menos el peor de los problemas del VS2005, el enorme consumo de recursos.

se puede bajar el SP aqui

martes, febrero 27, 2007

This Old Heart Of Mine



This Old Heart Of Mine

sábado, febrero 17, 2007

Y no que no pues Fabio.....





Debut de Ronaldo en el AC Milan, anota 2 goles y pone asistencia para otro, sera que haber sido declarado el mejor centro delantero de los ultimos 10 años fué por algo....o no Fabio?

noticia aqui

jueves, febrero 15, 2007

Como burlar al antivirus




Les sorprenderia saber lo facil que es burlar a los "mejores" antivirus que hay actualmente como kapersky, nod32, norton, etc., y estoy hablando de técnicas sencillas para lograrlo, con herramientas complejas y técnicas avanzadas que se podrá hacer? mejor ni imaginarlo. En éste documento se explica como se hizo para que los antivirus permitieran la ejecución de ficheros infectados. Documento pdf aqui

enlance original al artículo aqui

Diccionario:
virus informático
antivirus
tabla comparativa de antivirus1
tabla comparativa de antivirus2

lunes, febrero 12, 2007

La POO está muriendo?




post original aqui

Hace unos días Robert h Quinn nos comentaba de pasada en su bitácora que la programación orientada a objetos está muriendo. En los últimos tiempos ha crecido el interés por lenguajes como Haskell o Erlang. Los lenguajes orientados a objetos tienden a introducir cada vez más conceptos ajenos a la POO, siendo los ejemplos más claros Ruby y la próxima versión de C#. Incluso C++ se renueva. ¿Hay argumentos suficientes para afirmar que la orientación a objetos está muerta? ¿O es sólo que ha madurado? ¿Cómo será el próximo gran lenguaje?

jueves, febrero 08, 2007

Aventura Extrema




Bueno para uno que es cobarde para las alturas si lo fué, con unos amigos hicimos canoping en un parque ecológico muy bonito www.pindulce.com en realidad muy recomendable (si te gusta sufrir)


Galeria completa aquí

miércoles, febrero 07, 2007

Muy caro el software?.....aqui alternativas libres




Todos sabemos que soluciones empresariales de software no siempre son la opción mas indicada para pequeñas empresas, por ello en el siguiente enlace se muestra un listado de aplicaciones libres, algunas de ellas incluso mejores que las de pago.

Por ejemplo:
1) Firefox reemplaza a Internet Explorer para navegación web
2) Thunderbird reemplaza a Microsoft Outlook y Eudora como clientes de correo
3) Subird reemplaza el calendario de Microsoft Outlook

y otra mas, 30 en total.

enlace aqui

jueves, febrero 01, 2007

Pero que hiciste Capello?



Pero que te pasa Fabio, tiene 3 FIFA World Player y decis que no juega?

Máximo goleador de la Eredivisie 1995
Máximo goleador de la Eredivisie 1996
Trofeo Pichichi al máximo goleador de la liga española 1997
Bota de Oro 1997
Balón de Oro 1997
Trofeo Bravo 1997
Onze de Oro 1997
FIFA World Player 1996
FIFA World Player 1997
Trofeo Bravo 1998
Balón de Bronce 1998
Máximo Goleador de la Copa de la UEFA 1998
Máximo Goleador de la Lega Calcio 1998
Mejor extranjero de la Lega Calcio 1998
Mejor Jugador de la Lega Calcio 1998
Balón de Oro del Mundial 1998
Plata en el FIFA World Player 2000
Botín de Oro al máximo goleador del Mundial 2002
Balón de Oro 2002
Onze de Oro 2002
FIFA World Player 2002
Bronce en el FIFA World Player 2003
Trofeo Pichichi al máximo goleador de la liga española 2004
Incluido en la lista FIFA 100 de los mejores jugadores vivos de la historia. 2004
Maximo goleador de las clasificatorias al mundial de 2006


martes, enero 30, 2007

Lanzamiento mundial de windows vista

Pues bien, el día de hoy fué el lanzamiento mundial de windows vista, para quien lo ama y para quien lo odia nimodo, aquí unos links interesantes.

Windows Vista a Fondo
Un post que realiza un análisis de qué es Windows Vista con un poco de historia y todas sus nuevas versiones

Windows XP contra Windows Vista: Comparación de Rendimiento
En ésta pagina se realizaron una serie de pruebas de rendimiento entre ambos sistemas operativos con una serie de aplicaciones y juegos, con interesantes resultados.

Sistema de Protección de Contenidos de Windows Vista
Enlaces sobre la protección de reproducción de multimedia pirata, explica como y por qué de la protección de contenidos.

Video de Windows Vista para quien no lo ha visto


Video de Mac OSX para quien no lo conoce


Video de Linux KDE



jajjajaaj este video me encantó deberas

Sistema de Protección de Contenidos de Windows Vista

Además de otros temas que ya todos conocemos como la exagerada utilización de recursos de Windows Vista, el problema de compatibilidad con muchas aplicaciones, etc. hay otro tema del que se ha hablado poco, ya que el que no este de acuerdo es porque gusta de hacer copias de contenidos, pero en resumen....windows vista no permitira copiar, reproducir, ni almacenar ningun tipo de información con derechos de autor, como musica, videos, etc.

articulo completo
A Cost Analysis of Windows Vista Content Protection

viernes, enero 26, 2007

Padre Rico Padre Pobre video

Un libro muy bonito, aqui va un video sobre el mismo, para quien no lo ha leído y por supuesto un refresco de memoria para que aquel que yá lo conoce.

fuente aqui

programadores según el cine




Por qué en peliculas como matrix, los codigos son innumerables simbolos verdes sobre un fondo negro? o por qué en swordfish y otros tantos se representa la intrusión en sistemas como un juego de counter strike?

acaso no la computación y la programación es completamente diferente a lo que el cine dice?

por qué en el cine creen que los codigos fuentes se mueven?

post interesante
What code DOESN'T no in real life

jueves, enero 25, 2007

Anecdota

Un consejo (aprendido para variar despues del golpe), cuando andes de visita en un pais del que no conoces siquiera el nombre de las calles mas importantes, asegurate de recordar al menos el nombre de tu hotel.......sino te costara mucho........muchisimo regresar :(

martes, enero 23, 2007

Análisis Estático de Código

En Sistemas donde es muy importante la fiabilidad, o en aquellos donde se necesite el cumplimiento de estándares de calidad, o bien para analizar codigo fuente no documentado o mal finalizado se precisa la utilización de herramientas de análisis de código. Éstas permiten la verificación y corrección del código. Una metodología indispensable para desenmarañar código antiguo.


enlace aqui

viernes, enero 19, 2007

Convertir una IP dinámica en una IP fija con DynDNS (actualizado)

Este resumen no está disponible. Haz clic aquí para ver la publicación.

jueves, enero 18, 2007

Mensaje




Ésta imagen ya la habia colocado antes, pero me gusta mucho :)

mensaje original aqui

jueves, enero 11, 2007

Desarrollo Agil



Desarrollo ágil es una filosofía, no una metodología



El desarrollo ágil no es una metodología con pasos establecidos, es simplemente una manera de pensar y de trabajar.



El desarrollo ágil se puede resumir en una frase “ejecuta rápidamente”. La rapidez no es un método infalible a aplicar a rajatabla, es una manera de enfocar las tareas enfocada a dar prioridad a la ejecución sobre la planificación.

Planificas o actúas



El tiempo no es infinito. No puedes hacer todo al mismo tiempo, optar por una opción o la otra conlleva muchas cosas. Claro, puedes hacer ambas cosas, pero entonces harás ambas a medias.



Especular o probar en real




¿Funcionará una web que busca en 23 webs de vuelos simultáneamente como Trabber? A priori la idea tiene sentido, pero quién sabe si funcionaría, si captaría tráfico, si generaría fidelidad... A posteriori se ha visto que sí, que funciona, pero a posteriori todo parece siempre evidente. La única manera de saberlo ha sido desarrollar el proyecto.



En un entorno donde las innovaciones envejecen en apenas meses, donde todo evoluciona a la velocidad de la luz, no está siempre clara la utilidad de dedicar excesivamente tiempo a investigar que puede funcionará y qué no, o a planificar al detalle. Es divertido especular con ideas en el aire, pero no se obtiene nada en concreto.

Investigar e innovar



Innovar también es investigar



Innovación significa crear algo que no existía antes, ejecutar para obtener algo físico. Investigar es averiguar información útil para el proyecto, crear algo intangible, conocimiento.



La ventaja de innovar sobre investigar, es que a la vez que obtienes algo físico funcionando, también puedes averiguar información útil para el proyecto, en muchos casos una información mucho más fiable que te proporciona la pura investigación. En conclusión, innovando también investigas.




Tras investigar y planificar puedes tardar 8 meses en tener la primera beta impoluta para lanzarla a público o tardar 1 mes con algo hecho rápidamente sin refinar. En la segunda opción 7 meses más tarde puedes tener cientos o miles de usuarios, una versión refinada y mucha más información real, no especulaciones. En la primera opción nada te garantizaría que la beta impoluta no sea después un fiasco.



Internet facilita innovar y hacer experimentos con usuarios reales, basta con públicar la web y tener un poco de tráfico.



Reacción rápida



Rectificar puede ser percibido negativamente, significa que has cometido un error o lo puedes percibirlo positivamente como que has aprendido y eres capaz de reaccionar rápidamente para arreglarlo.



Cuanto más rápidamente ejecutes, antes descubrirás qué es bueno, qué es malo, qué es suficientemente bueno y podrás hacer mejoras. Rectificar no es fácil, conlleva ser humilde y modesto.



Cuando el área del proyecto está muy trillada y se conoce bastante sobre lo que funciona, si puede tener sentido investigar y planificar para mejorar lo que ya existe. La filosofía de desarrollo ágil funciona mejor cuando se trata de hacer algo desde 0 o rediseñarlo totalmente, por el contrario es menos recomendable cuando quieres mejorar algo que ya sabes que funciona.




Ideas sobre desarrollo ágil





Lo mejor es enemigo de lo bueno



¿Cuando tienes algo suficientemente bueno para sacar a público? En cuanto funcione de manera técnicamente aceptable.



Lo mejor es enemigo de lo bueno, pero lo mejor aún es peor enemigo cuando ni siquiera sabes qué es. No dudes, sácalo a real y verás si funciona o no.



Resuelve los problemas cuando los tengas



No tiene sentido preocuparse de problemas de escalabilidad en el futuro al principio de un proyecto, deberías preocuparte de las cosas más urgentes en ese momento. Además de quitarte tiempo muy valioso, seguramente las soluciones a las que llegues distarán de ser óptimas. Por ejemplo, hasta que no sepas exactamente que problemas de escalabilidad vas a tener no sabrás cuál será la mejor opción.




Lo mismo pasa con los temas legales. Si no hay ingresos, ni pagos, ni información personal muy delicada almacenada no creo que valga la pena que te quiten el sueño. La última cosa de la que me preocuparía sería de como declarar una pequeña cantidad de ingresos de Adsense.



Los grandes planes nunca funcionan



No es una ley de Murphy, pero como si lo fuera. Planificar excesivamente aleja de la realidad, es muy fácil escribir en un papel ideas, pero muy difícil ejecutarlas. Conforme una planificación se complica es más probable que no funcione como se espere.



Es positivo tener unas ideas básicas y generar algunos documentos concisos, pero hay que evitar la complicación excesiva. Jesús Encinar cuenta como redujeron el plan de negocio de Idealista de 150 páginas a solo 7.



Logs y estadísticas de servidor




Para saber qué funciona y qué no funciona de los cambios realizados, tu gran aliado serán las estadísticas. Son la manera más rápida, ágil y barata de obtener información fiable del mundo real.



No se trata de manejar mil datos estadísticos, sino centrarte en los realmente relevantes y sensibles a los cambios. Los test de usuarios de guerrilla son útiles especialmente cuando tienes dudas o hay grandes cambios.



No es algo nuevo



La filosofía de desarrollo ágil no es nueva en absoluto. Cualquiera que comienza un proyecto puede optar por planificar bien o actuar rápido, ya sea construyendo un puente o diseñando una web. Simplemente en algunos proyectos puede ser más adecuado hacerlo que en otros.



No es recomendable arriesgarse a tener accidentes construyendo un puente, todo tiene que estar bien planificado y aguantar mucho más de lo necesario. Sin embargo una web inicialmente no la creas para resistir mucho más tráfico del necesario y si un día cae un par de horas se puede resolver fácilmente.



Es un medio, no un fin




La metodología de desarrollo web ágil, como cualquier otra metodología es un medio, no un fin. No se trata de aplicarla a rajatabla, sino cuando nos ayude a conseguir nuestro objetivo. Nadie debería seguir esta filosofía en su proyecto porque lo ha leído este artículo, ni en ningún otro, sino porque es lo más adecuado para su proyecto en ese momento y en esas condiciones.



Hay servicios que deben funcionar perfectamente desde el primer día porque por su propia naturaleza solo aportan si funcionan bien, no se les daría una segunda oportunidad, para esto no vale el desarrollo ágil. Si desarrollas un servicio de pago tampoco te recomiendo experimentar demasiado con desarrollo ágil.



Sin marketing masivo



Hacer cambios de manera rápida no significa forzosamente la presencia de bugs, pero ciertamente con desarrollo ágil puede ser más proclives a tenerlos. Además puede que el aspecto del sitio no sea muy refinado cuando lo sacas a público tras un mes de desarrollo.



Por estas razones no es bueno aparecer en grandes medios porque entonces como comentaba Joel on Software en Massive Frontal PR is incompatible with Ship Early and Often” tendrías dos problemas a) un proyecto inacabado b) todo el mundo lo sabría.




Para un proyecto que utiliza desarrollo ágil es mejor el marketing de guerrilla, de blogs, el boca-oreja y en general cualquier técnica enfocada a un público más pequeño y limitado. Este público especialmente interesado en la idea es más comprensivo y da mucho feedback, sugiere, comenta, etc.



Motivación y abandono



El desarrollo ágil disminuye la probabilidad de abandono del proyecto porque lo hace más motivador.



Cualquier proyecto desde 0 requiere un volumen de motivación impresionante, no es extraño que un proyecto se abandone sin ser completado, lo que sucede mucho más frecuentemente en proyectos que tardan muchos meses en salir a público.



Un desarrollo ágil tiene una primera versión mucho antes con lo que minimiza el riesgo de abandono previo. Luego al no parar de sacar cambios y recibir feedback de los usuarios se obtiene más motivación positiva y se reduce la probabilidad de que sea abandonado.



Con pocos recursos es más fácil




Cuanto menos tengas, menos tienes que perder. Si no tienes inversión más que tu tiempo, eso será lo único que perderás si te arriesgas. Si te alguien te paga mucho dinero o invierte en tu proyecto, te dará más miedo arriesgarte a experimentar y probar cosas nuevas.



La conclusión es sencilla, aunque paradójica, tu escasez de recursos te abre la puerta de grandes oportunidades. Para llegar a innovar radicalmente hay que experimentar y probar haciendo cosas que grandes empresas ni podrían, ni se atreverían a hacer.



Utilizando desarrollo web ágil un equipo pequeño y sin recursos convierte sus debilidades en ventajas. Hay que evitar entrar a competir con las grandes con sus mismas armas y sus mismas metodologías de trabajo, es muy complicado tener opciones entrando en su terreno.



Equipo inicial minúsculo



No hablo de un equipo pequeño de 5 o 6, me refiero a un equipo minúsculo de 2 o 3 personas inicialmente.



Si hay mucha gente tardas demasiado en ponerte de acuerdo y sobre todo es complicado que nadie se moleste cuando parece que das “bandazos” con tanto experimento y cambio de opinión. A menos gente más agilidad de implementar y menos discusiones.




Lo que no recomiendo en absoluto para un proyecto así es depender de patas físicas, de acuerdos con terceros, de demasiada gente, etc. es complicado utilizar desarrollo ágil en esas circunstancias.



¿Es serio un proyecto llevado así?



Sucede que algunas personas no toman en serio un proyecto que cambia cada dos por tres, donde algunas cosas no son tan estables como debieran y que no tiene inicialmente un nivel de refinamiento muy alto. Se puede llegar a pensar que es un proyecto de “amiguetes”, algo poco serio, un juego.



En realidad nada tiene que ver una cosa con la otra. Cualquier experimento tiene mucho de juego, de descubrir que funciona y que no funciona, de ser como un niño curioso que prueba y prueba.



En realidad es positivo que sea divertido y que el ambiente sea relajado porque es solo es posible tener ideas nuevas y atreverse a implementarlas rápidamente en un ambiente flexible y donde se acepte la alta incertidumbre como normal, justamente lo que no sucede en un ambiente de trabajo clásico. Creo que no sería positivo para un proyecto desarrollado de manera ágil el parecer “serio”. Las camisetas y la ausencia de trajes no son casualidad o una moda en este ambiente.



El desarrollo ágil no es para siempre




El desarrollo ágil es especialmente útil al principio del proyecto, cuando hay que crear algo de la nada y aprender lo antes posible.



Más tarde, al cabo de un año o dos, cuando ya empiezas a tener claro lo que funciona y lo que no, la filosofía forzosamente cambia. Empieza a haber más gente en el equipo, se empieza a discutir más y se hace menos. Es normal e inevitable, no es lo mismo jugarte perder usuarios cuando empiezas y solo tienes un par de miles que más tarde cuando tienes un par de cientos de miles.



Cuando tienes muchos usuarios además se complican los cambios, la gente se acostumbra a las cosas y prefieren estabilidad, no les gustan los cambios, aunque realmente sean positivos para ellos.

Una filosofía de trabajo que no es para todos ni para todo



Tu carácter personal es importante



Para aplicar desarrollo ágil debes tolerar niveles altos de incertidumbre e incluso de caos en ocasiones. No te debe poner excesivamente nervioso no saber qué va a pasar en el futuro. Es una filosofía que funciona bien con personas que necesitan respuestas rápidas, hacer algo y ver los cambios, que no les gusta esperar.




Si tu estilo de trabajo es muy organizado y planificado, te incomoda la incertidumbre, pero por el contrario eres capaz de mantener alta tu motivación en un largo proyecto donde los resultados no se visualizan hasta meses más tarde, seguramente esta filosofía de trabajo no es para ti.



Cuando tienes ideas muy claras, te entusiasman ciertos autores y te encantan las metodologías, seguramente encajarás muy bien en otros proyectos, pero no en uno de desarrollo web ágil. Al contrario, la gente más óptima para desarrollo ágil, es la que peor encaja en grandes organizaciones con muchas jerarquías y procesos. No opino que un perfil sea mejor que otro, simplemente son diferentes para casos diferentes.

El caso de Panoramio



El caso de Panoramio es bastante claro de las ventajas que tiene aplicar metodología de desarrollo ágil.



Comenzó con un equipo de solo 2 personas, que ahora es de 3 personas con la reciente incorporación de José Florido. Más sería una multitud en un proyecto así.




Los cambios y rediseños han sido constantes en Panoramio, por ejemplo, hemos cambiado 3 veces radicalmente de homepage en un año, el último hace 4 días escasos.



En un tema como las mash-ups que usan el API de Google Maps no hay estándares porque están siendo inventadas ya mismo. No se sabe lo que funciona y lo que no, no hay referencias. En nuestro caso no hay más de 5 webs que posicionen fotos en mapas. Supongo que esto habrá facilitado que Google Earth recomiende Panoramio en su página de descarga, nos esté ayudando con el hosting y nos invitase al Googleplex.



Ningún método de investigación te dirá si una idea como la de Panoramio funcionará, es demasiado nueva, es más rápido obtener información de la gente que utiliza la web realmente.




Por la evolución del proyecto y su rápida salida a público en etapas muy iniciales, quizás algunas personas han tomado poco en serio el proyecto como de “amiguetes” o como un juego. Ciertamente lo pasamos bien, es divertido, pero eso no quita que trabajemos en Panoramio más horas que tiene el día y que nuestro nivel de implicación sea muy alto.



Panoramio salió sin modelo de negocio claro lo que puede parecer inadecuado. Por supuesto nosotros pensamos que lo ideal es tener un modelo de negocio claro desde el principio, pero siendo un equipo inicialmente de dos personas, o te centras en crear un proyecto útil y que funcione, o te centras en crear un modelo de negocio, no puedes estar en todo. Si creas algo útil seguro que luego hay una manera de rentabilizarlo. Actualmente con la publicidad Adsense el sitio cubre costes y da beneficios, lo que no es banal en un sitio que hospeda fotos.



Si hubiéramos utilizado el método clásico de desarrollo hubiéramos tardado 6 meses como mínimo en salir a público. Sin embargo en ese tiempo ya teníamos 15.000 fotos y muchos miles de usuarios probando algo en real y dándonos información. El número de fotos actual es cercano a las 60.000.



La ventaja de haber salido a público tras solo dos meses de desarrollo no es solamente que a día de hoy tenemos mucho más tráfico, miles de fotos y de usuarios que si lo hubieramos hecho más tarde. La gran ventaja es que además de eso hemos aprendido mucho, un año es un mundo en estas áreas y este aprendizaje nos permitirá hacer grandes mejoras en un futuro próximo que de otro modo hubieran llegado mucho más tarde.



Respecto al marketing, hasta ahora nos habíamos limitado al marketing de guerrilla, puesto que inicialmente habían muchas cosas que corregir y mejorar, no era conveniente saltar a grandes medios. El boca a boca nos permitió aparecer citados en más de 800 blogs lo que nos trajo muchas personas interesadas y motivadas para dar mucho feedback e información para mejorar el sitio. Ciertamente, aún queda mucho que mejorar, pero ahora el proyecto esta mucho más definido y preparado para salir en grandes medios masivamente, de hecho ayer lo hizo por primera vez (Panoramio en Google News)




A partir de ahora las cosas irán cambiando en Panoramio, pero no tan radicalmente y muchos cambios lo serán en la parte invisible, por ejemplo la velocidad de interacción de las fotos con el mapa. Más allá de preferir unas filosofías de trabajo u otras lo importante es ser flexible y buscar la mejor manera de alcanzar los objetivos buscados.

ver tambien aqui

fuente original aqui