BBCODE

bbcodeBBCode es una colección de marcadores de formato que se usan para cambiar la apariencia del texto e insertar imágenes u otros objetos en los mensajes que se publican en un foro o blog (simpre y cuando el administrador los admita). BBCode  (proveniente del inglés Bulletin Board Code) está basado en el mismo principio que  HTML.

A continuación se muestran algunos ejemplos de los códigos BBCode más comunes y sus respectivas instrucciones de cómo utilizarlos.

[b]Negrita[/b] produce Negrita
[u]Subrayado[/u] produce Subrayado
[i]Cursiva[/i] produce Cursiva
[color=#FF0000]Rojo[/color] produce Rojo
[color=blue]Azul[/color] produce Azul
[center]Centrar el texto[/center]
[title1]Añadir un título de tipo 1[/title1]
[title2]Añadir un título de tipo 2[/title2]

Enlaces

[url=http://www.google.com]Buscan en Google[/url] produce Buscar en Google
[url]http://www.google.com[/url] produce http://www.google.com

Imágenes

[img]http://infoinnova.net//wp-content/blogs.dir/1/images/LogotipoInfoInnova_small.png[/img] produce

Enlaces e Imágenes

[url=”http://infoinnova.net”][img]http://infoinnova.net//wp-content/blogs.dir/1/images/LogotipoInfoInnova_small.png[/img][/url] produce

Mas información aquí

Algoritmo para lograr el éxito

algoritmo para lograr el éxito

En lenguaje humano significa: Mientras no alcances el éxito, inténtalo de nuevo, sin parar. Solo la muerte nos puede detener…

T-SQL: TRUNCATE TABLE y DELETE FROM

Una duda bastante habitual entre los desarrolladores, es cuál es la diferencia entre la sentencia TRUNCATE TABLE y DELETE FROM TABLE. Este post está orientado al modo de trabajo en SQL Server (que es el motor de base de datos que más uso), sin embargo, la mayoría de las diferencias entre ambas sentencias se aplican también a cualquier motor de bases de datos (Oracle, MySQL, DB2, etc).

Veamos primero las diferencias y luego analizamos el porqué de éstas.

TRUNCATE TABLE DELETE FROM
  • Es una operación DDL.
  • Es una operación DML.
  • No permite el borrado selectivo. TRUNCATE TABLE elimina todo el contenido de la tabla.
  • Permite el borrado selectivo, mediante la clausula WHERE.
  • No se puede ejecutar, si la tabla tiene asociadas, aun si no existiesen registros en la tabla que contiene la FK.
  • Se puede ejecutar si hay FK asociadas a la tabla, pero siempre y cuando no tenga registros asociados o la FK este deshabilitada.
  • Es la forma más rápida de eliminar el contenido de una tabla.
  • Es más lenta.
  • No se activa ningún trigger al ejecutarse (a partir de SQL Server 2005, es posible capturar el evento mediante un DDL trigger, pero a modo de auditoría, no es posible tener acceso a los valores que fueron eliminados).
  • Puede activarse el trigger de ON DELETE y poder determinar que registros están siendo eliminados. siendo eliminados.
  • En caso que la tabla tuviese un campo Identity, se resetea el valor a 1 (o al valor base determinado en el campo).
  • No resetea el valor del campo Identity, en caso que la tabla tuviese uno.
  • TRUNCATE TABLE desasocia (deallocate) las páginas de datos de la tabla.
  • DELETE FROM marca cada registro afectado, como eliminado.
  • El logueo en el transaction log es mínimo. Solo registra el dealloc de las páginas de datos.
  • Loguea cada operación sobre los registros afectados.
  • No puede ser ejecutado si la tabla tiene asociadas vistas indexadas.
  • Se puede ejecutar si la tabla tiene vistas indexadas.

Como se puede ver, TRUNCATE TABLE es bastante más restrictivo que DELETE, al punto que en muchas situaciones, aun si queremos eliminar todo el contenido de la tabla, no podemos hacerlo.

Ahora bien, ¿qué es lo que hace TRUNCATE y porque es mas rápido que su “competidor”?  Para eso primero voy a hacer una brevísima introducción a como almacena internamente SQL Server los datos.

En SQL Server, los registros de una tabla, son agrupados en una estructura física de datos, que se llama página. Cada página tiene un tamaño fijo de 8060 bytes, y puede almacenar uno o cientos de registros, dependiendo del tamaño del mismo. Cuando se intenta insertar más registros en una tabla y la página de datos está llena, se crea otra donde se inserta el nuevo registro y así sucesivamente.

El comando TRUNCATE, lo que hace es desasociar (deallocate) las páginas de datos de la tabla, sin alterar los registros en sí mismo, mientras que el comando DELETE FROM recorre cada uno de los registros y los marca como borrados, por lo tanto, hace muchas más operaciones de lectura y escritura (I/O), que aumenta exponencialmente en relación con TRUNCATE, a medida que aumenta el tamaño de la tabla.

Otra razón que explica la diferencia de rendimiento, es que TRUNCATE TABLE solo registra en el fichero de transacciones (transaction log), el deallocate de las paginas con la tabla (por lo tanto, es posible hacer un rollback de un TRUNCATE (algunos creen que no), mientras que el DELETE FROM manda al transaction log todos los registros afectados, lo que es obviamente mucho más costoso a nivel recursos de I/O.

Por último, al ejecutar el comando TRUNCATE se produce un bloqueo de la tabla, a diferencia del DELETE FROM que hace un bloqueo por pagina o registro, el consumo de memoria para almacenar los objetos bloqueados es mucho menor.

LinuxLive USB Creator

usb live

LinuxLive USB Creator es una herramienta que sirve para crear fácilmente dispositivos “USB live” con Ubuntu desde Windows, es decir, instalar el sistema operativo en un pendrive para poder ejecutarlo y usarlo en cualquier ordenador que permita arrancar desde USB. También sirve perfectamente para crear pendrives con sesiones en vivo de Ubuntu, Kubuntu y Xubuntu.

Pasos a seguir

El proceso es muy sencillo, al ejecutarlo aparecerá una curiosa interfaz gráfica con los cinco pasos a seguir para la creación de un “USB  Live”:

  • Seleccionar el dispositivo USB donde será instalado.
  • Elegir el archivo fuente del sistema operativo (el fichero .iso descargado o el CD de instalación)
  • Elegir el tamaño de persistencia de los datos: eligiendo por ejemplo 100MB, se podrán utilizar esos 100MB para guardar datos y archivos de configuración incluso cuando se reinicie la sesión.
  • Seleccionar algunas opciones adicionales (formatear el dispositivo, activar la ejecución de Ubuntu en Windows…)
  • Realizar la instalación.

En todos los pasos hay un botón de ayuda, donde obtener una aclaración de qué es exactamente cada paso, y también un indicador en forma de semáforo que indica si ese paso está configurado correctamente.

Descargar LinuxLive USB Creator

Máquina virtual de Team Foundation Server 2012 y System Center 2012

Para quienes están deseando aprender y probar Team Foundation Server 2012 y System Center 2012 Operations Manager, he aquí una máquina virtual que tiene mucho contenido técnico y algo más que los típicos laboratorios de ALM. Especialmente en este caso, hay un laboratorio que permite ver la interacción real entre System Center Operation Manager 2012 y Team Foundation Server 2012.

Esta máquina virtual está configurada con:

  • Microsoft Windows Server 2012 Datacenter Evaluation
  • Microsoft Visual Studio Ultimate 2012 Update 1
  • Microsoft Visual Studio Team Foundation Server 2012 Update 1
  • Microsoft Visual Studio Team Foundation Server 2012 Update 1 Power Tools
  • Microsoft System Center 2012 – Operations Manager SP1 with Update Rollup 1
  • Microsoft SQL Server 2008 R2
  • Microsoft SQL Server 2012 Express
  • Sample data required to support the hands-on-lab / demo script.

¡A disfrutarlo!

Más información aquí (Blog de Brian Keller – Evangelista de Visual Studio ALM)

Máquinas virtuales de Team Foundation Server 2012 y System Center 2012 Operations Manager