jQuery y las referencias en las MasterPages de ASP.Net

La siguiente situación se da con el uso de jQuery y plantillas en ASP.Net, pero bien podría repetirse con cualquier librería javascript que usemos en nuestras aplicaciones. Luego de hacer las pruebas correspondientes en nuestras páginas, muchos desarrolladores optan por mover a las MasterPages aquellas referencias comunes, como es el caso de jQuery y algunos plugins indispensables.
Uno de los detalles a tener en cuenta es el uso de ContentPlaceHolder
  <head runat="server">
    <asp:contentplaceholder id="head" runat="server">
    </asp:contentplaceholder>
    <script type='text/javascript' src='scripts/jquery-1.3.2.js'></script>
  </head>
En el código anterior se carga el segmento de código propio de cada página antes de que se cargue jQuery. Por tanto cualquier referencia a jQuery en estos segmentos de código devolverán errores, ya que jQuery no se carga sino después de llamado el segmento.El código arreglado quedaría de la siguiente forma:
  <head runat="server">
    <script type='text/javascript' src='scripts/jquery-1.3.2.js'></script>
    <asp:contentplaceholder id="head" runat="server">
    </asp:contentplaceholder>
  </head>
Parece una simpleza, pero esta sencillez puede determinar muchos de los errores a los que nos enfrentamos con javascript… el orden en el que los navegadores ejecutan las sentencias.Otras de las cuestiones problemáticas con el uso de MasterPages es el tratamiento a los caminos relativos; principalmente cuando en nuestro sitio usamos, para una mejor organización, una jerarquía de carpetas. Para evitar todos los problemas que se puedan derivar de esta situación recomiendo fuertemente el uso de ResolveUrl.
El código final quedaría así:
  <head runat="server">
    <script type='text/javascript' src='<%= ResolveUrl ("~/scripts/jquery-1.3.2.js") %>'></script>
    <asp:contentplaceholder id="head" runat="server">
    </asp:contentplaceholder>
  </head>
Cualquier otra solución que encuentren, siéntanse libres de comentar.

Esquema de base de datos multilenguaje

En el desarrollo de una aplicación que soporte múltiples lenguajes, siempre aparece la interrogante ¿Cómo manejar el contenido de la base de datos?

Los textos que aparecen en la interfaz gráfica de cualquier aplicación han sido ampliamente abordados, y existen varias soluciones todas ellas factibles. Pero cómo lograr de forma eficiente, que el contenido de nuestras tablas coexista en diferentes versiones (tantas como lenguajes soporte nuestra aplicación), y se mantenga intacta a su vez la integridad referencial de nuestro esquema.

Existen muchas formas de como llegar ese “estado ideal”; en este artículo proponemos una de las soluciones, que puede estar sujeta a todo tipo de crítica (afortunadamente). En artículos posteriores expondré otras propuestas.

En la imagen podrán ver el modelo:

multilanguage-schema

En esta solución se crea una tabla paralela con los campos que pueden tener contenido en diferentes idiomas. Esta idea es particularmente útil cuando quieres mantener consistente cualquier nivel de normalización tu base de datos.

Aquí les dejo la consulta de creación de este esquema en MySQL:

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
USE `mydb`;

-- -----------------------------------------------------
-- Table `mydb`.`Categoría`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Categoría` (
`Id` INT NOT NULL AUTO_INCREMENT ,
PRIMARY KEY (`Id`) );


-- -----------------------------------------------------
-- Table `mydb`.`Artículo`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Artículo` (
`Id` INT NOT NULL ,
`Categoría_Id` INT NULL ,
PRIMARY KEY (`Id`) ,
INDEX `fk_Artículo_Categoría` (`Categoría_Id` ASC) ,
CONSTRAINT `fk_Artículo_Categoría`
FOREIGN KEY (`Categoría_Id` )
REFERENCES `mydb`.`Categoría` (`Id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);


-- -----------------------------------------------------
-- Table `mydb`.`Cultura`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Cultura` (
`Id` INT NOT NULL AUTO_INCREMENT ,
`Nombre` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`Id`) );


-- -----------------------------------------------------
-- Table `mydb`.`Artículo_Locale`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Artículo_Locale` (
`Artículo_Id` INT NOT NULL ,
`Cultura_Id` INT NOT NULL ,
`Titulo` VARCHAR(255) NOT NULL ,
`Cuerpo` TEXT NULL ,
PRIMARY KEY (`Artículo_Id`, `Cultura_Id`) ,
INDEX `fk_Artículo_has_Cultura_Artículo` (`Artículo_Id` ASC) ,
INDEX `fk_Artículo_has_Cultura_Cultura` (`Cultura_Id` ASC) ,
CONSTRAINT `fk_Artículo_has_Cultura_Artículo`
FOREIGN KEY (`Artículo_Id` )
REFERENCES `mydb`.`Artículo` (`Id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Artículo_has_Cultura_Cultura`
FOREIGN KEY (`Cultura_Id` )
REFERENCES `mydb`.`Cultura` (`Id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);


-- -----------------------------------------------------
-- Table `mydb`.`Categoría_Locale`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`Categoría_Locale` (
`Categoría_Id` INT NOT NULL ,
`Cultura_Id` INT NOT NULL ,
`Nombre` VARCHAR(45) NOT NULL ,
`Descripción` TEXT NULL ,
PRIMARY KEY (`Categoría_Id`, `Cultura_Id`) ,
INDEX `fk_Categoría_has_Cultura_Categoría` (`Categoría_Id` ASC) ,
INDEX `fk_Categoría_has_Cultura_Cultura` (`Cultura_Id` ASC) ,
CONSTRAINT `fk_Categoría_has_Cultura_Categoría`
FOREIGN KEY (`Categoría_Id` )
REFERENCES `mydb`.`Categoría` (`Id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_Categoría_has_Cultura_Cultura`
FOREIGN KEY (`Cultura_Id` )
REFERENCES `mydb`.`Cultura` (`Id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION);



SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Guía rápida de instalación de Eclipse + PDT

Para los que quieran desarrollar en PHP existe una amplia variedad de IDEs; todos ellos con sus ventajas y sus desventajas. Les propongo el uso de uno de los mejores: Eclipse. La historia de este IDE puede que se las haga en otro artículo, pero baste decir que cuenta con el prestigio de haber sido desarrollado por IBM, pero que actualmente es soportado por una gran cantidad de no menos prestigiosas compañías de desarrollo de software (Microsoft, Sun, Apple).
Una de las fortalezas de Eclipse es que cuenta con una potente plataforma de plugins, que lo hace extremadamente flexible. Con un conjunto de plugins interoperando podemos lograr un cúmulo de nuevas funcionalidades que de otra forma requerirían un esfuerzo mayor. PDT (PHP Development Tools) es uno de esos plugins, que en coordinación con otros convierten a Eclipse + PDT en una excelente herramienta de desarrollo.
Requisitos
Eclipse está desarrollado sobre Java, por lo que es imprescindible tener una versión adecuada (1.5 ó superior) de la máquina virtual de Java.
Descargar
Les recomiendo descargar la el bundle All-in-one, desde esta dirección http://www.eclipse.org/pdt/downloads/
En esta página pueden escoger el sistema operativo y la versión del PDT que desean (les recomiendo la estable). En el momento de escribir estas líneas el bundle All-in-one incluye la versión estable de PDT 2.1-SR1, la versión estable de Eclipse 3.5-SR1 y todos los plugins requeridos.
La versión para Windows se llama eclipse-php-galileo-SR1-win32.zip y pesa ~140MB. Versiones similares se encuentra en el sitio para distintas plataformas.
Instalar
La instalación es bastante sencilla. Luego de descargado el bundle en forma de fichero zip, lo descompactamos con nuestro compactador de preferencia. Veremos que se ha creado una carpeta llamada Eclipse y dentro de esta hallarás un ejecutable llamado eclipse.exe (windows), que es el programa en cuestión. Movemos esta carpeta para donde nos parezca, aunque recomiendo fuertemente que para una mejor organización de nuestra estación de trabajo, la movamos a la carpeta "Archivos de Programas" y creemos un acceso directo del ejecutable en nuestro escritorio.

Representante de Google se reporta

Para mis amigos que dicen que sería un excelente representate de los intereses de Google: aquí les dejo el enlace a Google Translator, el traductor de este «monstruo» de Internet.

Las mejoras son muchas: desde un paquete adicional de lenguajes que se han adicionado, la inclusión de una la funcionalidad de traducción "as-you-type", hasta la reproducción automática de texto (por el momento sólo en inglés)

Para los que trabajan con contenidos en diversos idiomas, estas mejoras les serán imprecindibles en su actividad diaria.

Sólo nos falta una utilidad para el escritorio que funcione en modo desconectado para olvidarnos del Babylon Translator.

¿Es la cafeína realmente perjudicial?


¿Quién podría negar que un sabroso cafecito siempre es bueno después de una rica comida, o como compañero infaltable en la charla con amigos; quién no se tienta con una gaseosa bien helada cuando el calor golpea y la sed acecha; o quién no disfrutó de un exquisito té con galletitas una tarde cualquiera? Todas estas bebidas, aunque aparentemente tan diversas, tienen algo en común: la cafeína.
Este ingrediente activo del café está presente en muchas comidas y bebidas, y es la droga estimulante más popular del sistema nervioso central. Se la encuentra en más de 60 especies de plantas distribuidas en todo el planeta.
Se ha descubierto que la cafeína está presente en el café, el té, el cacao, el chocolate y los refrescos -como las bebidas cola y el guaraná-. Fue descubierta en las semillas del café en 1820 y unos años más tarde se demostró que la teína, un alcaloide presente en las hojas de té, era en realidad cafeína. Más aún, el té, en peso, contiene más cafeína que el café. Es la droga estimulante más aceptada socialmente y, a su vez, la menos perjudicial.
Qué es y cómo actúa la cafeína
De acuerdo a los expertos, la cafeína, que pertenece al grupo de sustancias llamadas xantinas, estimula el cerebro al interferir en la acción de la adenosina -un transmisor nervioso que produce calma y tranquilidad- y provoca una sensación de euforia y de fuerza durante algunas horas. También facilita la actividad intelectual y la creatividad, al mantener despierto y en estado de alerta a su consumidor. Todo esto ocurre junto con un incremento de los niveles de adrenalina y noradrenalina, que son neurotransmisores activadores.
La máxima concentración en la sangre se alcanza entre los 30 y 45 minutos de haberla ingerido. A las tres horas ya se ha eliminado la mitad de lo que se absorbió.
Según el libro de Farmacología, del doctor Manuel Litter, esta sustancia actúa en distintos niveles en todo el cuerpo. A dosis habituales de dos a cuatro tazas diarias -150 a 250 miligramos- estimula las funciones psíquicas, lo que aparentemente no es seguido de depresión; y se hace más fácil el esfuerzo intelectual, la asociación de ideas y la atención. En el nivel del sistema cardiovascular actúa estimulando el corazón -incrementa la frecuencia cardíaca y la fuerza de contracción- y además aumenta la presión arterial en forma transitoria.
Tanto la cafeína como la teofilina provocan disminución del flujo sanguíneo cerebral por vasoconstricción, aliviando de esta manera la cefalea.
Otro efecto importante es que aumenta la secreción de jugos -como el ácido clorhídrico y la pepsina- en el estómago. Esta acción la convierte en una droga irritante de la mucosa gástrica; pero, a su vez, tiene acción antiespasmódica en la vesícula.
La cafeína posee también un leve efecto diurético; aumenta la capacidad de trabajo muscular, refuerza la contracción, retarda y alivia la fatiga. Finalmente, produce un muy pequeño efecto en los pulmones, dilatando los bronquios.
Lo que hay que saber
Existen en la población general mitos acerca de la cafeína, de los cuales algunos son ciertos, pero muchos otros, por suerte, no lo son :
"Un café después de comer facilita la digestión"
La cafeína estimula la secreción de saliva y de los jugos gástricos y favorece la digestión; pero hay algo más interesante: el consumo de café reduce considerablemente la aparición de cálculos biliares, de acuerdo con un estudio publicado en junio de 1999 en el Journal of the American Medical Association. Según los investigadores de la Universidad de Harvard, los adultos que beben dos a tres tazas de café con cafeína tienen un 40 por ciento menos de posibilidades de padecer esa dolencia. Parece ser que la cafeína puede prevenir la cristalización del colesterol, principal componente de los cálculos biliares. Sin embargo, los especialistas no han querido recomendar el aumento del consumo del café, debido a las consecuencias negativas que puede tener para otros aspectos de la salud.
"La cafeína interfiere en la actividad de los medicamentos"
Algunos compuestos, como los anticonceptivos y los fármacos para el corazón o las úlceras, reducen la capacidad del organismo para eliminar la cafeína por los riñones, esto puede provocar insomnio, irritabilidad y palpitaciones. La cafeína reduce el efecto sedante de algunos tranquilizantes y, si se toma con algunos antidepresivos, puede causar una crisis de hipertensión arterial grave y alteraciones del ritmo cardíaco.
"Los padres deben evitar que sus hijos tomen café"
De acuerdo con lo expresado por la doctora Judith Rapaport, jefa de psiquiatría infantil del Instituto Nacional de Salud Mental (National Institute of Mental Health) en Estados Unidos, casi ningún niño reacciona de manera adversa a la cafeína con las porciones que se consumen de manera típica. Ella recomienda a los padres "que apliquen el sentido común al ofrecer a sus hijos porciones normales de alimentos y bebidas con cafeína, incluyendo bebidas gasificadas y té"; y agrega: "Sigo siendo escéptica respecto de cualquier afirmación en el sentido que la cafeína cause hiperactividad en los niños, con base en nuestra propia investigación y el peso de la evidencia científica".
"Las embarazadas no pueden consumir cafeína"
Las investigaciones indican que su consumo moderado no provoca efectos adversos en la salud de la mujer embarazada, y tampoco afecta la fertilidad. El doctor James Mills, jefe de la sección de epidemiología pediátrica del Instituto Nacional de Salud Infantil y Desarrollo Humano (National Institute of Child Health and Human Development) de Estados Unidos, sostiene: "tenemos una gran base de datos sobre la cafeína en el embarazo proveniente de diferentes estudios. En general, la información refuerza la inocuidad del consumo moderado de esta sustancia durante el embarazo". En el caso de las embarazadas que deseen consumir alimentos y bebidas que la contengan, Mills recomienda 300 miligramos al día como nivel seguro de cafeína, la cantidad en tres a cinco tazas de café o varias latas de gaseosas.
"La cafeína causa enfermedades en las mamas"
Tanto el Consejo de Asuntos Científicos de la Asociación Médica Norteamericana (American Medical Association’s Council on Scientific Affairs) como el Instituto Nacional del Cáncer (National Cancer Institute) concluyeron, que no hay relación alguna entre la ingesta de cafeína y la enfermedad fibroquística de la mama -patología benigna que se presenta como abultamientos- así lo afirma la doctora Laurie Green, tocoginecóloga del Centro Médico del Pacífico de California.
"La cafeína es como las drogas peligrosas porque crea adicción"
Si bien la cocaína y la heroína son drogas sumamente adictivas y provocan efectos graves en la salud, en el nivel social y psicológico no hay evidencias que sugieran que la cafeína provoque resultados similares, afirma el doctor Charles O`Brien, jefe de psiquiatría del Centro Médico de Administración de Veteranos y profesor de psiquiatría de la Facultad de Medicina de la Universidad de Pennsylvania. En el sentido médico estricto, la "adicción" a la cafeína implicaría consumirla de una manera abusiva. Una vez que la gente alcanza su nivel diario normal de consumo de cafeína, por lo general no desea consumir más; y casi nadie tiene problemas cuando reduce su consumo en el transcurso de varios días en vez de hacerlo de una sola vez, opina O`Brien.
"La cafeína sube la presión arterial y daña el corazón"
Se ha demostrado que una ingesta moderada produce un aumento de la tensión, pero durante un período corto, y que no se incrementa el riesgo de infarto y de enfermedades coronarias. Pero según un estudio publicado en la revista American Journal of Hipertensión, la cafeína junto con el estrés elevan la presión arterial, y aquellos con hipertensión experimentan mayor riesgo. Como toda sustancia estimulante, de la que no se puede abusar, provoca en el organismo un estado de hiperactividad en todos los niveles, entre ellos el cardiovascular, por la secreción de catecolaminas.
Efectos nocivos de la cafeína
El consumo excesivo de cafeína puede provocar dependencia, aunque con un síndrome de abstinencia mucho más benigno que en otros casos -dolor de cabeza, irritabilidad y somnolencia patológica-. A dosis altas produce excitación, ansiedad e insomnio, temblor, un aumento generalizado de la sensibilidad y disminución de los reflejos. También puede provocar gastritis por estimulación de la secreción gástrica.
En el deporte es considerada una sustancia restringida, es decir, que su uso está permitido siempre que no se llegue a una concentración en la orina de 12 microgramos por mililitro. Como este dato puede decir poco, hay que saber que dos cafés tomados a la vez o prácticamente seguidos producen este nivel de cafeína en la orina hasta dos o tres horas después de su ingestión. Si se sobrepasan estos valores se considera doping, porque mejora el rendimiento físico.
La cafeína se encuentra en numerosos preparados antigripales en asociación con otros fármacos. Se puede utilizar en el tratamiento de la migraña porque produce vasoconstricción en los vasos pericraneales dilatados.
Dados los variados y extremadamente potentes efectos de la cafeína, y su uso extensivo en todas las capas sociales, quizás algún día se considere la restricción más general de su consumo como un inicio a la atención sanitaria preventiva. Ciertamente, aumentar la educación pública para ayudar al reconocimiento de que las sustancias frecuentemente consumidas y socialmente aceptadas como el té, café, alcohol y tabaco contienen importantes drogas psicoactivas ayudaría al público a distinguir entre los tipos y patrones de consumo.