3ENGINE  programmer :-)

miércoles 7 de abril de 2010

XML Tools: plugin para Notepad++

XML Tools es un plugin para Notepad++. Facilita la edición de XML, XSLT y XPATH.

La versión a fecha de hoy necesita de una serie de dll's para funcionar que se puede descargar de aquí (alternativas: 1 y 2).

Yo tuve que copiar las dll's iconv.dll, libxml2.dll, libxslt.dll y zlib1.dll en /Windows/system32 para que funcionara y no en la propia carpeta de plugins de Notepad++ como indica la ayuda del plugin.

Etiquetas: ,




Add-In para Visual Studio 2005 y 2008

En Csharper he encontrado unos add-ins para VS bastante interesantes:

MRU Cleaner : plugin que permite eliminar las entradas de los proyectos y lista de archivos recientes que no nos interesan.

MRU Cleaner para VS 2005
MRU Cleaner para VS 2008

Property Manager : plugin de refactorización que convierte una variable en propiedad.

Property Manager para VS 2005
Property Manager para VS 2008

Explore in Windows : añade una opción que permite abrir un explorador de Windows desde el explorador de soluciones. Incluso si es un proyecto Web que carga a través de IIS.

Explore in Windows para VS 2005
Explore in Windows para VS 2008

Etiquetas: ,




viernes 2 de abril de 2010

Referencia rápida MSDN

MSDN Library (Español) contiene una gran cantidad de información técnica de programación, incluidos código de ejemplo, documentación, artículos técnicos y guías de referencia.

La referéncia rápida contiene mucha información interesante como por ejemplo:

etc,
etc...

Etiquetas: ,




lunes 29 de marzo de 2010

Arduino

Arduino es una placa electrónica programable de hardware libre. Se dispone de un IDE para programarla, el lenguaje es una especie de C muy sencillo.

Desde la web oficial hay enlaces a varias tiendas que venden componentes, como por ejemplo esta tienda. En este enlace un poco mas de explicación.

Etiquetas: ,




jueves 25 de marzo de 2010

Acoplamiento y Cohesión

Definición

  1. Cohesión: grado de cercania entre 2 o mas elementos, tienen características que les unen.
  2. Acoplamiento: grado de dependencia entre 2 o mas elementos.
Objetivo

Mantener el acoplamiento lo más bajo posible y la cohesión lo más alta posible suele ser el objetivo de todo arquitecto, diseñador o programador. Tener unos buenos criterios para agrupar unidades de software (alta cohesión), y mantener esas unidades lo más independientes posible (bajo acoplamiento) garantiza la modularidad, facilitando la reutilización del software y gran parte de las tareas del desarrollo del sofware.

El artículo completo en La tecla de escape
Otro aquí

Creo que son dos conceptos esenciales que los diseñadores de software acostumbramos a olvidar...

Etiquetas:




jueves 18 de marzo de 2010

SqlDbx

SqlDbx es un IDE para bases de datos Oracle, SQL Server, DB2, Sybase y ODBC. Incluye Intellisense, un comparador visual de datos, remarcado de sintaxis, scripts de SQL, exportación de datos a varios formatos, visualizador de esquemas, etc. La versión personal ya de por si tiene un monton de características y eso que es gratuita.

Etiquetas: , ,




martes 16 de marzo de 2010

Nomenclatura en c#

Una buena práctica a la hora de programar es que todo el equipo siga la misma nomenclatura en la definición de interfaces, clases, métodos, etc. En este enlace hablan detalladamente del tema.

Dejo aquí la nomenclatura a seguir.

Programación

TipoNotación + ContenidoEjemplo
NameSpacesPascal Case, Sin Guión BajoIrritatedVowel.Controllers
Clases (Classes)Pascal, Sin Guion BajoMainForm
Colecciones (Collections)Pascal + “Collection”WidgetCollection
Interfases (Interfaces)Pascal con “I” inicialIWidget
EnumeradoresPascal (Generalmente Plural)OpcionesBusqueda
Funciones y SubsPascal, Sin Guión BajoConvertirContenido (…)
Propiedades PublicasPascal, Sin Guión BajoRecordID
Propiedades PrivadasCamel [prefijo _ opcional]recordId, _recordId
ParámetrosCamel, sin abreviacionesref int recordID
Controles en ASPXCamel, con prefijo [ejem: ux]uxUserId



Bases de datos

TipoNotación + ContenidoEjemplo
Nomenclatura de TablasPascal Case (excepto mysql)Colonias, Modulos
CamposCamel Case, Sin Guión BajoidRegistro, diaRegistro
FuncionesPascal Case, Sin Guión BajoLetra, DiasVencidos
Stored ProceduresCamel, Sin Guión Bajo
[proc]+[tabla]+[funcion]
Ej 1: procClienteInsert
Ej 2: saldoVencidoSelect
* prefijo proc es opcional*
Parámetros en SPCamel, Sin Guión Bajo@idCliente
Vistas (Views)Camel, prefijo “vw”vwClientes

Etiquetas:




Eurekalog: 'cazando' memory leaks.

Delphi no dispone de recolector de basura como otros lenguajes como .NET o Java. Esto comporta la obligación de destruir los objetos explicitamente.

EurekaLog es una herramienta para identificar donde no se libera la memoria (Memory Leak) dentro de una aplicación escrita en Delphi. Genera un Log donde informa del fichero, clase, métodos y número de linea donde se está produciendo el error.

En el artículo Cazando errores con EurekaLog se explica mas detalladamente esta herramienta.

Etiquetas:




Herramientas .Net Framework

Gracias a este artículo, dejo aquí una serie de herramientas de .Net Framework que pueden sacar de un apuro:

Herramienta Registro de IIS en ASP.NET (Aspnet_regiis.exe)
Herramienta Registro de SQL Server para ASP.NET (Aspnet_regsql.exe)
Herramienta de compilación de ASP.NET (Aspnet_compiler.exe)
Herramienta de comprobación de certificados (Chktrust.exe)
Desensamblador de MSIL (Ildasm.exe)
Ensamblador de MSIL (Ilasm.exe)
Herramienta Installer (Installutil.exe)

Una mención a Ildasm.exe: útil si quieres ver los metadatos de una dll o exe con código administrado, ver sus dependencias o chafardear el msil del mismo. El ejecutable se encuentra dentro del SDK de Visual Studio y no en el SDK del propio .NET Framework:

Archivos de programa\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\ildasm.exe
Archivos de programa\Microsoft Visual Studio 8\SDK\v2.0\Bin\ ildasm.exe


Un artículo explicativo en la Web del Guille.

Etiquetas:




viernes 12 de marzo de 2010

La cuenta de Windows 'IUSR_MYMACHINE' y 'ASPNET'

En Windows existen las cuentas locales 'IUSR_MYMACHINE' y 'ASPNET' (que a veces, dependiendo de la versión de IIS, aparece como NT AUTHORITY NETWORK SERVICE) y que están relacionadas con ASP.NET:

  • La cuenta 'IUSR_MYMACHINE' se configura para permitir acceso anónimo. Cuando una petición de una página ASP.NET es autorizada, se realiza una comprobación sobre dicho archivo para ver si la cuenta IUSR_MYMACHINE tiene permiso para leer ese archivo. Si es correcta, el acceso es autorizado.
  • La cuenta 'ASPNET' tiene mas privilegios que la anterior. Si por ejemplo necesitamos acceder a un SQLSERVER, necesitaremos una conexión de confianza y a una cuenta ASPNET se le puede dar esos privilegios.
  • Otra opción es especificar que usuario quieres que utilice asp.net configurando la sección identity en web.config.

Para comprobar que existen estas dos cuentas. Ir al administrador de equipos...

De este modo, si por ejemplo necesitamos dar privilegios a una carpeta, necesitamos añadir el usuario. Atención al detalle que es necesario especificar en nombre de la máquina antes que el nombre de la cuenta:



Enlaces:

IUSR vs. ASPNET user accounts
autenticacion-y-autorizacion
cuentas de usuario

Etiquetas:




viernes 5 de marzo de 2010

Debug desde VS.NET de un servicio Windows

A veces nos interesa hacer debug de un servicio de windows. Pero normalmente esto se hace complicado porque un servicio de windows no corre dentro de Visual Studio .NET porque es necesario instalarlo y registrarlo (installutil.exe y NET START).

Una manera cómoda y sencilla es añadir al metodo estático Main una directiva de compilación para diferenciar el modo debug del modo release, de manera que si estamos en debug iniciar el servicio Windows como una aplicación normal:

#if (!DEBUG)
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new MiWService() };
ServiceBase.Run(ServicesToRun);
#else
MiWService service = new MiWService();
service.Init();
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
#endif


Por último, en la clase de tipo MiWService (que hereda de ServiceBase) escribir un método Init() que llame al método proteced OnStart():

public void Init()
{
this.OnStart(null);
}


Para información mas detallada consultar aquí

Etiquetas:




miércoles 24 de febrero de 2010

Invocando un Servicio Web WCF desde Delphi 7

Para que Delphi 7 importe el WSDL y genere el stub correctamente de un Servicio Web implementado en WCF (Windows Communication Foundation) hay que actualizar previamente D7 y añadir una línea de código.

Pasos a seguir.

1. Bajarse de la Web de Embarcadero el zip Delphi SOAP Runtime and Importer Update
2. Descomprimir el zip en una carpeta
3. Realizar previamente una copia de $(DELPHI)\Source\soap y copiar dentro el contenido de la carpeta src del zip
4. Realizar previamente una copia de $(DELPHI)\Bin\WSDLImp.exe y reemplazarlo por el que se encuentra en el zip
5. Abrir D7 y generar el stub.
6. Editar el stub generado y añadir, dentro de la sección initialization, la siguiente línea:
InvRegistry.RegisterInvokeOptions(TypeInfo([Nombre del servicio]),ioDocument);

7. Añadir las directivas de compilación CLEANUP_SOAP_HEADERS;FIX_ELEM_NODE_NS al proyecto
8. Añadir al Search Path del proyecto $(DELPHI)\Source\soap

Con estos pasos se solucionan, al menos, tres problemas:

1. Al invocar un método con parámetros D7 devuelve un error:
The formatter threw an exception while trying to deserialize the
message: Error in deserializing body of request message for operation 'Testing'. End element 'Body' from namespace 'http://schemas.xmlsoap.org/soap/envelope/'
expected. Found element 'parameters' from namespace

2. Al invocar un método con parámetros primitivos string, WCF recibe parámetros nulos
3. Al invocar un método con parámetros de instancia de una clase, WCF devuelve un error:
System.NullReferenceException: Object reference not set to an instance of an object

Etiquetas:




lunes 22 de febrero de 2010

Averiguar MAC

Si deseas averiguar la MAC de un equipo puede mediante el comando:

arp -a IP

Así por ejemplo:

C:\>arp -a 10.21.2.1

Interfaz: 10.21.15.66 --- 0x4
Dirección IP Dirección física Tipo
10.21.2.1 00-00-0c-07-bc-04 dinámico

Etiquetas:




viernes 5 de febrero de 2010

Cómo obtener el nombre de una máquina a partir de una IP

Para obtener el nombre de una máquina a partir de una IP, podemos utilizar el siguiente comando:

> ping -a IP

así por ejemplo si ponemos:

> ping -a 10.120.238.17

recibimos como respuesta algo parecido a esto, donde el texto marcado en rojo es el nombre de la máquina:

Haciendo ping a 3engine.local [10.120.238.17] con 32 bytes de datos:

Respuesta desde 10.120.238.17: bytes=32 tiempo=1ms TTL=123
Respuesta desde 10.120.238.17: bytes=32 tiempo=1ms TTL=123
Respuesta desde 10.120.238.17: bytes=32 tiempo=1ms TTL=123
Respuesta desde 10.120.238.17: bytes=32 tiempo=1ms TTL=123

Estadísticas de ping para 10.120.238.17:
Paquetes: enviados = 4, recibidos = 4, perdidos = 0
(0% perdidos),
Tiempos aproximados de ida y vuelta en milisegundos:
Mínimo = 1ms, Máximo = 1ms, Media = 1ms

Etiquetas:




jueves 22 de octubre de 2009

RTTI: reflection para Delphi.

Esto del RTTI (Runtime Type Information) existe hace muchos años, permite obtener en run-time la información de los objetos cargados en memoria.

Mas información:

http://www.orlandobrea.com.ar/2006/02/reflection-en-delphi.html
http://delphi.about.com/od/oopindelphi/a/delphirtti.htm
http://chris.lichti.org/Lab/RTTI_Lib/RTTI_Lib.shtml
http://homepages.borland.com/jedi/jcl/

Una de mis intentenciones es conseguir serializar / deserializar como XML mediante el uso de RTTI. Deseadme suerte.

Un ejemplo rudimentario. Para obtener la lista de propiedades (published) y eventos de un Tform:

procedure TForm1.FormCreate(Sender: TObject);
var
lista : TPropList;
count, I : integer;
begin
count := GetPropList(Sender.ClassInfo, tkAny, @lista);
for I := 0 to count - 1 do
begin
showmessage(lista[I]^.Name);
end;
end;

Una desventaja que yo le veo al RTTI es que sólo puedes obtener información de las propiedades marcadas como published. Por suerte a partir de Delphi 7 existe una extensión del RTTI que compilando el código mediante la directiva $METHODINFO ON es posible obtener información de métodos y propiedades marcadas como public, en éste enlace mas información.

Etiquetas:




martes 9 de junio de 2009

Lista de dominios de sistemas temporales de correos falsos

Leo de ésta entrada una lista de dominios de sistemas falsos que se utilizan para enviar emails:

binkmail.com
chogmail.com
devnullmail.com
frapmail.com
guerrillamailblock.com
mailcatch.com
mailinator.com
meltmail.com
obobbo.com
putthisinyourspamdatabase.com
sendspamhere.com
shinedyoureyes.com
spamavert.com
spamcorptastic.com
spamgourmet.com
spamherelots.com
spamhereplease.com
tempinbox.com
temporaryinbox.com
thisisnotmyrealemail.com
trash-mail.com
trashmail.net

Etiquetas:




miércoles 27 de mayo de 2009

F#

¿Qué es el lenguaje F#?

Es un lenguaje de programación, que proporciona la mejor combinación de seguridad, rendimiento y script, con todas las ventajas de ejecutarse en un runtime moderno. Se ejecuta sobre el Framework de .NET

Un lenguaje de programación de script, funcional, imperativo, orientado a objetos que es una base fantástica para realizar diversidad de tareas dentro de la programación

Enlaces:

Ejemplo de un programa en F#
Lenguaje F#
F# tutorial
Recursos F#

Etiquetas: ,




viernes 8 de mayo de 2009

10 interfaces de usuario futuristas

10 interfaces de usuario futuristas:

http://www.smashingmagazine.com/2008/08/17/10-futuristic-user-interfaces/

Etiquetas:




martes 28 de abril de 2009

Patrones y antipatrones

En la wikipedia existen dos categorias muy interesantes dignas de estudio, donde se aglutinan patrones (búsqueda de soluciones a problemas comunes) antipatrones (malas solucionas a problemas), generalmente enfocadas al mundo del software:

Categoría:Patrones de diseño
Categoría:Antipatrón de diseño

Etiquetas:




miércoles 15 de abril de 2009

Openkapow: ayuda para apps Mashup

Con Openkapow puedes crear tu propio robot para reunir datos de diferentes sitios web de forma sistemática y así crear facilmente, a partir de la información reunida, tu propio mashup.

Openkapow no deja de ser una versión refinada de webscrapper que te facilita el trabajo ya que permite obtener información de fuentes que no disponen de algun tipo de sindicación y hay gente que opina que estas técnicas no son muy ''legales'' porque consideran que es robo de contenido.

Vamos, al igual que el post anterior, una gran ayuda para el programador :-).

Enlaces relacionados:
Crea tus propios mashups
xtractpro - Data Extraction Magazine
Como hacer un mashup y no morir en el intento…

Etiquetas: ,




Programmable Web: ayuda para apps Mashup

MashUp: Aplicación Web Híbrida la cual integra herramientas o datos de una o más fuentes online en una nueva e integrada unidad.

En Programmable Web te provee un listado con cientos de APIs que te ayudan a crear tu propio proyecto mashup, un listado de proyectos que implementan esas APIs en sus mashups, etc...

Vamos, una gran ayuda para el programador :-)

Etiquetas: ,




martes 14 de abril de 2009

DZone Snippets

DZone Snippets contiene muchos ejemplos de trozos de códigos ('snippets') en varios lenguajes de programación.

Etiquetas: ,




miércoles 1 de abril de 2009

Compiladores Online

Existen herramientas que corren en el propio browser y permiten probar diferentes lenguajes de programación. Es interesante si quieres aprender o probar un lenguaje en concreto sin instalar nada en tu PC e incluso en algunos casos generar alguna mini aplicación que te salve de algun "marron":

La lista de compiladores/interpretes online que he encontrado:

Try Ruby! (Ruby)
Codepad (C, C++, D, Haskell, Lua, OCaml, PHP, Perl, Pytho, Ruby, Scheme y Tcl)
JXXX Compiler Service (Java)
CodeIDE (Basic, Pascal, C++, JavaScript y MATH)
DJGPP Public Access Cross-Compiler ( C )
LaTeX-Online-Compiler ( Latex )

Etiquetas: ,




miércoles 18 de marzo de 2009

Cloud computing

Cloud computing es una tecnología que permite ofrecer servicios de computación a través de Internet (gráfico 'estado actual cloud computing 2008'). En el artículo ¿Qué es el Cloud Computing? Definición, tendencias y precauciones. se repasan las tendencias actuales y 'trampas' que esconde esta tecnología. Actualmente sólo existen un puñado de competidores:

Google App Engine
Página principal de Google App Engine
Google App Engine frente a los web services de Amazon
Google App Engine SDK Cheat Sheet
Debug mode ON: Grupo sobre Google App Engine
Probando 'Google App Engine', el 'servidor de aplicaciones' que utiliza GFS y BigTable
10 pasos fáciles para usar Google App Engine
Django y Google App Engine → (Semi) FAIL

Windows Azure
Página principal de Windows Azure
Windows Azure, plataforma como servicio de Microsoft
Cloud Development in Visual Studio 2010 (por lo visto está incluido en sus especificaciones)

Amazon EC2
Página principal de Amazon EC2
Tu aplicación sobre los Amazon Web Services (EC2, S3...)

IBM Blue Cloud
Página principal de IBM Blue Cloud
IBM amplía su oferta de soluciones Cloud Computing


VMware vCLOUD
Página principal de vCLOUD
VMware anuncia la Iniciativa vCloud

eyeOS
Página principal de eyeOS
eyeOS: Nubes para el publico.
eyeOS developers


Segun dicen los entendidos no hay que confundir las cloud computing con los mashups. Estos últimos son sitios web o aplicaciónes web que usan contenido de otras aplicaciones Web para crear un nuevo contenido completo, consumiendo servicios directamente siempre a través de protocolo http.

Etiquetas: ,




miércoles 4 de marzo de 2009

Datasets: La propiedad NullValue y DefaultValue

Un truco para ahorrar código y quebraderos de cabeza cuando trabajamos con datasets de .NET es la propiedad NullValue que se encuentra en de la definición de las columnas de un DataTable. Si quieres mas detalles sobre DefaultValue y NullValue, lee éste artículo .

Pero en resumen, para 'NullValue' se trata de ahorrar la comprobación si el valor de la columna es nulo o no de modo que si la propiedad 'NullValue' la dejamos en blanco, de esto:

if (!row.IsObservacionesNull())
obs = row.Observaciones;
else
obs = “”;


sólo necesitaremos hacer esto:

obs = row.Observaciones;

Con DefaultValue, la idea es que al dar a ciertas columnas valores por defecto, al insertar una nueva fila al Dataset sólo nos tendremos que preocupar por dar un valor a los campos que nos interese.

Etiquetas: ,




MSLinqToSQLGenerator: Unspecified error

Cuando añades una partial class a una clase "Linq to SQL" de LINQ tienes todos los números que en un momento u otro acabe saliendo un error "'MSLinqToSQLGenerator' failed. Unspecified error" ¡incluso aunque tengas instalado el SP1 de Visual Studio 2008!. Gracias a éste enlace pude solucionar el problema.

1º paso: los using debe estar dentro del "namespace". Es decir de esto:


using System.Linq;
using System.Collections.Generic;
using System.Data;

namespace SIRAMcenter.Datos.Plugins
{
partial class PluginInstanceDataContext
{
public IEnumerable<string> GetNombreClasePluginsNoIControl(int idCentro)

debes pasar a esto:

namespace SIRAMcenter.Datos.Plugins
{
using System.Linq;
using System.Collections.Generic;
using System.Data;

partial class PluginInstanceDataContext
{
public IEnumerable<string> GetNombreClasePluginsNoIControl(int idCentro)
{



2º paso: Ejecutar explicitamente la herramienta personalizada(MSLinqToSQLGenerator) de nuevo:




3ºpaso: limpia el proyecto y vuelve a compilar.

Etiquetas: , ,




martes 3 de marzo de 2009

LINQ con WCF: de carga diferida a explícita

LINQ por defecto utiliza la consulta diferida. Cuando "navegamos" entre las clases de un LINQ to SQL (.dbml) éste en background va generando las consultas y de este modo nos ahorramos consultas inutiles.

El problema viene cuando queramos devolver una clase que forma parte de un .dbml como resultado de un método marcado como [OperationContract].

Es necesario modificar el comportamiento por defecto de consulta diferida a una consulta forzada. Ejemplo:


PluginInstanceDataContext pluginsContext = new PluginInstanceDataContext();

var orderloadOption = new System.Data.Linq.DataLoadOptions();
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith(p => p.PluginParametro);
dlo.LoadWith(p => p.PluginTipoControl);
pluginsContext.LoadOptions = dlo;

var consulta = from plugins in pluginsContext.Plugin
where plugins.IdCentro == idCentro
select plugins;


Sino lo hacemos así nos encontraremos que las "clases hijas" no contienen datos.

Etiquetas: , , ,




miércoles 25 de febrero de 2009

Cómo habilitar .dbml de LINQ para WCF

Vale, de acuerdo es una ""tonteria"" pero una tonteria que me ha hecho perder unas cuantas horas. Si utilizas LINQ y requieres que un método WCF marcado con atributo [OperationContract] devuelva una clase de un fichero .dbml necesitas que se serialize correctamente para viajar al cliente correctamente, para ello necesitas poner Serialization mode = unidirectional


Etiquetas: , ,




Recursos de Usabilidad y Patrones de Diseño Web

Unos cuantos enlaces muy útiles a la hora de coger ideas sobre usabilidad y patrones de Diseño Web.

Diseño de interfaces


Pattern Tap.


Elements of Design


Formularios usables: 60 directrices de usabilidad


Primary and secondary actions in web forms

Etiquetas: ,




martes 24 de febrero de 2009

Encriptacion mediante HASH

Una manera de encriptar una cadena es mediante un algoritmo de "ida" utilizando HASH. De este modo es imposible desencriptar lo ya encriptado. Si se trata de un password la idea es encriptar la contraseña ingresada y se compara el resultado con el password previamente almacenado.

private string encriptarSHA1(string CadenaOriginal)
{
System.Security.Cryptography.HashAlgorithm hashValue =
new
System.Security.Cryptography.SHA1CryptoServiceProvider();
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(CadenaOriginal);
byte[] byteHash = hashValue.ComputeHash(bytes);
hashValue.Clear();
return (Convert.ToBase64String(byteHash));
}

Etiquetas:




sábado 21 de febrero de 2009

History of the internet

Etiquetas: ,




jueves 19 de febrero de 2009

LINQ Dynamic Query

Si quieres hacer algo como esto en LINQ:


var query =
db.Customers.
Where("City = @0 and Orders.Count >= @1", "London", 10).
OrderBy("CompanyName").
Select("new(CompanyName as Name, Phone)");


lo llevas claro... ya que .NET no permite realizar LINQ dinámico. Para solucionarlo existe una libreria que añadiendola a tu proyecto podras hacer cosas como la del ejemplo.
Para descargar la libreria y unos ejemplos éste es el enlace o este.

Artículo original: Dynamic LINQ(Parte 1: Usando la librería de LINQ Dynamic)

Etiquetas: , ,




lunes 9 de febrero de 2009

Librosweb.es

LibrosWeb.es publica gratuitamente todo el material que utilizan sus autores en los cursos que imparten.
Además, publica traducciones de libros gratuitos relacionados con el diseño y la programación web.
Siempre se podrá acceder gratuitamente a toda la información de este sitio, ya que creemos que la información debe ser libre.


Etiquetas: ,




viernes 6 de febrero de 2009

C# code format: deja presentable tu código

C# code format es una pequeña utilidad que formatea código fuente c# para dejarlo presentable en una página Web. Además, el autor deja para descarga el código fuente si quereis saber cómo lo ha hecho (zip);


protected CodeFormat()
{
//generate the keyword and preprocessor regexes from the keyword lists
Regex r;
r = new Regex(@"\w+-\w+#\w+@@\w+#(?:\\(?:sw)(?:\*\+)?\w+)+@\\w\*+");
string regKeyword = r.Replace(Keywords, @"(?<=^\W)$0(?=\W)");
string regPreproc = r.Replace(Preprocessors, @"(?<=^\s)$0(?=\s$)");
r = new Regex(@" +");
regKeyword = r.Replace(regKeyword, @"");
regPreproc = r.Replace(regPreproc, @"");

Etiquetas:




miércoles 4 de febrero de 2009

Google Tech Talks

Las Google Tech Talks son charlas para empleados de Google que son grabadas y difundidas de forma gratuita. En estos momentos hay mas de 1000 grabaciones!. Creo que son un buen recurso para aprender cosas nuevas, habrá que echar un buen vistazo.

Etiquetas: ,




El codec de video RMVB

Si te bajas un archivo .rmvb que sepas que te has topado con un formato multimedia desarrollado por RealMedia. Es un formato propietario que en un principio es capaz de reproducir RealPlayer.
Sino te interesa descargarte este reproductor para no enguarrar tu S.O. puedes optar por bajar unos codecs alternativos llamados Real Alternative Lite.

Etiquetas:




martes 3 de febrero de 2009

Cómo solucionar error de instalación de IE7

Cuando intenté hace cosas de una semana actualizar de IE6 a IE7 en un Windows XP el instalador me daba un error (indefinido) y abortaba la actualización, despues de navegar por internet un rato encontré la solución y es que por lo visto el instalador de IE7 necesita escribir en una serie de entradas del registro de windows perono tiene permisos de escritura.

1) Abre 'c:\windows\ie7.log' y busca unas líneas parecidas a estas con el error 'unwriteable':
...
0.547: IECUSTOM: Unwriteable key HKCR\Interface\{34A715A0-6587-11D0-924A-0020AFC7AC4D}

0.547: IECUSTOM: Unwriteable key HKCR\Interface\{34A715A0-6587-11D0-924A-0020AFC7AC4D}\ProxyStubClsid
0.547: IECUSTOM: Unwriteable key HKCR\Interface\{34A715A0-6587-11D0-924A-0020AFC7AC4D}
0.547: IECUSTOM: Unwriteable key HKCR\Interface\{34A715A0-6587-11D0-924A-0020AFC7AC4D}\ProxyStubClsid32
0.547: IECUSTOM: Unwriteable key HKCR\Interface\{34A715A0-6587-11D0-924A-0020AFC7AC4D}
0.547: IECUSTOM: Unwriteable key HKCR\Interface\{34A715A0-6587-11D0-924A-0020AFC7AC4D}\TypeLib
0.547: IECUSTOM: Unwriteable key HKCR\Interface\{34A715A0-6587-11D0-924A-0020AFC7AC4D}
0.547: IECUSTOM: Unwriteable key HKCR\Interface\{34A715A0-6587-11D0-924A-0020AFC7AC4D}\TypeLib
0.547: IECUSTOM: Unwriteable key HKCR\Interface\{34A715A0-6587-11D0-924A-0020AFC7AC4D}
...


2) Buscar en regedit la entrada y dale permisos total de escritura.

3) Reinicia la máquina y vuelve a lanzar el instalador del IE7.

Etiquetas:




viernes 30 de enero de 2009

Ideas top-down vs ideas bottom-up

un artículo muy interesante.

Ideas top-down vs ideas bottom-up

Etiquetas: ,




viernes 12 de diciembre de 2008

Comandos TCP-IP para Windows

A veces es necesario conocer los comandos IP, para analizar e incluso configurar nuestra red TCP/IP. A continuación una lista de comandos a utilizar en una ventana DOS:

Ping
Tracert
IpConfig
NetStat
Route
Arp
NbtStat
Telnet
Hostname
Ftp

artículo original: Comandos TCP-IP para Windows

Etiquetas:




jueves 4 de diciembre de 2008

Traducciones al Castellano de documentos del W3C

Queria recomendar este enlace perteneciente al World Wide Web Consortium (W3C) que son traducciones al castellano de algunos de sus documentos. Quiero agradecer, especialmente a la fundación Sidar sus traducciones.

Etiquetas: ,




lunes 6 de octubre de 2008

Trac. control de versiones y mas.

Siguiendo con las misma temática que una entrada anterior . He buscado alguna solución free que integre, ademas de un control de versiones, otras herramientas útiles para llegar a buen puerto en el desarrollo de un proyecto. Una muy interesante es Trac (2): tiene un Wiki, acceso visual al control de versiones subversion, sistemas de tickets (bugs, mejoras,etc..), timeline, roadmap, etc.

Aparte, no hay excusa para no utilizar subversion, ya que existe por ejemplo el plugin TamTam SVN (2) que por 10$ hacer que VS soporte casi todas las operaciones que son necesarias (check-in, check-out, commit, abrir soluciones o proyectos, conexión con repositorios, ver histórico, comparar diferencias…).

Etiquetas: ,




jueves 2 de octubre de 2008

Stop-Words!

Picando código para implementar un boton de búsqueda en mi blog me encuentro con que quiero eliminar de la indexación palabras que no aporten significado. A partir de este artículo me entero que a la lista de palabras que no aportan significado se les llama stop-words. Hay varios sitios donde encontrar estas listas:

en elwebmaster.com, en un artículo.
en ranks.nl, donde proporcionan ademas otras listas interesantes.

Etiquetas:




viernes 26 de septiembre de 2008

Control de versiones.

Para la gestion de proyectos para .NET, Microsoft ofrece TFS que aparte de venir de "serie" con un sistema de control de versiones ofrece muchas mas cosas y por lo visto es lo que Microsoft esta potenciando.

Si sólo necesitas control de versiones puedes optar por Visual Source Safe que es compatible con VS 2005 y 2008, aunque por lo visto Microsoft lo esta dejando algo de lado y me apostaria que a la larga dejara de dar soporte.

Otro sistema es CVS o subversion, que son software libre, existen plugins para VS 2005 y 2008, como AnkhSVN, tortoise o uno de pago pero mas completo que se llama visualsvn, en este enlace el autor explica su experiencia.

Etiquetas: ,




martes 23 de septiembre de 2008

Encoding UTF-8: peleandome con mi hosting

Por fin he arreglado un error que me estaba tocando las narices! gracias a esta antigua entrada en microsiervos.

Resulta que habían páginas de mi página personal donde salían caracteres extraños, en un principio pensaba que era un problema de código HTML, pero después de revisar una y mil veces el código y comprobar repetidas veces que en todas las cabeceras pusiera como charset el iso-8859-1 empecé a sospechar que era un problema de mi hosting y la configuracíón de Apache. Al final lo resolví añadiendo "AddDefaultCharset utf-8" en mi .htaccess.



Pues nada, si a alguien le pasa lo mismo ya sabe ;-)

Etiquetas:




miércoles 17 de septiembre de 2008

La nueva API de Youtube.

Hace varios meses Google lanzó una nueva versión de la API de Youtube. Por lo que he podido observar dando una vuelta por la blogoesfera es que se están creando grandes espectativas ya que con esta nueva API un programador puede utilizar Youtube como plataforma donde hospedar y gestionar sus videos de forma "automática".

Etiquetas: ,




viernes 12 de septiembre de 2008

cplusplus

Necesitaba un buen help de c++ para un programita homebrew que estoy preparando para la Nintendo DS y me encontré con cplusplus , super recomendable sobretodo para gente como yo que tiene poca memoria ;-) . El tutorial de c++ cojonudo y las referencias a las librerias, impresionante.



¿Existe algun buen compilador de C++ con un entorno de desarrollo integrado potente y que sea software libre? ... pozi.. pozi... lo hay. Tenemos Dev-C++. Aqui una entrada que habla de ello. Tambien está Eclipse. Desde aqui se puede bajar.

Etiquetas:




viernes 5 de septiembre de 2008

Homebrew para Nintendo DS.

He estado leyendo sobre el Homebrew para la Nintendo DS. Se tratan de programas "caseros" para meterlas en tu Nintendo DS. Para ello necesitas una FlashCard como esta. Aquí una comparativa de estas tarjetitas.

Existen librerias que facilitan la escritura del programa:

PAlib (PAlib is a Nintendo DS library used to create homebrew games).

DevKitPro (PAlib se basa en éste).

Woopsi (Woopsi is a Nintendo DS GUI library for rapidly creating user interfaces for homebrew software. Modelled after the AmigaOS windowing system).

y muchos mas.

Para probar tus programitas Homebrew puedes utilizar un emulador como no$gba

Existen comunidades dedicadas a este tema como por ejemplo NDS.SceneBeta . Aquí me podeis encontrar por los foros con el nombre de lite3.

Normalmente los programas se escriben en C++ pero existen otros lenguajes minoritarios como el lenguaje Pascal. Free Pascal (2) a partir de la versión 2.2.0 es capaz de compilar para Nintendo DS al ser capaz de generar binarios para procesadores ARM.

Etiquetas:




viernes 8 de agosto de 2008

Frameworks

Quisiera recomendar la sección frameworks de vivaPhp. Ultimamente estoy echando un vistazo a frameworks PHP.

He visto uno que se llama Kumbia, que tiene la ventaja de ser "made in spain".

Otro es Kohana que me ha interesa mucho porque basandose en Codeigniter corrigue algunos errores de éste último.

Etiquetas: ,




jueves 31 de julio de 2008

arc90

arc90 son un grupo de desarrolladores que tienes cosas interesante para descargar.

arc90 is an experienced team of design and technology professionals. We are passionate about creating groundbreaking, compelling web/software experiences.

Etiquetas:




miércoles 30 de julio de 2008

Una libreria para detectar caras

en este enlace explican cómo.

Etiquetas:




martes 1 de julio de 2008

Desarrollo con MSN

Desde esta página:

http://www.desarrollaconmsdn.com/

puedes aprender las últimas tecnologías de .NET aplicadas a un desarrollo real. El principal objetivo es compartir las mejores prácticas para la creación de aplicaciones empresariales con .NET, siempre desde un punto de vista práctico y orientado a escenarios reales

Etiquetas:




martes 17 de octubre de 2006

GotAPI, guía de referencia

guia online sobre CSS, HTML, XSL, XSD, PHP, MySQL, Java, J2EE, Struts, DITA, etc : GotAPI

para CSS o XHTML tambien está: w3schools,


via: html life

Etiquetas:




miércoles 12 de julio de 2006

Microformatos

Hoy he descubierto una 'cosa' llamada Microformatos. Por lo visto es una idea que trata de aproximase al concepto de Web Semantica y se basan en código XHTML, uno de los primeros en utilizar este termino fue Technorati.

Para mas info, aquí hay un artículo de Manuel G. Noriega que lo explica muy bien.

Etiquetas:




   

Categorias

Archivos

 
Feed Blog suscrbete!      Contacto     Terminos & Condiciones © 3ENGINE 2007