subgurim.net
cofundador y CTO de
tixalia
, arquitecto de software en
thinkandcloud
Tags
Acceso a BBDD
AJAX y Javascript
ASP.NET 3.5
ASP.NET General
Controles de usuario
C#
Mundo Web
Visual Web Developer
XML
Herramientas ASP.NET
Foros ASP.NET
ASP.NET en castellano
GoogleMaps ASP.NET
Dicatio y su primer proyecto
Como se puede ver fácilmente en el menú izquierdo de este blog, y como saben todos los que me conocen, no me puedo estar quieto y siempre estoy pensando en nuevos proyectos Web.
En los últimos meses sólo había tenido tiempo para mantener los proyectos que fui creando compulsivamente con mi no menos compulsiva "creatividad".
Ahora sólo mantengo el control de
GoogleMaps para ASP.NET
, y los contenidos de
discotequeros.com
Los demás proyectos los he hecho OpenSource... ojalá tuviera tiempo para mantenerlo :(
Este mismo blog sufre de mi falta de tiempo, pero más sufren otros de mis proyectos que considero que son herramientas muy buenas, sobretodo tusencuestas.com. Es una lástima que a una Web que está tan bien posicionada en Google (aparece el tercero por "encuestas") no pueda dedicarle tiempo. ¡¡Por falta de ideas no será!!
Postrándose ante la teoría del de quien mucho abarca poco aprieta, creo que ha llegado el momento de centrarse en un solo proyecto, aunque continuando un mínimo mantenimiento de los más importantes (discotequeros y googlemaps).
De ahí ha nacido Dicatio. Dicatio es el nombre en clave de un grupo de amigos/socios con ideas frescas y ganas de trabajar. Bajo el nombre de Dicatio tenemos pensado agrupar una serie de proyectos (unos Web y otros no tanto), y ya estamos comenzando por el primero.
De momento no os puedo hablar de ese nuevo proyecto, porque está en fase de desarrollo y no me gusta enseñar cosas que están a medio hacer, pero a mí me gusta mucho la idea. De hecho me motiva mucho, y la motivación es la clave de tener ganas de trabajar cuando acabas de trabajar.
Este sábado 8 de Noviembre tenemos la
Primera Jornada Dicatio
, en una reunión maratoniana donde definiremos las bases de Dicatio y de su primer proyecto.
Por cierto, el nombre de Dicatio significa "Dedicación" en latín. Es curiosa la similitud con
Avanzis
, la empresa en que trabajo... pero no tiene nada que ver. De hecho, el nombre "Dicatio" surgió años antes de que yo comenzara a trabajar en Avanzis, y el que se lo inventó (no sé si fue Roberto o Jaumonla) ni tal si quiera conocía que existía Avanzis.
De hecho, lo más curioso es que la empresa de mi padre se llama Vincit Decoración, que fue creada en el siglo pasado (1998), así que por lo visto estoy rodeado de latinismos, jajaja.
Lo dicho, ya os iré hablando más de Dicatio, de sus componentes, de su primer proyecto, etc.
Concurso SEO de Hazruido.com: comunactivo es la palabra elegida.
El pasado 15 de Octubre comenzó la tercera edición del concurso de Hazruido.com en busca de "quién hace más ruido en Internet".
El concurso tiene dos modalidades: posicionamiento y marketing viral.
Personalmente siempre me había llamado la atención este concurso así que este año he decidido participar en la modalidad de posicionamiento.
En esta modalidad, Hazruido.com hizo pública una palabra que no estaba indexada en Google, de modo que el ganador será quien esté en primera posición en una búsqueda de Google España el día 15 de diciembre a las 12:00.
La palabra en cuestión es
comunactivo
. Es una palabra graciosa, la verdad. La Web desde la que concurso es "
http://comunactivo.subgurim.net
" y como podréis comprobar es un clon de este blog si tengo tiempo ya le cambiaré el diseño.
Así pues,
el que crea que este blog le ha servido
de algo en el mundo de ASP.NET y quiere agradecérmelo de alguno forma, puede hacerlo de forma muy sencilla sin más que enlazar a "
http://comunactivo.subgurim.net
" utilizando el anchor "
comunactivo
". Aunque os creáis que vuestra web/blog es demasiado pequeña y que no servirá de ayuda, estáis equivocados. Un pequeño enlace es también muy importante. Para facilitaros más el trabajo, os pongo el código HTML que más me beneficiaría:
<a href="http://comunactivo.subgurim.net" alt="comunactivo">comunactivo</a>
¡¡Gracias por vuestro apoyo!!
Vídeo tutorial: Introducción a ASP.NET AJAX
Con
ASP.NET AJAX
podemos transformar nuestra aplicación Web normal en una aplicación
AJAX
en pocos minutos y sin ningún código adicional.
En menos de 10 minutos de vídeo tutorial conoceremos cómo usar el
UpdatePanel
, el
UpdateProgress
y el
Timer
.
Sobretodo nos haremos hincapié en el primero (el
UpdatePanel
) por tratarse del elemento mágico que es capaz de llevarlo todo a cabo:
DESCAGAR VÍDEO TUTORIAL
jQuery para ASP.NET
JQuery
es un framework
código abierto
, ampliamente aceptado y
reconocido por Microsoft
... Pero es que además es muy bueno, hace que
javascript
sea fácil y dispone funciones avanzadas muy sencillas de utilizar.
En
mi blog de Avanzis
he escrito algunos artículos al respecto que quería compartir desde aquí:
Introducción a jQuery
Jugando con jQuery: macEmulator
Jugando con jQuery: emulando el FindControl de ASP.NET
El primero es una introducción, y los otros son ejemplos en forma de plugins.
Geolocalización a partir de la IP
La geolocalización de usuarios a partir de la IP está al orden del día.
Seguro que habéis entrado alguna vez en una Web donde, sorprendentemente ofrecían productos o servicios referentes a una zona muy cercana a donde os encontrábais. Por ejemplo, la típica web donde nos dice "Esta chica es de TALSITIO y quiere conocerte", y TALSITIO es tu ciudad o la de al lado.
En principio hay cierta complejidad. Recoger nuestra IP es muy sencillo, pero luego necesitamos una BBDD donde se asocie nuestra IP a una región... y ¿dónde encuentro esa BBDD?, ¿es esa BBDD muy grande?, ¿qué hay de la eficiencia: velocidad, concurrencia...)
Afortunadamente, los chicos de
MaxMind
han resuelto todos los problemas, y nos ofrecen tanto la base de datos como el código fuente que la accede de forma eficiente. Podéis encontrar toda la información
aquí
.
Yo por mi parte, os he hecho la vida un poco más fácil y os he dejado para descarga directa una Website en ASP.NET 2.0 con todo bien facilito y preparado para el uso.
En este website, tres son las líneas que hacen el trabajo mágico:
string databaseFile = Server.MapPath("~/App_Data/GeoLiteCity.dat");
LookupService service = new LookupService(databaseFile);
Location location = service.getLocation(tbIP.Text);
En la primero indicamos el path donde hemos ubicado la base de datos. Ésta no se incluye en la descarga porque es muy pesada y porque en
MaxMind
la actualizan mensualmente. La podéis encontrar
aquí
(
descarga directa
).
La segunda línea inicializa
LookupService
, que practicamente lo hace todo. El método más completo del
LookupService
es el
getLocation
(tercera línea), que te devuelve un objeto de tipo Location desde el que podremos acceder a varias propiedades interesantes:
- Latitude
- Longitude
- Region
- Area_Code
- Countryname
- Countrycode
- City
- Postalcode
Pues dicho y hecho. Así de fácil y así de sencillo.
DESCARGAR CÓDIGO
Google AJAX Language API
Gracias a Google y una de sus múltiples APIs, la
Google AJAX Language API
, podemos jugar a
detectar un idioma
e incluso
traducirlo
con unas pocas líneas de código.
Como siempre digo, un ejemplo vale más que mil palabras (y más si son mías). En el siguiente ejemplo tenemos un textarea y dos botones:
- En el textarea escribimos un texto cualquiera en el idioma que queramos.
- El primer botón detectará el idioma en que está escrito el texto.
- El segundo botón traducirá del castellano al inglés. Podríamos haber hecho una detección automática de la lengua y que se tradujese al inglés, pero no quedaba tan claro como para una introducción al uso de esta API.
Language.aspx
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Introducción al Google </title>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("language", "1");
function GetLanguage() {
var text = document.getElementById('Text').value;
google.language.detect(text, function(result) {
if (!result.error) {
var language = 'unknown';
for (l in google.language.Languages) {
if (google.language.Languages[l] == result.language) {
language = l;
break;
}
}
SetResultValue(language);
return language;
}
});
}
function TranslateFromSpanishToEnglish() {
var text = document.getElementById('Text').value;
google.language.translate(text, "es", "en", function(result) {
if (!result.error) {
SetResultValue(result.translation);
}
});
}
function SetResultValue(result) {
var resultDiv = document.getElementById('Results');
resultDiv.innerHTML = result;
}
</script>
</head>
<body>
<textarea cols="200" rows="7" id="Text"></textarea>
<input type="button" value="¿En qué lengua está escrito?" onclick="GetLanguage()" />
<input type="button" value="Traducir de castellano a inglés" onclick="TranslateFromSpanishToEnglish()" />
<div id="Results"></div>
</body>
</html>
El primer paso es llamar y cargar la API de Google Traslation, lo que se consigue ubicando en el HEAD la llamado al fichero javascript:
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
Y cargando la API de idioma:
<script type="text/javascript">
google.load("language", "1");
...
</script>
Una vez hecho esto, la magia la hacen dos funciones javascript:
GetLanguage()
y
TranslateFromSpanishToEnglish()
.
En ambos casos se llama al método javascript correspondiente,
google.language.detect
y
google.language.translate
que aceptan los siguientes parámetros:
google.language.detect
:
1.- Texto a detectar el idioma
2.- Función callback que recoge una variable json que llamamos result, y en la que usamos las propiedades "error" y "language".
google.language.translate
:
1.- Text a traducir
2.- Lengua origen
3.- Lengua destion
4.- Función callback que recoge una variable json que llamamos result, y en la que usamos las propiedades "error" y "traslation".
Como veis es muy sencillo. Encontraréis la info que queráis en su
documentación
.
Lucene para ASP.NET: Un buscador avanzado para tu Web
Toda aplicación Web que se precie debe tener un buscador. Pero un buscador en condiciones, nada de cosas a medias.
Desde Intranets hasta Webs personales, pasando por blogs o redes sociales, el hecho de permitir que el usuario busque contenidos en tu Web es muy recomendable e incluso en algunos casos totalmente imprescindible.
En una serie de cuatro artículos en mi
blog de Avanzis
, analizo la necesidad de un
buscador avanzado
, introduzco
Lucene para .NET
y explico cómo
indexar documentos
y
buscar información
en ellos:
Un buscador avanzado para tu Web
.
Lucene para ASP.NET: introducción
.
Lucene para ASP.NET: indexación
.
Lucene para ASP.NET: búsqueda
.
Rendimiento en MySql
Si ya escribo menos de lo que quisiera en este blog, ahora hemos abierto un blog para cada componente de la empresa (
Avanzis
) y me tengo que repartir (este es mi
blog en Avanzis
) :D
Pero los artículos más interesantes los iré enlazando aquí.
Hace un par de meses estuve luchando con el rendimiento de
MySql
en Todoexpertos.com... la lucha me enseñó mucho. Sobretodo me enseñó que yo no tenía ni idea de muchas cosas de
MySql
y de bases de datos en
general
Pero bueno, no se nace aprendido, y menos sabiendo
MySql
. En una serie de dos artículos hablo sobre mi aprendizaje:
Rendimiento en MySQL I
Rendimiento en MySQL II
«
1
2
3
4
5
6
»