domingo, 12 de diciembre de 2010

Web 2.0 casera: instalación de un servidor web Apache

Volvemos al tajo!

Con motivo de un curso sobre Web 2.0 que estoy iniciando estos días, nos han pedido preparar el entorno para trabajar durante el mismo, que ahora en los comienzos consiste en instalar un servidor web en nuestro ordenador.

Es demasiado sencillo.


1. Descargar los archivos de instalación del servidor

En el curso nos han recomendado el servidor HTTP Apache por ser de libre distribución, de modo que no nos rompemos la cabeza escogiendo un servidor web y descargaremos la versión más estable desde http://httpd.apache.org/.

Nota: En la web de Apache se explicarán diferentes requisitos y conocimientos previos dependiendo de nuestras circunstancias. Es muy importante el sistema operativo sobre el que se instalará. En nuestro caso será Windows Vista por lo que no necesita apenas preparativos.

- Descargar versión httpd-2.2.17-win32-x86-openssl-0.9.8o.msi.

2. Ejecutar el archivo descargado


El archivo .MSI es un ejecutable, de modo que lo ejecutamos haciendo doble click sobre él.
Se nos abrirá el asistente de instalación:

- Presionamos en Next

- Aceptamos los términos de uso y presionamos sobre Next


- Presionamos de nuevo sobre Next


- Rellenamos los campos tal y como se muestra en la imagen, con la dirección local localhost. En el futuro intentaremos instalar el servidor de forma que responda sobre un dominio, pero de momento y para hacer nuestras pequeñas pruebas lo configuraremos así.
También indicar la dirección email del Administrador del servidor, que pondremos una nuestra cualquiera.
En la sección inferior nos pide configurar el puerto en el que dará las respuestas el servidor, que lo dejaremos en lo recomendado del puerto 80.

EDICIÓN: Con el post Ejecutar Apache como un servicio vemos el funcionamiento si cambiamos la opción del puerto

Y presionamos sobre Next

- Dejamos marcada la opción Typical, que instalará la configuración típica y presionamos sobre Next

- En la siguiente pantalla nos muestran la ruta donde se instalarán los archivos. Dejamos la que viene por defecto y presionamos sobre Next


- Presionamos sobre el botón de Install

- Empezará el proceso de instalación y deberemos esperar unos pocos minutos. Al principio puede que tarde en aparecer algun avance en la barra de progreso.


- Tras unos minutos se nos mostrará ésta pantalla indicando que Apache HTTP Server 2.2.17 se ha instalado correctamente. Presionamos sobre el botón de Finish.


3. Arrancar el servidor

Despues de la instalación, el servidor Apache no solo estará instalado sino que ya estará ejecutándose.
Podremos comprobarlo observando los procesos iniciados:


- Presionamos botón derecho sobre él y seleccionamos Open Apache Monitor.



- Se nos abrirá el monitor del servidor, donde podremos detenerlo, reiniciarlo, observar los servicios que se están ejecutando o bien cerrar el servidor.


4. Comprobar que funciona

Habíamos indicado al servidor durante su instalación que resolviera a la máquina local y sobre el puerto 80, por lo tanto abriremos un navegador e introduciremos la siguiente url:

http://localhost:80/

Nota: funcionará tambien sin introducirle el puerto, pero es recomendable acostumbrarse a indicarlo, ya que en el futuro modificaremos estos parámetros.


- El navegador mostrará un mensaje de alivio, donde se demuestra que el servidor funciona correctamente.


Y listo!

jueves, 14 de octubre de 2010

Te lo debo ...


Te echo tanto de menos ...
Mi bebito. Mi Kalel

lunes, 11 de octubre de 2010

Optimizando la PSP - Parte I

Supongo que sería un mejor título "Pirateando mi PSP" pero quizas sonaba un tanto problematico, sobre todo en vistas de la actitud general por internet y los foros sobre videoconsolas, donde la palabra "pirata" esta poco mas que prohibida. Ahora es tabú.
Lo normal es decir que hacemos copias de seguridad de nuestros juegos, actualizamos nuestras consolas, instalamos software casero y mas jerga informatica que pocos llegan a comprender la primera vez que lo leen.
Pero estoy a favor de esta forma de hablar por la red, y es que "la ley" esta ultimamente bastante mosqueada con todo este tema del pirateo y en mi opinión buscan lo invisible, persiguen lo que va mas rapido que ellos e intentan parar lo imparable y cortar lo indestructible, y es que internet es mucho mas poderoso de lo que aun hoy ninguno nos damos cuenta.

Estamos en transición entre dos epocas muy diferentes.

Pero esto no viene al caso.
Lo que si viene al caso es lo terriblemente complicado que resulta preparar tu PSP para cargar copias de juegos que circulan por internet. Y es que hay tanta información y es tan variada por los foros de la red que una se confunde a la minima y no sabe por donde empezar.

No voy a ponerme a resumir toda esa información porque sería inutil y absurdo habiendo tantos foros especializados, pero voy a contar lo que he hecho en esta misma tarde siguiendo varios manuales y aplicado a mi caso especial.
Lo cuento para acudir a ello en un futuro, ya que seguro que se me olvidará y seguro lo necesitaré otro día.


He seguido (y con exito) este manual, y por si algun dia lo pierdo, aqui van los pasos:

INICIO

- Necesitamos configurar la memory stick con el programa de instalacion del firmware no oficial. (utilizando PSP pirateada)
- Necesitamos preparar una bateria PANDORA para arrancar la PSP en "Modo servicio" y poder ejecutar le programa de instalacion del firmware no oficial. (utilizando PSP pirateada)
- Cuando tengamos ambas cosas, las colocaremos en la PSP no pirateada y ejecutaremos la instalacion para instalar el firmware no oficial, el cual nos sera capaz de leer las copias de los juegos que circulan por la red.


CONFIGURAR MEMORY STICK

- Formatea la memory stick desde el PSP (se perderan todos los datos).
- Conecta tu PSP al PC por USB
- Descarga el Ultra Pandora Installer v4.B
- Copia la carpeta UPI4B en la carpeta RAIZ/PSP/GAME
- Desactiva la conexión USB
- Ejecuta el Ultra Pandora Installer v4.B desde el menu de juego del PSP
- Selecciona Particionar Memory Stick
- El programa te dara una alerta de que formatearas la Memory Stick, dale “SI“
- Espera que el proceso termine y que la aplicacion salga al menu del PSP nuevamente
- Una vez en el menu del PSP, activa la conexion USB
- Copia la carpeta UPI4B a RAIZ/PSP/GAME (otra vez)
- Descarga el Update 5.00 oficial de sony
- Copia el Update con nombre 500.PBP en la raiz de la memory stick
- Saca la memory stick y desactiva la conexion USB
- Vuelve a introducir la memoria en el PSP
- Activa la conexion USB
- Descarga el Despertar del Cementerio V8
- Copia el contenido del archivo descargado DC8 a PSP/GAME
- Despues, desactiva la conexion USB
(A partir de aquí ya no necesitamos el PC)
- Ahora, ve al menu de juego del PSP y ejecuta el: Despertar del Cementerio v8.
- Cuando termine Tendreis que pulsar X para salir

Al hacer todos los pasos anteriores tenemos la memoria lista


PREPARAR BATERIA PANDORA

- Ejecuta el Ultra Pandora Installer 4.B desde el menu de juego del PSP
- Ve a la opción: Opciones Bateria->Pandorizar Batería
- Una vez dado a X en Pandorizar batería aparecerá un mensaje. Dale que si
- Espera que el proceso termine
- Dale al boton HOME para salir del juego.

Todo listo, ya tenemos la bateria y memoria magica.

INSERTAR AMBAS EN PSP NO PIRATEADA

- Introduce la memory stick preparada y la bateria PANDORA en la PSP que quieras piratear
(Aconsejan encender la PSP sin toma de corriente, pero en mi caso la batería estaba en las ultimas y no tenia apenas autonomia, de modo que encendi con la PSP enchufada a la corriente. Despues de varios intentos encencio)
- Encender la PSP
- Aparecera un menu (uno distinto al normal de PSP
- SeleccionaInstall 5.00 M33
- Espera que todo el proceso termine.
- Cuando el proceso termine saldra un mensaje en pantalla que te indicara que todo se ha realizado.

Al hacer todos los paso anteriores, tendras un PSP 5.00 M33-4


ULTIMOS PASOS
- Cargar en PSP una bateria no PANDORA (se puede realizar con el programa de antes, dandole a normalizar bateria
- Cargar en PSP una memoria formatizada por PSP (desde el menu de PSP -> formatear tarjeta)




Parece complicado pero siguiendo los pasos funciono.
En el caso de mi consola, para jugar a algunos juegos es necesario tener un disco UML metido dentro.

Y si navegais un poco y le echais paciencia, hay infinidad de comunidades y otros tantos tutoriales para entender mejor estas cosas



NOTAS:
PSP Slim 2004 pirateada
PSP Fat 1004 inicialmente firmware 6.6 oficial. Posteriormente pirateada con firmware 5.00 M33-4
Bateria usada para PANDORA: la de PSP Fat (que funciona en Slim) 3.6v 1800mAh

viernes, 9 de julio de 2010

Un año más ... disfrutando de la vida

Pues sí. Hoy 9 de Julio, mi cumpleaños.
Veintiseis pueden sonar a tantos como a tan pocos. Digamos que este año para mi son suficientes.

Un día muy raro para ser un cumple. Lo primero por culpa del nuevo sistema educativo universitario, que con exámenes en pleno Julio lo último que nos parece es verano y que deberíamos estar en plena operación moreno en vez de estudiando monotonía y cálculo integral.
Supongo que otro defecto del sistema educativo de la ESO, que arrastro mis problemas de matemáticas de Bachiller hasta la última asignatura de la carrera.

Pero esto no viene al caso con el motivo de este post.

Me han regalado cositas varias hoy. Cosas útiles, cosas simpáticas, cosas "mundialistas" como la bandera de España que aguarda al Domingo con ansia :). Pero hoy me quedo con un regalo.

Alguien me paso el siguiente video, el cual me ha rejuvenecido todos los años cumplidos y me ha infundido ganas de cumplir más.





Y para que me quede apuntado en algún sitio:

Señores y señoras usen protector solar.
Si pudiera ofrecerles sólo un consejo para el futuro, sería éste: Usen protector solar.
Los científicos han comprobado sus beneficios a largo plazo mientras que los consejos que les voy a dar, no tienen ninguna base fiable y se basan únicamente en mi propia experiencia. He aquí mis consejos:

Disfruta de la fuerza y belleza de tu juventud.

No me hagas caso. Nunca entenderás la fuerza y belleza de tu juventud hasta que no se haya marchitado.
Pero créeme, dentro de veinte años, cuando en fotos te veas a ti mismo comprenderás, de una forma que no puedes comprender ahora, cuántas posibilidades tenías ante ti y lo guapo que eras en realidad.
No estás tan gordo como imaginas.
No te preocupes por el futuro. O preocúpate sabiendo que preocuparse es tan efectivo como tratar de resolver una ecuación de álgebra masticando chicle.
Lo que sí es cierto es que los problemas que realmente tienen importancia en la vida son aquellos que nunca pasaron por tu mente, de ésos que te sorprenden a las 4 de la tarde de un martes cualquiera.
Todos los días haz algo a lo que temas. Canta.
No juegues con los sentimientos de los demás. No toleres que la gente juegue con los tuyos.
Relájate. No pierdas el tiempo sintiendo celos. A veces se gana y a veces se pierde.
La competencia es larga y, al final, sólo compites contra ti mismo.
Recuerda los elogios que recibas. Olvida los insultos (pero si consigues hacerlo, dime cómo hacerlo).
Guarda tus cartas de amor. Tira las cartas del banco. Estírate. No te sientas culpable si no sabes muy bien qué quieres de la vida.
Las personas más interesantes que he conocido no sabían qué hacer con su vida cuando tenían 22 años. Es más, algunas de las personas que conozco tampoco lo sabían a los 40.
Toma mucho calcio. Cuida tus rodillas sentirás la falta que te hacen cuando te fallen.
Quizá te cases, quizá no. Quizá tengas hijos, quizá no. Quizá te divorcies a los 40, quizá no.
Quizá bailes el vals en tu 75 aniversario de bodas. Hagas lo que hagas no te enorgullezcas ni te critiques demasiado. Optarás por una cosa u otra, como todos los demás.
Disfruta de tu cuerpo. Aprovéchalo de todas las formas que puedas.
No tengas miedo ni te preocupes por lo que piensen los demás porque es el mejor instrumento que jamás tendrás.
Baila, aunque tengas que hacerlo en el salón de tu casa.
Lee las instrucciones aunque no las sigas. No leas revistas de belleza pues para lo único que sirven es para hacerte sentir feo.

Aprende a entender a tus padres. Será tarde cuando ellos ya no estén.
Llévate bien con tus hermanos. Son el mejor vínculo con tu pasado y, probablemente, serán los que te acompañen en el futuro.
Entiende que los amigos vienen y se van pero hay un puñado de ellos que debes conservar con mucho cariño.
Esfuérzate por no desvincularte de algunos lugares y costumbres porque, cuando pase el tiempo, más los necesitarás.
Vive en una ciudad alguna vez pero múdate antes de que te endurezcas.
Vive en un pueblo alguna vez pero múdate antes de que te ablandes.
Viaja. Acepta algunas verdades ineludibles: los precios siempre subirán, los políticos siempre mentirán y tú también envejecerás.
Y, cuando seas viejo, añorarás los tiempos en que eras joven: los precios eran razonables, los políticos eran honestos y los niños respetaban a los mayores.
Respeta a los mayores. No esperes que nadie te mantenga pues tal vez recibas una herencia o, tal vez te cases con alguien rico pero, nunca sabrás cuánto durará.
No te hagas demasiadas cosas en el pelo porque cuando tengas 40 años parecerá el de alguien de 85.
Sé cauto con los consejos que recibes y ten paciencia con quienes te los dan. Los consejos son una forma de nostalgia.
Dar consejos es una forma de sacar el pasado del cubo de la basura, limpiarlo, ocultar las partes feas y reciclarlo dándole más valor del que tiene.
Pero hazme caso en lo del protector solar.


El original, de Mary Theresa Schmich 'Wear Sunscreen'.

domingo, 6 de junio de 2010

El Grand Slam Rojo

En este año 2010 algunos hemos sido testigos de la gran hazaña de Rafa Nadal en tierra batida. Y es que Rafa ha logrado conseguir el 'no tan conocido' Grand Slam Rojo, que significa haber ganado los tres ATP Masters 1000 sobre tierra batida en Montecarlo, Roma y Madrid, y además, el Gran Slam de Roland Garros de París, todo en el mismo año.

Hoy ha sido la final de Roland Garros, y hay que decir que la más emocionante de todas las que ganó Rafa, porque la disputaba nada más y nada menos que frente a Robin Soderling, aquel hombre que odiabamos por sus desplantes y que maldecimos por vencer a Rafa en 2009 en la misma pista en la que hoy lo pulverizó.

Poco se ha oido hablar del Grand Slam Rojo. Por lo pronto, ni la wikipedia lo recoge. ¿Será porque nadie lo había logrado nunca? - Es cierto que el Masters de Madrid pasó de pista dura a arcilla hace un par de años, pero eso no resta el increible merito que tiene ganarlos. Y es que Rafa es el Rey de la tierra, y esperemos que sea así por mucho más tiempo.

Esta pasión que me entra ultimamente por el tenis no es fortuita, ni siquiera tiene que ver con los títulos que está ganando el mayorquín. Creo más bien que tiene que ver con la forma en que gana títulos, en la que gana partidos, en la que gana puntos, la forma en la que hace todo lo que hace.

Aunque suene ridículo y demasiado fantasioso, he llegado a entender la famosa coletilla de "es un estilo de vida" que se aplica a muchas cosas en el mundo. Habría que indagar en el verdadero significado de esa frase.

Para mí, ver la entrega que dedica a cada paso que hace, todos los detalles desde que sale a la pista hasta que marcha, incluso lo que puedes imaginar que haga fuera de ella, todo eso me hace pensar en la increible fortaleza mental que tiene, y a su vez, me hace pensar en por qué no podría yo aplicarla a mi vida. Aprender de esa fortaleza, y aplicarla a mi vida diaria. Ese debería de ser un estilo de vida. El trabajo constante, la humildad en lo que haces, sabiendo que siempre habrá alguien mejor que tu, las ganas de ser siempre mejor de lo que eres ahora, respetar a tu rival, apreciar cada pequeño triunfo que obtengas, pelear por un punto cuando pierdes 0-40 en bola de partido, pelearlo porque puedes ganarlo y con mentalidad ganar el partido, creer que puedes ganar, confiar en tí y en tus posibilidades, pero siempre yendo poco a poco, sin prisas, sin ansiedad, sabiendo llorar cuando ganas y sabiendo sonreir cuando pierdes. Tantos y tantos detalles en su forma de actuar que le hacen conseguir grandes cosas, y más.

Hoy cuando ha levantado la Copa de los Mosqueteros, me dije: 'lo había visto. la noche antes había visto esta misma imagen, y había visto rotulos en los periodicos anunciando que el era el Campeon de Roland Garros 2010'. Y ahora me digo, '¿por qué no le imitas?'

El viernes tengo un examen final y me digo a mi misma que si Rafa es capaz de ganar su quinto Roland Garros con toda la presión que se le ha echado encima estos últimos meses, ¿por qué no voy a ser yo capaz de aprobar ese examen final? - Es cierto, Rafa es un excepcional tenista, que pocos habrá nunca, y yo soy infinitamente más pequeña que el; pero ganar en París también es infinitamente más dificil que aprobar el exámen final del viernes, por lo que todo se compensa.

¿Cuál sería la solución? - pues aplicar sus detalles, aplicar su forma de trabajar, aplicar su mentalidad, su madurez, su estabilidad, aplicar ese estilo de vida que el lleva y con ello conseguir mis objetivos. Si el puede, yo también. En eso consiste mi pasión por Rafa, es la pasión por su saber hacer ya que al fin y al cabo, las copas van a parar a la vitrina de su casa, y a mi vitrina deberían de ir a parar 'mis propios triunfos'.

Enhorabuena Rafa. Y ahora, a por Wimbledon.

sábado, 10 de abril de 2010

Drupal + modulo node_limitnumber: redirigir cuando se llega al límite

Cuando queremos limitar el número de publicaciones de un usuario (crear contenido) podemos utilizar el módulo NODE_LIMITNUMBER con el que se puede escoger el límite de creaciones de contenido para un role concreto y para un tipo de contenido concreto.

En este caso, queremos que los usuarios registrados puedan enviar un boletín de inscripción.
Para ello necesitamos que SOLO puedan editarlo UNA sóla vez.
Por lo tanto configuramos el nuevo módulo para que aquellos usuarios con el ROLE miembros sólamente puedan crear 1 contenido de tipo BOLETIN.

Para comprobar su funcionamiento, basta con crear un contenido y luego volver a acceder al path NODE/ADD/BOLETIN y nos saldrá el mensaje siguiente:



Pero para hacer el site mucho mas dinámico, sería interesante que cuando un usuario intente crear un nuevo contenido de ese tipo y le salga el mensaje de "prohibido crear", se le mostrara a continuación el boletín ya creado. De esta forma no dejaría lugar a dudas que SOLO puede crear/enviar ese boletín.

Para esto primero necesitamos el PATH del boletín que ha creado el usuario.
Podríamos copiar el path del nodo e indicarselo, pero necesitamos que la aplicación sea dinámica, por lo tanto pediremos ayuda a VIEWS y crearemos una vista de "los boletines creados por el propio usuario" y tomaremos nota del path de la vista (o view).

Luego, necesitamos acceder al código fuente de DRUPAL.

No nos asustemos! No es un método agresivo.

En el FTP: drupal->sites->all->modules->node_limitnumber
Editamos el archivo node_limitnumber.module
En la línea 156 y 157:


drupal_set_message(t("You can't create more content of type !type, sorry.", array('!type' => $nodetypename)), 'error');

drupal_goto('path_view');


Sustituimos "node/add" por "path_view".

Y listo!

Drupal: código php para Default value en los CCK field

Cuando mostramos un formulario que debe rellenar un usuario, podemos mostrar algunos campos ya rellenados con la información que disponemos.

En este caso, quiero que el campo EMAIL sea rellenado con la dirección email que está asignada a cada cuenta de usuario, de este modo, el formulario seguirá siendo identificado de forma no sólo única sino rápida.

Para hacerlo es tan sencillo como ir a la configuración del FIELD_EMAIL que hemos creado con CCK; buscamos la pestaña DEFAULT VALUE y desplegamos PHP CODE.

Copiamos el siguiente código:


global $user;

return array(

0 => array('value' => user_load($user->uid)->mail ),

);


Y el campo email del formulario se rellenará al inicio con la dirección del usuario.

viernes, 12 de marzo de 2010

jSeblod CCK y JA purity: problemas en Firefox

Cuando intentamos visualizar en nuestro front-end los articulos creados con jSeblod, comprobamos que hay un problema de visualización en Mozilla Firefox.

Concretamente ocurre con la plantilla JA Purity que viene por defecto con Joomla.

PROBLEMA
El texto de cada articulo "se sale" de la plantilla y aparece sobreimpreso hacia la derecha.




CAUSA
La estructura que adopta la plantilla es:


<h2 class="contentheading">
¿Dónde está el ítem del contenido estático?
</h2>

<div class="article-tools">
<div class="article-meta">
// Fecha de edicion y autor
</div>
<div class="buttonheading">
//Iconos de PDF, impresora, email
</div>
</div>


<div class="article-content">
// Texto de nuestro nuevo articulo creado con jSeblod
</div>


Si nos fijamos, nuestro nuevo contenido estará incrustado en una caja DIV a continuación de la caja DIV que alberga los botones de pdf, imprimir y email. El codigo CSS de estos ultimos indica lo siguiente:


.article-tools {
float: right;
}
.article-meta {
float: right;
}


Por lo tanto nuestra caja DIV donde albergamos el texto de nuestro nuevo articulo adopta la posicion flotante RIGHT, por lo que sale a la derecha y superponiendose con el resto de los modulos.

No tengo claro si la culpa es de una mala programación de la plantilla, o bien que Mozilla Firefox interpreta mal estos datos ya que en el resto de navegadores se ve correctamente.



SOLUCION

Pues la solución está bien clara: necesitamos indicarle a nuestro DIV que su posición es LEFT.

Para ello nos vamos a la plantilla de jSeblod.
NOTA: esto es muy importante. Si modificamos la plantilla de Joomla los cambios no se reflejaran, ya que la zona de codigo que añade jSeblod, esta gestionada por las plantillas de jSeblod.

Desde nuestro Back-end:

jSeBlood CCK -> Gestor de plantillas -> Buscamos la plantilla [Default Content] y la abrimos.

Esta plantilla es la que tiene por defecto los articulos de jSeblod. Si la hubieramos cambiado, tendríamos que buscar la plantilla correspondiente.

En la sección inferior SOURCES
Code(CSS) -> Site.css
Presionamos sobre el icono de edición y se nos abrira una ventana para editar el archivo.

Añadimos el siguiente código:

.article-content{
float:left;
}

Guardamos todo y debería aparecer el texto correctamente ubicado.


miércoles, 3 de marzo de 2010

Joomla + jSeblod CCK = subcategorías y mucho más

Y volvemos con otro plugin extra de Joomla.

Esta vez le toco el turno a jSeblod CCK ante la necesidad de incluir subcategorías a la estructura de Joomla, el cual solo dispone de secciones y categorías por defecto.

En muchas ocasiones nos gustaría poder clasificar un artículo en un arbol más complejo que el que viene por defecto y creo que este nuevo componente puede servir.

Se consigue a través de la web de extensiones de joomla y se instala el zip como cualquier otro plugin.

Ya a primera vista se puede comprobar que parece muy completo y con una interfaz muy agradable. Y sólo nos resta empezar a movernos por joomla para comprobar tambien su increible integración con el cms, realmente estupenda.

Las instrucciones de instalación del plugin son una buena recomendación a seguir, de las cuales es interesante destacar un par de notas importantes:
Eliminar la cache del navegador (en caso de ser una actualización, aunque yo lo realice de todas formas).

1.- Cambiar el salto de línea por defecto de Joomla. El editor TinyMCE de Joomla tiene por defecto marcar los parrafos con P, pero para un correcto funcionamiento e integración con el nuevo plugin es necesario que este salto de línea sea BR. Para ello:
  • Extensiones -> Gestor de plugins
  • Buscamos el plugin "Editor - TinyMCE 2.0" y lo editamos.
  • Buscamos en la zona derecha (abajo) "Líneas nuevas" y marcamos "Elementos BR"
2.- No tener activada la función automática de FTP en Joomla.

3.- Comprobar que el nuevo plugin es el primero de la lista de contenido:
  • Extensiones > Gestor de plugins
  • Buscar el plugin "Content - Cckjseblod" .
4.- Configurar un acceso directo en la barra de la administración
  • Extensiones -> Gestor de módulos -> Enlace Administración
  • Buscamos el módulo "Extended Admin Menu - jSeblod" y lo habilitamos


También puede resultar muy útil los video-tutoriales que tienen a nuestra disposición. Aunque son un poco acelerados, se puede ver lo amplio, complejo, completo y atractivo que es este gran plugin.

Ahora voy a experimentar un poco más con él :D

domingo, 28 de febrero de 2010

Joomla - Cambiar nombre carpeta administrator

Estos días los estoy dedicando a aumentar la seguridad de algunos sitios web que tengo operativos por la red. Entre muchas cosas se habla de lo muy recomendable que es ocultar la url del panel de administración, sobretodo de un CMS tan conocido como Joomla y el cual, recien me doy cuenta ahora, es tan dificil realizar.

Joomla dispone de su directorio administrator donde se encuentra su back-end:


Su dirección url es http://www.midominio.com/administrator suponiendo que hemos subido nuestros archivos Joomla directamente en la raiz de nuestra carpeta pública de nuestro dominio.

Sabiendo esto, es muy fácil para "algun curioso" intentar entrar a nuestro sistema de administración con una dirección tan conocidad.

Es por esto que es muy recomendable cambiar el nombre del directorio donde se almacenan los archivos de administración. Aunque esto no hace a nuestro sitio web invulnerable, si es una gran ayuda y limitaría el número de "curiosos" que pueden intentar acceder.

Como Joomla basa su estructura en modulos relacionados entre sí, éstos también hacen constantes referencias a la ruta administrator, por lo que hay que encontrar todos esos archivos y modificar la ruta manualmente.

A modo de recopilatorio para mi propi uso voy a ir apuntando en esta entrada una lista de los archivos modificados.

-------------------------------

Lo primero, vamos a trabajar con la versión de Joomla 1.5.15, concretamente el Spanish pack completo.

.SQL
installation\sql\mysql\sampledata.sql

.TXT
/robots.txt

.XML
administrator\templates\khepri\templateDetails.xml
components\com_poll\views\poll\tmpl\default.xml
components\com_newfeeds\views\category\tmpl\default.xml
components\com_newfeeds\views\newsfeed\tmpl\default.xml
modules\mod_banners\mod_banners.xml
administrator\components\com_translationsmanager\config.xml
components\com_contact\views\contact\tmpl\default.xml
components\com_contact\views\category\tmpl\default.xml
administrator\components\com_content\models\article.xml
components\com_content\views\article\tmpl\default.xml
modules\mod_poll\mod_poll.xml

.PHP
administrator\components\com_admin\tmpl\sysinfo_directory.php
administrator\components\com_templates\admin.templates.html.php line: 122
administrator\components\com_translationsmanager\controller.php
administrator\components\com_media\views\images\view.html.php
administrator\components\com_media\views\imageslist\view.html.php
administrator\includes\defines.php
libraries\joomla\enviroment\uri.php
installation\installer\models\model.php
includes\defines.php
installation\includes\defines.php
xmlrpc\includes\defines.php
installation\installer\helper.php line: 412
libraries\joomal\html\html\image.php line: 131
plugins\search\content.php line 50
installation\includes\application.php line 244






El cambio hay que fijarse concretamente cuando las sentencias de código hablen de rutas, path, la palabra sea en minusculas, sea una cadena de texto, e intuitivamente parezca ser relativo a la ruta.

Vamos a subir los archivos y comprobar si todo ha ido bien.

NOTA: no cambiar en administrator\includes\application.php en getRouter(). En este archivo hace referencia a un nombre de aplicación que nada tiene que ver con el nombre de la ruta que intentamos cambiar.

NOTA2: Tampoco cambiarlo en administrator\index.php en mainframe, ya que volvemos a tratar de la aplicación.

NOTA3: en algunos sitios aparece la palabra de la forma "image.administrator". En esta ocasion no se sustituye ya que representa una funcion con el nombre administrator en el archivo image.php

NOTA FINAL: Despues de muchos intentos y de dejarme los ojos en el código, la transformación parece ser más complicada. Actualmente, el backend se muestra pero el menu no se activa. Puede ser un problema con la template, ya que en texto plano los links funcionan correctamente. Puede que tambien los archivos donde pase por alto la modificación por parecer del tipo de usuario, deberían de haber sido cambiados.
Es un poco lioso, y no quiero que me queden bugs perdidos, sobretodo cuando lo quiero implantar para una muestra pública, de modo que desisto, hasta ver si algún día doy con la solución definitiva.

Realmente una pena ...

jueves, 25 de febrero de 2010

Un poco de todo

He ido a ver esta noche Shutter Island, de Scorssese con Di Caprio.
La verdad que un buen amigo me dijo que no tenía muy claro si le había gustado o no, y yo he salido del cine con la misma sensación. Su final es impactante, aunque no por ello esperado. Pero es los tipicos finales ambiguos, que lo mismo te da que acabe así que todo lo contrario. Giro sobre giro en la trama es como lo llaman.
Yo me quedaré con que durante todo el grueso de la pelicula (excluyendo principio=expectativas y el final=curiosidad) pues tenía unas ganas locas de que acabara el dichoso film y salir de esa maldita isla. Me rayo bastante, la verdad.

Por otra parte, cada vez estoy mas nerviosa por que llegue "el gran día". El día 9. Nueve de Marzo de Dos Mill Diez. Qué gran fecha!
Está claro que sólo los fanáticos de Final Fantasy como yo comprenden exactamente la ansiedad que producen estos 10 días.
En el fondo nos da igual si el juego cumple las expectativas o no. Lo importante es tenerlo, jugarlo, probarlo, juzgarlo y pasarlo. Luego llegan las criticas, que si esto me gusta mas, que si esto no me gusta, que porque hicieron esto otro, ... pero al cabo de dos días, volveremos a empezarlo de nuevo y acabarlo, jeje.

Yo que soy una obsesionada con "el no saber nada de nada" por lo pronto no he visto ni un trailer. No quiero! Ya es suficiente que me se los rostros de algunos personajes, que la acción comienza en un mundo llamando Cocoon (El Nido en el idioma de Cervantes) y que es lineal.
Es de lo único que se habla del juego.
Sinceramente, lo prefiero. Lo interesante de cada Final Fantasy es su nueva historia, que te guste, que te enganche, que te deje con ganas de ver que ocurre en el siguiente video, en la siguiente ciudad, tras la siguiente mision.
Por dios! Tiempo a salir al campo a luchar con enemigos y subir nivel siempre tenemos.

Solo pido por favor que no me frustre como lo hizo la anterior entrega, donde mi imaginación corría más que la trama del juego. En el fondo, viví una historia paralela: la que yo me esperaba y nunca apareció.


Y cambiando de tema friki, decir que se acabó la implementación de la pasarela de pago.
Al final han decidido no implantar un TPV virtual para el pago por tarjeta, y con ello se acaba mi mini proyecto para agregarlo a la web. Asique del paso 0.0 no "pasamos" a ninguno mas xD.

De todas formas, ahora empiezo con un apartado nuevo y estoy segura que algo bueno sacaremos para publicar aquí.

martes, 16 de febrero de 2010

ConfigBox: un buen registrador de dominios y alojamiento web

Hagamos un poco de publicidad!


Hubo un día, hace años, dónde el aburrimiento me llevo a registrar el dominio goladed.com en una compañía americana, FreeServers se llamaba.
Al final resulto que era como una subempresa que ofrecía productos de una mayor (no recuerdo el nombre).
El caso es que, inocencia del momento, pague unos 13 euros por tener "una web"; otros 26 euros al año siguiente, 35 al siguiente, y así sucesivamente. Como el pago era una vez al año, cuando llegaba agosto y me lo renovaban automáticamente me decía a mi misma: "bah, solo es un pago ahora, y puede que la necesite algun día para algo". Qué capacidad de auto-convicción!

Lo cierto es que la web tenia un panel de control bastante nefasto, y publicidad por todos los lados. Supongo que se refugiaban en que lo compre creyendo que era gratuito, pero pagaba una cantidad al año, no deberían de meterme publicidad.
Además a mí me gustaba manejar archivos, tener un poco el control de mi web, y no solo escribir en un procesador de textos via web.

Intente borrarme. Atención que este es un dato muy importante!. Lo intente, una y mil veces. La opción Unsuscribre era un bucle entre dos páginas. Mande emails. Llama no iba a llamar a un numero extranjero, para hablar extranjero, y que no me entendieran. De modo que siempre me decía: "bueno, lo intento otro día, igual así funciona". Otra vez auto-convenciéndome.

---------------------

De modo que llegó el día que tenía que registrar un dominio, y encontrar un alojamiento web decente. Con 4 o 5 años más de madurez, acerté esta vez a informarme sobre el tema de registros y hosting.

Los dominios pertenecen al estado (seguramente es algo más complicado que esto, pero como en el fondo no me importa y este post no trata de esto, pues vamos a dejarlo con que "pertenecen al estado"). Una empresa registradora ofrece registros de dominio por un precio, es decir, los vende. (tampoco entiendo mucho el funcionamiento de estas ni de dónde sacan los dominios, sus tratos tendrán digo yo).
Si tu quieres un dominio, por ejemplo, goladed.com debes comprarlo a una empresa registradora.

Hay miles!, pero como lo casa siempre resulta estar "mas cerca", recomiendo comprar el dominio a una empresa española, con sede en España, sobretodo por aquello de "reclamar".
Como hay miles, supongo que se pueden leer sendas opiniones sobre cada una, y al final, solo te queda que alguien te recomiende alguna, o elegir a dedillo. Este último caso fue el mío.
Y acerte!

Alojamiento web y dominios

ConfigBox tiene su sede en Valencia y reconozco que sólo tengo buenas palabras para ellos. Espero que nunca me defrauden, jeje.

No voy a discutir si sus precios son más bajos o más altos que otras empresas de dominios o hostings, porque supongo que las habrá para todos los gustos. Sólo voy a enumerar las pequeñas cualidades positivas que tienen, desde mi punto de vista.

1. Contratación rápida. Entras, indicas tu pedido, pagas y al momento recibes un email con los datos y claves de acceso, y voila! empiezas a funcionar. Ocurre exactamente lo mismo cuando quieres renovar, o ampliar algún servicio.

2. Asistencia rápida, clara y eficiente. Parece que siempre están disponibles. Duda que tengas, te la resuelven con gran diligencia y eficacia. Siempre ha sido por email mis dudas, pero tiene un sistema de llamada de 9 a 20 h.

3. Administración sencilla. Te proporcionan un panel de control Pararells Plesk Control, que si no sabes manejarlo ya, tranquilo que aprenderás bien rápido. MySql con MyPHPAdmin, servicio ftp para que puedas manejar los archivos como a ti te de la gana, buzones de correo, y mil cosas más que todavía no he investigado.


Si os habeís dado cuenta, estas últimas características no pertenecen al registro de dominio sino a un hosting o alojamiento web. Y es que tambien proporcionan estos servicios.
Insisto en que no me preocupa su precio, de momento estoy muy conforme con las tasas que imponen.

Actualmente tengo 6 dominios registrados con ConfigBox, 2 alojamientos web contratados y asociados a los dominios. Realice un traspaso del dominio goladed.com hace un año y algo, tras muchos intentos y peticiones, ya que el registrador americano no me quería "soltar" el dominio ni a la de tres. Pero al final lo consegui, con una gran asistencia del equipo técnico de ConfigBox y ahora tambien lo gestiono con esta empresa.

Por último, algo que no quiero dejar sin comentar, es que tiene la opcion de contratar durante 10 días y gratuitamente un plan de hosting, para que puedas hacer pruebas.
A mí me vino genial para comprobar como iba todo el funcionamiento, ya que cuando lo encontre estaba bastante pez en todo este tema. Me ayudo mucho, y no tuvieron que pasar los 10 días para contratarlo finalmente.

Recomendación total!

E-commerce y TPV virtual: PASO 0.0

Pensaba escribir mas adelante, cuando tuviera ya algo montado y en el fondo, algo bueno que contar. Pero como esto de la informática no sólo conlleva mucha lectura y búsqueda sino también largas esperas en la subida y descarga de contenido y archivos, pues aquí estoy, "matando un poco el tiempo" mientras me suben al FTP los archivos de Magento.

Para quien no lo sepa Magento es una aplicación web para comercio electrónico. En pocas palabras, es un sitio web ya creado que puedes obtener gratuitamente - Open Source - que simula una tienda virtual. Pero ya me centraré mas en él cuando llegue el momento.

---------------------

Un cliente me ha sugerido la idea de incluir en su sitio web una inscripción online, con su correspondiente pago online, bien sea por tarjeta o transferencia bancaria. Y me puse a "estudiar las posibilidades".

1. Lo primero: identificar "el nombre oficial" de aquello que buscaba.



Con un poco que navegues por internet, rápidamente descubres que se llama TPV virtual. Y yo me dije: ¿y qué es un TPV?. - Pues el tipico aparato de las tiendas, bares o comercios en general por el que pasan la tarjeta de credito. Supuestamente ese aparato te lo proporciona el banco tras una contratación previa.
Pues el TPV virtual es exactamente lo mismo pero virtual, es decir, electrónico.

Si alguna vez habeís comprado algo por internet con tarjeta, os dareís cuenta que tras elegir la opción de pagar se os redirige a una página relacionada con un banco en concreto, y esta en ocasiones con la pagina de vuestro propio banco. Pues bien, esa pagina de tramitacion del banco es el TPV virtual.

En palabras mas llanas es una aplicación web que tiene montada la entidad bancaria para que nuestro comercio electronico se conecte a ella y pueda realizar las transacciones.

En realidad nosotros no hacemos ningun tipo de movimiento de dinero "chungo", ya que de eso se encarga el banco con sus propias medidas se seguridad.

Por supuesto, no todo el mundo se puede conectar a esta aplicación web tan a la ligera y cuando le venga en gana, sino que el banco debera darte de alta y proporcionarte unas claves.

Como ahora mismo ya se que el banco tiene que participar, llega el momento de pasar al paso siguiente.

2. Recavar información en tu banco (o en varios)


Desde ya digo que mejor hubiera leido algun comentario por internet antes de aventurarme en entrar en alguna sucursal. Y es que por lo visto es generalizado que nadie sabe de lo que les estas hablando cuando solicitas información sobre un TPV virtual.

Entre en tres bancos una mañana preguntando por lo mismo. En el primero nadie sabia de lo que hablaba y amablemente me pidieron mi número de teléfono con el pretexto de que ya me llamarían. En otro sencillamente me dijeron que eso "lo llevaban en Madrid, que tendría que hablar con ellos".

Pero tuve suerte con el tercero.
Precisamente era uno de los bancos donde tengo una cuenta abierta, y por suerte el encargado sabía de lo que le hablaba, incluso supo asesorarme sobre mis dudas.
Recientemente habían implantado un TPV virtual para un comercio y tenían muy "fresco" lo que necesitaban.

A grosso modo me comento que ellos realizan un contrato con diversos datos del cliente y en unos 10 días a lo sumo ya esta implantado. Un equipo técnico que lleva la aplicación web del pago del banco se pondrá en contacto con el administrador web de la tienda virtual para suministrar ciertos datos. Dispones de un tiempo de prueba para comprobar que todo va bien, y luego ya esta listo para activarlo.
En resumen, que veinte o treinta días lo tendrías todo funcionando.

Como he dicho me lo explico a grosso modo, pero salí de la sucursal con una sonrisa de satisfacción porque, aunque no había concretado muchos conceptos, en el banco sabían lo que quería y cómo lo quería.

3. Preparación del website de la tienda virtual para el sistema de pago electrónico



Ya sabía que en el banco me implantaban el sistema y que al darme una serie de claves podría emepezar a funcionar con el TPV virtual. Pero claro, ¿que narices hacía yo con esas claves?

Era momento de buscar intensamente por internet.

Encontre un manual para la aplicación Pasat Internet de 4B, donde explica muy detalladamente como funcionar con esta aplicación. Evidentemente cada sucursal tendrá su propia aplicación de pago electrónico.
Gracias a este manual descubrí que la aplicación de pago del banco necesita comunicarse varias veces con nuestro servidor de la tienda virtual para el traspaso de cierta información. Esta comunicación es recomendable que se realice con seguridad - nota 1: repasar certificados SSL - y que no todas las paginas web sencillas pueden soportar este tipo de comunicación - nota 2: repasar qué es un CGI - por lo que el tema empezaba a pintar un poco más complicado que al principio.

En este caso (Pasat Internet de 4B), el banco proporciona al propietario de la tienda virtual una clave de comercio, un usuario y una para acceder al sistema de administración.
Este sistema de administración proporciona una panel de control para gestionar la comunicación de nuestra tienda virtual con el sistema de pago. Además incluye un gestor desde el cual se puede ver un resumen de las transacciones realizadas.

Lo cierto es que me pareció muy completo y muy fácil. Pero cómo no todos los bancos tienen esta aplicación necesitaba saber más.

4. ¿Qué es un CGI y para que lo quiero?


Este es el momento donde encontre a Magento.
Magento además de proporcionar un site para manejar una tienda virtual completa (mostrar productos, carrito de la compra, gestion de almacen, etc) proporciona un modulo para TPV virtual. Esto quiere decir que la configuración de la tienda para comunicarse con la aplicación del banco se vuelve más sencilla.

Como comentaba al empezar este post, estoy subiendo los archivos de Magento al ftp, de modo que volveré pronto por aquí para comentar como me ha ido.

domingo, 7 de febrero de 2010

Pinitos en Flash

Pues sí señor! Esta vez le ha tocado el turno a la programación el Flash - o diría más bien, "charigar en Flash".

El año pasado estuve de becaria en un departamento de la Universidad, y entre tantas tareas estaba el mantenimiento de la web. Al llegar la navidad se me ocurrió hacer una pequeña animación flash para desear las felices fiestas en el inicio del web site del dpto, y pues con un pequeño texto y dos animaciones consegui que se vieran un "Feliz Navidad" en movimiento.

Pero el otro día necesitaba ir un poco más allá y crear un movimiento propio, no uno "de plantilla" que solo modifiques el texto.

Quería conseguir un banner que mostrará el típico reflejo en movimiento de un brillo.

No lo consegui.

Pero en cambio conseguí entener un poco más el mudillo de Adobe y SUS CAPAS. Y es que siempre me he negado a entender como funcionaban todas esas caracteristicas y todos esos agregados. Brrr, donde estuviera Paint!

Hay muchos tutoriales por la red, pero yo prefiero un videotutorial, y que sea en español. Tengo unos cuantos en favoritos, que seguramente ponga algun día aquí en el blog. Me parecen muy interesantes y se aprende mucho. Los que yo he visto trabajan con CS4 y yo ahora mismo tengo instalado el Macromedia Flash 8, asi que me toca pelearme con algunas opciones que no encuentro a primera vista.

De todas formas, a pesar de ser muy torpe, consegui crear "algo" parecido a un banner, que se ve en el sidebar de la derecha.

Lo siguiente: meterle un enlace la banner, porque sino estamos listos!

martes, 2 de febrero de 2010

Anécdotas de un día cualquiera

Puede pasar de todo en un día normal (o no tan normal) y de todo se aprende:

8:45 am
Descubrimos que cuando el gasolinero se empeña en abrirte la puerta de la Mercedes Vito, no es para que chupes frío con el, sino porque para abrir el tanque de gasolina es necesario abrir la puerta del piloto. Estuve un buen rato para entenderle.

9:20 am
Aparcamos en el culo del mundo de Oviedo, en busqueda de una zona blanca "libre". Y es que el dinero que se saca la ciudad con la zona azul ha de ser terrible, porque no hay otro color en la calzada. Yo pagaría por zona azul lo que fuera, no me importa; pero si pretendes ir a un examen que durara mas de hora y media, ya te puedes ir despidiendo de tu coche, o de 5 euros mas, porque no te dejan poner mas tiempo de una vez. ¿Debería pues pedirle al profesor salir para recargar el ticket? ¿Y la gente que trabaja durante 6 o 8 horas, que hace?

Pues eso, que muy lejos, en una nueva zona al lado del parque de invierno, muy frecuentada por gente con perros.

9:45 am
Llegamos a Valdés Salas despues de una navegación al mas puro estilo gps por el parque de invierno de Oviedo. Y es que el día antes, muy hábil yo me metí en Google Maps para trazar la ruta desdel el nuevo aparcamiento blanco hasta la facultad. Y que bien que se me ocurrio!
Llego un momento que me vi en medio de un prado, con los tacones llenos de escarcha y barro y buscando desesperadamente el camino de salida. Dios que parque!

10:00
A esta hora he aprendido la lección más valiosa del día, y quizás de los últimos años. Y es que en un momento tan importante como es un exámen final extraordinario, no recordé realizar la burocracia adecuada para que mi acta apareciera en la convocatoria de Febrero, y no pude presentarme al examen.

Lo había preparado, e iba bastante convencida de aprobarlo, y quizás es lo que más rabia me da. Además que fue un lapsus tonto. Pero son cosas que pasan, que ocurren, y de las que hay que aprender y no lamentarse. Hay que pensar en las salidas que se tenga, y las formas de solucionarlo. De modo que no queda otra que tirar pa'lante.

Aún así fue un momento bastante "raro" la vuelta al parquing: muy reflexiva a traves del parque jeje.

10:30 am
Hemos vuelto a la Vito y nos trasladamos a una zona mas centrica - en zona azul, por supuesto.
Y pues como nos vamos a quedar dentro esperando, no metemos ticket -hay que tener jeta en esta vida.

11:30
El poli-amarillo-mira-tickets-zona-azul (no recuerdo su nombre real) me pica en la ventanilla del copiloto y gesticula muy alegremente que "no tenga cara, y que eche moneda".
Cierto es que no había puesto ticket, pero tambien es la primera vez que el guardia me mira el parabrisas y yo montada en el coche. Tal que le digo un escueto "voy ahora".

11:31
El poli-amarillo-mira-tickets-zona-azul, me abre la puerta del copiloto y me dice alegremente: "si no quieres pagar porque vas a estar poco rato, colocate mas arriba y estas al sol (debía ver que tenía cara de frío). o vas a estar mucho rato?"
- Que majo! -
Y cerro la puerta.

12:00
Descubrimos lo dificil que es hacer un examen y cambiarse de sitio con torticolis en el cuello y en la espalda

12:15
Ya con acompañante, nos dirigimos a Los Prados. Y de camino perseguimos a un coche de la Autoescuela - imposible explicar el por que.

12:45
Pitamos en todas las tiendas, mientras nos hacemos amigas de los polis de las puertas. Frases como "¿que llevas un bolso de blanco, no?" suenan a cada paso que damos

12:47
Intentamos jugar a un videojuego de coches. ¿Por qué será que en los ceentros comerciales los aparatos no funcionan y cuando funcionan están ocupados? No lo entiendo!!

12:50
Investigamos un Mac y su raton. Concluimos que no tienen Internet.

12:51
Sorpresa! Estan dando Matrix Reloaded. ¿Y cuál es la escena? Pues la que sale Neo hablando en el parque con "Crepusculo", a no! que es el "Oraculo" xDD

13:15
Probamos el nuevo "Wrap Tomato & Cheese" de McDonals y está ... buenísimo!

14:15
Seguimos comprobando que los bolsos de Blanco pitan en las tiendas.

14:30
Otra cosa aprendida: no bebas el agua de una botella que ha estado en el parabrisas del coche un mediodía soleado.

15:00
Otra cosa aprendida: las tejas de un tejado caen si estan mal pegadas.
Y es que al llegar a casa la acera estaba sembrada de 10 tejas del tejado.
Menos mal que el coche no estaba, porque siempre se aparca justo debajo. O peor! me hubiera matado al perro!
ufff ...


Y el día no ha acabado ...

El caso es que de un día se pueden sacar muchas cosas en claro. Risas, disgustos, lecciones, etc...
Yo me quedo con que al menos las puedo contar hoy aquí.

domingo, 31 de enero de 2010

Un poco de Japon

Estos últimos días han estado coloreados de cierto color oriental.

Mismamente este fin de semana descubrí una película de animación que probablemente sea la más impactante y emotiva que he visto nunca; y más probable que lo sea durante un buen tiempo: "La tumba de las luciérnagas".

La tumba de las luciérnagas


Fácil es saber cómo dí con ella al comprobar que pertenece al Studio Ghibli, y tiene por director a Isao Takahata, en realidad su primera película con el Studio.
Se estrenó en Japon en 1988 en una sesión doble junto a "Mi vecino Totoro" de Hiyao Miyazaki y mucha gente opina que fué muy desacertado por la crudeza de una frente a la ternura de la otra.

En mi opinión es una película muy dura, muy triste, muy desalentadora, que llena de impotencia, de dolor y de llanto. Y a pesar de ello, consigue sacarte risas y carcajadas en ocasiones, toca la ternura y llegas a disfrutarla olvidando a veces el comienzo.

Aprecio mucho haberla visto sin tener constancia alguna de su trama ni su temática. Eso logro impactarme aún más.
Me caló muy hondo. Tanto que no he dejado de pensar en ella desde entonces, y ya van un par de días.
Por momentos se me viene a la cabeza la voz de Setsuko comentando cualquier cosa, y otras veces, las imágenes que mas me han impactado pasan ante mis ojos dejando completamente bloqueada. Incluso escenas que creí no fijarme mientras la veía, vuelven a mí para que las analice detenidamente.

Tarde en dormirme aquella noche. Y los sueños no fueron del todo agradables.

A veces me sorprendo a mi misma quieta, con la mirada perdida y pensando en nada - o quizás pensando en cada detalle de la laguna, del paraguas roto que no los protegía de la lluvia, en el sonido de los tres últimos caramelos dentro de la lata, de la pequeña caja de madera tan mal escondida, del color de la roja sandía ...

A veces digo que no podré volver a verla. Pero se que algun día lo haré, aunque no creo que pueda ser pronto.

¿Por qué solemos perder el tiempo cuando mas falta nos hace?

Soy de esas personas que siguen un claro patrón: cuánto más importante es algo en lo que debo trabajar, más frecuentemente pierdo el tiempo.

¿Y no ha sido ese motivo por el que cree en su día este blog?

Estamos en los días previos a los exámenes de la convocatoria de Febrero, y ya hay quien ha realizado alguno. Los míos son en esta próxima semana, y se puede decir que a medida que va muriendo el domingo, menos ganas encuentro para repasar.

Quizás es la edad, que acaba haciendo mella en una y no resulta tan fácil concentrarse; o quizás sea el tiempo que llevo haciendo lo mismo, que degrada las energías por acabar, cuando debería ser todo lo contrario; o quizás es, simple y llanamente, que nací vaga, vivo siendo vaga y, probablemente, moriré siendo más vaga aún.

Pero no debería refugiarme en ello, disculpando todo lo que puedo llega a hacer mal en estos días tan importantes. Lo cierto es que con frecuencia lo utilizo contra mi misma, para acallar la conciencia que no cesa de taladrarme la moral ...

¿Por qué será que es en estos días cuando mas se echa la vista atrás, más se reflexiona, y más conclusiones se sacan de una misma y de la propia vida que he llevado? - Supongo que la respuesta es muy obvia: porque ya no hay marcha atrás.
Ya no hay remedio.
El tiempo se ha esfumado entre los dedos y yo era consciente de ello a medida que fluían los días del invierno. Las semanas caían tan rápido como las hojas de los árboles de la calle, y cada noche me sentaba a contemplar la oscuridad mientras recordaba que estaba haciendo lo mismo que la anterior, pero ya era un día más; o un día menos, según se mire.

He hecho tantas cosas desde Octubre, y a fin de cuentas se quedan en nada ahora mismo. Porque son eso: nada. Nada que deba importar más que las verdaderas obligaciones.


Se que el miercóles pensaré de otra forma.
Me volveré positiva, tenaz, sentenciosa con los días futuros. Haré planes que me hincharán de energía; y toda mi vida hasta ese día la exprimiré para convertirla en una moraleja - cómo si mi vida fuese una fábula - y me la repetiré una y otra vez durante un par de días.

Pero serán eso: un par de días. Porque sé que al cabo de un tiempo se me olvidará todo lo que siento ahora mismo, todo lo que pienso y me compadezco, y viviré los días de primavera sin acordarme apenas de todo esto. Aunque sé, que en el fondo, siempre hay una vocecilla que me habla, con un sonido apenas perceptible, y me dice las mismas palabras que estoy escribiendo aquí.

Ojala la escuchara más veces. Ojalá le prestara más atención.
Ojalá le hiciera caso ...

viernes, 15 de enero de 2010

"Vamos haver"

Desde luego, Internet va a acabar con nosotros ...

¿Quién no ha visto alguna vez escrito por Internet en foros, blogs o comentarios la expresión "Vamos haver"?

Ni que decir que esto ESTA MAL. MUY MAL escrito ortográficamente.

Ojala Google lo puseria en rojo en su encabezado, la forma correcta de escribirlo.
Entiendo que no se sepa que, como expresión popular su traducción es que "vas a mostrar algo", es decir, "otra persona verá lo que tú quieres mostrar con los ojos".

¿Cómo es el verbo VER? Pues con V de Valencia
¿Cómo es ir a un sitio? Pues con preposición A
¿Cómo se escribe? - Pues 'SEPARAO'

Vamos a ver

Es comprensible que, como expresión popular su traducción no se entienda como "ir a ver algo", sino que se puede confundir con lo verbo 'haber' de toda la vida: HABER con B de Barcelona.

Pero en fin, hay que decir que he visto todas las variantes posibles por ahí ...


Otros ejemplos de nuestra sana cultura y "lo grande" que es Internet:

- Halludar, hayudar, alludar: cómo vereis, la primera es la que mas hace sangrar los ojos

- Hai: no se sabe si lo que quieren poner es AHI o HAY o AY. (por dios que debe de haber un capitulo de Barrio Sesamo solo para estas tres formas y ya ponen otra mas enrevesada)


Lo cierto es que con los mensajes cortos y las ganas de escribir y acabar rápido, nos estamos acostumbrando a ciertas palabras como 'ola', 'ai', 'q', etc, que son mas bien simplificaciones de lo que escribimos. Pero si pones OLA dejas el margen de duda de si quitas la H porque no la quieres escribir o bien porque no sabes que la lleva; pero poner H donde no la lleva es que lo haces mal y encima lo dices a voces.

Si es que Internet mucho avance para uno y mucho retroceso para otro. Y yo que no me aguantaba sin dejarlo constatado aquí, pero es que mis ojos sufren con estas cosas ...


;)

jueves, 14 de enero de 2010

Recorrer HashMap con Struts 2 y el tag iterator

Hace unos días indicaba como recorrer un HashMap desde una clase java, pero hoy he necesitado mostrar con Struts 2 y mediante el tag iterator los elementos y valores de un Map.

En concreto se trataba del un carrito de la compra:


Map<Equipo, Integer> carrito = new HashMap<Equipo, Integer>();




siendo Equipo una clase java


public class Equipo {



private Long id;

private String nombre;

private Long precio;

[...]

[...geters() y seters()...]

}




y almacenando como Integer la cantidad de productos de ese tipo Equipo que tenemos en el carrito de la compra.

La idea era mostrar el carrito en una tabla de HTML y finalmente el código quedo de esta forma:


<table>
<thead>Estado actual del carrito</thead>
<tr><td><b>Nombre___________</b></td><td><b>Cantidad______</b></td></tr>
<s:iterator id="carrito" value="carrito">
<tr>
<td><s:property value="key.nombre"/></td>
<td><s:property value="value"/></td>
</tr>
</s:iterator>
</table>



Lo importante de éste código son las líneas


value="key.nombre"
value="value"


donde Struts captura del HashMap carrito su KEY, que en este caso es una clase EQUIPO y muestra su nombre. No accede directamente a su atributo nombre, sino que mediante Struts 2 se accede al metodo getNombre() de la clase Equipo.

Para el caso de VALUE, es el valor Integer del HashMap correspondiente.

Si al carrito le añadimos:

carrito.put(new Equipo("Jabalina", 3);
carrito.put(new Equipo("Gorra", 1);


la tabla resultante se puede ver en la siguiente imagen:

miércoles, 13 de enero de 2010

Enganchada a OST Avatar

Muchas me gustan, pero estos días cada vez que aleatoriamente sale Becoming One of The People, Becoming one with Neytiri me doy cuenta que cada vez me gusta más.

Aquí la dejo para disfrute ...


Utilizando EJB 3.0 y Java Persistence API (JPA)

Está visto que en esta vida no te lo dan todo hecho

Estoy con las ampliaciones de la práctica de DASDI, que en mi caso mas que ampliaciones son "mejoras" de mi practica.

Despues de muchas vueltas, tengo una aplicación compuesta de 72 archivos para compilar con una gran masa de paquetes y clases, por lo que va siendo hora de echarle un vistazo a todo y ver que se puede agrupar y de que podemos prescindir.

Durante el desarrollo de la tienda virtual me fui dando cuenta de que era mejor agrupar ciertas funciones en una misma clase con varios metodos en vez de utilizar clase por función. Pero la parte de Miis y Jugadores sigue siendo muy redundante.

En la practica 9 se nos explicó como dar rentabilidad transversal a nuestra aplicación con el uso de Enterprise Java Beans (EJB), utilizandolos en la fachada entre la capa de logica o negocio y la capa de presentación.

Para ello añadimos dos nuevos interfaces, uno Local y otro Remote.


package impl.uo.dasdi.business.mii;

import javax.ejb.Local;
import com.dasdi.business.MiisService;

@Local
public interface MiisServiceLocal extends MiisService {
}


La anotación o etiqueta de @Local necesita la importacion de la clase Local de la librería EJB 3; y, como decía al principio, no se nos facilitó la librería EJB, por lo que toca descargarla de Sun Developer Network, y seguir los siguientes pasos:

  1. Descargar los archivos de clases (ejb-3_0-fr-api.zip)
  2. Descomprimir el ZIP, obteniendo la librería JAR ejb-3_0-api.jar
  3. Copiamos la librería a nuestro directorio /lib del proyecto
  4. Abrimos Proyecto en Eclipse (o actualizamos F5 si ya estuviera abierto)
  5. Nos aparecera en la carpeta /lib del explorador de paquetes, pero no estará aún enlazada al proyecto
  6. Botón derecho sobre la librería -> Build Path -> Añadir
  7. Ya está enlazada, por lo que debería salir en References libraries, de nuestro proyecto

Listo! Ya podemos hacer la importación de la clase Local y Remote.


Java Persistence API (JPA)


Para la adaptación de la capa de persistencia mediante el mapeo de dominio necesitamos las librerías y ha ocurrido una cosa similar con la librería de EJB, por lo que hacemos lo mismo:

Accedemos a la pagina de Sun Developer Network correspondiente a JPA donde nos re-dirige a GlassFish para obtener los archivos binarios:

  • Descargamos el paquete v1_ur1 b14 de la web de GlassFish
  • Extraemos el contenido del paquete o bundle para obtener las classes:
  • Abrimos un interprete de comandos: Ejecutar -> cmd
  • Nos situamos en el directorio del archivo descargado glassfish-persistence-installer-v1_ur1-b14.jar
  • Ejecutamos: java -jar glassfish-persistence-installer-v1_ur1-b14.jar
  • Hemos obtenido una carpeta con los JAR de las clases
  • Copiamos la librería toplink-essentials.jar a nuestro directorio /lib del proyecto
  • Actualizamos Proyecto en Eclipse
  • Boton derecho sobre la nueva librería
  • Añadimos al Build Path

Y listo! ya podemos utilizar las clases para el mapeo, en concreto las etiquetas de @Entity, @Id, etc.

sábado, 9 de enero de 2010

Nieve en Enero


Llevamos tres días de un intenso temporal de nieve y frio en toda España, y aquí en Palaciós, a casi 400 metros sobre el nivel del mar, ha llegado a cubrirlo todo con una gran capa.

Muchas fotos estos días, muchas bolas de nieve, muchas carreras con Kalel y, sobretodo, muy cansada de limpiar nieve de la entrada de casa para que pueda pasar el coche.


Lo único malo que tienen estos temporales son si tienes que coger el coche y desplazarte al trabajo u otra cita ineludible. Sino, son días con un encanto muy especial, y hay que saber disfrutarlo.

Esta noche volveré a pasarme un buen rato sobre la nieve, disfrutando de los colores y la noche, que lo dibuja todo como una bonita postal de Navidad.



viernes, 8 de enero de 2010

Ubuntu Live CD para recuperar archivos Windows

Este día me dejaron un portátil Toshiba para arreglar, el cuál al arrancar mostraba el error
Falta archivo NTLDR
.

Si se busca por la red hay miles de enlaces comentando la posible solución a este error, y lo cierto es que funciona. Pero la técnica -que describiré al final de esta entrada - no deja de ser un tanto agresiva y siempre hay un riesgo, aunque mínimo, de perder los datos de la partición de Windows.

Por lo tanto, antes quise asegurarme de hacer una copia de todos los archivos que había en Windows, ¿y cómo lo hice?. - Pues utilizando un LIVE CD DE UBUNTU.

Este tipo de CD consiguen hacer funcionar en un ordenador un sistema operativo Linux sin necesidad de utilizar el SO Windows instalado, tan sólo utilizan parte del hardware como la memoria RAM para cargar los datos.

La primera necesidad de tener este tipo de CDs es para poder probar Ubuntu sin necesidad de instalarlo (tal y como tenemos Windows) y de esta forma comprobar si nos gusta o no. Pero acaba siendo muy necesario para este tipo de problemas, donde el acceso a nuestros datos del disco duro es muy limitado.

A pesar de tener ya versiones anteriores, en esta ocasión decidí descargarme de la web oficial de UBUNTU el Live CD de la versión 9.10 y grabarla en un cd.

Esta versión viene con unas mejoras respecto a las anteriores, en mi caso la 6.06, dónde no es necesario cambiar los permisos de administrador para acceder y copiar archivos, y desaparecen problemas con la conexión de algunos dispositivos USB, como los discos duros portatiles.

Los pasos fueron:
1.- Descargar la imagen ISO de la web
2.- Grabarla con NERO - esto no tiene mucha ciencia
3.- Introducir CD en portatil
4.- Activar en la BIOS el orden de BOOT para que arranque primero desde CD
5.- Reiniciar portatil

Aparecerán datos que indican la carga del LIVE CD y saldrá el menú de UBUNTU. A veces incluso se cargar todo solo y lo siguiente que se verá es el escritorio del Sistema Operativo.

Gracias a esta versión de UBUNTU, aparecerán las unidades lógicas conectadas al equipo, y con ellas el disco duro con los datos de la partición de WIndows que queremos. Tan solo sera cuestion de copiarlas donde queramos, es decir a un dispositivo portatil, memoria flash, disco duro portatil, etc.


COMO SOLUCIONAR EL ERROR NTLDR
Básicamente esta explicado mucho mejor por otras web pero:
1.- Obtener un disco de arranque de Windows XP (o el sistema operativo en cuestion)
2.- Arrancar desde CD e iniciar la carga de la instalación
3.- Acceder a la consola de recuperación (R)
4.- Seleccionar la unidad o partición (1)
5.- Introducir contraseña de administrador (normalmente vacia)
6.- Teclear FIXMBR y Enter
7.- Aceptar con una S y Enter
8.- Teclear copy D:\i386\ntldr C:\ y Enter
9.- Teclear copy D:\i386\ntldetect.com C:\ y Enter
10.- Salimos con EXIT y reiniciamos

Debería cargar Windows perfectamente.
Lo que hemos hecho es obtener los archivos que pedía en el ordenador del CD de instalación del Windows XP, y los hemos copiado al sitio correspondiente para que cuando arranquemos Windows, se cargue correctamente.

Este error es frecuente tras un mal uso del apagado de Windows, como apagarlo con el botón de Power, desenchufarlo, problemas de batería, etc. De modo que es recomendable, no solo tener copias de seguridad de todo, si no tener un ordenador en buen estado, sobretodo el tema de la alimentación.