Categories
PHP PostgreSQL Software Libre Web

Hosting para PostgreSQL

Nota 1: Esta entrada en realidad no es patrocinada, pero por el contenido parece que si :D.

Los creadores de GNUPanel,

...un panel de control para servidores de hosting desarrollado en PHP y PostgreSQL, el cual provee tres interfaces web con acceso SSL a nivel de usuario, revendedor y administrador desde las cuales se puede agregar direcciones de correo, cuentas FTP, proteger directorios, redirigir subdominios, etc.

Han puesto un nuevo servicio de hosting GNUtransfer basado completamente en software libre, que a su vez hace uso del panel de control antes mencionado.

Si alguien anda buscando una alternativa más para las empresas que ofrecen PostgreSQL en sus planes de hosting, habrá que tenerlos en cuenta...

Nota 2: No he probado el servicio lo suficiente como para poner mi mano al fuego por ellos :).

Categories
Desarrollo de Software Expresiones Regulares Web WordPress

Plugin de WordPress a la Lista Negra (Acronym Replacer Revisited)

Acronym Replacer Revisited, es un plugin modificado por Nicolás Fantino, que tiene la finalidad de reemplazar los acrónimos que aparecen en el contenido de una o más entradas.

Gracias a este plugin, he perdido unas cuantas horas intentando determinar porque el blog en el que estaba instalado demoraba mucho en cargar, incluso cuando intentaba validar el feed, el código de respuesta era : Server returned timed out.

A continuación los tiempos de respuesta con el plugin activado/desactivado:

code:

-- Plugin activado
Request Count:  1
Bytes Sent:     56
Bytes Received: 52,125

RESPONSE CODES
--------------
HTTP/200:       1

RESPONSE BYTES (by Content-Type)
--------------
 ~headers:      326
text/html:      51,799

PERFORMANCE
--------------
Time to First byte:     11,125ms
Time to Last byte:      13,547ms

code:

-- Plugin desactivado
Request Count:  1
Bytes Sent:     56
Bytes Received: 51,882

RESPONSE CODES
--------------
HTTP/200:       1

RESPONSE BYTES (by Content-Type)
--------------
 ~headers:      326
text/html:      51,556

PERFORMANCE
--------------
Time to First byte:     1,172ms
Time to Last byte:      1,453ms

Si se fijan los valores de Time to First byte y Time to Last byte se puede observar que hay una gran diferencia en los tiempos de respuesta.

No sé si a otros bloggers que usen este plugin les pase lo mismo, pero por mi parte no he intentado corregir el problema descrito -me dá la ligera impresión que es por el mal uso de expresiones regulares. Por otro lado, tampoco probé la versión original para ver si el problema se reproduce o no, pero por lo pronto es el primer plugin para WordPress que agrego a mi lista negra :D.

Categories
.NET ASP.NET Desarrollo de Software Microsoft Web XSS

Cross Site Scripting en ASP.NET y la respuesta de Microsoft

Luego de haber reportado el pequeño bug sobre XSS en asp.net a través de Microsoft Connect, finalmente dijeron que no corregirán ese bug para la siguiente versión de .NET Framework (orcas) por motivos de compatibilidad con versiones anteriores.

En la respuesta -bastante común por cierto- hacen referencia a esta entrada escrita por S. Somasegar en la que se comenta que se realizarán cambios mínimos para la siguiente versión.

Entonces, por lo pronto queda a responsabilidad de los desarrolladores tomar las medidas necesarias para evitar el problema descrito en una entrada anterior.

Nota: el bug necesita intervención del usuario y -me parece que- sólo funciona en Firefox.

Categories
Arquitectura Software Desarrollo de Software

The Architecture Journal

Ya mi amigo Jose Antonio había comentado sobre esta revista, sólo que al parecer se le olvidó mencionar que existe la posibilidad de recibir completamente gratis una versión impresa de ésta.

Pues hoy me acaba de llegar la edición número 10 de esta interesante revista, los temas que se contemplan son:

  • Composite Applications—The New Paradigm: Composite applications are moving the power from the developer to the user.
  • Context-Driven Access Via Microsoft Office: You don’t have to refactor all of your applications to create composite applications. Learn how one company interfaces with legacy systems using Information Bridge Framework.
  • Building Office Business Applications: Many business processes are document-centric. Explore the 2007 Office system features as a platform for composite applications with workflow.
  • Architecture Journal Profile: Scott Guthrie: Scott Guthrie is a general manager in Microsoft’s Developer Division. Get the update on his career and his thoughts on architecture.
  • Architecting Composite Smart Clients Using CAB and SCSF: Learn how the Composite Application Block and Smart Client Software Factory were used to expedite a real world banking application.
  • Quality Dta Through Enterprise Information Architecture: Data quality is not confined to the data layer. Learn how to get better data through
    your architecture.
  • Business Improvement Through Better Software Architecture: See how five organizational roles can help to bridge the gap between business strategy and software architecture.

Al parecer hoy tendré que sacrificar unas cuantas horas de sueño más de lo normal 🙂

Categories
.NET ASP.NET Windows Forms

Variables por referencia

Ayer mientras publicaba un ejemplo sobre variables por referencia y comparación de objetos -como respuesta a una pregunta hecha en un foro, me surgió el siguiente problema:

csharp:

using System;

class Program
{
    static void Main(string[] args)
    {
        object a = new object();
        object b = a; // [1]

        a = "test"; // [2]

        Console.WriteLine(a == b);
    }
}

Por algún motivo la expresión a == b evalúa a falso, aún cuando se sabe que en [1] a y b deberían tener la misma referencia para el objeto creado en el paso anterior. En [2] asigno un string para evitar problemas con el boxing/unboxing entre variables por referencia y por valor, he probado asignando otros objetos también pero sin ningún efecto sobre el resultado final.

Lo curioso de esto es que si se comenta [2], esta vez la expresión evalúa a verdadero, resultado que confirma que a y b tienen la misma referencia -cabe recordar que tanto el operador = como el método Equals sólo comparan referencias.

No sé si esto es un bug o feature, en todo caso, estaré muy agradecido si alguien me ahorra tiempo de búsqueda para absolver esta pequeña duda.

Nota: sé que es difícil que el código mostrado pueda aparecer en una determinada aplicación.