Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

Also see [[AdvancedOptions]]
<div class='header' role='banner' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<div id='mainMenu' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox where print preview displays the noscript content */
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
Una de mis principales aficiones es la informática, tanto de programación como de edicion, e incluso montaje de redes de equipos virtuales basados en ~VirtualBox.

[[Herramientas para gente altamente productiva|Freeware]]
[[Métodologías para gente altamente productiva|Metodos]]

Hace unos años monté con unos amigos el 'Club Leonés de Ajedrez'. Fué esta una de las etapas que recuerdo con más cariño. Junto con mis amigos Robertín, Joaquín, Felipe, Gus, Marcelino... tuve muy buenos ratos. 
Uno de los proyectos que llevamos a cabo, en colaboración con 'El Corte Ingles' fueron las 5 ediciones del torneo abierto del corte ingles, que reunía a más de 100 ajedrecistas de León en la quinta planta de éste centro comercial.
Mi labor, además de gestionar el propio torneo, con ayuda de Joaquín, también era la de arbitrarlo, con otros 4 miembros del club.

Más que una afición es una forma de vida. Además de la  música comercial, también he hecho mis incursiones en el mundo de la New Age y de la música Etnica.

Quizás más adelante aumente el presente wiki añadiendo también a mis artistas favoritos.

Al igual que la música, es mucho más que una aficion. Aparte de los innumerables libros científicos y técnicos, también me gusta sumergirme en una buena novela. Entre mis géneros favoritos están la Ciencia Ficción y la Fantasía Épica, con su mayor exponente 'El Señor de los Anillos'
El primer año estuve en el instituto 'Ordono II', situado en el barrio de la Palomera. 

Sin embargo, a causa de un traslado de domicilio, el resto de los años los realicé en el instituto 'García Bellido', donde comenzó a interesarme las asignaturas de ciencias, y múcho más las matemáticas y la física.
Soy Luis González. 

Desde aquí podrás acceder a todos mis datos profesionales.

El objetivo principal de estas fichas es que puedas comprobar, de la forma más sencilla posible, si te interesa contar con mi apoyo. Puedes revisar toda esta información para conocer tanto mi formación como mi trayectoria profesional. En el caso de que te interese [[contacta conmigo|Contacto]]. 

En este blog la información no aparece ni de forma lineal ni jerárquica. Están organizada en una linea de tiempo, desde el año 1994 cuando terminé Industriales hasta el día de hoy, trabajando en [[T-Systems|]]. Esta línea de tiempo la encontrarás a la derecha, en el apartado [[Historial|TabTimeline]]. Cada ficha tiene un menu en su parte superior que te permite cerrarla, plegarla, desplegarla y algunas otras opciones más.

En el siguiente apartado: [[Biografía]] aparece el índice principal de este blog. Puedes volver a él pinchando en el enlace que hay debajo de mi foto.

[[Ver mi evolución en el tiempo|CV.html]]

//Espero que disfrutes de la lectura de este blog tanto como yo lo he hecho con su confección.//
[[Logros profesionales]]
[[Experiencia profesional]]
[[Proyectos desarrollados]]
[[Conocimientos de Informática]]
En el año 2001 el crecimiento de Caja España le hizo plantearse otra forma de atender a sus oficinas y departamentos. Inicialmente eran los propios departamentos los que recibían las llamadas de todas las oficinas y los que resolvían los problemas. Llegó un momento en el que el volumen de llamadas suponía una gran traba al trabajo real de dichos departamentos, consumiendo gran parte de su tiempo.

En este punto, comenzaron a estudiar la puesta en marcha de un Centro de Atención que fuera el punto de entrada incial de todas las llamadas de las oficinas. Como promotor principal estaba Miguel Ángel Aragoneses del departamento de Organización y Métodos de la entidad bancaria, alma  mater del proyecto.

Comenzamos en este Help Desk 6 personas de Metrolico, previa formación inicial por parte de la entidad financiera.

Este centro fue asumiendo funciones de forma progresiva.
|Author|Eric Shulman|
|Original Author|SteveRumsby|
|Description|display monthly and yearly calendars|
NOTE: For //enhanced// date popup display, optionally install:
|{{{<<calendar>>}}}|full-year calendar for the current year|
|{{{<<calendar year>>}}}|full-year calendar for the specified year|
|{{{<<calendar year month>>}}}|one month calendar for the specified month and year|
|{{{<<calendar thismonth>>}}}|one month calendar for the current month|
|{{{<<calendar lastmonth>>}}}|one month calendar for last month|
|{{{<<calendar nextmonth>>}}}|one month calendar for next month|
|{{{<<calendar +n>>}}}<br>{{{<<calendar -n>>}}}|one month calendar for a month +/- 'n' months from now|
|''First day of week:''<br>{{{config.options.txtCalFirstDay}}}|<<option txtCalFirstDay>>|(Lunes = 0, Domingo = 6)|
|''First day of weekend:''<br>{{{config.options.txtCalStartOfWeekend}}}|<<option txtCalStartOfWeekend>>|(Lunes = 0, Domingo = 6)|

<<option chkDisplayWeekNumbers>> Display week numbers //(note: Lunes will be used as the start of the week)//
|''Week number display format:''<br>{{{config.options.txtWeekNumberDisplayFormat }}}|<<option txtWeekNumberDisplayFormat >>|
|''Week number link format:''<br>{{{config.options.txtWeekNumberLinkFormat }}}|<<option txtWeekNumberLinkFormat >>|
2011.01.04 1.5.1 corrected parameter handling for {{{<<calendar year>>}}} to show entire year instead of just first month.  In createCalendarMonthHeader(), fixed next/previous month year calculation (use parseInt() to convert to numeric value).  Code reduction (setting options).
2009.04.31 1.5.0 rewrote onClickCalendarDate() (popup handler) and added config.options.txtCalendarReminderTags.  Partial code reduction/cleanup.  Assigned true version number (1.5.0)
2008.09.10 added '+n' (and '-n') param to permit display of relative months (e.g., '+6' means 'six months from now', '-3' means 'three months ago'.  Based on suggestion from Jean.
2008.06.17 added support for config.macros.calendar.todaybg
2008.02.27 in handler(), DON'T set hard-coded default date format, so that *customized* value (pre-defined in config.macros.calendar.journalDateFmt is used.
2008.02.17 in createCalendarYear(), fix next/previous year calculation (use parseInt() to convert to numeric value).  Also, use journalDateFmt for date linking when NOT using [[DatePlugin]].
2008.02.16 in createCalendarDay(), week numbers now created as TiddlyLinks, allowing quick creation/navigation to 'weekly' journals (based on request from Kashgarinn)
2008.01.08 in createCalendarMonthHeader(), 'month year' heading is now created as TiddlyLink, allowing quick creation/navigation to 'month-at-a-time' journals
2007.11.30 added 'return false' to onclick handlers (prevent IE from opening blank pages)
2006.08.23 added handling for weeknumbers (code supplied by Martin Budden (see 'wn**' comment marks).  Also, incorporated updated by Jeremy Sheeley to add caching for reminders (see [[ReminderMacros]], if installed)
2005.10.30 in config.macros.calendar.handler(), use 'tbody' element for IE compatibility.  Also, fix year calculation for IE's getYear() function (which returns '2005' instead of '105'). Also, in createCalendarDays(), use showDate() function (see [[DatePlugin]], if installed) to render autostyled date with linked popup.  Updated calendar stylesheet definition: use .calendar class-specific selectors, add text centering and margin settings
2006.05.29 added journalDateFmt handling
version.extensions.CalendarPlugin= { major: 1, minor: 5, revision: 1, date: new Date(2011,1,4)};

var opts={
	txtCalFirstDay:				0,
	txtCalStartOfWeekend:		5,
	chkDisplayWeekNumbers:		false,
	txtCalFirstDay:				0,
	txtWeekNumberDisplayFormat:	'w0WW',
	txtWeekNumberLinkFormat:	'YYYY-w0WW',
	txtCalendarReminderTags:		'recordatorio'
for (var id in opts) if (config.options[id]===undefined) config.options[id]=opts[id];

config.macros.calendar = {
	journalDateFmt:'DD MMM YYYY',
	holidays:[ ] // for customization see [[CalendarPluginConfig]]
function calendarIsHoliday(date)
	var longHoliday = date.formatString('0DD/0MM/YYYY');
	var shortHoliday = date.formatString('0DD/0MM');
	for(var i = 0; i < config.macros.calendar.holidays.length; i++) {
		if(   config.macros.calendar.holidays[i]==longHoliday
		   || config.macros.calendar.holidays[i]==shortHoliday)
			return true;
	return false;
config.macros.calendar.handler = function(place,macroName,params) {
	var calendar = createTiddlyElement(place, 'table', null, 'calendar', null);
	var tbody = createTiddlyElement(calendar, 'tbody');
	var today = new Date();
	var year = today.getYear();
	if (year<1900) year+=1900;

 	// get journal format from SideBarOptions (ELS 5/29/06 - suggested by MartinBudden)
	var text = store.getTiddlerText('SideBarOptions');
	var re = new RegExp('<<(?:newJournal)([^>]*)>>','mg'); var fm = re.exec(text);
	if (fm && fm[1]!=null) { var pa=fm[1].readMacroParams(); if (pa[0]) this.journalDateFmt = pa[0]; }

	var month=-1;
	if (params[0] == 'thismonth') {
		var month=today.getMonth();
	} else if (params[0] == 'lastmonth') {
		var month = today.getMonth()-1; if (month==-1) { month=11; year--; }
	} else if (params[0] == 'nextmonth') {
		var month = today.getMonth()+1; if (month>11) { month=0; year++; }
	} else if (params[0]&&'+-'.indexOf(params[0].substr(0,1))!=-1) {
		var month = today.getMonth()+parseInt(params[0]);
		if (month>11) { year+=Math.floor(month/12); month%=12; };
		if (month<0)  { year+=Math.floor(month/12); month=12+month%12; }
	} else if (params[0]) {
		year = params[0];
		if(params[1]) {
			if (month>11) month=11; if (month<0) month=0;

	if (month!=-1) {
		cacheReminders(new Date(year, month, 1, 0, 0), 31);
		createCalendarOneMonth(tbody, year, month);
	} else {
		cacheReminders(new Date(year, 0, 1, 0, 0), 366);
		createCalendarYear(tbody, year);
	window.reminderCacheForCalendar = null;
// cache used to store reminders while the calendar is being rendered
// it will be renulled after the calendar is fully rendered.
window.reminderCacheForCalendar = null;
function cacheReminders(date, leadtime)
	if (window.findTiddlersWithReminders == null) return;
	window.reminderCacheForCalendar = {};
	var leadtimeHash = [];
	leadtimeHash [0] = 0;
	leadtimeHash [1] = leadtime;
	var t = findTiddlersWithReminders(date, leadtimeHash, null, 1);
	for(var i = 0; i < t.length; i++) {
		//just tag it in the cache, so that when we're drawing days, we can bold this one.
		window.reminderCacheForCalendar[t[i]['matchedDate']] = 'recordatorio:' + t[i]['params']['title']; 
function createCalendarOneMonth(calendar, year, mon)
	var row = createTiddlyElement(calendar, 'tr');
	createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon]+' '+year, true, year, mon);
	row = createTiddlyElement(calendar, 'tr');
	createCalendarDayHeader(row, 1);
	createCalendarDayRowsSingle(calendar, year, mon);
function createCalendarMonth(calendar, year, mon)
	var row = createTiddlyElement(calendar, 'tr');
	createCalendarMonthHeader(calendar, row, config.macros.calendar.monthnames[mon]+' '+ year, false, year, mon);
	row = createTiddlyElement(calendar, 'tr');
	createCalendarDayHeader(row, 1);
	createCalendarDayRowsSingle(calendar, year, mon);
function createCalendarYear(calendar, year)
	var row;
	row = createTiddlyElement(calendar, 'tr');
	var back = createTiddlyElement(row, 'td');
	var backHandler = function() {
		createCalendarYear(calendar, parseInt(year)-1);
		return false; // consume click
	createTiddlyButton(back, '<', 'Previous year', backHandler);
	back.align = 'center';
	var yearHeader = createTiddlyElement(row, 'td', null, 'calendarYear', year);
	yearHeader.align = 'center';
	var fwd = createTiddlyElement(row, 'td');
	var fwdHandler = function() {
		createCalendarYear(calendar, parseInt(year)+1);
		return false; // consume click
	createTiddlyButton(fwd, '>', 'Next year', fwdHandler);
	fwd.align = 'center';
	createCalendarMonthRow(calendar, year, 0);
	createCalendarMonthRow(calendar, year, 3);
	createCalendarMonthRow(calendar, year, 6);
	createCalendarMonthRow(calendar, year, 9);
function createCalendarMonthRow(cal, year, mon)
	var row = createTiddlyElement(cal, 'tr');
	createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon], false, year, mon);
	createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+1], false, year, mon);
	createCalendarMonthHeader(cal, row, config.macros.calendar.monthnames[mon+2], false, year, mon);
	row = createTiddlyElement(cal, 'tr');
	createCalendarDayHeader(row, 3);
	createCalendarDayRows(cal, year, mon);
function createCalendarMonthHeader(cal, row, name, nav, year, mon)
	var month;
	if (nav) {
		var back = createTiddlyElement(row, 'td');
		back.align = 'center'; = config.macros.calendar.monthbg;

		var backMonHandler = function() {
			var newyear = year;
			var newmon = mon-1;
			if(newmon == -1) { newmon = 11; newyear = parseInt(newyear)-1;}
			cacheReminders(new Date(newyear, newmon , 1, 0, 0), 31);
			createCalendarOneMonth(cal, newyear, newmon);
			return false; // consume click
		createTiddlyButton(back, '<', 'Previous month', backMonHandler);
		month = createTiddlyElement(row, 'td', null, 'calendarMonthname')
		month.setAttribute('colSpan', config.options.chkDisplayWeekNumbers?6:5);//wn**
		var fwd = createTiddlyElement(row, 'td');
		fwd.align = 'center'; = config.macros.calendar.monthbg; 

		var fwdMonHandler = function() {
			var newyear = year;
			var newmon = mon+1;
			if(newmon == 12) { newmon = 0; newyear = parseInt(newyear)+1;}
			cacheReminders(new Date(newyear, newmon , 1, 0, 0), 31);
			createCalendarOneMonth(cal, newyear, newmon);
			return false; // consume click
		createTiddlyButton(fwd, '>', 'Next month', fwdMonHandler);
	} else {
		month = createTiddlyElement(row, 'td', null, 'calendarMonthname', name)
	month.align = 'center'; = config.macros.calendar.monthbg;
function createCalendarDayHeader(row, num)
	var cell;
	for(var i = 0; i < num; i++) {
		if (config.options.chkDisplayWeekNumbers) createTiddlyElement(row, 'td');//wn**
		for(var j = 0; j < 7; j++) {
			var d = j + (config.options.txtCalFirstDay - 0);
			if(d > 6) d = d - 7;
			cell = createTiddlyElement(row, 'td', null, null, config.macros.calendar.daynames[d]);
			if(d == (config.options.txtCalStartOfWeekend-0) || d == (config.options.txtCalStartOfWeekend-0+1)) = config.macros.calendar.weekendbg;
function createCalendarDays(row, col, first, max, year, mon) {
	var i;
	if (config.options.chkDisplayWeekNumbers){
		if (first<=max) {
			var ww = new Date(year,mon,first);
			var td=createTiddlyElement(row, 'td');//wn**
			var link=createTiddlyLink(td,ww.formatString(config.options.txtWeekNumberLinkFormat),false);
		else createTiddlyElement(row, 'td');//wn**
	for(i = 0; i < col; i++)
		createTiddlyElement(row, 'td');
	var day = first;
	for(i = col; i < 7; i++) {
		var d = i + (config.options.txtCalFirstDay - 0);
		if(d > 6) d = d - 7;
		var daycell = createTiddlyElement(row, 'td');
		var isaWeekend=((d==(config.options.txtCalStartOfWeekend-0)
			|| d==(config.options.txtCalStartOfWeekend-0+1))?true:false);
		if(day > 0 && day <= max) {
			var celldate = new Date(year, mon, day);
			// ELS 10/30/05 - use <<date>> macro's showDate() function to create popup
			// ELS 05/29/06 - use journalDateFmt 
			if (window.showDate) showDate(daycell,celldate,'popup','DD',
				config.macros.calendar.journalDateFmt,true, isaWeekend);
			else {
				if(isaWeekend) = config.macros.calendar.weekendbg;
				var title = celldate.formatString(config.macros.calendar.journalDateFmt);
				if(calendarIsHoliday(celldate)) = config.macros.calendar.holidaybg;
				var now=new Date();
				if ((now-celldate>=0) && (now-celldate<86400000)) // is today? = config.macros.calendar.todaybg;
				if(window.findTiddlersWithReminders == null) {
					var link = createTiddlyLink(daycell, title, false);
				} else
					var button = createTiddlyButton(daycell, day, title, onClickCalendarDate);
// Create a pop-up containing:
// * a link to a tiddler for this date
// * a 'new tiddler' link to add a reminder for this date
// * links to current reminders for this date
// NOTE: this code is only used if [[ReminderMacros]] is installed AND [[DatePlugin]] is //not// installed.
function onClickCalendarDate(ev) { ev=ev||window.event;
	var d=new Date(this.getAttribute('title')); var date=d.formatString(config.macros.calendar.journalDateFmt);
	var p=Popup.create(this);  if (!p) return;
	var rem='\\n\\<\\<reminder day:%0 month:%1 year:%2 title: \\>\\>';
	var cmd="<<newTiddler label:[[new reminder...]] prompt:[[add a new reminder to '%0']]"
		+" title:[[%0]] text:{{store.getTiddlerText('%0','')+'%1'}} tag:%2>>";
	var t=findTiddlersWithReminders(d,[0,31],null,1);
	for(var i=0; i<t.length; i++) {
		var link=createTiddlyLink(createTiddlyElement(p,'li'), t[i].tiddler, false);
	}; ev.cancelBubble=true; if (ev.stopPropagation) ev.stopPropagation(); return false;
function calendarMaxDays(year, mon)
	var max = config.macros.calendar.monthdays[mon];
	if(mon == 1 && (year % 4) == 0 && ((year % 100) != 0 || (year % 400) == 0)) max++;
	return max;
function createCalendarDayRows(cal, year, mon)
	var row = createTiddlyElement(cal, 'tr');
	var first1 = (new Date(year, mon, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first1 < 0) first1 = first1 + 7;
	var day1 = -first1 + 1;
	var first2 = (new Date(year, mon+1, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first2 < 0) first2 = first2 + 7;
	var day2 = -first2 + 1;
	var first3 = (new Date(year, mon+2, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first3 < 0) first3 = first3 + 7;
	var day3 = -first3 + 1;

	var max1 = calendarMaxDays(year, mon);
	var max2 = calendarMaxDays(year, mon+1);
	var max3 = calendarMaxDays(year, mon+2);

	while(day1 <= max1 || day2 <= max2 || day3 <= max3) {
		row = createTiddlyElement(cal, 'tr');
		createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;
		createCalendarDays(row, 0, day2, max2, year, mon+1); day2 += 7;
		createCalendarDays(row, 0, day3, max3, year, mon+2); day3 += 7;
function createCalendarDayRowsSingle(cal, year, mon)
	var row = createTiddlyElement(cal, 'tr');
	var first1 = (new Date(year, mon, 1)).getDay() -1 - (config.options.txtCalFirstDay-0);
	if(first1 < 0) first1 = first1+ 7;
	var day1 = -first1 + 1;
	var max1 = calendarMaxDays(year, mon);
	while(day1 <= max1) {
		row = createTiddlyElement(cal, 'tr');
		createCalendarDays(row, 0, day1, max1, year, mon); day1 += 7;
setStylesheet('.calendar, .calendar table, .calendar th, .calendar tr, .calendar td { text-align:center; } .calendar, .calendar a { margin:0px !important; padding:0px !important; }', 'calendarStyles');
Uno de los proyectos que puse en marcha en Metrolico, mientras estaba como técnico de redes fue el Centro de Control de Cajeros. 

Se trata de la creación de un front-end desde el que se recibían periódicamente los status de todos los cajeros de Caja España, se trataban automáticamente y se generaban las incidencias de los cajeros que en ese instante tenían problemas. Un técnico especialista gestionaba estas incidencias y, en el caso de que no pudiera resolver el problema, se las escalaba a los técnicos de campo. 

Esto redujo significativamente las intervenciones que se realizaban in situ, al solucionar la mayoría de las incidencias de forma remota. 
!Software científico que he utilizado
|Author|Eric Shulman|
|OriginalAuthor|Bradley Meck -|
|Description|show/hide content of a tiddler while leaving tiddler title visible|
This plugin provides commands to quickly switch a rendered tiddler between its current ViewTemplate display and a minimal display (title and toolbar) defined by a separate CollapsedTemplate.
In [[ToolbarCommands::ViewToolbar|ToolbarCommands]], add:
collapseTiddler collapseOthers
you can also embed the following macros in tiddler content:
*{{{<<collapseAll>>}}} - adds 'collapse all' command that applies CollapsedTemplate to each displayed tiddler
*{{{<<expandAll>>}}} - adds 'expand all' command that re-applies ViewTemplate (or equivalent custom template) to each displayed tiddler
*{{{<<foldFirst>>}}} - immediately apply CollapsedTemplate to a given tiddler, as soon as it is displayed.
2009.05.04 [2.0.0] standardized documentation and added version #
2008.10.05 collapseAll() and expandAll(): added "return false" to button handlers to prevent IE page transition
2008.03.06 refactored all code for size reduction, readability, and I18N/L10N-readiness.  Also added 'folded' flag to tiddler elements (for use by other plugins that need to know if tiddler is folded (e.g., [[SinglePageModePlugin]]
2007.10.11 moved [[FoldFirst]] inline script and converted to {{{<<foldFirst>>}}} macro
2007.12.09 suspend/resume SinglePageMode (SPM/TPM/BPM) when folding/unfolding tiddlers
2007.05.06 add "return false" at the end of each command handler to prevent IE 'page transition' problem.
2007.03.30 add a shadow definition for CollapsedTemplate.  Tweak ViewTemplate shadow so "fold/unfold" and "focus" toolbar items automatically appear when using default templates.  Remove error check for "CollapsedTemplate" existence, since shadow version will now always work as a fallback.
2006.02.24 added fallback to "CollapsedTemplate" if "WebCollapsedTemplate" is not found
2006.02.06 added check for 'readOnly' flag to use alternative "WebCollapsedTemplate"
version.extensions.CollapseTiddlersPlugin= {major: 2, minor: 0, revision: 0, date: new Date(2009,5,4)};

	<div class='toolbar' macro='toolbar expandTiddler collapseOthers closeTiddler closeOthers +editTiddler permalink references jump'></div>\
	<div class='title' macro='view title'></div>\

// automatically tweak shadow ViewTemplate to add "collapseTiddler collapseOthers" commands
config.shadowTiddlers.ViewTemplate=config.shadowTiddlers.ViewTemplate.replace(/closeTiddler/,"collapseTiddler collapseOthers closeTiddler");

config.commands.collapseTiddler = {
	text: "plegar",
	tooltip: "Collapse this tiddler",
	collapsedTemplate: "CollapsedTemplate",
	webCollapsedTemplate: "WebCollapsedTemplate",
	handler: function(event,src,title) {
		var e = story.findContainingTiddler(src); if (!e) return false;
		// don't fold tiddlers that are being edited!
		if(story.isDirty(e.getAttribute("tiddler"))) return false;
		var t=config.commands.collapseTiddler.getCollapsedTemplate();
		return false;
	getCollapsedTemplate: function() {
		if (readOnly&&store.tiddlerExists(this.webCollapsedTemplate))
			return this.webCollapsedTemplate;
			return this.collapsedTemplate
	saveTemplate: function(e) {
		if (e.getAttribute("savedTemplate")==undefined)

	// fold/unfold tiddler with suspend/resume of single/top/bottom-of-page mode
	display: function(title,t) {
		var opt=config.options;
		var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
		var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
		var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;

config.commands.expandTiddler = {
	text: "desplegar",
	tooltip: "Expand this tiddler",
	handler: function(event,src,title) {
		var e = story.findContainingTiddler(src); if (!e) return false;
		var t = e.getAttribute("savedTemplate");
		return false;

config.macros.collapseAll = {
	text: "desplegar todos",
	tooltip: "Collapse all tiddlers",
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
				if(story.isDirty(title)) return;
				var t=config.commands.collapseTiddler.getCollapsedTemplate();

			return false;

config.macros.expandAll = {
	text: "expandir todos",
	tooltip: "Expand all tiddlers",
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
				var t=config.commands.collapseTiddler.getCollapsedTemplate();
				if(tiddler.getAttribute("template")!=t) return; // re-display only if collapsed
				var t=tiddler.getAttribute("savedTemplate");
			return false;

config.commands.collapseOthers = {
	text: "foco",
	tooltip: "Expand this tiddler and collapse all others",
	handler: function(event,src,title) {
		var e = story.findContainingTiddler(src); if (!e) return false;
		story.forEachTiddler(function(title,tiddler) {
			if(story.isDirty(title)) return;
			var t=config.commands.collapseTiddler.getCollapsedTemplate();
			if (e==tiddler) t=e.getAttribute("savedTemplate");
		return false;

// {{{<<foldFirst>>}}} macro forces tiddler to be folded when *initially* displayed.
// Subsequent re-render does NOT re-fold tiddler, but closing/re-opening tiddler DOES cause it to fold first again.
config.macros.foldFirst = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
		var e=story.findContainingTiddler(place);
		if (e.getAttribute("foldedFirst")=="true") return; // already been folded once
		var title=e.getAttribute("tiddler")
		var t=config.commands.collapseTiddler.getCollapsedTemplate();
		e.setAttribute("foldedFirst","true"); // only when tiddler is first rendered
		return false;
Background: #fff
Foreground: #000
PrimaryPale: #fc8
PrimaryLight: #ccffcc
PrimaryMid: #009933
PrimaryDark: #006633
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
|''Descripción:''|Traducción de TiddlyWiki al español|
|''Autores:''|Sergio González y Pedro Domínguez (sgm214 (at) gmail (dot) com / alpedro (at) hotmail (dot) com)|
|''Correcciones:''|Dave Gifford y Ton van Rooijen (giff (at) giffmex (dot) org / tonsweb (at) xs4all (dot) nl)|
|''Fuente:''| |
|''Código:''| |
|''Fecha:''|October 2, 2010|
|''Comentarios:''|Por favor deje sus comentarios en |
|''Licencia:''|[[Creative Commons Attribution-ShareAlike 3.0 License|]] |

//-- Translateable strings

// Strings in "double quotes" should be translated; strings in 'single quotes' should be left alone

config.locale = "es"; // W3C language tag

if (config.options.txtUserName == 'YourName') // do not translate this line, but do translate the next line
merge(config.options,{txtUserName: "SuNombre"});

save: {text: "guardar", tooltip: "Guardar los cambios hechos en este TiddlyWiki", action: saveChanges},
sync: {text: "sincronizar", tooltip: "Sincronizar los cambios hechos con otros servidores y archivos TiddlyWiki", content: '<<sync>>'},
importTask: {text: "importar", tooltip: "Importar tiddlers y plugins de otros servidores y archivos TiddlyWiki", content: '<<importTiddlers>>'},
tweak: {text: "configurar", tooltip: "Cambiar la apariencia y comportamiento de TiddlyWiki", content: '<<options>>'},
upgrade: {text: "actualizar", tooltip: "Actualizar el código del núcleo de TiddlyWiki", content: '<<upgrade>>'},
plugins: {text: "complementos", tooltip: "Gestionar los complementos instalados", content: '<<plugins>>'}

// Options that can be set in the options panel and/or cookies
txtUserName: "Nombre de usuario con el que firmará lo editado",
chkRegExpSearch: "Permitir expresiones regulares en la búsqueda",
chkCaseSensitiveSearch: "Distinguir mayúscula/minúscula en la búsqueda",
chkIncrementalSearch: "Búsqueda incremental letra a letra",
chkAnimate: "Activar animaciones",
chkSaveBackups: "Mantener la copia de seguridad cuando se guardan los cambios",
chkAutoSave: "Guardar automáticamente los cambios",
chkGenerateAnRssFeed: "Crear una noticia RSS cuando se guardan los cambios",
chkSaveEmptyTemplate: "Crear una plantilla vacía cuando se guardan los cambios",
chkOpenInNewWindow: "Abrir los enlaces externos en una nueva ventana",
chkToggleLinks: "Al pulsar sobre un enlace de un tiddler, éste se cierra",
chkHttpReadOnly: "Ocultar la edición cuando se muestra en HTTP",
chkForceMinorUpdate: "No cambiar el nombre de usuario y fecha cuando se edita un tiddler",
chkConfirmDelete: "Preguntar antes de borrar un tiddler",
chkInsertTabs: "Usar el tabulador para crear texto en columnas en vez de servir para moverse entre apartados",
txtBackupFolder: "Nombre del directorio en que se guardan las copias de seguridad",
txtMaxEditRows: "Número máximo de filas en los recuadros de edición",
txtTheme: "Nombre de tema para utilizar",
txtFileSystemCharSet: "Juego de caracteres por defecto para guardar los cambios (sólo Firefox/Mozilla)"});

customConfigError: "Hubo problemas al cargar los complementos. Mire el Gestor de Complementos para m?s detalles",
pluginError: "Error: %0",
pluginDisabled: "No ejecutado porque está inhabilitado en la etiqueta 'systemConfigDisable'",
pluginForced: "Ejecutado porque lo fuerza la etiqueta 'systemConfigForce'",
pluginVersionError: "No ejecutado porque este complemento necesita una versión más moderna de TiddlyWiki",
nothingSelected: "No hay nada seleccionado. Debe marcar uno o más primero",
savedSnapshotError: "Parece que este TiddlyWiki se ha guardado incorrectamente. Por favor mire para más detalles",
subtitleUnknown: "(desconocido)",
undefinedTiddlerToolTip: "El tiddler '%0' no existe todavía",
shadowedTiddlerToolTip: "El tiddler '%0' no existe todavía, pero tiene un valor oculto definido previamente",
tiddlerLinkTooltip: "%0 - %1, %2",
externalLinkTooltip: "Enlace externo a %0",
noTags: "No hay tiddlers sin etiquetas",
notFileUrlError: "Debe guardar este TiddlyWiki en un archivo antes de que pueda guardar los cambios",
cantSaveError: "No se pueden guardar los cambios. Algunas de las posibles causas pueden ser:\n- su navegador no permite guardar (Firefox, Internet Explorer, Safari and Opera funcionan bien si están correctamente configurados)\n- la ruta a su archivo TiddlyWiki tiene caracteres no válidos\n- El archivo HTML TiddlyWiki ha sido movido o renombrado",
invalidFileError: "El archivo original '%0' parece que no es un archivo TiddlyWiki válido",
backupSaved: "Copia de seguridad guardada",
backupFailed: "Error al guardar la copia de seguridad",
rssSaved: "Noticia RSS guardada",
rssFailed: "Error al guardar la noticia RSS",
emptySaved: "Plantilla en blanco guardada",
emptyFailed: "Error al guardar la plantilla en blanco",
mainSaved: "Archivo principal TiddlyWiki guardado",
mainFailed: "Error al guardar el archivo principal TiddlyWiki. Los cambios no se han guardado",
macroError: "Error en la macro <<\%0>>",
macroErrorDetails: "Error mientras se ejecutaba la macro <<\%0>>:\n%1",
missingMacro: "No existe esa macro",
overwriteWarning: "Un tiddler llamado '%0' ya existe. Elija OK si quiere sobrescribirlo",
unsavedChangesWarning: "¡ATENCIÓN! Hay cambios sin guardar en TiddlyWiki\n\nElija OK para guardarlos\nElija CANCELAR para descartarlos",
confirmExit: "--------------------------------\n\nHay cambios sin guardar en TiddlyWiki. Si prosigue perderá los cambios\n\n--------------------------------",
saveInstructions: "Guardar Cambios",
unsupportedTWFormat: "Formato de TiddlyWiki no soportado '%0'",
tiddlerSaveError: "Error al guardar el tiddler '%0'",
tiddlerLoadError: "Error al cargar el tiddler '%0'",
wrongSaveFormat: "No se puede guardar en el formato '%0'. Usando el formato estandar para guardarlo.",
invalidFieldName: "Nombre de apartado no válido %0",
fieldCannotBeChanged: "El apartado '%0' no se puede cambiar",
loadingMissingTiddler: "Intentando descargar el tiddler '%0' desde el servidor '%1' en:\n\n'%2' en el espacio de trabajo '%3'",
upgradeDone: "Actualización a la versión %0 completada\n\nPulse 'OK' para cargar la nueva versión de TiddlyWiki",
invalidCookie: "Cookie no válido '%0'"});

text: "cerrar",
tooltip: "cerrar el mensaje"});

config.messages.backstage = {
open: {text: "menu", tooltip: "Acceder al menu principal para gestionar TiddlyWiki"},
close: {text: "cerrar", tooltip: "Salir de menu"},
prompt: "menu: ",
decal: {
edit: {text: "editar", tooltip: "Editar el tiddler '%0'"}

config.messages.listView = {
tiddlerTooltip: "Pulse para ver el texto completo de este tiddler",
previewUnavailable: "(Vista previa no disponible)"

config.messages.dates.months = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre","Diciembre"];
config.messages.dates.days = ["Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"];
config.messages.dates.shortMonths = ["Ene", "Feb", "Mar", "Abr", "May", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"];
config.messages.dates.shortDays = ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"];
// suffixes for dates, eg "1ro","2do","3ro"..."30ro","31ro"
config.messages.dates.daySuffixes = ["ro","do","ro","to","to","to","mo","vo","no","mo",
"ro"]; = "am"; = "pm";


labelNoTags: "sin etiquetas",
labelTags: "etiquetas: ",
openTag: "Abrir etiqueta '%0'",
tooltip: "Mostrar tiddlers que tengan la etiqueta '%0'",
openAllText: "Abrir todos",
openAllTooltip: "Abrir todos estos tiddlers",
popupNone: "No abrir tiddlers que tengan por etiqueta '%0'"});

defaultText: "El tiddler '%0' no existe todavía. Haga doble click para crearlo",
defaultModifier: "(perdido)",
shadowModifier: "(tiddler oculto interno)",
dateFormat: "DD MMM YYYY", // use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D
createdPrompt: "creado"});

tagPrompt: "Escriba etiquetas separadas por espacios, [[use dobles corchetes]] si es necesario, o añada alguna existente",
defaultText: "Escriba el texto para '%0'"});

text: "etiquetas",
tooltip: "Elija etiquetas ya existentes para añadirlas a este artículo",
popupNone: "No hay etiquetas definidas",
tagTooltip: "Añadir la etiqueta '%0'"});

{unit: 1024*1024*1024, template: "%0\u00a0GB"},
{unit: 1024*1024, template: "%0\u00a0MB"},
{unit: 1024, template: "%0\u00a0KB"},
{unit: 1, template: "%0\u00a0B"}

label: "búsqueda",
prompt: "Búsqueda en este TiddlyWiki",
accessKey: "F",
successMsg: "%0 tiddlers encontrados que concuerden con %1",
failureMsg: "No hay tiddlers que concuerden con %0"});

label: "etiquetado: ",
labelNotTag: "Sin etiquetas",
tooltip: "Listado de tiddlers etiquetados con '%0'"});

dateFormat: "DD MMM YYYY"});// use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D

tooltip: "Mostrar los tiddlers etiquetados con '%0'",
noTags: "No hay tiddlers sin etiquetas"});

config.macros.list.all.prompt = "Todos los tiddlers ordenados alfabéticamente";
config.macros.list.missing.prompt = "Tiddlers que tienen enlaces a ellos pero no están definidos";
config.macros.list.orphans.prompt = "Tiddlers que no están enlazados con otros, ni otros los enlazan";
config.macros.list.shadowed.prompt = "Tiddlers ocultos con contenidos predefinidos";
config.macros.list.touched.prompt = "Tiddlers que no han sido modificados localmente";

label: "cerrar todo",
prompt: "Cerrar todos los tiddlers mostrados (excepto los que están siendo editados)"});

label: "vista permanente",
prompt: "Enlazar con una URL que recoge todos los tiddlers mostrados actualmente"});

label: "guardar cambios",
prompt: "Guardar todos los tiddlers editados previamente",
accessKey: "S"});

label: "nuevo tiddler",
prompt: "Crear un nuevo tiddler",
title: "Nuevo Tiddler",
accessKey: "N"});

label: "nuevo diario",
prompt: "Crear un nuevo tiddler con la fecha y hora actual",
accessKey: "J"});

wizardTitle: "Configurar opciones avanzadas",
step1Title: "Estas opciones se guardarán en una cookie en su navegador",
step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Mostrar opciones desconocidas</input>",
unknownDescription: "//(desconocido)//",
listViewTemplate: {
columns: [
{name: 'Option', field: 'option', title: "Opción", type: 'String'},
{name: 'Description', field: 'description', title: "Descripción", type: 'WikiText'},
{name: 'Name', field: 'name', title: "Nombre", type: 'String'}
rowClasses: [
{className: 'lowlight', field: 'lowlight'}

wizardTitle: "Configurar complementos",
step1Title: "Complementos que están activados",
step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
skippedText: "(Este complemento no ha sido ejecutado porque se cargá al inicio)",
noPluginText: "No hay complementos instalados",
confirmDeleteText: "¿Está seguro que quiere borrar estos complementos:\n\n%0?",
removeLabel: "quitar la etiqueta de systemConfig",
removePrompt: "Quitar la etiqueta systemConfig",
deleteLabel: "borrar",
deletePrompt: "Borrar estos artículos para siempre",
listViewTemplate: {
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Description', field: 'Description', title: "Descripción", type: 'String'},
{name: 'Version', field: 'Version', title: "Versión", type: 'String'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Tamaño", type: 'Size'},
{name: 'Forced', field: 'forced', title: "Forzado", tag: 'systemConfigForce', type: 'TagCheckbox'},
{name: 'Disabled', field: 'disabled', title: "Deshabilitado", tag: 'systemConfigDisable', type: 'TagCheckbox'},
{name: 'Executed', field: 'executed', title: "Cargado", type: 'Boolean', trueText: "Si", falseText: "No"},
{name: 'Startup Time', field: 'startupTime', title: "Al inicio", type: 'String'},
{name: 'Error', field: 'error', title: "Estado", type: 'Boolean', trueText: "Error", falseText: "OK"},
{name: 'Log', field: 'log', title: "Registro", type: 'StringList'}
rowClasses: [
{className: 'error', field: 'error'},
{className: 'warning', field: 'warning'}

moreLabel: "más",
morePrompt: "Mostrar más comandos",
lessLabel: "menos",
lessPrompt: "Ocultar comandos adicionales",
separator: "|"

label: "actualizar",
prompt: "Actualizar la vista de todo TiddlyWiki"

readOnlyWarning: "No puede importar a un archivo TiddlyWiki de sólo lectura. Pruebe a abrirlo desde un archivo:// URL",
wizardTitle: "Importar tiddlers de otro archivo o servidor",
step1Title: "Primer paso: Localice el servidor o el archivo TiddlyWiki",
step1Html: "Indique el tipo de servidor: <select name='selTypes'><option value=''>Elija...</option></select><br>Escriba la URL o la ruta aquí: <input type='text' size=50 name='txtPath'><br>...o navegue hasta un archivo: <input type='file' size=50 name='txtBrowse'><br><hr>...o elija una fuente predefinida: <select name='selFeeds'><option value=''>Elige...</option></select>",
openLabel: "abrir",
openPrompt: "Abrir la conexión a este archivo o servidor",
statusOpenHost: "Accediendo al anfitrión",
statusGetWorkspaceList: "Obteniendo el listado de espacios de trabajo",
step2Title: "Segundo paso: Elegir el espacio de trabajo",
step2Html: "Escriba el nombre de un espacio de trabajo: <input type='text' size=50 name='txtWorkspace'><br>...o seleccione uno: <select name='selWorkspace'><option value=''>Elegir...</option></select>",
cancelLabel: "cancelar",
cancelPrompt: "Cancelar esta importación",
statusOpenWorkspace: "Accediendo al espacio de trabajo",
statusGetTiddlerList: "Obteniendo el listado de tiddlers disponibles",
errorGettingTiddlerList: "Error al obtener la lista de tiddlers, pulsa Cancelar para intentarlo de nuevo",
step3Title: "Tercer paso: Elegir los tiddlers que quiere importar",
step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Mantener estos tiddlers enlazados a este servidor para poder sincronizar los cambios posteriores</input><br><input type='checkbox' name='chkSave'>Guardar los datos de este servidor en un tiddler con etiqueta 'systemServer' cuyo nombre será:</input> <input type='text' size=25 name='txtSaveTiddler'>",
importLabel: "importar",
importPrompt: "Importar estos tiddlers",
confirmOverwriteText: "¿Está seguro de que quiere sobrescribir estos tiddlers:\n\n%0?",
step4Title: "Cuarto paso: Importar %0 tiddler(s)",
step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
doneLabel: "hecho",
donePrompt: "Cerrar el asistente",
statusDoingImport: "Importando tiddlers",
statusDoneImport: "Todos los tiddlers se importaron",
systemServerNamePattern: "%2 en %1",
systemServerNamePatternNoWorkspace: "%1",
confirmOverwriteSaveTiddler: "El tiddler '%0' ya existe. Pulse en 'OK' para sobrescribirlo con el que hay en este servidor, o 'Cancel' para dejarlo sin modificar",
serverSaveTemplate: "|''Tipo:''|%0|\n|''URL:''|%1|\n|''Espacio de trabajo:''|%2|\n\nEste tiddler se creó automáticamente para recoger todos los datos de este servidor",
serverSaveModifier: "(Sistema)",
listViewTemplate: {
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Tamaño", type: 'Size'},
{name: 'Tags', field: 'tags', title: "Etiquetas", type: 'Tags'}
rowClasses: [

wizardTitle: "Actualizar el código del núcleo de TiddlyWiki",
step1Title: "Actualizar o reparar TiddlyWiki a la última versión",
step1Html: "Está a punto de actualizar el código del núcleo de TiddlyWiki ala última versión (desde <a href='%0' class='externalLink' target='_blank'>%1</a>). El contenido de TiddlyWiki permanecerá tras la actualización.<br><br>Las actualizaciones del núcleo interfieren con complementos antiguos. Si tiene problemas tras la actualización, mire <a href='' class='externalLink' target='_blank'></a>",
errorCantUpgrade: "No se puede actualizar. Sólo se pueden actualizar archivos TiddlyWiki que están guardados localmente (disco duro, etc.)",
errorNotSaved: "Debe guardar los cambios antes de poder actualizar",
step2Title: "Confirmar los detalles de la actualización",
step2Html_downgrade: "Está a punto de retroceder en su versión de TilldyWiki, pasará a la versión anterior %0 desde %1.<br><br>Retroceder a una versiún anterior del núcleo no es recomendable",
step2Html_restore: "Este archivo TiddlyWiki parece que usa la última versión disponible del núcleo (%0).<br><br>Puede seguir con la actualización si quiere asegurarse que su núcleo no está estropeado o dañado",
step2Html_upgrade: "Está a punto de actualizar TiddlyWiki a la versión %0 desde %1",
upgradeLabel: "actualizar",
upgradePrompt: "Preparándose para el proceso de actualización",
statusPreparingBackup: "Preparando la copia de seguridad",
statusSavingBackup: "Guardando la copia de seguridad",
errorSavingBackup: "Hubo poblemas al guardar la copia de seguridad",
statusLoadingCore: "Cargando el código del núcleo",
errorLoadingCore: "Error al cargar el código del núcleo",
errorCoreFormat: "Error con el código del nuevo núcleo",
statusSavingCore: "Guardando el código del nuevo núcleo",
statusReloadingCore: "Recargando el código del nuevo núcleo",
startLabel: "empezar",
startPrompt: "Empezar el proceso de actualización",
cancelLabel: "cancelar",
cancelPrompt: "Cancelar la actualización",
step3Title: "Actualización cancelada",
step3Html: "Ha cancelado el proceso de actualización"

listViewTemplate: {
columns: [
{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Server Type', field: 'serverType', title: "Tipo de servidor", type: 'String'},
{name: 'Server Host', field: 'serverHost', title: "Servidor anfitrión", type: 'String'},
{name: 'Server Workspace', field: 'serverWorkspace', title: "Espacio de trabajo en el servidor", type: 'String'},
{name: 'Status', field: 'status', title: "Estado de la sincronización", type: 'String'},
{name: 'Server URL', field: 'serverUrl', title: "URL del servidor", text: "Ver", type: 'Link'}
rowClasses: [
buttons: [
{caption: "Sincronizar estos tiddlers", name: 'sync'}
wizardTitle: "Sincronizar con servidores externos y archivos",
step1Title: "Elija los tiddlers que quieres sincronizar",
step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
syncLabel: "sinc",
syncPrompt: "Sincronizar estos tiddlers",
hasChanged: "Modificado mientras no estaba desconectado",
hasNotChanged: "Sin cambios mientras estaba desconectado",
syncStatusList: {
none: {text: "...", display:null, className:'notChanged'},
changedServer: {text: "Modificado en el servidor", display:null, className:'changedServer'},
changedLocally: {text: "Modificado mientras estaba desconectado", display:null, className:'changedLocally'},
changedBoth: {text: "Modificado mientras estaba desconectado y también en el servidor", display:null, className:'changedBoth'},
notFound: {text: "No está en el servidor", display:null, className:'notFound'},
putToServer: {text: "Guardada la actualización en el servidor", display:null, className:'putToServer'},
gotFromServer: {text: "Actualización obtenida del servidor", display:null, className:'gotFromServer'}

text: "cerrar",
tooltip: "Cerrar este tiddler"});

text: "cerrar otros",
tooltip: "Cerrar todos los otros tiddlers"});

text: "editar",
tooltip: "Editar este tiddler",
readOnlyText: "ver",
readOnlyTooltip: "Ver el código de este tiddler"});

text: "hecho",
tooltip: "Guardar los cambios hechos en este tiddler"});

text: "cancelar",
tooltip: "Cancelar los cambios hechos en este tiddler",
warning: "¿Está seguro que quiere salir sin guardar los cambios en '%0'?",
readOnlyText: "hecho",
readOnlyTooltip: "Vista normal de este tiddler"});

text: "borrar",
tooltip: "Borrar este tiddler",
warning: "¿Está seguro de que quiere borrar '%0'?"});

text: "enlacepermanente",
tooltip: "Enlace permanente para este tiddler"});

text: "referencias",
tooltip: "Mostrar tiddlers que enlazan con éste",
popupNone: "Sin referencias"});

text: "ir a",
tooltip: "Ir a otro tiddler abierto"});

text: "sinc",
tooltip: "Controlar la sincronización de este tiddler con un servidor o archivo externo",
currentlySyncing: "<div>Sincronizando ahora mediante <span class='popupHighlight'>'%0'</span> a:</"+"div><div>anfitrión: <span class='popupHighlight'>%1</span></"+"div><div>espacio de trabajo: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
notCurrentlySyncing: "Ahora no se está sincronizando",
captionUnSync: "Parar la sincronización para este tiddler",
chooseServer: "Sincronizar este tiddler con otro servidor:",
currServerMarker: "\u25cf ",
notCurrServerMarker: " "});

text: "apartados",
tooltip: "Mostrar los apartados extras de este tiddler",
emptyText: "No hay apartados extras para este tiddler",
listViewTemplate: {
columns: [
{name: 'Field', field: 'field', title: "Apartado", type: 'String'},
{name: 'Value', field: 'value', title: "Valor", type: 'String'}
rowClasses: [
buttons: [

DefaultTiddlers: "[[ParaEmpezar]]",
MainMenu: "[[ParaEmpezar]]\n\n\n^^~TiddlyWiki versión <<version>>\n(c) 2010 [[UnaMesa|]]^^",
ParaEmpezar: "Para empezar con este archivo TiddlyWiki vacío, necesitará modificar los siguientes tiddlers (en este contexto podemos entender que un tiddler es un artículo):\n* SiteTitle & SiteSubtitle: El título y subtítulo del sitio, como se muestra arriba (tras guardalo, también aparecerá en el título de la ventana del navegador)\n* MainMenu: El menú (normalmente a la izquierda)\n* DefaultTiddlers: Contiene los nombres de los tiddlers que por defecto quiere que se muestren cuando TiddlyWiki se abre\nTambién deberáa cambiar el nombre de usuario con el que firmará sus escritos: <<option txtUserName>>",
SiteTitle: "Mi TiddlyWiki",
SiteSubtitle: "un diario web personal, reutilizable y no lineal",
SiteUrl: "",
OptionsPanel: "Estas opciones personales de visualización de TiddlyWiki se guardan en el navegador\n\nSu nombre de usuario con el que firmará tus escritos. Escríbalo como si fuera una PalabraWiki (ej JuanEscribió)\n<<option txtUserName>>\n\n<<option chkSaveBackups>> Guardar copia de seguridad\n<<option chkAutoSave>> Autoguardado\n<<option chkRegExpSearch>> Buscar expresiones regulares\n<<option chkCaseSensitiveSearch>> Buscar distinguiendo mayúsculas\n<<option chkAnimate>> Permitir animaciones\n\n----\nMirar también las [[OpcionesAvanzadas|AdvancedOptions]]",
SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "opciones \u00bb" "Cambiar las opciones avanzadas de TiddlyWiki">>',
SideBarTabs: '<<tabs txtMainTab "Historial" "Historial" TabTimeline "Todo" "Todos los tiddlers" TabAll "Etiquetas" "Todas las etiquetas" TabTags "Más" "Más listados" TabMore>>',
TabMore: '<<tabs txtMoreTab "Perdidos" "Tiddlers perdidos" TabMoreMissing "Huérfanos" "Tiddlers huérfanos" TabMoreOrphans "Ocultos" "Tiddlers ocultos" TabMoreShadowed>>'

AdvancedOptions: "Este tiddler oculto permite controlar bastantes opciones avanzadas",
ColorPalette: "Los valores en este tiddler oculto configuran el esquema de colores de la interfaz de ~TiddlyWiki",
DefaultTiddlers: "Los tiddlers listados en este tiddler oculto son que se mostrarán por defecto cuando se abre ~TiddlyWiki",
EditTemplate: "La plantilla HTML en este tiddler oculto indica cómo se muestran los tiddlers mientras se editan",
GettingStarted: "Este tiddler oculto contiene las instrucciones básicas de utilización",
ImportTiddlers: "Este tiddler oculto permite acceder a los tiddlers que se están importando",
MainMenu: "Este tiddler oculto contiene los apartados que se muestran en el menú principal de la columna de la izquierda de la pantalla",
MarkupPreHead: "Este tiddler se inserta al principio de la sección <head> del archivo HTML de TiddlyWiki",
MarkupPostHead: "Este tiddler se inserta al final de la sección <head> del archivo HTML de TiddlyWiki",
MarkupPreBody: "Este tiddler se inserta al principio de la sección <body> del archivo HTML de TiddlyWiki",
MarkupPostBody: "Este tiddler se inserta al final de la sección <body> del archivo HTML de TiddlyWiki, justo antes del bloque de script",
OptionsPanel: "Este tiddler oculto contiene los apartados de la opción desplegable Opciones, de la barra de la derecha",
PageTemplate: "La plantilla HTML en este tiddler oculto determina la estructura general de ~TiddlyWiki",
PluginManager: "Este tiddler oculto permite acceder al Gestor de Complementos",
SideBarOptions: "Este tiddler oculto contiene lo que hay en el apartado de opciones de la barra de la derecha",
SideBarTabs: "Este tiddler oculto contiene lo que hay en el panel de pestañas de la barra de la derecha",
SiteSubtitle: "Este tiddler oculto contiene la segunda parte del título de la página",
SiteTitle: "Este tiddler oculto contiene la primera parte del título de la página",
SiteUrl: "Este tiddler oculto debería contener la dirección completa URL en la que se publica",
StyleSheetColours: "Este tiddler oculto contiene las definiciones para CSS relacionadas con el color de los elementos de la página",
StyleSheet: "En este tiddler oculto se pueden poner definiciones para CSS personales",
StyleSheetLayout: "Este tiddler oculto contiene las definiciones para CSS relacionadas con la distribución de los elementos de la página. ''NO EDITE ESTE TIDDLER'', si quiere hacer alguna modificación hágalo en el tiddler oculto StyleSheet",
StyleSheetLocale: "Este tiddler oculto contiene las definiciones para CSS relacionadas con la traducción al idioma local",
StyleSheetPrint: "Este tiddler oculto contiene las definiciones para CSS relacionadas con la impresión",
TabAll: "Este tiddler oculto contiene todo lo que hay en la pestaña 'Todo' de la barra de la derecha",
TabMore: "Este tiddler oculto contiene todo lo que hay en la pestaña 'Más' de la barra de la derecha",
TabMoreMissing: "Este tiddler oculto contiene todo lo que hay en la pestaña 'Perdidos' de la barra de la derecha",
TabMoreOrphans: "Este tiddler oculto contiene todo lo que hay en la pestaña 'Huérfanos' de la barra de la derecha",
TabMoreShadowed: "Este tiddler oculto contiene todo lo que hay en la pestaña 'Ocultos' de la barra de la derecha",
TabTags: "Este tiddler oculto contiene todo lo que hay en la pestaña 'Etiquetas' de la barra de la derecha",
TabTimeline: "Este tiddler oculto contiene todo lo que hay en la pestaña 'Historial' de la barra de la derecha",
ToolbarCommands: "Este tiddler oculto indica los comandos que deben mostrarse en la barra de herramientas de cualquier tiddler",
ViewTemplate: "Este tiddler oculto contiene la plantilla HTML que indica cómo se muestran los tiddlers"

"Conocimientos sobre hardware"
"Conocimientos de ofimática"
"Sistemas Operativos"
"Conocimientos de programación"
"Software Libre"
"Software científico"
"Conocimientos de servidores"
"Otros conocimientos"
Luis Javier González Caballero

Calle Alfonso III 9 - 24193
Villaquilambre, LEON

Teléfono: +034 639 053335
Si bién comencé mi vida estudiantil en el colegio público de 'El Cid', los últimos años estrené el nuevo centro de 'La Palomera'. 
@@color(OrangeRed ):''1996:    ''@@ [[S.E.M.I. Jefe de Obra]]
@@color(OrangeRed ):''1997:    ''@@ [[Metrolico. Técnico de campo]]
@@color(OrangeRed ):''2000:    ''@@ [[Metrolico. Técnico de redes]]
@@color(OrangeRed ):''2001:    ''@@ [[Metrolico. CAU Caja España]]
@@color(OrangeRed ):''2010:    ''@@ [[T-Systems. Responsable del CAU]]
!Formación oficial
Mi trayectoria formativa oficial ha sido la siguiente:

@@color(OrangeRed ):''1981: ''@@ [[Educación General Básica]]
@@color(OrangeRed ):''1985: ''@@ [[B.U.P. y C.O.U.]]
@@color(OrangeRed ):''1994: ''@@ [[Ingeniero Técnico Industrial]]
@@color(OrangeRed ):''2007: ''@@ [[Ingeniero Técnico Informático]]
@@color(OrangeRed ):''2012: ''@@ [[Ingeniero en Informática]]

!Otros cursos
Además de estas titulaciones oficiales, también he realizado innumerables cursos:

''1993:'' Gestión Económico y Financiera. Cámara de Comercio de León
''1995:'' Environmental implications of society's use of water. Utrecht University - Summer Course

''__Cursos de la Fundacion de la Universidad Politécnica de Madrid:__''
>''1997:'' Análisis de Sistemas de Información
>''1997:'' Las Comunicaciones en la Empresa

''2005:'' Autocad
''2005:'' Corel Draw
!@@color(DarkBlue)://Herramientas para gente altamente productiva//@@
"Programadas en java ó se abren con un navegador"
"Se ejecutan en windows"
!Equipos Informáticos
!!Equipos de sobremesa
En la primera etapa en Metrolico, uno de mis trabajos fué la instalación y reparación de ordenadores personales. Entre mis tareas se encontraban:
*Montaje de ordenadores
*Diagnóstico de averías
*Sustitución de piezas defectuosas

También he montado los servidores de DELL en rack para varios clientes de Metrolico, entre los que se econtraba Telefónica:
*Montaje de los servidores dentro del Rack
*Instalación del sistema operativo basado en Windows Server

Para las oficinas nuevas de las entidades bancarias con las que teníamos contrato, también me encargaba de tareas relacionadas con las redes:
*Control de la instalación del cableado
*Pruebas de la calidad de la instalación
*Instalación del armario rack
*Instalación del router, switch y hub en el rack
*Instalación del servidor en el cuarto técnico
*Instalación de los equipos de sobremesa en sus ubicaciones definitivas
*Pruebas de la oficina
No hace falta decir que éste es mi idioma materno.

Hace poco me hicieron una prueba en BULATS y el resultado fue que tengo un nivel de inglés C1. Si bien no me considero biligüe, puedo participar sin problemas en cursos o reuniones en éste idioma.
Como muestra, a veces después de leer un texto científico, no sabría decir si lo he hecho en inglés o en español.

Hace unos años me matriculé en la Escuela de Idiomas. Tengo 2 cursos de Alemán en la Escuela de Idiomas de León. Mis capacidades se reducen a la lectura de textos sencillos.
En el año 1994 finalizo la carrera de Ingeniería Técnica Industrial en la [[Universidad de León|]].
Escogí la especialidad de Electricidad y Electrónica.

Mi paso por //Industriales// coincidió con la etapa de apogeo de la Escuela. Una etapa marcada por la alta dificultad de las materias impartidas. Una etapa en la que la ingeniería era un arte y en la que no eras ingeniero por tu formación sino de vocación. En esos días no podías terminar la carrera de forma individual. Era imprescindible hacer una piña con el resto de tus compañeros, compartir apuntes, buscarte la vida... pues los libros y las clases solo suponían la mitad del camino. Había conocimientos no escritos que tenías que saber.

La //Escuela de Industriales// aún no estaba en el Campus de la Universidad con el resto de las carreras, sino detrás de los jardines de San Francisco, en el centro de León. En el mismo edificio se impartían las dos especialidades de Industriales  y la carrera de Minas.
En el año 2007 finalizo la carrera de Ingeniería Técnica Informática por la [[UNED|]]
Escojo la especialidad de Informática de Sistemas.

Siempre he tenido una gran inquitud por aprender. Por esta razón a la vez que desarrollo mi carrera profesional como ingeniero trabajando primero en Cantabria y luego en León, me matriculo en la UNED. Lo que me impulsó en un principio fue la aplicacion de la informática al campo de la Ingeniería Industrial. 

La experiencia en la UNED fue radicalmente opuesta. Si en industriales la colaboracion entre alumnos se hacía imprescindible, la UNED se centraba mucho más en el esfuerzo y superación personales. Desarrolló profundamente mís cualidades de autoaprendizaje. 

Recuerdo los viajes desde León a Palencia con agrado. En esta época conocí a mi mujer Camino que me apoyó, acompañándome a los exámenes esperando pacientemente a que terminara.
El mismo año que termino informática de sistemas, me matriculo en cuarto curso de la superior. Sigo el mismo ritmo que en la técnica y termino las asignaturas enseguida. 

Me apunto a un proyecto de robótica con el kit de Lego, Mindstorms programado en java en el que estoy inmerso en la actualidad. Estoy implementando los vehículos de Braitenberg con dicho kit, programando un simulador para PC. 
!Programadas en java
:Heramienta para crear mapas mentales. Sencillísima de usar. Admite fórmulas y macros en groovy
:Editor de textos para programadores
:Herramienta para crear gráficos rápidamente. Muy sencilla
:Editor de mapas conceptuales
:Wiki en un solo fichero. Ideal para trabajar Offline.
!Software libre que he usado
:Editor de textos en formato Latex extremadamente sencillo de utilizar
:Construcción de mapas mentales
:Construcción de mapas conceptuales
;CMAP tools
:Construccion de mapas conceptuales
:Programa de dibujo de diagramas
:Editor gráfico
:Maquetado de revistas y carteles
:Hoja de cálculo con una nueva filosofía de trabajo
:Suite Ofimática
:Editor de Ontogogías y Web Semántica
:Navegador gratuito, altamente configurable
;Thunderbird Lightning
:Correo electrónico y Sistema de información personal
:Generación de equipos y redes virtuales
* Colaborador clave en la creación del ''Centro de Control de Cajeros'', punto de entrada de las incidencias, lo cual supuso una reducción en casi un 30% de los avisos pasados a los técnicos de campo, con un ahorro de, aproximadamente, 30.000 euros al año. (2000)

* Puesta en marcha del ''CAU de Caja España''. Dimensionamiento inicial e inicio del servicio con 6 personas. El proyecto consistió en la realización de un programa que recibía el status de todos los cajeros de la entidad, los procesaba y generaba la información para una primera intervención de los técnicos; posteriormente generaba una serie de informes. Con 65.000 llamadas y 180.000 € de coste el primer año. (2001)

* Implementación del programa de calidad interno, lo que supuso un aumento en la satisfacción del cliente en un 10%.

<<cloud DiscoveryPackage NavigationPackage systemConfig excludeLists excludeSearch temporary MochaTheme>>

^^© Luis J Gonzalez
!@@color(DarkBlue)://Herramientas para gente altamente productiva//@@
En el año 2001 Caja España inicia la creación de un [[Centro de Atención|CAU de Caja España]] para sus oficinas. Como objetivo principal está ser en punto central de comunicación de sus oficinas y departamentos con la entidad.
Para ello, cuenta con la ayuda de Metrolico que ,e asigna desde un principio a este proyecto. 

Se realiza el dimensionamiento inicial, así como los procedimientos opertivos y herramientas a utilizar.

Este centro va creciendo a medida que asume más y más funciones hasta llegar a tener 20 personas.
En 1997 comienzo a trabajar en Metrolico, empresa de mantenimiento informático del grupo LICO. En León su cliente principal es Caja España.

Inicialmente estoy como técnico de campo reparando equipos informáticos, fundamentalmente de la entidad bancaria.

Posteriormente paso a llevar la instalación en los ordenadores de los clientes de Caja España de los servicios de banca a distancia de la entidad financiera mencionada (que denominaba Caja España On Line). 

En 2000 paso a ser [[técnico de redes|Metrolico. Técnico de redes]]. Como tareas fundamentales se encontraba la instalación de equipos de redes, desde el cableado hasta la puesta en marcha de la red incluyendo routers y hubs.
Después de llevar en Metrolico desde el año 1997 como [[técnico de campo|Metrolico. Técnico de campo]], desde el año 2000 comienzo a trabajar en el tema de redes.

Las tareas icluyen todas las fases:
# Cableado del local.
# Instalación del Rack / Armario.
# Medición y Certificación de la velocidad de la red.
# Instalación y configuración de los equipos de red.

Uno de mis proyectos en esta época antes de comenzar con el [[CAU de Caja España|Metrolico. CAU Caja España]] fue el [[Centro de Control de Cajeros|Centro de Control de Cajeros]]. Se trataba de un punto de control que chequeaba todos los cajeros de la entidad bancaria, efectuaba un primer intento de solucionar los problemas que se presentaban para, en último extremo, enviar a los técnicos en el caso de que hiciera falta una actuación in situ.
<<closeAll>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
Last Updated: 
Copyright © 
!Microsoft Office
La suite ofimática que manejo con maestría incluso a nivel de programacion es, por supuesto, ''Microsoft Office''. Mi dominio sobre ella es completo:
*Word: generación de documentos profesionales
*Excel: control total, generación de dashboards, programación de plantillas profesionales
*Access: diseño y programación de bases de datos
*Powerpoint: diseño de presentaciones profesionales
*Outlook: Control del entorno, generación de reglas y control del calendario y agendas.
*Visio: generación de diagramas sencillos

Otras suites con las que también he trabajado son:
*Open Office
*Libre Office
*Kingsoft Office
*Lotus Smartsuite
*Feng Office
!Service Desk
*Service Manager

*~MuseScore: editor musical
<div id='header' class='header'>
<div class='headerShadow'>
<span class='searchBar' macro='search'></span>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>

<div id='mainMenu'>
<span refresh='content' tiddler='MainMenu'></span>
<span id='noticeBoard' refresh='content' tiddler='NoticeBoard'></span>

<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='MochaSideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
<div id='contentFooter' refresh='content' tiddler='contentFooter'></div>
''Coordinador Service Desk'' con más de 15 años de experiencia adquirida principalmente en soporte y  gestión de incidencias en entornos corporativos, en especial en Banca.

Técnico Especialista dando soporte informático a usuarios de banca en entornos mixtos. Administración de sistemas Windows, configuración de hardware y software, escalado de los errores del aplicativo bancario a los programadores de nivel 2.

Responsable de la gestión diaria del Service Desk trabajando para lograr el nivel contratado de satisfacción de los clientes, la gestión óptima y eficiente de recursos y la priorización de paquetes de trabajo. Solida experiencia en entornos ITIL gestionando incidentes, cambios y problemas.

Manager creativo y adaptable con excelente ética de trabajo y recursos innovadores para dar soluciones adecuadas.
Experiencia en la toma de decisiones y gran comunicador.

Probada capacidad de liderazgo incluyendo la motivación y dirección del equipo. Capacitado para la multitarea y el trabajo en equipo en entornos multidisciplinares.

Gran capacidad de aprendizaje, alcanzando el rendimiento óptimo en cortos plazos. 
!Los lenguajes de programación con los que he trabajado son
*Modula 2
*Ensamblador de varios microprocesadores
*Visual Basic y Visual Basic para Aplicaciones 

!Otros lenguajes que he utilizado
[[Centro de Control de Cajeros]]
[[CAU de Caja España]]
En 1.995 consigo mi primer trabajo en [[S.E.M.I.|]], una empresa del grupo ACS dedicada a la construcción de infraestructuras eléctricas, de comunicaciones y de transporte.
Ese año, la empresa comienza la construcción de una línea eléctrica de alta tensión en Cantabria, el la Vega del Pas y necesitan un jefe de obra.
Me asiento en San Vicente de Toranzo durante casi 2 años, tiempo durante el que me sumerjo tanto en Cantabria como en el mundo de la Obra Civil, desarrollando esta impresionante obra.
Se trata de una linea de alta tensión: 800.000 Voltios, para Red Electrica Española y cruza en un gran vado la carretera N-623.
Una vez finalizada la obra en el año 1997, me voy de la empresa. Este sector no es el que quiero escoger para mi desarrollo profesional. No me encuentro cómodo y tengo carencias importantes para mi evolución.
|Author|Eric Shulman|
|Description|extend core search function with additional user-configurable options|
Adds extra options to core search function including selecting which data items to search, enabling/disabling incremental key-by-key searches, and generating a ''list of matching tiddlers'' instead of immediately displaying all matches.  This plugin also adds syntax for rendering 'search links' within tiddler content to embed one-click searches using pre-defined 'hard-coded' search terms.
>see [[SearchOptionsPluginInfo]]
<<tiddler SearchOptions>>
<<option chkSearchResultsOptions>> Include {{{options...}}} slider in "search again" form
2011.04.08 3.0.10 fixed typo in CSS in formatSearchResults_buttons().  Restore missing options in Configuration section.
|please see [[SearchOptionsPluginInfo]] for additional revision details|
2005.10.18 1.0.0 Initial Release
version.extensions.SearchOptionsPlugin= {major: 3, minor: 0, revision: 10, date: new Date(2011,3,18)};
var defaults={
	chkSearchTitles:	true,
	chkSearchText:		true,
	chkSearchTags:		true,
	chkSearchFields:	true,
	chkSearchTitlesFirst:	true,
	chkSearchList:		true,
	chkSearchHighlight:	true,
	chkSearchListTiddler:	false,
	chkSearchByDate:	false,
	chkIncrementalSearch:	true,
	chkSearchShadows:	true,
	chkSearchOpenTiddlers:	false,
	chkSearchExcludeTags:	true,
	txtSearchExcludeTags:	'excludeSearch',
	txtIncrementalSearchDelay:	500,
	txtIncrementalSearchMin:	3
}; for (var id in defaults) if (config.options[id]===undefined)
if ("SearchResults"; // note: not a cookie!"\xa0"; // a little bit of space just because it looks better
// // searchLink: {{{[search[text to find]] OR [search[text to display|text to find]]}}}
config.formatters.push( {
	name: "searchLink",
	match: "\\[search\\[",
	lookaheadRegExp: /\[search\[(.*?)(?:\|(.*?))?\]\]/mg,
	prompt: "search for: '%0'",
	handler: function(w)
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var label=lookaheadMatch[1];
			var text=lookaheadMatch[2]||label;
			var prompt=this.prompt.format([text]);
			var btn=createTiddlyButton(w.output,label,prompt,
			w.nextMatch = this.lookaheadRegExp.lastIndex;
// // incremental search uses option settings instead of hard-coded delay and minimum input values
fn=fn.toString().replace(/500/g, "config.options.txtIncrementalSearchDelay||500");
fn=fn.toString().replace(/> 2/g, ">=(config.options.txtIncrementalSearchMin||3)");
// // REPLACE for option to "show search results in a list"
//{{{ = function(text,useCaseSensitive,useRegExp)
	var co=config.options; // abbrev
	var re=new RegExp(useRegExp ? text : text.escapeRegExp(),useCaseSensitive ? "mg" : "img");
	if (config.options.chkSearchHighlight) highlightHack=re;
	var matches =,co.chkSearchByDate?"modified":"title","");
	if (co.chkSearchByDate) matches=matches.reverse(); // most recent first
	var q = useRegExp ? "/" : "'";
	if (!matches.length) {
		if (co.chkSearchListTiddler) discardSearchResults();
	} else {
		if (co.chkSearchList||co.chkSearchListTiddler) 
		else {
			var titles = []; for(var t=0; t<matches.length; t++) titles.push(matches[t].title);
			this.closeAllTiddlers(); story.displayTiddlers(null,titles);
			displayMessage([matches.length, q+text+q]));
	highlightHack = null;
// // REPLACE for enhanced searching/sorting options
//{{{ = function(searchRegExp,sortField,excludeTag,match)
	var co=config.options; // abbrev
	var tids = this.reverseLookup("tags",excludeTag,!!match,sortField);
	var opened=[]; story.forEachTiddler(function(tid,elem){opened.push(tid);});

	// eliminate tiddlers tagged with excluded tags
	if (co.chkSearchExcludeTags&&co.txtSearchExcludeTags.length) {
		var ex=co.txtSearchExcludeTags.readBracketedList();
		var temp=[]; for(var t=tids.length-1; t>=0; t--)
			if (!tids[t].tags.containsAny(ex)) temp.push(tids[t]);

	// scan for matching titles first...
	var results = [];
	if (co.chkSearchTitles) {
		for(var t=0; t<tids.length; t++) {
			if (co.chkSearchOpenTiddlers && !opened.contains(tids[t].title)) continue; 
			if(tids[t]!=-1) results.push(tids[t]);
		if (co.chkSearchShadows)
			for (var t in config.shadowTiddlers) {
				if (co.chkSearchOpenTiddlers && !opened.contains(t)) continue; 
				if ((!=-1) && !store.tiddlerExists(t))
					results.push((new Tiddler()).assign(t,config.shadowTiddlers[t]));
	// then scan for matching text, tags, or field data
	for(var t=0; t<tids.length; t++) {
		if (co.chkSearchOpenTiddlers && !opened.contains(tids[t].title)) continue; 
		if (co.chkSearchText && tids[t]!=-1)
		if (co.chkSearchTags && tids[t].tags.join(" ").search(searchRegExp)!=-1)
		if (co.chkSearchFields && store.forEachField!=undefined)
				function(tid,field,val) {
					if (!=-1) results.pushUnique(tids[t]);
				true); // extended fields only
	// then check for matching text in shadows
	if (co.chkSearchShadows)
		for (var t in config.shadowTiddlers) {
			if (co.chkSearchOpenTiddlers && !opened.contains(t)) continue; 
			if ((config.shadowTiddlers[t].search(searchRegExp)!=-1) && !store.tiddlerExists(t))
				results.pushUnique((new Tiddler()).assign(t,config.shadowTiddlers[t]));

	// if not 'titles first', or sorting by modification date,
	// re-sort results to so titles, text, tag and field matches are mixed together
	if(!sortField) sortField = "title";
	var bySortField=function(a,b){
		if(a[sortField]==b[sortField])return(0);else return(a[sortField]<b[sortField])?-1:+1;
	if (!co.chkSearchTitlesFirst || co.chkSearchByDate) results.sort(bySortField);

	return results;
// // HIJACK core {{{<<search>>}}} macro to add "report" and "simple inline" output
//{{{; = function(place,macroName,params)
	// if "report", use SearchOptionsPlugin report generator for inline output
	if (params[1]&&params[1].substr(0,6)=="report") {
		var keyword=params[0];
		var options=params[1].split("=")[1]; // split "report=option+option+..."
		var heading=params[2]?params[2].unescapeLineBreaks():"";
		var RegExp(keyword.escapeRegExp(),"img"),"title","excludeSearch");
		if (matches.length) wikify(heading+window.formatSearchResults(keyword,matches,options),place);
	} else if (params[1]) {
		var keyword=params[0];
		var heading=params[1]?params[1].unescapeLineBreaks():"";
		var seperator=params[2]?params[2].unescapeLineBreaks():", ";
		var RegExp(keyword.escapeRegExp(),"img"),"title","excludeSearch");
		if (matches.length) {
			var out=[];
			for (var m=0; m<matches.length; m++) out.push("[["+matches[m].title+"]]");
	} else,arguments);
// // SearchResults panel handling
setStylesheet(".searchResults { padding:1em 1em 0 1em; }","searchResults"); // matches std tiddler padding,matches,body) {

	function getByClass(e,c) { var d=e.getElementsByTagName("div");
		for (var i=0;i<d.length;i++) if (hasClass(d[i],c)) return d[i]; }
	var panel=createTiddlyElement(null,"div","searchPanel","searchPanel");
	var oldpanel=document.getElementById("searchPanel");
	if (!oldpanel) { // insert new panel just above tiddlers
		var da=document.getElementById("displayArea");
	} else { // if panel exists
		var oldwrap=getByClass(oldpanel,"searchResults");
		var newwrap=getByClass(panel,"searchResults");
		// if no prior content, just insert new content
		if (!oldwrap) oldpanel.insertBefore(newwrap,null);
		else {	// swap search results content but leave containing panel intact'block'; // unfold wrapper if needed
			var i=oldwrap.getElementsByTagName("input")[0]; // get input field
			if (i) { var pos=this.getCursorPos(i); i.onblur=null; } // get cursor pos, ignore blur
			panel=oldpanel; // use existing panel
	return panel;
},text,matches,body) {

	var wrap=createTiddlyElement(panel,"div",null,"searchResults");
	wrap.onmouseover = function(e){ addClass(this,"selected"); }
	wrap.onmouseout = function(e){ removeClass(this,"selected"); }
	// create toolbar: "abrir todos", "plegar/desplegar", "cerrar"
	var tb=createTiddlyElement(wrap,"div",null,"toolbar");
	var b=createTiddlyButton(tb, "abrir todos", "open all matching tiddlers", function() {
		story.displayTiddlers(null,this.getAttribute("list").readBracketedList()); return false; },"button");
	var list=""; for(var t=0;t<matches.length;t++) list+='[['+matches[t].title+']] ';
	var b=createTiddlyButton(tb, "plegar", "toggle display of search results", function() {; return false; },"button");
	var b=createTiddlyButton(tb, "cerrar", "dismiss search results",	function() {; return false; },"button");
	createTiddlyText(createTiddlyElement(wrap,"div",null,"title"),"Search for: "+text); // title
	wikify(body,createTiddlyElement(wrap,"div",null,"viewer")); // report
	return panel;
},pos) {
	var panel=document.getElementById("searchPanel");
	var i=panel.getElementsByTagName("input")[0];
	if (show &&"block") { // if shown, grab focus, restore cursor
		if (i&&this.stayFocused()) { i.focus(); this.setCursorPos(i,pos); }
	if(!config.options.chkAnimate) {"block":"none";
		if (!show) { removeChildren(panel);; }
	} else {
		var s=new Slider(panel,show,false,show?"none":"children");
	return panel;
} {
	var d=document.getElementById("searchPanel").getElementsByTagName("div");
	for (var i=0;i<d.length;i++) if (hasClass(d[i],"viewer")) var v=d[i]; if (!v) return;
	else {
		var s=new Slider(v,show,false,"none");
	return false;
} { // TRUE/FALSE=set value, no args=get value
	if (keep===undefined) return this.keepReportInFocus;
	return keep
} {
	var s=0; var e=0; if (!i) return { start:s, end:e };
	try {
		if (i.setSelectionRange) // FF
			{ s=i.selectionStart; e=i.selectionEnd; }
		if (document.selection && document.selection.createRange) { // IE
			var r=document.selection.createRange().duplicate();
			var len=r.text.length; s=0-r.moveStart('character',-100000); e=s+len;
	return { start:s, end:e };
},pos) {
	if (!i||!pos) return; var s=pos.start; var e=pos.end;
	if (i.setSelectionRange) //FF
	if (i.createTextRange) // IE
		{ var r=i.createTextRange(); r.collapse(true); r.moveStart("character",s);; }
// // SearchResults report generation
// note: these functions are defined globally, so they can be more easily redefined to customize report formats//
if (!window.reportSearchResults) window.reportSearchResults=function(text,matches)
	var; // abbrev
	var body=window.formatSearchResults(text,matches);
	if (!config.options.chkSearchListTiddler) // show #searchResults panel
	else { // write [[SearchResults]] tiddler
		var title=cms.reportTitle;
		var who=config.options.txtUserName;
		var when=new Date();
		var tags="excludeLists excludeSearch temporary";
		var tid=store.getTiddler(title); if (!tid) tid=new Tiddler();

if (!window.formatSearchResults) window.formatSearchResults=function(text,matches,opt)
	var body='';
	var q = config.options.chkRegExpSearch ? "/" : "'";
	if (!opt) var opt="all";
	var parts=opt.split("+");
	for (var i=0; i<parts.length; i++) { var p=parts[i].toLowerCase();
		if (p=="again"||p=="all")   body+=window.formatSearchResults_again(text,matches);
		if (p=="summary"||p=="all") body+=window.formatSearchResults_summary(text,matches);
		if (p=="list"||p=="all")    body+=window.formatSearchResults_list(text,matches);
		if (p=="buttons"||p=="all") body+=window.formatSearchResults_buttons(text,matches);
	return body;

if (!window.formatSearchResults_again) window.formatSearchResults_again=function(text,matches)
	var body='';
	// search again
	body+='{{span{<<search "'+text.replace(/"/g,'&#x22;')+'">> /%\n';
	body+='%/<html><input type="button" value="search again"';
	body+=' onclick="var t=this.parentNode.parentNode.getElementsByTagName(\'input\')[0];';
	body+='; return false;">';
	if (!config.options.chkSearchResultsOptions) // omit "options..."
	else {
		body+=' <a href="javascript:;" onclick="';
		body+=' var e=this.parentNode.nextSibling;';
		body+=' var!=\'block\';';
		body+=' if(!config.options.chkAnimate)\'block\':\'none\';';
		body+=' else anim.startAnimating(new Slider(e,show,false,\'none\'));';
		body+=' return false;">options...</a>';
		body+='</html>@@display:none;border-left:1px dotted;margin-left:1em;padding:0;padding-left:.5em;font-size:90%;/%\n';
		body+='	%/<<tiddler SearchOptions>>@@';
	return body;

if (!window.formatSearchResults_summary) window.formatSearchResults_summary=function(text,matches)
	// summary: nn tiddlers found matching '...', options used
	var body='';
	var co=config.options; // abbrev
	var q = co.chkRegExpSearch ? "/" : "'";
	var opts=[];
	if (co.chkSearchTitles) opts.push("titles");
	if (co.chkSearchText) opts.push("text");
	if (co.chkSearchTags) opts.push("tags");
	if (co.chkSearchFields) opts.push("fields");
	if (co.chkSearchShadows) opts.push("shadows");
	if (co.chkSearchOpenTiddlers) body+="^^//search limited to displayed tiddlers only//^^\n";
	body+="~~&nbsp; searched in "+opts.join(" + ")+"~~\n";
	body+=(co.chkCaseSensitiveSearch||co.chkRegExpSearch?"^^&nbsp; using ":"")
		+(co.chkCaseSensitiveSearch?"case-sensitive ":"")
		+(co.chkRegExpSearch?"pattern ":"")
	return body;

if (!window.formatSearchResults_list) window.formatSearchResults_list=function(text,matches)
	// bullet list of links to matching tiddlers
	var body='';
	var co=config.options; // abbrev
	var pattern=co.chkRegExpSearch?text:text.escapeRegExp();
	var sensitive=co.chkCaseSensitiveSearch?"mg":"img";
	var link='{{tiddlyLinkExisting{<html><nowiki><a href="javascript:;" onclick="'
		+'	highlightHack=new RegExp(\x27'+pattern+'\x27.escapeRegExp(),\x27'+sensitive+'\x27);'
		+'highlightHack = null; return false;'
		+'" title="%2">%1</a></html>}}}';
	for(var t=0;t<matches.length;t++) {
		body+="* ";
		if (co.chkSearchByDate)
			body+=matches[t].modified.formatString('YYYY.0MM.0DD 0hh:0mm')+" ";
		var title=matches[t].title;
		var fixup=title.replace(/'/g,"\\x27").replace(/"/g,"\\x22");
		var tid=store.getTiddler(title);
		var tip=tid?tid.getSubtitle():''; tip=tip.replace(/"/g,"&quot;");
	return body;

if (!window.formatSearchResults_buttons) window.formatSearchResults_buttons=function(text,matches)
	// embed buttons only if writing SearchResults to tiddler
	if (!config.options.chkSearchListTiddler) return "";
	// "open all" button
	var body="";
	body+="@@display:block;<html><input type=\"button\" href=\"javascript:;\" "
	for(var t=0;t<matches.length;t++)
		body+="'"+matches[t].title.replace(/\'/mg,"\\'")+"'"+((t<matches.length-1)?", ":"");
	body+="],1);\" accesskey=\"O\" value=\"open all matching tiddlers\"></html> ";
	// "discard SearchResults" button
	body+="<html><input type=\"button\" href=\"javascript:;\" "
		+"onclick=\"discardSearchResults()\" value=\"discard "+title+"\"></html>";
	return body;

if (!window.discardSearchResults) window.discardSearchResults=function()
	// remove the tiddler
// // DELIVER [[SearchOptions]] shadow payload
config.shadowTiddlers.SearchOptions = store.getTiddlerText('SearchOptionsPlugin##panel','');
config.annotations.SearchOptions    = 'created by SearchOptionsPlugin';
search in:
  {{nowrap{<<option chkSearchTitles>>titles <<option chkSearchText>>text <<option chkSearchTags>>tags}}} /%
%/{{nowrap{<<option chkSearchFields>>fields <<option chkSearchShadows>>shadows}}}
  {{nowrap{<<option chkCaseSensitiveSearch>>case-sensitive}}} /%
%/{{nowrap{<<option chkRegExpSearch>>match text patterns}}}
  {{nowrap{<<option chkIncrementalSearch>>key-by-key search:}}} /%
	%/{{threechar smallform nowrap{<<option txtIncrementalSearchMin>> or more characters}}} /%
	%/{{threechar smallform nowrap{<<option txtIncrementalSearchDelay>> msec delay}}}<hr>
  {{nowrap{<<option chkSearchList>>show results in a list &nbsp; &nbsp;}}} /%
%/{{nowrap{<<option chkSearchListTiddler>>save list in ''[[SearchResults]]''}}}
  {{nowrap{<<option chkSearchTitlesFirst>>show title matches first}}} /%
%/{{nowrap{<<option chkSearchByDate>>sort results by date}}} /%
%/{{nowrap{<<option chkSearchHighlight>>highlight matching text}}}
{{nowrap{<<option chkSearchOpenTiddlers>>search open tiddlers only}}}
{{nowrap{<<option chkSearchExcludeTags>>exclude tiddlers tagged with:}}}
{{editor{<<option txtSearchExcludeTags>>}}}
{{span{<<search "Windows">> /%
%/<html><input type="button" value="search again" onclick="var t=this.parentNode.parentNode.getElementsByTagName('input')[0];; return false;"></html>}}}

''2 tiddlers encontrados que concuerden con '{{{Windows}}}'''
~~&nbsp; searched in titles + text + tags + fields + shadows~~
* {{tiddlyLinkExisting{<html><nowiki><a href="javascript:;" onclick="if(config.options.chkSearchHighlight)	highlightHack=new RegExp('Windows'.escapeRegExp(),'img');story.displayTiddler(null,'Windows');highlightHack = null; return false;" title="Windows - Javi, viernes, 12 de julio de 2013 14:44:00">Windows</a></html>}}}
* {{tiddlyLinkExisting{<html><nowiki><a href="javascript:;" onclick="if(config.options.chkSearchHighlight)	highlightHack=new RegExp('Windows'.escapeRegExp(),'img');story.displayTiddler(null,'Freeware');highlightHack = null; return false;" title="Freeware - Javi, miércoles, 11 de septiembre de 2013 10:30:38">Freeware</a></html>}}}
@@display:block;<html><input type="button" href="javascript:;" onclick="story.displayTiddlers(null,['Windows', 'Freeware'],1);" accesskey="O" value="open all matching tiddlers"></html> <html><input type="button" href="javascript:;" onclick="discardSearchResults()" value="discard SearchResults"></html>@@
*Servidores basados en Windows
*Servidores Linux
*Servidores Web Tomcat y XAMMP
*SQL Server
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "opciones »" "Cambiar las opciones avanzadas de TiddlyWiki">>
<<tabs txtMainTab "Historial" "Historial" TabTimeline "Todo" "Todos los tiddlers" TabAll "Etiquetas" "Todas las etiquetas" TabTags "Más" "Más listados" TabMore>>
!Los sistemas operativos que uso a diario son
*Windowx XP
*Mac OS X

!Otros sistemas que uso esporádicamente
*Windows Server
*Red hat
*Linux Mint
Luis Javier Gonzalez Caballero
/*Mocha TiddlyWiki Theme*/
/*Version 1.0*/
/*Design and CSS originally by Anthonyy, ported to TiddlyWiki by Saq Imtiaz.*/
margin: 0 3.4em;

			font-family: Lucida Grande, Tahoma, Arial, Helvetica, sans-serif; /* Lucida Grande for the Macs, Tahoma for the PCs */
font-size: 11px;
			line-height: 1.6em;
			color: #666;

.header {
 background: #fff; 
			padding-top: 10px;
			clear: both;

border-bottom: 4px solid #948979;

.headerShadow {	padding: 2.6em 0em 0.5em 0em; }

.siteTitle {
			font-family: 'Trebuchet MS' sans-serif;
			font-weight: bold;
			font-size: 32px;
			color: #CC6633;
			margin-bottom: 30px;
			background-color: #FFF;

.siteTitle a{color:#CC6633; border-bottom:1px dotted #cc6633;}

.siteSubtitle {
	font-size: 1.0em;
        display: block;
        margin: .5em 3em; color: #999999;

#mainMenu {
padding: 2em 0.5em 0.5em 0em;



#displayArea {
	margin: 0em 17em 0em 15em;

.tagClear {clear:none;}

#contentFooter {background:#575352; color:#BFB6B3; clear: both; padding: 0.5em 1em;}

		#contentFooter a {
			color: #BFB6B3;
			border-bottom: 1px dotted #BFB6B3;
		#contentFooter a:hover {
			color: #FFFFFF;

		a,#sidebarOptions .sliderPanel a{
			text-decoration: none;

		a:hover,#sidebarOptions .sliderPanel a:hover {
			background-color: #F5F5F5; 

.viewer .button, .editorFooter .button{
	color: #666;
	border: 1px solid #CC6714;

.viewer .button:hover, 
.editorFooter .button:hover{
	color: #fff;
	background: #CC6714;
	border-color: #CC6714;

.viewer .button:active, .viewer .highlight,.editorFooter .button:active, .editorFooter .highlight{color:#fff; background:#575352;border-color:#575352;}

		#mainMenu a {
			display: block;
			padding: 5px;
			border-bottom: 1px solid #CCC;

		#mainMenu a:link, #navlist a:visited {
			text-decoration: none;
		#mainMenu a:hover {
			background: #000000 url(arrow.gif) 96% 50% no-repeat;
			background-color: #F5F5F5;
		#mainMenu a:hover, #mainMenu a:active, #mainMenu .highlight, #mainMenu .marked {
			background: #000000 url(arrow.gif) 96% 50% no-repeat;
			background-color: #F5F5F5;

#mainMenu span {position:relative;}

#mainMenu br {display:none;}

#sidebarOptions a {
			text-decoration: none;

#sidebarOptions	a:hover {
			background-color: #F5F5F5;border:1px solid #fff;

#sidebarOptions {line-height:1.4em;}

		.tiddler {
			padding-bottom: 40px;
			border-bottom: 1px solid #DDDDDD; 
.title {color:#CC6633;}
.subtitle, .subtitle a { color: #999999; font-size: 1.0em;margin:0.2em;}
.shadow .title{color:#948979;}

.selected .toolbar a {color:#999999;}
.selected .toolbar a:hover {color:#4F4B45; background:transparent;border:1px solid #fff;}

.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active{color:#4F4B45; background:transparent;border:1px solid #fff;}

 .listLink,#sidebarTabs .tabContents {line-height:1.5em;}
 .listTitle {color:#888;}

#sidebarTabs .tabContents {background:#fff;}
#sidebarTabs .tabContents .tiddlyLink, #sidebarTabs .tabContents .button{color:#999;}
#sidebarTabs .tabContents .tiddlyLink:hover,#sidebarTabs .tabContents .button:hover{color:#4F4B45;background:#fff}

#sidebarTabs .tabContents .button:hover, #sidebarTabs .tabContents .highlight, #sidebarTabs .tabContents .marked, #sidebarTabs .tabContents a.button:active{color:#4F4B45;background:#fff}

.tabSelected{color:#fff; background:#948979;}

.tabUnselected {
 background: #ccc;

 .tabSelected, .tabSelected:hover {
 color: #fff;
 background: #948979;
 border: solid 1px #948979;

 .tabUnselected {
 color: #999;
 background: #eee;
 border: solid 1px #ccc;

#sidebarTabs .tabUnselected { border-bottom: none;padding-bottom:3px;}
#sidebarTabs .tabSelected{padding-bottom:3px;}

#sidebarTabs .tabUnselected:hover { border-bottom: none;padding-bottom:3px;color:#4F4B45}

#sidebarOptions .sliderPanel {
	background: #fff; border:none;
	font-size: .9em;
#sidebarOptions .sliderPanel a {font-weight:normal;}
#sidebarOptions .sliderPanel input {border:1px solid #999;}

.viewer blockquote {
	border-left: 3px solid #948979;

.viewer table {
	border: 2px solid [[ColorPalette::TertiaryDark]];

.viewer th, thead td {
	background: #948979;
	border: 1px solid #948979;
	color: #fff;
.viewer pre {
	border: 1px solid #948979;
	background: #f5f5f5;

.viewer code {
	color: #2F2A29;

.viewer hr {
	border-top: dashed 1px #948979;

.editor input {
	border: 1px solid #948979;

.editor textarea {
	border: 1px solid #948979;

.popup {
	background: #948979;
	border: 1px solid #948979;

.popup li.disabled {
	color: #000;

.popup li a, .popup li a:visited {
	color: #eee;
	border: none;

.popup li a:hover {
	background: #575352;
	color: #fff;
	border: none;

.tagging, .tagged {
	border: 1px solid #eee;
	background-color: #F7F7F7;

.selected .tagging, .selected .tagged {
	background-color: #eee;
	border: 1px solid #BFBAB3;

 .tagging .listTitle, .tagged .listTitle {
	color: #bbb;

.selected .tagging .listTitle, .selected .tagged .listTitle {
	color: #666; 

.tagging .button, .tagged .button {
.selected .tagging .button, .selected .tagged .button {

.highlight, .marked {background:transparent; color:#111; border:none; text-decoration:underline;}

.tagging .button:hover, .tagged .button:hover, .tagging .button:active, .tagged .button:active {
		border: none; background:transparent; text-decoration:underline; color:#000;

h1,h2,h3,h4,h5 { color: #666; background: transparent; padding-bottom:2px; font-family: Arial, Helvetica, sans-serif; }
h1 {font-size:18px;}
h2 {font-size:16px;}
h3 {font-size: 14px;}

#messageArea {
	border: 4px solid #948979;
	background: #f5f5f5;
	color: #999;

#messageArea a:hover { background:#f5f5f5;}

#messageArea .button{
	color: #666;
	border: 1px solid #CC6714;

#messageArea .button:hover {
	color: #fff;
	background: #948979;
	border-color: #948979;

* html .viewer pre {
	margin-left: 0em;

* html .editor textarea, * html .editor input {
	width: 98%;

.searchBar {float:right;font-size: 1.0em;}
.searchBar .button {color:#999;display:block;}
.searchBar .button:hover {border:1px solid #fff;color:#4F4B45;}
.searchBar input {			
                        background-color: #FFF;
			color: #999999;
			border: 1px solid #CCC;		margin-right:3px;

#sidebarOptions .button:active, #sidebarOptions .highlight {background:#F5F5F5;}

*html #contentFooter { padding:0.25em 1em 0.5em 1em;}

#noticeBoard {font-size: 0.9em; color:#999; position:relative;display:block;background:#fff; clear: both; margin-right:0.5em; margin-top:60px; padding:5px; border-bottom: 1px dotted #CCC; border-top: 1px dotted #CCC;}
#mainMenu #noticeBoard a,#mainMenu #noticeBoard .tiddlyLink {display:inline;border:none;padding:5px 2px;color:#DF9153 }
#noticeBoard a:hover {border:none;}	

#noticeBoard br {display:inline;}

#mainMenu #noticeBoard  .button{
	color: #666;
	border: 1px solid #DF9153;padding:2px;

#mainMenu #noticeBoard  .button:hover{
	color: #fff;
	background: #DF9153;
	border-color: #DF9153;

.searchbar {position:relative; width:11em;}
.searchbar .button{margin:0; width:11em;}
#header {display:inline-block;}
En el año 2010 Metrolico fue comprada por el grupo [[T-Systems|]]. Comienzo de esta forma mi andadura con esta empresa.
En este año comienzo como Team Leader de las 18 personas que forman este CAU de Caja España. Con esta empresa, los procedimientos y controles de calidad varían:

*Gestión de incidencias según ITIL
*Documentación de todos los procedimientos operativos
*Anticipar incidentes con soluciones proactivas
*Elaboración de informes periódicos

Durante mi trayectoria en la empresa, asisto a varias reuniones en la central de Barcelona y asisto a una reorganización del departamento de Service Desk de la empresa.
<<timeline created>>
|Author|Eric Shulman|
|Original Author|Clint Checketts|
|Description|present a 'cloud' of tags (or links) using proportional font display|
<<cloud type action:... limit:... tag tag tag ...>>
<<cloud type action:... limit:... +TiddlerName>>
<<cloud type action:... limit:... -TiddlerName>>
<<cloud type action:... limit:... =tagvalue>>
* //type// is a keyword, one of:
** ''tags'' (default) - displays a cloud of tags, based on frequency of use
** ''links'' - displays a cloud of tiddlers, based on number of links //from// each tiddler
** ''references'' - displays a cloud of tiddlers, based on number of links //to// each tiddler
* ''action:popup'' (default) - clicking a cloud item shows a popup with links to related tiddlers<br>//or//<br> ''action:goto'' - clicking a cloud item immediately opens the tiddler corresponding to that item
* ''limit:N'' (optional) - restricts the cloud display to only show the N most popular tags/links
* ''tag tag tag...'' (or ''title title title'' if ''links''/''references'' is used)<br>shows all tags/links in the document //except// for those listed as macro parameters
* ''+TiddlerName''<br>show only tags/links read from a space-separated, bracketed list stored in a separate tiddler.
* ''-TiddlerName''<br>show all tags/links //except// those read from a space-separated, bracketed list stored in a separate tiddler.
* ''=tagvalue'' (//only if type=''tags''//)<br>shows only tags that are themselves tagged with the indicated tag value (i.e., ~TagglyTagging usage)
//note: for backward-compatibility, you can also use the macro {{{<<tagCloud ...>>}}} in place of {{{<<cloud ...>>}}}//
//all tags excluding<<tag systemConfig>>, <<tag excludeMissing>> and <<tag script>>//
{{{<<cloud systemConfig excludeMissing script>>}}}
{{groupbox{<<cloud systemConfig excludeMissing script>>}}}
//top 10 tags excluding<<tag systemConfig>>, <<tag excludeMissing>> and <<tag script>>//
{{{<<cloud limit:10 systemConfig excludeMissing script>>}}}
{{groupbox{<<cloud limit:10 systemConfig excludeMissing script>>}}}
//tags listed in// [[FavoriteTags]]
{{{<<cloud +FavoriteTags>>}}}
{{groupbox{<<cloud +FavoriteTags>>}}}
//tags NOT listed in// [[FavoriteTags]]
{{{<<cloud -FavoriteTags>>}}}
{{groupbox{<<cloud -FavoriteTags>>}}}
//links to tiddlers tagged with 'package'//
{{{<<cloud action:goto =package>>}}}
{{groupbox{<<cloud action:goto =package>>}}}
//top 20 most referenced tiddlers//
{{{<<cloud references limit:20>>}}}
{{groupbox{<<cloud references limit:20>>}}}
//top 20 tiddlers that contain the most links//
{{{<<cloud links limit:20>>}}}
{{groupbox{<<cloud links limit:20>>}}}
2009.07.17 [1.7.0] added {{{-TiddlerName}}} parameter to exclude tags that are listed in the indicated tiddler
2009.02.26 [1.6.0] added {{{action:...}}} parameter to apply popup vs. goto action when clicking cloud items
2009.02.05 [1.5.0] added ability to show links or back-links (references) instead of tags and renamed macro to {{{<<cloud>>}}} to reflect more generalized usage.
2008.12.16 [1.4.2] corrected group calculation to prevent 'group=0' error
2008.12.16 [1.4.1] revised tag filtering so excluded tags don't affect calculations
2008.12.15 [1.4.0] added {{{limit:...}}} parameter to restrict the number of tags displayed to the top N most popular
2008.11.15 [1.3.0] added {{{+TiddlerName}}} parameter to include only tags that are listed in the indicated tiddler
2008.09.05 [1.2.0] added '=tagname' parameter to include only tags that are themselves tagged with the specified value (i.e., ~TagglyTagging usage)
2008.07.03 [1.1.0] added 'segments' property to macro object.  Extensive code cleanup
version.extensions.TagCloudPlugin= {major: 1, minor: 7 , revision: 0, date: new Date(2009,7,17)};
//Originally created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman
//Currently maintained and enhanced by Eric Shulman
//{{{ = {
	tagstip: "%1 tiddlers tagged with '%0'",
	refslabel: " (%0 references)",
	refstip: "%1 tiddlers have links to '%0'",
	linkslabel: " (%0 links)",
	linkstip: "'%0' has links to %1 other tiddlers",
	groups: 9,
	init: function() {; // for backward-compatibility
			+'.tagCloud span {line-height: 3.5em; margin:3px;}\n'
			+'.tagCloud1{font-size: 80%;}\n'
			+'.tagCloud2{font-size: 100%;}\n'
			+'.tagCloud3{font-size: 120%;}\n'
			+'.tagCloud4{font-size: 140%;}\n'
			+'.tagCloud5{font-size: 160%;}\n'
			+'.tagCloud6{font-size: 180%;}\n'
			+'.tagCloud7{font-size: 200%;}\n'
			+'.tagCloud8{font-size: 220%;}\n'
			+'.tagCloud9{font-size: 240%;}\n'
	getLinks: function(tiddler) { // get list of links to existing tiddlers and shadows
		if (!tiddler.linksUpdated) tiddler.changed();
		var list=[]; for (var i=0; i<tiddler.links.length; i++) {
			var title=tiddler.links[i];
			if (store.isShadowTiddler(title)||store.tiddlerExists(title))
		return list;
	handler: function(place,macroName,params) {
		// unpack params
		var inc=[]; var ex=[]; var limit=0; var action='popup';
		var links=(params[0]&&params[0].toLowerCase()=='links'); if (links) params.shift();
		var refs=(params[0]&&params[0].toLowerCase()=='references'); if (refs) params.shift();
		if (params[0]&&params[0].substr(0,7).toLowerCase()=='action:')
		if (params[0]&&params[0].substr(0,6).toLowerCase()=='limit:')
		while (params.length) {
			if (params[0].substr(0,1)=='+') { // read taglist from tiddler
			} else if (params[0].substr(0,1)=='-') { // exclude taglist from tiddler
			} else if (params[0].substr(0,1)=='=') { // get tag list using tagged tags
				var tagged=store.getTaggedTiddlers(params[0].substr(1));
				for (var t=0; t<tagged.length; t++) inc.push(tagged[t].title);
			} else ex.push(params[0]); // exclude params
		// get all items, include/exclude specific items
		var items=[];
		var list=(links||refs)?store.getTiddlers('title','excludeLists'):store.getTags();
		for (var t=0; t<list.length; t++) {
			var title=(links||refs)?list[t].title:list[t][0];
			if (links)	var count=this.getLinks(list[t]).length;
			else if (refs)	var count=store.getReferringTiddlers(title).length;
			else 		var count=list[t][1];
			if ((!inc.length||inc.contains(title))&&(!ex.length||!ex.contains(title)))
				items.push({ title:title, count:count });
		if(!items.length) return;
		// sort by decending count, limit results (optional)
		while (limit && items.length>limit) items.pop();
		// find min/max and group size
		var most=items[0].count;
		var least=items[items.length-1].count;
		var groupSize=(most-least+1)/this.groups;
		// sort by title and draw the cloud of items
		var cloudWrapper = createTiddlyElement(place,'div',null,'tagCloud',null);
		for (var t=0; t<items.length; t++) {
			cloudWrapper.appendChild(document.createTextNode(' '));
			var group=Math.ceil((items[t].count-least)/groupSize)||1;
			var className='tagCloudtag tagCloud'+group;
			var tip=refs?this.refstip:links?this.linkstip:this.tagstip;
			if (action=='goto') { // TAG/LINK/REFERENCES GOTO
				var btn=createTiddlyLink(cloudWrapper,items[t].title,true,className);
			} else if (!links&&!refs) { // TAG POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,onClickTag,className);
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,
					function(ev) { var e=ev||window.event; var;
						var popup = Popup.create(this);
						var title = this.getAttribute('tiddler');
						var count = this.getAttribute('count');
						var refs  = this.getAttribute('refs')=='T';
						var links = this.getAttribute('links')=='T';
						var label = (refs?cmt.refslabel:cmt.linkslabel).format([count]);
						if (refs) {
						if (links) {
							var tiddler = store.fetchTiddler(title);
							for(var i=0;i<links.length;i++)
						e.cancelBubble=true; if(e.stopPropagation) e.stopPropagation();
						return false;
					}, className);
Mi familia

!Otras tareas
Añadir grupo de artistas musicales
Modificar tanto los logros profesionales como mi perfil
!!Establecer etiquetas
A continuación aparece una imagen que muestra una línea de tiempo con mi formación y experiencia profesional.

|~ViewToolbar|collapseTiddler collapseOthers closeTiddler closeOthers +editTiddler > fields syncing permalink references jump|
|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|
!Se ejecutan en Windows
:Herramienta para crear mapas mentales que favorece el braimstormimg. También hay versiones para Mac y Linux.
:La mejor suite ofimatica libre
:Editor de textos en LaTEX. Ideal para generar documentos de alta calidad de forma sencilla.
:Editor de ficheros PDF's
[[TiddlyWiki|]] © Osmosoft
//This ensures that the footer sticks to the bottom of the screen when there are no tiddlers open. If that is not desirable, it can be deleted.
function setFooter() {
         if (document.getElementById && document.getElementById("contentFooter") ) {
            var windowHeight=findWindowHeight();
         if (windowHeight>0) {
            var contentHeight= document.getElementById('mainMenu').offsetHeight + document.getElementById("header").offsetHeight + document.getElementById("contentFooter").offsetHeight;
            var menu= document.getElementById('mainMenu');
            if (windowHeight-(contentHeight)>=0) {
            else {
window.onresize = function() {

Story.prototype.refreshTiddler = function (title,template,force)
var theTiddler = Story.prototype.refreshTiddler_footerhack.apply(this,arguments);
   return theTiddler;}