Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in /opt/bitnami/apps/wordpress/htdocs/wp-includes/wp-db.php on line 3215

Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in /opt/bitnami/apps/wordpress/htdocs/wp-includes/wp-db.php on line 3215

Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in /opt/bitnami/apps/wordpress/htdocs/wp-includes/wp-db.php on line 3215

Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in /opt/bitnami/apps/wordpress/htdocs/wp-includes/wp-db.php on line 3215

Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in /opt/bitnami/apps/wordpress/htdocs/wp-includes/wp-db.php on line 3215
personalización Archives | jordisan.net

personalización

Patrones de software, MVC y los teléfonos móviles

Casi todos los que nos hemos dedicado en algún momento al desarrollo de aplicaciones reconocemos la importancia de mantener separados el contenido y la presentación; es decir, independizar qué hace la aplicación de cómo lo muestra al usuario. Yendo un…

Casi todos los que nos hemos dedicado en algún momento al desarrollo de aplicaciones reconocemos la importancia de mantener separados el contenido y la presentación; es decir, independizar qué hace la aplicación de cómo lo muestra al usuario. Yendo un paso más allá, el patrón MVC propone una separación del software en tres partes:

  • Modelo (model): la información con la que trabaja la aplicación (“los datos”). Habitualmente esta parte está soportada por un sistema de base de datos.
  • Vista (view): cómo interacciona el usuario con la aplicación (“la interfaz”). En una aplicación web suele utilizarse HTML y CSS.
  • Controlador (controller): las acciones que realiza la aplicación (“el comportamiento” o “la lógica”).

Esquema MVC (Model-View-Controller)

Muchos frameworks de desarrollo siguen este patrón, ya que las ventajas de esa separación son múltiples: la aplicación resulta más modular, más flexible, facilitando cambios en una de las partes sin necesidad de modificar el resto.

Por ejemplo, una aplicación desarrollada siguiendo ese patrón permitiría fácilmente cambiar el gestor de base de datos (el modelo) sin necesidad de modificar el resto de la aplicación; o desarrollar cada una de las partes de modo independiente; o acceder a la misma aplicación desde diferentes dispositivos como navegadores web o móviles, simplemente creando diferentes vistas.

¿Este patrón no queda del todo claro? ¿Sus ventajas no resultan tan evidentes? Puede que lo comprendamos mejor si establecemos un símil con algo que casi todos conocemos: la estructura de los teléfonos móviles.

(more…)

Mi Google es mejor que el tuyo (reloaded)

(esta es una actualización de un artículo anterior escrito hace algún tiempo) Desde hace varias semanas varios meses, mi página de Google tiene más o menos este aspecto: Más completo que la habitual, ¿verdad? Desde cualquier ordenador conectado a Internet…

(esta es una actualización de un artículo anterior escrito hace algún tiempo)

Desde hace varias semanas varios meses, mi página de Google tiene más o menos este aspecto:

Página principal de Google, personalizada

Más completo que la habitual, ¿verdad? Desde cualquier ordenador conectado a Internet (después de poner mi usuario y contraseña, claro), en una misma página puedo consultar mi correo electrónico, las noticias de los temas que más me interesan, el tiempo que hace en mi ciudad, las últimas entradas en los weblogs que consulto habitualmente… Ah, y por supuesto, puedo seguir buscando en Google.

Si todavía no conoces y/o utilizas este servicio de Google, puedes hacerlo fácilmente siguiendo estos pasos; (si eres muy impaciente, prueba directamente el paso 4):

(more…)


Warning: mysqli_num_fields() expects parameter 1 to be mysqli_result, boolean given in /opt/bitnami/apps/wordpress/htdocs/wp-includes/wp-db.php on line 3215

Fatal error: Uncaught exception 'wfWAFStorageFileException' with message 'Unable to verify temporary file contents for atomic writing.' in /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php:46 Stack trace: #0 /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php(567): wfWAFStorageFile::atomicFilePutContents('/opt/bitnami/ap...', '<?php exit('Acc...') #1 [internal function]: wfWAFStorageFile->saveConfig() #2 {main} thrown in /opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/wordfence/vendor/wordfence/wf-waf/src/lib/storage/file.php on line 46