Posteado por: alejamp | Abril 26, 2009

LaNacion.com como votar comentarios sin control

Hace ya algún tiempo LNOL permite a los usuarios del sitio efectuar la valoraciones en los comentarios de las notas sin necesidad de estar autenticado en el sistema.

Para evitar que los usuarios abusen del sistema LNOL utiliza un control basado en cookies, un metodo probadamente inutil, que solo detiene a usuarios poco calificados tecnicamente.

Pero lamentablemente este sistema es aun mas sencillo de vulnerar dado que se puede saltar incluso el control de la cookie y votar N veces sin mayores problemas.

Leer Más…

Posteado por: alejamp | Enero 20, 2009

Linq error al filtrar nulos

Al hacer un una consulta con Linq suponía que no iba a tener problemas con los campos nulos. El problema esta en como Linq traduce la consulta a SQL.

Por ejemplo si escribimos el siguiente query:

List<CFD> cfds = (from c in db.CFD
                  where ((c.PolizaEn == poliza) || 
(c.PolizaS6 == poliza) || (c.PolizaSIS == poliza))
                  select c).ToList<CFD>();

Si poliza fuese null, Linq hará la siguiente consulta al SQL:

SELECT
FROM[CFD] AS[t0]
WHERE(([t0].[PolizaEn] = null) OR ([t0].[PolizaS6] =null) OR ([t0].[PolizaSIS] = null))

Para mi sorpresa no traduce los == null en is null. Por lo cual la consulta no retorna resultados. Para evitar este problema con campos nuleables se debe utilizar Linq de la siguiente manera:

List<CFD> cfds = (from c in db.CFD
                  where (object.Equals(c.PolizaEn, poliza) || 
object.Equals(c.PolizaS6, poliza) || object.Equals(c.PolizaSIS, poli))
                  select c).ToList<CFD>();
 

Posteado por: alejamp | Octubre 10, 2008

Como extraer texto entre dos tags de HTML

En el caso de que necesitemos obtener un determinado texto que esta comprendido entre dos tags de html por ejemplo: <h1>hola mundo</h1> es muy útil utilizar “regular expressions”.

Ejemplo

//Ejemplo:
string s =
GetTagContent("body", "<body style=”color:#000000”>hola mundo</body>");
Console.WriteLine(s);

El resultado devuelto por GetTagContent es “hola mundo”.

Aqui les dejo el código de la función:

/// <summary>
/// Devuelve la cadena de caracteres entre dos tags de HMTL/XML
/// </summary>
/// <param name="InStr">El texto donde se desea buscar</param>
/// <param name="Tag">el nombre del tag ej: body</param>
/// <returns>el string entre los tags</returns>
public string GetTagContent(string InStr, string Tag)
{
    string regexp = "<TAG[.\\n\\s\\w=\"';#:\\(\\)]*>(.*)</TAG>";
    string pattern = regexp.Replace("TAG", Tag);
    System.Text.RegularExpressions.Match m= null;
    try
    {
        m = Regex.Match(InStr,
            pattern,
            System.Text.RegularExpressions.RegexOptions.Singleline |
            RegexOptions.IgnoreCase);

    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.ToString());
    }

    if (m != null)
    {
        return m.Groups[1].Value;
    }
    else
    {
        return "";
    }
}

Posteado por: alejamp | Octubre 6, 2008

Ocultar el texto de la barra de estado…

Parece mentira pero la gente de testing paso como bug el texto que se muestra en la barra de estado del IE/FF. Bueno para los que tienen la desgracia de tener tal reporte, va el siguiente script:

 <script type=”text/javascript”>
function hidestatus(){
window.status=
”;
return true;

}
if (document.layers)
document.captureEvents(Event.MOUSEOVER | Event.MOUSEOUT);

document.onmouseover=hidestatus;
document.onmouseout=hidestatus;
 </script>
Posteado por: alejamp | Octubre 5, 2008

Buscando hosting de SVN

En a busqueda de un hosting SVN que que sea rapido, gratuito, y que permita versionar proyectos que no son Open Source (no por ser propietario sino por verguenza de que cualquiera ver menudo mamarracho) bueno he aqui un excelente indice, con una tabla comparativa de los hosting disponibles y filtros a gusto. http://www.svnhostingcomparison.com/

Posteado por: alejamp | Septiembre 28, 2008

Python… por donde empezar?

Bueno para los que como yo vienen de otros lenguajes de programacion y estan interesados en comenzar con Python creo que conseguir informacion no es lo dificil sino saber elegir.

IDE

En el campo de IDEs y editores de código gratuitos PyDEV (http://pydev.sourceforge.net/) se alza como cabeza de serie. PyDEV es un plu-gin para Eclipse que permite utilizar este IDE multiplataforma para programar en Python. Cuenta con autocompletado de código (con información sobre cada elemento), resaltado de sintaxis, un depurador gráfico, resaltado de errores, explorador de clases, formateo del código,
refactorización, etc. Sin duda es la opción más completa, sobre todo si instalamos las extensiones comerciales, aunque necesita de una canti-dad importante de memoria y no es del todo estable.
Otras opciones gratuitas a considerar son SPE o Stani’s Python Editor (http://sourceforge.net/projects/spe/), Eric (http://die-offenbachs.de/eric/), BOA Constructor (http://boa-constructor.sourceforge.net/) o incluso
emacs o vim.

Si no te importa desembolsar algo de dinero, Komodo (http://www.activestate.com/komodo_ide/) y Wing IDE (http://www.wingware.com/) son también muy buenas opciones, con montones de características interesantes, como PyDEV, pero mucho más estables y robustos. Además, si desarrollas software libre no comercial puedes contactar con Wing Ware y obtener, con un poco de suerte, una licencia gratuita para Wing IDE Professional.

Fuente “Python para todos” de Raul Gonzalez Duque.
http://mundogeek.net/tutorial-python/

Por mi lado, tomando la sugerencia de nuestro amigo Raul,  y dado que estoy familiarizado con Eclipse, creo que la mejor eleccion es PyDEV.

Instalacion de PyDEV

Linux – Ubuntu, en el caso de que tengan Ubuntu 8.04 esto es muy facil. Utilizando Synaptic Packet Manager, pueden descargar el paquete pyDev y automaticamente se instalara el IDE Eclipse y el SDK de Eclipse con todas las dependencias y plugins necesarios para pyDev. O desde consola:

sudo aptitude install eclipse-pydev

En cuanto al interprete, en el caso de Ubuntu 8.04 creo que viene por defecto. De no ser asi lo bajan de la misma manera:

sudo aptitude install python2.5

Para otras formas de instalacion pueden ir a http://begnu.wordpress.com/2007/09/26/pydev-python-eclipse/

Posteado por: alejamp | Agosto 24, 2008

Deskew, enderezando una imagen

Download:DeskewDemo

Introduccion

Cuando trabajamos con imagenes, sobre todo con documentos digitalizados, una de las distorciones habituales es la rotacion.

En el caso de los las imagenes que contienen texto impreso o figuras rectas (subrayado, cuadros, renglones, etc.) que permitan detectar el grado de inclinacion, es posible rectificar la misma utilizando algunos algoritmos de procesamiento de imagenes y deteccion de patrones.

Lo primero que deberiamos hacer es encontrar patrones de puntos colineales. Para esto podemos utilizar un algoritmo llamado Hough Transformation.

Leer Más…

Posteado por: alejamp | Agosto 19, 2008

Multilingual Controls in C#, easy!

Download demo Multilingual

Introduccion

Una manera rapida de proporcionar aplicaciones en multiples idiomas en C# es utilizar Culture y Embedded Resources.  Pero aun mas facil con MultilingualForm y MultilingualUserControl.

Es posible crear archivos .resx que contengan las definiciones para cada idioma y el neutral. Luego ResourceManager permite acceder a las entradas de un recurso para una determinada cultura de la siguiente manera:

CultureInfo ci = Thread.CurrentThread.CurrentCulture;
Assembly ass = Assembly.GetExecutingAssembly();
ResourceManager rm = new ResourceManager(this.GetType().Namespace, ass);
string res = rm.GetString("tt_hello", ci);

Leer Más…

Posteado por: alejamp | Agosto 18, 2008

Subversion con Visual Studio 2005

imageUna forma alternativa a SourceSafe de hacer sub versioning con Visual Studio 2005 es utilizando algunas de las posibilidades que brinda Subversion.

Subversion es un sistema open source de control de versionado de codigo, basado en Apache.

Leer Más…

Categorías