<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
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
/*{{{*/
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]];
	background:[[ColorPalette::TertiaryPale]];
	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]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

.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]];}

#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 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.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:0em 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 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 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 0em;}
.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 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 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 0em 14em;}

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

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

.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:0em 0.25em; padding:0em 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:0px 3px 0px 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 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

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

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.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 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 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 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' 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>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' 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>
<!--}}}-->
<!--{{{-->
<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'></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>>
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
<<importTiddlers>>
<html>
<body>
<div class="document" id="aztlek-y-su-salida-del-sena">
<h1 class="title">Aztlek y su Salida del Sena</h1>

<p>He estado conversando con mi amigo Luis Alejandro (<a class="reference external" href="http://aztlek.com">Aztlek</a>) sobre su salida del Sena, sobre la cual se escribió y comentó tanto <a class="reference external" href="http://aztlek.org/2011/12/23/profesor-del-sena-es-despedido-cuando-se-niega-a-instalar-software-pirata/">en su blog personal</a> como en <a class="reference external" href="http://elespectador.com/noticias/soyperiodista/articulo-318318-profesor-del-sena-despedido-negarse-instalar-software-pirata">una página de El Espectador</a>. En esencia el asunto es que Sena (también conocido como Servicio Nacional de Aprendizaje, entidad oficial del Estado para la formación técnica y tecnológica para el trabajo en Colombia) le dijo que tomara un <em>curso opcional</em> y también que para esto debería instalar un software privativo <em>en el computador de él</em>. Debido a las razones políticas, éticas y pragmáticas que él menciona muy brevemente en su blog, pero que conozco en lo personal, no instaló el software, lo cual le impidió tomar el curso y éste fue un argumento empleado para la no renovación de su contrato el siguiente año. El revuelo que se ha causado su publicación es inusitado debido al desafortunado caracter marginal que tienen los correlatos éticos entorno a las tecnologías digitales, cuya ausencia es tristemente notoria en los discursos de inclusión digital de MinTic y en las entidades del estado Colombiano y sus planes de implementación de política digital. Se han visto los más vario-pintos comentarios sobre la salida de Luis, desde insultos que ni merecen comentario alguno, hasta frases de apoyo por su postura, pero creo que el que más resuena en la contraparte es la instalación de versiones de demo en una máquina virtual en el computador de Luis como solución al requerimiento que se le hacía al Sena de colocar software privativo en su máquina. En este blog post me referiré principalmente a este argumento, sentando primero mi posición respecto al uso de software libre versus privativo y luego abordando esta línea argumentativa en particular.</p>
<p>Considero que el software privativo en los computadores personales enfrente una posibilidad cada vez mayor de desaparecer (aunque empieza a acrecentarse peligrosamente en &quot;la nube&quot;) debido a los movimientos de código abierto y software libre. Éste último indica además lo perjudicial que resulta el software privativo para la sociedad en su conjunto, con lo cual coincido, pues contribuye a crear la escasez artificial de los bienes inmateriales y culturales, con lo que se propicia y continuan la inequidad, la falta de oportunidades y la injusticia (existen, por supuesto, modelos económicos alternativos y exitosos para el software libre que no se basan en dicha escasez artificial). Así las cosas evito el software privativo, tanto en mi computador como en &quot;la nube&quot;, aunque entiendo que estamos en un periodo de transición y que todavía es necesario en ciertos controladores y dispositivos de <em>hardware</em> (como los teléfonos celulares), e impulso y aliento el uso de software como activista y consultor, en proyectos académicos, empresariales y comunitarios de los cuales hago parte, entre los que están <a class="reference external" href="http://holonica.net">holónica</a>, <a class="reference external" href="http://mutabit.com">mutabit</a> y <a class="reference external" href="http://hackbo.co">hackbo</a>. Creo que uno debe tomar una postura activa en la disminición de software privativo y en que cada vez más personas usen más software libre. Considero que Luis comparte esa visión. Esto implica de mi parte, que si bien creo que la ingeniería reversa y otras prácticas son válidas para romper el cerco sobre el conocimiento cerrado, dedico mi tiempo a prácticas alternativas que ayudan a mantener y agrandar el conocimiento abierto. Esto quiere decir que si tengo que elegir entre <em>crackear</em> software privativo o <a class="reference internal" href="#hackear">hackear</a> con software libre, elijo esto último y de hecho lo vengo haciendo desde 1996 cuando encontré Gnu/Linux y en particular desde 1999, cuando dejé de usar Windows.</p>
<p>Por supuesto cuando uno elige aprender una cosa, &quot;deselige&quot; aprender el resto. No quiero aprender un &quot;demo&quot; de una tecnología, que luego no puedo usar en un contexto laboral o sólo &quot;tengo que&quot; usar en otro contexto restrictivo. Por eso no estoy al tanto de las versiones demo de ninguna de ellas y de sus términos de uso. Creo que si una institución como el Sena solicita que se tome un curso con un tipo particular de software y que además se traiga instalado en el computador personal de uno, debe hacer el acompañamiento para garantizar que este software puede usarse legalmente, más aún en el caso del software privativo, pues en este prácticamente cualquier libertad que el software libre provee (libertad de uso, libertad de distribución de copias, libertad de estudio y modificación y libertad de distribución de copias modificadas) entran muy fácilmente en un tipo de delito, así que intentar ejercer dichas libertades con software privativo es caer fácilmente en el riesgo de un delito y una institución estatal no puede brindar información que, por su caracter precario, pueda alentar el cometerlos. Ese es el caso para el par de instrucciones de: tiene que instalar software privativo y tiene que hacerlo en su máquina, para tomar una capacitación.</p>
<p>Por lo anterior, el argumento de usar software privativo en versión demo para tomar un curso en el Sena se enfrenta a serios cuestionamientos. Los de índole práctica en términos de acompañamiento que hace el Sena a requerimientos que hacen sus funcionarios y que, sin la debida información de parte de la institución, pueden alentar a cometer un delito, que mi amigo quizo evitar. Y está claro que acá la responsabilidad es del Sena por brindar instrucciones completas para las labores de formación que imparte entre sus funcionarios, docentes y contratistas y no de Luis por completarlas. Y por otro lado y de manera más importante están los cuestionamientos de índole ética que se desatan cuando una institución de formación para el trabajo en aras de la inclusión social, sólo brinda capacitación haciendo uso de software privativo.</p>
<p>Ps: Los comentarios los pueden poner en el Blog de Aztlek ya referenciado. Desafortunadamente los de los periódicos como El Tiempo y El Espectador tienen una pobreza argumentativa y grosería generalizada, con excepciones muy contadas.</p>
<p id="hackear"><em>Hackear:</em> Mi definición de hackear está relacionada con entender los elementos contitutivos de un sistema y eventualmente reconfigurarlo y no forzósamente se hace con programación y tecnologías digitales. Les Luthiers, el grupo humorístico y de música argentino serían unos hackers en ese sentido.</p>
</div>
</body>
</html>
! El solucionario: Un lugar para que la gente comparta ejercicios de diferentes materias (con énfasis en matemáticas)
Probé ccPublisher. En Linux no arrancó y en Windows siempre daba un error al intentar publicar. Supe que estaba hecho en Zope 3, así que era necesario conocer algo sobre él para cambiarlo o extenderlo, pero habiendo usado Zope2, prefiero [[Web2py]] si voy a tener que escribir código que permita a mis estudiantes subir ejercicios y compartirlos entre sí. Hoy empiezo el prototipo a ver a qué llego a finales de la semana.
![Domingo]
Hoy salí de la Residencia Torre Girona para un //Guest House// en San Andreu 342 Bis. El modelo de //Guest House// es esencialmente el que en Colombia se conocería como inquilinato, pero remanofacturado para que permita a diferentes personas cohabitar durante cortos periodos de tiempo sin prácticamente asistencia aparte de la inicial de parte del inquilinato. Se tiene un par de contraseñas para dos cerraduras electrónicas: Una de la puerta principal y otra de la habitación. El hall de entrada tiene un par de notas, al igual que las puertas de la habitación indicando los tiempos del //checkout// y que a las 10 de la noche alguien atenderá las inquietudes o que antes se puede llamar a un número telefónico (pero no hay terminales telefónicas en los cuartos!!). Si bien no hay hora de ingreso forzosa, se pide silencio desde las 11 p.m. a las 7 a.m. En la habitación hay una cama sencilla con una repisa en la cabecera, un armario pequeño, una mesita, un ventilador, una cesta de basura y una multitoma. Es un espacio en que apenas caben estos elementos.

Como en todos los hostales, no se hacen responsables de los objetos de valor dejados en las habitaciones.

Me gusta el hecho de que esté en un lugar que tiene cierta añoranza a lo vendría siendo como el centro de Bogotá o Chapinero, pero muchísimo más residencial y seguro, pues da otra experiencia de ciudad, de esas que sólo esos sitios pueden dar. Un paseo preliminar muestra lugares interesantes. Entre ellos:

* [[Olokuti| http://www.olokuti.com]]: El teu món respoonsable.
* Parqueaderos y alquileres públicos de bicicletas: [[bicing| http://www.bicing.com]].

Me parece un modelo alternativo que hay que conocer y para el que es un plus contar con una la dueña muy amable y gentil, y está bien para estancias rápidas de no más de 3 días, pero prefiero los hostales y quisiera tener un baño privado, un escritorio y un espacio más grande. La contraseña del Internet inalámbrico no funciona, lo cual afecta mucho mi movilidad en la cuidad, y no tener a quien preguntale hasta las 10 p.m. dificulta mucho las cosas. 

Seguiré escribiendo sobre la experiencia de estadía en otros lados. La cámara de Befana ya cargó. Voy a almorzar.

Es la 1:30 a.m. y acabé de hablar con Diana, la dueña del //Guest House//. Es un Gran Valor agregado!!! Lo hace sentir a uno tan acogido que lo pequeño del espacio no importa. :-)
!! Álgebra Computacional libre vs privativa

El departamento de matemáticas de la Javeriana, donde trabajo, ha decidido entrar en una compra masiva de licencias para el 2010 (cerca de 10.000). Yo he venido trabajando con [[Sage]] desde hace tiempo, integrándolo con TeXmacs en una distribución virtualizada llamada [[Virtual Tangram|VirtualTangram]] con el fin de facilitarle la experiencia de usar paquetes de álgebra computacional a mis estudiantes para las clases. Con esta compra masiva, tiene sentido continuar con Virtual Tangram?
La respuesta es sí. Sin embargo, también es importante ver qué nos ofrecen los paquetes privativos en contraste con los libres y en esencia creo que es una mejor interface de usuario, más fácil de manejar. Si bien Maple, que es el software que se está evaluando, no tiene ideas tan integradoras y poderosas, la interface es mucho más amigable que el notebook interactivo de Sage e incluso que la combinación ~TeXmacs + Sage que viene integrada en Virtual Tangram.
Hay que mejorar entonces la interface:
* De [[Yacas| http://yacas.sourceforge.net/homepage.html]] me gusta la sintaxis, el caracter minimalista y la documentación comprensiva.
* De Sage me gusta el caracter comprensivo, la posibilidad de tener notebooks interactivos en la web (pero la edición/creación de los mismos allí está lejos de lo que permite ~TeXmacs por ejemplo) y el uso de un lenguaje de propósito general
* De ~TeXmacs el //rendering// de texto científico en la interface gráfica y las mútiples y rápidas formas de ingresar información matemática (íconos, atajos de teclado, etiquetas).
Lo que sería chévere:
* Integrar la sintaxis de Yacas en Sage, aunque esto contradice la posibilidad de usar un lenguaje de propósito general, sin embargo, creo que es viable crear dialectos en Python (o algún derivado posterior) que resuelvan el problema de las múltiples sintaxis para quien lee así como para quien escribe. Cola (Collaborative Lambda Object Architecture) y ~PyPy muestran adelantos en ese sentido.
* Extender la interface de ~TeXmacs probablemente usando Qt, que es en la librería en la que se está haciendo la siguiente versión. Aún hay errores en ella, pero es probablemente la evolución natural que esta tenga y brindaría toda la posibilidad de tener mejores notebooks interactivos con componentes de Qt. Como no me gusta Qt pelado, tal vez la mejor opción sería usar qtedge.
La siguiente versión de Virtual Tangram debería ayudar a cristalizar dichas ideas y creo que el hecho de estar basado en Arch, lo cual provee el robusto sistema de paquetes pacman, es una buena forma para que la distribución se cambie a través de la red sin tener que rehacer toda la distro con cada nueva iteración sobre las ideas anteriores.
Esta experiencia de poder usar diferentes paquetes de software privativo, dado que el departamento está interesado en su compra, permite experimentar directamente un lugar donde creo que el software libre es muy pobre: la interface de usuario. Le sacaré el máximo provecho.
!! Micromotivos y Macrocomportamientos

Este es mi primer semestre dicatando clases en maestrías, como profesor invitado. Por un lado están los módulos de medios para la web y gestión del conocimiento en la maestría en didáctica de las ciencias de la Universidad Autónoma (Bogotá) y por el otro, el módulo de redes y tecnologías de informática y comunicaciones en la maestría en diseño y creación digital, de la Universidad de Caldas (Manizales).

Mis experiencias con la docencia han estado desperdigadas en el tiempo. Por supuesto, todos hemos ayudado a alguien a entender algo desde que estamos siendo "sólo estudiantes" en nuestras clases habituales, pero la primera que recuerdo a nivel "docente", fue después de haber salido del colegio y darme cuenta lo mal preparados que estábamos en matemáticas y física, cuando, junto con otros amigos, ofrecimos clases de apoyo y refuerzo par estudiantes de 11 próximos a presentar el ICFES y presentarse a las pruebas de admisión en la Universidad. Después de eso dicté clases en un colegio por un breve periodo de tiempo, fui monitor de cálculo y programación para la carrera de informática matemática y para el Departamento de Matemáticas de la Pontificia Universidad Javeriana, luego docente de pregrado por casi 6 años y ahora profesor invitado para las maestrías antes mencionadas.

Una de mis preocupaciones actuales, tanto a nivel de pregrado, como de maestría, tiene que ver con la construcción de redes de aprendices y comunidades de práctica, pues creo que las tensiones de lo educativo, no se van a resolver dentro de lo institucional, sino entendiendo lo educativo en su sentido amplio, como aquello que perpetua y transforma la cultura. Siendo así, hay que aprovechar mejor las dinámicas culturales y explicitar aquellas que nos permite conformar espacios educativos y lugares de aprendizaje. Con esta convicción e intentado desinstitucionalizar las prácticas
!! [[The two hundred sit-ups training program| http://www.twohundredsitups.com/]]
* Diagnóstico: 42 abdominales a mi edad, veredicto: promedio
** Debo empezar en la columna 3 de la [[semana 3 del programa de 200 abdominales| http://www.twohundredsitups.com/week3.html]]
** Consulté en el gimnasio el el programa no es tan eficiente. No trabaja lugares diferentes de los músculos abdominales, ni lumbares, ni estiramientos posteriores. Lo abandoné por otro.
!! Actividad
* Descargar Xmind de su sitio web. http://www.xmind.net
* Leer los tutoriales en el mismo sitio y en Internet y realizar un mapa mental/conceptual u otro tipo de ideograma explicitando como quiero emplear tecnologías de informática y comunicaciones en los procesos educativos de los cuales hago parte.
* Publicar el mapa

* Formular las preguntas a través del [[canal de microblogging de gestión de la información| http://identi.ca/group/gestinfo]].
Ver los siguientes videos 
* [[Twitter in plain English| http://www.youtube.com/watch?v=ddO9idmax0o]]
* [[Problemas con Twitter| http://www.youtube.com/watch?v=hNQdE8z7oS4]]
* [[Celebrity Twitter Overkill: SuperNews!| http://www.youtube.com/watch?v=KHAZt-Exuaw]]
* [[All of a Twitter| http://is.gd/2ouB3]]:"A look at how social web tools are being used in university classrooms."

y preparar la reflexión sobre estos dos items:

* Qué puntos importantes ilustran los videos sobre el tema de //microblogging//.
* ¿Cómo la actividad del //microblogging// ha cambiado nuestras dinámicas en el seminarios?. ¿Cómo se podría extender lo bueno y disminuir lo malo?
Buscar en Internet diferentes artículos sobre microblogs y en particular microblogs en educación. Como ejemplo los siguientes:
* [[Qué es un microblog| http://www.parasaber.com/tecnologia/paginas-web/web-20/redes-sociales/articulo/facebook-sms-crear-paginas-web-twitter-microblog-jaiku/16633/]]
* [[El imparable auge de los 'microblogs'| http://www.elpais.com/articulo/portada/imparable/auge/microblogs/elpeputeccib/20080117elpcibpor_2/Tes]]
* [[Microblogging, en la Wikipedia (español)| http://es.wikipedia.org/wiki/Microblogging]]
* [[Microblogging, en la Wikipedia (inglés)| http://en.wikipedia.org/wiki/Micro-blogging]]
* [[Los microblogs y el lifestream| http://tibungo.net/2009/03/02/microblogs-y-el-lifestream/]]
* [[¿Para qué sirven los microblogs?| http://www.vanguardia.com/informes/tecnologia/22848]]
* [[Usos educativos del microblogging| http://www.concepcionabraira.info/wp/category/microblogs/]]
* [[Demasiados monólogos en los 'microblogs'| http://www.elpais.com/articulo/semana/Demasiados/monologos/microblogs/elpeputeccib/20080501elpciblse_2/Tes]]
* [[Blog, Fotolog, Microblog, Tumblelog, Vlog| http://www.slideshare.net/kike.giles/blog-fotolog-microblog-tumblelog-vlog]]
y escribir un ensayo acerca de sus usos tanto en la vida cotidiana como en la educación. Recuerden que en el ensayo deben presentar una tesis y defenderla/desarrollarla a lo largo del escrito.
Luego descargar [[Dropbox]] y compartir en escrito publicado por este medio.
!! Agregar un usuario
<<<
''Consola Superusuario:''
{{{
useradd -m -G users,audio,lp,optical,storage,video,wheel,power -s /bin/bash tester
passwd tester
}}}
<<<
!! Agregar un usuario existente a un grupo existente:
La sintaxis es:
{{{
usermod -a -G <nombreDelGrupo> <nombreDelUsuario>
}}}
Por ejemplo
<<<
''Consola Superusuario:''
{{{
usermod -a -G sageusers offray
}}}
<<<
Agrega el usuario {{{offray}}} al grupo {{{sageusers}}}
''Enlaces'':
* [[Howto: Linux Add User To Group| http://www.cyberciti.biz/faq/howto-linux-add-user-to-group/]]
* http://www.gamingtextures.com/
* http://www.pikipimp.com/
Un pequeño homenaje a mi tio (iniciado en Abril 29 de 2009):

<html>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/GI8lqH7gmFM&color1=0xb1b1b1&color2=0xcfcfcf&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/GI8lqH7gmFM&color1=0xb1b1b1&color2=0xcfcfcf&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
</html>
Mi amor por ti es infinito.
Se desespera en la ocupación de la franja de Gaza;
se salpica del polvo cósmico en una estrella distante;
vuela en alas de mariposa, como diría un amigo,
pero antes de la metamorfosis, se arrastra con la oruga,

.
.
.

Mi amor por ti es infinito,
se esconde en las entrelíneas del último libro que leí;
cosquillea los bits fugaces;
vibra, perturba y le da forma al aire,
como el resto de la canción que ahora escucho,

.
.
.

Mi amor por ti es infinito,
dice cosas con el silencio,
balbucea seudopoemas postnadaistas esperanzados,
acompaña las monedas solitarias del pordiosero
y las encaletadas también

.
.
.

Mi amor por ti es infinito,
y por eso tiene que volverse números,
pero no cualquiera,
sino primos,
para que sean familia y
base de alguna encripción misteriosa y algorítmica

.
.
.

Mi amor por ti es infinito,
pero no eterno.
Se está muriendo...


.
.
.



Pdt: A pesar de las características sin ninguna pretensión poética de este escrito, pero fácilmente interpretables como tales, se trata de una microhistoria, y por tanto clasifica de cuento. Los nombres de los personajes han sido cambiados para proteger su identidad. Esta historia está basada en hechos e inspiraciones casi ficticias. Cualquier parecido con la realidad puede ser pura coincidencia ;-)
Jhon Cage entrevista para el [[Museo de Historia de la Computación| http://www.computerhistory.org]] a Ward Cunningham. Hablan sobre lenguajes (perl, squeak), patrones de diseño, wikis, wikipedia, y otros temas. Una nota interesante del entrevistado:
* Cree que el hecho de que haya código fuente y código máquina fue un accidente de la computación, pues en aquella época no existían los recursos para que las máquinas fueran eficientes con ambos, pero a los programadores les interesa leer el código de otros
<html>
<embed id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=-7739076742312910146&hl=es&fs=true" style="width:400px;height:326px" allowFullScreen="true" allowScriptAccess="always" type="application/x-shockwave-flash"> </embed>
</html>
Estos son los enlaces de diferentes sistemas de anotaciones que se pueden usar como alternativa a los sistemas de anotación en la suite ofimática Libre Office (o su contraparte privativa MS Office).

* [[Annotator | http://okfnlabs.org/annotator/]] Un plugin en javascript listo para JQuery. Quizás la primera opción a implementar.
* En LaTeX
** [[pdfcomment.sty | https://bitbucket.org/kleberj/pdfcomment/wiki/Home]]
** [[Módulos para LyX | http://wiki.lyx.org/Layouts/Modules]] incluye varios módulos para trabajar con anotaciones.
** [[TrackChanges | http://trackchanges.sourceforge.net/help.html]]  package adds the ability to collaboratively edit LaTeX documents. It allows multiple editors to make changes and add notes to a document. These changes and notes will be color coded and added to the compiled document.
** [[LaTeX/Footnotes and Margin Notes | http://en.wikibooks.org/wiki/LaTeX/Footnotes_and_Margin_Notes]]
** [[LaTeX style files for the preparation of compuscripts | http://www.autsubmit.com/documents/LaTeXstylefiles.html], es un estilo, pero puede ser interesante ver su resultados.
* En DokuWiki:
** [[userannotations plugin | https://www.dokuwiki.org/plugin:userannotations]]
** [[Comment Plugin | https://www.dokuwiki.org/plugin:comment]]
* Servicios:
** [[Co-ment | http://www.co-ment.com/see/]]: El servicio está basado en software libre. Al parecer para instalarlo se requiere hacer uso de soluciones LAMP. El código está en http://www.co-ment.org/
** [Diigo | https://www.diigo.com/]]: Un servicio que va más allá de las anotaciones.
** http://www.protonotes.com/ : Privativo. Puede tener ideas interesantes en la interface.
* Una selección de [[enlaces sobre anotaciones | http://c2.com/cgi/wiki?WebAnnotation]].
* [[Top Web Annotation Tools: Annotate+Bookmark+Collaborate | http://www.makeuseof.com/tag/web-annotation-tools-research-annotate-collaborate/]]
* [[Annotating the Web with Atom| http://www.ibm.com/developerworks/web/library/wa-annotate/]]
* [[Enso Launcher | http://humanized.com/enso/launcher/fingertips.php]]: Como Zsh + E17 Launcher pero para Windows
** multi-modal, Varios sentidos del aprendiz
** multi-estrato en la códificación: Uso de diferentes códigos (texto, audio, video, audiovisual) para crear un significado más rico. 
*** Incluso la deconstrucción de códigos tiene que ver con esta estratégia multiestrato (pasar del ejecutable al código fuente)
** multi-perspectiva: metadata dinámico, modelos del usuario y ofrecimiento contenidos basado experiencia personalizado.
* [[Life on the cutting edge - ArchLinux| http://thesmallerbang.wordpress.com/2008/10/10/life-on-the-cutting-edge-archlinux/]]: Con un listado bastante suscinto de las características más relevantes de Arch.
* [[Arch Linux: An End To My Distro Shuffle?| http://www.osnews.com/story/5971]]
* [[Arch Linux - a distro collector’s pick| http://polishlinux.org/linux/arch/arch-linux-a-distro-collectors-pick/]]
* [[Arch Linux - Is this really a geek's distro?| http://www.planetoss.com/detail.php?id=7]]
** Algo que yo mismo sentí incluso habiendo empezado hace 12 años con Linux:
<<<
Arch's Advantages:
During installation and configuration arch makes you understand some of the Linux's working mechanisms such as init scripts, xorg configuration, kernel modules. After a successful installation and configuration you feel like you have archived something :) .
<<<
** El foro posterior tiene interesantes comentarios y aportes entre los participantes.
** Contiene notas sobre la instalación de ATI.
* [[Judd Vinet en DistroWatch | http://distrowatch.com/dwres.php?resource=interview-arch]]
<<<
Arch is more-or-less targeted towards experienced linux users, so we anticipated that many users would want to build their own packages or customize existing ones with added features and/or extra optimizations. ABS facilitates that nicely. It makes it very easy to rebuild a package from source code, and it takes very little time to throw together a package build script for a new package, which is how we can depend on the community for a growing package base.
<<<
* [[The Big Arch Linux Interview| http://osnews.com/story/10142/The_Big_Arch_Linux_Interview/page1/]]: Today we are very happy to feature a huge interview with most of the developer team of Arch Linux, including its founder, Judd Vinet. If you are curious about this young and promising Linux distribution, dig in for more!
<<<
An other point i really liked was that the community was really friendly and it was really easy to contribute things to Arch. I can use latest features and software and most of the packages i use myself, so it's not a big deal to upload them to the net. I was searching for a community where i can share my experience with Linux and i found it in Arch.
<<<
: Tobias Powalowski
<<<
Opensource software depend on people who are willing to offer some of their time to all the others. In the end, it's a big virtual team of thousands of people helping each other to have working software they can use as tools for their work
<<<
: Damir Perisa
<<<
I've always liked the potential that Archlinux has. Not only is it a good base to start from, but it's still small enough to change quickly. 
<<<
: Jason Chu
<<<
before discovering Arch, I was a passive F/OSS user. I never cared for contributing to the Open Source community, or even subscribing to forums or mailing lists.

Arch changed turned me upside-down. After the first install, I immediately loved it, and it gave me the will to do something.[...]

To say it all, working on Arch is my way to give back to the community what it brings to me everyday: fun and one of the best OS ever. 
<<<
: Aurelien Foret
<<<
 would not compare them. All have good ideas behind and everybody should decide idependendly what idea suits her/his needs best. As a student in biology, i know to respect the value of diversity. You cannot argue that e.g. a zebra is "better" than an elephant. Both perform important actions in the ecosystem of the sahel zone in Africa and without one of them, the ecosystem would lack important elements in the chains and processes called life. I think that diversity is also the key to linux. You should not try to convince say a Debian user to use something else because you like it. It has to do with ideas. The possibilities today give the people the freedom of choice. This is a strenght opensource software has compared to commercial products. You often have 2 or 3 kind of software to choose to do be productive.

What i would tell a user who asks me about Arch is easy: I would tell her/him my experieces and the reason why i myself use it. If she/he agrees with my arguentation of the idea of ArchLinux how i see it, she/he decides her/himself to try it or not. The only tip i would make is: If you are a newbie and do not care about learning some basics of linux, forget it! Arch is, as i see it, for the lazy user who is still willing to learn things and is not afraid if this involves the command line. You don't need to be a guru or expert in IT, the only thing you should bring with you is the joy to learn how to use a computer efficiently. 
<<<
: Damir Perisa
* [[Arch Iso Live| http://godane.wordpress.com/]]: Un usuario de Arch ha creado una forma fácil probarlo en modo de ~LiveCD e instalarlo. En su blog están los enlaces de descarga a las últimas versiones. En este //tiddler// encontraremos información sobre los detalles de la instalación y los arreglos.
!! Arreglos para la versión 2009-06-12
* ''Al final de proceso de instalación el Grub no cambia ni permite arrancar Arch Iso Live''
<<<
Véase [[Grub]]
<<<
* ''Obtengo el error "{{{kinit opening console no such file}}}" y luego un kernel panic'':
<<<
Véase KernelPanic
<<<
Arch Linux es una distribución de Linux rápida, minimalista y simple. Su gestor de paquetes [[Pacman]], inspirado en los ports de BSD, provee transiciones sencillas entre paquetes binarios y compilaciones desde las fuentes y sus repositorios comunitarios alientan la participación y brindan una gran diversidad de software con gestión comunitaria de la calidad: cualquiera puede subir paquetes allí, pero éstos son votados por otras personas en la comunidad. La instalación es sencilla, si bien muchos parámetros deben ser configurados a mano después de alguna lectura. Está dirigida a personas que no tienen miedo de editar sus archivos de configuración a mano y están cómodos con la consola de comandos, aunque después de la instalación y configuraciones iniciales, puede usarse en modo gráfico sin ningún inconveniente.
Los usuarios de Arch se conocen como //Archers// (arqueros o arqueras).
Para mayor información ver los enlaces relacionados.
* [[La Senda del Arco| http://wiki.archlinux.org/index.php/The_Arch_Way]] (//The Arch Way//): Fue el primer documento que me leí de Arch y el que me hizo que me interesara en la distro, bastante Zen la cosa.
* [[Arc Linux Beginners Guide| http://wiki.archlinux.org/index.php/Beginners_Guide]]
* [[Arc Linux Post Installation Tips| http://wiki.archlinux.org/index.php/Post_Installation_Tips]]: 
** Pendiente>> Consola de colores (quizás installando zsh de una vez) (resuelto)
* [[Useful Linux Applications| http://wiki.archlinux.org/index.php/Useful_Applications]]
** Pendiente>> 
*** Crear un listado con las aplicaciones más usuales/impostantes instaladas en mi entorno personal y los comandos que lo hacen (hecho usando el Tag ArchLinux en este microwiki).
*** Revisar [[MOC| http://moc.daper.net/node/374]] (Music On Console).
* [[ArchLinux PPC | http://www.archlinuxppc.org/]]"Archlinux PPC porting project.  The goal of the project is to make our favourite distribution Archlinux  available for the PPC architecture."
* [[Arch Linux on Freerunner| http://ur1.ca/5vwf]]
* [[Arch Linux Jewellery| http://schwag.archlinux.ca/product/pendant/]]: Pines y decorasolapas con el logo de Arch. Una adquisición venidera (pendiente)
!!Descargas
* [[Servidor espejo de descarga| ftp://mirrors.portafixe.com/archlinux/iso/]]
!!!Md5sum 
Códigos de verificación de descarga:
{{{
146d04c3e34923044fc5cd0b641619df  archlinux-2008.06-core-i686.iso
aa52a3e2ef5bc5df6de20e5869d07c78  archlinux-2008.06-ftp-i686.iso
0c5b426e9cf7628aece3d76c4ded3912  archlinux-2008.06-core-x86_64.iso
}}}
!! Preguntas
* Cómo obtener el misco ASCII Art para el logo de Arch que se ve en esta [[captura de pantalla| http://i121.photobucket.com/albums/o221/weseven/2008-01-16-152851_1280x800_scrot.png]]
* Pendiente: Ojear [[Project ARM :: Arch Rollback Machine| http://bbs.archlinux.org/viewtopic.php?id=53665]]
ArchBang en su versión apeiro testing tiene un problema con las fuentes que se mostraba en la visualización de contenidos con flash y en la lectura de algunos pdfs. Este son los pasos de configuración. Unas fuentes entran en conflicto con otras, pero si se instalan en este orden no hay inconveniente:
{{{
sudo clyde -S cairo-ubuntu fontconfig-ubuntu libxft-ubuntu freetype2-ubuntu
sudo clyde -S libxft cairo fontconfig freetype2
}}}
El Repositorio de los Usuarios de Arch (o AUR) por sus siglas en ingl'es, es un lugar donde los usuarios de esta distribuci'on pueden subir los diferentes paquetes que han hecho para la misma y calificarlos. Un sistema de paquetes no burocr'atico y con control social.
''Enlaces:''
* [[Arch User Repository (AUR)| http://wiki.archlinux.org/index.php/AUR_User_Guidelines]]
** [[Installing programs from the AUR| http://archux.com/page/installing-programs-aur]]
Para instalar un paquete descargado de AUR se hace lo siguiente:
* Instalamos los paquetes que dan soporte a la construcción de otros paquetes:
<<<
''Consola de Superusuario:''
{{{
pacman -S base-devel
}}}
<<<

* Se crea un directorio para la construcci'on de paquetes
<<<
''Consola de Usuario:''
{{{
mkdir ~/builds
}}}
<<<
* Ubicados donde descargamos el paquete, copiamos el paquete descargado al lugar donde se hacen los //builds// y luego, desde esta ubicaci'on, lo descomprimimos.
<<<
''Consola de Usuario:''
{{{
cp <nombrePaquete>.tar.gz ~/builds
cd ~/builds
tar xvzf <nombrePaquete>.tar.gz
}}}
<<<
: esto creará una carpeta con el nombre del paquete. Nos ubicamos en esta carpeta.
* Nos volvemos superusuarios y construimos el paquete. 
|''Ojo:'' Esta operación puede dañar el sistema y es importante hacerla sólo si sabemos que el paquete es confiable.|
<<<
''Consola de Superusuario:''
{{{
makepkg -s --asroot 
}}}
<<<
* Esto crear'a en paquete que contiene el mismo nombre pero termina en {{{pkg.tar.gz}}}. Instalamos este paquete con packman
<<<
''Consola de Superusuario:''
{{{
pacman -U <nombrePaquete>pkg.tar.gz
}}}
<<<
* [[Fully Illustrated| http://www.fullyillustrated.com/]]:(Gracias a Anita) Diseño de personajes, ilustraciones en 2D, graficas en 3D, páginas Web... muy chévere el sitio.
* [[Metalab| http://metalabdesign.com/]]: "We are a tiny interface desing studio that creates simple, fast, hyper usable websites and interfaces"
* [[Nathive| http://www.nathive.org/about/]]:"is a libre software image editor, similar to Adobe Photoshop, Corel Photo-Paint or The GIMP, but focused on usability, logic and providing a smooth learning curve for everyone."
Para navegar este sitio:
* Cada palabra funciona como un enlace y una etiqueta.
* Las palabras más grandes indican aquello de lo que más he escrito.
* Cuando se hace click en una palabra, se despliega un menú con todo lo que esta palabra cataloga. Haciendo click en cada uno de los elementos se abre un nuevo //tiddler// (micropágina) con el contenido.
''Archivo:'' {{{~/.bashrc}}}
{{{
#export PS1="\u@\H > "

# Custom prompt
export PS1="\[\e[31;1m\]\u\[\e[30;1m\]@\[\e[37;1m\]\H \[\e[37;1m\]\W $ \[\e[0m\]"

# Sage environment
export PATH=$PATH:/opt/sage-bin/

# Use a dedicated file for bash aliases
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
}}}
Sobre modelaje de sistemas autónomos:
! A mathematical model for formulating interdependence of autonomy and belonging in systems of systems

[[A mathematical model for formulating interdependence of autonomy and belonging in systems of systems | https://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6384125&url=http%3A%2F%2Fieeexplore.ieee.org%2Fstamp%2Fstamp.jsp%3Ftp%3D%26arnumber%3D6384125]] : Darabi, H.R. Mansouri, M. ; Gorod, A.
Among different proposed characteristics of a system of systems, autonomy and belonging are widely accepted as definitive. Since these two characteristics were perceived as independent from one another, their underlying relationship has not been explicitly explored by scholars. This paper proposes that autonomy and belonging are interdependent characteristics according to the purpose of a system of systems and its constituent elements. The coherence between the purposes of the constituent elements and the system of systems defines the level of belonging, and the independence of these purposes is conceptualized as autonomy. The mathematical formulation of this interdependence is presented to analyze the correlation between these two characteristics.

! Metrics for co-evolving autonomous systems

* [[url| https://dl.acm.org/citation.cfm?id=1865929]]
* Autores: Jack Ring
* Autonomous system innovations have overrun the test and evaluation capability to find problems before they become expensive to fix -- or lethal. The autonomy paradigm demands that an equivalent test and evaluation system be conceived, architected and engineered, operated and evolved. This in turn demands an autonomous test and evaluation enterprise, staffed with competent systemists, as the enabling agent. This paper outlines the metrics and key capabilities for realizing such an enterprise. It features a game-theoretic basis, a model-based systems engineering approach and a four part strategic framework. This paper focuses on the unclassified situation in the U.S. Dept. of Defense. However, these ideas will apply to other domains of autonomy in both the public and private sectors.

! Formal modelling of autonomous systems

* [url| https://dl.acm.org/citation.cfm?id=504110]]

* Resumen:

This work investigates the application of Category Theory to Autonomous Systems. The study arose from a need to provide a mechanism for systems to interact in an autonomous environment. It is observed that many of the difficulties with intercommunicating systems arise from the lack of a well developed formal definition mechanism and that Category Theory offers a possible solution.This work provides a framework for a categorical abstract model of an Autonomous System and outlines a categorical specification language for such a system.

* Autor: W. M. Lee

! Self Organization in Enterprise 2.0 Communities: To Introduce a New Experts’ Exchange Application

* [[url | http://link.springer.com/chapter/10.1007/978-3-642-24806-1_15]] 

* Resumen: 

Web-based communities are a real example for self organisation of people. While everybody talks about Web 2.0 applications, the Enterprise 2.0 discussion runs very slowly due to several social and cultural aspects as well as the contradiction between communities without hierarchies versus well-structured companies. By analysing common things and differences of private and business communities, basic mechanisms are discovered. With SPREE – the knowledge exchange network – an Enterprise 2.0 application created by Deutsche Telekom Laboratories is investigated during the three phases of its pilot trial in the know ledge domain of recommendation. Strengths and weaknesses are analysed and recommendation, how to accompany the introduction of a thematic specific social network is given. By founding a spin-off both, the enterprise and the community track of SPREE will be continued.
Autonomous Systems: Developments and Trends Autonomous Systems: Developments and Trends Look
Inside

* Autor: Gerald Eichler

! Towards an information model of organizations

* Autor: Chun Wei Choo

* [[url|http://choo.fis.utoronto.ca/FIS/respub/CJIS.html]]

* Resumen:

An information model of the organization would provide a theoretical framework for analyzing the information needs of an organization, the processes by which information is acquired and utilized, and the purposes which underlie the use of information. By concentrating on the information-use behavior of organizations, this perspective would complement the large number of studies on the application of information technology and information systems in organizations.

Organization theory recognizes the central role of information in organizations. Research has taken the information processing approach to analyze how an organization searches for information on alternative courses of action, to develop principles for designing organizational structure, and to understand the processes by which an organization creates a shared interpretation of its environment. Its main concern is managerial decision making, and information is treated as an input to this primary activity. A detailed exploration of the nature and role of information that sustains organizational activity is not attempted, and little is known about the behaviors of organizational members as information seekers and users. This paper proposes that an information perspective focusing on the acquisition and use of information in organizations would enrich our understanding of organizational behavior. A selection of perspectives on information in organizations is compared so as to identify a number of conceptual elements that could be used to construct an information model of the organization.
* [[Horarios Vacaciones| http://puj-portal.javeriana.edu.co/portal/page/portal/noticias/Boletin/horario%20biblioteca]]
* http://en.wikipedia.org/wiki/Portable_bicycle
* http://en.wikipedia.org/wiki/A-bike. Se consiguen en Bogotá en la Cra 15 Bis # 39 -14 a un muy buen precio
* http://en.wikipedia.org/wiki/Mini125
* http://en.wikipedia.org/wiki/Strida
* [[A-Bike & Strida Folding Bikes Tested en Gadget Show (vía YouTube) | http://www.youtube.com/watch?v=kVVgsQt1DK4]]. Al parecer Strida es una clara ganadora sobre las demás. Un buen balance entre portabilidad y navegabilidad (es más pesada que las otras, pero suficientemente grande para ser muy manejable).
* [[Evo Cycle (vía YouTube) | http://www.youtube.com/watch?v=XAlWJx7gtbY&NR=1]]. No es una bicicleta plegable, pero tiene ideas interesantes y un video con buena música :) 
* [[Design of Strida - Folding Bike with Triangle (vía Google Video) | http://video.google.co.uk/videoplay?docid=-344646924407298798]]. El autor habla de cómo creó la Strida.
!!Azub Bike
[>img[Biciclata Azub|http://www.azub.cz/en/img/bufo/azub-bufo-recumbent-257.jpg]]
* [[Azub Bike| http://www.azub.cz/en/mini.php]]: No es una bicicleta plegable, pero es muy interesante
Otros diseños de bicicletas reclinadas:
* [[Recumbet Blog| http://www.recumbentblog.com/]]
* [[Greenspeed| http://www.greenspeed.com.au/gshome.html]] Creadores de bicicletas reclinadas australianos (con distribución en EEUU y Europa).
* [[Treeking Bikes| http://www.bentrideronline.com/2004June/trekkingbikes.htm]]


Algunos diseños revolucionarios:
* http://ridethisbike.com/2007/04/suitcase-folding-bike.html
* http://ridethisbike.com/2007/01/answers-locust-folding-bike.html Mi favorita
* http://www.yankodesign.com/?p=307 "Extremadamente conceptual", por ejemplo no tiene cadena ni otro medio de transmisión.
* [[http://picocool.com/go/news/post/frog-inspired-bike-design/|PiccoCool Frog Bike]]
* Microbike:

Gadgets:

* [[Open Bicycle Computer | http://www.obico.de]]: Se podría lograr algo similar con el Freerunner

Más del Gadget Show, aunque no tiene que ver con bicicletas:

* [[The Gadget Show - (We all live in a) Personal Submarine | http://www.youtube.com/watch?v=fX8IZfosPxo]]
* [[The Gadget Show - The Critical List: Screens | http://www.youtube.com/watch?v=u2WqENUZl9s]]
Big Bug Bunny es un filme animado hecho totalmente en Blender.
* [[Yo Frankie|YoFrankie]]: Es un juego basado en uno de los personajes de la película.
* Entrevista en la televisión alemana con Ton Roosendaal y Sacha Goedegebure del equipo de producción (con subtítulos en español gracias a dotSUB).
<<<
<html>
<iframe src="http://dotsub.com/media/a363406a-4d9a-4ca0-9af8-ca767ef52d18/e/m" frameborder="0" width="420" height="347"></iframe>
</html>
<<<
"[[BitNami| http://bitnami.org/]] makes installing wikis, blogs, CRM systems a simple and enjoyable process. Get your favorite open source apps in ready to run packages."
* [[BitNami Infrastructure Stacks| http://bitnami.org/stacks]]: "Infrastructure stacks are designed for developers and system administrators and provide you a way of installing a LAMP or Ruby environment, but do not include any extra applications. It is not necessary to download an infrastructure stack to use an application stack."
* [[How to install and make public any BitNami Stack| http://bitnami.org/article/how-to-install-and-make-public-any-bitnami-stack]]
* [[Comunidades de blender en varios idiomas| http://www.blender.org/community/user-community/#c473]]
* [[Tutoriales de Planet@ Blender| http://mipagina.cantv.net/planetablender/tutoriales/index.htm]]
* [[Tutoriales De Blender 3D| http://www.programacion-ard.com/blender3d.php]]: lástima la página tan cargada de publicidad, pero al parecer tienen cierta información valiosa.
* [[Aprende Blender En 24h Blender & Yafray| http://www.programacion-ard.com/aprenda_blender_en_24h.php]], el tutorial es bueno y bien ilustrado, lo de las 24 horas pues ...
* [[Niel3D| http://www.niel3d.com/niel2/]]: Comunidad de Blender en español, con foros tutoriales y otros recursos.
* [[Canguro 3D| http://www.canguro3d.com/public/]]
* [[Blender Art| http://www.blenderart.org/issues/]]: Un excelente Magazine digital sobre animación con Blender.
* Un largometraje colombiano hecho en Blender
<<<
<html>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/-8bYQJOjERk&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-8bYQJOjERk&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
</html>
<<<
* [[Eternal Lands| http://www.eternal-lands.com/]]: Un juego masivo multijugador. Los personajes fueron hechos en Blender.
* [[Tics-Tag-Tongue| http://tics-tag-tongue.blogspot.com/]]: El blog de Carlos Manuel Estevez (Karel)
* [[Eliax | http://eliax.com/index.php]]: Uno de los amigos que conocí en la Campus de El Salvador, con interesantes //post// sobre diversos temas. En particular me gusta mucho leer los de Ciencia.
* [[Blog de Teemu Leinonen | http://flosse.dicole.org/]]. Me gustan mucho:
** [[The Girl Effect | http://flosse.dicole.org/?item=the-girl-effect-and-value-creation]]
** [[Campus Party Colombia: Learning with New Media | http://flosse.dicole.org/?item=campus-party-colombia-learning-with-new-media]]
* [[Jorge Ernesto Guevara | http://www.el-directorio.org/jegc/Blog]]: Chévere la discusión sobre las JSL 2008... aunque hay más cosas que argumentar, que expero extender en Colibri.
* [[Ceronman | http://wiki.freaks-unidos.net/weblogs/ceronman/]]
* [[Alejo | http://azul.freaks-unidos.net/]]
* [[Ulises | http://www.iered.org/wiki/ulises/blog]]
* [[Arhuaco | http://wiki.freaks-unidos.net/weblogs/arhuaco/]]
* [[July | http://mijuny.blogspot.com/]]
* [[Carolina Botero | http://www.karisma.org.co/carobotero/]]
* [[Alerios | http://alerios.blogspot.com/]]
* [[Santiago | http://afrodita.unicauca.edu.co/~santiago/blog/]]
* [[El sitio Web de Lupa | http://lupa.homelinux.com/]]: Otro Amigo uruguayo que conocí en la Campus de El Salvador.
** [[Carta Campus Party 2008 | http://lupa.homelinux.com/?p=134]]
** [[Una tarde en el centro de San Salvador | http://lupa.homelinux.com/?p=153]]
** [[Construyendo posibles.... primer video de Conbronca| http://www.conbronca.org/?q=node/17]]: Un video sobre recicladores en Uruguay hecho totalmente con software libre.
* [[Simple Identi.ca to Jaiku Bridge | http://blog.valkertown.org/2008/11/10/simple_identica_to_jaiku_bridge/]]: No sólo el post con código en Python, sino también el Blog como un todo se ven muy interesantes.
* [[Tumbo| http://tumbo.wordpress.com/]]: Con algunas reflexiones sobre lo digital bien interesantes.
* [[Ciberciudadanías| http://ciberciudadanias.blogspot.com/]]
Es un programa para quemar CD/~DVDs hecho en librerías gtk que ya viene listo para integrarse con un entorno Gnome, sin embargo se puede ejecutar sin las dependencias de éste entorno y sin la integración con [[Nautilus]] lo cual baja las dependecias de 9.6 Mb a 1.6. Para instalar la versión liviana en Arch Linux hacemos:
<<<
''Consola superusuario''
{{{
yaourt brasero-lite
}}}
<<<
''Advertencia:'' Para hacer que brasero funcione correctamente es importante tener iniciados los servicios de {{{dbus}}} y {{{hal}}} como se indica en [[Iniciar servicios en Arch Linux|ServiciosArch]]
!! Bugs:
Por lo pronto brasero me arroja un error porque no reconoce el CD/DVD diciendo que el medio no está presente. Otro quemador minimalista que funciona bien es Gnomebaker. Para instalarlo hacemos:
<<<
''Consola superusuario''
{{{
yaourt gnomebaker
}}}
<<<
[img[http://presentationzen.blogs.com/presentationzen/images/jobs_intel_1.jpg]]
[img[http://presentationzen.blogs.com/presentationzen/images/gates_bullets.jpg]]
<<<
Yet slideware -computer programs for presentations -is everywhere: in corporate America, in government bureaucracies, even in our schools. Several hundred million copies of Microsoft PowerPoint are churning out trillions of slides each year. Slideware may help speakers outline their talks, but convenience for the speaker can be punishing to both content and audience. The standard PowerPoint presentation elevates format over content, betraying an attitude of commercialism that turns everything into a sales pitch. 
<<<
: En: [[PowerPoint Is Evil|http://www.wired.com/wired/archive/11.09/ppt2.html]] por Edward Tufte //Power Corrupts. ~PowerPoint Corrupts Absolutely.//

<<slider chkSliderBulletPointsJobsVsGates BulletPointsJobsVsGates 'Ejemplo: Jobs vs Gates »' 'Ejemplo: Jobs vs Gates'>>
* http://www.theworldcafe.com/
** [[¿Qué es el World Café?| http://www.theworldcafe.com/translations/SpanishwhatisTWC.pdf]]
** [[¿Qué es el World Café? (portugues)| http://www.theworldcafe.com/translations/World_Cafe_Para_Viagem.pdf]]
* [[Capuccino| http://cappuccino.org/]]: "is an open source framework that makes it easy to build desktop-caliber applications that run in a web browser".
* [[280Slides| http://280slides.com/]]: el ejemplo más notable de lo que es posible hacer con capuccino.
* [[280 Slides: Like Apple Keynote, But Online| http://www.techcrunch.com/2008/06/05/280-north-launches-its-online-keynote-280-slides/]]
* [[280 North| http://280north.com/index.php]]: La empresa detrás de Capuccino y ~280Slides.
* Podcast [[An interview with 280 North on Objective-J and Cappuccino| http://ajaxian.com/archives/an-interview-with-280-north-on-objective-j-and-cappuccino]]: Entrevista con los creadores de ~280Slides y Cappuccino.
* [[Atlas| http://280atlas.com/|]]: "is a visual development tool for creating web applications using the Cappuccino framework".
** [[Announcing Atlas| http://280north.com/blog/2009/02/announcing-atlas/]]: Un post el el blog de ~280North acerca del lanzamiento de este framework con la cita de descripción anterior y un video introductorio.
** [[Atlas: Under the Hood| http://carsonified.com/blog/features/atlas-under-the-hood/]]: Una presentación de Atlas en el blog de Thinkvitamin.
** [[Accessibility & Degradation in Cappuccino| http://rossboucher.com/2009/02/26/accessibility-degradation-in-cappuccino/]]: Un post de uno de los autores sobre asuntos referidos a accesibilidad para aplicaciones construidas en Javascript/Cappuccino. Hay varios asuntos no resueltos, que al parecer quedarán más claros cuando se libere Atlas.
* [[What is a Cloud Application| http://wiki.sproutcore.com/What-is-a-Cloud-Application]] ~SproutCore es un enfoque alternativo al de cappuccino para construir applicaciones Web similares. En este post explican su enfoque.
David Cavallo, investigador del M.I.T y su grupo //Long life kindergarden// afirman en su artículo que:
Los cambios en escalas macro requieren:
* Volición
* Apropiación y experimentación: la adaptación requiere:
** la interpretación propia
** responder a necesidades significativas
* Ejemplares: Ejemplos concretos de ideas.
* Comunidad y comunicación (ejemplo redes p2p)
* Retroalimentación
* Depuración
* Materiales:
** Entendidos como cosas que facilitan el trabajo con nuevos paradigmas (ejemplo: microwikis)
** NO instancias nuevas de los viejos paradigmas (ejemplos: LMS... sólo sirven para lentas trancisiones).
* Lenguajes: emplear términos adecuados y eventualmente nuevos para hablar de nuevas cosas.
* Procesos de abajo hacia arriba y emergentes (Ejp: Wikis en la empresa)
* Tiempo y continuidad
* Esperanza y espectativa: Creencia en:
** El deseo
** La posibilidad
Nota: Usar los macros de Tiddly investigados para convertir esto en un //slide// progresivo (chévere mantener el caracter de grafo)
<<slideShow noClicks>>
-s-
! Esta charla en breve ...
* Una pequeña disgresión sobre las presentaciones a lo //Power Point// (//[[Bullet points make us stupid|BulletPointsMakeUsStupid]]//, espero que el hipertexto lo remedie)
* La fuente: "Microlearning: Emerging Concepts, Practices and Technologies after e-Learning."
* [[Los encuentros con lo micro|EncuentrosConLoMicro]]
* [[Por qué el énfasis en lo micro|EnfasisEnLoMicro]]?
* Qué es [[Microaprendizaje]]?
* Qué son [[Microcontenidos]]?
* [[La concreción de una historia personal|http://www.mail-archive.com/colibri@listas.el-directorio.org/msg07617.html]] (al final mucho se reduce a ellas).
* Lo clave:
** [[Entendible Extendible Emergente]]
* [[Conversaciones con HAL| http://los-pajaros-de-hogano.blogspot.com/search/label/Conversaciones%20con%20HAL]]: Muestra cómo usar un conjunto de programas de modo que la salida y la entrada de la consola de comandos de Unix tenga un comportamiento similar a un chatbot.
* [[Piloto atomático para gmail| http://mail.google.com/mail/help/autopilot/index.html]]: Una forma divertida de responderle a los Spammers. Es algo que hago en persona por divertimento, pero usar Chatbots para ello es aún más divertido. Hay referencias a sistemas como Eliza y otros antecesores, que el sistema emplea. Chévere implementarlo como una extensión de Thunderbird.
!!! Montando un chroot

Para hacer un chroot en una partición ya hecha, como superusuario hacemos lo siguiente:

* Montamos /proc a la partición donde ya instalamos nuestra distribución (digamos que es {{{/mnt/newroot}}})

{{{
mount -o bind /proc/ /mnt/newroot/proc/
}}}

Es importante montar en el chroot las particiones que fueran necesarias, por ejemplo:
{{{
mount -t proc proc /mnt/newroot/proc/
mount -t sysfs sys /mnt/newroot/sys/
mount -o bind /dev /mnt/newroot/dev/
mount -t devpts pts /mnt/newroot/dev/pts
}}}

* Y copiamos la información de la red:
{{{
cp -L /etc/resolv.conf /mnt/newroot/etc/resolv.conf
}}}
* Finalmente entramos al chroot:

{{{
chroot /mnt/newroot/
}}}

Puede que en ocasiones queramos actualizar en este chroot, sólo algunos paquetes, como el kernel y
reconstruirlos, lo cual es supremanente útil cuando estamos recuperando un sistema de una falla
crítica, en este caso:

{{{
pacman -S --needed linux
}}}


**Enlaces**

[[Install ArchLinux from an existing Linux| https://wiki.archlinux.org/index.php/Install_from_Existing_Linux]]
Citas en diferentes libros, página, artículos, listas de discusión, etc.
<<<
"En este puñetazo propinado por Vargas a García a causa de amores más o menos presuntos dedicados por Márquez a la mujer de Llosa, y precisamente en Méjico, se unen tres características esenciales de lo hispano: la contundencia expresiva (el puñetazo), la causa prima (el honor) y el concepto (los pecados de amor hay que ‘lavarlos' en público y con sangre)".
<<<
: Alberto Diaz Rueda y José Casan Herrera Referenciados en [[El puñetazo de Vargas Llosa| http://comunidad.lavanguardia.es/component/20090407/1038855/el-punetazo-de-vargas-llosa.xhtml]]
Sobre esto fue mi tesis de pregrado. Acá algunos enlaces sobre ideas complementarias y relacionadas.
* [[Useful.com| http://www2.userful.com/]]: una compañía que fabrica soluciones de clientes livianos y administración remota de ~PCs basados en Linux.
** [[Useful multiplier: 1 Computer. 10 Users|http://www2.userful.com/products/userful-multiplier]]
/***
|Name:|CloseOnCancelPlugin|
|Description:|Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.commands.cancelTiddler,{

        handler_mptw_orig_closeUnsaved: config.commands.cancelTiddler.handler,

        handler: function(event,src,title) {
                this.handler_mptw_orig_closeUnsaved(event,src,title);
                if (!store.tiddlerExists(title) && !store.isShadowTiddler(title))
                        story.closeTiddler(title,true);
                return false;
        }

});

//}}}
<<<
Cobalt is a free and open source metaverse browser and construction toolkit for accessing, creating, and publishing hyperlinked multi-user virtual worlds.  Powered by Croquet technology, Cobalt uses peer-based messaging to eliminate the need for virtual world servers and makes it very simple to create and securely share deeply collaborative virtual worlds that run on all major software operating systems.  Without any licensing fees, users and developers can freely build and share highly capable multi-user virtual workspaces, game-based learning and training environments, or even just a place to share and meet with friends.
<<<
(de la página Web)
* [[Página principal de Cobalt| http://www.duke.edu/~julian/Cobalt/Home.html]]
* [[Open Simulator| http://opensimulator.org/wiki/Main_Page]]: Con intensiones similares a Croquet/Cobalt
!! Instalación y ejecución
* Se descarga el programa de la [[página de descargas de Cobalt|http://www.duke.edu/~julian/Cobalt/Downloads.html]].
* Se descomprime.
* Dependiendo del sistema operativo se ejecuta el exe, para Windows, el app para Mac y el sh para Linux.
* ''Advertencia:'' Si se entra al modo de pantalla completa y se regresa de nuevo al modo normal, puede dañarse el video de toda la pantalla. No es grave, pero queda pixelado y hay que reiniciar el modo gráfico (en Linux).
----
* [[My experience with running an opensource project| http://ondrejcertik.blogspot.com/2009/05/my-experience-with-running-opensource.html]] por Ondrej Certik, creador de SymPy.
* [[Starting A Successful Open Source Project| http://jermolene.com/2007/08/05/how-to-start-a-successful-open-source-project/]]. El creador de Tiddlywiki da consejos a partir de la experiencia con este acerca de cómo crear proyectos de software libre exitosos. Esta es la cita que más me gusta: 
<<<
"//You have to make it easy for your users to find and use your source code//". In the case of TiddlyWiki, the website is the product is the code is the documentation
[...] 
The macro isn’t particularly complicated in programming terms, but it radically simplifies the annotation of data, and demonstrates a beautiful blurring of boundaries between programming and writing.
<<<
: Sólo he visto este tipo de elucidación, además de en Tiddlywiki, en [[Squeak]] y [[Leo]].
----
* [[OSS Movement| http://www.ossmovement.org/]]
* [[Calls for open source government| http://news.bbc.co.uk/2/hi/technology/7841486.stm]]
* [[Open Source Activity Map| http://www.redhat.com/about/where-is-open-source/activity/]]
* [[Collective Problem Solving | http://ishi.lanl.gov/Documents_1/NLJsims_AB_v11.pdf]]... chévere, si lo hubiera encontrado antes de terminar mi tesis!!
* [[Un algoritmo capaz de descubrir leyes científicas| http://weblogs.madrimasd.org/sistemas_inteligentes/archive/2009/04/10/116205.aspx]]
!! Cogniciones distribuidas.
Consideraciones psicológicas y educativas. Gavriel Salomon (Compilador). Amorrortu Editores. Argentina 1993.
* [[Página Web del libro en la editorial| http://www.amorrortueditores.com/libro.php?p_id_libro=463]]
* [[Distribuidores para Colombia| http://www.amorrortueditores.com/lib_distrib.php]]
<<<
LIBRERÍA Y DISTRIBUIDORA LERNER LTDA.
Av. Jiménez No. 4-35
Santa Fe de Bogotá D.C. - Bogotá
Tel.: 243 - 0567 / 334 - 7826
E-mail: lerner-centro@librerialerner.com.co

FONDO DE CULTURA ECONÓMICA LTDA.
Calle 11 No 5-60
Bogotá
Tel.: 283-2200

LIBRERÍA CIENTÍFICA LTDA.
Calle 51 (Boyacá) 49-52 Apartado 4799
Medellín
Tel.: 251 - 8929 / 231 - 2250
E-mail: libcientifica@epm.net.co
<<<
! Autores y obras:
* [[Matt Fraction | http://www.mattfraction.com/]] (Casanova, 30 días de noche)
* [[Leight Gallagher | http://leighgallagher.com/]] (Bionicle Comics)
** [[Bionicle Comics Online | http://bionicle.lego.com/en-us/comics/default.aspx]]: Muy chéveres como experimento narrativo. La unidad de narración de este comic no es la página, como en los comics análogos, sino la viñeta.
* [[Cibertito | http://www.cibertito.com]] Una interesante propuesta nacional por Geek DT
** [[Cibertito un nuevo Comic colombiano del software libre | http://muribageek.com/2008/09/cibertito-un-nuevo-comic-colombiano-dle-software-libre.html]], con un posterior hilo de discusión sobre humor //geek// y etiquetas llamativas en una camiseta.
* [[Una adicta al comic necesaria | http://diosa-en-disfra.livejournal.com/]]
* [[comics de geometría|http://www.savoir-sans-frontieres.com/JPP/telechargeables/ESPANOL/geometricon_es.pdf]]
* [[comics de topología|http://www.savoir-sans-frontieres.com/JPP/telechargeables/ESPANOL/El_Topologicon_es.pdf]]
* [[25 Great Calvin and Hobbes Strips| http://progressiveboink.com/archive/calvinhobbes.htm]]: Calvin & Hobes es uno de mis comics favoritos de todos los tiempos. Buenas historias, buena narrativa, buen arte. En este artículo le rinden un pequeño homenaje.
* [[El cómic de Martin Luther King que inspiró a los activistas egipcios| http://alt1040.com/2011/02/el-comic-de-martin-luther-king-que-inspiro-a-los-activistas-egipcios]]
** [[Versión en Inglés de Martin Luther King "Montgomery Story" Comic Book| http://www.ep.tc/mlk/]]
* [[Wolverine: Origin (Paperback)| http://www.amazon.com/gp/product/ref=pe_36970_11895180_as_img_1/?ASIN=0785137270]] (200 pgs) pendiente.
! Sitios
* [[Stripped Books | http://www.strippedbooks.com/]]
* [[Phonogram Comic | http://www.phonogramcomic.com/]]
* http://striporama.blogger.ba/
* http://www.y8.com/games/Hulk_Smash_Up
* [[Ph.D Comics| http://www.phdcomics.com/]]

! Leyendo:
* [[Chrome Google Web Browser Comic | http://www.scottmccloud.com/googlechrome/index.html]] (Scott McCloud)

! Por leer:
* [[Order of the stick | http://www.giantitp.com/Comics.html]]
* [[Looking for group | http://www.lfgcomic.com/]]
Para hacer la clásica secuencias {{{./configure, make, make install}}} se requiere antes algunas dependencias que en un sistema basado en Debian son resueltas con:

{{{apt-get install gcc g++}}}
* [[SFLC tech director wants to liberate the cloud| http://arstechnica.com/open-source/news/2009/02/ars-at-scale-sflc-tech-director-wants-to-liberate-the-cloud.ars]]: "During a presentation at the Southern California Linux Expo, Software Freedom Law Center technical director Bradley Kuhn explained how the free software community can overcome the challenges posed by cloud computing."
* [[RMS on Cloud Computing: “Stupidity”| http://autonomo.us/2008/09/rms-on-cloud-computing-stupidity/]]: Complementa el artículo anterior. Con interesantes analogías y la idea de control absoluto versus autonomía.
* [[Open Cloud Manifesto| http://opencloudmanifesto.org/index.htm]]
** [[Open Cloud Manifesto Introduction| http://opencloudmanifesto.org/opencloudmanifesto1.htm]]
* [[Eucalyptus in the cloud: researchers commercialize OSS project| http://arstechnica.com/open-source/news/2009/04/researchers-to-commercialize-open-source-eucalyptus-project.ars]]: "The researchers behind the open source Eucalyptus project have launched a company to commercialize the technology. They plan to offer services and support to companies that want to use Eucalyptus to build self-hosted elastic computing clouds."
* [[Hands on: Canonical aims for the cloud with new Ubuntu One| http://arstechnica.com/open-source/news/2009/05/hands-on-canonical-aims-for-the-cloud-with-new-ubuntu-one.ars/2]]: Canonical is preparing to launch Ubuntu One, a new Web service that will offer cloud synchronization and collaboration features. Ars gives you a detailed hands-on look at the service and some of the underlying technology.
* [[Not So Fast Public Cloud: Big Players Still Run Privately| http://siliconangle.com/ver2/2009/08/17/not-so-fast-public-cloud-big-players-still-run-privately/?utm_campaign=BackType]] algunos argumentos a favor de las nubes públicas, pero también un estado realista acerca de por qué no ocurrirán pronto. Proyectos como Renada deberían ayudar a que esto pase más rápido.
!! Mozilla Wave
Una arquitectura cliente servidor que permite colocar cosas como los tabuladores, las historia de navegación y los marcadores en la nube, de forma que se puede continuar la navegación desde cualquier parte. (pendiente probarlo después, cuando esté más estable) 
* [[First look: Mozilla Weave 0.2 puts Firefox in the cloud| http://arstechnica.com/old/content/2008/07/first-look-mozilla-weave-0-2-puts-firefox-in-the-cloud.ars]]
* [[Hands on with Mozilla Weave: Personalize your own cloud| http://arstechnica.com/software/news/2007/12/hands-on-with-mozilla-weave-personalize-your-own-cloud.ars]]
* [[Impossible thing #6: Closing the Digital Divide| http://www.freesoftwaremagazine.com/books/mihrfc/impossible_thing_6_olpc_one_laptop_per_child]]
* [[Gdium.Com is launching the One Laptop Per Hacker program| http://www.gdium.com/group/58/home]]
* [[Proyecto Flor de Ceibo| http://www.flordeceibo.edu.uy/]]: implementado el Uruguay para hacer seguimiento a la implementación de los computadores XO de olpc.
* [[Nuevas tecnologías en las aulas: un problema de modelo, no de cantidad| http://www.magisnet.com/noticia.asp?ref=5015]]
<<<
Hace unas semanas, un directivo de una conocida marca de ordenadores decía a Magisterio: “La diferencia entre un centro como cliente y una administración (una Consejería) como cliente es que el político compra ordenadores, y el centro compra proyectos”.
<<<
: hay un elemento extra a considerar: en la sección "cálculo es complejo" habría que cuestionar si la correlación es efectiva.
* [[Mapa conceptual sobre comunidades de práctica| http://cmap.uiah.fi/servlet/SBReadResourceServlet?rid=1146841546443_1137514659_4658&partName=htmltext]].
''EL SOFTWARE LIBRE TIENE LICENCIAS!!!'' (''No es software sin licencia''')
* Para garantizar las libertades, el software libre se acoge a un conjunto de licencias como:
** GPL
** Affero GPL
** LGPL
** BSD
** MIT

Entre otras.
Acá están ejemplos de los archivos de configuración usuales de mi máquina.
El sistema de configuración de video en Arch es bastante sencillo (pero requiere conocimientos de la consola de comandos y edición de archivos). Lo chévere de la idea KISS es que iniciamos con una configuración muy sencilla, usando un servidor de video que es prácticamente soportado en cualquier lado, llamado ~Xvesa y a partir de allí se pueden lograr configuraciones más complejas.
* [[Xorg en el wiki de Arch| http://wiki.archlinux.org/index.php/Xorg]]
!! Instalación de los paquetes básicos
* Instalamos el metapaquete ~Xorg:
<<<
''Consola Superusuario:''
{{{
pacman -S xorg
}}}
Es clave que se instalen los siguientes paquetes:
* xf86-input-keyboard
* xf86-input-mouse
Para más información: [[post sobre la configuración de X en los foros en español de Arch| http://archlinux-es.org/foros/viewtopic.php?f=9&t=1128]]
<<<
!! Detección de hardware
''Advertencia: Este método está siendo cambiado por otros debido a que hwd no está siendo ya más mantenido''
El paquete se llama {{{hdw}}}. Para instalarlo hacemos:
<<<
''Consola Superusuario:''
{{{
pacman -S hwd
}}}
<<<
Luego actualizamos los archivos de configuración de hardware presentes con:
<<<
''Consola Superusuario:''
{{{
hwd -u
}}}
<<<
* Para detectar el video:
<<<
''Consola Superusuario:''
{{{
hwd -s
}}}
<<<
La utilidad {{{hwd}}} también puede producir archivos de configuración de acuerdo a la detección que haya hecho. Por ejemplo, para producir el archivo de configuración del modo gráficos hacemos
<<<
''Consola Superusuario:''
{{{
hwd -xa
}}}
<<<
Al archivo generado tenemos que comentarle dos líneas de módulos, que carga por omisión y que no son provistos por la instalación estándar de X. 
<<<
''Archivo:'' {{{/etc/X11/xorg.conf}}}
{{{
# Load           "type1"
# Load           "record"
}}}
<<<
* [[Agregamos un usuario y definimos la contraseña|AdministrarUsuariosLinux]]
* Nos convertimos en el usuario anterior:
<<<
''Consola Superusuario:''
{{{
su tester
}}}
<<<
* Copiamos el archivo plantilla de la configuración gráfica al home de este usuario
<<<
''Consola Usuario:''
{{{
cp /etc/skel/.xinitrc ~/
}}}
<<<
* y editamos el archivo agregándole las lIneas que corresponden al entorno gráfico que tenemos instalado. Por ejemplo, si tenemos [[LXDE]] nuestro archivo debe quedar asI:
<<<
''Archivo:'' {{{~/.xinitrc}}}
{{{
#!/bin/sh

#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
#
setxkbmap es
exec startlxde
# exec gnome-session
# exec startkde
}}}
<<<
!!Protector de Pantalla
Podemos querer algo de privacidad en nuestra mAquina cuando nos ausentamos por largos periodos de tiempo. Los protectores de pantalla (aunque la razOn ahora es mAs proteger la privacidad que la pantalla) como Xscreensaver o Electricsheep pueden ayudarnos. Para instalarlos hacemos (suponemos que se ha instalado previamente [[yaourt|Yaourt]]):
<<<
''Consola Superusuario:''
{{{
yaourt electricsheep
}}}
<<<
!! Nvidia
Para esta tarjeta de video se debe instalar el servidor adecuado:
<<<
''Consola Superusuario:''
{{{
pacman -S xf86-video-nv
}}}
<<<
Los caracteres entre paréntesis cuadrados se entienden como una tecla con ese caracter encima. Por ejemplo [Esc] quiere decir presionar la tecla escape mientras que [e][s][c] quiere decir presionar las teclas: [e] luego [s] y luego [c].
[>img[http://www.flumotion.net/images/thumbnail_cortado_sample.png]]
* [[Cortado Fluendo| http://www.flumotion.net/cortado/]]: "In order to make your streams as widely available as possible, we provide the Cortado Java applet as free software under the GPL. By embedding this applet in your website, you can give viewers access to streams from either the Flumotion streaming server or play a local file from your server without the need for a locally installed media player supporting the correct formats on the visitori's computer."
* [[Cortado, reproductor Java de vídeos en streaming| http://www.eldemonionegro.com/wordpress/etiquetas/fluendo]]: Un post de un blog que muestra como configurarlo y un demo de un video de Monty Python, embebido vía java en la página.
* La wikipedia ya está usando Cortado para sus videos como lo muestra este [[artículo sobre Girasoles en la wikipedia| http://es.wikipedia.org/wiki/Chimalate]]
Aun no funciona del todo bien, pero es chévere ver alternativas al ubicuo privativo y monopolizado Flash para el video en línea. Ojalá madure más y flash se acabé (o se libere, lo que pase primero).
Esto me recuerda que Steve Jobs lucho en contra del formato ogg theora como parte del estandar HTML para colocar video en línea :-S
* [[Community Created Content: Law Busines and Politics | http://turre.com/images/stories/books/webkirja_koko_optimoitu2.pdf]] (pdf)
** Un grupo de agencias que financia la innovación y la investigación en temas relacionados con economía abierta, software de código abierto y otros temas relacionados, financió el estudio.
* [[ccPublisher| http://wiki.creativecommons.org/CcPublisher]]: Un programa que permite publicar fácilmente contenido bajo licencias Creative Commons en Internet Archive. Estoy indagando en cómo usarlo con mis estudiantes para facilitar la publicación de sus trabajos, junto con [[los pipes de Deri| http://pipes.deri.org/]]
* [[Propiedad, libertad y sociedad | http://www.isil.org/resources/introduction.swf]] (flash): Una obra de Ken Schoolland (textos) y Lux Lucre (animación) bajo licencia ~CCByNCND (la licencia no lo permite, pero sería chévere poder traducirla).
* [[Creative Commons Labs| http://labs.creativecommons.org/]]
* [[Sitio Web de Laurence Lessing | http://lessig.org/]]
* [[Se creativo | http://cyber.law.harvard.edu/blogs/gems/ion/secreativo.swf]] (flash) Video que explica las motivaciones e intensiones de creative commons de manera sencilla.
* [[The Politics of Libre Commons| http://firstmonday.org/issues/issue11_9/berry/index.html]]
* [[Nothing Reserved License| http://nothingreserved.interrupciones.net/]]
Croquet es un creador de metaversos inmersivos en 2D/3D.

* [[Página de Croquet en El Directorio | http://www.el-directorio.org/Croquet]]
* [[Freecad in Croquet | http://jlombardi.blogspot.com/2008/04/freecad-in-croquet.html]]: Una herramienta CAD para fácil construcción de modelos en 3D en croquet. La licencia es libre para usos educativos, pero al parecer están migrando también la licencia.
Algunos Paquetes para limpiar luego de la instación de CTKArch:

{{{
yaourt -Rd xf86-video-s3virge xf86-video-cirrus xf86-video-ati xf86-video-neomagic xf86-video-s3 xf86-video-xgi xf86-video-siliconmotion xf86-video-nouveau ati-dri xf86-video-sis xf86-video-tdfx xf86-video-trident xf86-video-tseng sis-dri tdfx-dri

}}}
La intensión de este lugar es mostrar la historia de un proyecto para construir nubes de etiquetas a partir de nubes de etiquetas, de forma que se facilite el tránsito de los saberes entre individuos y colectivos y viceversa, mostrando las personas y los temas que los ocupan. La intensión es articular a partir de estas iniciativas a las diferentes formas de presencia de las personas de la comunidad de software libre de Colombia (en principio, luego el mundo :-P)
* El [[mapa mental de la charla sobre Cumulus| https://files.getdropbox.com/u/394620/Conferencias/NubesDeEtiquetas/cumulusRedesSem%C3%A1nticasYNubesDeEtiquetas.mm]] sin imágenes.
* El [[mapa mental de la charla sobre Cumulus comprimido| https://files.getdropbox.com/u/394620/Conferencias/NubesDeEtiquetas.tar.gz]]
Posible infraestructura:
* FeedVis: --descartado, el código no está mantenido y no se comporta como esperamos. Ver en enlace para más detalles--. Andphe en identica tiene una versión de pruebas funcionando (ver mensajes en el canal).
* [[Social-networking open source visualization aids| http://www.ibm.com/developerworks/opensource/library/os-socialtools/?ca-har-blog20090106]]
** [[Nathan Harrington| http://nathanharrington.info/]], un programador que ha trabajado con Social Networking visualization. Tiene un interesante post sobre cómo hacer que flash no se apodere del navegador.
* http://activitystrea.ms/ : Una iniciativa relacionada. No usa nubes de etiquetas sino //Atoms// para relacionar la actividad de las personas, por lo cual me parece más relacionada con "eventos", que con "temas", pero me parece que se pueden conectar.
** [[Video introductorio sobre Activity Stream| http://sixx.se/nextgen/2009/01/17/open-activity-streams/]]
!! Charla 
* Síncrona: #colibri en irc.freenode.org
* Asíncrona: !cumulus en identi.ca
Estos son los cursos que estoy dictando:
Cynin es un sistema de gestión de conocimiento que integra varias tecnologías de la web social colaborativa: Wikis, Blogs, repositorios de archivos, audio, imagen y video. Etiquetado, referenciación y puntuación social. Para mayor información ver:
||''Borrador''||

Una vez instalado y ejecutándose Zope como se indica en [[Cynin: Instalación de Zope|CyninInstalacionZope]], prodecemos a crear nuestro primer sitio de Cyn.in funcional. Para esto:

* Entramos a la dirección {{{localhost:8080}}} de la máquina donde se ejecuta zope. Veremos la página web de bienvenida de Zope.
* Entramos a la interface de administración, para lo cual ingresamos a {{{localhost:8080/manage}}}.  Cuando se nos pida un par usuario/contraseña, el que hay preconfigurado es: admin/secret
* Una vez adentro, estaremos en el folder raíz. Allí veremos una lista desplegable que dice "Select type to add...", al lado de un botón que dice "Add". Desplegamos la lista y seleccionamos "Plone Site". Llenamos el formulario para incluir los detalles de dicho sitio.
* Ahora veremos que nuestro menú lateral de navegación incluye Un sitio plone. En este nos vamos al quick instaler y agregamos un y sólo un "Ubify Site Policy"

!! Notas de instalación:
!!! Instalar prerrequisitos
La primera cosa a notar es que algunos paquetes están en el core y hacen parte de toda instalación de Arch. Entre ellos.
{{{
db libldap
}}}
Otros deben ser instalados manualmente (aunque es probable que algunos de ellos también ya hagan parte de la instalación).
{{{
yaourt -S python24 python24-ldap python24-pil python24-setuptools libjpeg6 wv libxml2 libxslt libsasl 
 poppler
}}}
Nótese que Arch Linux, a diferencia de Debian y sus derivados, no coloca las cabeceras de desarrollo fuera de los paquetes "tradicionales". Es por eso que hemos instalado cosas como libxslt en lugar de ibxslt1-dev.
!!! Creamos el entorno virtual de desarrollo
*
<<<
''{{{Entrada de Consola:}}}''
{{{
sudo python2.4 ez_setup.py 
}}}
''{{{Salida de Consola:}}}''
{{{
Setuptools version 0.6c9 or greater has been installed.
(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)
}}}
<<<
*
<<<
''{{{Entrada de Consola:}}}''
{{{
sudo easy_install-2.4 virtualenv
}}}
''{{{Salida de Consola:}}}''
{{{
Searching for virtualenv
Reading http://pypi.python.org/simple/virtualenv/
Reading http://virtualenv.openplans.org
Best match: virtualenv 1.4.3
Downloading http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.4.3.tar.gz#md5=2b639cee32d15fd049a49561957afe4b
Processing virtualenv-1.4.3.tar.gz
Running virtualenv-1.4.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-dt23Bq/virtualenv-1.4.3/egg-dist-tmp-gMblys
warning: no previously-included files matching '*.*' found under directory 'docs/_templates'
Adding virtualenv 1.4.3 to easy-install.pth file
Installing virtualenv script to /usr/bin

Installed /usr/lib/python2.4/site-packages/virtualenv-1.4.3-py2.4.egg
Processing dependencies for virtualenv
Finished processing dependencies for virtualenv
}}}
<<<
*
<<<
''{{{Entrada de Consola:}}}''
{{{
virtualenv --python=python2.4 -v --no-site-packages ~/Programas/Cynin/venv
}}}
La parte final de la instalación tiene un mensaje similar a este:
''{{{Salida de Consola:}}}''
{{{
Installing pip-0.6.1.tar.gz
  Processing pip-0.6.1.tar.gz
  Running pip-0.6.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install--Xeo41/pip-0.6.1/egg-dist-tmp-Tu_dcD
  warning: no files found matching '*.html' under directory 'docs'
  warning: no previously-included files matching '*.txt' found under directory 'docs/_build'
  no previously-included directories found matching 'docs/_build/_sources'
  warning: no files found matching '*' under directory 'scripts/completion'
  zip_safe flag not set; analyzing archive contents...
  pip: module references __file__
  pip: top-level module may be 'python -m' script
  Adding pip 0.6.1 to easy-install.pth file
  Processing dependencies for pip==0.6.1
  Finished processing dependencies for pip==0.6.1
Writing /home/offray/Programas/Cynin/venv/bin/activate
Writing /home/offray/Programas/Cynin/venv/bin/activate_this.py
}}}
<<<
!!! Instalar las dependencias de Python para el Entorno Virtual
Concadenamos los siguientes comandos para instalar todas las dependencias.
<<<
''{{{Entrada de Consola:}}}''
{{{
~/Programas/Cynin/venv/bin/easy_install-2.4 ZopeSkel && ~/Programas/Cynin/venv/bin/easy_install-2.4 lxml && ~/Programas/Cynin/venv/bin/easy_install-2.4 python-ldap && ~/Programas/Cynin/venv/bin/easy_install-2.4 -i http://dist.serverzen.com/pypi/simple PILwoTk
}}}
La parte final de la instalación tiene un mensaje similar a este:
''{{{Salida de Consola:}}}''
{{{
To check the build, run the selftest.py script.
zip_safe flag not set; analyzing archive contents...
PIL.Image: module references __file__
Adding PILwoTk 1.1.6.4 to easy-install.pth file
Installing pilfile.py script to /home/offray/Programas/Cynin/venv/bin
Installing pilfont.py script to /home/offray/Programas/Cynin/venv/bin
Installing pilconvert.py script to /home/offray/Programas/Cynin/venv/bin
Installing pilprint.py script to /home/offray/Programas/Cynin/venv/bin
Installing pildriver.py script to /home/offray/Programas/Cynin/venv/bin

Installed /home/offray/Programas/Cynin/venv/lib/python2.4/site-packages/PILwoTk-1.1.6.4-py2.4-linux-i686.egg
Processing dependencies for PILwoTk
Finished processing dependencies for PILwoTk
real: 22.29s user: 17.63s system: 1.43s percent: 85% cmd: ~/Programas/Cynin/venv/bin/easy_install-2.4 -i  PILwoTk
}}}
<<<
* Nos movemos al directorio donde de construcción (debe tener los archivos {{{bootstrap.py }}} y {{{buildout.cfg}}} en él), en este ejemplo están en {{{~/Programas/Cynin/3.1/}}} y ejecutamos el comando de construcción:
<<<
''{{{Entrada de Consola:}}}''
{{{
../venv/bin/python2.4 bootstrap.py
}}}
La salida será algo como:
{{{
Creating directory '/home/offray/Programas/Cynin/3.1/bin'.
Creating directory '/home/offray/Programas/Cynin/3.1/parts'.
Creating directory '/home/offray/Programas/Cynin/3.1/eggs'.
Creating directory '/home/offray/Programas/Cynin/3.1/develop-eggs'.
Generated script '/home/offray/Programas/Cynin/3.1/bin/buildout'.
}}}
<<<
Construimos el //buildout//.
<<<
{{{
./bin/buildout -c user.cfg
}}}
<<<
La salida será algo como:
{{{
Installing backup.
backup: Created /home/offray/Programas/Cynin/3.1/var/backups
backup: Created /home/offray/Programas/Cynin/3.1/var/snapshotbackups
Generated script '/home/offray/Programas/Cynin/3.1/bin/backup'.
Generated script '/home/offray/Programas/Cynin/3.1/bin/snapshotbackup'.
Generated script '/home/offray/Programas/Cynin/3.1/bin/restore'.
Generated script '/home/offray/Programas/Cynin/3.1/bin/snapshotrestore'.
Installing precompile.
  precompiling python scripts in /home/offray/Programas/Cynin/3.1/products/
  precompiling python scripts in /home/offray/Programas/Cynin/3.1/parts/productdistros
  precompiling python scripts in /home/offray/Programas/Cynin/3.1/parts/maildrop
real: 581.97s user: 161.07s system: 43.88s percent: 35% cmd: ./bin/buildout -c user.cfg
}}}
!!! Lanzar el sistema
Si zope está funcionando adecuadamente, basta con ejecutar la siguiente orden, en el directorio de instalación:
{{{
./bin/instance start
}}}
La salida es algo como:
{{{
. . daemon process started, pid=15550
}}}
En el navegador cargamos la dirección {{{localhost:8080}}} y veremos la interface de Zope.  Si bien aún no hemos creado ninguna instancia de Cyn.in, es un buen indicador de que el proceso de instalación ha funcionado sin problema.
!! Por hacer

* [[Cambiar la contraseña del usuario de Zope| http://www.cynapse.com/community/home/cyn.in-users/change-admin-password/]]
* [[Cyn.in con acceso público | http://www.cynapse.com/community/home/cyn.in-users/setup-cyn-in-for-anonymous-access]]
* [[cyn.in Site Administration Guide| http://www.cynapse.com/community/home/cyn.in-users/cyn.in-site-administration-guide]]
* [[cyn.in User Guide| http://www.cynapse.com/community/home/cyn.in-users/cyn.in-user-guide]]

!! Referencias de Plone:

Cyn.in está hecho en [[Plone]], así que es conveniente visitar este tiddler con la información asociada.
[[Cytoscape | http://www.cytoscape.org/]] es una herramienta para el análisis mediante grafos de sistemas complejos, nacida en el marco de la biología, pero usable también en otros contextos. Acá unas notas extra de sus usos, que no he encontrado en otros manuales (para información introductoria general referirse a dichos manuales en la wb).

Para combinar dos redes, se podría pensar que las opciones son referidas al menú de editar, con alguna opción de pegar disponible luego, o una opción de exportar un trozo de una red y luego importarlo (pero esto abre una nueva red, en lugar de combinarlas). Si lo que se quiere es combinarlas haciendo que una red incluya a otra, entonces de debe ir a:

{{{Plugins -> Advanced Network Merge}}}
Daniel Solis fue el Director artístico para [[Meatbot Massacre | http://www.danielsolis.com/meatbot/]].

* [[Página personal de Daniel Solis | http://www.danielsolis.com/index.html]]: Ch'evere el portafolio para diferentes creadores de juegos de rol. Explorar Lacuna y otros juegos por Jared Sorensen, quien cre'o tambi'en una extensi'on para [[Sorcerer]]
* Creador de: [[Do. Peregrinos de El Templo Volador | http://www.danielsolis.com/do/index.html]]: una propuesta interesante de [[cartas al cielo | http://www.danielsolis.com/do/letters.html]] (la forma como empiezan las misiones es por una carta enviada a los peregrinos), que puede ser parte de una propuesta llamativa para narratopedia. También para revisar en esta página:
** [[GenCon 2007 Playtest Document | http://www.danielsolis.com/do/downloads/Playtest_v1.1.pdf]]
** [[Annotated PDF of the April 2008 Playtest | http://www.danielsolis.com/do/downloads/DoPlaytestApril2008.pdf]]
* Director de arte para [[Reign | http://www.lulu.com/content/825234]]. Escrito por [[Greg Stolze |GregStolze]] (por explorar).
* Ganó junto  con [[Greg Stolze |GregStolze]] el [[The Wired Rave Awards | http://www.wired.com/wired/archive/14.06/cyhsy.html]], sobre la idea de eliminar a los intermediarios.
** [[The Wired 2007 Rave Awards | http://www.wired.com/wired/archive/15.05/feat_raves.html]], incluyendo una [[Videoentrevista por los Wired Rave Awards a Mark Shuttleworth | http://www.wired.com/entertainment/theweb/magazine/15-05/raves_shuttleworth]]
<html>
<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=610179&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=610179&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object><br /><a href="http://vimeo.com/610179">DataPortability - Connect, Control, Share, Remix</a> from <a href="http://vimeo.com/smashcut">Smashcut </a> on <a href="http://vimeo.com">Vimeo</a>.
</html>
[[Intro]]
* [[Does Exercise Really Make You Healthier?| http://www.sciam.com/article.cfm?id=does-exercise-really-make]]
* [[2008 Physical Activity Guidelines for Americans| http://www.health.gov/paguidelines/guidelines/default.aspx]]
!! Freerunning: Un deporte extremo que sí practicaría
* [[Spiderman Runner| http://www.elconfidencial.com/cache/2007/09/26/93_spiderman_runner.html]] nota con video en elconfidencial.com
* [[Evolution of Office Spaces Reflects Changing Attitudes Toward Work| http://www.wired.com/culture/design/magazine/17-04/pl_design#]]
* [[Knoll| http://www.knoll.com/knoll_home.jsp]].
** Una idea de "atriles" y soportes para oficinas con mucho aparatejo digital, similar a la que había pensado:
*** [[Knoll Extra Wishbone| http://www.knoll.com/products/product.jsp?prod_id=220&flag=cat&cat_id=36]]
*** [[Work Desing & Technology| http://www.knoll.com/products/productline_ergonomic.jsp]]
* [[Microvision y vehículos elucidativos | http://www.microvision.com/vehicle_displays/index.html]]
* [[Participatory Desing Conference 2008 | http://www.pdc2008.org/]]
* [[Yanko Desing: Form beyond function| http://www.yankodesign.com/]]
** [[Remotes in one place| http://www.yankodesign.com/2009/03/12/remotes-in-one-place-please/]]: concepto interesante, aunque algo complicado el desplazamiento vertical, si que considera lo que está debajo y encima de la mesa.
** [[A chair with many faces| http://www.yankodesign.com/2007/11/22/a-chair-with-many-faces/]], con suficiente espacio, es super.
** [[brasera proyector personal| http://www.yankodesign.com/2009/03/13/asp-adder-take-a-hike-slythrin-is-here/]]: similar a la "herramienta para subrayar libros" que había pensado... tengo que empezar a dibujar y publicar!!!
** [[Computer like rocks| http://www.behance.net/Gallery/Stream/191676]]: Me acuerda de los computadores modulares ~XboX que imaginaba cuando armaba clones hace años (antes que se me adelantara microsoft con el nombre para una consola de videojuegos :( !!)... también de un adorno en la casa de mis papás basado en semillas de la finca de mis abuelitos.
Historia de usuario básica:

Cuando alguien entra a la dirección didactica encuentra un listado de acciones de las últimas ediciones en el sitio, similar al que hay en una red social (fulano ha creado un enlace, mengana a añadido a sutano a su red, perencejito a actalizado un contenido) y le permite a la gente navegar estos cambios en mayor detalle o unirse a la red. En caso de que se unan solicitará un nombre de usuario, una dirección de correo y una contraseña. Una vez se coloquen estos datos, ofrecerá la posibilidad de crear un nuevo microwiki (explicando brevemente qué es) o de subir el archivo de microwikis preexistente. Si elije esta última opción recomendará usar nubes de etiquetas y mostará como extender el microwiki para que las tenga. Esta nube de etiquetas hará parte de la página inicial del portal y permitirá navegar fácilmente la información que se encuentra allí.
Pequeños actos de disciplina cotidiana que resuelven problemas estructurales de los cuales los problemas contigentes del día a día son sólo una manifestación.
* Diseño centrado en el usuario:
** http://en.wikipedia.org/wiki/User-centered_design
** http://en.wikipedia.org/wiki/User_Centered_Design
** http://www.stcsig.org/usability/topics/articles/ucd%20_web_devel.html
** En ~LeMill:
*** http://cmap.uiah.fi/servlet/SBReadResourceServlet?rid=1144160327714_759189264_11680&partName=htmltext
*** http://lemill.org/trac/wiki/ParticipatoryDesign
*** http://lemill.org/trac/wiki/DesignSessionInstructions
*** http://lemill.org/trac/wiki/Scenarios
*** http://lemill.org/trac/wiki/UserStoriesInstructions
*** http://lemill.org/trac/wiki/DesignSessionResults
*** http://www.cpsr.org/issues/pd/introInfo
*** http://lemill.org/trac/wiki/Metaphor

* Fundamental Modelling Concepts:
** [[Web site de Fundamental Modelling Concepts | http://www.fmc-modeling.org/]] (FMC)
** [[FMC y UML | http://www.fmc-modeling.org/download/fmc-and-uml/fmc-and-uml.pdf]]
** [[Why Extend the UML Beyond Object and Component Technology? | http://www.agilemodeling.com/essays/extendingTheUML.htm]]
** [[Be Realistic About the UML: It's Simply Not Sufficient | http://www.agilemodeling.com/essays/realisticUML.htm]]
** [[Agile Database Techniques | http://www.ambysoft.com/books/agileDatabaseTechniques.html]]

* Software Libre: No son precisamente diseños o metodologías, pero sí reflexiones sobre cómo hacer mejor software:
** [[Ten Ways to Make More Humane Open Source Software | http://humanized.com/weblog/2007/10/05/make_oss_humane/]], definitivamente una lectura muuuuy recomendada. Con buenos comentarios del autor y los lectores y frases para citar, como (entre paréntesis cuadrados he colocado palabras-enlace alas ideas que me evocan las citas, si es que hay, quizás tenga tiempo de hablar de ellas luego):
> Research projects with no users tend to improve the state of the art of writing research projects, rather than the state of the art of writing usable system tools. [Virtual Tangram]
<<<
Write a Plug-In Architecture: It’s the only good solution I’ve seen to the dilemma of providing a complete feature set without bloating the application. [TaUba :-)]
<<<
<<<
The number one reason why people want to reconfigure the interface is because the default behavior is not usable. The sign of a good design is that most people never feel any need to change the settings. As long as the defaults are good, then people can sit down, learn the default behavior, and start getting work done right away, [Ergo]
<<<
<<<
Non-technical users are not idiots. They’re doctors, physicists, writers, and other smart people who have important things to do. They don’t have the time or the inclination to learn the implementation details of your software. When Brock insists that they should, he is greatly overestimating the importance of his own software in the lives of his users.
<<<
<<<
Personally, I have three categories for customization options:
* Personalization: customize to match personal taste and style without making you more productive (e.g., background color of a window, fireworks or raindrops on the screen)
* Optimization: increase efficiency by adapting UI to user’s daily work and capabilities (e.g., adapting toolbars to personal needs)
* Operational: required to make the product work, at all (e.g., proxy settings in Firefox)
[Muy buen comentario de un lector... aunque disiento en algunas cosas]
<<<
** [[Good Service — Bad Software | http://humanized.com/weblog/2007/05/29/good_service_bad_software/]]: Open source is painful to setup and maintain because it's open source. Y para los que crean que se trata sólo del software libre (aunque el SL exalta muchos de los casos tratados), he aquí una continuación que les cae a todos:
** [[Why Software Stinks: Introduction | http://humanized.com/weblog/2007/06/07/why_software_stinks_introduction/]]
!Social Coding
La escritura social de código o //social coding// presupone que se programa con un colectivo de personas (o se tiene la intensión de hacerlo). Esto implica que se usan Sistemas distribuidos de control de versiones que dan cuenta de los cambios que cada persona del equipo ha hecho y permiten que cada uno realice pruebas, extensiones y ramificaciones al código, así como integrar los cambios.
* [[Git vs. Mercurial: Please Relax| http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/]]
* [[Indefero| http://indefero.net]] Un sistema de //social coding// con interface web que soporta múltiples //back ends//, como mercurial y git.
! Git
* [[Ogre Git Video Tutorial| http://excess.org/article/2008/07/ogre-git-tutorial/]] Bastante bueno y completo. Con gráficas ilustrativas y un estilo de presentación que mezcla las gráficas con la explicación de audio. El material de la presentación (creo que hecho en ~LaTeX Beamer también está disponible en el sitio). 
** Muy chévere el uso de los materiales, tal vez lo implemente en las mías, mezclando diferentes plugins de TiddlyWiki.
* [[Github| http://github.com/]]: Parece ser usado por muchos proyectos actualmente. Chévere el sitio web y la forma como muestran un //scroll// de algunos los logos de los proyectos alojados, por ejemplo http://planetargon.com/ (que tiene una página bien visualmente llamativa, por ejp el //slogan// _no_ es una gráfica).
! Mercurial
* [[Mercurial| http://hg-scm.org/]]
* [[Mercurial Kick Start| http://mercurial.aragost.com/kick-start/]]
* [[Hg Init: a Mercurial tutorial| http://hginit.com/]]
* [[Understanding Mercurial| http://mercurial.selenic.com/wiki/UnderstandingMercurial]]
* [[Sharesource| http://sharesource.org/]]: tiene repositorios en Mercurial, aunque está aún en desarrollo y la interface no es muy bonita, está cubierto por la Affero GPL y trae soporte para mercurial.
"[[OpenSourceWatershed| http://oswatershed.org/]] is a project aimed at understanding the relationship between distributions (downstream) and the individual software components (upstream). It is the basis for a larger study of distributions and their evolution. It is ''distrology''. In the future, more distro oriented statistics will be available."

Arch Linux, de forma __no__ sorpresiva, está de primeras :-)
* [[SymphonyOS| http://symphonyos.com]]: Con ideas acerca de la interface bien interesantes.
** [[Capturas de pantalla de SymphonyOS|http://shots.osdir.com/slideshows/slideshow.php?release=644&slide=4]] de . El md5sum de la version 12-2006 es: 6d1e099b2718d6bc8e24cbdb58a8a81b
* [[TinyMe| http://www.junauza.com/2007/11/tinyme-little-pclinuxos-that-could.html]] Una versión ligera de ~PCLinuxOS. Para probar un día de estos.
* [[Moblin| http://moblin.org/]]: "is an open source project focused on building a Linux-based platform optimized for the next generation of mobile devices including Netbooks, Mobile Internet Devices,..." (de la página web)
* [[Foresight Linux| http://www.foresightlinux.org/]]
** [[History of Foresight Linux| https://wiki.foresightlinux.org/display/community/History+of+Foresight+Linux]]
** [[Shuttle KPC| http://us.shuttle.com/KPC/]]: Un computador con Foresight preinstalado.
* [[What Makes Ubuntu Go?| http://www.theregister.co.uk/2009/02/06/ubuntu_server_study/page2.html]]: Un estudio sobre las posibilidades de mercado de Ubuntu. Una cita interesante:
<<<
Canonical wants to get its arms wrapped around the features that make people choose a given operating system for mission-critical applications, and nearly 60 per cent said that hardware support - the ability of the software to run on a wide variety or iron and peripherals - was "very important" and another 25 per cent said it was "important." But application package and update management was cited as very important by nearly 70 per cent, with another 25 per cent saying it was important.
<<<
!! Artículos
* [[The pain-free guide to switching Linux distros| http://www.techradar.com/news/software/operating-systems/the-pain-free-guide-to-switching-linux-distros-478667]]
* [[Best Linux distros for power users, gamers, newbies and more| http://www.techradar.com/news/software/operating-systems/best-linux-distros-for-power-users-gamers-newbies-and-more-596697?artc_pg=4]] //Your route to Tux heaven//, como era de esperarse, ArchLinux sale bien librada :-)
* [[El sitio web principal de Django | http://www.djangoproject.com/]]
* [[Pinax: a platform for rapidly developing websites |http://pinaxproject.com/]]: Pinax sería a Django lo que es Plone a Zope y tiene un excelente soporte para Sitios en Web Social Out of the Box (//microblogging//, foros, wikis, tribus, [[trueques| http://cloud27.com/swaps/]]!!). Hay algunos sitios interesantes creados con Pinax, entre ellos:
** [[Cloud27| http://cloud27.com]] Un sitio que implementa las ideas de red social.
** [[Foodsel | http://www.foodsel.com/welcome/]]: Un sitio de comida, con información sobre cómo quemar las calorías de lo que uno se come, por ejemplo.
* [[GeoDjango: Web Applications for Geographers with Deadlines | http://en.oreilly.com/where2008/public/schedule/detail/1665]]
** [[Presentaciones sobre Geodjango| http://geodjango.org/presentations/]]
información sobre el doctorado:
* [[Convocatoria Colciencias (Cierre jun 2012) | http://201.234.78.173:8085/divrechum/becarios/index.jsp]]
! Berkeley School of Information
El perfil de investigaciones y aplicantes parece bien diverso.
* [[Research projects | http://www.ischool.berkeley.edu/research/projects]]
* [[PH.D. APPLICATION INSTRUCTIONS| http://www.ischool.berkeley.edu/admissions/phdinstructions]]
* [[Doctor of Arts| http://www.taik.fi/en/studies_/studying_at_taik/doctor_of_arts.html]]
** [[Aplying Process| http://www.taik.fi/en/opiskelu/opiskelu_taikissa/taiteen_tohtori_tat/hakumenettely.html]]
* [[Illinois Institute of Technology| http://iit.edu/]]
! Institute of Design
* [[PhD Candidacy| http://www.id.iit.edu/314/]]
* [[Research Aereas| http://trex.id.iit.edu/phd/research_area.htm]]
* [[Research initiatives| http://www.id.iit.edu/externalID/index.php?id=100]]
* [[Areas of interest| http://www.id.iit.edu/externalID/index.php?id=98]]
* [[Metaphor and Analogy in Design| http://www.id.iit.edu/796/]]
* [[Social Human Factors| http://www.id.iit.edu/944/]]
* [[Design Process and Knowledge| http://www.id.iit.edu/1050/]]
* [[Product Design Workshop: Play by Your Own Rules| http://www.id.iit.edu/1034/]] Scratch
* [[Getting People to Talk (Spring 2008)| http://www.id.iit.edu/externalID/index.php?id=858]]
!! Faculty Members
* [[Faculty Members| http://www.id.iit.edu/143/]]
** [[Comm Design Workshop: Communicating Research| http://www.id.iit.edu/1033/]]
! University of GoldSmith - London
* [[One 3 Year PhD Studentship in Design - Available from October 2010 or January 2011| http://www.gold.ac.uk/design/studentships/]]
* [[Tuition Fees and funding| http://www.gold.ac.uk/costs/]]: hay una beca que cubre todo. Descargar el pdf en Postgraduate.
* [[Desing Staff| http://www.gold.ac.uk/design/staff/]]
* [[Technology Education Research Unit (TERU)| http://www.gold.ac.uk/teru/]]was founded in 1990 by Professor Richard Kimbell. Learning in and through designing activities has features that make it unusual in the curriculum, and that enable it to contribute positively and uniquely to the education of young people. The research and development that TERU has undertaken has been informed by this belief and has sought to throw light onto the traditions and practices of teaching and learning in design & technology workshops, studios and classrooms.
!! Interaction Research Studio
<<<
[[Interaction Research Studio| http://www.gold.ac.uk/interaction/]] Studio explores the design of computational systems for everyday life. Our practice-based research integrates design-led research methods with work on embedded and ubiquitous technologies to produce prototype products embodying new concepts for interaction.
We don’t pursue design as problem solving, but instead design products to create situations that encourage playfulness, exploration and insight. 

Because our prototypes are evocative and open ended, a crucial part of our process involves asking volunteers to live with our designs to see how their experiences evolve. The outcomes of our work include articles and exhibitions that expose our philosophies, methods and empirical work to academic, industrial and general publics. 

Our work is inherently interdisciplinary, and we are happily situated at Goldsmiths, with its top-calibre departments of Sociology, Cultural Studies, Music and Computing as well as our own Department’s expertise in critical design, sustainability and design learning. Please contact us if you'd like to know more about our work or discuss possibilities for collaboration.
<<<
Ver:
* Los videos en [[youtube| http://www.youtube.com/user/TheCuriousHome]]
* [[Papers & publications| http://www.gold.ac.uk/interaction/public/]]
! Lancaster
* [[Centre for Science Studies| http://www.lancs.ac.uk/fass/centres/css/phd.php]]
* [[Professor Lucy Suchman| http://www.lancs.ac.uk/fass/centres/css/profiles/Lucy-Suchman]]
* [[Wiki sobre viajes| http://travel.pelopor.nl/doku.php]] usando Docuwiki.
* [[Wadooa: Wiki Colombiana que usa Dokuwiki | http://wadooa.com/doku.php]]
* [[WebCalendar Wiki | http://www.k5n.us/dokuwiki/doku.php?id=start\]]
* [[GeSHi | http://qbnz.com/highlighter/php_highlighter.php]], Generic Syntax Highlighter usado en Docuwiki
* [[Robotis Wiki | http://robotics.ee.calpoly.edu/dokuwiki/doku.php?id=about_us]], interesante barra de navegación en Dokuwiki
* [[Styler | http://iar.spb.ru/projects/dokuwiki/styler]], plugin de dokuwiki para extender la sintaxis, permitiendo cosas como citas, epígrafos, etc.
* [[Barra personalizada y foro de discusión en Docuwiki | http://www.wikidesign.ch/playground/playground]], usando macros.
<<<
Now here I am, 21 years later, returning to the great Adventure after having indeed had many exciting adventures in Computer Science. I believe people who have played this game will be able to extend their fun by reading its once-secret program. Of course I urge everybody to play the game first, at least ten times, before reading on. But you cannot fully appreciate the astonishing brilliance of its design until you have seen all of the surprises that have been built in.
<<<
Comentario muestra de programación literata en el juego Adventure.
* [[Operational thinking| http://blog.ofset.org/hilaire/index.php?post/2008/05/01/Operational-thinking]]: Muestra como el pensamiento operativo (pensar mediante acciones) es tenido en cuenta en un entorno como Squeak y como esto ayuda a uso ~DrDeoII al integrar elementos externos al entorno específico de ~DrGeoII con elementos construídos a partir de este.
* [[Les scripts avec Dr. Geo II| http://blog.ofset.org/hilaire/index.php?post/script-drgeo]]: Ejemplifica cómo crear //scripts// en ~DrGeoII, específicamente el de una línea tangente a una función arbitraria, conocidos el punto de corte y la inclinación.
!! Anuncio de la versión en formato One Click
El formato One Click Experience, facilita la instalación de aplicaciones basadas en Squeak para múltiples plataformas, con sólo descomrprimir y hacer click en el respectivo ejecutable. Siendo Squeak multiplataforma, lo único que cambia es que se han empaquetado diferentes lanzadores y distintas máquinas virtuales para diferentes sistemas operativos.

Dear all,

I am glad to announce a new ~DrGeoII release with macro-construction
and Smalltalk scripting, plus tons of bugs fixes.

Dr.  Geo II is an interactive geometry framework integrating with
Smalltlak programm

The new ~DrGeoII distribution is based on an universal one-clic
distribution for GNU/Linux, Windows and Mac OSX.

Please visit ~DrGeo web page to know more http://wiki.laptop.org/go/DrGeo

The one-clic distribution can be directly downloaded from
http://download.gna.org/istoa/drgeo/drgeo-oneclick.zip

Hilaire
Es un programa que permite sincronizar archivos entre varios compuradores usando para esto tanto una plataforma en línea con interface Web, como el navegador de archivos de varios sistemas operativos (explorador de Windows, //finder// de Mac y nautilus para Linux). En los enlaces bajo la categoría Dropbox se encontrarán instrucciones específicas para algunas distribuciones.
!! Ejecución
* Una vez lo hayamos instalado ejecutamos el programa. Aparecera en el //trayer// con un mensaje acerca de lanzar //dropbox// haciendo click en un pequeño icono. Esto descargará el programa y lanzará el programa.
** En caso de que no tengamos una cuenta en dropbox, solicitará una.
** En caso de que la tengamos, basta con colocarla y estamos listos para iniciar.
* Se abrirá nautilus (con el molesto modo para pintar el escritorio también, al menos para los que no usamos gnome) y podemos usar la carpeta {{{Dropbox}}} en el //home// de nuestro usuario para arrastrar allí todo lo que queramos sincronizar con la web. Para evitar que Nautilus se apodere del escritorio, tecleamos
{{{
nautilus --no-desktop&
}}}
: y si sólo queremos lanzar el servicio de sincronización, sin siquiera lanzar nautilus, tecleamos:
{{{
~/.dropbox-dist/dropboxd &
}}}
Para instalar [[Dropbox]] en Arch Linux hacemos:
<<<
''Consola Superusuario:''
{{{
yaourt -S nautilus-dropbox
}}}
<<<
En los repositorios comunitarios está también el paquete {{{dropbox}}}, que instala cosas relacionadas con este programa, presumiblemente una versión de consola de comandos que no depende de nautilus, pero una vez instalado, no es fácil saber cómo ejecutarlo.
La siguiente documentación comenta cómo instalar [[Dropbox]], en Elive y otros sistemas basados en Debian:
''Enlaces:''
* [[Intalling e17 for Ubuntu| http://octoberdan.wordpress.com/2007/10/29/installing-elbuntu-e17-for-ubuntu/]]
!! Prerrequisitos:
* {{{libnotify-dev}}} envía aplicaciones de notificación a las aplicaciones de escritorio, de modo que estos se actulicen de acuerdo a tales notificaciones. Para instarlo usamos nuestro gestor de paquetes preferido (en este ejemplo {{{wajig}}}):
<<<
''Consola Superusuario:''
{{{
wajig install libnotify-dev
}}}
<<<
* Nautilus: El navegador de archivos de Gnome
<<<
''Consola Superusuario:''
{{{
wajig install nautilus
}}}
<<<
* Un sistema de área de notificación. //trayer// o //stalonetray// pueden servir. Acá usaremos el último.
<<<
''Consola Superusuario:''
{{{
wajig install stalonetray
}}}
<<<
Para colocarlo en la posición usual (parte inferior derecha de la pantalla) usamos el [[archivo de configuración de stalonetray|Stalonetray]]
!! Instalación
* Se descarga al versión fuente de la [[página de descargas Dropbox| http://www.getdropbox.com/downloading]]
* En caso de que haya alguna versión de //nautilus//, ejecutándose es necesario cerrarla
<<<
{{{
killall nautilus
}}}
<<<
* Descomprimimos la descarga, nos ubicamos en el directorio donde hicimos tal descompresión y como usuario normal hacemos:
<<<
{{{
./configure
}}}
<<<
** Veremos unos mensajes que terminan en algo como:
<<<
{{{
checking for NAUTILUS... yes
checking for GLIB... yes
checking for LIBNOTIFY... yes
checking for nautilus extension directory... /usr/lib/nautilus/extensions-1.0
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: executing depfiles commands
}}}
<<<
* luego ejecutamos {{{make}}}:
<<<
{{{
make
}}}
<<<
* Finalmente hacemos:
<<<
''Consola Superusuario:''
{{{
make install
}}}
<<<
* [[Sitio principal de Drop.io| http://drop.io/]]
* [[Add on para firefox| https://addons.mozilla.org/en-US/firefox/addon/8482]]
* [[Drop Everything: drop.io is the Web2.0 dropbox| http://cit.duke.edu/blog/2008/09/10/drop-everything-dropio-is-the-web20-dropbox/]]
* [[Blog de Dropio| http://drop.io/blog]]
http://billkerr2.blogspot.com/2008/12/alan-kay-after-40-years-dynabook-is-not.html
http://www.youtube.com/watch?v=tQg4LquY0uU
http://www.computerhistory.org/events/index.php?view=previous&section=ca
'E17' Es un acrónimo para //Enlightenment// versión 0.17, que es la siguiente versión de esta interface gráfica. Las versiones de desarrollo actuales, que aún no están en tal versión, también se llaman informalmente así. Acá se usará para indicar todo lo relacionado con esta interface gráfica.

* [[Sabayon E17| http://bytezero.org/?p=155]]
* [[Compiz for Enlightenment-0.17 | http://forums.gentoo.org/viewtopic-t-643655-highlight-enlightenment.html]]
* [[ItaksNG| http://code.google.com/p/itask-module/wiki/ItaskNG]]: "A more advanced taskbar and app launcher, with zoom effect"
! Instalación desde los repositorios
Para instalar [[E17]] en Arch hacemos lo siguiente:
<<<
''Consola''
{{{
yaourt -S e-svn
}}}
<<<
Esto instala el paquete e-svn, que está en los repositorios //comunity//.
! Instalación usando ~ArchE17
Hay un pequeño //script// de Python que se llama similar a este tiddler {{{ArchE17}}} y mantiene E17 más actualizado. Para usarlo hacemos lo siguiente:
* Vamos a la [[página de E17 para Arch de Ronald van Haren| http://dev.archlinux.org/~ronald/e17.html]]
* Descargamos el archivo llamado "ArchE17 0.0.1"
* Lo descomprimos, lo hacemos ejecutable y lo ejecutamos como usuarios normales (debemos estar en la lista de Sudoers):
<<<
''Consola''
{{{
tar xvzf arche17-0.0.1.tar.gz
chmod +x arche17
./arche17
}}}
<<<
: * La instalación es interactiva y necesitará que respondamos algunas preguntas (en todos los casos se requiere que escribamos [Y] o [Enter], así que el pajarito que usó Homero Simpson también funcionaría, pero es importante estar presente por si la respuesta por omisión debe cambiar).
: * Este //script// es realmente interesante y nos puede mostrar cómo automatizar cosas en python sin pasar por la programación en bash.
! Configuración
Para arrancar E17 cambiamos el archivo indicado como se muestra a continuación:
<<<
''Archivo:''{{{~/.xinitrc}}}
{{{
#
setxkbmap es
enlightenment_start
# exec startlxde
# acá vienen más entornos gráficos
}}}
<<<
! Enlaces
* [[E17 en el Wiki de Arch Linux| http://wiki.archlinux.org/index.php/E17]]
! Notas Generales
Para instalar ~ItaskNG no funciona en Arch con la receta de [[AUR|ArchUserRepository]], pero la instalación manual, de acuerdo a las instrucciones de la página web no tiene lío en algunas configuraciones de E17, en otras sigue molestando. Itask puede ser un reemplazo momentáneo aunque sin tanto descreste visual
Los archivos que se ejecutan al inicio de cada sesión en //Enlightenment//, son archivos {{{.desktop}}}, que se guardan en {{{:~/.e/e/applications/startup/.order}}}. Por ejemplo, si queremos hacer que se ejecute [[stalonetray|Stalonetray]] cada vez que arranquemos E17. Creamos un archivo como el siguiente:

''Archivo:'' {{{~/Config/stalonetray.desktop}}}
{{{
[Desktop Entry]
Encoding=UTF-8
Version=0.6.2
Name=stalonetray
Type=Application
Comment=a stand-alone freedesktop.org and KDE system tray
Exec=stalonetray
Icon=
Categories=Applications;Tray;Startup
Term=
}}}
Obsérvese que hemos creado el archivo dentro de la carpeta {{{Config}}} en el directorio raíz de nuestro usuario. Esto es porque suelo crear los archivos de configuración dentro del //home// de modo que, en caso de reinstalar por completo el sistema base, baste con copiar/enlazar los archivos de configuración, para tener el sistema deseado.
Hacemos, entonces, el enlace:
''Consola superusuario:''
{{{
ln -s ~/Config/stalonetray.desktop /usr/share/applications/stalonetray.desktop
}}}
Ahora editamos el archivo {{{:~/.e/e/applications/startup/.order}}} como se muestra a continuación:
''Archivo:'' {{{:~/.e/e/applications/startup/.order}}}
{{{
stalonetray.desktop
}}}
El orden en que coloquemos las cosas en este archivo indica el orden en que deseamos que se ejecuten.
Listo, la siguiente vez que se ejecute E, tendremos //stalonetray// automáticamente.
!! Enlaces:
[[Installing Elbuntu - E17 for Ubuntu| http://octoberdan.wordpress.com/2007/10/29/installing-elbuntu-e17-for-ubuntu/]]
* [[Edje Introduction| http://wiki.enlightenment.org/index.php/Development_with_Edje:_Introduction]]
* [[Generating Edje files using Inkscape and Gimp| http://blog.gustavobarbieri.com.br/2008/09/16/generating-edje-files-using-inkscape-and-gimp/]]
* [[Inteligencia Colectiva| http://www.slideshare.net/mvioleta/inteligencia-colectiva-123894]]
* [[Cybernetic Economy| http://www.communitywiki.org/en/CyberneticEconomy]]
* [[H+ Magazine edición verano de 2009| http://hplusmagazine.com/digitaledition/2009-spring/]]: Contiene varios artículos interesantes dedicados a la economía, entre ellos:
** //Hacking Economy//: Propone volver a la moneda local y un tipo de moneda basado en horas. Sería chévere pensar en cómo este intercambio en tiempo vital se enlaza con el valor social de este tiempo, al menos para intercambios hacia afuera.
** //Why Whuffie is wiser: hacking the economy blues with social capital//: //Whuffie// es la idea propuesta por Cory Doctorow (un recomendado por Carolina Botero) para un futuro en el cual la moneda ha cambiado y tiene que ver con las acciones con valor social. Estas generan valor que se transfiere en moneda. La autora, Tara E Hunt, propone usar las redes sociales para visibilizar el //Whuffie//.
: En ambos casos las ideas ya han sido implementandas por nuestros indígenas desde hace siglos. Le llaman trueque y existía en otras culturas. Lo interesante del indígena es que continua siendo vigente en importante.
!Reflexiones Marco/Macro

* [[How Mobile is Changing our Society | http://tarina.blogging.fi/2008/10/18/speaking-at-mobile-monday-amsterdam/]]
* [[Movile Wands | http://tarina.blogging.fi/2008/06/30/mobile-wands/]]
** [[Ubicomp, and why I think it's broken | http://www.ecyrd.com/ButtUgly/wiki/Main_blogentry_300608_2]] por Jenna Jalkanen, en respuesta al post de Teemu.
*** [[Singularidad Tecnológica | http://en.wikipedia.org/wiki/Technological_singularity]]
*** [[Ubicomp | http://www.ubiq.com/hypertext/weiser/SciAmDraft3.html]]
** [[Modern Wands and Wizards | http://www.slideshare.net/momoams/modern-wands-and-wizards]], seguramente le gustaría a Aztlek... tiene cosas chéveres, aunque me distancio de la parte en la que asumen una terminología muy comercial.
** [[Near Fiel Comunication | http://en.wikipedia.org/wiki/Near_Field_Communication]]: o como los telefónos celuláres van a reconocer el entorno cercano.
** [[Blobject/Spime | http://www.boingboing.net/images/blobjects.htm]]: por leer... podría tener relación con Kanashpi. Por [[Bruce Sterling | http://en.wikipedia.org/wiki/Bruce_Sterling]]
!! Telefonía y computación móvil en educación:
* [[Nace comunidad de educación virtual móvil en Colombia | http://www.eltiempo.com/tiempoimpreso/edicionimpresa/computadores/2007-08-27/ARTICULO-WEB-NOTA_INTERIOR-3695572.html]]
* [[El celular, gran herramienta pedagógica del siglo XXI | http://www.eltiempo.com/tiempoimpreso/edicionimpresa/educacion/2007-08-26/ARTICULO-WEB-NOTA_INTERIOR-3695210.html]]
Otros temás relacionados: [[Cognición|Cognicion]]
* [[Alan Kay: A powerful idea about teaching ideas | http://www.ted.com/talks/view/id/228]]
* [[Models of growth — towards fundamental change in learning environments | http://www.media.mit.edu/publications/bttj/Paper11Pages96-112.pdf]]
* [[Diffusion of innovations| http://en.wikipedia.org/wiki/Diffusion_of_innovations]]
* [[Science and Technology Education: Unesco| http://www.unesco.org/education/educprog/ste/projects/2000/formative.htm]]
* [[Country Workshop 2008 de OLPC | http://wiki.laptop.org/go/Presentations/May_2008_Country_Workshop]]
* [[It’s the ability to learn tools, not the tools themselves | http://www.markshuttleworth.com/archives/28/]] de Mark Shuttleworth, sobre las herramientas y los currículos
* [[M.U.P.P.E.T.S Screenshots | http://muppets.rit.edu/muppetsweb/screens/index.php#g]]: Multiuser Programming for Enhancing Traditional Study
* [[The Cerebral Code | http://www.williamcalvin.com/bk9/]]
* [[PAPERT'S IDEAS: MAINLY FROM MINDSTORMS | http://www.users.on.net/~billkerr/a/papert.htm]] por Bill Kerr
* [[The Nature of Constructionist Learning | http://ocw.mit.edu/OcwWeb/Media-Arts-and-Sciences/MAS-962Spring-2003/CourseHome/]] en el !OpenCourseWare del M.I.T.
* [[Wiimote White Board, pantalla táctil para la amplia mayoría | http://eqhes.info/2008/01/19/wiimote-white-board-pantalla-tactil-para-la-amplia-mayoria/]]
* [[Conférence C5 (Conference on Creating, Connecting and Collaborating through Computing) | http://uptv.univ-poitiers.fr/web/canal/61/theme/54/manif/168/index.html]]
* [[Educational Software: Designed by kids for kids| http://www.users.on.net/~billkerr/a/isdp.htm]]
* [[Primera universidad privada, gratuita y rentable del mundo nace en Colombia | http://www.eltiempo.com/publirreportaje_a/2008-09-05/primera-universidad-privada-gratuita-y-rentable-del-mundo-nace-en-colombia_4503546-1]]
* [[The Case of the Textbook: Open or Closed?| http://connect.educause.edu/Library/EDUCAUSE+Review/EDUCAUSEReviewMagazineVol/47920?time=1233694478]], para leer después
* [[Nibipedia| http://www.nibipedia.com/]]: “Learners who liked this also liked that." is part of what Nibipedia does by suggesting videos. La idea está interesante, pero aún en estado muy alfa.
* [[Edupunk| http://en.wikipedia.org/wiki/Edupunk]]
* [[Urinal as a learning object| http://flosse.dicole.org/?item=urinal-as-a-learning-object]]: Chévere crítica a una definición que no define nada :)
* [[RIP-ping on Learning Objects| http://opencontent.org/blog/archives/230]]: Me parece chévere esta cita:
<<<
So whether learning objects are dead or not, I couldn’t say. And to some extent, who cares? As long as people are willing to (1) openly share (2) educational materials that will (3) render properly in most web browsers, and they also (4) provide access to the unobfuscated source for the materials (especially for Flash files, Java applets, Photoshop images with many layers, and the like), I certainly don’t care.
<<<
: Creo que la definición de documentos opacos y transparentes de la GFDL es útil a la hora de considerar el acceso al código fuente comprensible, si bien el hecho de que se muestren apropiadamente en la mayoría de los navegadores está sobrevalorada cuando se tienen documentos transparentes, pues se cuenta con software libre que los puede leer.
* [[Los efectos de Google (II)| http://clionauta.wordpress.com/2008/07/01/]] (recomendado por Ansava): Si bien comparto parte de su postura crítica en cuanto a lo acrítica que es la gente respecto a Google, no creo que leer "libros largos" esté versus leer en la red cortos textos enlazados y que los uno estructure "mejor" el intelecto que lo otro.
<<<
Edusim is a 3D multi-user virtual world platform and authoring toolkit intended for your classroom interactive whiteboard (but equally powerful on the students laptop or desktop computers !). Cobalt - Edusim has been tested and works on the Smartboard, Activeboard, Interwriter, Polyvision, Mimio, eBeam, and even the Wiimote Whiteboard.
<<<
(de la página principal)
* [[Página principal de Edusim| http://edusim3d.com]]
* [[From the Allosphere to Edusim and the Mobile Immersive Learning Lab| http://roots.greenbush.us/?p=743]]
** [[Allosphere| http://www.allosphere.ucsb.edu/]]: a Large-scale Immersive Laboratory
<<<
<html>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/uVFsxev-2sk&color1=0xb1b1b1&color2=0xcfcfcf&hl=en&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/uVFsxev-2sk&color1=0xb1b1b1&color2=0xcfcfcf&hl=en&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
</html>
<<<
* [[Classroom Mashup - Edusim + Smartboard + Wiimote Pt. 2| http://www.youtube.com/watch?v=uDSbYY_3yPM]] (Video)
Acá pruebo algunos ejemplos de características de TiddlyWiki:
* ''Inclusión de imágenes:''
[img[http://www.archive.org/download/LogoVirtualTangram/VT_logo_100.png]]
* ''Transclusión:'' (el texto que ven a continuación es de otro tiddler)
<<tiddler [[VirtualTangram]]>>
[>img[http://ekiga.org/images/ekiga_3.png]]
<<<
Ekiga (formely known as GnomeMeeting) is an open source VoIP and video conferencing application for GNOME. Ekiga uses both the H.323 and SIP protocols. It supports many audio and video codecs, and is interoperable with other SIP compliant software and also with Microsoft NetMeeting.
<<<
De la página Web
* [[Página Web de Ekiga| http://ekiga.org/]]
!! Instalación y Uso
Para usarlo se hace lo siguiente:
* Se instala el software:
''consola superusuario:''
<<<
wajig install ekiga
<<<
* Se saca una cuenta de Ekiga. Para esto hay dos posibilidades:
** Se puede montar un servidor que las provea,
** se puede usar la red [[ekiga.net| https://www.ekiga.net/]] lo hace de modo gratuito y libre.
''Falta Minimanual de uso''
* LugarUno
* LugarDos
* LugarTres
Muchas empresas afirman que el software libre es software no comercial, esto es un error pues;

* ''Lo más importante'': //Gratuidad y libertad son conceptos ortogonales//.
* El hecho de que forzosamente no se cobre por adquirirlo no quiere decir que no tenga valor y esto se traduce en costos (recientemente se calculo el costo de Linux en 10 //billones// de dólares).
* Ahorra muchos costos de infraestructura (Fortune 500 ya lo usa por esa razón)
* Pero la consultoría puede ser costosa (como lo es cualquiera de calidad)
* Se puede hacer empresa con software Libre ejp Google, Wikia, etc.

* Tenemos que desmonetarizar nuestras relaciones y dejar de pensarlas en términos de moneda.
** //Hay cosas que el dinero no puede comprar para todo lo demás está mastercard (o cualquier tarjeta de crédito)//
Una de las cosas interesantes cuando uno reinstala la distro desde "ceros", como en el caso de ArchLinux, es que muchas de las cosas que en otras se dan por sentadas y uno ni siquiera las piensa, son revisadas ahora. Por ejemplo, el protector de pantalla. Fué así como me encontré con //Electric Sheep//, un protector de pantalla que es al mismo tiempo una obra de arte colectiva. Que los enlaces hablen por sí mismos:
* [[El sitio principal de Electricsheep| http://electricsheep.org/]].
* [[Videos de algunas ovejas eléctricas| http://www.dododge.net/electricsheep/480p/]]
* [[Una de las ovejas que más me gusta| http://hifidreams.com/00198=03512=03512=03512.avi]]
* [[Blog de Scott Draves| http://scottdraves.com/]], el autor de //Electric Sheep//.
* [[Scott Draves Software Artworks 1992-2008| http://blip.tv/file/1233576]]: un video de recuento de sus trabajos en este periodo de tiempo.
* [[Una de las ovejas de sheepserver| http://sheepserver.net/v2d6/cgi/dead.cgi?id=134092]]
* [[Paintings that Evolve through Group Action - electricsheep.org| http://www.smartmobs.com/2007/01/20/paintings-that-evolve-through-group-action-electricsheeporg/]]: hace un breve cubrimiento de //Electric Sheep// en galerías de arte y en las oficinas de Google.
* [[HiFi Dreams| http://hifidreams.com/]]: La variable comercial de esta iniciativa a través de la venta de pinturas digitales que nunca se repiten y consisten en un monitor de pantalla plana que es alimentado por un pequeño computador ejecutando electric sheep.
* [[Images: Web surfers dream up electric 'sheep'| http://bellsouth.com.com/2300-1025_3-6099817-1.html?tag=mncol]]: hermosas imagenes de //electric sheep// acompañadas con cortas explicaciones sobre cómo funciona el programa.
* [[Corrigiendo un problema de display con electric sheep en un foro de Ubuntu| http://forums.fedoraforum.org/archive/index.php/t-139870.html]]
* [[Corrigiendo un problema de display con electric sheep en un foro de Arch Linux| http://bbs.archlinux.org/viewtopic.php?id=53581]]
!! Instalación en ArchLinux
Hacemos:
<<<
''Consola superusuario:''
{{{
yaourt electricsheep
}}}
<<<
!! Ejecución
<<<
''Consola:''
{{{
electricsheep --nick offray --root 0 --mplayer 1 --zoom 1 --nrepeats 2 --frame-rate 30 --save-dir ~/.sheep --logfile ~/.sheep/sheep.log
}}}
<<<
Lo que va después de {{{--nick}}} es el nombre de usuario con el que queremos ser reconocidos en el servidor de ovejas. {{{--root}}} indica en que //display// lo vamos a mostrar. Para salirnos del protector simplemente tecleamos [esc].
Elive es una distro que integra lo mejor de varios mundos: E17 + Debian + T2, de una forma exquisita. La gente que trabaja en el proyecto tienen una política que invita a la colaboración en extremo la versión estable se puede instalar gracias a unos códigos que son entregados en trueque por ayuda al proyecto en la forma de dinero, revisiones web hechas por uno mismo o recomendaciones a terceros para que escriban acerca del proyecto. Yo probé la versión estable, instalándola incluso en el disco duro y me encontré con la grata sorpresa de que el //Trueque License// es de hecho bastante generoso y me dieron no sólo 3 códigos sino la proposición de solicitar cuantos quiera si los necesito para una institución educativa. Sin embargo la selección de paquetes que integraba la versión inestable me pareció más conveniente para mis necesidades habituales, en particular por la inclusión de Firefox/Iceweasel 3.0.x y virtualbox y es una forma de colaborar con el desarrollo de esta excelente distro.

La instalación ha mejorado bastante respecto a las versiones anteriores y ahora tan pronto inicia, le dice que componentes aún están en desarrollo, es esta versión en particular (1.9.13), están en proceso las traducciones y la configuración de la red, por lo cual hay que abrir una consola y digitar: {{{net-connector}}} para acceder a la utilidad de hace esto último. La utilidad, como todos los desarrollos en E17 es visualmente muy atractiva, pero si uno no coloca un nombre del perfil de red, no hará nada, lo cual puede ser un poco desconcertante (debería admitir perfiles vacios o un nombre por omisión para empezar prontamente... aunque se comporta diferente en máquinas distintas, pues en mi portátil sí asumió un perfil por omisión). En mi portátil ha sido la única distro que ha detectado la Wi-Fi //atheros//, ni Puppy, ni Sabayon, ni Ubuntu lo hicieron (tal vez el 8.10 lo haga, pero la experiencia de uso no es tan placentera) y si bien Elive no reconoció las redes existentes cuando le dije que las escaneara, bastó con colocar los datos de mi enrutador y logró la conexión sin inconvenientes (de hecho, esta actualización la estoy escribiendo desde mi cama)

Una vez configurada la red, basta con ir al icono de instalación y se descargará un módulo que actualiza estas versiones de prueba. La Instalación en mi caso fue supertranquila. Se detectó una versión previa y se tomó todo lo que había en ella que fuese valioso. En menos que me diera cuenta y con casi ninguna pregunta (a pesar de haber escogido el modo experto, pero teniendo en mi beneficio la instalación previa) pude usar Elive en desarrollo en mi máquina e instalarlo en minutos... y ya estoy próximo a reiniciar!!!

Un detalle curioso es que mientras la instalación se realiza, elive lanza elitarie, el juego de solitario hecho con las librerías ETK.

Cosas por mejorar:
* Los tamaños de las fuentes son muy pequeños
* la configuración del idioma debería permitir variantes regionales (por ejemplo el español de latinoamérica)
* Las combinaciones de teclas de E17 no deberían sobreescribir comportamientos usuales del teclado, en particular [Ctrl] + [Shift] + [Izquiera]/[Derecha]

Ya está instalado en mi máquina de oficina y estoy próximo a reemplazar mi Ubuntu por Elive en la máquina principal (keyros, el portátil) y también se las recomendaré a todos los amigos que estén migrando para que lo evaluen y si lo quieren, se los ayudaré a instalar. Definitivamente es una experiencia con una estética diferente :-)... Reiniciando...

Cuando se instala Elive en m'aquinas duales hay problemas con el grub que son solucionadas actualizando el kernel y agregándolo a las opciones el grub. 

!! Arreglando inconvenientes.

* En caso de que los sistemas tengan particiones con LVM es mejor no migrar el sistema anterior, sino hacer una instalación fresca en la partición designada como {{{/}}} y reconstruir el archivo {{{/etc/fstab}}}

* Obtengo este error an intentar lanzar aplicaciones gtk, cuando coloco los locales en español (con los locales en inglés no tengo ese inconveniente):

{{{
Thunar-ERROR **: No se pudo cargar el icono de «fallback» desde «/usr/share/icons/Elive/scalable/mimetypes/file-broken.png»
(No se ha podido cargar el módulo de carga de imágenes: /usr/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-png.so:
 /usr/lib/gtk-2.0/2.4.0/loaders/libpixbufloader-png.so: no se puede abrir el fichero del objeto compartido: No existe el fichero o el directorio). ¡Compruebe su instalación!
aborting...
Abortado
}}}

Cuando intentamos leer algunos dispositivos como CDs o memorias USB se obtieen mensajes como estos:

{{{
A security policy in place prevents this sender from sending this message to this recipient, see message bus configuration 
file (rejected message had interface "org.freedesktop.Hal.Device.Volume" member "Mount" error name "(unset)" destination 
"org.freedesktop.Hal").
}}}

!! Enlaces:
* [[Sistema de gestion de errores| http://bugs.elivecd.org/]]
* [[Página principal de Elive| http://www.elivecd.org/]]
* [[Elive Compiz| http://www.elivecd.org/Download/e17-compiz]]
* [[OpenCoffee Club - Bogotá| http://upcoming.yahoo.com/group/15196/]]
* [[Simple Vanilla| http://simplevanilla.com/blog/?p=3]]: Getting businesses online. Doing business online.
* El perfume fino...
* Society of Mind
<<<
[img[https://dl.getdropbox.com/u/394620/Imagenes/elYoSOM.jpg]]
<<<
! Por qué el énfasis en lo micro?
* Pasar de la lógica de la escasez a la lógica de la abundacia:
** Lograr soportes abundantes para bienes abundantes ejp: Libros vs Internet
* Lidiar con la sobrecarga de información
* La clave está en la articulación de lo pequeño: microcambios producen macrocomportamientos (Schelling) (Teoría de la complejidad)
** Los computadores ahora nos permiten modelar esta complejidad de los discreto interconectado y pesar en esos términos.
* Computación Ubicua: 
** Celulares vs Portátiles (empiezan a darse hibridaciones).
** Tiempo / Potencia / Ubicuidad
<<slider chkQuoVadis QuoVadis 'Quo Vadis, e-Learning? »' 'Quo Vadis, e-Learning?'>>
Un escritorio virtual es una forma de desplegar información que provee una experiencia de usuario similar a la interface de escritorio, con la diferencia de que los recursos de computo de dicho escritorio no están en la máquina donde este se visualiza, sino en una máquina remota (existen excepciones pero esto es lo que se busca en la mayoría de los casos).
! Soul
[[La música soul, 50 años y ni una sola arruga| http://entretenimiento.latam.msn.com/articulo_afp.aspx?cp-documentid=18546675]]
! Jamendo
* [[Brad Sucks | http://www.jamendo.com/es/artist/bradsucks]]
** [[Out of It | http://www.jamendo.com/es/album/31187]] 
* [[The Rest | http://www.jamendo.com/es/artist/The_Rest_(3)]]
** [[Atlantis, Oh Our Saviour | http://www.jamendo.com/es/album/27993]]
* [[Pornophonique | http://www.jamendo.com/es/artist/pornophonique]], Darmstadt, Alemania. O Cuando una Guitarra Eléctrica se encuentra con un gameboy
** [[The procacci remixes, vol. I | http://www.jamendo.com/es/album/8424]]
*** Lemmings in love
*** Space Invaders
** [[8-bit lagerfeuer | http://www.jamendo.com/es/album/7505]]
** Artículos:
*** [[Pornophonique está muy cerca del éxito | http://blog.jamendo.com/2008/10/13/pornophonique-esta-muy-cerca-del-exito/]]
<<<
Un día nos conocimos en la tienda de comics de la esquina y un mes más tarde, dábamos nuestro primer concierto juntos. En realidad nunca tuvimos la intención de hacer esta música. Nos gustaba la música lenta y planeante, el tipo de cosas que se escucha en una peli porno o en un ascensor. Desafortunadamente, no se nos da bien la música porno, pero ya habíamos mandado hacer pegatinas con el nombre
<<<
* Kesakoo:
** [[Phoosphores | http://www.jamendo.com/es/album/28731]] -> 
*** Debelgeuse
*** Syncope
!Odeo
* Odeo... ''powered by CC'': Los geeks tenemos nuestro corazoncito...
** [[En donde estés | http://odeo.com/audio/5611303/view]]
** [[Noches de Bohemia | http://odeo.com/audio/5610723/view]]
** [[Aquel Corazón | http://odeo.com/audio/2045395/view]]
Estoy mostrando como usar un microwiki a las personas de la maestría en diseño y creación interactiva de la Universidad de Caldas.
<<calendar>>
* [[Étoilé: Powerful. Beautiful. Open| http://etoileos.com/etoile/]]: "Étoilé intends to be an innovative ~GNUstep based user environment built from the ground up on highly modular and light components with project and document orientation in mind, in order to allow users to create their own workflow by reshaping or recombining provided Services (aka Applications), Components etc. Flexibility and modularity on both User Interface and code level should allow us to scale from PDA to computer environment."
* [[Étoilé tiene soporte para Smalltalk| http://etoileos.com/dev/docs/languages/smalltalk/]].
* [[Étoilé FAQ| http://etoileos.com/etoile/faq/]]
* [[Étoilé News| http://etoileos.com/news/]]: Unas noticias tipo blog con unos muy interesantes post. Acá algunos de ellos:
** [[New Etoile Mockups| http://etoileos.com/news/archive/2007/03/30/1507/]]
** [[Install Étoilé (Survivor Guide)| http://etoileos.com/news/archive/2007/03/18/0820/]]
** [[Pragmatic Smalltalk 0.5| http://etoileos.com/news/archive/2008/07/12/1410/]] "I've been calling Étoilé 'a pragmatic Smalltalk' for a long time (although Nicolas, I believe, was the one to coin the expression). Smalltalk is a really great language, but it has two disadvantage...", explora cómo integrar las ideas de Smalltalk en un entorno que no sea "autocontenido" en la imagen... una idea muy interesante y necesaria desde hace rato (me recuerda mi charla en el Squeak Fest 2007, sobre puentes como estos)
* [[Étoilé en la Wikipedia| http://en.wikipedia.org/wiki/%C3%89toil%C3%A9]]
* [[Etoys en Uruguay | http://ceibalflorida.blogspot.com/search/label/etoys]]. También algo sobre Etoys para mapas conceptuales. Más información en el [[post sobre etoys en Uruguay en la lista etoys | http://squeakland.immuexa.com/news/blog/archive/000815.jsp]]
* [[Music of the spheres and Etoys | http://flyingsinger.blogspot.com/2008/11/etoys.html]]
* [[Atajos de teclado en Etoys| http://wiki.laptop.org/go/Etoys_Shortcuts]]
* [[Information train| http://www.spinellis.gr/blog/20090218/]]: una analogía física que usa Etoys.
De la lista de Etoys:
<<<
In other news, the government of Nicaragua received 3,200 XO laptops from a local donor and wants Waveplace to train 400 teachers in 200 schools.   Wow.  More details can be found in our newsletter:
http://waveplace.com/news/newsletter/web.jsp?id=13
You can subscribe to the newsletter at:
http://waveplace.com/subscribe/
<<<
* [[SIAM Conference  on Computational Science and Engineering| http://www.siam.org/meetings/cse09/]]
!! World Conference on Computers in Education
* Fecha: 2009 - julio, (lunes 27 a viernes 31)
* Lugar: Brasil Rio Grande do Sul
* [[Página Web del WCCE 2009| http://icms.schule.at/index.php?CONF_ID=5]]
* [[Página del envío de papers| http://www.wcce2009.org/submission.html]]
/***
|Name:|ExtentTagButtonPlugin|
|Description:|Adds a New tiddler button in the tag drop down|
|Version:|3.2 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#ExtendTagButtonPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{

window.onClickTag_mptw_orig = window.onClickTag;
window.onClickTag = function(e) {
        window.onClickTag_mptw_orig.apply(this,arguments);
        var tag = this.getAttribute("tag");
        var title = this.getAttribute("tiddler");
        // Thanks Saq, you're a genius :)
        var popup = Popup.stack[Popup.stack.length-1].popup;
        createTiddlyElement(createTiddlyElement(popup,"li",null,"listBreak"),"div");
        wikify("<<newTiddler label:'New tiddler' tag:'"+tag+"'>>",createTiddlyElement(popup,"li"));
        return false;
}

//}}}
* [[Download Status bar| https://addons.mozilla.org/en-US/firefox/addon/26]]
* [[Tab Mix Plus| https://addons.mozilla.org/en-US/firefox/addon/1122]]
* [[Tiny Menu| https://addons.mozilla.org/en-US/firefox/addon/1455]]
* [[Shorten url| https://addons.mozilla.org/en-US/firefox/addon/11423]]
* [[Fox Clock| https://addons.mozilla.org/en-US/firefox/addon/1117]]
* [[http://userscripts.org| http://userscripts.org/]] Power ups for your browser.
** [[Free Tube| http://userscripts.org/scripts/show/34765]]: Uso del reproductor de medios del navegador en lugar del de flash para ver videos de YouTube. Soporte parcial para Vimeo y otros sitios.
FDOM: Fat and Dirty OM: Una distribución comunitaria para el [[Freerunner]] que incluye un listado grande de aplicaciones preinstaladas como prueba de concepto.
* [[Página de FDOM en el Wiki de Openmoko | http://wiki.openmoko.org/wiki/FDOM]]
* [[Descargas y Readme de FDOM | http://compartida.net/openmoko/FDOM/]]
* [[Test de FDOM en Openmoko Francia | http://openmoko-fr.org/blog/index.php?post/2008/09/16/Test-de-FDOM]] Con capturas de pantalla y una evaluación preliminar de las aplicaciones que funcionan y las que no.
FeedVis es una interesantes herramienta para ver la actividad en la red a partir de los diferentes  Feeds. Elabora una nube de etiquetas a partrir de un conjunto de Feeds y permite hacer zoom por tiempo o contenidos específico. Acá algunos artículos:
* [[FeedVis: a deeper tagcloud for edublogs| http://jasonpriem.com/2008/11/feedvis-a-deeper-tagcloud-for-edublogs/]]
* [[FeedVis 2.0: custom visualization for your feeds| http://jasonpriem.com/2008/12/feedvis-20-custom-visualization-for-your-feeds/]]
* [[Visualizing Feed Word Clouds Over Time with FeedVis| http://cogdogblog.com/2008/11/25/feedvis/]]
* [[Track Hot Topics On Niche Blogs With FeedVis| http://www.readwriteweb.com/archives/track_hot_topics_on_niche_blogs.php]]
* [[Data Mining: Text Mining, Visualization and Social Media| http://datamining.typepad.com/data_mining/2008/12/feedviz-an-integrated-feed-visualization-and-reading-system.html]]
* [[Create RSS feeds OPML files with OPMLBuilder| http://reader.feedshow.com/goodies/opml/OPMLBuilder-create-opml-from-rss-list.php]]: "~FeedShow ~OPMLBuilder lets you create an OPML file from a list of RSS url or from the links included in any web page."
!!Pruebas
Lo estuve probando y no logré el comportamiento del que hablan los artículos. Contacté al autor, pero creo que hay que intentar el enfoque original que pensé antes de conocer la herramienta.
Para maximizar la apariencia visual de firefox se pueden hacer lo que está indicado acá:

[[Creating more screen space in Firefox| http://wiki.eeeuser.com/howto:shrinkfirefox]]
Para instalar Firefox:
<<<
''Consola Superusuario:''
{{{
pacman -S firefox
}}}
<<<
<<<
''Salida de consola:''
{{{
resolving dependencies...
looking for inter-conflicts...

Targets: libidl2-0.8.11-1  mozilla-common-1.2-1  nspr-4.7.3-1  nss-3.12.2-1  
         lcms-1.17-2  hunspell-1.2.8-1  xulrunner-1.9.0.5-2  firefox-3.0.5-1  

Total Download Size:    19.44 MB
Total Installed Size:   71.27 MB

Proceed with installation? [Y/n]
}}}
<<<
: teclamos [y] o [Enter]
<<<
''Salida de consola:''
{{{
:: Retrieving packages from extra...
 libidl2-0.8.11-1-i686    300.4K   60.6K/s 00:00:05 [#####################] 100%
 mozilla-common-1.2-...     0.5K    1.2K/s 00:00:00 [#####################] 100%
 nspr-4.7.3-1-i686        358.9K   69.2K/s 00:00:05 [#####################] 100%
 nss-3.12.2-1-i686       1794.3K   66.7K/s 00:00:27 [#####################] 100%
 lcms-1.17-2-i686         266.1K   50.8K/s 00:00:05 [#####################] 100%
 hunspell-1.2.8-1-i686    214.7K   59.3K/s 00:00:04 [#####################] 100%
 xulrunner-1.9.0.5-2...    15.6M   63.3K/s 00:04:13 [#####################] 100%
 firefox-3.0.5-1-i686     958.8K   50.5K/s 00:00:19 [#####################] 100%
checking package integrity...
(8/8) checking for file conflicts                   [#####################] 100%
(1/8) installing libidl2                            [#####################] 100%
(2/8) installing mozilla-common                     [#####################] 100%
(3/8) installing nspr                               [#####################] 100%
(4/8) installing nss                                [#####################] 100%
(5/8) installing lcms                               [#####################] 100%
(6/8) installing hunspell                           [#####################] 100%
(7/8) installing xulrunner                          [#####################] 100%
(8/8) installing firefox                            [#####################] 100%
}}}
<<<
El sistema de empaquetamiendo modular [[Pacman]], nos permite apreciar que la aplicaci'on grande, que contiene el n'ucleo de firefox es xulrunner con casi 15 megas de espacio, mientras que Firefox, construido encima de esta, ocupa s'olamente 1 mega. Ser'ia ch'evere ver c'omo se realiz'o el empaquetamiendo de [[Songbird]]
!! Plugins
~DespuEs de instalar Firefox, conviene enriquecerlo con algunos plugins, como el de flash y el de reproducciOn de multimedia (esta vez usaremos [[yaourt|Yaourt]] para la instalaciOn):
<<<
''Consola:''
{{{
yaourt -S flashplugin
yaourt -S gecko-mediaplayer
yaourt jre
}}}
<<<
* Si obtenemos el mensaje
<<<
''Mensaje de consola:''
{{{
warning: directory permissions differ on usr/lib/mozilla/
filesystem: 700  package: 755
}}}
<<<
: hacemos:
<<<
''Consola Superusuario:''
{{{
chmod -R 755 /usr/lib/mozilla
}}}
<<<
!! Enlaces Adicionales
* [[Firefox in Archwiki| http://wiki.archlinux.org/index.php/Firefox#Add-ons]]
* Revisar [[Gecko Media Player| http://code.google.com/p/gecko-mediaplayer/]]: is a browser plugin that uses GNOME MPlayer to play media in a browser. It should work with all browsers on Unix-ish systems(Linux, BSD, Solaris) and use the NS4 API (Mozilla, Firefox, Opera, etc.).
*[[FQXi FORUM: INTRODUCTION| http://fqxi.org/community/forum/intro]]: "The FQXi Forum is a service provided by the Institute to further discussion on topics concerning foundational questions in physics, cosmology, and related fields. It is intended for FQXi Members, scientists, outreach specialists, and the public—that is, everyone!"
** [[An Exceptionally Simple FAQ| http://fqxi.org/community/forum/topic/107]]
* [[A. Garrett Lisi| http://sifter.org/~aglisi/]] Autor de:
** [[Deferential Geometry| http://deferentialgeometry.org/]]: Uno de los primeros microwikis que visité que usaban matemáticas.
** [[An Exceptionally Simple Theory of Everything | http://en.wikipedia.org/wiki/An_Exceptionally_Simple_Theory_of_Everything]] en TedTalks
** [[Garrett Lisi on his theory of everything| http://www.ted.com/talks/lang/eng/garrett_lisi_on_his_theory_of_everything.html]]
* [[Freemind| http://freemind.sourceforge.net]]: el software que empleo para hacer la mayoría de mis conferencias (voy a empezar a usar también Xmind).
* [[Nuevas características en Freemind 0.9| http://freemind.sourceforge.net/wiki/index.php/FreeMind_0.9.0:_The_New_Features]]: Chévere el tema de los //scripts//.
* [[Embebiendo mapas de Freemind en la Web| http://freemind.sourceforge.net/wiki/index.php/Embedded_Mind_Maps#]]: Muestra cómo colocar mapas mentales en páginas web vía flash (privativo :-/) y mejor aún Java.
* [[Ejemplos de scripts para freemind| http://freemind.sourceforge.net/wiki/index.php/Example_scripts]]
Freenode es un lugar que provee servicios de conversación para diferentes comunidades.

Para registrar un Nickname (alias) deben seguirse las instrucciones presentes acá:

http://freenode.net/faq.shtml#nicksetup
* Bearstech: la gente que trabaja con repositorios de FSO y en [[dispositivos hackeables | http://bearstech.com/recherche-et-developpement/hackable-devices]]
** [[Readme del Unoficial autobuilder for SHR | http://shr.bearstech.com/README]]
* [[Manifiesto de Freesmartphone | http://www.freesmartphone.org/index.php/Manifesto]]: La foto del logo del wiki se puede usar para hablar de las "convergencias" en dispositivos de computo portables.
* Freerunner:
** [[The uniphone | http://mc101.wordpress.com/2007/10/22/the-uniphone/]]
<<<
The Neo is not, as the iPhone is, a component in a boutique experience that includes remotely destroying (3) your phone if you use it in a way that AT&T and Apple don’t want you to.
<<<
** [[FSO Milestone II Photo Safari and rant | http://monochromementality.com/index.php/blog/show/FSO-Milestone-II-Phot-Safari-and--rant.html]]
** "Teclados"
*** [[Input Method | http://wiki.openmoko.org/wiki/Input_Method]]
*** Ejemplo de teclado para Stylus: el enlace está perdido. Era: {{{http://wiki.openmoko.org/images/7/75/Stylus_06_input_keypad.png}}}
*** Matchbox Keyboard
[img[http://www.seili.net/openmoko/matchbox-keyboard-screenshot.png]]
**** [[Text input methods for Tablets and UPCs | http://jkontherun.blogs.com/jkontherun/2004/11/text_input_meth.html]], no sobre openmoko, pero relacionado con métodos de entrada. Bastante interesante.
*** [[Diseño abierto con los archivos CAD del hardware de Openmoko | http://www.openmoko.com/opportunities-universities-update.html]]
* [[Moko foresight| http://wiki.openmoko.org/wiki/MokoForesight]]: "is an independent hardware lab inside Openmoko to scout, analyze, and write proof-of-concept drivers for new open source chips/modules. It will accept tasks from Openmoko product teams or from the community, and maintain its own priorities". Tiene cosas como el [[iPhone 3G Disassembly| http://downloads.openmoko.org/foresight/Publications/iPhone_3G_Disassembly.pdf]] 
!! Accesorios
[[Rechargeable USB Emergency Power Backup Pack 2400mAh| http://www.dealextreme.com/details.dx/sku.3060]]
Aplicaciones para Openmoko:
* [[OMView | http://wiki.openmoko.org/wiki/OMView]]: Visor de Imágenes.
* [[Juegos para Openmoko | http://wiki.openmoko.org/wiki/Games]]
* [[Lista de aplicaciones para Openmoko | http://wiki.openmoko.org/wiki/Applications]]

! Por probar:
* [[Quasar | http://katastrophos.net/andre/blog/software/quasar-media-player/]]
* Instalar SIAG (en Freerunner):
** [[Compiling Siag is driving me nuts | http://kmandla.wordpress.com/2007/09/19/compiling-siag-is-driving-me-nuts/]]
** http://siag.nu/pub/mowitz/
** ftp://siag.nu/pub/siag/
Frefunk es un firmware, basado en Linux, para enrutadores Linksys (entre otros) que permite crear redes inalámbricas p2p
* [[Freifunk en El Directorio| http://www.el-directorio.org/inalambricadc/documentacion/FreiFunk]]: incluye documentación sobre como actualizar el //firmware//, hacer //resets//, reconfigurarlo a nivel de harware y recuperarlo en caso de fallas graves.
El Fstab es un archivo que indica como est'a particionado el disco duro de nuestro computador. Estos son algunos ejemplos de mi Fstab:
!! Computador de la oficina
<<<
''Archivo:'' {{{/etc/fstab}}}
{{{
# 
# /etc/fstab: static file system information
#
# <file system>        <dir>         <type>    <options>          <dump> <pass>
unionfs                /             unionfs   noauto              0      0
none                   /dev/pts      devpts    defaults            0      0
none                   /dev/shm      tmpfs     defaults            0      0
#tmpfs		       /tmp	     tmpfs     defaults		   0      0
# Esta es la instrucción para asignar más memoria temporal
tmpfs		       /tmp	     tmpfs     noauto,rw,size=800M,noatime		   0      0

#/dev/cdrom             /bootcd       iso9660   ro,user,noauto      0      0
#/dev/sr0 /mnt/sr0 iso9660 auto,noatime,users,suid,dev,exec,ro 0 0 # AutoUpdate
#/dev/sda1 /mnt/sda1 ext3 auto,noatime,users,suid,dev,exec 0 0 # AutoUpdate
#/dev/sda2 none swap auto,defaults,pri=1 0 0 # AutoUpdate
#/dev/sda5 /mnt/sda5 ext3 auto,noatime,users,suid,dev,exec 0 0 # AutoUpdate
#/dev/sdb1 /mnt/sdb1 vfat auto,noatime,users,suid,dev,exec,quiet,umask=0,check=s,shortname=mixed 0 0 # AutoUpdate
UUID=29483d10-92d9-4112-b742-d13c46125f02 /home ext3 defaults 0 1
UUID=8c94131e-29f6-49f4-8e37-7e8e4f167bf4 swap swap defaults 0 0
UUID=e5f83552-2899-4543-b6f9-c601184f049f / ext3 defaults 0 1
}}}
<<<
!! Laptop Lenovo
{{{
# 
# /etc/fstab: static file system information
#
# <file system>        <dir>         <type>    <options>          <dump> <pass>
unionfs                /             unionfs   noauto              0      0
none                   /dev/pts      devpts    defaults            0      0
none                   /dev/shm      tmpfs     defaults            0      0
tmpfs		       /tmp	     tmpfs     defaults		   0      0


#/dev/cdrom             /bootcd       iso9660   ro,user,noauto      0      0
/dev/sda1 /mnt/sda1 ntfs-3g auto,noatime,users,suid,dev,exec,locale= 0 0 # AutoUpdate
/dev/sda2 none swap auto,defaults,pri=1 0 0 # AutoUpdate
/dev/sda3 /boot ext2 auto,noatime,users,suid,dev,exec 0 0 # AutoUpdate
#/dev/sda4 /mnt/sda4 reiserfs auto,noatime,users,suid,dev,exec 0 0 # AutoUpdate
#/dev/sdb1 /mnt/sdb1 vfat auto,noatime,users,suid,dev,exec,quiet,umask=0,check=s,shortname=mixed 0 0 # AutoUpdate
/dev/mapper/VolGroup00-raiz / reiserfs defaults 0 1
/dev/mapper/VolGroup00-usuarios /home reiserfs defaults 0 1
}}}
[[Funtoo| http://funtoo.org/]]: "In a Nutshell: Freshly-built Gentoo Linux variant, optimized for your processor, Funtoo Portage unstable branch, includes ~OpenRC, dhcpcd and git."
* [[The Goal of Funtoo| http://blog.funtoo.org/2008/10/goal-of-funtoo.html]] en el blog del proyecto
* Hay una variante que usa [[OpenVZ| http://wiki.openvz.org/Main_Page]] is a high-performance, lightweight Open Source Linux virtualization technology. It allows you to run many (even hundreds) of independent instances of Linux on a single physical machine.
* [[Podcast 42 Daniel Robbins (Funtoo)| http://www.linuxcrazy.com/?q=node/54]]
!! Geany: Un ambiente integrado de desarrollo liviano y extensible
[>img[http://www.geany.org/images/geany_vte_small.png]]
* [[Página principal de Geany| http://www.geany.org/Main/HomePage]]
* [[Geany Review A fast and lightweight IDE| http://www.softpedia.com/reviews/linux/Geany--Review-84142.shtml]]: En Softpedia. Un detalle curioso: dentro del chequeo que Geany hace durante la compilación, revisa si la fuerza está con uno. La respuesta siempre es negativa :-/
* [[Geany - A Perfect Programming IDE| http://www.ubuntunews.info/geany-perfect-programming-ide]]
* [[Geany: a Fast & Lightweight IDE / Text Editor| http://novicenotes.com/2008/01/20/best-free-windows-php-ide-text-editor/]] Con particular énfasis en cómo ejecutarlo en Windows
* [[Scribes| http://scribes.sourceforge.net/]]: Un editor similar, simple y extensible con Python, para ambientes Gnome.
!! Instalación en Archlinux
<<<
''Consola Superusuario:''
{{{
yaourt -S geany
}}}
<<<
!! Atajos de Teclado
* [F4] : Ir al terminal de comandos
* [F2] : Ir al editor de código.
!!! UNIDAD I |> Informática (Computación) Personal

# Computación Personal: El computador como un nuevo libro que requiere una nueva literatura.
# El computador como un artefacto con un ethos: Stallman y el movimiento de software libre.

* Actividad Práctica:
** Instalar dropbox
** El mapa mental/conceptual de la informática y las mediaciones digitales para representarlo

* Referencias bibliográficas
** [[Tracing the dynabook|TracingTheDynabook]]
!!! UNIDAD II |> Informática (Computación) Interpersonal
# Antecedentes: La computación literata y el proyecto Xanadú de Theodor H. Nelson.
# //Learning Management Systems//: una mirada instrumental y desde la gestión de lo educativo
# El software social
## Antecendentes
## Tipos
## Desventajas
## Un zoom a los wikis
* Actividad práctica: Creando un microwiki
* Bibliografía recomendada
** NELSON, Mindful Press (1981). Literary Machines. Mindful Press, Sausalito, California.
** [[Wikis]] (en línea -click en el enlace para detalles)
!!! UNIDAD III |> Edumática: Los puentes entre la informática personal e interpersonal desde lo educativo.
# Mediaciones: El triángulo extendido de Vigotsky.
# Comunidades de Aprendices
## Consideraciones generales
## Permisos y arquitecturas.
# Objetos virtuales de aprendizaje: una mirada crítica
# Puente: La programación literata.

''Referencias''
* Wenger, Etienne: Comunidades de práctica
* Cavallo, David: Changes in Learning Environments
!! Presentación
La informática ha impactado de forma profunda las prácticas y escenarios sociales, y la educación se ha visto afectada profudamente también: nuevas formas de interacción protencian antiguas formas de filiación y pertenencia, configuran nuevos entornos de aprendizaje y nuevos colectivos de práctica. El módulo de gestión de la información pretende dar una mirada panorámica a estos cambios y acercar al estudiante a las prácticas y artefactos digitales propios de la informática actual, así como que se entienda los orígenes y posibilidades configuradas desde la intersección de lo informático y lo educativo y, con esta mirada gestionar de modos diferentes la información como sustrato de las mediaciones educativos y de la práctica cotidiana frente a los artefactos informáticos.

!! Distribución de créditos

|''Número total de créditos: 1'' |
|Número total de horas con acompañamiento directo : 12 |
|Número total de horas de trabajo independiente: 36 |
|Número total de horas: 48 |

!! Competencias que se adquirirán

Al finalizar el módulo el estudiante deberá estar en capacidad de: 

* Ubicar los principales hitos que configuraron las posibilidades de la intersección informática y educación, en particular desde las posibilidades de la computación interpersonal.
* Usar artefactos digitales para la construcción de memoria hipertextual individual y colectiva
* Gestionar información y estrategias para la construcción de conocimiento significativo.
* Analizar de manera crítica la calidad de la información encontrada en Internet, en particular en lo referente a las tendencias sobre derecho de autor, publicación en Internet y privacidad y portabilidad de los datos. 

!! Metodología

La metodología utilizada privilegiará la resolución de problemas, a través de talleres que se desarrollan en el laboratorio. 

!! Sintesis de las Unidades Temáticas

- Presentación del curso
* Informática (Computación) personal
* Informática Interpersonal
* Los puentes en lo educativo

!! Programa
[[Mapa mental del curso de gestión de la información| https://dl.getdropbox.com/u/394620/Conferencias/Wikis-Wikipedia/gestionDeLaInformacion.mm]]
* <<slider chkGesInUnidad1 GesInUnidad1 'UNIDAD I |> Informática (Computación) Personal »' ''>>
* <<slider chkGesInUnidad1 GesInUnidad2 'UNIDAD II |> Informática (Computación) Interpersonal »' ''>>
* <<slider chkGesInUnidad1 GesInUnidad3 'UNIDAD III |> Edumática: Los puentes entre la informática personal e interpersonal desde lo educativo »' ''>>


!! Bibliografía Complementaria
* CASTELLS, Manuel. (2004).The Rise of the Network Society. Ed. Blackwell Publishing. USA.
* CASTELLS, Manuel. (2001). T he Internet Galaxy. Ed Oxford University Press. Inglaterra.
* [[Why I Can't I Change| http://whycantichange.com/]]
Prerrequisitos: [[Gnoosférica: Registro|GnoosfericaRegistro]]
!! Gnoosférica: participar de una charla
Las charlas son una de las maneras más comunes de interactuar en la vida análoga y la digital. Aquello que hacemos "simplemente hablando" en la primera, se convierte en chats, foros, mensajería instantánea, en la segunda (la gente de Community Wiki le llama a esto "presencia dialógica" que viene de cómo expresamos en línea, aquellas formas de interacción ligadas a la oralidad). Debido a que es una forma de interacción muy usual, iniciaremos con ella nuestras primeras acciones en el portal.
* Una vez en la página de inicio veremos un lugar llamado "Espacios" (Spaces), restaltado, de modo poco sutil, en la siguiente gráfica:
<<<
<html><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/espaciosMenu.png" style="width: 300px; "/></html>
[[Click para agrandar| https://dl.dropbox.com/u/394620/Imagenes/Cynin/espaciosMenu.png]]
<<<
* Si pasamos el puntero del ratón por encima de cada uno aparecerá una pequeña descripción del mismo, como muestra la gráfica.
<<<
<html><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/espacioEjemplo.png" style="width: 300px; "/></html>
[[Click para agrandar| https://dl.dropbox.com/u/394620/Imagenes/Cynin/espacioEjemplo.png]]
<<<
* Hacemos click en el espacio en el que queremos participar. Para este ejemplo hemos elegido el de "Redes y ~TICs, pero cualquiera podría funcionar".
<<<
|''Ojo:'' Es importante seleccionar previamente el espacio en el que queremos participar, de lo contrario todos nuestros aportes se irán al  espacio general (Home), en lugar de al específico |
<<<
* Una vez hallamos hecho click en tal espacio veremos un resumen de la actividad //exclusiva// de ese espacio. Este resumen aparece en un lugar llamado el //Dashboard//, como lo muestra la gráfica a continuación.
<<<
<html><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/espacioResumenInicial.png" style="width: 300px; "/></html>
[[Click para agrandar| https://dl.dropbox.com/u/394620/Imagenes/Cynin/espacioResumenInicial.png]]
<<<
* Desde el resumen general podemos pasar a la actividad específica en la que nos interesa participar, simplemente haciendo clicks sucesivos que van de lo general a lo particular. La gráfica a continuación muestra, numerados, la secuencia de clicks que deberíamos hacer para participar de una charla. del espacio "Redes y ~TICs".
<<<
<html><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/seleccionarActividadSecuencia.png" style="width: 300px; "/></html>
[[Click para agrandar| http://dl.dropbox.com/u/394620/Imagenes/Cynin/seleccionarActividadSecuencia.png]]
<<<
* Una vez hagas los clicks entraremos a una página como la siguiente.
<<<
<html><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/interfaceCharla.png" style="width: 300px; "/></html>
[[Click para agrandar| http://dl.dropbox.com/u/394620/Imagenes/Cynin/interfaceCharla.png]]
<<<
: En dicha interface hacemos click en el recuadro donde dice "Post a comment", allí escribimos los comentarios y hacemos click en "Post". Así podremos iniciar la charla.
!! Introducción a Gnoosférica
<html><div style="float: right;"><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/paginaInicio.png" style="width: 300px; "/></html>
Gnoosférica es un laboratorio abierto de creación colectiva en conocimiento libre (definición en construcción). Es un juego de palabras que reune [[Noosfera| http://es.wikipedia.org/wiki/Noosfera]] (del griego noos, inteligencia, y esfera: el conjunto de los seres inteligentes con el medio en el que viven) y [[Gnu| http://en.wikipedia.org/wiki/GNU_Project]], el proyecto masivo y colaborativo de creación de software libre que ha inspirado y se relaciona con otros movimientos de cultura y conocimiento libre. Allí contarás con un conjunto de herramientas de la web colaborativa como blogs, wikis, etiquetado, evaluación y referencias sociales, en un sólo sitio, que integrarían una experiencia similar a usar Blogger, Wikipedia, Delicious, Digg desde un sólo lugar y para los proyectos individuales y colectivos de conocimiento libre que quieras.

Te invitamos a participar!, es sencillo.

De acá puedes continuar con:
* [[Gnoosférica: Registro|GnoosfericaRegistro]]
!! Registrándose en Gnoosférica
Si bien Gnoosférica se piensa como un lugar en el cual pueden participar usuarios anónimos como lectores y evaluadores de lo que allí se genera, la iteracción es mucho más rica cuando se tiene una cuenta, que permitirá otros tipos de interacción colaborativa, entre las cuales están la creación de contenidos, subida de archivos, organización y navegación, etc.
Para crear una cuenta en Gnoosférica has lo siguiente:
* Ingresa al [[Sitio de Gnoosférica| http://65.111.164.211:8080/RedSocial]]
* Verás una página similar a esta:
<<<
<html><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/primerRegistro.png" style="width: 300px; "/></html>
[[click para agrandar| https://dl.dropbox.com/u/394620/Imagenes/Cynin/primerRegistro.png]]
<<<
* Verás en la parte inferior de esa ventana tres opciones: {{{FORGOT PASSWORD? | SIGN UP | CONTACT STAFF}}}. Para crear un usuario haz click en el enlace que dice "SIGN UP".
* Verás un formulario como el siguiente:
<<<
<html><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/formularioRegistro.png" style="width: 300px; "/></html>
[[click para agrandar| https://dl.dropbox.com/u/394620/Imagenes/Cynin/formularioRegistro.png]]
<<<
: diligéncialo y dale aceptar.
* Una vez diligenciado el formulario verás la siguiente ventana:
<<<
<html><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/registroFinalizado.png" style="width: 300px; "/></html>
[[click para agrandar| https://dl.dropbox.com/u/394620/Imagenes/Cynin/registroFinalizado.png]]
<<<
: haz click en "login", te llevará a la página de inicio del portal Gnooférica.
* La página de inicio del portal de Gnoosférica es la siguiente:
<<<
<html><img src="https://dl.dropbox.com/u/394620/Imagenes/Cynin/paginaBienvenida.png" style="width: 300px; "/></html>
[[click para agrandar| https://dl.dropbox.com/u/394620/Imagenes/Cynin/paginaBienvenida.png]]
<<<
De acá puedes continuar con
* [[Gnoosferica: participar de una charla|GnoofericaCharla]]
!!GoboLinux: Repensando el árbol de Unix

* [[The Unix tree rethought: an introduction to GoboLinux| http://www.gobolinux.org/index.php?page=k5]]: Algo de la historia de Gobo y cómo empezó: La idea era poder instalar programas sin ser superusuario. Pensar más acerca de "Great Filesystem Crash" y la idea de deconstruir en lugar de construir.
* [[I am not clueless or Myths and misconceptions about the design of GoboLinux| http://www.gobolinux.org/index.php?page=doc/articles/clueless]]: Uno de los artículos más influyentes en mi forma de organizar mis archivos y programas y en general de pensar el //sacro santo// árbol de Unix. Hay que mirar con detenimiento la sección "//Integration with other distros//" y deconstruirla.
Una tecnología que funde los modos diálogicos y documentales de presencia en línea en una sóla experiencia. Se ve muy bien. Dicen que el servidor será federado y libre, pero lo liberan a final de año. Amanecerá y veremos.

* [[Google Wave: A Complete Guide| http://mashable.com/2009/05/28/google-wave-guide/]]
* [[1 Wave Sandbox, 5 Hours, 17 Awesome Demos| http://googlewavedev.blogspot.com/2009/06/1-wave-sandbox-5-hours-17-awesome-demos.html]]
Gphoto2 es un software que nos permite detectar, comunicarnos con y manipular cámaras digitales desde Linux.

* [[Página Weg de gphoto2| http://www.gphoto.org/]]: con una presentación bastante "retro", pero con mucha información para iniciarse sobre el uso :-)
* [[Use Your Digital Camera with Linux| http://www.linuxdevcenter.com/pub/a/linux/2005/01/06/digicam.html]]: con información clave sobre cómo usar gphoto. Los comandos claves:
** Para saber si la cámara fue detectada:
<<<
''Consola:''
{{{
gphoto2 --auto-detect
}}}
<<<
** Para descargar las fotos (ojo es conveniente crear una carpeta antes, pues las descarga en el lugar donde se ejecutó el comando)
<<<
''Consola:''
{{{
gphoto2 -L
}}}
<<<
!! Enlaces relacionados
* [[F-spot| http://f-spot.org]]: Un programa manipulador de fotos para Gnome
* [[DigiKam| http://www.digikam.org/]]: Un programa manipulador de fotos para KDE. Arch empaqueta la versión //light// llamada [[digikam-slim| http://bbs.archlinux.org/viewtopic.php?id=68393]]
* [[Greg Stolze Downloads | http://www.gregstolze.com/downloads.html]]: Un autor reconocido de los juegos de rol deja algunas de sus creaciones bajo diferentes licencias creative commons.
* [[One Roll Engine | http://en.wikipedia.org/wiki/One-Roll_Engine]]: Un motor de juegos que en una sóla tirada resuelve varios aspectos de la acción, entre otras: iniciativa y éxito. Empleado en: [[Godlike | http://en.wikipedia.org/wiki/Godlike_(role-playing_game)]] y Nemesis. (Creados por Stolze)
* [[Nemesis en la Wikipedia | http://en.wikipedia.org/wiki/NEMESIS_(role-playing_game)]].
** [[Sitio de Fans de Nemesis | http://www.nemesis-system.com/what-is-nemesis.html]]
** [[Estadísticas de Nemesis para Hellboy | http://www.nemesis-system.com/hellboy.html]]
* [[Meatbot Massacre | http://www.danielsolis.com/meatbot/]] (MBM): Un juego de estrategía con robots biomecánicos gigantes que se despedazan unos a otros. Un popular //deporte// que la humanidad encontró en el futuro como clave para mantenerse pacífica.
** Ilustraciones internas por [[Ryan Burret | http://www.danielsolis.com/port_ryan.html]] (por explorar)
Grub es el manejador de arranque usado actualmente en la mayoría de sistemas Unix que se ejecuta cuando se inicia el computador y permite elegir entre diferentes sistemas operativos para ser utilizados. Acá encontraremos información sobre cómo configurarlo.
!! Enlaces
* [[GNU/GRUB en la Wikipedia| http://es.wikipedia.org/wiki/GNU_GRUB]]
* [[openSUSE Forums > Install/Boot/Login  » /dev/sda does not have any corresponding BIOS drive. | http://forums.opensuse.org/install-boot-login/402481-dev-sda-does-not-have-any-corresponding-bios-drive.html]]
!! Configuración
Supongamos que Linux se encuentra instalado en la partición 10 del disco duro 1 de nuestro computador y que el kernel también está allí. Para indicarle esto grub, teclamos lo siguiente (obséverse que los indicadores para grub inician en 0).
<<<
''Consola superusuario:''
{{{
grub
root (hd0,9)
setup (hd0) (hd0,9)
quit
}}}
<<<
!! Archivo Grub
{{{
# Config file for GRUB - The GNU GRand Unified Bootloader
# /boot/grub/menu.lst

# DEVICE NAME CONVERSIONS 
#
#  Linux           Grub
# -------------------------
#  /dev/fd0        (fd0)
#  /dev/sda        (hd0)
#  /dev/sdb2       (hd1,1)
#  /dev/sda3       (hd0,2)
#

#  FRAMEBUFFER RESOLUTION SETTINGS
#     +-------------------------------------------------+
#          | 640x480    800x600    1024x768   1280x1024
#      ----+--------------------------------------------
#      256 | 0x301=769  0x303=771  0x305=773   0x307=775
#      32K | 0x310=784  0x313=787  0x316=790   0x319=793
#      64K | 0x311=785  0x314=788  0x317=791   0x31A=794
#      16M | 0x312=786  0x315=789  0x318=792   0x31B=795
#     +-------------------------------------------------+
#  for more details and different resolutions see
#  http://wiki.archlinux.org/index.php/GRUB#Framebuffer_Resolution 

# general configuration:
timeout   7
default   0
color light-blue/black light-cyan/blue

# boot sections follow
# each is implicitly numbered from 0 in the order of appearance below
#
# TIP: If you want a 1024x768 framebuffer, add "vga=773" to your kernel line.
#
#-*

# (0) Arch Linux
title  Arch Linux
root   (hd0,2)
kernel /vmlinuz26 root=/dev/mapper/VolGroup00-raiz ro initrd=/ubninit elevator=deadline lang=en_US keyb=us session=xfce load=overlay usbdelay=5 video=vesafb:ywrap,mtrr,1280x1024-32@60 BOOT_IMAGE=/ubnkern 
initrd /kernel26.img

# (1) Arch Linux
title  Arch Linux Fallback
root   (hd0,2)
kernel /vmlinuz26 root=/dev/mapper/VolGroup00-raiz ro initrd=/ubninit elevator=deadline lang=en_US keyb=us session=xfce load=overlay usbdelay=5 video=vesafb:ywrap,mtrr,1280x1024-32@60 BOOT_IMAGE=/ubnkern 
initrd /kernel26-fallback.img

# (2) Windows
title Touche
rootnoverify (hd0,0)
makeactive
chainloader +1
}}}
Enlaces:
* [[Dos maneras de configurar impresoras en Archlinux| http://jame.260mb.com/?p=658]]
Pasos:
* Instalar el paquete:
<<<
''Consola:''
{{{
yaourt -S hplip-qt4
}}}
<<<
: si el anterior paquete no compila por alguna razón, puede probar con
<<<
''Consola:''
{{{
yaourt -S hplip
}}}
<<<
* Despues de terminar la instalación se ejecuta el paquete de instalación:
<<<
''Consola:''
{{{
hp-toolbox
}}}
<<<
y se escoge "Set up Device". La configuración va sin problema siguiendo todos los pasos por omisión. Sólo tuve que reconectarla pues el conector USB está algo defectuoso.
Se agregan estas líneas al archivo 

''Archivo'': {{{/etc/PolicyKit/PolicyKit.conf}}}
{{{
<config version="0.1">
<match action="org.freedesktop.hal.storage.mount-removable">
  <match user="jjimenez">
    <return result="yes"/>
  </match>
</match>
}}}
Un espacio físico autosostenido de experimentación tecnosocial. Estamos creando uno en Bogotá
* [[Wiki del hackerspace| http://infonexus.cyberdelic.org/index.php/P%C3%A1gina_Principal]]
* [[Lista de correo del hackerspace| http://lists.randomlab.net/listinfo.cgi/hackbo-randomlab.net]]
* [[HP USB Disk Storage Format Tool - v2.1.8| http://files.extremeoverclocking.com/file.php?f=197]]
* [[Future of Open Source: Hack This Gadget| http://www.wired.com/dualperspectives/article/news/2009/06/dp_opensource_ars0616]]: Con referencias a Openmoko/Freerunner y Sean ~Moss-Pultz y su idea de //social electronics//.
* [[BugLabs| http://www.buglabs.net/products]]: Una interesante cristalización de una idea mia de antaño: computadores armables desde afuera a partir de componentes modulares. Hay una idea similar para teléfonos móviles. El [[SDK de Buglabs| http://www.buglabs.net/images/sdk/SDK_2.jpg]] incluye un sistema de desarrollo social en el que se pueden ver las aplicaciones más populares construidas por otros desarrolladores.
* [[Arduino| http://www.arduino.cc/]]
* [[Open Source Hardware Reserve Bank| http://oshwbank.org/]]
//Hellboy// fue un comic que llegó a mi por pura coincidencia y es uno de mis comics favoritos desde entonces. Su creador Mike Mignola estuvo ilustrando otros comics durante algún tiempo y entre sus trabajos más destacados estuvo Batman. Esta es una historia totalmente de su creación y la que lo lanzó a la fama. Publicado por Dark House.

* [[Artículo en la Wikipedia sobre Hellboy | http://en.wikipedia.org/wiki/Hellboy]]
* [[Hellboy | http://www.hellboy.com/]]
* [[Hellboy Online Comics | http://www.hellboy.com/_rev1/3_onlinecomics.html]]: una muestra más de que, en los //webcomics// definitivamente la unidad narrativa es el panel (en los de papel también, pero estamos acostumbrados a pensar en la página y su composición de páneles como unidad, tal vez debido a la influencia del comic que violentaba el panel como unidad).
* [[El libro de notas de Guillermo del Toro sobre Hellboy II: El ejército dorado | http://www.hellboymovie.com/production/scrapbook/]]: Arte muy interesante. La combinación de dibujos y escritos le da una apariencia tipo //Da Vinci//. De verdad, muy inspirador.
* [[Producción de Hellboy II | http://www.hellboymovie.com/production/]]: En particular:
** Las imágenes con las primeras páginas del Comic la película homónima son muy interesantes. Tiene un Wiki basado en Mediawiki, con una apariencia visual consistente con el resto del sitio de la película aunque sin mucho contenido (la idea desafortunada de centralizar en lugar de conectar).
** La galería: Con las imágenes y maquetas que no lograron salir en el film y una bonita dedicatoria de Guillermo del Toro a uno de sus //fans//. Presenta diseños de Deak Ferrand, Francisco Ruíz Velasco, Mike Mignola y Wayne Barlowe
** [[History of Hellboy | http://www.hellboymovie.com/production/history/index.html]]

!!Series Animadas
* [[Go to Hellboy | http://www.gotohellboy.com]]: Un sitio para las serios animadas de Hellboy. Permite comprar los DVD para descargar.
* [[Hellboy: Blood and Iron | http://en.wikipedia.org/wiki/Hellboy:_Blood_and_Iron]] (inglés) En la Wikipedia.
* [[El blog de Hellboy animated | http://hellboyanimated.typepad.com/]] al parecer no va a continuar con entradas nuevas, pero las viejas se mantendrán para referencia y hay cosas muy chéveres.
* Arte o técnica de la búsqueda o investigación. [[1| http://lengua-y-literatura.glosario.net/terminos-filosoficos/heur%EDstica-5819.html]].
* heurístico, ca. [[2| http://buscon.rae.es/draeI/SrvltConsulta?TIPO_BUS=3&LEMA=heur%C3%ADstica]]
<<<
(Del gr. εὑρίσκειν, hallar, inventar, y ‒́tico).

1. adj. Perteneciente o relativo a la heurística.

2. f. Técnica de la indagación y del descubrimiento.

3. f. Busca o investigación de documentos o fuentes históricas.

4. f. En algunas ciencias, manera de buscar la solución de un problema mediante métodos no rigurosos, como por tanteo, reglas empíricas, etc.
<<<
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{

window.hideWhenLastTest = false;

window.removeElementWhen = function(test,place) {
        window.hideWhenLastTest = test;
        if (test) {
                removeChildren(place);
                place.parentNode.removeChild(place);
        }
};


merge(config.macros,{

        hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( eval(paramString), place);
        }},

        showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( !eval(paramString), place);
        }},

        hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( tiddler.tags.containsAll(params), place);
        }},

        showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( !tiddler.tags.containsAll(params), place);
        }},

        hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( tiddler.tags.containsAny(params), place);
        }},

        showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( !tiddler.tags.containsAny(params), place);
        }},

        hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( tiddler.tags.containsAll(params), place);
        }},

        showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( !tiddler.tags.containsAll(params), place);
        }},

        hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);
        }},

        showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);
        }},

        hideWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( tiddler.title == params[0], place);
        }},

        showWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( tiddler.title != params[0], place);
        }},

        'else': { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                removeElementWhen( !window.hideWhenLastTest, place);
        }}

});

//}}}
Una entrevista con Jeremy Ruston, el creador de Tiddlywiki sobre la historia del mismo con preguntas sobre el futuro y sus usos educativos en proyectos como OLPC. Algunos extractos interesantes:
* TW usa un conjunto de ideas sencillas combinadas de formas poderosas
* Cuando usamos un servicio en línea como gmail estamos completamente a merced del proveedor del servicio... no hay ningún control de la infraestructura subyacente.
* La comunidad de software libre es particularmente buena en ofrecer pluraridad de soluciones para diferentes personas y necesidades.
* Jeremy Ruston no usa mucho Tiddlywiki, salvo en demostraciones y el mantenimiento del sitio. Es una persona de lápiz y cuaderno de notas!
* [[La primera versión de Tiddlywiki| http://www.tiddlywiki.com/firstversion.html]] que dió origen a todo.
<html>
<object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=852169&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=852169&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><br /><a href="http://vimeo.com/852169">History of TiddlyWiki</a> from <a href="http://vimeo.com/user423727">Phil Whitehouse</a> on <a href="http://vimeo.com">Vimeo</a>.
</html>
|hora/Dia|Martes | Miércoles | Jueves | Viernes|
| 9 - 11| 2 203 (31)| 52 430 (21) | 54 104 | 67 501 -> 2 201 (21) |
| 11 -1 |       | 54 002 -> 53 203 (23) |       | 67 501 -> 2 205 (23) |
| 2 -4 | 27 304 (13) |  | 50 304 (13)   |
|hora/Dia| Lunes | Martes | Miércoles | Jueves | Viernes|
| 7 -9  |          | 67-509 | 9-105 () | 67-512 | 54 002 |
| 11 -1 | 67 - 509 |        |          |        |        |

Para horarios de atención a estudiantes ver:

[[Información de contacto| http://princimat.tiddlyspot.com/#OffrayVladimirLunaCardenas]]
{{{
#
# /etc/hosts: static lookup table for host names
#

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1               localhost.localdomain  localhost        
127.0.0.1               katana  katana

# End of file
/etc/hosts (END)
}}}
<<<
Huemul (pronounced hw~y~mul) is a new Smalltalk implementation.

Huemul methods are not interpreted, they are implemented in native machine code. With this approach, non-Smalltalk code is kept to the bare minimum, making it easy to port. It also brings outstanding performance to the Smalltalk world.

Huemul uses GTK to build its graphical user interface. This feature gives Huemul a familiar and appealing look and feel, not only in the developing environment, but also to the developed applications.

Huemul uses operating system native threads, allowing it to scale well from an uniprocessor system to a multicore and multiprocessor system. 
<<<
: de la [[página Web de Huelmul| http://www.guillermomolina.com.ar/huemul/]]
!!! Tiddlywiki
* Suscribirme a la lista de google groups, sin necesidad de tener google ID.
* Cambiar los permaenlaces para que soporter //romanización// y camelcase de los títulos (el título debería ser diferente al permaenlace, lo cual permitiría uso de la correcta ortografía del español).
* Que se guarden gráficos vectoriales como código SVG en los tiddlers y puedan mostrar (Una variante llamada ~ScienPad ya hace algo así).
* Es posible la transclusión de tiddlers usando macros?
* Modificar permalink para que soporte romanizacion y camel case (uso de caracteres romanos y camelcase para producir los permaenlaces).
* Convertirlo en un wiki semántico en el que las relaciones entre los tiddlers queden explicitadas de forma significativa para la máquina y no sólo mediante hipertexto (ver:[[Cogniwiki| http://liris.cnrs.fr/~ogeorgeo/cognywiki.html]], aunque no se trata de la misma idea).
* Instalar jsMath en el servidor del departamento para que los microwikis soporten rendering matemático (ver [[Plugin->jsMath]]).
* Usar [[Xinha| http://xinha.webfactional.com/]] como reemplazo de [[HTMLArea| http://www.dynarch.com/projects/htmlarea/]] para SciencePad. Ver [[http://www.tiddlywiki.org/wiki/Talk:Is_there_a_WYSIWYG_version_of_TiddlyWiki%3F| http://www.tiddlywiki.org/wiki/Talk:Is_there_a_WYSIWYG_version_of_TiddlyWiki%3F]] (allí hablan de un plugin de Firefox que lo enriquece directamente para usarlo en cualquier área de texto... habría que mirar el código del xpi para cambiarlo a la última versión de Xinha).
* Averiguar sobre [[Tiddlysnip| http://tiddlysnip.com]]. En este momento no instala por una restricción en Firefox/Iceweasel, pero se podría modffcar para que lo haga.
!! Wikifractalidad:
* Se podría trabajar con Squeak + Tiddlywiki en lugar de Django + Tiddlywiki o Web2py + Tiddlywiki? (se podría hacer un comparativo una vez alguno de ellos esté implementado)
* http://www.iconspedia.com/
** [[Firefox | http://www.iconspedia.com/icon/firefox.html]]
!! Misceláneas;
* Permalinks para listas de correo, de forma similar a como lo hace Nable, pero directamente soportados por el motor de listas y llegando como metadatos al cliente de correo.
* Modo dialógico vs documental (como aparece en Community Wiki)
Es un sitio de micro-blogging libre y abierto tanto en el contenido (usa licencia Creative Commons Attribution) y en la infraestructura (con el software laconica). Acá hay unos enlaces sobre esta plataforma:

* [[About Control Yourself | http://controlyourself.ca/about-2/]]: La compañía que produce identi.ca y tiene otros servicios, por ejemplo 
** llamado [[ur1.ca | http://ur1.ca]] para acortar direcciones , similar a tinyurl.com, pero que se basa en la [[Open Software Service Definition (v1.1) | http://opendefinition.org/ossd?action=show&redirect=osd]]
** certifi.ca Secure OpenID Provider... tal vez se convierta en el mío.
* [[identi.ca/laconi.ca - independence day | http://nonsmokingarea.com/blog/2008/07/04/identica-laconica/]]
* [[The real meaning - and power - of identi.ca (a.k.a. open source Twitter) | http://www.disruptiveconversations.com/2008/07/the-real-meanin.html]]
<<< IT'S ALL ABOUT CONTROL As early adopters and users, our frustration, though, has been that the services allowing us to publish those updates have been out of our control. Whether it's been Twitter, [[Jaiku]], Pownce, Facebook, ~MySpace, ~LinkedIn, Plaxo Pulse, Skype... or... pick your service... we are locked into their infrastructure. We can't experiment with it. We can't tinker with it. We can't hack on it. We can't fix it. All we can do is pound our head against walls... 
<<<
* [[Why Identi.ca is important | http://times.usefulinc.com/2008/07/03-identica]]: Interesantes comentarios de [[Exador23 | http://identi.ca/exador23]] (interesado en [[permacultura | http://patternliteracy.com/principles.html]]).
* [[Microplanet Creative Commons | http://deepgoa.wordpress.com/2008/11/24/microplanet-creative-commons/]]: Es sencillo crear un microplanet (se podría usar el nombre Plutón o Charon para planetas de microcontenido, similares a los actuales para blogs).
* Pensando sobre micromotivos y macrocomportamientos, ~ManuelJ me cuenta que los Twitters de Medallo se reunen para un [[café mañanero | http://quiai.wordpress.com/2008/11/25/cocinando-el-%E2%80%9Ccoffee-morning%E2%80%9D/?coffee-morning?]] y emiten por radio vía Altair. A Caro Botero le gustaría mucho. Voy a mandarle un mensaje al respecto una vez se meta a identi.ca :-) (Afortunadamente Caro Botero entró a este sitio, para compartir otras formas de presencia :-) )
* [[identifox| https://addons.mozilla.org/en-US/firefox/addon/10941]]: Una forma de usar identi.ca desde Firefox mediante un plugin. Bastante chévere la cosa.

!! Laconica
Es el software en el que está hecho identica. Desafortunadamente está hecho en php aunque ya empieza a soportar una naciente arquitectura de //plugins//

* [[Laconica Plugins| http://laconi.ca/trac/wiki/Plugins]]
* [[Laconica Plugin Developer Helper Plugin (PDhelper)| http://kylehasegawa.com/laconica-plugin-developer-helper-plugin-pdhelper]]
!! Fondos de escritorio
* [[Klowner's Wallpapers|http://www.dugnet.org/klown/wallpaper/thumbs.php?dir=_wallpaper/_other]] Bajo licencia CC-By-NC con interesantes bosquejos de robots
<<<
[[Plantabot| http://brightbulb.wikispaces.com/plantabot]]
[img[http://th01.deviantart.net/fs8/300W/i/2005/284/6/0/Plant_robot____by_nancynismo.jpg]]
<<<
Listado de las impresoras que he configurado ultimamente en linux:
http://www.flexibleservices.fi/en/node/33#udoi
/***
|Name:|InstantTimestampPlugin|
|Description:|A handy way to insert timestamps in your tiddler content|
|Version:|1.0.10 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#InstantTimestampPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Usage
If you enter {ts} in your tiddler content (without the spaces) it will be replaced with a timestamp when you save the tiddler. Full list of formats:
* {ts} or {t} -> timestamp
* {ds} or {d} -> datestamp
* !ts or !t at start of line -> !!timestamp
* !ds or !d at start of line -> !!datestamp
(I added the extra ! since that's how I like it. Remove it from translations below if required)
!!Notes
* Change the timeFormat and dateFormat below to suit your preference.
* See also http://mptw2.tiddlyspot.com/#AutoCorrectPlugin
* You could invent other translations and add them to the translations array below.
***/
//{{{

config.InstantTimestamp = {

        // adjust to suit
        timeFormat: 'DD/0MM/YY 0hh:0mm',
        dateFormat: 'DD/0MM/YY',

        translations: [
                [/^!ts?$/img,  "'!!{{ts{'+now.formatString(config.InstantTimestamp.timeFormat)+'}}}'"],
                [/^!ds?$/img,  "'!!{{ds{'+now.formatString(config.InstantTimestamp.dateFormat)+'}}}'"],

                // thanks Adapted Cat
                [/\{ts?\}(?!\}\})/ig,"'{{ts{'+now.formatString(config.InstantTimestamp.timeFormat)+'}}}'"],
                [/\{ds?\}(?!\}\})/ig,"'{{ds{'+now.formatString(config.InstantTimestamp.dateFormat)+'}}}'"]
                
        ],

        excludeTags: [
                "noAutoCorrect",
                "noTimestamp",
                "html",
                "CSS",
                "css",
                "systemConfig",
                "systemConfigDisabled",
                "zsystemConfig",
                "Plugins",
                "Plugin",
                "plugins",
                "plugin",
                "javascript",
                "code",
                "systemTheme",
                "systemPalette"
        ],

        excludeTiddlers: [
                "StyleSheet",
                "StyleSheetLayout",
                "StyleSheetColors",
                "StyleSheetPrint"
                // more?
        ]

}; 

TiddlyWiki.prototype.saveTiddler_mptw_instanttimestamp = TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler = function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created) {

        tags = tags ? tags : []; // just in case tags is null
        tags = (typeof(tags) == "string") ? tags.readBracketedList() : tags;
        var conf = config.InstantTimestamp;

        if ( !tags.containsAny(conf.excludeTags) && !conf.excludeTiddlers.contains(newTitle) ) {

                var now = new Date();
                var trans = conf.translations;
                for (var i=0;i<trans.length;i++) {
                        newBody = newBody.replace(trans[i][0], eval(trans[i][1]));
                }
        }

        // TODO: use apply() instead of naming all args?
        return this.saveTiddler_mptw_instanttimestamp(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created);
}

// you can override these in StyleSheet 
setStylesheet(".ts,.ds { font-style:italic; }","instantTimestampStyles");

//}}}
* [[Visual Feedback: Why Modes Kill| http://humanized.com/weblog/2006/12/07/is_visual_feedback_enough_why_modes_kill/]]: 
** TeXmacs es un interesante contraejemplo: es un editor modal, tiene //feedback// visual y no interrumpe el flujo de pensamiento (por el contrario esa retroalimentación lo ayuda a uno a escribir texto con ecuaciones con mayor rapidez sin preocuparse tanto de la forma y sí más por el contenido).
** Chévere la discusión sobre los recordatorios kinestésicos (ej mantener una tecla presionada) y auditivos (escuchar un beep) de los modos frente a los visuales (que se pasan por alto con mayor frecuencia que los dos primeros)
** Interesantes comentarios de Jono y Karl.
<<<
Programmers, however, are a very specialized user group. The programmer archetype is a mental gymnasts, able to retain and recall large amounts of abstract information because that’s basically what programming is. The programmer spends his professional life translating these ideas to something executable using their text editor. During this process, the programmer will perform the same tasks tens or hundreds of thousands of times. (Karl Guertin sobre las interfaces de comandos de emacs y vi)
<<<
* [[Openusability | http://www.openusability.org/]]: where open source meets usability
* [[Beginners and Experts | http://humanized.com/weblog/2007/02/06/beginners_and_experts/]]: reflexiones sobre las interfaces para usuarios expertos y novatos y las transiciones de los primeros a los últimos (en el sentido contrario a la elucidación). Con comentarios sobre Python, Smalltalk y [[Sketchup | http://sketchup.google.com/]]
* [[El hábito de hacer click en "OK"| |http://www.nerv.es/blog/nunca-uses-una-advertencia-cuando-te-refieras-a-deshacer/]]: En las interfaces de software libre ya se usan botones dicientes como: {{{Salir | No guardar | Guardar}}} que luchan contra ese hábito.
* [[Los medios digitales como diálogos de interfaces| http://tumbo.wordpress.com/2008/07/03/los-medios-digitales-como-dialogos-de-interfaces/]] en el Blog de Tumbo.
!! Entornos de Escritorio
Acá hay uno minimalista e interesante para mirar luego
* "[[FVWM-Crystal| http://www.fvwm-crystal.org/]] aims to create an easy to use, eye-candy but also powerful desktop environment for Linux or other Unix-like operating systems. It uses following programs: FVWM as a window manager and "main core", ROX-Filer as file manager (manages icons on the desktop), xterm, aterm, mrxvt or urxvt as terminal emulators, MPD or XMMS as music players (there's built-in support for controlling these programs), and several other tools for different functions, like setting a wallpaper or making screen shots."
!! Sitios
* [[Artefact| http://www.artefactgroup.com/]]: Artefact is a Seattle-based creative consultancy where we synthesize the disciplines of research and design to deliver breakthrough user experiences that people love.
!!Otros
* Ojeados pero marcados para leer después:
** [[Why GNOME Hackers Should Care about Usability | http://developer.gnome.org/feature/archive/usability/]] por Seth Nickell.
** [[The Rise of Interface Elegance in Open Source Software | http://www.actsofvolition.com/archive/2004/april/theriseof]]
* [[CSS bien usado en Mezzoblue | http://www.mezzoblue.com/zengarden/alldesigns/]]
* [[50 Beautiful CSS-Based Web-Designs in 2006| http://www.smashingmagazine.com/2006/12/19/50-beautiful-css-based-web-designs-in-2006/]]
* [[40 Beautiful Examples of Minimalism in Web Design| http://sixrevisions.com/design-showcase-inspiration/40-beautiful-examples-of-minimalism-in-web-design/]]
* [[Galería de Captura de pantallas de Debian| http://screenshots.debian.net/]] Chévere el efecto asociado a hacer zoom.
* Heroku: Interesante presentaciòn en lìnea y concepto.
Dos buscadores que crean un mashup visual a partir de los términos (lástima que estén hechos totalmente en flash, en lugar de sólo los videos)
* [[spezify| http://spezify.com/]]
* [[viewzi| http://www.viewzi.com/search/whitevoid-photocloud/offray%20luna]]: La interface de grafo dinámico es muy similar a la hecha en javascript con processing.js
Internet Archive es un repositorio de contenidos en Internet que guarda también un registro histórico de los sitios web como estaban hace muchísimo tiempo (este servicio se llama //The Wayback Machine//). Allí podemos alojar nuestros videos, registros de audio, textos, fotos, entre otros. La capacidad de almacenamiento es bastante grande y las restricciones son asociadas a que tengamos los permisos legales para hospedar aquello que allí colocamos (por ejemplo si somos sus autores o tenemos permiso directo de ellos) y a que lo cubramos por una licencia que permita a otros reusar lo que hemos puesto allí, lo cual usualmente tiene que ver con emplear licencias [[Creative Commons|CreativeCommons]].

Para usar Internet Archive:
''Registrarse:''
* Sacamos una cuenta de usuario (también le llaman el carnet de la biblioteca) llenando los datos en el formulario o usamos Open ID.
''Archivos pequeños:''
* Hacemos click en el botón que dice "Upload". Se nos presentará un formulario que nos pide el identificador de aquello que vamos a subir. Colocamos el nombre
* El sistema verifica si el nombre está disponible. En caso de ser así, crea una dirección en Internet Archive para este item.
* Llenamos el resto del formulario indicando qué tipo de archivo queremos subir y el tipo de licencia. Una vez diligenciados todos los datos empezará la carga del archivo y nos dará la dirección del item, así como la descripción de metadatos del mismo, de acuerdo a la información que colocamos en el formulario.
''Archivos grandes:''
* En caso de que hagamos trasferencias de archivos grandes, una vez hallamos hecho click en "Upload" se nos presentará un enlace que dice "More that 100 mb" hacemos click en él.
* Llenamos de nuevo el identificador. El sistema nos dará una dirección de un servidor ftp donde podemos subir dicho archivo. Usamos un cliente ftp para hacer esto, colocando nuestro usuario y contraseña de Internet Archive, por ejemplo:
<<<
''Consola:''
{{{
ncftp -u offray.luna@javeriana.edu.co -p ************* ia331434.us.archive.org
}}}
<<<
: Los asteriscos después del comando -p corresponden a la contraseña y luego la dirección que se nos dió para hospedar el archivo.
Las ideas y conceptos se enlazan en una red que nos define y habla de aquello que es significativo y nos moviliza. Algunos se refieren a esta red como la red semántica. Acá hay algunas explicitaciones de la mía 
(para navegar la red vea <<slider chkAyudaNavegacion AyudaNavegacion 'Ayuda de navegacion »' 'Ayuda de navegacion'>>)
* Todas las etiquetas:
<<<
<<cloud systemConfig excludeMissing script>>
<<<
* Los 20  //tiddlers// más referenciados
<<<
<<cloud references limit:20>>
<<<
<<tiddler SobreMi>>

!! Esta charla es así porque hoy había un atasco de tránsito
* Cerraron la circunvalar
* Causas y azares (las de Silvio Rodriguez y las mías).
* Cuál es la infraestructura mínima?
* Un ejercicio de memética (memes Richard Dawins)
* Una pequeña disgresión sobre las presentaciones a lo //Power Point// (//[[Bullet points make us stupid|BulletPointsMakeUsStupid]]//, espero que el hipertexto lo remedie)
Jaiku es una plataforma de //microblogging// hecha en Python sobre Django.

* [[Jaiku Engine| http://code.google.com/p/jaikuengine/]]: "is a social microblogging platform that runs on ~AppEngine. ~JaikuEngine powers Jaiku.com".
* [[Jaikido| http://jaikido.blogspot.com/]]: Un blog sobre Jaiku y su desarrollo.
* [[Breve comparación entre Jaiku e identica| http://ralphm.jaiku.com/presence/52273586]]: Un post de microblog que inicia una interesante comparativa.
* [[Una nota con "tipo" musical| http://skellington.jaiku.com/presence/3a2ddd2a7b5a47c1868ad3dbaeedace3]]: Al parecer diferentes tipos de notas soportan diferentes tipos de etiquetas/iconos.
* [[Ejemplo de un canal (Amarok) en Jaiku| http://www.jaiku.com/channel/Amarok]]
Jaiku Engine es el motor de microblogging que está detrás del sitio web Jaiku.com. Después de la compra de este por parte de Google, el motor fue liberado como software libre bajo la licencia MIT. Otro sitio web de microblogging llamado Pownce usaba la misma tecnología abierta (Django) y permitía el uso de anexos y videos entre otras cosas, pero al ser adquirido por otra compañía no corrió con la misma suerte y tanto el portal como el software se perdieron.
''Enlaces:''
* [[Google Opens JaikuEngine, Fanning the Flames of Open Micro-Blogging| http://ostatic.com/blog/google-opens-jaikuengine-fanning-the-flames-of-open-micro-blogging]]
* [[Jaiku Founder: “We’re Not Dying, We’re Morphing”| http://www.techcrunch.com/2009/01/17/jaiku-founder-were-not-dying-were-morphing/]]
* [[The new open source Jaiku Engine project on Google Code under the Apache License| http://kikuelo.wordpress.com/2009/01/20/the-new-open-source-jaiku-engine-project-on-google-code-under-the-apache-license/]]
* [[Pownce en la wikipedia| http://en.wikipedia.org/wiki/Pownce]]
* [[Schmownce| http://schmownce.com]]: un clon de Pownce sobre Ruby on Rails. Parece desatendido y con poco tráfico. El motor no es software libre.
!! Instalación y ejecución de JaikuEngine
Las instrucciones son una adaptación [[JaikuEngine en el Microwiki de Sergio Rivera| http://sergiorp.tiddlyspot.com/#JaikuEngine]] para Arch.
* Instalamos los prerrequisitos
<<<
''Consola:''
{{{
yaourt -S svn python25 python25-pil
}}}
<<<
* Descargamos el código fuente
<<<
''Consola:''
{{{
svn checkout http://jaikuengine.googlecode.com/svn/trunk/ JaikuEngine
}}}
<<<
* Para la configuración hacemos esto:
<<<
''Consola:''
{{{
cp local_settings.example.py local_settings.py
}}}
<<<
* Entramos a la carpeta donde descargamos el código (donde ejecutamos el comando svn anterior) y ejecutamos hacemos
<<<
''Consola:''
{{{
python2.5 manage.py runserver 8080
}}}
<<<

''Nota:'' Debe ser python2.5 pues ~JaikuEngine no tiene soporte para python 2.6 y posteriores.

* En ocasiones querremos ejecutarlo sól en el ''modo de pruebas'' (este modo no permite guardar los cambios -ver item siguiente):
<<<
''Consola:''
{{{
python2.5 manage.py testserver common/fixtures/*.json
}}}
<<<
* [[MooTools|http://mootools.net/]]: "is a compact, modular, ~Object-Oriented ~JavaScript framework designed for the intermediate to advanced ~JavaScript developer. It allows you to write powerful, flexible, and cross-browser code with its elegant, well documented, and coherent API."
Es el creador de TiddlyWiki
Jikso es un motor de microblogging programado en php con una agradable interface. Empezó antes de [[Identi.ca]]/Laconica, pero no ha sido tan popular y no ha incorporado varias características, ni tiene una empresa detrás y los programadores principales son jóvenes con el motor y la comunidad más en estado de hobby que otra cosa, aunque podría tener potencial a futuro para constituirse en un proyecto más formal. Tanto la comunidad como los desarrolladores son españoles (en la primera se puede ver esto por las permanentes groserías en la línea de tiempo pública). 

Acá unos enlaces relacionados:
* http://jisko.net/ El sitio donde muestran una implementación en ejecución
* [[Wiki de Jisko| http://wiki.jisko.net/wiki/Portada]]
* [[Bocetos de los diseños| http://wiki.jisko.net/wiki/Bocetos]]
* [[Jisko.net pide donaciones para no cerrar| http://www.kialaya.com/blog/2009/06/jiskonet-pide-donaciones-para-no-cerrar.html]]
* [[Jisko, donaciones y análisis| http://diazr.com/jisko-donaciones-y-analisis/]]
* [[Diseños gráficos de Jisko| http://wiki.jisko.net/wiki/DG]]: Con interesantes cambios de logo dependiendo de la festividad (a lo google).
* [[Jikso FAQ| http://jisko.net/faq]] (respuestas a preguntas frecuentes, en inglés)
** [[Planeando soporte para grupos| https://answers.launchpad.net/jisko/+question/61598]], la versión en producción no muestra dicho soporte. Chévere un sistema que permita seguir/apuntarse al lanzamiento de características (algo así como un "estoy interesado/a, avíseme cuando esta característica se implemente", a lo ~GetSatisfaction con las respuestas a problemas)
** [[No han tomado una posición frente al soporte de Open Microblogging| https://answers.launchpad.net/jisko/+question/47333]]: El soporte a twitter pero no de un esquema abierto de //microblogging// federado muestra lo inmaduro del desarrollo/desarrolladores.
** [[No han tomado decisión respecto al soporte para etiquetas| https://answers.launchpad.net/jisko/+question/42100]]: Mismo comentario que en el caso anterior.
* [[Jikso en LauchPad| https://launchpad.net/jisko]]
Jornadas de Edumática, tendrían 4 espacios:
* Una exposición/conferencia/conversatorio, que delimite el marco de diálogo para el resto del evento.
* Un taller práctico en el cual se aprendan a usar las tecnologías en infraestructuras gratuitas como: microblogs (tiddlyspot), repositorios de contenidos (connexions, Internet Archive), e incluso herramientas específicas, como aquellas que sirven para colocar información matemática en Internet, editores de texto científico (TeXmacs) y virtualizadores (Virtualbox).
* Una momento de construcción transversal de conocimiento, (open mind, world cafe, etc) que nos permita escuchar inquietudes y propuestas de las personas sobre los dos items anteriores.
* Un momento de trueque de saberes y tiempos que le de continuidad al proceso anterior a pequeña escala (la idea es que los microcambios + interacciones propicien macrocomportamientos?).
Las Jornadas no tendrían costo e iríamos unos amigos y amigas conmigo para hacerlas en la institución, siempre y cuando esta garantice que:
* la asistencia es abierta: Puede ir gente de fuera de la institución a aprender.
* brinda los computadores, la red y la conectividad, con los permisos adecuados para instalar/probar el software (se trata de software libre, así que no tiene problemas de licencia).
* Podemos colocar publicidad y/o otra información sobre las entidades/consultores que auspician las jornadas
* las jornada sería un sábado y eventualmente un lunes (el domingo es para reflexionar de forma tranquila y descansada sobre los conceptos y experiencias y reasumirlos el lunes).
Después de estas jornadas nos reunimos y miramos si quieren contratar los servicios de consultoría en adecuarlas infraestructuras gratuitas y dispersas y consolidarlas para la institución.
* [[Quick Start for jsMath | http://www.math.union.edu/~dpvc/jsMath/users/quickstart.html]]
!! Instalación Arch Linux
Una vez hallamos habilitado Yaourt hacemos
<<<
''Consola de superusuario:''
{{{
yaourt jsmath
}}}
<<<
* [[Porque los video juegos en la escuela | http://www.schoolgamemaker.rupert.id.au/why.htm]] tomado de [[Schoolgamemaker | http://www.schoolgamemaker.rupert.id.au/]], un sitio sobre crear juegos en la escuela.
* [[Unity | http://unity3d.com/unity/]]: Un motor de video juegos al parecer muy capaz hecho en software libre (Mono) con posibilidades para ser extendido en Boo, un dialecto de Python.
Chaotic tiene una "continuidad" interesante:
* Es juego de cartas análogo.
* Es juego de cartas digital en línea.
* Es una serie de televisión.
Una propuesta que se enmarca dentro de mucho de lo que hemos charlado con amigos y lo cristaliza de modo interesante.
!! Motores, Diseño
* [[Are There Any Design Outlines? | http://socratesrpg.blogspot.com/2007/03/are-there-any-design-outlines.html]]
* [[What are the 'Power 19' ? pt 1 | http://socratesrpg.blogspot.com/2006/01/what-are-power-19-pt-1.html]]
* http://www.thangorodrim.net/ 
* [[Metáfora para Juegos de Rol y tocar en una banda | http://jonasferry.com/blog/rpg/bass-playing-game-masters/]]
!! Financiación y distribución
* [[Ransom Model | http://www.danielsolis.com/meatbot/ransom.html]]: Una propuesta para acabar con la piratería en la época digital de contenidos asociados a los juegos de rol y las novelas de este tipo de ficciones, propuesto por Greg Stolze y Daniel Solis.
* [[Fundable | http://www.fundable.com/groupactions/groupaction.2006-02-03.1930100945/]]: Una forma de obtener financiación para diferentes proyectos. En enlace muestre un ejemplo de su uso para liberar los contenidos de Nemesis.
!! Juegos
* [[Eoris| http://www.eorisessence.com/home.html]]: Un juego de creación colombiana con un excelente arte gráfico.
* [[Treasure Hunter | http://www.remcomagielse.com/portfolio/?p=293]]
Los siguientes son cortesía de Anita:
* [[El Wason y el detector de incendios| http://www.0100101110101101.org/home/sixoclock/img/exhib/6157-L.jpg]]
* [[Winnie the pooh en liliput| http://www.0100101110101101.org/home/sixoclock/img/exhib/6127-L.jpg]]
El "kernel panic" es uno de los errores que no nos permite arrancar nuestro sistema Linux, sin embargo, como la mayoría de las cosas en Unix, esto tiene una solución ;). Acá hay algunas de las causas y sus soluciones.
!! Mensaje de error: "{{{kinit opening console no such file}}}" y luego un kernel panic
Esto es porque los nodos {{{/dev}}} no han sido hechos para udev. Supondremos acá que estamos arreglando el inconveniente desde un ~LiveCD u otro sistema de arranque pues no podemos arrancar el sistema propiamente desde el disco duro. Para verificar esto hacemos:
<<<
''Consola Superusuario:''
{{{
mkdir -p /tmp/ArreglarLinux/
mount /dev/sda[x] /tmp/ArreglarLinux/
ls -alF /tmp/ArreglarLinux/dev
}}}
<<<
Donde {{{/dev/sda[x]}}} designa la partición donde instalamos el sistema raíz de la distribución Linux que no está funcionando. El resultado debe ser algo similar a esto (las fechas pueden cambiar):
<<<
''Salida de Consola:''
{{{
crw-------  1 root root 5, 1 2008-12-27 21:40 console
crw-rw-rw-  1 root root 1, 3 2008-12-27 21:42 null
crw-rw-rw-  1 root root 1, 5 2008-12-27 21:40 zero
}}}
<<<
Si no estamos obteniendo dicho resultado, debemos borrar y recrear cualquier dispositivo con un conjunto diferente de permisos.
<<<
''Consola de superusuario:''
{{{
cd /tmp/ArreglarLinux/dev
rm console ; mknod -m 600 console c 5 1 
rm null ; mknod -m 666 null c 1 3 
rm zero ; mknod -m 666 zero c 1 5
}}}
<<<
y finalmente reiniciamos la máquina.
''Más información'':
[[Install From Existing Linux| http://www.archlinux.it/wiki/index.php?title=Install_From_Existing_Linux]]
Knoboo: Code Everywhere
<<<
Knoboo lets you program (In Python and Sage) interactively, in your web browser.
<<<
* [[Página Web de Knoboo| http://knoboo.com/]]
* [[Repositorio de código| http://trac.knoboo.com/]]
* [[Tutoriales de Knoboo| http://trac.knoboo.com/wiki/Tutorials]]
Pasos de configuración:
* Se arranca cups:
<<<
''Consola:''
{{{
sudo cupsd
}}}
<<<
* Se elige la opción "Agregar impresora". Si la impresora está prendida debe aparecer entre las opciones a agregar con el respectivo número de su dirección IP. A través de esta dirección podemos distinguirla de otras opciones.
* Descargamos el controlador para Linux de la impresora desde la [[página de controladores de Kyocera para la FS4000DN| http://www.kyoceramita.co.za/index/service___support/download_center.false.driver.FS4000DN._.EN.html]]
* Descomprimimos el archivo anterior.
* Cuando cups solicita el archivo ppd, vamos a la carpeta que recién hemos descomprimido, buscamos la subcarpeta del idioma que nos interesa, y elegimos el archivo con el modelo de la impresora que nos interesa. Para nuestro modelo la ruta del archivo podría ser, por ejemplo: {{{~/Instaladores/Controladores/Impresoras/PPD's_KSL_8.4/Spanish/Kyocera_FS-4000DN_es.ppd}}}, lo importante es que, en la parte final, el modelo y el lenguaje corresponda a lo que queremos.
[[LXDE| http://lxde.org/]] es un ambiente gráfico pequeño, liviano y modular que apela a requerimientos comunes minimalistas, con componentes interdependientes, en el cual cada uno de los módulos puede cargarse de forma autónoma o pueden ser reemplazados por otro, lo cual lo diferencia de los demás ambientes. 
* [[Capturas de pantalla de LXDE| http://lxde.org/image_galleries/screenshots]]: (El modo ~LXLauncher se podría usar para cosas como Virtual Tangram)
Algunos de los componetes son (tomados de la página del wiki de Archlinux):
* ~PCManFM: File manager, provides desktop icon
* ~LXPanel: Feature-rich desktop panel
* ~LXSession: Standard-compliant X11 session manager with shutdown/reboot/suspend supports via HAL and gdm 
:(There are some bugs in lxsession related to session management. lxsession-lite is a version of lxsession which does not have the session management capability. The stability of lxsession-lite is better than lxsession, however it can not save and restore sessions. Thus it is recommended to use lxsession-lite till the problems in lxsession are fixed.) 
* ~LXAppearance: is a new feature-rich GTK+ theme switcher able to change GTK+ themes, icon themes, and fonts used by applications
* Openbox: Lightweight, standard-compliant, and highly-configurable window manager (This is not developed by LXDE Project, but it's used as default window manager). This can be replaced by any other window manager like icewm, fluxbox, metacity, ...etc.
* ~GPicView: A very simple, fast, and lightweight image viewer featuring immediate startup.
!! Enlaces:
* [[LXDE en el Wiki de Arch Linux | http://wiki.archlinux.org/index.php/LXDE]]
!! Pendiente:
* Revisar instalación y configuración del gestor de inicio.
* [[larch -- a live CD/DVD/USB-stick construction kit for Arch Linux| http://larch.berlios.de/]]
* [[Larch Documentation|http://larch.berlios.de/doc/index.html]]: Explica cómo se puede crear un ~LiveCD a partir de un sistema ya instalado. Puede servir para usarse en [[Virtual Tangram| http://virtualtangram.tiddlyspot.com/]]
* [[Running Larchify| http://larch.berlios.de/doc/larch_overview.html#running_larchify]]: Explica como usar un sistema para construcción de un ~LiveCD incluso en sistemas que no están basados en Arch.
* [[Presentation in Czech conference | http://www.hanspoldoja.net/?cat=6]]
* [[LeMill Blog | http://blog.lemill.net/en/]]
* [[Open Educational Resources and LeMill | http://www.slideshare.net/hanspoldoja/open-educational-resources-and-lemill]]
* [[LeMill Plone-powered Learning Object Repository | http://www.darcynorman.net/2006/06/20/lemill-plone-powered-learning-object-repository/]]
* [[Social web in support of informal learning | http://lemill.net/content/presentations/social-web-in-support-of-informal-learning/view]]
* [[Los argumentos a favor del uso libre: Razones por las que no usar una licencia Creative Commons -NC | http://freedomdefined.org/Licenses/NC/Es]].
''Referencias:''
* [[Lenovo s10 3t en el wiki de archlinux | https://wiki.archlinux.org/index.php/Lenovo_Ideapad_s10-3t#Wireless]]
* 

Para configurar la red inalámbrica:

* Se instala el módulo broadcom-wl, que figura en los repositorios del AUR.
* Se agregan las siguientes líneas al {{{rc.conf}}}
{{{
MODULES=(lib80211 wl !b43 !ssb ...)
}}}
* Se lanza wicd y se modifica la tarjeta de red para que coincida con eth0.
* [[Thinkpad X Series en la tienda de Lenovo | http://shop.lenovo.com/us/notebooks/thinkpad/x-series]]
** [[ThinkPad X Series Tablet | http://shop.lenovo.com/SEUILibrary/controller/e/webca/LenovoPortal/en_CA/catalog.workflow:category.details?current-catalog-id=12F0696583E04D86B9B79B0FEC01C087&current-category-id=B2B50942732841988CCCD0DABE52BC67]]
* [[Review: Lenovo ThinkPad X41 Tablet | http://www.infosyncworld.com/reviews/laptops/lenovo-thinkpad-x41-tablet/6294.html]]
* [[Contacto Lenovo Colombia | http://www.lenovo.com/contact/co/es/]]
* [[Installing Arch Linux on a Lenovo ThinkPad X200s| http://itgen.blogspot.com/2008/12/installing-arch-linux-on-lenovo.html]]
!! Sobre otros computadores de formato pequeño:
* [[Una posible siguiente compra| http://www.tigerdirect.com/applications/SearchTools/item-details.asp?EdpNo=4375475&CatId=1900]]
* http://www.liliputing.com/ : Con un artículo chévere sobre la opinión que tenía Alan Kay de los netbooks y otros computadores portables y económicos, hoy 40 años después de que acuñó el concepto de //Dynabook//.
* [[MSI Wind vs. Asus Eee PC 1000H: The nitpicker’s guide | http://www.liliputing.com/2008/10/msi-wind-vs-asus-eee-pc-1000h-the-nitpickers-guide.html]]
* [[Linux devices | http://www.linuxdevices.com/news/NS7556806272.html]] En Linux Devices.
* [[Booting EEEpc en 5 segundos| http://lwn.net/Articles/299483/]]
* [[Siguiente Celular| http://articulo.deremate.com.co/MCO-6653583-c902-tv-movile-dual-camara-de-6mpx-8gb-touchscreen-_JM]]
! Leo: //Literate Editor with Outlines//: Otra forma de programar
Leo es un editor de código basado en la idea de programación literata, con un excelente y muy activo foro de discusión. Para mayor información:
* [[Leo, en El Directorio | http://el-directorio.org/Leo]]
* [[Introduction To Leo| http://leo.zwiki.org/IntroductionToLeo]], en el wiki de Leo.
!! Instalación en Arch Linux
Para instalar la última versión de desarrollo
* Instalamos el sistema de control de versiones y los //bindings// de python para el editor de texto scintilla.
<<<
''Consola''
{{{
yaourt -S bzr python-qscintilla
}}}
<<<
* Luego adquirimos la versión del repositorio de control de versiones, nos movemos al directorio donde está el programa y lo lanzamos:
<<<
''Consola''
{{{
bzr branch lp:leo-editor
cd leo-editor
python launchLeo.py
}}}
<<<
El repositorio de código en bazar está en:
* https://launchpad.net/leo-editor
También es posible descargar //snapshots// diarios de la versión en desarrollo desde:
* http://www.greygreen.org/leo/
!! Enlaces
* Leo para trabajar con ~LaTeX del hilo //Leo for editing ~LaTeX documents// (se podría pensar en algo similar para ~TeXmacs).
<<<
[img[http://www.whiteaudio.com/temp/leo-latex1.jpg]]
<<<
* [[Working with Leo directives and paths| http://webpages.charter.net/edreamleo/scripting.html#working-with-directives-and-paths]]
* [[Puente Leo IPython| http://webpages.charter.net/edreamleo/IPythonBridge.html]]
* Una de las discusiones más frecuentes es el uso de Leo mediante una interface similar a Freemind. Acá hay algunos enlaces al respecto:
** [[Porting the JIT to CLI (part 3)| http://morepypy.blogspot.com/2008/12/porting-jit-to-cli-part-3.html]]: En el PyPy Status Blog
* [[Create a .leo file from Freemind, Tomboy, or other data| http://leo.zwiki.org/CreateALeoFileFromFreemindTomboyOrOtherData]]: El autor de Leo cree que no es tan bueno, pero es independiente del modelo de representación que Leo usa y al parecer más sencillo que el importador de datos que tiene Leo.
* [[Thoughts on editors (Emacs in particular)| http://pinard.progiciels-bpi.ca/opinions/editors.html]] (por François Pinard, 2003-12)
<<<
The FSF never fully recovered from all the damage, nor adapted to the changes. Used for a good while to going its own way without much looking around, with the planet blindly following behind, the FSF did not recognise soon enough that it will loose followers if it does not learn to really collaborate as an equal with other partners, instead of as the necessary leader of everything. A lot of worth efforts are going out in this world, which did not originate from the GNU project and which are not driven by the GNU project. (These projects might have never existed without the prior momentum created by GNU and the GPL, but this is another debate.) GNU traditionally ignores what it does not drive, until it cannot escape it. For Emacs, it means that while collaborators are expected, Emacs itself is not going to be especially collaborative.
<<<
<<<
All summarised, I perceive Emacs as one of those huge ships where people embark a luxurious life while they intend to travel around the planet. However, the ship is an heavy cargo for which it is difficult to find captains, and which consumes a great deal of fuel to effect only slight changes in direction. This cargo is not fully tracked on the mainstream routes, where the real crowd is, all active and diverse than it may be. Because captains are not that concerned with the mainstream, and also because when corrections become unavoidable, the inertia of the cargo is such that it always lags a bit from the aimed route. So this cargo very slowly diverges, progressively isolating its happy passengers from the rest of the world.
<<<
!! Edward K. Ream
<<<
Psychological studies of strong chess players showed that they worked by what was called "progressive deepening" of the search tree.  I think what we have done is similar.  We should never be sorry to revisit old ideas in new ways.  Many of the great mathematical minds do the same.
<<<
<<<
This is why I love programming.  The puzzles never end and they are much more interesting than sudoku :-) 
<<<
<<<
Fundamentally, what makes me a successful designer is a keen
sense of danger.  The danger comes not from bugs, or from less-than-
optimal code (I'm a mediocre coder), but from unwanted interactions
between code.  This was Glen Meyer's big idea.

See http://portal.acm.org/citation.cfm?id=1241533 for an introduction
to these ideas.  They are the difference between success and failure
in a large project.
<<<
<<<
The great thing about Leo's community is that contains brilliant
designers.  People who are not afraid of change, who are not satisfied
with what we have, even if what we have is Leo  :-)   Some of these
brilliant designers are great programmers, some can barely write a
Python script.  No matter.  All can confront what is not yet in
existence.
<<<
/***
|Name:|LessBackupsPlugin|
|Description:|Intelligently limit the number of backup files you create|
|Version:|3.0.1 ($Rev: 2320 $)|
|Date:|$Date: 2007-06-18 22:37:46 +1000 (Mon, 18 Jun 2007) $|
|Source:|http://mptw.tiddlyspot.com/#LessBackupsPlugin|
|Author:|Simon Baird|
|Email:|simon.baird@gmail.com|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Description
You end up with just backup one per year, per month, per weekday, per hour, minute, and second.  So total number won't exceed about 200 or so. Can be reduced by commenting out the seconds/minutes/hours line from modes array
!!Notes
Works in IE and Firefox only.  Algorithm by Daniel Baird. IE specific code by by Saq Imtiaz.
***/
//{{{

var MINS  = 60 * 1000;
var HOURS = 60 * MINS;
var DAYS  = 24 * HOURS;

if (!config.lessBackups) {
        config.lessBackups = {
                // comment out the ones you don't want or set config.lessBackups.modes in your 'tweaks' plugin
                modes: [
                        ["YYYY",  365*DAYS], // one per year for ever
                        ["MMM",   31*DAYS],  // one per month
                        ["ddd",   7*DAYS],   // one per weekday
                        //["d0DD",  1*DAYS],   // one per day of month
                        ["h0hh",  24*HOURS], // one per hour
                        ["m0mm",  1*HOURS],  // one per minute
                        ["s0ss",  1*MINS],   // one per second
                        ["latest",0]         // always keep last version. (leave this).
                ]
        };
}

window.getSpecialBackupPath = function(backupPath) {

        var now = new Date();

        var modes = config.lessBackups.modes;

        for (var i=0;i<modes.length;i++) {

                // the filename we will try
                var specialBackupPath = backupPath.replace(/(\.)([0-9]+\.[0-9]+)(\.html)$/,
                                '$1'+now.formatString(modes[i][0]).toLowerCase()+'$3')

                // open the file
                try {
                        if (config.browser.isIE) {
                                var fsobject = new ActiveXObject("Scripting.FileSystemObject")
                                var fileExists  = fsobject.FileExists(specialBackupPath);
                                if (fileExists) {
                                        var fileObject = fsobject.GetFile(specialBackupPath);
                                        var modDate = new Date(fileObject.DateLastModified).valueOf();
                                }
                        }
                        else {
                                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
                                var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
                                file.initWithPath(specialBackupPath);
                                var fileExists = file.exists();
                                if (fileExists) {
                                        var modDate = file.lastModifiedTime;
                                }
                        }
                }
                catch(e) {
                        // give up
                        return backupPath;
                }

                // expiry is used to tell if it's an 'old' one. Eg, if the month is June and there is a
                // June file on disk that's more than an month old then it must be stale so overwrite
                // note that "latest" should be always written because the expiration period is zero (see above)
                var expiry = new Date(modDate + modes[i][1]);
                if (!fileExists || now > expiry)
                        return specialBackupPath;
        }
}

// hijack the core function
window.getBackupPath_mptw_orig = window.getBackupPath;
window.getBackupPath = function(localPath) {
        return getSpecialBackupPath(getBackupPath_mptw_orig(localPath));
}

//}}}
* [[Copiar y Compartir en Legítima Defensa| http://testwiki.freaks-unidos.net/copying-and-sharing-in-self-defense.es]]
* [[Future of Open Source: Collaborative Culture| http://www.wired.com/dualperspectives/article/news/2009/06/dp_opensource_wired0616]]. Aunque tiene una perspectiva muy optimista y poco crítica, define términos interesantes como "bienes públicos emergentes".
* [[What NLnet can do for you| http://www.nlnet.nl/foundation/can_do.html]]: "The ~NLnet foundation is financially independent and is free to fund any activity that contributes to its mission, in whatever way it chooses."
* [[Libre Society.org Manifesto| http://www.makeworlds.org/node/115]]
* [[Against intellectual property| http://danny.oz.au/free-software/advocacy/against_IP.html]]
* [[Libre Commons Licenses| http://detritus.net/pipermail/rumori/2005-July/001693.html]]
* [[Libre Culture: Meditations on Free Culture| http://www.libresociety.org/library/libre.pl/Libre_Commons]]
* [[The Man Who Loved Only Numbers: The Story of Paul Erdos and the Search for Mathematical Truth| http://www.amazon.com/Man-Who-Loved-Only-Numbers/dp/0786863625/ref=sr_1_6?ie=UTF8&s=books&qid=1212505953&sr=8-6]] <-- La siguiente adquisición
* [[The New Drawing on the Right Side of the Brain| http://www.amazon.com/gp/product/0874774241?tag=particculturf-20]]
* Steps on Scala Introduction to Object-Functional Programming
* [[Glut: Mastering Information Through the Ages| http://www.amazon.com/Glut-Mastering-Information-Through-Ages/dp/0801475090/ref=sr_1_1?ie=UTF8&s=books&qid=1230653874&sr=1-1]]
* [[Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture| http://www.amazon.com/Masters-Doom-Created-Transformed-Culture/dp/0812972155/sr=8-1/qid=1171862800/ref=pd_bbs_sr_1/102-7491128-3344943?ie=UTF8&s=books]]
En contenido en este microwiki está cobijado por una licencia dual:
<html>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/co/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-sa/2.5/co/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/InteractiveResource" property="dc:title" rel="dc:type">Offray's Microblog</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://offray.tiddlyspot.com/" property="cc:attributionName" rel="cc:attributionURL">Offray Vladimir Luna C&#225;rdenas</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.5/co/">Creative Commons Atribuci&#243;n-Compartir Obras Derivadas Igual 2.5 Colombia License</a>.<br />Based on a work at <a xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://offray.tiddlyspot.com/" rel="dc:source">offray.tiddlyspot.com</a>.
</html>

(L) 2009 Libre Commons Res Communes License
* [[La idea original del lienzo infinito desde los comics| http://scottmccloud.com/4-inventions/canvas/index.html]] por su autor original ScottMcCloud
* [[Lienzo Infinito en la Wikipedia| http://en.wikipedia.org/wiki/Infinite_canvas]]
* [[Lienzo infinito en AppJet MS Live Labs| http://infinitecanvas.appjet.net/]]: sorprendentemente, funciona sin ningún plugin extra y no requiere de flash/silverlight y otras tecnologías "indeseables", solamente Ajax. (http://ur1.ca/fho9)
* [[Lienzo Infinito para un comic de McCloud| http://infinitecanvas.appjet.net/view?name=Brad's%20Somber%20Mood]]: (http://ur1.ca/fho7)
* [[Lienzo infinito en el blog de Dragnosticismo| http://dragonosticism.wordpress.com/2009/01/22/infinite-canvas/]]
* [[Ted Talks: Blaise Aguera y Arcas demos Photosynth| http://www.ted.com/index.php/talks/blaise_aguera_y_arcas_demos_photosynth.html]]
Este tiddler explica como configurar el enrutador inalámbrico Linksys ~WRT54G con //firmware// libre, entre otras para poder conformar redes inalámbricas libres.
!! Enlaces:
* [[Installing Openwrt via tftp| http://wiki.openwrt.org/OpenWrtDocs/Installing/TFTP?action=show&redirect=OpenWrtViaTftp]]
* [[X-wrt install instructions| http://x-wrt.org/install.html]]
* [[Kamikaze 7.09 download for broadcom 47xx|http://downloads.x-wrt.org/xwrt/kamikaze/7.09/brcm47xx-2.6/]]: Es el tipo de chipset para el enrutador inalámbrico Linksys
!! Prerrequisitos
* Descargamos el software:
<<<
''Consola''
{{{
wget http://downloads.x-wrt.org/xwrt/kamikaze/7.09/brcm47xx-2.6/openwrt-wrt54g-2.6-squashfs.bin
}}}
<<<
* El software atftp (advanced TFTP client) que sirve para transmitir datos al enrutador, en particular el nuevo //firmware// que vamos a instalar. En caso de no tenerlo usamos nuestro gestor de paquetes favorito para instalarlo, por ejemplo:
<<<
''Consola superusuario''
{{{
wajig install atftp
}}}
<<<
Linpus Linux es una distribución liviana para máquinas ultraportátiles como el //eeePC// de Asus.

* http://www.linpus.com/
* [[Linpus Linux Lite OS… un sistema operativo especialmente diseñado para los portátiles / UMPCs de bajo costo | http://noticiastech.com/wordpress/?p=18362]], con capturas de pantalla y enlaces de descarga.
* [[Linpus en la Wikipedia | http://en.wikipedia.org/wiki/Linpus]]
* [[Review Linpus Lite | http://leobardo.blogspot.com/2008/07/review-linpus-linux-lite.html]]
!! Enlaces:
* [[Arch Wiki: Install from USB stck| http://wiki.archlinux.org/index.php/Install_from_USB_stick#Old_Method_from_ISO.2C_deprecated]]
!! Procedimiento de instalación
* Suponemos que para este procedimiento ya hemos descargado la versión adecuada del iso de la distribución, para efectos de este ejemplo será: {{{archiso-live-2009-06-12.iso}}}
* Conectamos la memoria USB y miramos qué dispositivo es esta. Para esto tecleamos:
<<<
''Consola:'' 
{{{
dmesg
}}}
<<<
: La salida, en las últimas líneas, debe ser similar a esto:
<<<
{{{
sd 6:0:0:0: [sdb] Assuming drive cache: write through
 sdb: sdb1
sd 6:0:0:0: [sdb] Attached SCSI removable disk
sd 6:0:0:0: Attached scsi generic sg2 type 0
usb-storage: device scan complete
}}}
<<<
: lo anterior quiere decir que la memoria fue reconocida como el disco "b" (sdb) y que tiene una partición (sdb1). Estos datos pueden cambiar de acuerdo a cada memoria específica, pero serán similares y los comandos siguientes deberán adaptarse de acuerdo al disco y la partición.
* Formateamos la partición anterior:
<<<
''Consola superusuario:'' 
{{{
mkdosfs /dev/sdb1
}}}
<<<
* Usamos [[Unetbootin| http://unetbootin.sourceforge.net/]] para copiar la imagen iso nuestra distribición de Linux (por ejemplo [[Arch|ArchLinux]]) en la memoria USB.
* La obra se llama: miada sin puntos de apoyo a 80 Km/hora en baño de bus ~Bogotá-Medellín e intermedios (dimensiones 50 cm x 50 cm) o mi venganza uretral contra el mundo!
* Instalación: Orín sobre azulejos desteñidos en espejos, cerámicas sanitarias y esquinas recónditas inalcanzables, con ayuda de puerta abierta y viaje accidentado y curvilíneo.

* [[Fluxus | http://www.pawfal.org/index.php?page=FluxusPage]], arte, codigo y Scheme
/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 }
 return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
Voy a escribir cual2quier cosa sobre este lugar uno
Es un editor de texto científico estructurado multiplataforma que permite escribir documentos con simbología matemática rica, como ecuaciones, matrices, operadores, etc. A diferencia de TeXmacs, hay versiones nativas para Windows, pero no soporta muchas sesiones de álgebra computacional.

Para instalarlo en Windows se debe hacer lo siguiente:

* Se va a la [[página de Windows en el wiki de Lyx| http://wiki.lyx.org/Windows/Windows]] y se descarga el enlace que dice "Bundle with MiKTeX:" en la última versión (al momento des escribir esto era la 1.6.1-1 de aproximadamente 100 mb).
* Una vez descargado, se hace click en el instalador, se autoriza la instalación y se elige el idioma de la interface y los diccionarios. El proceso es demorado, así que se recomienda paciencia.
* Al final del proceso el instalador pregunta si se quiere lanzar el programa y crear un ícono en el escritorio. Es bueno hacer lo primero para verificar que el proceso fue exitoso.
!! Enlaces adicionales:
* En la [[página del research tour de sage| http://www.sagemath.org/tour-research.html#latex]] muestran como usar Sage desde ~LaTeX. Sería interesante ver si LyX soporta esto de alguna forma.
En esta micropágina están enlaados los trabajos de todos los estudiantes del módulo de Medios para la Web de la Maestría en Didáctica de las ciencias, que estoy dictando.

* [[Micropágina de Gina Calderón | http://missgina.tiddlyspot.com/index.html#Scratch]]
* [[Micropágina de Maritza Monrroy |http://maritza.tiddlyspot.com/#MEDIOS%20PARA%20LA%20WEB]]
* [[Micropágina Emerson | http://emersonq.tiddlyspot.com/#%5B%5BPROYECTO%20SCRATCH%5D%5D]]
* [[Micropágina de Donaldo | http://srdfc.tiddlyspot.com/#%5B%5BProyecto%20Scratch%5D%5D]]
* [[Micropágina de Rubistein | http://rhbjd.tiddlyspot.com/index.html#Scratch]]
* [[Micropágina de Guillermo Soler |http://maguiso5.tiddlyspot.com/#[[M%C3%B3dulo%3A%20Medios%20para%20la%20web]]]]
MPTW is a distribution or edition of TiddlyWiki that includes a standard TiddlyWiki core packaged with some plugins designed to improve usability and provide a better way to organise your information. For more information see http://mptw.tiddlyspot.com/.
* [[Página Web del aula virtual de la maestría en didáctica de las ciencias | http://www.isp.fuac.edu.co/wis/pages/isp-uved.php]]
* [[Magic Words - A Creative Software Toy| http://comikit.se/index.html]]
* [[Comics and Programming| http://www.ida.liu.se/~mikki/index.php?page=Comics]]
* [[Magic Words goes Open Source| http://news.squeak.org/2009/05/25/magic-words-goes-open-source/]]
[[Intro]] [[IniciarConTiddlyWiki]]


^^~TiddlyWiki versión <<version>>
© 2007 [[UnaMesa|http://www.unamesa.org/]]^^
!! Mitos del software Libre:

* [[Introducción |IntroCharlaMalokaEmpresariosDic2008]]
* [[La Gráfica|GraficaSoftLibrevsPrivativo]]
* [[Qué es el software libre |QueEsSoftwareLibre]]
* Las falsas dicotomías:
** [[La dicotomía del software Libre versus el "licenciado" |ConLicenciaParaSerLibre]]
** [[La dicotomía "comercial" vs libre |ElSoftwareLibreEsProductivo]]
!! [[Awesome | http://awesome.naquadah.org/]]:
* Programable/Extensible en Lua (en lua se puede jugar space invader y está soportado en Awesome).
* Soporta Tags para agrupar ventanas por actividades.
* Pequeño.
* Deberíamos probarlo para VirtualTangram ?
* [img[http://awesome.naquadah.org/index/320x240-screen.png]]
Los mapas mentales son una forma de representar gráficamente las ideas. La técnica fue alentada por Tony Buzan y se han empleado con éxito en contextos educativos.
* [[Interoperabilidad entre software de mapas mentales| http://www.mind-mapping.org/interoperability-of-mind-mapping-software/]]
* [[NIST Digital Library of Mathematical Functions| http://dlmf.nist.gov/]]
** [[Digital Library of Mathematical Functions (en la wikipedia)| http://en.wikipedia.org/wiki/Digital_Library_of_Mathematical_Functions]] "is an online project at the National Institute of Standards and Technology to develop a major resource of mathematical reference data for special functions and their applications. It is intended as an update of Abramowitz's and Stegun's Handbook of Mathematical Functions (A&S). In contrast to A&S, whose initial print run was done by the U.S. Government Printing Office and was in the public domain, copyright to the DLMF is held by NIST under an applicable provision of the U.S. Code."
* [[The SlugMath Wiki| http://sirius.ucsc.edu/mediawiki/index.php/Main_Page]]
* [[The MAA Mathematical Sciences Digital Library| http://mathdl.maa.org/mathDL/]]
* [[Coxeter–Dynkin diagram| http://en.wikipedia.org/wiki/Dynkin_diagram]]
! Libros:
!! Generales/Panorámicos/Colecciones:
** [[Online Mathematics Textbooks | http://www.math.gatech.edu/~cain/textbooks/onlinebooks.html]]
** [[The Assayer | http://www.theassayer.org]]
** [[Free Math Texts | http://freemathtexts.org/]]
** http://openmathtext.org
** http://www.maketextbooksaffordable.org
** [[Unabridged Version of Sean's Applied Math Book | http://www.its.caltech.edu/~sean/book/unabridged.html]]: Cerca de 2000 páginas que cubren cálculo integral, diferencial, vectorial, álgebra lineal, etc. Con notas y ejercicios hechos en //Mathematica// y una advertencia muy chistosa!. Bajo Dominio Público.
* [[Riemann's Zeta Function| http://books.google.com/books?id=5uLAoued_dIC]]

!! Cálculo:
** [[Differential Calculus with SAGE | http://www.opensourcemath.org/books/calc1-sage/]]
** [[Calculus | http://www.lightandmatter.com/calc/]] de la colección Ligth & Matter con notas en Yacas
** [[Vector Calculus | http://www.mecmath.net/]], por Michael Corral
** [[Calculus: Modelling & Application| http://www.math.duke.edu/education/calculustext/]]
!! Álgebra Lineal
** Véase http://algebralineal.tiddlyspot.com/#Libros

!! Algebra Abstracta
* [[Abstract Algebra: Theory and Applications| http://abstract.ups.edu/index.html]] Everything you wanted to know about abstract algebra, but were afraid to buy. Un libro libre completo con un [[taller de álgebra abstracta en Sage| http://abstract.ups.edu/sage-aata.html]].
* [[PlanetMath | http://planetmath.org/]]
* [[imath| http://www.ags.uni-sb.de/~imath/]]: ~TeXmacs + [[Tiddlywiki|TiddlyWiki]] + Scritps del lado del servidor... un sueño hecho realidad, para extender y adaptar en el departamento de matemáticas :-p
* [[MathTrans | http://www.mathtran.org/index.html]]: Traductor en línea de fórmulas TeX.
** [[An Architecture for Collaborative Math and Science Digital Libraries | http://scholar.lib.vt.edu/theses/available/etd-09022003-150851/]] Una tesis de maestría sobre la creación de Planethmath y su viabilidad, por uno de sus autores.
* [[Sitmo equation editor| http://www.sitmo.com/latex/]]: Un editor en línea para LaTeX con visualización interactiva y en tiempo real de cómo van quedando las ecuaciones. Tiene buenos tiempos de respuesta y en ese sentido algo similar a TeXmacs, pero con interface Web podría implementarse pronto. El sitio también contiene artículos y fórmulas usadas en finanzas.
* [[Open source mathematics | http://www.opensourcemath.org/]]
* [[Les Maths Libres| http://mathsp.tuxfamily.org/spip.php?article134]] con artículos, animaciones y demostraciones visuales de algunos teoremas geométricos.
* [[Numerical Methods for the STEM Undergraduate | http://numericalmethods.eng.usf.edu/index.html]]: Un sitio muy completo sobre métodos numéricos con ejemplos en varios sistemas de álgebra computacional privativos. Piensan contactar al autor para que además haga el equivalente en [[Sage]]
* [[Connexions | http://cnx.org]]: Un proyecto de la Universidad de Rice para la publicación de contenido libre y reutilizable con soporte para metadatos, colecciones y tipografía matemática de alta calidad (gracias a la importación desde LaTeX).
** [[Using LaTeX to Create Connexions Modules | http://cnx.org/help/UsingLaTeX]]
** [[Creating Connexions Content Using LyX | http://cnx.org/content/m13238/latest/]]
** [[Mobile Carriers and the Fermi Function | http://cnx.org/content/m13458/latest/]] Un contenido creado el ~LyX y subido a connexions (al menos eso se deduce de los enlaces, aunque sería bueno tener acceso a los archivos que son parte de la colección)
** [[Journal Article Analyzes Sustainability of Connexions and other OERs | http://cnx.org/news/journal-article-analyzes-sustainability-of-connexions-and-other-oers]]
* [[Lout| http://lout.wiki.sourceforge.net/FAQ]]: "is a high-level language for document formatting. It includes facilities for typesetting complex documents containing floating figures, tables, diagrams, rotated and scaled text or graphics, footnotes, running headers, footers, an index, table of contents and bibliography, cross-references, mathematical equations and statistical graphs. Lout's capabilities can be extended with definitions which are easier to write than similar markup languages."
* [[Plato: Interactive Mathematical Authoring | http://www.ags.uni-sb.de/~omega/omega/index.php?target=plato]]
* [[Portal de Matematicas de la Universidad de los Andes| http://matematicas.uniandes.edu.co/]] (Colombia). Tiene un listado de eventos gratis (que también envían por correo), sería chévere que tuvieran algún tipo de suscripción vía RSS.
* [[Tralics: a LaTeX to XML translator | http://www-sop.inria.fr/apics/tralics/]]
* [[plasTeX | http://plastex.sourceforge.net/]]: "plasTeX is a LaTeX document processing framework written entirely in Python".
* [[Axel| http://axel.inria.fr/]]: "an algebraic geometric modeler developed in the research team Galaad, which aim is to provide “algebraic modeling” tools for the manipulation and computation with implicit and parametric curves, surfaces and volumes."
* [[Mathemagix| http://www.mathemagix.org/www/language/mmx-types.en.html]]
* [[Steve’s LATEX-to-MathML translator| http://www.gold-saucer.org/mathml/greasemonkey/dist/display-latex]]
* [[MimeTeX| http://www.forkosh.com/mimetex.html]] "lets you easily embed LaTeX math in your html pages.  It parses a LaTeX math expression and immediately emits the corresponding gif image, rather than the usual TeX dvi".
* [[MathTeX| http://www.forkosh.com/mathtex.html]] "is a cgi program that lets you easily embed LaTeX math  in your own html pages, blogs, wikis, etc.  It parses a LaTeX math expression and immediately emits the corresponding gif (or png) image, rather than the usual TeX dvi". Es la versión siguiente a mimeTeX.
* [[OpenMath Software And Tools| http://www.openmath.org/software/index.html]]
* [[POPCORN for OpenMath| http://www.mathematik.uni-kassel.de/~hornp/popcorn-for-openmath]] "Whenever you come to manually typing OpenMath (which appears to happen rather frequently in the ~SCIEnce-Project), it’s rather annoying. On the other hand, there is a widly used kind of syntax for mathematical expressions known from computer-algebra-systems as Maple or MuPAD. The idea of popcorn is to use a derivation of this intuitive syntax and write a converter that creates Openmath from it [...] transforming something small into something huge — which partly motivates the name."
* [[GtkMathView| http://helm.cs.unibo.it/mml-widget/#examples]]:  "is a C++ rendering engine for MathML documents. It provides an interactive view that can be used for browsing and editing ~MathML markup". Tiene interfaces de [[MathML a SVG| http://helm.cs.unibo.it/mml-widget/screenshots/svg.png]] y [[AbiMathML plugin| http://helm.cs.unibo.it/mml-widget/screenshots/abiword.png]]
* [[OpenOpt| http://openopt.org/Welcome]] "New numerical optimization framework developed by optimization department of cybernetics institute (Ukrainian National Academy of Sciences; читайте також вступ українською мовою) in collaboration with ~SciPy developers team "
* [[Javaview| http://javaview.de/index.html]]: "is a 3D geometry viewer and a mathematical visualization software. The web-integration allows display of 3D geometries and interactive geometry experiments in any HTML document on the internet.  JavaView also runs as application on local computers from a Unix or Dos command  prompt. The open API of JavaView enables a smooth integration as 3D viewer and advanced visualization toolkit into commercial software like  Mathematica and Maple." (''privativo!'', aunque en este momento se comporta mejor que el Jmol de Sage en Linux + Firefox).
** [[Ejemplo de Javaview para "trozos" de gráficas en 3D| http://user.mendelu.cz/marik/3D/absolutni.html]]: Se ofreció por uno de los miembros de la lista de Sage-Edu como ejemplo de lo que se quería lograr con una una función aún faltante en las utilidades de graficación 3D actuales de Sage.
* [[SpaceTime| http://www.spacetime.us/]]: Un sistema de álgebra computacional para //smartphones// y computadores de mano. Privativo, pero interesante.
* "[[hp-FEM| http://hpfem.org/hpfem.html]] is a modern version of the Finite Element Method (FEM), which combines adaptively finite elements of variable size (h) and polynomial degree (p)."
!! [[Why (and how) I teach without long lectures| http://cm.math.uiuc.edu/where]]
Un excelente texto sobre el anacronismo de la enseñanza de la matematica y las posibilidades que actualmente brinda el álgebra computacional. Algunos apartes:
<<<
This lab interaction between teacher and student (which is sometimes done via email) is very important. No longer are the students the professor's audience; students are the professor's apprentices.

The students' weekly assignments count for at least half their semester grades. Because there are no other lectures, the whole course consists of student work. In this model, it is what the students do that is important rather than what the professor says and how the professsor says it. Still the influence of the instructor is pervasive and the course ends up satisfying Gary Jensen's and Meyer Jerison's criteria: setting pace, teaching students to read, and fully engaging the student in the learning process.

This learning model cannot be accomplished with traditional printed texts and traditional lectures and lends itself rather well (but not perfectly) to Internet distance education.
<<<
: [...]
<<<
There is plenty of what Peter Lax calls "inert material" in most of our current mathematics courses. It's time to get rid of it and open the door to some fresh, important material.

My bet is that the underlying cause of this is our current fanaticism about having one-size-fits-all uniform texts chosen by central committees who often lack the expertise to make significant changes. They just go on tinkering with what was done the year before. It seems the central committees do not trust their own individual faculty members, so they shackle them with obsolete material.

Publishers respond in kind. And the publishers stay away from texts for modern courses because new, modern, original texts are unlikely to sell well. This is the reason that most well-selling traditional calculus texts are clones of George Thomas's calculus course of the 1950's. 
<<<
<<<
matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms. matplotlib can be used in python scripts, the python and ipython shell (ala matlab or mathematica), web application servers, and six graphical user interface toolkits.
<<<
: -De la [[página Web de Mathplotlib| http://matplotlib.sourceforge.net/index.html]]

* [[Mathplotlib en la Wikipeadia| http://en.wikipedia.org/wiki/Matplotlib]] (inglés)
* [[Mathplotlib Cookbook| http://www.scipy.org/Cookbook/Matplotlib/]]
** [[Mathplotlib and Django| http://www.scipy.org/Cookbook/Matplotlib/Django]]
** [[http://www.scipy.org/Cookbook/Matplotlib/Qt_with_IPython_and_Designer| Qt with IPython and Designer]]
** [[Making Dynamic Charts and Graphs for Your WebPage| http://www.answermysearches.com/index.php/making-dynamic-charts-and-graphs-for-your-webpage/135/]]
** [[VTK Integration| http://www.scipy.org/Cookbook/Matplotlib/VTK_Integration]]
*** [[Página principal de VTK| http://www.vtk.org/]] (faltan enlaces a la documentación)
! Médios para la Web

Los medios son un recurso fundamental para representar conocimiento, y pueden jugar un importante papel en la Web a través de interfaces didácticas en las cuales se destaca la interactividad. La pregunta que buscamos abordar en este seminario es: cómo lo informático y lo medial (hiper, meta, multi) puede modificar las prácticas educativas en el contexto de los colectivos que aprenden?

!! Distribución de créditos

|''Número total de créditos: 3'' |
|Número total de horas con acompañamiento directo : 24 |
|Número total de horas de trabajo independiente: 72 |
|Número total de horas: 96 |

!! Compentencias que se adquiriran

Al finalizar el módulo el estudiante deberá estar en capacidad de:

* Crear artefactos digitales que integren audio, imagen, video, animación, entre otros y publicarlos en la Web.
* Desarrollar el pensamiento crítico analítico para seleccionar materiales acordes con una necesidad específica y conocer las implicaciones que, desde el derecho de autor y los modelos de licenciamiento alternativos, tiene el publicar material en la web y usar el material allí.
* Expresar algorítmicamente las interacciones en los artefactos digitales para poder crearlos.

!! Metodología

La metodología utilizada privilegiará la resolución de problemas, a través de talleres que se desarrollan en el laboratorio y el balance entre el uso práctico de la tecnología y las ideas teóricas detrás de ellas.

!! Evaluación

Se hará por proyectos teniendo en cuenta la documentación desarrollada durante ellos acerca de cómo se hicieron. Cada proyecto establecerá los criterios de evaluación a tener en cuenta.

!! Unidades Temáticas

!!! Unidad 1: Web: Redes de aprendices y modelación como argumentación

* Teoría: Se presentan algunas ideas de la cognición distribuida, las redes de aprendices y un modelo computacional con un correlato educativo que muestra elementos claves en la resolución colectiva de problemas y la conformación de tales redes.
* Práctica: Cada uno usará su Wiki personal para reflexionar sobre los elementos presentados en la parte teórica y propondrá una dinámica de conformación y evaluación desde la noción de redes de aprendices. Los resultados se intercambiarán desde una mediación
* Recursos: 
** Comunidades de Práctica Ettiene Wenger.
** [[Cogniciones distribuidas|CognicionesDistribuidas]]. Capítulos 2 y 7.

!!! Unidad 2: Multimedia una convergencia

* Teoría: Se presenta la multimedia como una convergencia que hace difusa la distición entre audio, video, imagen, animación que los medios predigitales habían propiciado.
* Práctica:
** Presentación de Scratch: Introducción a los conceptos, lenguaje, entorno y filosofía
** Taller práctico scratch – uso de comandos básicos y exploración del entorno.
*** Personajes, disfraces y fondos
*** Uso de comandos básicos y exploración del entorno
*** Creación de una animación por parte de los participantes con el apoyo del grupo
*** Compartir el material en el site de Scratch.
*** Ver animaciones de otras personas desde la red.
** Creación de un artefacto digital por parte de los participantes
* Actividad: Los estudiantes crearán un objeto virtual de aprendizaje usando la documentación publicada en la sección de recursos.
* Recursos:
** [[Página Web principal de Scratch | http://scratch.mit.edu/]]
** [[Información sobre en español de la comunidad de Scratch | http://scratch.wik.is/Support/Translation/Espa%C3%B1ol_%2f%2f_Spanish]]
** [[Página de Soporte sobre Scratch | http://scratch.wik.is/Support]]
** [[Cómo usar Scracth | http://squeak.educarex.es/Squeakpolis/130]] En Squeakpolis
!!! Unidad 3: Bookmorph

* Teoría: Los conceptos básicos de objetos: herencia agregación y polimorfismo. Mensajes entre objetos
* Práctica:
** Introducción al entorno: el catágolo de objetos
** Creando el libro interactivo

!!! Unidad 4: Etoys

* Teoría: Se afianza la teoría de la clase pasada y se refuerza mediante una práctica distinta
* Práctica: Cada estudiante diseñará un juego interactivo con propósitos educativos y documentará el proceso en su wiki personal.
* [[Concurso de magia con cartas - Herman Sandoval| http://www.pastomagic.com/blog/?p=769]]: Mi más antiguo amigo (desde la escuela 4to de primaria) muestra un truco de magia)
<html>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/pVicQNdGNg4&color1=0xb1b1b1&color2=0xcfcfcf&hl=es&feature=player_embedded&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/pVicQNdGNg4&color1=0xb1b1b1&color2=0xcfcfcf&hl=es&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
</html>
* Fundamentos teóricos:
** Constructivismo y/o
** Teoría socio cultural
* Agrega a la perspectiva estudios están basados en aprendizaje de adultos a lo largo de la vida.
** Ocurren fuera de la educación formal
** Tienen que ver con el dominio de destrezas específicas para toma de decisiones o realización de actividades más que con un completo cuerpo de conocimiento.
** Las tecnologías móviles y ubicuas son particularmente adecuadas para este tipo de aprendizaje.
*** Dichas tecnologías soportan aprendizaje intencional y no intencional.
<<<
Microlearning is thus to be considered a contextual lifelong learning process, that
according to [15] is most effective when it can enable activities such as:
i) the construction of knowledge, by means of finding new solutions to problems or
     creating connections between past and current experiences,
ii) conversation with both the socialphysical world and with oneself (like in reflection,
     experimentation in the world and interpretation of results) as well as,
iii) learner control over any continuing cycles of experimentation and reflection.
<<<
: Gabrielli/Kimani/Catarci • The Design of ~MicroLearning Experiences: A Research Agenda
<<<
Adaptable and/or adaptive to learners’ needs, so that different interaction styles
can be selected by learners according to their preferences or skills (for instance,
their level of expertise with the learning environment) or automatically suggested
by the system according to specific learner profiles or models developed during
lifetime interactions with the microlearning environment. Personalization features
should be carefully designed to avoid making user interaction more complex or run-
ning against principles such as transparency, predictability, control etc.. By contrast,
the aim of this requirement is to support a more natural and consistent interaction
of the learner with digital (learning) resources, according to the opportunities and
affordances provided by everyday environments.
<<<
: Gabrielli/Kimani/Catarci • The Design of ~MicroLearning Experiences: A Research Agenda
* <<slider chkMicroaprendizajeTransferible MicroaprendizajeTransferible 'Transferible y no intrusivo »' 'Transferible y no intrusivo'>>
* <<slider chkMicroaprendizajeDisponibleAmigable MicroaprendizajeDisponibleAmigable 'Fácilmente disponible y amigable respecto al usuario »' 'Fácilmente disponible y amigable respecto al usuario'>>
* <<slider chkMicroaprendizajePersistente MicroaprendizajePersistente 'Persistente »' 'Persistente'>>
* <<slider chkMicroaprendizajeUtil MicroaprendizajeUtil 'Útil »' 'Útil'>>
* <<slider chkMicroaprendizajeIndividualCompartible MicroaprendizajeIndividualCompartible 'Individual y compartible »' 'Individual y Compartible'>>
* <<slider chkMicroaprendizajeAdaptableAlAprendiz MicroaprendizajeAdaptableAlAprendiz 'Adaptable a los aprendices »' 'Adaptable a los aprendices'>>
<<<
Easily available and user-friendly, enabling anytime-anywhere access to it, suppor-
ted by the use of mobile phones, PDAs or other wireless communication devices
connected also by Local Area Networks (LANs). Usability aspects of microlearning
technologies and contents should be analysed carefully, in such a way to enable the
most intuitive and straightforward interaction with them by people with different
levels of expertise with technologies.
<<<
: Gabrielli/Kimani/Catarci • The Design of ~MicroLearning Experiences: A Research Agenda
<<<
Individual as well as sharable, so that they adequately support individual learning
activities but also enable learners to get or provide support from/to peers, tutors or
other experts by the use of communication technology.
<<<
: Gabrielli/Kimani/Catarci • The Design of ~MicroLearning Experiences: A Research Agenda

* Esta sería la esencia de las interacciones micro que generen los comportamientos macro.
<<<
Persistent, meaning that the learning environment including all the modifications
operated on it by a learner in a lifetime, should be independent from its physical
instantiation on a certain device, thus easily accessible at anytime through the spe-
cific technology at hand. The use of a persistent user profile may enable the lear-
ner freedom in accessing her same profile from different devices, settings and for
different services.
<<<
: Gabrielli/Kimani/Catarci • The Design of ~MicroLearning Experiences: A Research Agenda
El correlato es la ubiquidad: Servicios de telepresencia que almacenan nuestros perfiles y son disponibles para diferentes iteracciones. Ya está pasando:
* OpenID
* [[DataPortability]]
<<<
highly transferable and unobstrusive of the learner’s activities, so that learners can
easily download and upload the didactic materials they have been provided from
one device to another. This should also enable learners to work always on the most
updated version of the learning material wherever they are, by using the most
appropriate device according to the specific conditions in which they happen to
carry on learning activities. This would also entail the study of natural interfaces for
multimodal interaction with the learning system to support the learners in situati-
ons such as: multitasking, hands-free or eyes-free interaction, exposure to possible
distractions (noise, interruptions, etc.) from the surrounding environment.
<<<
: Gabrielli/Kimani/Catarci • The Design of ~MicroLearning Experiences: A Research Agenda
Ejemplos: 
* Aprender mientras se maneja el carro (o uno va en el transmilenio agarrado de lo que sea)
<<<
Useful, especially through enhancing the different activities contributing to the
achievement of the learning goal(s). This is only possible if technologies are able to
present an adequate and simple image of the learning environment to the user, no
matter how complex its inner organization might be. For microlearning, appropria-
te system metaphors, especially ‘off the desktop’ ones, should be uncovered and
studied in order to fulfil this requirement.
<<<
: Gabrielli/Kimani/Catarci • The Design of ~MicroLearning Experiences: A Research Agenda
!! Algunas redes en las que estoy metido:
* [[Redtics en Identi.ca| http://identi.ca/tag/redtics]]
* [[Tauba en Identi.ca| http://identi.ca/tag/tauba]]
* [[Narratopedia| http://identi.ca/group/narratopedia]]
* Edutics
!! Artículos:
* [[Twitter in Education| http://www.dontwasteyourtime.co.uk/twitter/presentation-twitter-in-education/]]
* [[Mining The Thought Stream| http://onedollargeek.com/gadgets/mining-the-thought-stream/]]
* [[Google execs admit Twitter's winning real-time game| http://news.cnet.com/8301-17939_109-10245361-2.html?part=rss&tag=feed&subj=Webware]]
* [[Twitter And The Revenue Dilemma| http://www.techcrunch.com/2009/09/09/twitter-and-the-revenue-dilemma/]]
* [[Why Twitter is the future of search, communication and discovery and thus, the web itself| http://www.mobilewebtablet.com/2009/02/21/why-twitter-is-the-future-of-search-communication-and-discovery-and-thus-the-web-itself/]]:Chévere lo de "[[we are the web| http://www.wired.com/wired/archive/13.08/tech.html]]" y la estamos cambiando de a 140 caracteres a la vez. Creo, a diferencia del artículo, que necesitaremos los RSS de todos modos y que Twitter será vencido por los sistemas de //microblogging// abiertos, al margen de la masa crítica, como lo muestran los siguientes artículos.
* [[Twitter y sus Clones Libres| http://kikuelo.wordpress.com/2008/08/04/twitter-y-sus-clones-libres/]]: Diferentes motores de microblogging. Todos estos los evaluamos con los estudiantes del seminario de matemática computacional en 2009-2. Al final nos fuimos por present.ly, que aunque no es libre tiene la mejor interface de usuario, las características que necesitábamos y un API con soporte para OAuth, que nos permitía construir sobre ella y garantizar la portabilidad de los datos.
* [[Status.net Could Point to the Future of Business Intelligence| http://www.readwriteweb.com/archives/statusnet_could_point_to_the_future_of_business_intelligence.php]]: Un artículo que habla de inteligencia de negocios basada en microblogging. Interesante las [[gráficas de redes sociales| http://www.readwriteweb.com/archives/the_inner_circles_of_10_geek_heroes_on_twitter.php]]. Similar a lo que propuse para [[Cumulus]]
* [[Open Source ‘Twitter’ Could Fend Off the Next Twitpocalypse| http://www.wired.com/epicenter/2009/08/twitpocalypse/]]
* [[Microblogging: why Qaiku might do what Twitter and Brightkite didn't| http://bergie.iki.fi/blog/microblogging-why_qaiku_might_do_what_twitter_and_brightkite_didn-t/]]: Interesante la característica de Qaiku de que las conversaciones inician con un post de máximo 140 caracteres, pero las respuestas no, como lo muestra este [[ejemplo de discusión en Qaiku| http://www.qaiku.com/home/bergie/show/1de0cd509603edc0cd511deaa64435510d6b043b043/]]. Interesante si esto se pudiera implementar en Laconica. Todo lo que exceda el tamaño original se convierte automáticamente en un anexo.
* [[Farewell to the ‘@’ - We Welcome the Meta Revolution| http://staynalive.com/articles/2008/08/18/farewell-to-the-we-welcome-the-meta-revolution/]]. Compartimos ideas sobre los metadatos fuera de los mensajes de //microblogging//. Chévere las actualizaciones en tiempo real en la barra de la derecha.
* [[Bugabundo para Laconi.ca| http://laconi.ca/trac/wiki/BUGabundo/SNOfflineApp]]: Comenta el uso del protocolo xmpp para tener conversaciones "off-line", clientes fuera del navegador y un sistema federado más poderoso.
* Sobre las direcciones cortas, una técnica usada en los sistemas de //microblogging// (véase //a long reply// en "Otras Herramientas").
** [[RevCanonical: url shortening that doesn't hurt the internet| http://revcanonical.appspot.com/?url=http%3A%2F%2Fshiflett.org%2Fblog%2F2009%2Fapr%2Fsave-the-internet-with-rev-canonical&Shorten=Shorten]]
** [[Save the Internet with rev="canonical"| http://shiflett.org/blog/2009/apr/save-the-internet-with-rev-canonical]]
** [[on url shorteners| http://joshua.schachter.org/2009/04/on-url-shorteners.html]]
** [[TinyURL Decoder| http://userscripts.org/scripts/show/40582]]
!! Clientes:
* Gwibber: No tiene páginas y no separa los tipos de respuestas.
* Choqok: En ocasiones simplemente no se actualiza. Kwallet pidiendo todo el tiempo mi contraseña, sin importar cuantas veces le diga que no es realmente fastidioso (el problema de la "integración KDE").
* Identifox: No tiene soporte para tildes. Los mensajes privados siguen apareciendo como no leídos. No tiene páginas.
* [[Mauku| http://mauku.henrikhedberg.com/]]: Es para el entorno Maemo. No lo he probado pero se ve interesante.
!! Otras herramientas:
* [[A long reply| http://a.longreply.com/]]: Cuando 140 caracteres no son suficientes, //a long reply// guarda una respuesta más larga y crea una dirección corta para compartirla con otras personas en la red de microblogging :-).
<<<
As far as microlearning contents are concerned, below we mention a number of metarequirements that, according to the theoretical approaches cited in section 3, should
be fulfilled. In particular, they should:
# promote the acquisition of basic skills such as flexibility and adaptability in learners, making them aware of the very rapid and changing nature of knowledge in everyday environments,
# foster the development of creativity skills, as well as problem solving and managing competences,
# capitalize on learners communication abilities as a way of supporting the social production and reconstruction of knowledge during learning and working activities and try to improve them by providing learners ways of analysing their own communication styles as recurrently practiced in the field.
<<<
: Gabrielli/Kimani/Catarci • The Design of ~MicroLearning Experiences: A Research Agenda
!! Soportado en tecnologías como:
* XML / RSS / Atom
* Blikis = Blogs + Wikis
* Microblogs

* [[Microformatos| http://microformats.org/about/]]
<<<
[img[http://microformats.org/media/2008/micro-diagram.gif]]
<<<
* [[web semántica| http://www.tantek.com/presentations/2004etech/realworldsemanticspres.html]] (pero con minúsculas) Un interesante ejemplo sobre microformatos y votaciones.
* [[An Evolutionary Revolution| http://theryanking.com/entries/2005/04/07/an-evolutionary-revolution/]]: el //post// en el blog de uno de los desarrolladores de esta iniciativa que habla de como (x)html puede ayudar a construir una web semántica (con minúsculas) que evolucione a partir de lo que ya tenemos, pero que también lo revolucione.
Los microwikis son wikis autocontenidos y unipersonales. Esta página es toda un microwiki. En esta micropágina pueden ejemplos de microwikis y enlaces sobre cómo se crean:
* [[TiddlyWiki]]

!! Ejemplos
Estos son algunos microwikis:

* [[Fredy Guio | http://guio.tiddlyspot.com/]]

!!! Maestría en Diseño y Creación Interativa

* [[Jaime Alzate| http://jaimealzate.tiddlyspot.com/#RelacionesDialogicasEntreElUsuarioyLaInterfazEnElCiberespacio]]: Relaciones Dialogicas Entre El Usuario y la Interfaz En El Ciberespacio.
* [[Mauricio Arbelaez| http://marbelaez70.tiddlyspot.com/]]
* [[Ana María Arrieta León| http://anacida.tiddlyspot.com/]]
* [[Alex Cano| http://alexcano.tiddlyspot.com/#Dise%C3%B1odeInteraccionyRealidadContextual]]
* [[Paula Escandón| http://seapaes.tiddlyspot.com/#Dise%C3%B1oDeInteracci%C3%B3nEnVideojuegos]]
* [[Mauricio Galvis| http://mhaurog.tiddlyspot.com/]]
* [[Silvía Perez| http://silviaperez.tiddlyspot.com/]]: Alternativas Comerciales no convencionales:  Medios y tecnologías audiovisuales utilizadas como estrategia publicitaria.
* [[Ramón M. Rodriguez M.| http://ramrodriguez.tiddlyspot.com/]]: Objetos Sonoros en Ambientes Interactivos.
* [[Hector Torres| http://hftorres.tiddlyspot.com/#OperaExpandida]]: Opera Expandida
* [[Andrés Uriel Pérez| http://gatomade.tiddlyspot.com/]]
* [[Miguel Andrés Rubio| http://miguelandresrubio.tiddlyspot.com/]]
* [[Mario H. Valencia G.| http://mariov.tiddlyspot.com/#Tiddywiki_Maestr%C3%ADa]]: De la Ergonomía a la sinestesia digital o la desaparición de la interfaz como metáfora.
* [[Liliana Villescas| http://lilivg.tiddlyspot.com/#EmpresasExportadoraRedesDeConocimiento]]
* http://maestriaendiseno.com/
* [[Get Satisfaction | http://getsatisfaction.com]]: Customer service doesn't have to suck. Real conversations with company employees and other customers who will answer your questions about the products and services you use. Una interesante propuesta de uso de software social para mejorar el servicio de las compañías. Me recuerda: [[Horizontal technologies for learning | http://www.dicole.com/2007/08/22/horizontal-technologies-for-learning/]] en Dicole.
** [[Una interface foro extremadamente interesante, en Ajax | http://getsatisfaction.com/faradaymedia/company_products]]
* [[SmileyJungle | http://smileyjungle.com/Robots/]]: Emoticones para toda ocasión. Y hablando de emoticones:
** [[The Untimely Demise of Our Favorite Emoticons | http://nonemore.comicgenesis.com/emoticon.html]]
* [[Mia Rose| http://www.youtube.com/user/miaarose]]... bonita
* [[Feng Shui en la oficina| http://www.manufacturasmunoz.com/interna.php?id=24]], pa' que se den cuenta que mi cargo de Feng Shui empresaríal no es carreta.
* [[RepRap| http://reprap.org/bin/view/Main/RepRap]]: Una impresora en 3D autorreplicante.
* [[Optimizando búsquedas en Google| http://fuvoo.com/FuvooPermaLink.aspx?PostID=660]] (videotutorial)
* [[Make something with your hands, says MIT's John Maeda| http://www.eyemagazine.com/feature.php?id=7&fid=144]]
* [[Las diez tecnologías mas prometedoras según el MIT| http://teleobjetivo.org/blog/las-diez-tecnologias-mas-prometedoras-segun-el-mit.html]]
* [[Nixos| http://nix.cs.uu.nl/nixos/]]: Un sistema puramente funcional de instalación de paquetes. Bien interesante la tesis que aparece al respecto en los Research papers.
* [[Drobo| http://www.drobo.com/Where_to_Buy/Index.html]]: Sistema de almacenamiento redudantes. Según ellos, es mejor que RAID.
* [[Customize| http://customize.org/wallpapers]]: Un lugar con wallpapers y otras cosas para //personalizar// el escritorio.
MoinMoin es un potente motor wiki hecho en Python. Es el que usamos en [[El Directorio | http://www.el-directorio.org/]].

Acá algunos enlaces:
* [[Taks Planner | http://moinmoin.wikiwikiweb.de/TaskPlanner]] 
* Facetas:
** http://moinmoin.wikiwikiweb.de/FacetMap
** http://moinmoin.wikiwikiweb.de/FacetsEngine
** [[Macro para licencias Creative Commons | http://yergler.net/MoinLicense?action=WikiLicense]]
** [[Soporte de Correo | http://moinmoin.wikiwikiweb.de/HelpOnConfiguration/EmailSupport]]
Y notas de configuración:
Se  puede cambiar el archivo {{{wikiconfig.py}}} para que permita la escritura indiscriminada y anónima, pero no el borrado de cosas. Esto hace que se reduzca el vandalismo. Las líneas serían algo así:
{{{
    #Permisos
    acl_rights_default = u"All:read,write"
    acl_rights_before = u"DirAdminsGroup:read,write,delete,revert,admin"
}}}
y se crea una página llamada DirAdminsGroup que contenga a todos los administradores. Puede ver el código de esta página para tener más o menos la idea.
! Portando aplicaciones de asp.net a Mono
!! Introducción
La intensión de este documento es mostrar cómo se puede colocar una aplicación hecha en Asp.net a ejecutarse en Linux a través del framework Mono. La intensión es finalmente colocar [[Yonkly]] a funcionar sin usar Windows/SQL Express, u otra tecnología privativa.
''Referencias''
* [[Guide: Porting ASP.NET Applications| http://mono-project.com/Guide:_Porting_ASP.NET_Applications]]
* [[Tutorial de CVS de Gentoo Linux| http://www.gentoo.org/doc/es/cvs-tutorial.xml]]
!! Procedimiento
* Descargamos el software que queremos portar. En ejemplo será Blog Starter Kit. 
* Descargamos [[Npgsq |http://pgfoundry.org/projects/npgsql]] ("a .Net data provider for Postgresql. It allows any program developed for .Net framework to access database server. It is implemented in 100% C# code. Works with Postgresql 7.x and 8.x.")
<<<
''Entrada de consola:''
{{{
export CVSROOT=:pserver:anonymous@cvs.pgfoundry.org:/cvsroot/npgsql
cvs login
}}}
''Salida'':
{{{
Logging in to :pserver:anonymous@cvs.pgfoundry.org:2401/cvsroot/npgsql
CVS password:(Para entrada anónima sólo tecleamos enter)
}}}
Luego tecleamos
{{{
cvs -z5 co npgsql
}}}
La salida será algo como:
{{{
cvs checkout: Updating npgsql
cvs checkout: Updating npgsql/CVS.adm
U npgsql/CVS.adm/MstData.stp
U npgsql/CVS.adm/UsgData.stp
U npgsql/CVS.adm/prjprm.stp
}}}
<<<
Morphic es un sistema de Interfaces para Squeak.
* [[Interfaces en Squeak| http://www.squeaksource.com/SampleImageViewer.html]] código muy documentando sobre cómo construirlas usando Morphic.
* [[The Morphic chapter by John Maloney| http://stephane.ducasse.free.fr/FreeBooks/CollectiveNBlueBook/morphic.final.pdf]]
* An Introduction to Morphic: The Squeak User Interface Framework - John Maloney (criterios para el motor de búsqueda favorito).
* [[ToolBuilder| http://wiki.squeak.org/squeak/5607]] is a simple framework to achieve cross-UI-framework (MVC, Morphic, Tweak) support for a limited number of widgets which are critical for various Squeak tools, including (but not limited to) Browser, Debugger, ~ChangeSorter, ~SqueakMap, Monticello and more. It also includes the ~UIManager library.
* [[BobsUI 3.0| http://wiki.squeak.org/squeak/2914]] is one of Squeak's user interface development packages. It offers a more traditional set of widgets and window design methods found in other dialects of Smalltalk and other programming languages. It is both a development environment and runtime widgets. ~BobsUI is based on Morphic, and runs on a Morphic desktop, alongside regular morphs. However, ~BobsUI has its own set of morphs. Ordinary morphs cannot be displayed on a ~BobsUI window, and ~BobsUI widget morphs do not run outside of a ~BobsUI window.
* [[Maui| http://wiki.squeak.org/squeak/3836]]
* [[Pluggable Morphs Demo| http://wiki.squeak.org/squeak/2962]]
* [[Learning Morphic| http://lists.squeakfoundation.org/pipermail/beginners/2008-October/005456.html]] En la lista de Squeak Beginners, con alusiones a ~SqueakGTK y ~WxSqueak
!! Otras interfaces relacionadas con Squeak
* [[SeasideXUL| http://code.google.com/p/seasidexul/]]
* [[Project Zurge| http://wiki.squeak.org/squeak/2286]]: Para adaptar el //look & feel// de Squeak
Name: MptwBlack
Background: #000
Foreground: #fff
PrimaryPale: #333
PrimaryLight: #555
PrimaryMid: #888
PrimaryDark: #aaa
SecondaryPale: #111
SecondaryLight: #222
SecondaryMid: #555
SecondaryDark: #888
TertiaryPale: #222
TertiaryLight: #666
TertiaryMid: #888
TertiaryDark: #aaa
Error: #300

This is in progress. Help appreciated.
Name: MptwBlue
Background: #fff
Foreground: #000
PrimaryPale: #cdf
PrimaryLight: #57c
PrimaryMid: #114
PrimaryDark: #012
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/***
|Name:|MptwConfigPlugin|
|Description:|Miscellaneous tweaks used by MPTW|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
!!Note: instead of editing this you should put overrides in MptwUserConfigPlugin
***/
//{{{
var originalReadOnly = readOnly;
var originalShowBackstage = showBackstage;

config.options.chkHttpReadOnly = false;                 // means web visitors can experiment with your site by clicking edit
readOnly = false;                                                               // needed because the above doesn't work any more post 2.1 (??)
showBackstage = true;                                                   // show backstage for same reason

config.options.chkInsertTabs = true;                    // tab inserts a tab when editing a tiddler
config.views.wikified.defaultText = "";                 // don't need message when a tiddler doesn't exist
config.views.editor.defaultText = "";                   // don't need message when creating a new tiddler 

config.options.chkSaveBackups = true;                   // do save backups
config.options.txtBackupFolder = 'twbackup';    // put backups in a backups folder

config.options.chkAutoSave = (window.location.protocol == "file:"); // do autosave if we're in local file

config.mptwVersion = "2.5.1";

config.macros.mptwVersion={handler:function(place){wikify(config.mptwVersion,place);}};

if (config.options.txtTheme == '')
        config.options.txtTheme = 'MptwTheme';

// add to default GettingStarted
config.shadowTiddlers.GettingStarted += "\n\nSee also [[MPTW]].";

// add select theme and palette controls in default OptionsPanel
config.shadowTiddlers.OptionsPanel = config.shadowTiddlers.OptionsPanel.replace(/(\n\-\-\-\-\nAlso see AdvancedOptions)/, "{{select{<<selectTheme>>\n<<selectPalette>>}}}$1");

// these are used by ViewTemplate
config.mptwDateFormat = 'DD/MM/YY';
config.mptwJournalFormat = 'Journal DD/MM/YY';

//}}}
Name: MptwGreen
Background: #fff
Foreground: #000
PrimaryPale: #9b9
PrimaryLight: #385
PrimaryMid: #031
PrimaryDark: #020
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
Name: MptwRed
Background: #fff
Foreground: #000
PrimaryPale: #eaa
PrimaryLight: #c55
PrimaryMid: #711
PrimaryDark: #500
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
|Name|MptwRounded|
|Description|Mptw Theme with some rounded corners (Firefox only)|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
|PageTemplate|MptwTheme##PageTemplate|
|StyleSheet|##StyleSheet|

!StyleSheet
/*{{{*/

[[MptwTheme##StyleSheet]]

.tiddler,
.sliderPanel,
.button,
.tiddlyLink,
.tabContents
{ -moz-border-radius: 1em; }

.tab {
        -moz-border-radius-topleft: 0.5em;
        -moz-border-radius-topright: 0.5em;
}
#topMenu {
        -moz-border-radius-bottomleft: 2em;
        -moz-border-radius-bottomright: 2em;
}

/*}}}*/
Name: MptwSmoke
Background: #fff
Foreground: #000
PrimaryPale: #aaa
PrimaryLight: #777
PrimaryMid: #111
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
|Name|MptwStandard|
|Description|Mptw Theme with the default TiddlyWiki PageLayout and Styles|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
Name: MptwTeal
Background: #fff
Foreground: #000
PrimaryPale: #B5D1DF
PrimaryLight: #618FA9
PrimaryMid: #1a3844
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #f8f8f8
TertiaryLight: #bbb
TertiaryMid: #999
TertiaryDark: #888
Error: #f88
|Name|MptwTheme|
|Description|Mptw Theme including custom PageLayout|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|StyleSheet|##StyleSheet|

http://mptw.tiddlyspot.com/#MptwTheme ($Rev: 1829 $)

!PageTemplate
<!--{{{-->
<div class='header' 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>
        <div class='headerForeground'>
                <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
                <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
        </div>
</div>
<!-- horizontal MainMenu -->
<div id='topMenu' refresh='content' tiddler='MainMenu'></div>
<!-- original MainMenu menu -->
<!-- <div id='mainMenu' refresh='content' tiddler='MainMenu'></div> -->
<div id='sidebar'>
        <div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
        <div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
        <div id='messageArea'></div>
        <div id='tiddlerDisplay'></div>
</div>
<!--}}}-->

!ViewTemplate
<!--{{{-->
[[MptwTheme##ViewTemplateToolbar]]

<div class="tagglyTagged" macro="tags"></div>

<div class='titleContainer'>
        <span class='title' macro='view title'></span>
        <span macro="miniTag"></span>
</div>

<div class='subtitle'>
        (updated <span macro='view modified date {{config.mptwDateFormat?config.mptwDateFormat:"MM/0DD/YY"}}'></span>
        by <span macro='view modifier link'></span>)
        <!--
        (<span macro='message views.wikified.createdPrompt'></span>
        <span macro='view created date {{config.mptwDateFormat?config.mptwDateFormat:"MM/0DD/YY"}}'></span>)
        -->
</div>

<div macro="showWhen tiddler.tags.containsAny(['css','html','pre','systemConfig']) && !tiddler.text.match('{{'+'{')">
        <div class='viewer'><pre macro='view text'></pre></div>
</div>
<div macro="else">
        <div class='viewer' macro='view text wikified'></div>
</div>

<div class="tagglyTagging" macro="tagglyTagging"></div>

<!--}}}-->

!ViewTemplateToolbar
<!--{{{-->
<div class='toolbar'>
        <span macro="showWhenTagged systemConfig">
                <span macro="toggleTag systemConfigDisable . '[[disable|systemConfigDisable]]'"></span>
        </span>
        <span macro="showWhenTagged systemTheme"><span macro="applyTheme"></span></span>
        <span macro="showWhenTagged systemPalette"><span macro="applyPalette"></span></span>
        <span macro="showWhen tiddler.tags.contains('css') || tiddler.title == 'StyleSheet'"><span macro="refreshAll"></span></span>
        <span style="padding:1em;"></span>
        <span macro='toolbar closeTiddler closeOthers +editTiddler deleteTiddler > fields syncing permalink references jump'></span> <span macro='newHere label:"new here"'></span>
        <span macro='newJournalHere {{config.mptwJournalFormat?config.mptwJournalFormat:"MM/0DD/YY"}}'></span>
</div>
<!--}}}-->

!EditTemplate
<!--{{{-->
<div class="toolbar" macro="toolbar +saveTiddler saveCloseTiddler closeOthers -cancelTiddler cancelCloseTiddler deleteTiddler"></div>
<div class="title" macro="view title"></div>
<div class="editLabel">Title</div><div class="editor" macro="edit title"></div>
<div macro='annotations'></div>
<div class="editLabel">Content</div><div class="editor" macro="edit text"></div>
<div class="editLabel">Tags</div><div class="editor" macro="edit tags"></div>
<div class="editorFooter"><span macro="message views.editor.tagPrompt"></span><span macro="tagChooser"></span></div>
<!--}}}-->

!StyleSheet
/*{{{*/

/* a contrasting background so I can see where one tiddler ends and the other begins */
body {
        background: [[ColorPalette::TertiaryLight]];
}

/* sexy colours and font for the header */
.headerForeground {
        color: [[ColorPalette::PrimaryPale]];
}
.headerShadow, .headerShadow a {
        color: [[ColorPalette::PrimaryMid]];
}

/* separate the top menu parts */
.headerForeground, .headerShadow {
        padding: 1em 1em 0;
}

.headerForeground, .headerShadow {
        font-family: 'Trebuchet MS' sans-serif;
        font-weight:bold;
}
.headerForeground .siteSubtitle {
        color: [[ColorPalette::PrimaryLight]];
}
.headerShadow .siteSubtitle {
        color: [[ColorPalette::PrimaryMid]];
}

/* make shadow go and down right instead of up and left */
.headerShadow {
        left: 1px;
        top: 1px;
}

/* prefer monospace for editing */
.editor textarea, .editor input {
        font-family: 'Consolas' monospace;
        background-color:[[ColorPalette::TertiaryPale]];
}


/* sexy tiddler titles */
.title {
        font-size: 250%;
        color: [[ColorPalette::PrimaryLight]];
        font-family: 'Trebuchet MS' sans-serif;
}

/* more subtle tiddler subtitle */
.subtitle {
        padding:0px;
        margin:0px;
        padding-left:1em;
        font-size: 90%;
        color: [[ColorPalette::TertiaryMid]];
}
.subtitle .tiddlyLink {
        color: [[ColorPalette::TertiaryMid]];
}

/* a little bit of extra whitespace */
.viewer {
        padding-bottom:3px;
}

/* don't want any background color for headings */
h1,h2,h3,h4,h5,h6 {
        background-color: transparent;
        color: [[ColorPalette::Foreground]];
}

/* give tiddlers 3d style border and explicit background */
.tiddler {
        background: [[ColorPalette::Background]];
        border-right: 2px [[ColorPalette::TertiaryMid]] solid;
        border-bottom: 2px [[ColorPalette::TertiaryMid]] solid;
        margin-bottom: 1em;
        padding:1em 2em 2em 1.5em;
}

/* make options slider look nicer */
#sidebarOptions .sliderPanel {
        border:solid 1px [[ColorPalette::PrimaryLight]];
}

/* the borders look wrong with the body background */
#sidebar .button {
        border-style: none;
}

/* this means you can put line breaks in SidebarOptions for readability */
#sidebarOptions br {
        display:none;
}
/* undo the above in OptionsPanel */
#sidebarOptions .sliderPanel br {
        display:inline;
}

/* horizontal main menu stuff */
#displayArea {
        margin: 1em 15.7em 0em 1em; /* use the freed up space */
}
#topMenu br {
        display: none;
}
#topMenu {
        background: [[ColorPalette::PrimaryMid]];
        color:[[ColorPalette::PrimaryPale]];
}
#topMenu {
        padding:2px;
}
#topMenu .button, #topMenu .tiddlyLink, #topMenu a {
        margin-left: 0.5em;
        margin-right: 0.5em;
        padding-left: 3px;
        padding-right: 3px;
        color: [[ColorPalette::PrimaryPale]];
        font-size: 115%;
}
#topMenu .button:hover, #topMenu .tiddlyLink:hover {
        background: [[ColorPalette::PrimaryDark]];
}

/* make 2.2 act like 2.1 with the invisible buttons */
.toolbar {
        visibility:hidden;
}
.selected .toolbar {
        visibility:visible;
}

/* experimental. this is a little borked in IE7 with the button 
 * borders but worth it I think for the extra screen realestate */
.toolbar { float:right; }

/* fix for TaggerPlugin. from sb56637. improved by FND */
.popup li .tagger a {
   display:inline;
}

/* makes theme selector look a little better */
#sidebarOptions .sliderPanel .select .button {
  padding:0.5em;
  display:block;
}
#sidebarOptions .sliderPanel .select br {
        display:none;
}

/* make it print a little cleaner */
@media print {
        #topMenu {
                display: none ! important;
        }
        /* not sure if we need all the importants */
        .tiddler {
                border-style: none ! important;
                margin:0px ! important;
                padding:0px ! important;
                padding-bottom:2em ! important;
        }
        .tagglyTagging .button, .tagglyTagging .hidebutton {
                display: none ! important;
        }
        .headerShadow {
                visibility: hidden ! important;
        }
        .tagglyTagged .quickopentag, .tagged .quickopentag {
                border-style: none ! important;
        }
        .quickopentag a.button, .miniTag {
                display: none ! important;
        }
}

/* get user styles specified in StyleSheet */
[[StyleSheet]]

/*}}}*/
|Name|MptwTrim|
|Description|Mptw Theme with a reduced header to increase useful space|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
|StyleSheet|MptwTheme##StyleSheet|
|PageTemplate|##PageTemplate|

!PageTemplate
<!--{{{-->

<!-- horizontal MainMenu -->
<div id='topMenu' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<span refresh='content' tiddler='SiteTitle' style="padding-left:1em;font-weight:bold;"></span>:
<span refresh='content' tiddler='MainMenu'></span>
</div>
<div id='sidebar'>
        <div id='sidebarOptions'>
                <div refresh='content' tiddler='SideBarOptions'></div>
                <div style="margin-left:0.1em;"
                        macro='slider chkTabSliderPanel SideBarTabs {{"tabs \u00bb"}} "Show Timeline, All, Tags, etc"'></div>
        </div>
</div>
<div id='displayArea'>
        <div id='messageArea'></div>
        <div id='tiddlerDisplay'></div>
</div>
For upgrading. See [[ImportTiddlers]].
URL: http://mptw.tiddlyspot.com/upgrade.html
/***
|Description:|A place to put your config tweaks so they aren't overwritten when you upgrade MPTW|
See http://www.tiddlywiki.org/wiki/Configuration_Options for other options you can set. In some cases where there are clashes with other plugins it might help to rename this to zzMptwUserConfigPlugin so it gets executed last.
***/
//{{{

// example: set your preferred date format
//config.mptwDateFormat = 'MM/0DD/YY';
//config.mptwJournalFormat = 'Journal MM/0DD/YY';

// example: set the theme you want to start with
//config.options.txtTheme = 'MptwRoundTheme';

// example: switch off autosave, switch on backups and set a backup folder
//config.options.chkSaveBackups = true;
//config.options.chkAutoSave = false;
//config.options.txtBackupFolder = 'backups';

// uncomment to disable 'new means new' functionality for the new journal macro
//config.newMeansNewForJournalsToo = false;

//}}}
[[NLnet foundation| http://www.nlnet.nl/]] financially supports organizations and people that contribute to an open information society. It funds software, events, educational activities (and more). The procedure is fast and open to anyone.
* [[NLnet Funding| http://www.nlnet.nl/foundation/can_do.html]]
+   +   +   +   +  
Este es un correo para personas ocupadas. En serio. Si tiene pocos segundos le contaremos una historia, le diremos un refrán, haremos una comparación y le transmitiremos una idea. No tiene que reenviárselo a nadie y no va a pasar nada si rompe la cadena (no es un cadena). Si tiene más tiempo, es un correo con zoom, el mismo que se usa en las cámaras para obtener mayor resolución de imagen y puede hacer zoom hasta donde le parezca.

La historia:
<<<
Una hormiguita macho, es decir un hormiguito, caminaba y caminaba por el exterior de un anillo buscando al amor de su vida. Entre tanto, otra hormiguita... hembra, caminaba y caminaba por el exterior del mismo anillo buscando al amor de su vida. Qué fácil hubiera sido que ambos lo encontraran!!... si tan sólo sólo se hubieran dado cuenta que en ocasiones hay que descarriarse.
<<<
El refrán:
<<<
Abril lluvioso hace a mayo hermoso.
<<<
La comparación (en un rato, pero antes lea esto):

MISIÓN

Satisfacer plenamente a clientes, colaboradores y accionistas a través de la calidad de nuestros productos y servicios, utilizando una línea editorial acorde a los valores institucionales y fortaleciendo nuestra presencia y penetración en el mercado con tecnología de vanguardia, promoción del trabajo en equipo, así como capacitación contínua del personal.

VISIÓN

Ser la empresa líder en América Latina, reconocida a nivel mundial en el ámbito económico, financiero y de negocios.

(ahora sí)
pregúntese: cuál de las tres cosas recuerda menos: la corta historia, el refrán o la misión y visión de alguna compañía (real, pero usadas sólo para el ejemplo)?? ... (una corta pausa dramática)... seguramente, aunque el orden puede cambiar, lo que está de últimas es la misión y la visión de una empresa. Tal vez tan sólo le dio una ojeada rápida y ni siquiera la leyó completa. Lo cual nos lleva a lo siguiente.

La idea:

Estamos "cableados" para entender el mundo en forma de historias. Mucha de la información cotidiana circula así, pero otra, que es bien importante no. Olvidamos los memos urgentes, pero recordamos los chismes, nos aburrimos en las reuniones de seguimiento y socialización de resultados, pero podemos durar horas interesados en una buena charla... Y si pudiéramos usar lo que nos enseñan las historias para transmitir cosas como la misión y visión de una empresa, o hacer una charla o hacer una presentación gerencial?

Ahora amable lector(a) tiene dos opciones:

* Terminar acá su lectura, esperamos que haya disfrutado de una buena corta historia, un refrán y una idea.
* Continuar con los zooms
+   +   +   +   +  
* [[Narratopedia: La novela-video-juego| http://www.elespectador.com/elespectador/Secciones/Detalles.aspx?idNoticia=10072]] (en el periódico El Espectador) Un proyecto para el que estuve haciendo algunos prototipos y capacitaciones ambas cosas basadas en wikis (hoy usaría microwikis + Cobalt y otras arquitecturas federadas).
* [[Juegos de rol|JuegosDeRol]]: otro lugar donde explorar narrativas construidas de forma colectiva.
* [[Grand Text Auto| http://grandtextauto.org/]]: "A group blog about computer narrative, games, poetry, and art."
* [[Narrativa en loop| http://noplotpoint.blogspot.com/2007/04/tango-zbigniew-rybczynski-1982.html]] Gracias a Anita... como siempre :-)
* [[Interconnected| http://interconnected.org/home/]]: "Narrative in new media"
* [[Sophie 2.0 Devs page| http://sophie2.org/trac/]]: "Sophie is software for writing and reading rich media documents in a networked environment. The program emerged from the desire to create an easy-to-use application that would allow users to combine text, images, video, and sound quickly and simply, but with precision and sophistication. Sophie’s users are interested in creating robust, elegant, networked texts without having programming knowledge or training in the use of more complex tools such as Flash. " Originalmente hecho en Squeak, ahora para la versión 2 está migrando a Java.
Narratopedia es un proyecto de narración digital colectiva/colaborativa nacido en Colombia, pero de caracter internacional e interdisciplinario.

Esta es la dirección provisional de la misma:

[[Narratopedia| http://69.164.213.154:8080/narratopedia]]

Con motivo de un video acá están mis respuestas a lo que creo que es y lo que pretendo de mi participación en el mismo:
!! Qué creo que queremos con narratopedia
Explorar y (de)construir la creación narrativa en el medio digital  y los tránsitos que ocurren entre lo individual, lo colectivo y lo colaborativo.
!! Qué busco yo en particular de mi participación:
También quiero explorar cómo ocurren los tránsitos antes mencionados y los lugares de intersección. En particular me interesa cómo se crean artefactos digitales que obedezcan a las //arquitecturas de lo reconfigurable// (entendibles, extensibles y emergentes) y las dinámicas que esto conlleva.  El interés por lo narrativo proviene de un gusto específico, pero no es mi interés principal, sino que éste se da en lo artefactos y dinámicas de la creación digital individual y colectiva.
! Nathive as a touch screen blackboard app ?

Recently I got my wacom touchscreen tablet working in my Lenovo X61 laptop. Since then, I have been using it to give my classes. I use the video beam projector, write on the screen and save them to finally send them to the students through the microblog channel.
I have tested a lot of touchscreen apps to make this. Xournal, Jarnal, Notelab, and they're nice. But none of them has the organic sense of the stroke that I can get with MyPaint. Is really a pleasure to use the ink tool to write things on it or make draws. None of the other tools Journal tools or even gimp brushes compare with it. The problem is that is raster painting tool with no support for selecting regions, cut and paste the content of them and multiple "pages" (canvas). Gimp has support for all of it, but is too complex. So there is something between?

This is the [[post in the nativa microblog list| http://identi.ca/notice/13694469]] where I'm asking about that. Let's see what happen.
Nautilus no me gusta. Su modo de navegación en el cual la opción por omisión es que se abran nuevas ventanas en cada carpeta a la que se le hace click me parece antinatural y también lo es que el click del centro sea la forma para no obtener este incómodo comportamiento. La configuración de otras vistas como la de árbol, que en general tampoco uso, es difícil de obtener. Definitivamente nada como //Rox Filer// si uno quiere un navegador rápido y no sobrecargado y con la mejor navegación por teclado posible.

Sin embargo, nautilus es el único cliente soportado, hasta el momento, por Dropbox (aunque sus creadores alientan otros desarrollos, para otros navegadores de archivos y/o línea de comandos).

Estas son las notas de compilación (pues en [[Elive]] //beta// es inestable).

!!! Enlaces
* 
* [[Redtics en Identi.ca| http://identi.ca/tag/redtics]]
* [[Scratch en Identi.ca| http://identi.ca/tag/scratch]]
* [[Horarios Semestre 1-2009 Javeriana|HorarioJaveriana2009Sem1]]
* [[Netbook runs on AA batteries| http://www.linuxdevices.com/news/NS6621038369.html]]
* [[The Gecko Laptop - Coming soon!| http://www.norhtec.com/products/gecko/index.html]]
* [[Jolicloud a cool new OS for your netbook| http://www.jolicloud.com/tour]]: Con agradables ideas sobre la interface y un sistema operativo social, que por ejemplo muestra que aplicaciones está usando alguien para una tarea particular. 
* [[Browser DBus Bridge| http://sandbox.movial.com/wiki/index.php/Browser_DBus_Bridge]]: "JavaScript D-Bus bindings implementation for web browsers".
!! WebApps
Algunas veces los netbooks por su poder de computo reducido usan aplicaciones en la web, acá hay un listado de las que me han parecido interesantes.
* [[Zoho Writer| http://writer.zoho.com/home?serviceurl=%2Findex.do]]
/***
|Name:|NewHerePlugin|
|Description:|Creates the new here and new journal macros|
|Version:|3.0 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#NewHerePlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.macros, {
        newHere: {
                handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                        wikify("<<newTiddler "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
                }
        },
        newJournalHere: {
                handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                        wikify("<<newJournal "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
                }
        }
});

//}}}
/***
|Name:|NewMeansNewPlugin|
|Description:|If 'New Tiddler' already exists then create 'New Tiddler (1)' and so on|
|Version:|1.1.1 ($Rev: 2263 $)|
|Date:|$Date: 2007-06-13 04:22:32 +1000 (Wed, 13 Jun 2007) $|
|Source:|http://mptw.tiddlyspot.com/empty.html#NewMeansNewPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Note: I think this should be in the core
***/
//{{{

// change this or set config.newMeansNewForJournalsToo it in MptwUuserConfigPlugin
if (config.newMeansNewForJournalsToo == undefined) config.newMeansNewForJournalsToo = true;

String.prototype.getNextFreeName = function() {
       var numberRegExp = / \(([0-9]+)\)$/;
       var match = numberRegExp.exec(this);
       if (match) {
               var num = parseInt(match[1]) + 1;
               return this.replace(numberRegExp," ("+num+")");
       }
       else {
               return this + " (1)";
       }
}

config.macros.newTiddler.checkForUnsaved = function(newName) {
        var r = false;
        story.forEachTiddler(function(title,element) {
                if (title == newName)
                        r = true;
        });
        return r;
}

config.macros.newTiddler.getName = function(newName) {
       while (store.getTiddler(newName) || config.macros.newTiddler.checkForUnsaved(newName))
               newName = newName.getNextFreeName();
       return newName;
}


config.macros.newTiddler.onClickNewTiddler = function()
{
        var title = this.getAttribute("newTitle");
        if(this.getAttribute("isJournal") == "true") {
                title = new Date().formatString(title.trim());
        }

        // ---- these three lines should be the only difference between this and the core onClickNewTiddler
        if (config.newMeansNewForJournalsToo || this.getAttribute("isJournal") != "true")
                title = config.macros.newTiddler.getName(title);

        var params = this.getAttribute("params");
        var tags = params ? params.split("|") : [];
        var focus = this.getAttribute("newFocus");
        var template = this.getAttribute("newTemplate");
        var customFields = this.getAttribute("customFields");
        if(!customFields && !store.isShadowTiddler(title))
                customFields = String.encodeHashMap(config.defaultCustomFields);
        story.displayTiddler(null,title,template,false,null,null);
        var tiddlerElem = story.getTiddler(title);
        if(customFields)
                story.addCustomFields(tiddlerElem,customFields);
        var text = this.getAttribute("newText");
        if(typeof text == "string")
                story.getTiddlerField(title,"text").value = text.format([title]);
        for(var t=0;t<tags.length;t++)
                story.setTiddlerTag(title,tags[t],+1);
        story.focusTiddler(title,focus);
        return false;
};

//}}}
<<<
Newspeak is a new programming language in the tradition of Self and Smalltalk. Newspeak is highly dynamic and reflective  - but designed to support modularity and security. It supports both object-oriented and functional programming.

Like Self, Newspeak is message-based; all names are dynamically bound. However, like Smalltalk, Newspeak uses classes rather than prototypes.
[...]
<<<
[[Página Web de Newspeak| http://newspeaklanguage.org/]]
!! Objects as Software Services
* [[Objects as Software Services Video| http://www.youtube.com/watch?v=_cBGtvjaLM0]]
* [[Objects as Software Services Video Blog post| http://gbracha.blogspot.com/2007/03/sobs.html]]
* [[Objects as Software Services Whitepaper| http://bracha.org/objectsAsSoftwareServices.pdf]]
Notas para el uso de Nikola:

{{{
nikola init --demo blog 
}}}
Un manejador de fondos de pantalla muy liviano, empleado en OpenBox. Este es mi archivo de configuración:
''Archivo:'' {{{~/.config/nitrogen/bg-saved.cfg}}}
{{{
[:0.0]
file=/home/offray/Documentos/Imagenes/Tapices/soccergirl.jpg
mode=0
bgcolor=#000000
}}}
* [[OpenAuth History| http://hueniverse.com/2007/09/explaining-oauth/]]
A falta de una descripción mejor, estos son los términos que me llamaron la atención (espero luego tenerlos mejor integrados a mi red):

* [[OS-Tan | http://en.wikipedia.org/wiki/OS-tan]]: La personificación de un sistema operativo empleando el anime. Se puede usar también para distros de Linux, por ejemplo:
** el [[OS-Tan de ArchLinux | http://juzo-kun.deviantart.com/art/Linux-tan-fanart-ArchLinux-28720725]]
<<<
[img[http://th06.deviantart.com/fs9/300W/i/2006/037/6/8/Linux_tan_fanart__ArchLinux_by_juzo_kun.jpg]]
<<<

* [[Mecha Musume | http://en.wikipedia.org/wiki/Mecha_Musume]]: Similar al anterior pero para //hardware// militar.
<<<
[img[http://upload.wikimedia.org/wikipedia/en/thumb/c/cd/Mechamusume.jpg/200px-Mechamusume.jpg]]
<<<
Un entorno gráfico minimalista para entornos Unix. Bajo esta categoría están algunos de los archivos de configuración:
'''Archivo:''' {{{~/.config/ob-autostart/config}}}
{{{
# OB_Autostart config
LAUNCH_LIST = [ 
	 ("Nitrogen Background wallpaper","nitrogen --restore ","0","*"),
	 ("Wicd Network Manager","wicd-client &","0","*"),
	 ("Thunar Filemanager daemon","thunar --daemon ","0","*"),
	 ("Tint2 Panel","tint2","0","*"),
	 ("Conky System Monitor","conky -q","0","*"),
	 ("Volwheel Systray Volume Control","volwheel","0","*"),
	 ("Parcellite Clipboard Manager","parcellite","0","*"),
	 ("XFCE Power Manager","xfce4-power-manager","0","*"),
         ("App Launcher for OpenBox","adeskbar","0","*"),
	 ]
}}}
* [[Sitio Web de  OpenID|http://openid.net]]
* [[Chi.mp| http://chi.mp/]]: Uno de los proveedores de OpenID que más fácilmente hace aplicable el concepto. Mi actual proveedor de hecho.
** [[Chimp FAQ| http://chi.mp/chimp_faq]]
* http://offray.mp : Mi sitio de OpenID
Open Microblogger (OMB) es una plataforma de microblogging similar a identica, pero más fácil de instalar. Para agosto de 2009 el sitio .org y .com de esta plataforma estaban usualmente caídos.
* [[OpenMicroBlogger Shows Steady Growth in First Month| http://www.louisgray.com/live/2008/09/openmicroblogger-shows-steady-growth-in.html?dsq=15305554#comment-15305554]]
* [[OpenMicroblogger Monetizes With Introduction of OpenAppStore| http://www.louisgray.com/live/2008/10/openmicroblogger-monetizes-with.html]]: A través de un sistema de plugins se pueden colocar pequeñas aplicaciones que enriquezcan la experiencia y éstas pueden ser libres o cobradas a través de un sistema de micropagos. De este modo los sistemas de //microblogging// podrían contar con un ecosistema de extensiones tipo Firefox. Se me ocurre que el sistema de micropagos no debería ser por la instalación de la aplicación, sino basados en las métricas de uso o un sistema que haga que terceros sean los que paguen (no el desarrollador, ni el consumidor), sin caer en el esquema de publicidad.
* [[OMB Installation| http://wiki.github.com/voitto/openmicroblogger/installation]]
~OpenStep es la tecnología que inspiró [[Cappuccino]] y otros desarrollos.
* [[GnuStep| http://www.gnustep.org/]]:
<<<
~GNUstep is a free, object-oriented, cross-platform development environment that strives for simplicity and elegance. ~GNUstep is based on and completely compatible with the OpenStep specification developed by ~NeXT (now Apple Computer Inc.) as well as implementing the extensions added by Apple in the form of Cocoa.
~GNUstep is...
...an object-oriented tool development kit
...and a graphical development kit
...and a cross platform development environment
<<<
* [[Introducción a la cartografía con OpenStreetMap (OSM) | http://fredyrivera.blogspot.com/2008/08/hacklab-0-osm-introduccin-la-cartografa.html]]
* Campus Party Colombia, Internacional, Bogotá, Colombia, (23 - 29, Octubre). Profesores PUJ: Carlos Torres, Carlos Parra, Carlos Estevez-Bretón, Offray Luna.
* [[A Mathematical Coloring Book | http://www.lulu.com/content/4858716]]: Hecho con Sage... el mismo software que estamos usando con mis estudiantes de pregrado.

* Una mariposa:
[img[http://sage.math.washington.edu/home/wdj/art/butterfly2d.png]]
{{{
"""
Draws Loretz butterfly using matplotlib (2d) or jmol (3d).
Written by Matthew Miller and William Stein.

"""

def butterfly2d():
    """"
    EXAMPLE:
        sage: butterfly2d()
    """    
    g = Graphics()
    x1, y1 = 0, 0
    from math import sin, cos, exp, pi
    for theta in srange( 0, 10*pi, 0.01 ):
        r = exp(cos(theta)) - 2*cos(4*theta) + sin(theta/12)^5
        x = r * cos(theta)  # Convert polar to rectangular coordinates
        y = r * sin(theta)
        xx = x*6 + 25       # Scale factors to enlarge and center the curve.
        yy = y*6 + 25
        if theta != 0: 
            l = line( [(x1, y1), (xx, yy)], rgbcolor=hue(theta/7 + 4) )
            g = g + l
            x1, y1 = xx, yy
    g.show(dpi=100, axes=False)

def butterfly3d():
    """"
    EXAMPLE:
        sage: butterfly3d()
    """    
    g = point3d((0,0,0))
    x1, y1 = 0, 0
    from math import sin, cos, exp, pi
    for theta in srange( 0, 10*pi, 0.05):
        r = exp(cos(theta)) - 2*cos(4*theta) + sin(theta/12)^5
        x = r * cos(theta)  # Convert polar to rectangular coordinates
        y = r * sin(theta)
        xx = x*6 + 25       # Scale factors to enlarge and center the curve.
        yy = y*6 + 25
        if theta != 0:
            l = line3d( [(x1, y1, theta), (xx, yy, theta)],
            rgbcolor=hue(theta/7 + 4) )
            g = g + l
            x1, y1 = xx, yy
    g.show(dpi=100, axes=False)
}}}
!! Actualizar los repositorios de paquetes:
* Se edita el archivo {{{/etc/pacman.d/mirrorlist}}} descomentando las líneas de los repositorios que deseamos agregar (están clasificados por países y continentes). Y luego hacemos:
<<<
''Consola superusuario:''
{{{
pacman -Sy
}}}
<<<
: que quiere decir, sincronizar y refrescar con los repositoiros.
* Para listar todos los archivos instalados por un paquete hacemos:
<<<
''Consola:''
{{{
pacman -Ql <nombreDelPaquete>
}}}
<<<
!! Enlaces relacionados
* [[Using Pacman| http://archux.com/page/using-pacman]]
* [[Archlinux tools: Pacman| http://polishlinux.org/linux/arch/archlinux-tools-pacman/]] en //polishlinux//.
* [[Powerpill| http://xyne.archlinux.ca/info/powerpill]]: "A wrapper for pacman that speeds up package retrieval by using aria2c for concurrent/segmented downloads."
* [[Pacman Home Page|http://www.archlinux.org/pacman/]]
!! Trivia
* [[Pacman Ghostbuster image| http://cache.gawker.com/assets/images/gizmodo/2009/03/pacghosttnew_01.jpg]]
!! Ideas
* Sería chévere ponerle pacman a una distribución basada en Puppy Linux.
; ensnared
: entrampado
; fumble
: torpeza
; thorny
: espinozo, peliagudo
; turmoil
: agitación
; PWS
: Pluggable Web Server (Squeak)
; Commanche
: A high performance web server (Squeak) (Similar a Cherokee? pero requiere de todo Squeak. Se podría por el lado de Spoon + Comanche, lograr minimalismo similar?)
<<slideShow noClicks>> - A simple slide show that keeps the TW style 
<<slideShow style:'MySSStyleSheet' clock:'+'>> - A themed slide show with a clock showing the presentation elapsed time (style sheet: MySSStyleSheet)
<<slideShow repeat clock:'-20'>> - A looping slide show with a 20 minutes countdown clock
<<slideShow slidePause:1000>> - A timed slideshow that runs once
<<slideShow slidePause:1000 repeat>> - A timed looping slideshow
-s-
! Esta charla en breve ...
* Una pequeña disgresión sobre las presentaciones a lo //Power Point// (//[[Bullet points make us stupid|BulletPointsMakeUsStupid]]//, espero que el hipertexto lo remedie)
* [[Quien Soy??|SobreMi]]
* Una intención: {{Overlay1{Balance entre la teoría y la práctica desde la experiencia aprendiendo-enseñando}}}
* [[Contenidos|PanelUMBContenidos]]

-s-
!Como empezó el asunto?
{{Overlay1{Con una pregunta...}}} 
* {{Overlay2{Cual fué el tema del que más aprendí durante la Universidad?}}} 

** Pista: {{Overlay3{No fue sobre algo visto en ninguna asignatura}}}

*** Respuesta: {{Overlay4{Era sobre [[Software Libre|SoftwareLibre]]}}}
-s-
!Por qué sabía más de software libre que de cualquier otra materia?
* {{Overlay1{Estaba vinculado a mis pasiones y gustos}}}
* {{Overlay2{Me permitía construir interacciones más duraderas con otras personas y temas}}}
* {{Overlay3{Me permitía incluso reinterpretar lo que hacía en la universidad como estudiante}}}
<<<
<html>
<ol>
<li class="Overlay4">Con qué herramientas aprendía</li>
<li class="Overlay5">Los <i>ethos</i> de esas herramientas</li>
<li class="Overlay6">Cómo circulaban los valores a través de las herramientas y las interacciones</li>
</ol>
</html>
<<<
-s-
!La "transferencia":...
{{Overlay1{Se pueden usar dinámicas similares a las //comunidades// de software libre en el aula}}}?

-s-
!!Wikis
* Def: {{Overlay1{Un sistema de escritura rápida de hipertexto}}}
* {{Overlay2{Wiki quiere decir rápido en Hawaiano}}}
* {{Overlay3{También pueden tener otras características:}}}
<<<
<html>
<ol>
<li class="Overlay4">Colaborarivos</li>
<li class="Overlay5">Con historia</li>
</ol>
</html>
<<<
* {{Overlay6{Wikipedia es un ejemplo famoso (pero no el único, ni el definitorio)}}}
* {{Overlay7{lo clave es que muestra cómo aumenta el aporte cuando se baja la barrera de ingreso: del código a los contenidos}}}

-s-
!! Ejemplos de Wikis en el Aula
* [[Niko Juan| http://es.wikibooks.org/wiki/Usuario:NIKO_JUAN]]
* [[Lo clave es la historia|http://es.wikibooks.org/w/index.php?title=Usuario%3ANIKO_JUAN&diff=107029&oldid=10580]]
{{Overlay1{tres años después otras personas lo siguen cuidando (y no son el autor)!!}}}
{{Overlay2{Aunque no todo es un lecho de rosas: [[Discusión Pensamiento Algorítmico| http://es.wikibooks.org/wiki/Discusi%C3%B3n:Pensamiento_Algor%C3%ADtmico:Solucionario]]}}}

-s-
!Eduwiki: Aceptando la "invitación" a armar mi propio Wiki
* Pero no en Wikispaces, ni Wikia... (Qué son?)
* {{Overlay1{[[Quiero que mis datos sean portables|DataPortability]]}}}
* {{Overlay2{[[Quiero poder cambiar la herramienta que me cambia (decidir sobre mi destino)}}}
* {{Overlay3{Aunque fue en el orden inverso...}}}
* {{Overlay4{Eduwiki funcionó por un tiempo... peeero...}}}
<<<
<html>
<ol>
<li class="Overlay5">La infraestructura era inestable y ajena</li>
<li class="Overlay6">Yo no tenía tiempo! ... mi amigo tampoco :-(</li>
</ol>
</html>
<<<
* {{Overlay7{El proyecto quedó detenido por un tiempo...}}}

-s-
! [[LeMill|http://lemill.net/content/presentations/lemill-tour]]
* {{Overlay1{"Facebook educativo", con las licencias adecuadas, fáciles de aplicar}}}
* {{Overlay2{todo estaba basado en la Web... y qué pasaba con el material heredado del "escritorio"?}}}
-s-
![[Connexions|http://cnx.org]]
* {{Overlay1{Un repositorio de material educativo, con las licencias adecuadas: remix si da los créditos}}}
* {{Overlay2{Basado en Zope (complejo) con repositorios de archivos y filtros de importación, soportando así la herencia del escritorio}}}
* {{Overlay3{(Des)connexions: dónde está el foro, la lista de correo... alguién me escucha?}}}
* {{Overlay4{El //backend// es libre, pero esto no se promueve}}}
-s-
! Un referente teórico
* [[Comunidades de práctica de Wenger|https://dl.getdropbox.com/u/394620/Conferencias/Wikis-Wikipedia/Imagenes/aprendizajeComunidadDePractica.svg]]
-s-
!Una postura política
* {{Overlay1{La tecnología debería generar relaciones empoderadoras y propendientes a la igualdad y la justicia}}}
* {{Overlay2{Ajá...Rosa... pero prefiero la utopía a la distopia}}}
* {{Overlay3{Que arquitectura digital podría soportar la Utopía en lugar de propagar la distopia?}}}
-s-
!Un lugar de estadía para el peregrinaje: Microwikis y microblogs
!! Y un espacio para construir nuevos viajes...
* Un lugar ecléctico: [[Microwikis]] + [[Microblogs]] + [[Freelist| http://www.freelists.org/list/edumatcomp]] + [[Web2py]]
* [[Enfasis En Lo Micro|EnfasisEnLoMicro]]
* {{Overlay1{Lo clave: Entendible, Extendible, Emergente}}}
-s-
! Gracias :)
Offray Vladimir Luna Cárdenas
offray.luna@javeriana.edu.co
offray@riseup.net
http://www.slec.net
-s-
* Cómo empezó el asunto?
* La pregunta posterior y sus intentos de respuesta
** Wikibooks
** Eduwiki
** Connexions
* Un referente teórico
* Una postura política
** Unas herramientas prácticas: Microwikis + Virtual Tangram + Freelist + Dropbox + Web2py (ojalá le demos una experiencia coherente: diversa pero conectada)
!! Eventos Internacionales
!!! 2008
* Campus Party Brasil. 2008. (Febrero 11 - 16). Asistente y colaborador con montaje y logística.
* Campus Party Valencia. 2008. (20 de julio Agosto 3). Asistente.
* Campus Party El Salvador. 2008 (Octubre 28 - Noviembre 3). Asistente. Fui parte de un equipo de trabajo que realizó un estudio cualitativo para el tema de inclusión digital usando técnicas de construcción transversal de saberes.

!!! Años Anteriores
* Offray Vladimir Luna Cárdenas. 2007. Squeak and collective problem solving. Expositor invitado al Squeak Festival por el Columbia Chicago College (U.S.A.). (Agosto). Ponencia
* Offray Vladimir Luna Cárdenas. 2006. Using Squeak in Latin American Universities: A colombian experience. Expositor invitado al Squeak Festival por el Columbia Chicago College (U.S.A.). (Julio) Ponencia
* Offray Vladimir Luna Cárdenas. 2006. V Conferencia Internacional de Unix en UNINET con la charla Una aproximación decostruccionista para construir distribuciones de Linux a la medida. Ponencia

!! Eventos Nacionales

!!! 2008

* Offray Vladimir Luna Cárdenas. 2008. Herramientas de Software Libre para la creación y publicación de contenidos matemáticos interactivos. XIV Semana Tecnológica. Facultad Tecnológica Universidad Distrital Francisco José de Caldas. Bogotá Nomviembre 4.
* Offray Vladimir Luna Cárdenas. 2008. Foro Conciencia Abierta. PANEL DEBATE ¿Cuál es el papel de los generadores de conocimiento en ciencia, tecnología e innovación y en la formación de participación ciudadana?. Panelista por Colombia junto con Tania Arboleda Castrillón, Pontificia Universidad Javeriana, Colombia,  César Torres, Director de Acceso y Desarrollo Territorial del Ministerio de Comunicaciones, José Santiago Arellano, Consejo Nacional de Ciencia y Tecnología, Director Programa Explora, Chile. Moderador: Francisco Huerta Montalvo, Secretario Ejecutivo de la Organización del Convenio Andrés Bello (CAB). Maloka - Bogotá. Octubre 28.
* Offray Vladimir Luna Cárdenas. 2008. VII Semana Linux Universidad Distrital. Bogotá
** Virtual Tangram: Álgebra Computacional y Redes de Aprendices (Sept. 29)
** Cognición social, redes de aprendices y libre cultura (Oct. 2).
* Offray Vladimir Luna Cárdenas. 2008. Software libre: la ignorancia es un derecho, no una obligación. Biblioteca Luis Angel Arango. Bogotá julio 23 de 2008.
* Offray Vladimir Luna Cárdenas. 2008. Introducción al Software Libre Campus Party Bogotá. Junio.
* Offray Vladimir Luna Cárdenas. 2008. Arquitecturas libres y abiertas para m-learning, hardware - software - contenidos: orígenes y perspectivas.
** 2008 Conversatorio Educación Virtual Móvil uso y aplicaciones de dispositivos móviles en educación. Universidad Nacional  Bogotá, (enero). Ponencia
** 2008 Especialización en Diseño Multimedia. Universidad Nacional Bogotá, (febrero). Ponencia
** 2008 Taller I de Técnicas electrónicas sostenibles para la Universidad del Rosario, Universidad del Rosario Bogotá, (marzo). Ponencia
** 2008. Software libre y educación I Seminario de ingeniería. tecnologías de información y comunicación. Universidad Autónoma de Colombia, Bogotá, (13 y 14 de Mayo). Ponencia


!!! Años Anteriores
* Offray Vladimir Luna Cárdenas. 2007. Distopia Digital o historias alternativas de lo que pudo ser la informática en el cotidiano. VI Semana Linux de la Universidad Distrital. Universidad Distrital, Bogotá. (Diciembre). Ponencia
* Offray Vladimir Luna Cárdenas. 2007. Libre Cultura, Nuevas Tecnologías y Educación. Congreso Internacional de Software Libre, Desarrollo Tecnológico y Sector Solidario. Dansocial, Bogotá. (Noviembre). Ponencia
* Offray Vladimir Luna Cárdenas. 2007. Dramabótica: Dramaturgia, robots virtuales, folclore y aprendizaje. Día de Software Libre en la Universidad Católica de Colombia. Bogotá. (Noviembre). Ponencia.
* Offray Vladimir Luna Cárdenas. 2007. Conferencia y Taller de informática semántica Jornadas de Software Libre. Sena Medellín. (Octubre). Ponencia.
* Offray Vladimir Luna Cárdenas. 2007. Resolución colectiva de problemas desde modelos multiagente. Jornadas de Software Libre. Sena Medellín. (Octubre). Ponencia.
* Offray Vladimir Luna Cárdenas. 2007. Libre Cultura, Nuevas Tecnologías y Redes de aprendices. Feria Nacional de Ciencia y la Tecnología: Expociencia y Expotecnología Bogotá (Octubre). Ponencia.
* Offray Vladimir Luna Cárdenas. 2006. Historia y perspectivas de Squeak. Universidad Católica de Colombia. Bogotá. (Noviembre). Ponencia.
* Offray Vladimir Luna Cárdenas. 2006. Squeak: Un ambiente para la producción de contenidos hipermediales interactivos. 
** Facultad de Ciencias y Educación de la Universidad Distrital. Bogotá. (Septiembre)
** Jornadas de Software Libre. Colegio Mayor de Popayan. (Agosto)
** Semana Linux de la Universidad Distrital. Bogotá. (Octubre 3)
* Offray Vladimir Luna Cárdenas. Wikis y Wikipedia: Una extensión del modelo de creación de constructos comunitarios de conocimiento desde el software libre hasta los contenidos. 
** Universidad Javeriana, Bogotá (Febrero de 2006) Ponencia
** Universidad Nacional, Bogotá (Mayo de 2006). Ponencia
** III Semana Linux Universidad Distrital. Bogotá (Octubre 12 de 2004). Ponencia.
* Offray Vladimir Luna Cárdenas. 2006. Una Introducción a las comunidades de software libre y código abierto. Semana de Ingeniería, de la Universidad Santo Tomas de Tunja. (Mayo). Ponencia.
* Offray Vladimir Luna Cárdenas. 2005. Wikis y Wikipedia: Una extensión del modelo de creación de constructos comunitarios de conocimiento desde el software libre hasta los contenidos.  I Festival GNU/Linux de la Universidad Tecnológica de Pereira (26 de Mayo). Ponencia.
* Offray Vladimir Luna Cárdenas. 2005. Morphix, Un enfoque deconstruccionista y modular para crear una distribución educativa de Linux a la medida: El caso de SciLix y Tangram Linux.  I Festival GNU/Linux de la Universidad Tecnológica de Pereira (26 de Mayo). Ponencia.
* Offray Vladimir Luna Cárdenas. 2005. Experiencias educativas usando Software y contenidos Libres . IV Semana Linux Universidad Distrital. Bogotá (Octubre 11). Ponencia.
* Offray Vladimir Luna Cárdenas. 2004. Morphix, Un enfoque deconstruccionista y modular para crear una distribución educativa de Linux a la medida: El caso de SciLix, Freeduc. III Semana Linux Universidad Distrital. Bogotá (Octubre 15). Ponencia.
* Offray Vladimir Luna Cárdenas. 2004. Programación por agentes: De la Inteligencia Artificial a las implementaciones prácticas. III Semana Linux Universidad Distrital. Bogotá (Octubre 13). Ponencia.
* Offray Vladimir Luna Cárdenas. 2004. Los mapas mentales, una mediación educativa para el trabajo con ideas. III Semana Linux Universidad Distrital. Bogotá (Octubre 11). Ponencia.
* Offray Vladimir Luna Cárdenas. 2004. Expositor invitado por la Cámara de Comercio de Cartagena a un evento sobre introducción al software libre para empresarios. (Agosto). Ponencia.
* Offray Vladimir Luna Cárdenas. 2003. Herramientas de libres de álgebra computacional. II Semana Linux Universidad Distrital. Bogotá (Octubre 10). Ponencia.
* Offray Vladimir Luna Cárdenas. 2003. Lenguajes interpretados libres como primeros lenguajes para la enseñanza de la programación. Semana Linux Universidad Distrital. Bogotá (Octubre 10). Ponencia.
* Offray Vladimir Luna Cárdenas. 2003. Software libre y educación superior universitaria: Una experiencia de implementación en Colombia desde el Álgebra Computacional. Segundo Seminario sobre Matemática Educativa en la Escuela Colombiana de Ingeniería Bogotá Ponente.
* Offray Vladimir Luna Cárdenas. 2002. Panel sobre el proyecto de Ley de software libre, en representación de la comunidad Colibri, organizado por la Asociación Colombiana de Informática y la IEEE, Capítulo Colombia. Bogotá.
* Offray Vladimir Luna Cárdenas. 2002. Panel en 1er Congreso Internacional sobre Desarrollo de Software Universidad Distrital. Bogotá.
* Offray Vladimir Luna Cárdenas. 2002. Día Linux en la Universidad Nacional. Bogotá. Ponente.
* Offray Vladimir Luna Cárdenas. 2002. Primer Seminario de Software Libre para Educación en Colombia en la hemeroteca de ICFES. Bogotá. Ponente.
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
        major: 1, minor: 0, revision: 2, 
        date: new Date("Apr 19, 2007"),
        source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
        author: 'BidiX (BidiX (at) bidix (dot) info',
        license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
        coreVersion: '2.2.0 (Beta 5)'
};

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
        'pas': {
                elementType: "input",
                valueField: "value",
                eventName: "onkeyup",
                className: "pasOptionInput",
                typeValue: config.macros.option.passwordInputType,
                create: function(place,type,opt,className,desc) {
                        // password field
                        config.macros.option.genericCreate(place,'pas',opt,className,desc);
                        // checkbox linked with this password "save this password on this computer"
                        config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);                       
                        // text savePasswordCheckboxLabel
                        place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
                },
                onChange: config.macros.option.genericOnChange
        }
});

merge(config.optionHandlers['chk'], {
        get: function(name) {
                // is there an option linked with this chk ?
                var opt = name.substr(3);
                if (config.options[opt]) 
                        saveOptionCookie(opt);
                return config.options[name] ? "true" : "false";
        }
});

merge(config.optionHandlers, {
        'pas': {
                get: function(name) {
                        if (config.options["chk"+name]) {
                                return encodeCookie(config.options[name].toString());
                        } else {
                                return "";
                        }
                },
                set: function(name,value) {config.options[name] = decodeCookie(value);}
        }
});

// need to reload options to load passwordOptions
loadOptionsCookie();

/*
if (!config.options['pasPassword'])
        config.options['pasPassword'] = '';

merge(config.optionsDesc,{
                pasPassword: "Test password"
        });
*/
//}}}
Interesado en temas cognitivos, modelación de sistemas complejos, sistemas //semiformales//, gestión de conocimiento, redes de aprendices y nuevas tecnologías de informática y comunicaciones. Activista de la libre cultura y usuario de software libre desde 1996.  Es magister en educación con énfasis en cognición, creatividad y aprendizaje y tiene un pregrado en Informática Matemática de la Pontificia Universidad Javeriana, donde se desempeñó como docente de pregrado y cursos de extensión y tutor de maestría. Profesor invitado y tutor de tesis de las Universidades Autónoma y de Caldas en las maestría de didáctica de las ciencias y diseño y creación Interactiva. Coordinó la primera edición colombiana de la Campus Party, el encuentro en red más grande del mundo, en las áreas temáticas de software libre, desarrolladores de software e inclusión digital y ha sido consultor empresarial sobre estos temas. Actualmente se encuentra haciendo su doctorado en Diseño y Creación en la Universidad de Caldas y es contratista del Ministerio de Salud para un proyecto de incorporación de TIC al sector salud y otro con la Alcaldía de Bogotá para dinamizar el uso de Tecnologías Libres y Gobierno Abierto.
* [[Samsung P400 DLP Lumen Pocket Ultraportable Projector |http://www.amazon.com/Samsung-P400-Pocket-Ultraportable-Projector/dp/B001CHABHW/ref=pd_sxp_grid_pt_2_0]] (en Amazon)
* [[Toshiba TDP-F10U LED Mobile Projector| http://www.amazon.com/Toshiba-TDP-F10U-LED-Mobile-Projector/dp/B001W9MJ4S/ref=dp_return_2?ie=UTF8&n=172282&s=electronics]]
* [[DERI Pipes: Open Source, Extendable, Embeddable Web Data Mashups| http://pipes.deri.org/]]
<<<
 Inspired by Yahoo's Pipes, DERI Pipes is an engine and graphical environment for general Web Data transformations and Mashup.
* Supports RDF, XML, Microformats, JSON and binary streams.
* Use it as a "Web Pipe" or embedded in your applications
* Works as a mashup command Line tool
* Supports SPARQL, XQUERY, Several scripting languages.
* Extend it as needed
<<<
* [[Test Deri Pipes| http://pipes.deri.org:8080/pipes/]]
* [[Yahoo Pipes| http://blog.pipes.yahoo.net/about-pipes/]]: Desafortunadamente hay que tener una cuenta de Yahoo y los [[términos y condiciones de Yahoo| http://info.yahoo.com/legal/us/yahoo/utos/utos-173.html]] son buenos en unas cosas pero violentos en otras, por ejemplo dicen que es uno hace una sesión de cualquier "propiedad intelectual" a ellos y reconoce que pueden haber estado trabajando en propuestas similares a las que uno cree allí. Yo en particular no creo en la "propiedad sobre las ideas", así que siendo de varios, no veo por qué cederselas de modo exclusivo a ellos.
** [[PipeJax - pure javascript version, Yahoo Pipes to Ajax Bridge| http://comments.deasil.com/2007/02/19/pipejax-pure-javascript-version-%20yahoo-pipes-to-ajax-bridge/]]
** [[Yahoo pipes: mi propio planeta web 2.0| http://robertoallende.com/tecnologia/web/yahoo-pipes-mi-propio-planeta-web-2.0]]
** [[¿Cómo sacarle provecho a Yahoo Pipes?| http://www.maestrosdelweb.com/editorial/%C2%BFcomo-sacarle-provecho-a-yahoo-pipes/]] en Maestros del Web.
* [[Banach| http://simile.mit.edu/wiki/Banach]]; "is a collection of operators that work on RDF graphs to infer, extend, emerge or otherwise transform a graph into another. You can think of it as a transformation pipeline for RDF with a collection of implemented commands."
* [[Early History of the Web Pipes Concept| http://radar.oreilly.com/2007/02/early-history-of-the-web-pipes.html]]
/***
|''Name:''|PlasticCalendarPlugin|
|''Description:''|This plugin creates a custom Gregorian calendar|
|''Version:''|1.3.1|
|''Date:''|Mar 13, 2007|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Documentation:''|[[PlasticCalendarPlugin Documentation|PlasticCalendarPluginDoc]]|
|''Author:''|Paulo Soares|
|''License:''|[[Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.1.0|
***/
{{{
// --------------------------------------------------------------------
// Calendar
// --------------------------------------------------------------------

config.macros.calendar = {holidays: []};
config.macros.calendar.options = {
 // day week starts from (normally 0-Su or 1-Mo)
 calendarWeekStart: 0,
 calendarToday: "Today",
 calendarHoliday: "Holiday: ",
 calendarLongDateFormat: "0DD/0MM/YYYY",
 calendarShortDateFormat: "0DD/0MM",
 calendarTag: ["schedule"]
};

/***************************************************************************
** Internal functions
***************************************************************************/
var cldTag;

config.macros.calendar.calendarIsHoliday = function(date) {
 var cm = config.macros.calendar;
 var longHoliday = date.formatString(cm.options.calendarLongDateFormat);
 var shortHoliday = date.formatString(cm.options.calendarShortDateFormat);
 for(var i = 0; i < cm.holidays.length; i++) {
 if(cm.holidays[i][0] == longHoliday || cm.holidays[i][0] == shortHoliday) {
 return cm.holidays[i];
 }
 }
 return null;
}

config.macros.calendar.onClickOtherDay = function(e) {
 var day = this.getAttribute('tiddlylink');
 story.displayTiddler(null,day,DEFAULT_EDIT_TEMPLATE);
 for(var i=0; i<cldTag.length;i++){
 story.setTiddlerTag(day, cldTag[i], 0);
 }
 story.focusTiddler(day,"text");
}

config.macros.calendar.getPopupText = function(title) {
 var popup_entries = store.getTiddlerText(title).split("\n");
 var popup = popup_entries[0];
 if(popup_entries.length>1) popup += " ...";
 return popup;
}

config.macros.calendar.findCalendar = function(child) {
 var parent;
 while (child && child.parentNode) {
 parent = child.parentNode;
 if (parent.id == "calendarWrapper") {
 return parent;
 }
 child = parent;
 }
 return null;
}

config.macros.calendar.selectDate = function(e) {
 if (!e) var e = window.event;
 var cm = config.macros.calendar;
 var calendar = cm.findCalendar(this);
 if (calendar) {
 var d = this.getAttribute("date");
 if (d != null) cm.makeCalendar(calendar, new Date(new Number(d)));
 }
 e.cancelBubble = true;
 if (e.stopPropagation) e.stopPropagation();
 return false;
}

config.macros.calendar.makeCalendar = function(calendar, dt_current) {
 var cm = config.macros.calendar;
 var currentDay = new Date(new Number(calendar.getAttribute("currentDay")));
 var setControls = calendar.getAttribute("setControls");
 calendar.setAttribute("date", dt_current.valueOf());

 while (calendar.hasChildNodes())
 calendar.removeChild(calendar.firstChild);

if(setControls==1){
 // get same date in the previous year
 var dt_prev_year = new Date(dt_current);
 dt_prev_year.setFullYear(dt_prev_year.getFullYear() - 1);
 if (dt_prev_year.getDate() != dt_current.getDate())
 dt_prev_year.setDate(0);

 // get same date in the next year
 var dt_next_year = new Date(dt_current);
 dt_next_year.setFullYear(dt_next_year.getFullYear() + 1);
 if (dt_next_year.getDate() != dt_current.getDate())
 dt_next_year.setDate(0);

 // get same date in the previous month
 var dt_prev_month = new Date(dt_current);
 dt_prev_month.setMonth(dt_prev_month.getMonth() - 1);
 if (dt_prev_month.getDate() != dt_current.getDate())
 dt_prev_month.setDate(0);

 // get same date in the next month
 var dt_next_month = new Date(dt_current);
 dt_next_month.setMonth(dt_next_month.getMonth() + 1);
 if (dt_next_month.getDate() != dt_current.getDate())
 dt_next_month.setDate(0);
}

 // get first day to display in the grid for current month
 var dt_firstday = new Date(dt_current);
 dt_firstday.setDate(1);
 dt_firstday.setDate(1 - (7 + dt_firstday.getDay() - cm.options.calendarWeekStart) % 7);

 var area, header;
 var line, cell, i;

 // 1 - calendar header table
 // 2 - print weekdays titles
 // 3 - calendar days table 
calendar.cellPadding = 0;
calendar.cellSpacing = 0;
area = createTiddlyElement(calendar, "tbody");

 // 1 - calendar header table
 header = createTiddlyElement(area,"tr", "calendarHeader");
 header.cellPadding = 0;
 header.cellSpacing = 0;

if(setControls==1){ 
var headerValues = [
 [ "<<", "selectYear", dt_prev_year.valueOf() ],
 [ "<", "selectMonth", dt_prev_month.valueOf() ],
 [ config.messages.dates.months[dt_current.getMonth()] + ' ' + dt_current.getFullYear(),
 "selectToday", currentDay.valueOf() ],
 [ ">", "selectMonth", dt_next_month.valueOf() ],
 [ ">>", "selectYear", dt_next_year.valueOf() ]
 ];

 for (i = 0; i < headerValues.length; ++i) {
 var link = createTiddlyElement(header,"td", null, null, headerValues[i][0]);
 if(i==2) link.colSpan=3;
 link.onclick = cm.selectDate;
 link.setAttribute("date", headerValues[i][2]);
 }
} else {
 var link = createTiddlyElement(header,"td", null, null, 
config.messages.dates.months[dt_current.getMonth()] + ' ' + dt_current.getFullYear());
link.colSpan=7;
}

 // 2 - print weekdays titles
 line = createTiddlyElement(area, "tr", "weekNames");
 for (var n = 0; n < 7; ++n) {
 createTiddlyElement(line, "td", null, null, config.messages.dates.shortDays[(cm.options.calendarWeekStart + n)%7]);
 }

 // 3 - calendar days table
 var dt_current_day = new Date(dt_firstday);
 var day_class;
 var title;
 var holiday;
 var popup;
 var clickHandler;

 while (dt_current_day.getMonth() == dt_current.getMonth() ||
 dt_current_day.getMonth() == dt_firstday.getMonth()) {

 // print row header
 line = createTiddlyElement(area, "tr", "calendarLine", null, null);
 for (var n_current_wday = 0; n_current_wday < 7; ++n_current_wday) {
 title = dt_current_day.formatString(cm.options.calendarLongDateFormat);
 clickHandler = cm.onClickOtherDay;
 popup = null;
 holiday = cm.calendarIsHoliday(dt_current_day);

 if (holiday != null) {
 // holidays
 day_class = (holiday.length==3)? holiday[2]: "holiDay";
 popup = cm.options.calendarHoliday + holiday[1];
 } else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6) {
 // weekend days
 day_class = "weekDay";
 } else {
 // print working days of current month
 day_class = "workingDay";
 }

if(dt_current_day.getMonth() == dt_current.getMonth()){
 if (currentDay.valueOf() == dt_current_day.valueOf()) {
 // print current date
 if (store.tiddlerExists(title)){
 // day has a tiddler associated with it
 day_class += " currentscheduledDay";
 clickHandler = onClickTiddlerLink;
 popup = cm.options.calendarToday + ": "+ cm.getPopupText(title);
 } else {
 day_class += " currentDay";
 popup = cm.options.calendarToday;
}
}


 if (store.tiddlerExists(title) && store.getTiddler(title).isTagged(cldTag[0]))  {
 // day has a tiddler associated with it
 day_class += " scheduledDay";
 clickHandler = onClickTiddlerLink;
 popup = cm.getPopupText(title);
 }
}

 // extra formatting for days of previous or next month
 if (dt_current_day.getMonth() != dt_current.getMonth()) {
 day_class += " otherMonthDay";
 }

 var text = dt_current_day.getDate();
 var cell = createTiddlyElement(line, "td", null, day_class, text);
 cell.onclick=clickHandler;
 cell.setAttribute("date", dt_current_day.valueOf());
 cell.setAttribute("tiddlyLink", title);
 if(popup) cell.setAttribute("title", popup);
 dt_current_day.setDate(dt_current_day.getDate()+1);
 }
 }
}

config.macros.calendar.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
 var start_date = new Array();
 var date = new Date();
 var cldParams = paramString.parseParams('calendarParams', null, true);
 var cldYear = (cldParams[0].year)?parseFloat(cldParams[0].year[0]): date.getFullYear();
 var cldMonth = (cldParams[0].month)?parseFloat(cldParams[0].month[0]): date.getMonth();
 var n_months = (cldParams[0].numberMonths)?parseFloat(cldParams[0].numberMonths[0]): 1;
 var n_cols = (cldParams[0].numberColumns)?parseFloat(cldParams[0].numberColumns[0]): 3;
 cldTag = (cldParams[0].tag)?cldParams[0].tag[0].split("#"): config.macros.calendar.options.calendarTag;
 for(var i = 0; i < n_months; i++){
 start_date[i] = new Date(cldYear, cldMonth+i, 1);
 }
 var n_rows = Math.max(1,Math.ceil(n_months/n_cols));
 n_cols = Math.min(n_cols,n_months);
 var setControls=(n_months>1)? 0: 1;
 var currentDay = new Date();
 currentDay = new Date(currentDay.getFullYear(), currentDay.getMonth(), currentDay.getDate());
 var holder = createTiddlyElement(place, "table", null,"calendarHolder");
 var holderTable = createTiddlyElement(holder, "tbody");
 for(var i = 0; i < n_rows; i++){
 var holderLine = createTiddlyElement(holderTable, "tr");
 for(var j = 0; j < n_cols; j++){
 var holderCell = createTiddlyElement(holderLine, "td");
 if(n_cols*i+j+1<=n_months){
 var calendar = createTiddlyElement(holderCell, "table", "calendarWrapper");
 calendar.setAttribute("name", "calendarWrapper");
 calendar.setAttribute("setControls", setControls);
 calendar.setAttribute("currentDay", currentDay.valueOf());
 config.macros.calendar.makeCalendar(calendar, start_date[n_cols*i+j]);
 }
 }
 }
}

function refreshCalendars(hint) {
 var calendars = document.getElementsByName("calendarWrapper");
 var i, c;
 for (i = 0; i < calendars.length; ++i) {
 c = calendars.item(i);
 if (c.id == "calendarWrapper") {
 config.macros.calendar.makeCalendar(c, new Date(new Number(c.getAttribute("date"))));
 }
 }
}

store.addNotification(null, refreshCalendars);

setStylesheet("/***\n!Calendar Styles\n***/\n/*{{{*/\n .viewer .calendarHolder {\n margin-left: auto;\n margin-right: auto;\n border: none;\n}\n\n .viewer .calendarHolder table {\n border: none;\n margin: 0;\n}\n\n .viewer .calendarHolder tr {\n border: none;\n vertical-align: top;\n}\n\n .viewer .calendarHolder td {\n border: none;\n vertical-align: top;\n}\n\n .viewer #calendarWrapper {\n width: 21em;\n border: 2px solid #4682b4;\n cursor: pointer;\n}\n\n #calendarWrapper #calendarLine td {\n height: 2.5em;\n}\n\n #calendarWrapper tr {\n border:none;\n}\n\n #calendarWrapper td {\n text-align: center;\n vertical-align: middle;\n width: 14.28%;\n border:none;\n}\n\n #calendarWrapper #calendarHeader td{\n color: #ffffff;\n background-color: #4682b4;\n height: 2em;\n}\n\n #calendarWrapper #weekNames td {\n color: #ffffff;\n background-color: #87cefa;\n height: 2em;\n}\n\n #calendarWrapper .weekDay {\n background-color: #ccff99;\n}\n\n #calendarWrapper .holiDay {\n background-color: #9acd32;\n}\n\n #calendarWrapper .currentDay {\n border: solid #ff0000 2px;\n font-weight: bold;\n}\n\n #calendarWrapper .currentscheduledDay {\n border: solid #ff0000 2px;\n font-weight: bold;\n}\n\n #calendarWrapper .workingDay {\n background-color: #ffffff;\n}\n\n #calendarWrapper .scheduledDay {\n border: solid orange 2px;\n}\n\n #calendarWrapper .otherMonthDay {\n background-color: #999;\n}\n\n/*}}}*/","CalendarStyles");

config.shadowTiddlers.PlasticCalendarPluginDoc="The documentation is missing. It is available [[here|http://www.math.ist.utl.pt/~psoares/addons.html#PlasticCalendarPluginDoc]].";
}}}
Definitivamente mi hastio con Windows es cada vez mayor, pero debido a que compré un portátil que ya lo traía preinstalado, que necesitaba hacer pruebas de compatibilidad con plataformas privativas heredadas y que aún quedan algunas pocas cosas que no funcionan bien en Linux, decidí mantenerlo en mi máquina. Acá hay unas recomendaciones sobre como minimizar el uso de estas plataformas y todos los problemas que acarrean:

* ''Nunca usar el quemador que trae incluido Vista o sus derivados'': Por omisión, cuando uno entra un CD-R vacio, Vista pregunta que se desea hacer con él y ofrece la posibilidad de quemar archivos. Si uno elije dicha opción, quema inmediatamente una pequeña información el el CD y luego abre una ventana del explorador donde arrastrar los archivos que se desean quemar. Si la imagen del CD está cercana a los 700 megas, como suele pasar con todas las de Ubuntu, por ejemplo, el sistema dirá que necesita 3 megas //aprox.// de información extra en el CD para cerrar el copiado razón por la cual debe escogerse un archivo de otro tamaño o un CD de mayor capacidad!!!. Si uno cancela esta opción de todos modos copia una información en el CD-R, dejándolo inservible para copiar imágenes de Linux de tamaños cercanos a los 700 mb (aunque no sé si la sesión de grabado queda abierta para colocar archivos más pequeños). Hacer el mismo proceso, con la misma imagen y un CD-R del mismo tamño empleando la utilidad de DVD de Toshiba, por ejemplo, no trae ningún inconveniente.
!! Temas
Acá hay algunos enlaces sobre este sistema administrador de contenidos:

* [[Plone Theme Reference| http://plone.org/documentation/manual/theme-reference/referencemanual-all-pages]]
* [[Plone 3 Theming| http://www.packtpub.com/plone-3-theming-create-flexible-powerful-professional-templates/book]]
* [[Addicted Theme| http://plone.org/products/addicted-theme]]
* [[Beyond Skins, Brasil Plone Day Site| http://plone.org/products/beyondskins-ploneday.site]]
* [[Busy City Theme| http://plone.org/products/busy-city-theme]]
* [[Cooking theme| http://plone.org/products/cooking.theme]]: pinta interesante, aunque aún no ha sido liberado y no tiene capturas de pantalla :P
* [[Corporate Male| http://plone.org/products/corporate-man]]:  provides an elastic layout design which encompasses a range of neutral colors suitable for any traditional corporate web site.  This theme also has recalculated the page's vertical flow.
* [[Clean Green| http://plone.org/products/collective.cleangreen]]: theme based on Clean Green Template from http://www.minimalistic-design.net/ tiene un aspecto muy adecuado para un blog o un planet.
* [[Darkness| http://plone.org/products/darkness]]
* [[Easy Lite Plone Theme| http://plone.org/products/estate-lite-plone-theme]]: Interesante disposición de las dos barras de navegación y la de herramientas.
* [[Freeport| http://plone.org/products/cereblue-plone-skins-freeport]]: Elegante, minimalista. Gris. La compañía que lo hace, cereblue, tiene un servicio de [[venta de temas para plone| https://secured.cereblue.net/shop/index.php?main_page=themes]]
* [[Hamnavoe| http://plone.org/products/hamnavoe]]
* [[Lazy Days| http://plone.org/products/lazy-days-theme]]
* [[Nautica| http://plone.org/products/plonetheme-nautica05]]
* [[Net sight intranet| http://plone.org/products/plonetheme.netsightintranet]]: This theme is a clean, simple theme for use on intranets in Plone. It is intended to be a modern replacement for the default skin, and a basis for further customisation. Edit toolbar is hidden by default, slides into view when clicked.
* [[NonZero| http://plone.org/products/nonzero]]
* [[NuPlone| http://plone.org/products/nuplone]]: Chévere que la captura de pantalla incluye el modo de edición.
* [[Overlapped Tabs| http://plone.org/products/plonetheme.overlappedtabs]]
* [[Red Innovation Skin| http://plone.org/products/red-innovation]]: Rounded corner, drop shadow and big header image layout for Plone.
* [[Scratchbook| http://plone.org/products/scratchbook]]: Muy chévere para una escuela o colegio.
* [[Spreadplone| http://plone.org/products/spreadplone]]: Chévere la disposición de la barra de navegación. Basado en Spread Firefox.
* [[Solemnity| http://plone.org/products/plonetheme-solemnity]]
* [[Three trees| http://plone.org/products/three-trees]]: Chévere la barra superior.
* [[Underworld| http://plone.org/products/underworld]]
* [[Wilkin| http://plone.org/products/wilkin]]: Muy sencillo. Chévere la nube de etiquetas en la izquierda, abajo.

!! Algunos sitios hechos en Plone:
* [[Nasa Science| http://nasascience.nasa.gov/]]
/***
|Name|Plugin: jsMath|
|Created by|BobMcElrath|
|Email|my first name at my last name dot org|
|Location|http://bob.mcelrath.org/tiddlyjsmath.html|
|Version|1.5.1|
|Requires|[[TiddlyWiki|http://www.tiddlywiki.com]] &ge; 2.0.3, [[jsMath|http://www.math.union.edu/~dpvc/jsMath/]] &ge; 3.0|
!Description
LaTeX is the world standard for specifying, typesetting, and communicating mathematics among scientists, engineers, and mathematicians.  For more information about LaTeX itself, visit the [[LaTeX Project|http://www.latex-project.org/]].  This plugin typesets math using [[jsMath|http://www.math.union.edu/~dpvc/jsMath/]], which is an implementation of the TeX math rules and typesetting in javascript, for your browser.  Notice the small button in the lower right corner which opens its control panel.
!Installation
In addition to this plugin, you must also [[install jsMath|http://www.math.union.edu/~dpvc/jsMath/download/jsMath.html]] on the same server as your TiddlyWiki html file.  If you're using TiddlyWiki without a web server, then the jsMath directory must be placed in the same location as the TiddlyWiki html file.

I also recommend modifying your StyleSheet use serif fonts that are slightly larger than normal, so that the math matches surrounding text, and \\small fonts are not unreadable (as in exponents and subscripts).
{{{
.viewer {
  line-height: 125%;
  font-family: serif;
  font-size: 12pt;
}
}}}

If you had used a previous version of [[Plugin: jsMath]], it is no longer necessary to edit the main tiddlywiki.html file to add the jsMath <script> tag.  [[Plugin: jsMath]] now uses ajax to load jsMath.
!History
* 11-Nov-05, version 1.0, Initial release
* 22-Jan-06, version 1.1, updated for ~TW2.0, tested with jsMath 3.1, editing tiddlywiki.html by hand is no longer necessary.
* 24-Jan-06, version 1.2, fixes for Safari, Konqueror
* 27-Jan-06, version 1.3, improved error handling, detect if ajax was already defined (used by ZiddlyWiki)
* 12-Jul-06, version 1.4, fixed problem with not finding image fonts
* 26-Feb-07, version 1.5, fixed problem with Mozilla "unterminated character class".
* 27-Feb-07, version 1.5.1, Runs compatibly with TW 2.1.0+, by Bram Chen
!Examples
|!Source|!Output|h
|{{{The variable $x$ is real.}}}|The variable $x$ is real.|
|{{{The variable \(y\) is complex.}}}|The variable \(y\) is complex.|
|{{{This \[\int_a^b x = \frac{1}{2}(b^2-a^2)\] is an easy integral.}}}|This \[\int_a^b x = \frac{1}{2}(b^2-a^2)\] is an easy integral.|
|{{{This $$\int_a^b \sin x = -(\cos b - \cos a)$$ is another easy integral.}}}|This $$\int_a^b \sin x = -(\cos b - \cos a)$$ is another easy integral.|
|{{{Block formatted equations may also use the 'equation' environment \begin{equation}  \int \tan x = -\ln \cos x \end{equation} }}}|Block formatted equations may also use the 'equation' environment \begin{equation}  \int \tan x = -\ln \cos x \end{equation}|
|{{{Equation arrays are also supported \begin{eqnarray} a &=& b \\ c &=& d \end{eqnarray} }}}|Equation arrays are also supported \begin{eqnarray} a &=& b \\ c &=& d \end{eqnarray} |
|{{{I spent \$7.38 on lunch.}}}|I spent \$7.38 on lunch.|
|{{{I had to insert a backslash (\\) into my document}}}|I had to insert a backslash (\\) into my document|
!Code
***/
//{{{

// AJAX code adapted from http://timmorgan.org/mini
// This is already loaded by ziddlywiki...
if(typeof(window["ajax"]) == "undefined") {
  ajax = {
      x: function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}},
      gets: function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText}
  }
}

// Load jsMath
jsMath = {
  Setup: {inited: 1},          // don't run jsMath.Setup.Body() yet
  Autoload: {root: new String(document.location).replace(/[^\/]*$/,'jsMath/')}  // URL to jsMath directory, change if necessary
};
var jsMathstr;
try {
  jsMathstr = ajax.gets(jsMath.Autoload.root+"jsMath.js");
} catch(e) {
  alert("jsMath was not found: you must place the 'jsMath' directory in the same place as this file.  "
       +"The error was:\n"+e.name+": "+e.message);
  throw(e);  // abort eval
}
try {
  window.eval(jsMathstr);
} catch(e) {
  alert("jsMath failed to load.  The error was:\n"+e.name + ": " + e.message + " on line " + e.lineNumber);
}
jsMath.Setup.inited=0;  //  allow jsMath.Setup.Body() to run again

// Define wikifers for latex
config.formatterHelpers.mathFormatHelper = function(w) {
    var e = document.createElement(this.element);
    e.className = this.className;
    var endRegExp = new RegExp(this.terminator, "mg");
    endRegExp.lastIndex = w.matchStart+w.matchLength;
    var matched = endRegExp.exec(w.source);
    if(matched) {
        var txt = w.source.substr(w.matchStart+w.matchLength, 
            matched.index-w.matchStart-w.matchLength);
        if(this.keepdelim) {
          txt = w.source.substr(w.matchStart, matched.index+matched[0].length-w.matchStart);
        }
        e.appendChild(document.createTextNode(txt));
        w.output.appendChild(e);
        w.nextMatch = endRegExp.lastIndex;
    }
}

config.formatters.push({
  name: "displayMath1",
  match: "\\\$\\\$",
  terminator: "\\\$\\\$\\n?", // 2.0 compatability
  termRegExp: "\\\$\\\$\\n?",
  element: "div",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

config.formatters.push({
  name: "inlineMath1",
  match: "\\\$", 
  terminator: "\\\$", // 2.0 compatability
  termRegExp: "\\\$",
  element: "span",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

var backslashformatters = new Array(0);

backslashformatters.push({
  name: "inlineMath2",
  match: "\\\\\\\(",
  terminator: "\\\\\\\)", // 2.0 compatability
  termRegExp: "\\\\\\\)",
  element: "span",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

backslashformatters.push({
  name: "displayMath2",
  match: "\\\\\\\[",
  terminator: "\\\\\\\]\\n?", // 2.0 compatability
  termRegExp: "\\\\\\\]\\n?",
  element: "div",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

backslashformatters.push({
  name: "displayMath3",
  match: "\\\\begin\\{equation\\}",
  terminator: "\\\\end\\{equation\\}\\n?", // 2.0 compatability
  termRegExp: "\\\\end\\{equation\\}\\n?",
  element: "div",
  className: "math",
  handler: config.formatterHelpers.mathFormatHelper
});

// These can be nested.  e.g. \begin{equation} \begin{array}{ccc} \begin{array}{ccc} ...
backslashformatters.push({
  name: "displayMath4",
  match: "\\\\begin\\{eqnarray\\}",
  terminator: "\\\\end\\{eqnarray\\}\\n?", // 2.0 compatability
  termRegExp: "\\\\end\\{eqnarray\\}\\n?",
  element: "div",
  className: "math",
  keepdelim: true,
  handler: config.formatterHelpers.mathFormatHelper
});

// The escape must come between backslash formatters and regular ones.
// So any latex-like \commands must be added to the beginning of
// backslashformatters here.
backslashformatters.push({
    name: "escape",
    match: "\\\\.",
    handler: function(w) {
        w.output.appendChild(document.createTextNode(w.source.substr(w.matchStart+1,1)));
        w.nextMatch = w.matchStart+2;
    }
});

config.formatters=backslashformatters.concat(config.formatters);

window.wikify = function(source,output,highlightRegExp,tiddler)
{
    if(source && source != "") {
        if(version.major == 2 && version.minor > 0) {
            var wikifier = new Wikifier(source,getParser(tiddler),highlightRegExp,tiddler);
            wikifier.subWikifyUnterm(output);
        } else {
            var wikifier = new Wikifier(source,formatter,highlightRegExp,tiddler);
            wikifier.subWikify(output,null);
        }
        jsMath.ProcessBeforeShowing();
    }
}
//}}}
/***
|Name|TagCloudPlugin|
|Source|http://www.TiddlyTools.com/#TagCloudPlugin|
|Version|1.6.0|
|Author|Eric Shulman|
|Original Author|Clint Checketts|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|present a 'cloud' of tags (or links) using proportional font display|
!Usage
<<<
{{{
<<cloud type action:... limit:... tag tag tag ...>>
<<cloud type action:... limit:... +TiddlerName>>
<<cloud type action:... limit:... =tagvalue>>
}}}
where:
* //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>shows tags/links 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 ...>>}}}//
<<<
!Examples
<<<
//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>>}}}
//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>>}}}
<<<
!Revisions
<<<
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
<<<
!Code
***/
//{{{
version.extensions.TagCloudPlugin= {major: 1, minor: 6 , revision: 0, date: new Date(2009,2,26)};
//Originally created by Clint Checketts, contributions by Jonny Leroy and Eric Shulman
//Currently maintained and enhanced by Eric Shulman
//}}}
//{{{
config.macros.cloud = {
	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() {
		config.macros.tagCloud=config.macros.cloud; // for backward-compatibility
		config.shadowTiddlers.TagCloud='<<cloud>>';
		config.shadowTiddlers.StyleSheetTagCloud=
			'/*{{{*/\n'
			+'.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'
			+'/*}}}*/\n';
		setStylesheet(store.getTiddlerText('StyleSheetTagCloud'),'tagCloudsStyles');
	},
	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))
				list.push(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:')
			action=params.shift().substr(7).toLowerCase();
		if (params[0]&&params[0].substr(0,6).toLowerCase()=='limit:')
			limit=parseInt(params.shift().substr(6));
		if (params.length) {
			if (params[0].substr(0,1)=='+') { // get tag list from tiddler
				var inc=store.getTiddlerText(params[0].substr(1),'').readBracketedList();
			} 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=params; // 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)
		items=items.sort(function(a,b){return(a.count==b.count)?0:(a.count>b.count?-1:1);});
		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
		items=items.sort(function(a,b){return(a.title==b.title)?0:(a.title>b.title?1:-1);});
		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;
			tip=tip.format([items[t].title,items[t].count]);
			if (action=='goto') { // TAG/LINK/REFERENCES GOTO
				var btn=createTiddlyLink(cloudWrapper,items[t].title,true,className);
				btn.title=tip;
				btn.style.fontWeight='normal';
			} else if (!links&&!refs) { // TAG POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,onClickTag,className);
				btn.setAttribute('tag',items[t].title);
			} else { // LINK/REFERENCES POPUP
				var btn=createTiddlyButton(cloudWrapper,items[t].title,tip,
					function(ev) { var e=ev||window.event; var cmt=config.macros.cloud;
						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]);
						createTiddlyLink(popup,title,true);
						createTiddlyText(popup,label);
						createTiddlyElement(popup,'hr');
						if (refs) {
							popup.setAttribute('tiddler',title);
							config.commands.references.handlePopup(popup,title);
						}
						if (links) {
							var tiddler = store.fetchTiddler(title);
							var links=config.macros.cloud.getLinks(tiddler);
							for(var i=0;i<links.length;i++)
								createTiddlyLink(createTiddlyElement(popup,'li'),
									links[i],true);
						}
						Popup.show();
						e.cancelBubble=true; if(e.stopPropagation) e.stopPropagation();
						return false;
					}, className);
				btn.setAttribute('tiddler',items[t].title);
				btn.setAttribute('count',items[t].count);
				btn.setAttribute('refs',refs?'T':'F');
				btn.setAttribute('links',links?'T':'F');
				btn.title=tip;
			}
		}
	}
};
//}}}
//Plugins// o conectores que al "enchufarse" a TiddlyWiki modifican el comportamiento.

* [[How to Install a Tiddlywiki Plugin| http://mnteractive.com/archive/how-to-install-a-tiddlywiki-plugin]]
* [[Repositorio de Plugins | http://www.tiddlywiki.org/wiki/Plugin_Repositories]]
* [[BidiXTW: Repository for BidiX's TiddlyWiki Extensions | http://tiddlywiki.bidix.info/]]
** [[Bidix Public site directory | http://bidix.info/]]
* [[Paulo Soares Plugins| http://www.math.ist.utl.pt/~psoares/addons.html#Plugins]]: Varios plugins para alguien interesado en ciencias, como el de ~BibTeX, ~ASCIIsvg, ~PlasticCalendar y el ~TaksOrganizer, entre otros. Bastante recomendable para explorar después!
* [[Formateadores para Plugin| http://www.martinswiki.com/]] Permiten cambiar las sintaxis de lo que se coloca en los tiddlers.
* [[Display Gliphs| http://gwsyzygy.googlepages.com/creator.html#DisplayTiddlerGlyphsPlugin]]: una forma glifos (caracteres gráficos) de acuerdo a las etiquetas colocadas en un wiki. Puede colocarse como "glifos" cualquier cosa previamente definida, texto, imágenes, etc.
* [[Tiddlywiki como motor de blogs| http://yann.perrin.googlepages.com/twkd.html]] La página explora varias posibilidades, entre ellas, multiples lenguajes para un tiddler, calendario, post organizados cronológicamente, etiquetamiento personalizado (chévere el estilo de la hoja).
* [[Mostrar tiddlers de acuerdo al tag| http://gensoft.revhost.net/Collapse.html]]: "Install the plugin in your TW and use the manager to control what tags are shown in what templates. WARNING: THIS CAN MAKE TIDDLERS NOT SHOW UP IF THE TEMPLATE DOES NOT EXIST, BEWARE OF WHITESPACE" (tomado del sitio web).
* [[TiddlyTools: Small tools for big ideas | http://www.tiddlytools.com/]]: The standard TiddlyWiki system provides the foundation, plus framing, walls, roof, windows/doors, etc. as well as basic plumbing, heating, and electrical wiring to offer a solid, general-purpose "info-house". Then, TiddlyTools helps you with all the "finish work": the fixtures, appliances, lighting, carpets, wallpaper, cabinets, furniture, etc. that lets you turn your "info-house" into a custom-built "info-home", optimized to hold all your TiddlyWiki content. (Tomado del sitio de Tiddlytools).
Es un sistema de aplicaciones libres que se pueden instalar y ejecutar sin necesidad de permisos especiales en un dispositivo portable, como una memoria USB.
* [[Qbit Online | http://qbitonline.com/]]: Una tienda taiwanesa que desarrolló una versión de Puppy Linux a la medida y que vende con gastos de envio //a cualquier parte del mundo incluidos!!//. Una opción para compras de máquinas como el eeePC
* [[Little Linux Laptop| http://littlelinuxlaptop.com/]]: Un sitio especializado en portátiles de formato pequeño, como los netbooks, que usan Linux.
* [[$98 Linux Laptop from China - The HiVision MiniNote| http://www.olpcnews.com/forum/index.php?topic=3603.0]]: Con una revisión en video del portátil. Si bien la persona que revisa no parece saber mucho, da algunos datos interesantes sobre la empresa fabricante.
* [[PandaPC| http://www.norhtec.com/products/panda/index.html]]: No es un portátil clásico, pero su torre de factor de forma pequeña lo hace interesante en muchos contextos de computación liviana.
Acá un recuento de las preguntes frecuentes y sus respuestas:

* ''Cómo entreo a mi tidlywiki en tiddlyspot?''
> Se coloca {{{http://nombredelwiki.tiddlyspot.com?}}}. Nótese que NO se pone www en la dirección.
* ''Siempre que entro aparece la misma página por omisión. Como cambio la apariencia por omisión de mi microwiki?''
> Vamos a donde dice ~DefaultTiddlers. Damos click en edit y escribimos los nombres de los tiddlers que queremos que aparezcan siempre que la gente cargue la página. En caso de que no encontremos ese tiddler, basta con escribirlo en la casilla que dice "Search".
* ''Cómo pongo el microwiki en español?'' (gracias a [[Paula Escandón| http://seapaes.tiddlyspot.com/#Dise%C3%B1oDeInteracci%C3%B3nEnVideojuegos]], por la información inicial).
<<<
* Vamos a la página http://www.giffmex.org/twtutorialespanol.html#Spanishlingogiffmex2
* Click en ver. Nos muestra el código fuente del Tiddler.
* Copiamos este código.
* En nuestro microwiki creamos un nuevo tiddler con el mismo nombre, las mismas etiquetas (systemConfig) y lo guardamos.
* Le damos "Save to web".
* Le damos recargar a nuestro wiki. Deberá aparecer en español
<<<
* ''Pero la interface no quedó toda traducida al español. Está en espanglish. Que puedo hacer?''
<<<
Puede colaborar con la traducción para que esté actualizada. Más información: http://trac.tiddlywiki.org/wiki/Translations
<<<
* http://www.girleffect.org una excelente presentación con sólo animaciones y texto. Su caracter minimalista muestra el poder del mensaje, no el de los efectos especiales. (En el sitio hay que hacer click en "Replay The Girl Effect")
* [[How to Avoid Making a Bad Presentation| http://www.fastcompany.com/magazine/130/made-to-stick-presentation-pep-talk.html?page=0%2C0]]
* [[Gates, Jobs, & the Zen aesthetic| http://presentationzen.blogs.com/presentationzen/2005/11/the_zen_estheti.html]]: Compara el estilo minimalista de presentación clara de Steve Jobs, con el saturado y confuso de Bill Gates. Presentation Zen, donde está este artículo, es un sitio por el Garr Reynolds, especializado en presentaciones.
* ''Authors@Google: Garr Reynolds'': Un video donde el experto en presentaciones, hace una acerca de las presentaciones:
<<<
<html>
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/DZ2vtQCESpk&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/DZ2vtQCESpk&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
</html>
<<<
/***
|Name:|PrettyDatesPlugin|
|Description:|Provides a new date format ('pppp') that displays times such as '2 days ago'|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#PrettyDatesPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Notes
* If you want to you can rename this plugin. :) Some suggestions: LastUpdatedPlugin, RelativeDatesPlugin, SmartDatesPlugin, SexyDatesPlugin.
* Inspired by http://ejohn.org/files/pretty.js
***/
//{{{
Date.prototype.prettyDate = function() {
        var diff = (((new Date()).getTime() - this.getTime()) / 1000);
        var day_diff = Math.floor(diff / 86400);

        if (isNaN(day_diff))      return "";
        else if (diff < 0)        return "in the future";
        else if (diff < 60)       return "just now";
        else if (diff < 120)      return "1 minute ago";
        else if (diff < 3600)     return Math.floor(diff/60) + " minutes ago";
        else if (diff < 7200)     return "1 hour ago";
        else if (diff < 86400)    return Math.floor(diff/3600) + " hours ago";
        else if (day_diff == 1)   return "Yesterday";
        else if (day_diff < 7)    return day_diff + " days ago";
        else if (day_diff < 14)   return  "a week ago";
        else if (day_diff < 31)   return Math.ceil(day_diff/7) + " weeks ago";
        else if (day_diff < 62)   return "a month ago";
        else if (day_diff < 365)  return "about " + Math.ceil(day_diff/31) + " months ago";
        else if (day_diff < 730)  return "a year ago";
        else                      return Math.ceil(day_diff/365) + " years ago";
}

Date.prototype.formatString_orig_mptw = Date.prototype.formatString;

Date.prototype.formatString = function(template) {
        return this.formatString_orig_mptw(template).replace(/pppp/,this.prettyDate());
}

// for MPTW. otherwise edit your ViewTemplate as required.
// config.mptwDateFormat = 'pppp (DD/MM/YY)'; 
config.mptwDateFormat = 'pppp'; 

//}}}
* [[Declarative Meta Programming | http://prog.vub.ac.be/DMP/index.html]]
* [[Elephant 2000: A Programming Language Based on Speech Acts | http://www-formal.stanford.edu/jmc/elephant/elephant.html]]
* [[Parrot| http://www.parrot.org/]]: "is a virtual machine designed to efficiently compile and execute bytecode for dynamic languages. Parrot currently hosts a variety of language implementations in various stages of completion, including Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL, and a .NET bytecode translator". En teoría uno podría crear una clase en Perl, un método en Python e invocarlos desde Tcl (está en la documentación, aunque no ubico donde leí eso).
* [[Not Lisp again....| http://funcall.blogspot.com/2009/03/not-lisp-again.html]]: chévere el tono anecdótico del Blog sobre el aprendizaje de Scheme en el MIT.
* [[Progopedia| http://progopedia.ru/]] Un una enciclopedia wiki de programación en ruso, con un interesante nombre. :-)
* [[SCons| http://www.scons.org/doc/1.2.0/HTML/scons-user/f16.html]] 
<<<
is a next-generation software construction tool, or make tool {{{--}}}that is, a software utility for building software (or other files) and keeping built software up-to-date whenever the underlying input files change. 
The most distinctive thing about SCons  is that its configuration files are actually scripts, written in the Python programming language. This is in contrast to most alternative build tools, which typically invent a new language to configure the build.
<<<
* [[The Low Level Virtual Machine| http://www.llvm.org/]] Un proyecto que, entre otras cosas se usará para optimizar ejecución de programas escritos en Python.
* [[Many languages, and in the runtime bind them| http://googleappengine.blogspot.com/2009/04/many-languages-and-in-runtime-bind-them.html]]: una entorno provisto por Google que funciona como una consola interactiva para programar en varios lenguajes, entre ellos Scheme y Python, desde una página web.
!!! Publicaciones 2008

* Luna Cárdenas, Offray Vladimir. 2008. Resolución Colectiva de Problemas desde modelos multiagente: Un diálogo entre la teoría y el aula. Magis Estudiantil. Pontificia Universidad Javeriana. Páginas: 65-84. ISSN en trámite.

!!! Publicaciones Anteriores

* | TeXmacs | -::- (2002) Un excelente editor de texto científico interactivo estructurado. Hice buena parte de la traducción de la documentación del manual de usuario al español he hice varias charlas iniciales para crear grupos de usuarios. Zoom en [ http://www.texmacs.org ]

!! Proyectos en gestión al cierre del 2008

* Servidor del Departamento de Matemáticas: Montaje y administración. El servidor llegó en la primera semana de noviembre. La intensión es tenerlo montado y operando después del periodo de evaluaciones y entrega de resultados
* | El Directorio - Wikibooks - Eduwiki | - :: - (2004 - actualidad) Estoy interesado en el modelos de construcción colectiva de Objetos de Conocimiento en las comunidades de Software Libre y de Código Abierto en otros campos. Así que estoy usando los Wikis para la “memoria orgánica” de las clases que doy y recibo y estamos creando un directorio nacional de gente, grupos de usuarios y conocimientos relacionados con el software y los contenidos abiertos en Colombia, usando la infraestructura wiki.
** Zoom en: [ http://www.el-directorio.org - http://www.eduwiki.info ]
** Un ejemplo de esta dinámica aplicada a educación universitaria puede ser visto en : [ http://es.wikibooks.org/wiki/Usuario:NIKO_JUAN ]
* | Virtual Tangram | -::- (2008) Un sistema de computo científico tipo Unix/Linux, con énfasis en álgebra computacional, para la enseñanza-aprendizaje de la mátemática, en educación superior, virtualizado y ejecutable desde Windows. Tiene un correlato educativo en el cual la herramienta es usada para crear una memoria digital de las clases y publicarlas en un servidor de recursos digitales de aprendizaje del proyecto connexions de la Universidad de Rice..
** Zoom en: [http://virtualtangram.tiddlyspot.com/ ]
** Un ejemplo de lo que se pretende que sea la dinámica del trabajo con los estudiantes: http://cnx.org/content/expanded_browse_authors?letter=G&author=danyfel80
!! Proyectos Finalizados

!!! 2008
* Primera versión de Virtual Tangram 1.1. (el proyecto tiene proyectadas varias versiones que aún continuan desarrollándose véase proyectos en gestión al cierre del 2008)

!!! Años Anteriores
*     | Tangram Linux | -::- (2004) Una distribución de GNU/Linux «rompecabezas» para ser armada y desarmada a la medida de las necesidades. Esbocé los elementos principales de la distribución y compuse una versión que implementaba sus ideas en la prehistoria del proyecto (luego la distribución que dió origen a todo se planeó más como un derivado de Tangram Linux, llamado Tangram SciLix). Participé activamente en la lista de correo del proyecto y escribí buena parte de la documentación del mismo, incluyendo las líneas guías para nuevas versiones.
**      Zoom en: [ http://www.el-directorio.org/Tangram-Linux ]
* | SciGWI | -::- (2003) Un ambiente interactivo de enseñanza aprendizaje on/off-line basado en software libre. Esbocé los elementos principales del proyecto e implementé un modelo piloto en las clases con mis estudiantes para la parte on-line. Actualmente trabajo en la parte off-line del proyecto a través de LiveCDs que pueden ejecutar todo el software sin necesidad de instalarlo o configurarlo para un equipo particular.
**      Zoom en: [ www.scigwi.org ] ← Buscar en los históricos de Internet Archive
Soporte de paquetes:

* [[src2pkg| http://www.murga-linux.com/puppy/viewtopic.php?t=21497&start=15]]: Un interesante gestor minimalista.
* [[Swaret| http://www.murga-linux.com/puppy/viewtopic.php?t=22348]] Parece funcionar mejor que Gslapt
* [[PET packages| http://puppylinux.com/development/createpet.htm]]
* [[Package management| http://www.puppylinux.com/development/package-management.htm]]
!! Enlaces

Enthought, una compañía que empaqueta una versión de Python y dicta seminarios web gratuitos.

* http://www.enthought.com/
* http://www.enthought.com/training/SCPwebinar.php

El profesor Fernando Díaz, creador de Ipython, dictó un seminario en Colombia, acá están algunas de sus notas:
* [[notas de su seminario de Python en la universidad de Antioquia| http://gfif.udea.edu.co/idf/indefero/www/index.php/p/mscomp-2010/source/tree/master/]]
* http://python-andes.4shared.com pueden encontrar los materiales usados en el taller de Python que se realizo en Uniandes el 19 de Febrero. Cortesía de William Oquendo.

!! Tutoriales y libros
* [[Python 201 -- (Slightly) Advanced Python Topics | http://www.rexx.com/~dkuhlman/python_201/python_201.html]]
* [[Python 101 -- Introduction to Python | http://www.rexx.com/~dkuhlman/python_101/python_101.html]]
* [[Tutorial Guido van Rossum en español | http://es.tldp.org/Tutoriales/Python/Tutorial-Python/node11.html]]
* [[Pequeño tutorial de Python | http://users.servicios.retecal.es/tjavier/python/Pequeno_tutorial_de_Pyhton.html]]
* [[Learn Python in 10 minutes| http://www.poromenos.org/tutorials/python]]: bueno, tanto así como aprender, aprender, no. Pero sí es una buena mirada panorámica.
* [[Rapid GUI Programming with Python and Qt| http://www.qtrac.eu/pyqtbook.html]]
* [[bpython| http://www.bpython-interpreter.org/about/]]: "The idea is to provide the user with all the features in-line, much like modern IDEs, but in a simple, lightweight package that can be run in a terminal window, so curses seemed like the best choice. Sorry if you use Windows. "
!! Aplicaciones
* [[Pida: A Framework for integrated development | http://pida.co.uk/downloads]]:"PIDA is an IDE (integrated development environment). PIDA is different from other IDEs in that it will use the tools you already have available rather than attempting to reinvent each one. PIDA is written in Python with the ~PyGTK toolkit, and although is designed to be used to program in any language, PIDA has fancy Python IDE features."
* [[Python(x,y)| http://pythonxy.com/foreword.php]]: "is a free scientific and engineering development software for numerical computations, data analysis and data visualization based on Python programming language, Qt graphical user interfaces (and development framework) and Eclipse integrated development environment."
* [[Winpdb - A Platform Independent Python Debugger| http://winpdb.org/]]
* [[Faces| http://faces.homeip.net/]]:  "is a powerful and free project management tool. faces stands for flexible, automated, calculating, extendible, simulating. It is based on python, an easy to learn and powerful programming language." (de la página web del proyecto)
* [[Pygments| http://pygments.org/docs/lexerdevelopment/]]": Un //coloreador// sintáctico para diferentes lenguales
: Se podrían usar los analizadores sintácticos para construir "dialectos" para aplicaciones como Sage o ~SymPy ? Al parecer no, como lo muestra esta pregunta frecuente:
<<<
Can I use Pygments for programming language processing?

The Pygments lexing machinery is quite powerful can be used to build lexers for basically all languages. However, parsing them is not possible, though some lexers go some steps in this direction in order to e.g. highlight function names differently.

Also, error reporting is not the scope of Pygments. It focuses on correctly highlighting syntactically valid documents, not finding and compensating errors.
<<<
!! //Scripting// y programación
* Pruebas unitarias en python:
** [[Pruebas unitarias con Leo | http://webpages.charter.net/edreamleo/unitTesting.html]]
** [[Unit test en Dive into python | http://diveintopython.org/unit_testing/index.html]]
** [[PyUnit | http://pyunit.sourceforge.net/]]
** [[Pythoscope| http://pythoscope.org/]]:"Mission Statement: To create an easily customizable and extensible open source tool that will automatically, or semi-automatically, generate unit tests for legacy systems written in Python."
* [[Capturing the power of re.split| http://simonwillison.net/2003/Oct/26/reSplit/]]: Un interesante módulo para construir analizadores sintácticos.
* [[Automatically generate PHP documentation from Subversion with phpDocumentor | http://www.jejik.com/articles/2007/11/automatically_generate_php_documentation_from_subversion_with_phpdocumentor/]]: Un //script// en python para generar documentación a partir de un repositorio en subversion de programas hechos en php.
* [[IPython Extensions| https://code.launchpad.net/~ipython-dev/ipython/ipython-extensions]]
* [[Cyrano| http://stsdas.stsci.edu/cyrano/]]: "is a tool used for demonstrating Python packages that combines a display window and an IPython shell." 
* [[Using the code of other languages in Python| http://openopt.org/Python_For_Scientific_Engineering#Using_the_code_of_other_languages_in_Python]]
* [[SSH Programming with Paramiko: Completely Different| http://jessenoller.com/2009/02/05/ssh-programming-with-paramiko-completely-different/]]: Cómo usar Python para realizar tareas de gestión en máquinas a través de ssh.
!! Otros
* [[Why MIT now uses python instead of scheme for its undergraduate CS program| http://blog.snowtide.com/2009/03/24/why-mit-now-uses-python-instead-of-scheme-for-its-undergraduate-cs-program]]
** [[Comentarios sobre el cambio de Scheme a Python en el MIT| http://news.ycombinator.com/item?id=530605]]
* [[Google searches for holy grail of Python performance| http://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars]]: "Google's Python engineers have launched a new project called Unladen Swallow that seeks to improve the performance of the Python programming language. One of the project's goals is to replace the Python virtual machine with an ~LLVM-based JIT."
** [[unladen-swallow| http://code.google.com/p/unladen-swallow/wiki/ProjectPlan]]: A faster implementation of Python
* [[Python 3.0 slithers onto scene, sheds backward compatibility| http://arstechnica.com/open-source/news/2008/12/python-3-0-sheds-backwards-compatibility.ars]]: con algunos ejemplos sobre nuevos comandos de impresión y el uso de conjuntos.
* [[Python/Mozilla Tutorials| http://pyxpcomext.mozdev.org/tutorials.html]]
* [[PyXPCOM| https://addons.mozilla.org/en-US/firefox/addon/6710]]: "XPCOM bindings to enable Python to interact with Mozilla 1.8 based applications (Firefox 2 and Thunderbird 2). See the ~PythonExt extension for Mozilla 1.9 (Firefox 3) compatibility."
** [[PyXPCOM Samples| http://pyxpcomext.mozdev.org/samples.html]]
* [[JS-Python| http://wiki.laptop.org/go/JS-Python]]
* [[Python-SpiderMonkey Resurrected| http://www.toolness.com/wp/?p=48]]: aunque el proyecto no parece muy mantenido, hay unos enlaces a proyectos enteresantes.
* [[XUL Tutorial| https://developer.mozilla.org/en/XUL_Tutorial]]
''Referencias:''
* [[Python OAuth| http://code.daaku.org/python-oauth/]]
!! Instalación
* Se instala [[pip| http://pip.openplans.org/]]
{{{
yaourt -S python-pip
}}}
* [[Pylons| http://pylonshq.com/]]
El software libre es aquel que garantiza a sus "usuarios finales" las siguientes libertades:

* Personales
** Libertad 0: Usar el software para cualquier propósito. (Tim O'Reilly habló de la libertad 0, como la de elegir)
** Libertad 1: Estudiar el software y modificarlo para adaptarlo a sus necesidades.
* Comunitarias
** Libertad 2: Distribuir copias idénticas del software a sus "vecinos" (cfg spiderman... el buen vecino)
** Libertad 3: Distribuir copias modificadas del software a sus "vecinos"

* Su centro es el discurso "ético", pues los artefactos embeben valores.

Sin embargo otra gente habla de [[Software de código abierto |SoftCodigoAbierto]]
/***
|Name:|QuickOpenTagPlugin|
|Description:|Changes tag links to make it easier to open tags as tiddlers|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
config.quickOpenTag = {

        dropdownChar: (document.all ? "\u25bc" : "\u25be"), // the little one doesn't work in IE?

        createTagButton: function(place,tag,excludeTiddler) {
                // little hack so we can do this: <<tag PrettyTagName|RealTagName>>
                var splitTag = tag.split("|");
                var pretty = tag;
                if (splitTag.length == 2) {
                        tag = splitTag[1];
                        pretty = splitTag[0];
                }
                
                var sp = createTiddlyElement(place,"span",null,"quickopentag");
                createTiddlyText(createTiddlyLink(sp,tag,false),pretty);
                
                var theTag = createTiddlyButton(sp,config.quickOpenTag.dropdownChar,
                        config.views.wikified.tag.tooltip.format([tag]),onClickTag);
                theTag.setAttribute("tag",tag);
                if (excludeTiddler)
                        theTag.setAttribute("tiddler",excludeTiddler);
                return(theTag);
        },

        miniTagHandler: function(place,macroName,params,wikifier,paramString,tiddler) {
                var tagged = store.getTaggedTiddlers(tiddler.title);
                if (tagged.length > 0) {
                        var theTag = createTiddlyButton(place,config.quickOpenTag.dropdownChar,
                                config.views.wikified.tag.tooltip.format([tiddler.title]),onClickTag);
                        theTag.setAttribute("tag",tiddler.title);
                        theTag.className = "miniTag";
                }
        },

        allTagsHandler: function(place,macroName,params) {
                var tags = store.getTags(params[0]);
                var filter = params[1]; // new feature
                var ul = createTiddlyElement(place,"ul");
                if(tags.length == 0)
                        createTiddlyElement(ul,"li",null,"listTitle",this.noTags);
                for(var t=0; t<tags.length; t++) {
                        var title = tags[t][0];
                        if (!filter || (title.match(new RegExp('^'+filter)))) {
                                var info = getTiddlyLinkInfo(title);
                                var theListItem =createTiddlyElement(ul,"li");
                                var theLink = createTiddlyLink(theListItem,tags[t][0],true);
                                var theCount = " (" + tags[t][1] + ")";
                                theLink.appendChild(document.createTextNode(theCount));
                                var theDropDownBtn = createTiddlyButton(theListItem," " +
                                        config.quickOpenTag.dropdownChar,this.tooltip.format([tags[t][0]]),onClickTag);
                                theDropDownBtn.setAttribute("tag",tags[t][0]);
                        }
                }
        },

        // todo fix these up a bit
        styles: [
"/*{{{*/",
"/* created by QuickOpenTagPlugin */",
".tagglyTagged .quickopentag, .tagged .quickopentag ",
"       { margin-right:1.2em; border:1px solid #eee; padding:2px; padding-right:0px; padding-left:1px; }",
".quickopentag .tiddlyLink { padding:2px; padding-left:3px; }",
".quickopentag a.button { padding:1px; padding-left:2px; padding-right:2px;}",
"/* extra specificity to make it work right */",
"#displayArea .viewer .quickopentag a.button, ",
"#displayArea .viewer .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink ",
"       { border:0px solid black; }",
"#displayArea .viewer .quickopentag a.button, ",
"#mainMenu .quickopentag a.button ",
"       { margin-left:0px; padding-left:2px; }",
"#displayArea .viewer .quickopentag a.tiddlyLink, ",
"#mainMenu .quickopentag a.tiddlyLink ",
"       { margin-right:0px; padding-right:0px; padding-left:0px; margin-left:0px; }",
"a.miniTag {font-size:150%;} ",
"#mainMenu .quickopentag a.button ",
"       /* looks better in right justified main menus */",
"       { margin-left:0px; padding-left:2px; margin-right:0px; padding-right:0px; }", 
"#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }",
"#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }",
"#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }",
"/*}}}*/",
                ""].join("\n"),

        init: function() {
                // we fully replace these builtins. can't hijack them easily
                window.createTagButton = this.createTagButton;
                config.macros.allTags.handler = this.allTagsHandler;
                config.macros.miniTag = { handler: this.miniTagHandler };
                config.shadowTiddlers["QuickOpenTagStyles"] = this.styles;
                store.addNotification("QuickOpenTagStyles",refreshStyles);
        }
}

config.quickOpenTag.init();

//}}}
<<<
It seems that Microlearning is not a new technological or pedagogical concept in the first place, but a whole new perspective on Next Generation eLearning. The question arises: How can complex learning processes be put together and then held together, if they consist of large numbers of micro-steps, experienced not in a special “time for learning” setting, but along the routine activities of everyday digital life? Many will be skeptical about this. But again, as with eLearning itself, it can be argued that there is no choice: In today’s digital media environment informations and knowledge already have started to become more and more fragmentized. People must learn, and in multitasking and micromedia environments that means that in some way or another they have to find some strategy of microlearning.

But it is also clear that this change of perspective will then have to result not only in
new technologies or uses of technologies, but in new didactics and new pedagogical approaches as well.
<<<
: Neuhold/Lindner • Quo Vadis, e-Learning?
* [[Sage RSS Firefox Reader plugin | http://sage.mozdev.org/]]: Sage is a lightweight RSS and Atom feed reader extension for Mozilla Firefox. It's got a lot of what you need and not much of what you don't.
** [[El Wiki de Sage firefox | http://sage.wikia.com/wiki/Main_Page]] con bastante información útil.
* [[infoRSS | http://inforss.mozdev.org/]]: interesante la interface tipo //livenews// de los noticierons de TV.
* [[WizzRSS | https://addons.mozilla.org/es-ES/firefox/addon/424]] dicen que es como un Sage RSS mejorado... la interface tiene más opciones, aunque tal vez yo no las necesite.
* [[RSS4Lib| http://www.rss4lib.com/]]
* [[Feedmil| http://www.feedmil.com/]]: a "long tail" feed search engine
!!! TiddlyWiki + RSS
* [[RSS and TiddlyWiki | http://tidalblog.blogspot.com/2007/05/rss-and-tiddlywiki.html]]
* [[RSSWiki or TiddlyBlog - pulling RSS feeds into your TiddlyWiki | http://tidalblog.blogspot.com/2007/05/rss-and-tiddlywiki.html]]
* [[RSSWiki | http://www.craigcook.co.uk/samples/RSSWiki.html]]: Una variente que convierte los //post// de los //feeds// en //tiddlers//, chévere que tuviera un sistema de etiquetas: leído, no leído, favoritos, e incluso etiquetas del wiki personal para marcar los //posts//.
* [[RSSReaderPlugin | http://tiddlywiki.bidix.info/#RSSReaderPluginDescription]]: Integra los RSS en una página de Tiddly, desde la cual luego se pueden navegar en solapas independientes. Sería chévere integrarlo con RSSWiki, de modo que se pueda colocar metadata sobre los //post// como si fueran //tiddlers// independientes.
Acá están los enlaces que no encontraron un mejor lugar en otro lado. Podrían ser movidos con el tiempo. 
Es curioso, este microwiki inició como un intento de pasar mi subpágina "Random" de El Directorio y ahora todo él es mi forma de presencia en línea preferida. Lo aleatorio se estructuró de forma tal que la aleatoriedad quedó organizada en todo el wiki y lo realmente aleatorio "reducido" a este tiddler... un proceso bastante "bio-lógico" ;-):

* [[Retrofuturismo| http://takeshy.wordpress.com/2008/10/13/retrofuturismo/]] enlace gracias a Anita.
* [[Algorithmic Botany| http://algorithmicbotany.org/papers/#webdocs]]
* [[The Future of (Life) Scientists| http://freelancingscience.com/2009/03/26/the-future-of-life-scientists/]]: Concuerdo... la innovación ya no está en la academia... esta es pura burocracia en su mayoría.
* [[The Internet Acronym Server| http://acronyms.silmaril.ie/cgi-bin/uncgi/acronyms]]
* [[Infectious| http://www.infectious.com/]]: Calcomanías chéveres para aparatos tecnológicos.
* [[La monogamia no es natural (29 minutos)| http://www.smartplanet.es/redesblog/?p=311]], cortesía de [[acme| http://identi.ca/luisuribe]]. Una frase impactante:
<<<
La monogamia es posible, como el arte, pero no es natural... Lo natural es una retahila de corazones rotos.
<<<
: Judith Lipton.
* [[Media Convert| http://media-convert.com/]]: Un servicio en línea de conversión de archivos de medios (audio y video) de un formato a otro.
* [[Tablero de ajedrez para Tesla| http://www.microsiervos.com/archivo/arte-y-diseno/tablero-ajedrez-para-tesla.html]]: algo que sin duda le gustaría a mi papá de regalo :-)
* [[Lea Los Chismosos| http://lealoschismosos.blogspot.com/]]: Un blog ecléctico con algunos temas muy chéveres.
* [[Arte y Clavos| http://arteclavos.spaces.live.com/]]: Un artesano, asistente al ~FLISoL 2009 nos muestra su trabajo.
* [[TIGRE| http://aportetigre.blogspot.com/2008/01/criterios-y-rbrica-tigre-para.html]] "es un acrónimo para acordarnos fácilmente de cualidades que uno debería verificar que se cumplen cuando hace un aporte en una discusión moderada en línea"
* [[Cómo suscribirse a grupos de google sin tener cuenta de google|http://groups.google.com/support/bin/answer.py?hl=en&answer=46606]]
* [[Paul Otlet, la web en 1932| http://www.microsiervos.com/archivo/internet/paul-otlet-web-en-1932.html]]
* [[Pierde el dedo y le colocan una memoria USB| http://www.eluniversal.com.mx/notas/582691.html]] medio bizarra la cosa!
----
[img[http://i39.tinypic.com/2yw8epu.jpg]]
* Randy Pausch, creador de Alice, el sistema para enseñanza de la programación basado en la creación de videojuegos:
** [[A Beloved Professor Delivers The Lecture of a Lifetime | http://online.wsj.com/article/SB119024238402033039.html]]
** [[Randy Pausch's Last Lecture: The Third Head Fake | http://www.amazon.com/gp/blog/post/PLNK1LG69K8X6WGH9]]
** [[Entrevista en abc news | http://www.youtube.com/watch?v=BZbOQqtDAW0&NR=1]]
* ''Colocar los enlaces para que se vea texto explicito en lugar de la dirección en Internet:'' Esto hace la página más navegable y permite que el lector pueda juzgar qué quiere navegar antes de hacer click, además que mejora la indexación de los enlaces enlos motores de búsqueda
<<<
* Para hacer esto, en lugar de sólo copiar la dirección escriba:
{{{
[[Texto explicito del enlace | http://www.laDireccionQueQuieroReferenciar.com]]
}}}
<<<
!Configurar la red:
* Editamos el archivo indicado buscando donde aparece el texto {{{eth0}}} y cambiando la información como se muestra a continuación:
<<<
''Archivo:'' {{{/etc/rc.conf}}}
{{{
eth0="dhcp"
INTERFACES=(eth0)
ROUTES=(!gateway)
}}}
<<<
* Reiniciamos la red:
<<<
''Consola de superusuario:''
{{{
/etc/rc.d/network restart
}}}
<<<
''Más información:''
* [[Configuring Archlinux Network| http://wiki.archlinux.org/index.php/Configuring_network]] en el wiki de Archlinux.
La reflexión que llevamos hasta el momento:
* [[Franklin Street Statement on Freedom and Network Services| http://autonomo.us/2008/07/franklin-street-statement/]]
* [[Is a Perfect Storm Forming For Distributed Social Networking?| http://www.readwriteweb.com/archives/is_a_perfect_storm_forming_for_distributed_social_networking.php]]
* Por qué no uso, ni quiero usar Facebook, entre otras cosas: 
** [[Avoiding Walled Gardens on the Internet | http://www.codinghorror.com/blog/archives/000898.html]]
** [[Opting Out of Linked In | http://www.codinghorror.com/blog/archives/000703.html]]
** [[One Friend Facebook Hasn’t Made Yet: Privacy Rights | http://www.nytimes.com/2008/02/18/opinion/18mon4.html?_r=1&oref=slogin]]
** [[Student faces Facebook consequences| http://www.thestar.com/News/GTA/article/309855]]
** [[Why I Don't Use Facebook| http://www.pcmag.com/article2/0,2817,2375715,00.asp]] por By: John C. Dvorak.
Las alternativas abiertas:
!! Sitios
* [[Identi.ca | http://identi.ca/doc/faq]] Un servicio tipo twitter donde lo importante es la autonomía y el respeto por la información del usuario y basado en software libre y contenido abierto.
* [[Libre.fm| http://libre.fm/]]: Similar a Last.fm pero se basa en la idea de redes sociales libres. En ese sentido es como identi.ca es a twitter.
* [[Freelist | http://www.freelists.org/]]: Listas de discusión en 24 horas o menos, sin avisos publicitarios, ni minería de datos y con calidad empresarial. [[Freelist tiene un fuerte compromiso con el software libre | http://www.freelists.org/about.html]]. Es un excelente servicio provisto por [[Avenir Technologies | http://www.avenirtech.net/]]. Aceptan donaciones.
* [[Rise Up | http://riseup.net/]]: es un proyecto para proveer correos, listas y hospedaje para aquellos trabajando en el cambio ''social pro-libertad''. Es un proyecto para crear alternativas democráticas y poner en práctica la autodeterminación, controlando sus propios medios de comunicación seguros (traducción del sitio Web).
** [[Página de RiseUp en El Directorio | http://www.el-directorio.org/RiseUp]].
** [[Creación de listas de correo en Rise Up | http://help.riseup.net/lists/subscribers/creating-lists/]]
!! Infraestructuras
* http://dataportability.org/
* http://www.particls.com/blog/
* [[The Open Software Service Definition (v1.0) | http://opendefinition.org/ossd?action=show&redirect=osd]]
* [[Hyper Estraier: a full-text search system for communities| http://hyperestraier.sourceforge.net/]]
* [[Sobre el diseño de software para favorecer interacciones sociales| http://www.shirky.com/writings/group_user.html]].
* [[Social Versioning System| http://www.spring-alpha.org/svs/]]
* [[DiSo Project| http://diso-project.org/]]: (dee • soh) is an initiative to facilitate the creation of open, non-proprietary and interoperable building blocks for the decentralized social web.
** [[the Open Stack, DiSO and all those closed stacks| http://blog.broadbandmechanics.com/2008/11/19/the-open-stack-diso-and-all-those-closed-stacks/]]
* [[XFN Intro| http://gmpg.org/xfn/intro]]: XFN™ (XHTML Friends Network)
! Redes y Tecnologías de la Informática y las Comunicaciones

El Seminario Taller busca presentar el computador como un artefacto cognitivo y desde allí plantear un continuo entre dos posibilidades: la computación personal y la computación interpersonal, haciendo una revisión de los adelantos más representativos en la tradición intelectual de estas dos corrientes, que derivó en muchas de las experiencias de uso de los computadores actuales, aunque éstas son más bien tergiversadas. Desde esta revisión se pretenden usar y (re)pensar artefactos digitales. El doble caracter de la computación revisado acá nos mostrará como individuos que hacemos parte de una red de aprendices

!! Temario:

* Presentación del seminario taller
* El computador como artefacto cognitivo y con ethos embebidos.
** Una historia desconocida de la computación personal: El computador como un nuevo libro que requiere una nueva literatura
** Una perspectiva desconocida y poco popular de la computación interpersonal (Xanadú, Wikis, redes sociales, prosumidores y redes de aprendices)
** Discusión-reflexión: Las metáforas subyacentes en la computación... existe alguna metáfora unificadora?
* Resolución colectiva de problemas y sistemas multiagentes: un ejemplo de simulación como argumentación y un ejercicio de diseño que nos involucra
* Artefactos y Dinámicas: El aula como laboratorio.

!! Metodología:

Se combinan en la metodología:

* Un caracter teórico práctico, con discusiones y presentaciones teóricas que tienen un correlato en artefactos y dinámicas.
* La resolución de problemas, a través de talleres que se desarrollan en el aula.
* El caracter orgánico como red de aprendices que se reconfigura en la medida en que aprende.

!! Actividades y Evaluación

Véase el enlace [[Evaluación en el seminario de redes y tics|RedesyTICsEvaluacion]]. La primera actividad es entrar a una web colaborativa que extenderá nuestro encuentro a lo largo del seminario.

!! Bibliografía y lecturas Recomendadas:
La bibliografía introductoria se encuentra en el espacio "Redes y ~TICs" de Gnoosférica. Si ha seguido [[guía introductoria a Gnoosférica|Gnoosferica]] presentada en la sección anterior, bastará que entre al //Dashboard// del espacio y seleccione dentro de "Top Tags" la etiqueta "Biografía introductoria".
Para la bibliografía extendida se recomienda:
* [[Tracing the Dynabook: A history of sociocultural transformations|TracingTheDynabook]] Capítulos 1, 3 y 4.
* Salomon, Gavriel (compilador) (1993). [[Cogniciones distribuidas|CognicionesDistribuidas]]. Consideraciones psicológicas y educativas. Amorrortu Editores. Buenos Aires. Capítulo 2: Prácticas de inteligencia distribuida y diseños para la educación, por Roy D. Pea. Págs 75 a 125.
* Wenger Etienne. Comunidades de práctica. Aprendizaje, significado e identidad. Paidos 2001.
* [[Bootstraping Institute | http://www.bootstrap.org/]]
!! Evaluación y Criterios

La evaluación se hará a través de la creación y uso de artefactos digitales que den cuenta de las temáticas cubiertas en el seminario. Se procura una evaluación dialógica, procesual y negociada con los estudiantes.

Los criterios que se tendrán en cuenta en los artefatos y las dinámicas serán los siguientes:

* Dar cuenta de los contenidos temáticos del seminario.
* Asumir una postura crítica y dialógica frente a las discusiones y temas presentados.
* Aplicar lo visto, en particular en lo referido a las redes de aprendices.

!!Actividades para la evaluación

Las Actividades para la evaluación serán las siguientes:
* Previas a nuestro encuentro presencial:
** Entrar a la web colaborativa [[Gnoosférica|Gnoosferica]] y presentarse de acuerdo a cómo dice la guía introductoria a respecto a cómo participar de una charla (la charla de presentación ya fue iniciada en el espacio de "Redes y ~TICs".
** Mirar el Video de Clay Shirky (20 minutos, subtitulado) y pensar un ideograma (representación gráfica de una idea como un mapa mental o conceptual que represente las ideas fuerza. Se puede traer en papel o en [[XMind]]. (Ver "Instituciones vs Colaboración" bajo la etiqueta bibliografía básica).
** Leer la ponencia [[Web 2.0 y otras numerologías relacionadas| http://dl.dropbox.com/u/394620/Conferencias/NumerologiasWeb/numerologiasWeb.1.pdf]]. Ubicar las "ideas fuerza", asumir posturas frente a ellas y pensar formas de viabilizar las propuestas del texto o en caso de diferencia, proponer alternativas.
Reinteract es un notebook interactivo similar al que se puede encontrar para Mathematica, con la ventaja de ser libre desde el lenguaje de implementación (python) hasta la aplicación misma. Para mayor información: 
* [[Reinteract en El Directorio| http://el-directorio.org/Reinteract]]
!! Instalación en Arch Linux
Está en los repositorios de AUR. Se intentó la instalación automática y luego la manual y en ninguno de los dos casos funcionó. Con más tiempo se explorará para ver que pasa.
/***
|Name:|RenameTagsPlugin|
|Description:|Allows you to easily rename or delete tags across multiple tiddlers|
|Version:|3.0 ($Rev: 5501 $)|
|Date:|$Date: 2008-06-10 23:11:55 +1000 (Tue, 10 Jun 2008) $|
|Source:|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
Rename a tag and you will be prompted to rename it in all its tagged tiddlers.
***/
//{{{
config.renameTags = {

        prompts: {
                rename: "Rename the tag '%0' to '%1' in %2 tidder%3?",
                remove: "Remove the tag '%0' from %1 tidder%2?"
        },

        removeTag: function(tag,tiddlers) {
                store.suspendNotifications();
                for (var i=0;i<tiddlers.length;i++) {
                        store.setTiddlerTag(tiddlers[i].title,false,tag);
                }
                store.resumeNotifications();
                store.notifyAll();
        },

        renameTag: function(oldTag,newTag,tiddlers) {
                store.suspendNotifications();
                for (var i=0;i<tiddlers.length;i++) {
                        store.setTiddlerTag(tiddlers[i].title,false,oldTag); // remove old
                        store.setTiddlerTag(tiddlers[i].title,true,newTag);  // add new
                }
                store.resumeNotifications();
                store.notifyAll();
        },

        storeMethods: {

                saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,

                saveTiddler: function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created) {
                        if (title != newTitle) {
                                var tagged = this.getTaggedTiddlers(title);
                                if (tagged.length > 0) {
                                        // then we are renaming a tag
                                        if (confirm(config.renameTags.prompts.rename.format([title,newTitle,tagged.length,tagged.length>1?"s":""])))
                                                config.renameTags.renameTag(title,newTitle,tagged);

                                        if (!this.tiddlerExists(title) && newBody == "")
                                                // dont create unwanted tiddler
                                                return null;
                                }
                        }
                        return this.saveTiddler_orig_renameTags(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created);
                },

                removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,

                removeTiddler: function(title) {
                        var tagged = this.getTaggedTiddlers(title);
                        if (tagged.length > 0)
                                if (confirm(config.renameTags.prompts.remove.format([title,tagged.length,tagged.length>1?"s":""])))
                                        config.renameTags.removeTag(title,tagged);
                        return this.removeTiddler_orig_renameTags(title);
                }

        },

        init: function() {
                merge(TiddlyWiki.prototype,this.storeMethods);
        }
}

config.renameTags.init();

//}}}
Una distribución basada en Gentoo con un sistema amigable de instalación y la posibilidad de instalar paquetes compilados o a través de un gigantescos repositorio de binarios para diferentes arquitecturas.
* [[Metro| http://wiki.github.com/funtoo/metro]] es un sistema que permite construir distribuciones basadas en Gentoo.
* [[El foro de Sabayon| http://forum.sabayonlinux.org/index.php]]
* [[Sabayon Visual tour: booting| http://wiki.sabayonlinux.org/index.php?title=Visual_Tour:_Part_1_Booting_Sabayon_Linux]]
* [[Sabayon Visual tour: installing| http://wiki.sabayonlinux.org/index.php?title=Visual_Tour:_Part_3_Installing_Sabayon_Linux]]
!! ~Md5Sum para Sabayon
{{{
e692c54ff671aa3ac491f749c60c3b2e  Sabayon-Linux-x86-4.iso
}}}
!! Comentarios:
La distribución es maximalista: pide un mínimo de 16 GB para ser instalada en disco!!. Después de probarla en su versión 4.0 quedé con una sensación agridulce. Gran reconocimiento de hardware y una preocupación por la estética, pero muy exigente respecto a la máquina en la que va a correr y seguramente traiga cientos de programas innecesarios para mí. Le [[versión Lite MCE| http://wgo.wolf911.us/?p=83]] //tan sólo// ocupa 2 GB aunque viene con una muestra interesante del software [[Xbox Media Center| http://xbmc.org/]]. Chévere probarla para ver qué quieren decir //Lite// para Sabayon y ver el //Media Center// en acción.
* [[Sage | http://sagemath.org/]]: Sage is a free mathematics software system licensed under the GPL. It combines the power  of many existing open-source packages into a common Python-based interface.
* [[Sage en El Directorio | http://slcolombia.org/Sage]]: Una página wiki con información sobre Sage en español.
* [[Montando un servidor de Sage | http://wiki.sagemath.org/DanDrake/JustEnoughSageServer]]
* [[Processing y Sage| http://www.math.uiuc.edu/~rkirov2/processing/grapheditor_live.html]]
!! Presentaciones sobre Sage
* [[Future Directions of Symbolic Computation Research And Their Applications to the Domain Sciences (pdf)| http://sage.math.washington.edu/home/wdj/expository/nsf-eccad2009/sage-nsf-eccad-may-2009.pdf]] (29 abril de 2009)
* [[Future Directions of Symbolic Computation Research And Their Applications to the Domain Sciences (fuentes)| http://sage.math.washington.edu/home/wdj/expository/nsf-eccad2009/sage-nsf-eccad.tar.gz]] (29 abril de 2009)
!! Instalando Sage en Arch Linux
Desde la consola de superusuario hacemos:
<<<
''Consola:''
{{{
yaourt -S sage-mathematics-bin
}}}
<<<
Para hacer Sage disponible //automáticamente// desde la consola de comandos y desde TeXmacs, agregamos las siguientes líneas al archivo indicado:
<<<
''Archivo:'' {{{~/.bashrc}}}
{{{
# Sage path
export PATH=$PATH:/opt/sage-bin/
}}}
<<<
!! //Inconvenientes// resueltos en Sage
* Un probrema con los permisos cuando se lanza como un usuario normal:
se resuelve escribiendo:
<<<
sudo sage
<<<
Hasta ahora sólo lo he podido resolver, ejecundo este comando //cada vez que el programa se ejecuta// (la solución no perdura :-/)
Más información:
[[OS X permission denied| http://groups.google.com/group/sage-support/browse_thread/thread/0db1b3b3f30a4f6d]]
!! Desarrollo en Sage
* [[Panorámica del código Sage en Oloh| https://www.ohloh.net/p/sage/analyses/latest]]
* [[Mapa de desarrolladores de Sage| http://sagemath.org/development-map.html]]
* "[[Pexpect| http://www.noah.org/wiki/Pexpect]] is a pure Python expect-like module. Pexpect makes Python a better tool for controlling other applications.
: Pexpect is a pure Python module for spawning child applications; controlling them; and responding to expected patterns in their output. Pexpect works like Don Libes' Expect. Pexpect allows your script to spawn a child application and control it as if a human were typing commands."
* [[An invitation to Sage| http://sage.math.washington.edu/home/wdj/teaching/calc1-sage/an-invitation-to-sage.pdf]]
* [[An Introduction to Algebraic, Scientific, and Statistical Computing: an Open Source Approach Using Sage | http://wiki.wstein.org/2008/480a/]], El sitio incluye enlaces a un libro, el sílabus del curso, proyectos de los estudiantes en realización y proyectos propuestos.
* [[Sage Primers| http://wiki.sagemath.org/days13/projects/sagenewbie]]: Introducciones para novatos en Sage desde diversas materias.
* [[Two-Dimensional Plots in SAGE| http://showmedo.com/videos/video?name=2450020&fromSeriesID=245]] Video Tutorial en Showme do. Muestra cómo usar un plugin interesante para firefox en conjunción con Sage, llamado "It's All Text", para explorar después.
* [[Introduzione a Sage| http://www-irma.u-strasbg.fr/~saliola/sage/SienaLectures/]]: con artículos introductorios y varios talleres con ejercicios para Algebra Lineal y otras asignaturas.
* [[Grade notes script & Sage|http://sage.math.washington.edu/home/wdj/teaching/grade-script/]]
* [[System for Teaching and Assessment using a Computer algebra Kernel| http://stack.bham.ac.uk/]]: en la lista de Sage hablaron de una integración posible en Moodle y Sage que sirva para hacer cosas similares
!! Hojas de Cálculo
Las hojas de cálculo son la forma en que sage produce documentos que involucran, además de cálculos científicos, texto gráficas y animaciones. Acá una recopilación de ellas:
* [[Teaching Worksheets| http://sage.math.washington.edu/home/wdj/teaching/worksheets/]]: organizadas por autores.
* [[Sage Lab Cálculo vectorial| http://sage.math.washington.edu/home/wdj/teaching/worksheets/others/]] por Byungchul Cha, bajo Creative Commons Attribution.
* [[Sage Lab, Cálculo multivariado| http://sage.math.washington.edu/home/mhampton/MultivariableCalcLabs/]], por M. Hampton. La licencia no está clara.
/***
|Name:|SaveCloseTiddlerPlugin|
|Description:|Provides two extra toolbar commands, saveCloseTiddler and cancelCloseTiddler|
|Version:|3.0 ($Rev: 5502 $)|
|Date:|$Date: 2008-06-10 23:31:39 +1000 (Tue, 10 Jun 2008) $|
|Source:|http://mptw.tiddlyspot.com/#SaveCloseTiddlerPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
To use these you must add them to the tool bar in your EditTemplate
***/
//{{{
merge(config.commands,{

        saveCloseTiddler: {
                text: 'done/close',
                tooltip: 'Save changes to this tiddler and close it',
                handler: function(ev,src,title) {
                        var closeTitle = title;
                        var newTitle = story.saveTiddler(title,ev.shiftKey);
                        if (newTitle)
                                closeTitle = newTitle;
                        return config.commands.closeTiddler.handler(ev,src,closeTitle);
                }
        },

        cancelCloseTiddler: {
                text: 'cancel/close',
                tooltip: 'Undo changes to this tiddler and close it',
                handler: function(ev,src,title) {
                        // the same as closeTiddler now actually
                        return config.commands.closeTiddler.handler(ev,src,title);
                }
        }

});

//}}}
* [[Dollhouse| http://identi.ca/group/dollhouse]]
Una plataforma privativa de Colciencias para hacer seguimiento de investigación y registros de investigadores. Para la muestra un botón de el último comunicado de esta entidad al respecto del uso de la plataforma:
<<<
Para el ingreso a los aplicativos de la plataforma ScienTI, recomendamos utilizar como navegador
Web Internet Explorer, las aplicaciones se probaron satisfactoriamente sobre este navegador., otros
navegadores no proporcionan las funciones necesarias utilizadas en el manejo de las aplicaciones.
<<<
! Scott ~McCloud

* [[Página principal de Scott McCloud | http://www.scottmccloud.com/index.html]]
* [[Scott Who? | http://www.scottmccloud.com/home/scott/scott.html]]
* [[Seminarios, talleres y charlas de McCloud | http://www.scottmccloud.com/home/speaking/speaking.html]]
* [[The rigth number | http://www.scottmccloud.com/comics/trn/intro.html]]: de nuevo un excelente ejemplo de cambio de la unidad narrativa página {{{-->}}} viñeta.
* [[My obsesion with chess | http://www.scottmccloud.com/comics/chess/index.html]]: inevitable pensar en la infancia, las grandes fichas de metal en el tablero de madera, las partidas rápidas con mi hermano mientras calentábamos el almuerzo al llegar del colegio y en mi papá :)
* [[I Can't Stop Thinking! | http://www.scottmccloud.com/comics/icst/index.html]]: Un blog/comic excelente si uno quiere aprender sobre comic y medios digitales. Recomendable, en particular, la discusión sobre:
** Las diferencias entre el Comic Web y el de papel, por ejemplo //[[la navegabilidad del comic Web | http://www.scottmccloud.com/comics/icst/icst-3/3-xtraA.html]]// :-)
** //trails://
*** [[Follow that trail | http://www.scottmccloud.com/comics/icst/icst-4/icst-4.html]]
** micropagos en:
*** [[Coins of the Realm (parte uno) | http://www.scottmccloud.com/comics/icst/icst-5/icst-5-full.html]]
*** [[Coins of the Realm (parte dos) | http://www.scottmccloud.com/comics/icst/icst-6/icst-6-full.html]]
****[[upay | http://www.nothings.org/writing/upay.html]] La respuesta a //coins of the realm// por Sean Barrett, dysfunctional programmer. Creo que la clave para lidiar con la tensión de los micropagos esta en:
***** el software y las redes sociales: en este momento tenemos cifras globales de vistas, pero esta es una cifra gruesa que no permite llegar a la particularidad de los visitantes de un contenido. Si uso Jamendo sin registrarme, puedo brindar cierta información sobre qué escucho, pero no puedo crear listas y si me registro, nada me garantiza la portabilidad de los datos (tampoco quiero irme a una red de música privativa como last.fm). El registro, con portabilidad de datos, y una forma rápida de decir quienes somos y cuál es nuestra opinión/compromiso con el producto puede ser la clave de hacerlo sostenible.
***** la tecnología para tener billeteras electrónicas que le dejen a uno gastar cantidades muy pequeñas sin gran intermediación
***** Alternativas de licenciamiento libre como [[Nine Inch Nails, negocio y Creative Commons | http://www.quemarlasnaves.net/2008/03/03/nine-inch-nails-hace-un-radiohead-con-creative-commons/]]

!!Por leer
* [[Libros de Scott McCloud | http://www.scottmccloud.com/store/store.html]]: //Making comics// y //reinventing comics// serán mis futuras adquisiciones. 
* [[Zot! | http://www.scottmccloud.com/comics/zot/index.html]]

!! Citas

<<<
Just that, for me, the bottom line is have we demonstrated that comics can convey complex information successfully, that comics can bridge gaps that maybe prose would have had a harder time bridging? I think, so far, we did score that victory. Comics looks pretty good after this and I guess we'll see what happens next. Will Eisner had always said that non-fiction was one of the great untapped resources in comics and I agreed with him. I guess a big chunk of my career has been trying to test that theory.
<<<
   -En una [[Entrevista en con Scott McCloud en Daily News| http://www.nydailynews.com/money/2008/09/07/2008-09-07_interview_with_scott_mccloud_artist_behi.html?page=1]]
<<<
* [[Get Started With Scribus 2006 |http://wiki.scribus.net/index.php/Get_Started_with_Scribus]]
* [[Craig Maloney Video Tutorials| http://decafbad.net/projects/scribus-tutorial]]
/***
|Name:|SelectThemePlugin|
|Description:|Lets you easily switch theme and palette|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#SelectThemePlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
* Borrows largely from ThemeSwitcherPlugin by Martin Budden http://www.martinswiki.com/#ThemeSwitcherPlugin
* Theme is cookie based. But set a default by setting config.options.txtTheme in MptwConfigPlugin (for example)
* Palette is not cookie based. It actually overwrites your ColorPalette tiddler when you select a palette, so beware. 
!Usage
* {{{<<selectTheme>>}}} makes a dropdown selector
* {{{<<selectPalette>>}}} makes a dropdown selector
* {{{<<applyTheme>>}}} applies the current tiddler as a theme
* {{{<<applyPalette>>}}} applies the current tiddler as a palette
* {{{<<applyTheme TiddlerName>>}}} applies TiddlerName as a theme
* {{{<<applyPalette TiddlerName>>}}} applies TiddlerName as a palette
***/
//{{{

config.macros.selectTheme = {
        label: {
                selectTheme:"select theme",
                selectPalette:"select palette"
        },
        prompt: {
                selectTheme:"Select the current theme",
                selectPalette:"Select the current palette"
        },
        tags: {
                selectTheme:'systemTheme',
                selectPalette:'systemPalette'
        }
};

config.macros.selectTheme.handler = function(place,macroName)
{
        var btn = createTiddlyButton(place,this.label[macroName],this.prompt[macroName],this.onClick);
        // want to handle palettes and themes with same code. use mode attribute to distinguish
        btn.setAttribute('mode',macroName);
};

config.macros.selectTheme.onClick = function(ev)
{
        var e = ev ? ev : window.event;
        var popup = Popup.create(this);
        var mode = this.getAttribute('mode');
        var tiddlers = store.getTaggedTiddlers(config.macros.selectTheme.tags[mode]);
        // for default
        if (mode == "selectPalette") {
                var btn = createTiddlyButton(createTiddlyElement(popup,'li'),"(default)","default color palette",config.macros.selectTheme.onClickTheme);
                btn.setAttribute('theme',"(default)");
                btn.setAttribute('mode',mode);
        }
        for(var i=0; i<tiddlers.length; i++) {
                var t = tiddlers[i].title;
                var name = store.getTiddlerSlice(t,'Name');
                var desc = store.getTiddlerSlice(t,'Description');
                var btn = createTiddlyButton(createTiddlyElement(popup,'li'),name ? name : title,desc ? desc : config.macros.selectTheme.label['mode'],config.macros.selectTheme.onClickTheme);
                btn.setAttribute('theme',t);
                btn.setAttribute('mode',mode);
        }
        Popup.show();
        return stopEvent(e);
};

config.macros.selectTheme.onClickTheme = function(ev)
{
        var mode = this.getAttribute('mode');
        var theme = this.getAttribute('theme');
        if (mode == 'selectTheme')
                story.switchTheme(theme);
        else // selectPalette
                config.macros.selectTheme.updatePalette(theme);
        return false;
};

config.macros.selectTheme.updatePalette = function(title)
{
        if (title != "") {
                store.deleteTiddler("ColorPalette");
                if (title != "(default)")
                        store.saveTiddler("ColorPalette","ColorPalette",store.getTiddlerText(title),
                                        config.options.txtUserName,undefined,"");
                refreshAll();
                if(config.options.chkAutoSave)
                        saveChanges(true);
        }
};

config.macros.applyTheme = {
        label: "apply",
        prompt: "apply this theme or palette" // i'm lazy
};

config.macros.applyTheme.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
        var useTiddler = params[0] ? params[0] : tiddler.title;
        var btn = createTiddlyButton(place,this.label,this.prompt,config.macros.selectTheme.onClickTheme);
        btn.setAttribute('theme',useTiddler);
        btn.setAttribute('mode',macroName=="applyTheme"?"selectTheme":"selectPalette"); // a bit untidy here
}

config.macros.selectPalette = config.macros.selectTheme;
config.macros.applyPalette = config.macros.applyTheme;

config.macros.refreshAll = { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
        createTiddlyButton(place,"refresh","refresh layout and styles",function() { refreshAll(); });
}};

//}}}
Para iniciar los servicios en Arch Linux hacemos:
!!Inicio Manual
<<<
''Consola Superusuario:''
{{{
/etc/rc.d/nombreDelServicio {start|stop|restart}
}}}
<<<
Por ejemplo, para iniciar {{{dbus}}} y {{{hal}}}, hacemos:
<<<
''Consola Superusuario:''
{{{
/etc/rc.d/dbus start
}}}
<<<
<<<
''Salida consola:''
{{{
:: Starting D-BUS system messagebus                                       [DONE]
}}}
<<<
<<<
''Consola Superusuario:''
{{{
/etc/rc.d/halt start
}}}
<<<
<<<
''Salida consola:''
{{{
:: Starting Hardware Abstraction Layer                                       [DONE] 
}}}
<<<
!!Inicio automático
Para hacer que el inicio de estos dos servicios sea automático, cada vez que se encienda el computador, editamos el archivo que controla los parámetros de la máquina, modificando la línea para que quede como se indica a continuación
<<<
''Archivo:'' {{{/etc/rc.conf}}}
{{{
DAEMONS=(syslog-ng network netfs crond dbus hal)
}}}
<<<
: otros servicios pueden ser agregados siguiendo la misma idea.
!!Enlaces:
* [[Daemons en Wiki de Arch Linux| http://wiki.archlinux.org/index.php/Daemons]]
Tiddly también puede ser usado desde un servidor:
 
* [[Tiddly + Zope | http://trac.tiddlywiki.org/wiki/WikiStart?action=diff&version=60]] con control de versiones, como se muestra en este enlace.
* [[Tiddly + php | http://aasted.org/wiki/]]: La instalación y configuración parece bastante sencilla.
* [[Haili Wiki | http://www.kevembuangga.com/hwk/]]: El desarrollo está detenido, pero tiene características interesantes.
* [[ServerSide Wiki: Tiddly + Ruby On Rails | http://www.serversidewiki.com/]]: Al parecer sigue funcional, pero el lanzamiento del servicio, programado para Septiembre del 2005 no se hizo y algunas características no fueron implementadas (como control concurrente de versiones).
* [[Tiddlyhome | http://tiddlyhome.bidix.info/]] is a package design as an infrastructure for multi-user and multi-site TiddlyWiki hosting service based on UploadPlugin. (por explorar)
* [[Tiddlyhome2 | http://tiddlyhome2.bidix.info/]]: TiddlyHome 2.0 is an early alpha Google AppEngine hosting service for TiddlyWiki users.
Uno de los pensadores más influyentes sobre la interacción entre informática y educación. Acá algunos enlaces recopilados:
* [[Anhelantes e Instructores de Seymour Papert | http://www.te.ipn.mx/formaciondocente/sitio/html/mod4/ane.pdf]] En "La máquina de los niños. Replantearse la educación en la era de los ordenadores". Extracto (Paidos, 1995)
Fue el creador del lenguaje  de programación Logo, el primero que usé en la vida (cerca de los 6 o 7 años). Es bueno saber que tuve la oportunidad de conocerlo y que las mismas manos que teclaron hace tanto tiempo pudieron estrechar las suyas en un saludo veintipico de años después:

[img[http://farm4.static.flickr.com/3638/3435331110_82ae495ed0_m.jpg][http://www.flickr.com/photos/delapava/3435331110/sizes/l/in/set-72157616671758166/]] [img[http://farm4.static.flickr.com/3335/3435332220_3363a61b9d_m.jpg][http://www.flickr.com/photos/delapava/3435332220/sizes/l/in/set-72157616671758166/]]
(Fotos cortesía de mi amigo Daniel ~DelaPava)
Supuestamente, si fuera un personaje de Cowboy Bebop, sería Jet, (si yo sé, a muchos nos gustaría ser el/la hacker andrógina y loca o, a otros, el perro más inteligente del universo :-? ) y acá hay más resultados de esos test que muestran lo "importante" que son los test en la vida

| [img[http://jedi-hobbit.net/content/jet.gif]] "I'm Jet Black!" [[Which Cowboy Bebop character are you?| http://jedi-hobbit.net/content/bebopquiz.html]] | [img[http://www.liquidgeneration.com/content/190407/Card_Yoda.jpg]] [[StarWars personality test| http://www.liquidgeneration.com/Media/Games/The_Ultimate_Star_Wars_Personality_Test/]] | [img[http://www.liquidgeneration.com/content/011206/Card_Optimus.jpg]] [[Transformers Quiz| http://www.liquidgeneration.com/Media/Games/The_Ultimate_Transformers_Quiz/]] |
* [[Harvard scientists predict the future of the past tense| http://www.news.harvard.edu/gazette/2007/10.11/99-verbs.html]]
* [[CellML en la Wikipedia| http://en.wikipedia.org/wiki/CellML]] "~CellML is an XML based markup language for describing mathematical models. Although it could theoretically describe any mathematical model, it was originally created with the Physiome Project in mind, and hence used primarily to describe models relevant to the field of biology. ~CellML is growing in popularity as a portable description format for computational models, and groups throughout the world are using CellML for modelling or developing software tools based around ~CellML."
** [[http://www.cellml.org/tutorial/notation| http://www.cellml.org/tutorial/notation]]
!! Modelica
* [[Openmodelica| http://www.ida.liu.se/labs/pelab/modelica/OpenModelica.html]]
<<<
The goal of the project is to:
 * create a complete Modelica modeling, compilation and simulation environment
 * based on free software distributed in binary and source code form. 
<<<
* [[Simforge| http://trac.ws.dei.polimi.it/simforge/]]: 
<<<
The aim of this project is to set up a tool composed of
 * a graphical  Modelica editor, aimed at writing the plant model;
 * an editor for  IEC 61131-3 languages (currently, the Ladder Diagram, Sequential Functional Chart and the Functional Block Diagram are being considered), aimed at writing the controller model; 
 * [...]
<<<
* [[Modelica| http://www.modelica.org/]]: Modeling of Complex Physical Systems 
La sincronización de Archivos es una de las ténicas empleadas para el trabajo colaborativo y la ubiquidad. Este //tiddler// muestra algunas de las soluciones que existen, privativas y libres. Las primeras tienen una interface más fácil de usar que permite trabajar rápidamente con usuarios no expertos, las segundas son más flexibles, pero deben llegar al nivel de facilidad de las primeras.
!! Libres
* [[Ifolder| http://www.ifolder.com/ifolder]]: Una solución que aún está madurando, pero una de las más sencillas e intuitiva
* [[Workshop on Self-sustaining Systems 2008| http://chneukirchen.org/blog/archive/2008/05/workshop-on-self-sustaining-systems-2008.html]]
* [[cola — combined lambda/object architecture| http://piumarta.com/software/cola/]] por Ian Piumarta.
* [[Spy| http://smallwiki.unibe.ch/spy/]]
<<<
Spy is a Smalltalk VM written using the PyPy toolchain.

Spy is written in RPython, and can be translated with the PyPy toolchain as C executable, as Java native backend, and as .Net native backend. Spy is the collaborative effort of the Squeak-PyPy Sprint in Bern last autumn. Spy has been realized by the PyPy Team and the SCG Group in only one week.
<<<
: (había propuesto algo así en mi presentación el el Squeak Fest 2006, chévere verlo implementado por quienes tienen el conocimiento para hacer más que la propuesta  ;-) )
* [[Pico| http://pico.vub.ac.be/]] "Pico can be seen as a modern language that combines the power and elegance of Scheme with the readability of "infix languages" like C or Java. Unifying these two characteristics was a non-trivial exercise and resulted in some original language features"
* [[ Self-Sustaining Systems First Workshop, S3 2008 Potsdam, Germany, May 15-16, 2008 Revised Selected Papers|  http://www.springerlink.com/content/978-3-540-89274-8]]: 8 capítulos de artículos completos!
!! 3APL
* [[3APL An Abstract Agent Programming Language| http://www.cs.uu.nl/3apl/]] 
<<<
3APL (triple-a-p-l) is a programming language for implementing cognitive agents. It provides programming constructs for implementing agents' beliefs, goals, basic capabilities (such as belief updates, external actions, or communication actions) and a set of practical reasoning rules through which agents' goals can be updated or revised. The 3APL programs are executed on the 3APL platform. Each 3APL program is executed by means of an interpreter that deliberates on the cognitive attitudes of that agent.
<<<
* [[3APL en la Wikipedia| http://en.wikipedia.org/wiki/3APL]]
* Usé la teoría para entender el esquema de deseos, creencias e intenciones en mi tesis de maestría.
!! Otros
* [[Measuring Complexity of Multi-agent Simulations – An Attempt Using Metrics| http://www.springerlink.com/content/h545q83160rj634n/]]
.: Un lugar no aleatorio para lo aleatorio :.
Web personal de Offray Luna
!!! Ejemplos en el uso de matemáticas y textos con simbologías científicas están:
* [[Deferential Geometry: a personal wiki notebook in theoretical physics | http://deferentialgeometry.org/]], su utlización requiere la [[Instalación de fuentes matemáticas para firefox | http://www.mozilla.org/projects/mathml/fonts/]]
* [[WikiMath: A TiddlyWiki for studying mathematics | http://luceatlux.net/wikimath/index.html#%5B%5BAbout%20WikiMath%5D%5D]]
* [[TiddlyMath a web notebook for mathematics | http://math.chapman.edu/~jipsen/tiddly/tiddlymath.html]]
* [[ASciencePad  a TiddlyWiki suitable for scientific notes | http://math.chapman.edu/~jipsen/asciencepad/asciencepad.html]] (Usa [[ASCIIMath | http://www1.chapman.edu/~jipsen/asciimath.html]]

!!! Ciencias Naturales, Educación e Investigación:
* http://mit.edu/apg/
* http://science.tiddlyspot.com/
* [[More: Videos + Enseñanza + Tiddly | http://files.unamesa.org/MORE/MORE.html#Instructions]]
* https://wesfiles.wesleyan.edu/home/espringer/web/

!!! Música:
* [[Udigrudi:  música e cultura livre na rede | http://udigrudi.net/]] Con un interesante diseño visual.
* http://musicinstant.tiddlyspot.com/

!!! Cocina
* [[Cookbook | http://cookbook.tiddlyspot.com/]]
* [[Recetas de Cocina | http://no-sin.com/wiki/Recipies.htm]]
* Tecnología (de hecho TiddlyWiki) 
* http://twhelp.tiddlyspot.com/

!!! Juegos de Rol
* http://wowsite.tiddlyspot.com/

!!! Pruebas en narrativas:
* [[Japanese Haiku | http://www.ako.net.nz/wiki/haiku/]]: qué mejor que el heiku para un wiki de microcontenido!, interesante tema y muy limpio en el diseño.
* [[Singularity! A Tough Guide to the Rapture of the Nerds | http://www.accelerando.org/_static/toughguide.html]]
* [[Die, Vampire! Die and other things I'll probably never get to say | http://davidvanwert.com/die-vampire-die/]]

!!! Otros:
* [[Web Campaigning Digital Supplement| http://mitpress.mit.edu/books/0262062585/WebCampaigningDigitalSupplement.html]]: El suplemento digital de un libro análogo, entregado a través de un microwiki. Hay macros especiales para hacer referencias a capítulos de libros.
* http://houseinhungary.tiddlyspot.com/
* http://lewcid.googlepages.com/tots.html
* http://gospelworthy.tiddlyspot.com/ Interesante característica de la línea de tiempo.
* [[Umibozu: Galerías de Fotos | http://umibozu.org/demo4/umibozu.html#theme:default]]
* http://students.washington.edu/adcockm/amateurastronomythesaurus/
* http://richard.stemp.googlepages.com/stempwiki.html Notas personales, ejemplo de no linealidad para pasar de un mapa a un wiki.
* http://rpgmakerxpfaq.tiddlyspot.com/ Interesante para FAQ's
* http://www.giffmex.org/bbgnt.html
* http://www.giffmex.org/tiddlydu2.html
* [[Ripplerap | http://www.ripplerap.com/]]: Usando Tiddly como memoria de conferencias.
* [[iEnrol | https://secure.ait.org/wiki/technology.htm]]: Un sistema que empezó en Tiddly pero terminó siendo más complejo y para uso en escenarios educativos con requerimientos particulares de carga de archivos.
* [[S3 | http://meyerweb.com/eric/tools/s5/s5-intro.html]] Presentaciones de diapositivas a través de un archivo html.
<!--{{{-->
<div id='displayArea'>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/***
|''Name:''|SlideShowPlugin|
|''Description:''|Creates a simple slide show type display|
|''Version:''|1.6.1|
|''Date:''|Aug 29, 2008|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Documentation:''|[[SlideShowPlugin Documentation|SlideShowPluginDoc]]|
|''Author:''|Paulo Soares and [[Clint Checketts|http://www.checkettsweb.com]]|
|''License:''|[[Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.1.0|
***/
//{{{
config.macros.slideShow = {label: "slide show", maxTOCLength: 30};
config.macros.slideShow.messages = {gotoLabel: "Go to slide:"};
config.views.wikified.slideShow = {text: "slide show", tooltip: "Start slide show"};
config.views.wikified.slideShow.quit = {text: "x", tooltip: "Quit the slide show"};
config.views.wikified.slideShow.firstSlide = {text: "<<", tooltip: "first slide"};
config.views.wikified.slideShow.previousSlide = {text: "<", tooltip: "previous slide"};
config.views.wikified.slideShow.nextSlide = {text: ">", tooltip: "next slide"};
config.views.wikified.slideShow.lastSlide = {text: ">>", tooltip: "last slide"};
config.views.wikified.slideShow.resetClock = {text: " ", tooltip: "reset"};

config.formatters.push( {
        name: "SlideSeparator",
        match: "^-s-+$\\n?",
        handler: function(w) {
                createTiddlyElement(w.output,"hr",null,'slideSeparator');
        }
});

//Excellent (and versatile) reparser created by Paul Petterson for parsing the paramString in a macro
function reparse( params ) {
        var re = /([^:\s]+)(?:\:((?:\d+)|(?:["'](?:[^"']+)["']))|\s|$)/g;
        var ret = new Array();
        var m;
        while( (m = re.exec( params )) != null ) ret[ m[1] ] = m[2]?m[2]:true;
        return ret;
}

function getElementsByClass(searchClass,node,tag) {
        var classElements = new Array();
        if ( node == null ) node = document;
        if ( tag == null ) tag = '*';
        var els = node.getElementsByTagName(tag);
        var elsLen = els.length;
        var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
        var j=0;
        for (var i = 0; i < elsLen; i++) {
                if ( pattern.test(els[i].className) ) {
                        classElements[j] = els[i];
                        j++;
                }
        }
        return classElements;
}

// 'keys' code adapted from S5 which in turn was adapted from MozPoint (http://mozpoint.mozdev.org/)
function keys(key) {
with(config.macros.slideShow){
        if (document.getElementById('contentWrapper').className == "slideShowMode"){
                if (!key) {
                        key = event;
                        key.which = key.keyCode;
                }
                switch (key.which) {
                        case 32: // spacebar
                                if(time>0){
                                        if(autoAdvance){
                                                clearInterval(autoAdvance);
                                                autoAdvance = null;
                                        } else {
                                                autoAdvance=setInterval("GoToSlide(1)", time);
                                        }
                                }
                                break;
                        case 34: // page down
                        case 39: // rightkey
                                GoToSlide("n");
                                break;
                        case 40: // downkey
                                GoToSlide(-1);
                                break;
                        case 33: // page up
                        case 37: // leftkey
                                GoToSlide("p");
                                break;
                        case 38: // upkey
                                GoToSlide(1);
                                break;
                        case 36: // home
                                GoToSlide("f");
                                break;
                        case 35: // end
                                GoToSlide("l");
                                break;
                        case 27: // escape
                                endSlideShow();
                                break;
                        case 66: // B
                                blankScreen();
                                break;
                }
        }
        return false;
}
}

function blankScreen(){
        var blanker = document.getElementById('slideBlanker');
        if (blanker.style.display == 'block'){
                blanker.style.display = 'none';
        } else {
                blanker.style.display = 'block';
        }
}

function clicker(e) {
        if (!e) var e = window.event;
        var target = resolveTarget(e);
        //Whenever something is clicked that won't advance the slide make sure that the table of contents gets hidden
        if (target.getAttribute('href') != null || isParentOrSelf(target, 'toc') || isParentOrSelf(target,'embed') || isParentOrSelf(target,'object') || isParentOrSelf(target, 'slideFooter') || isParentOrSelf(target, 'navigator')){
                 //Don't hide the TOC if the indexNumbers (which trigger the index) is clicked
                if(isParentOrSelf(target,'indexNumbers') || isParentOrSelf(target,'jumpInput')){
                        return true;
                }
                showHideTOC('none');
                return true;
        }
        //Advance a slide if the TOC is visible otherwise make sure that the TOC gets hidden
        if ((!e.which && e.button == 1) || e.which == 1) {
                if (document.getElementById('toc').style.display != 'block'){
                        GoToSlide("n");
                } else {
                        showHideTOC('none');
                }
        }
        if ((!e.which && e.button == 2) || e.which == 3) {
                if (document.getElementById('toc').style.display != 'block'){
                        GoToSlide("p");
                } else {
                        showHideTOC('none');
                }
                return false;
        }
}

function isParentOrSelf(element, id) {
        if (element == null || element.nodeName=='BODY') return false;
        else if (element.id == id) return true;
        else return isParentOrSelf(element.parentNode, id);
}

GoToSlide = function(step) {
        var new_pos;
        var slideHolder = document.getElementById('slideContainer');
        var cur_pos = parseFloat(slideHolder.getAttribute('currentslide'));
        var numberSlides = parseFloat(slideHolder.getAttribute('numberSlides'));
        switch (step) {
                case "f":
                        new_pos=0;
                        break;
                case "l":
                        new_pos=numberSlides-1;
                        break;
                case "n":
                        var numberOverlays = parseFloat(slideHolder.childNodes[cur_pos].getAttribute('numberOverlays'));
                        var currentOverlay = parseFloat(slideHolder.getAttribute('currentOverlay'));
                        if(numberOverlays==0 || currentOverlay==numberOverlays){
                                if(noClicks==false) new_pos=cur_pos+1;
                        } else {
                                var className="Overlay"+currentOverlay;
                                var overlay=getElementsByClass(className,slideHolder.childNodes[cur_pos]);
                                for(var i=0; i<overlay.length; i++) {overlay[i].className=className+' previousOverlay';}
                                currentOverlay++;
                                slideHolder.setAttribute('currentOverlay',currentOverlay);
                                className="Overlay"+currentOverlay;
                                overlay=getElementsByClass(className,slideHolder.childNodes[cur_pos]);
                                for(i=0; i<overlay.length; i++) {overlay[i].className=className+' currentOverlay';}
                                return false;
                        }
                        break;
                case "p":
                        var numberOverlays = parseFloat(slideHolder.childNodes[cur_pos].getAttribute('numberOverlays'));
                        var currentOverlay = parseFloat(slideHolder.getAttribute('currentOverlay'));
                        if(numberOverlays==0 || currentOverlay==0){
                                if(noClicks==false) new_pos=cur_pos-1;
                        } else {
                                var className="Overlay"+currentOverlay;
                                var overlays=getElementsByClass(className,slideHolder.childNodes[cur_pos]);
                                for(var i=0; i<overlays.length; i++) {overlays[i].className=className+' nextOverlay';}
                                currentOverlay--;
                                className="Overlay"+currentOverlay;
                                overlays=getElementsByClass(className,slideHolder.childNodes[cur_pos]);
                                for(i=0; i<overlays.length; i++) {overlays[i].className=className+' currentOverlay';}
                                slideHolder.setAttribute('currentOverlay',currentOverlay);
                                return false;
                        }
                        break;
                default:
                        new_pos=cur_pos+step;
        }
        if(slideShowCircularMode && new_pos == numberSlides) new_pos=0;
        if(slideShowCircularMode && new_pos<0) new_pos=(numberSlides - 1);
        if(step!=0 && new_pos>=0 && new_pos<numberSlides) {
                slideHolder.childNodes[cur_pos].style.display='none';
                slideHolder.childNodes[new_pos].style.display='block';
                slideHolder.setAttribute('currentslide',new_pos);
                var numberOverlays = parseFloat(slideHolder.childNodes[new_pos].getAttribute('numberOverlays'));
                if(step=="p"){
                        var currentOverlay=numberOverlays;
                        var state=' previousOverlay';
                } else {
                        var currentOverlay=0;
                        var state=' nextOverlay';
                }
                slideHolder.setAttribute('currentOverlay',currentOverlay);
                if(numberOverlays>0) {
                        for(var i=1; i<=numberOverlays; i++){
                                var className="Overlay"+i;
                                var overlays=getElementsByClass(className,slideHolder.childNodes[new_pos]);
                                for(var j=0; j<overlays.length; j++) {overlays[j].className=className+state;}
                        }
                        if(step=="p"){
                                var className="Overlay"+numberOverlays;
                                var overlays=getElementsByClass(className,slideHolder.childNodes[new_pos]);
                                for(var j=0; j<overlays.length; j++) {overlays[j].className=className+' currentOverlay';}
                        }
                }
                new_pos++;
                var indexNumbers = document.getElementById('indexNumbers');
                indexNumbers.firstChild.data = new_pos+'/'+numberSlides;
                if((new_pos==numberSlides) && !slideShowCircularMode && autoAdvance) clearInterval(autoAdvance);
                return true;
        }
        return false;
}

function tocShowSlide(e) {
        if (!e) var e = window.event;
        var target = resolveTarget(e);
        var slide = target.getAttribute('slideNumber');
        var cur_pos = document.getElementById('slideContainer').getAttribute('currentslide');
        var step = slide-cur_pos;
        if(step!=0) GoToSlide(step);
        showHideTOC('none');
        return;
}

//Toggle the display of the table of contents
function showHideTOC(display){
        var toc = document.getElementById('toc');
        //Reset the input box
        document.getElementById('jumpInput').value = "";
        if (display == null || display.length == null){
                if (toc.style.display == 'none' || toc.style.display == ''){
                        toc.style.display = 'block';
                        document.getElementById('jumpInput').focus();
                } else {
                        toc.style.display = 'none';
                }
        } else {
                toc.style.display = display;
                if (display == 'block')
                        document.getElementById('jumpInput').focus();
        }
}

function padZero(x){return (x>=10 || x<0 ? "" : "0")+x;}

setClock = function(){
        var actualTime = new Date();
        var newTime = actualTime.getTime() - clockStartTime;
        newTime = clockMultiplier*newTime+clockInterval+clockCorrection;
        actualTime.setTime(newTime);
        newTime = padZero(actualTime.getHours()) + ":" + padZero(actualTime.getMinutes());
//+ ":" + padZero(actualTime.getSeconds());
        var clock = document.getElementById('slideClock');
        clock.firstChild.nodeValue = newTime;
}

function resetClock(){
        var time = new Date(0);
        if(clockStartTime>time){
                var startTime = new Date();
                clockStartTime=startTime.getTime();
        }
}

var title;
var place;
var autoAdvance=null;
var slideClock=null;
var noOverlays=false;
var noClicks=false;
var forceRefresh=false;
var time = 0;
var slideShowCircularMode;
var slideShowStyleSheet;
var slideShowParams;
var clockMultiplier;
var clockInterval;
var clockCorrection=0;
var clockStartTime;
var openTiddlers;

config.macros.slideShow.handler = function(aPlace,macroName,params,wikifier,paramString,tiddler){
        if(tiddler instanceof Tiddler){
                var lingo = config.views.wikified.slideShow;
                if (!e) var e = window.event;
                place = aPlace;
                title = tiddler.title;
                params = reparse(paramString);
                var onclick = function(){config.macros.slideShow.onClickSlideShow(params);};
                createTiddlyButton(aPlace,lingo.text,lingo.tooltip,onclick);
        }
}

config.macros.slideShow.onClickSlideShow = function(newParams) {
        openTiddlers = [];
        var viewer=document.getElementById('tiddlerDisplay');
        for(var i=0; i<viewer.childNodes.length; i++){
                var name = viewer.childNodes[i].getAttribute('tiddler');
                openTiddlers.push(name);
        }
        document.oncontextmenu = function(e){return false;}
        clockMultiplier = 1;
        clockInterval = 0;
        var startTime = new Date(0);
        slideShowCircularMode = false;
        time = 0;
        slideShowStyleSheet = null;
        if(newParams['style']){
                slideShowStyleSheet = eval(newParams['style']);
        } 
        if(newParams['repeat']){
                slideShowCircularMode = true;
        }
        if(newParams['noClicks']){
                noClicks = true;
        }
        if(newParams['forceRefresh']){
                forceRefresh = true;
        }
        if(newParams['slidePause'] > 0){
                time = newParams['slidePause'];
        }
        if(newParams['clock']){
                clockCorrection=startTime.getTimezoneOffset()*60000;
                startTime = new Date();
                var clockType= eval(newParams['clock']);
                if(clockType != '+') {
                        clockMultiplier = -1;
                        clockInterval = -clockType*60000;
                }
        }
        clockStartTime=startTime.getTime();
        if(newParams['noOverlays']){
                noOverlays = true;
        }
        clearMessage();
        //Attach the key and mouse listeners
        document.onkeyup = keys;
        document.onmouseup = clicker;
        story.refreshTiddler(title,"SlideShowViewTemplate",true);
        createSlides(newParams);
        slideClock=setInterval('setClock()', 1000); 
        if(time>0) autoAdvance=setInterval("GoToSlide(1)", time); 
        story.closeAllTiddlers(title);
        toggleSlideStyles();
        return;
}

config.macros.slideShow.endSlideShow=function(){
        var showHolder = document.getElementById('slideShowWrapper');
        showHolder.parentNode.removeChild(showHolder);
        document.oncontextmenu =  function(e){};
        if(autoAdvance) clearInterval(autoAdvance);
        if(slideClock) clearInterval(slideClock);
        noClicks=false;
        story.refreshTiddler(title,null,true);
        story.closeAllTiddlers();
        toggleSlideStyles();
        story.displayTiddlers(null,openTiddlers,DEFAULT_VIEW_TEMPLATE);
        document.onmouseup = function(){};
}

function isInteger(s){
        var i;
        for (i = 0; i < s.length; i++){
                // Check that current character is number.
                var c = s.charAt(i);
                if (((c < "0") || (c > "9"))) return false;
        }
        // All characters are numbers.
        return true;
}

function jumpInputToSlide(e){
        if (!e) {
                e = window.event;
                e.which = e.keyCode;
        }
        if(e.which==13){
                var jumpInput= document.getElementById("jumpInput").value;
                if(isInteger(jumpInput)){
                        var step=jumpInput-document.getElementById('slideContainer').getAttribute('currentslide')-1;
                        if (GoToSlide(step)){
                                showHideTOC('none'); 
                        }
                }
        }
        return;
}

//Used to shorten the TOC fields
function abbreviateLabel(label){
        var maxTOCLength = config.macros.slideShow.maxTOCLength;
        if(label.length>maxTOCLength) {
                var temp = new Array();
                temp = label.split(' ');
                label = temp[0];
                for(var j=1; j<temp.length; j++){
                        if((label.length+temp[j].length)<=maxTOCLength){
                                label += " " + temp[j];
                        } else {
                                label += " ...";
                                break;
                        }
                }
        }
        return label;
}

function createSlides(newParams){
        var lingo = config.views.wikified.slideShow;
        //Remove dblClick on edit function
        var theTiddler = document.getElementById("tiddler"+title);
        theTiddler.ondblclick = function() {};
        // Grab the 'viewer' element and give it a signature so the show can be resumed if stopped
        var tiddlerElements = theTiddler.childNodes;
        var viewer;
        for (var i = 0; i < tiddlerElements.length; i++){
                if (tiddlerElements[i].className == "viewer") viewer = tiddlerElements[i];
        }
        viewer.id = 'slideShowWrapper';
        //Hide the text that comes before the first H1 element (I think I may put this into a cover page type thing)
        while(viewer.childNodes.length > 0 && viewer.firstChild.nodeName.toUpperCase() != "HR" && viewer.firstChild.className!="slideSeparator") {
                viewer.removeChild(viewer.firstChild);
        }
        //Cycle through the content and each time you hit an H1 begin a new slide div
        var slideNumber = 0;
        var slideHolder = document.createElement('DIV');
        slideHolder.id = "slideContainer";
        slideHolder.setAttribute('currentslide',0);

        while(viewer.childNodes.length > 0){
                //Create a new slide a append it to the slide holder
                if (viewer.firstChild.nodeName.toUpperCase() == "HR" && viewer.firstChild.className=="slideSeparator"){
                        slideNumber++;
                        var slide = document.createElement('DIV');
                        slide.id = "slideNumber"+slideNumber;
                        slide.className = "slide";
                        if (slideNumber > 1) {
                                //slideHolder.setAttribute('currentslide',0);
                                slide.style.display='none';
                        } else {
                                slide.style.display='block';
                        }
                        slideHolder.appendChild(slide); 
                        viewer.removeChild(viewer.firstChild);
                } else {
                        if(viewer.firstChild.nodeName=="SPAN" && viewer.firstChild.className=="" && viewer.firstChild.hasChildNodes()) {
                                var anchor=viewer.firstChild.nextSibling;
                                for (var ii=0;ii<viewer.firstChild.childNodes.length;ii++) {
                                        var clone=viewer.firstChild.childNodes[ii].cloneNode(true);
                                        viewer.insertBefore(clone,anchor);
                                }
                                viewer.removeChild(viewer.firstChild);
                        } else {
                                slide.appendChild(viewer.firstChild);
                        }
                }
        } 
        //Stick the slides back into the viewer

        var blanker= createTiddlyElement(viewer,"DIV","slideBlanker");
        blanker.style.display="none";

        viewer.appendChild(slideHolder);
        slideHolder.setAttribute('numberSlides',slideNumber);
        //Create the navigation bar
        var slidefooter = createTiddlyElement(viewer,"DIV","slideFooter","slideFooterOff");
        var navigator = createTiddlyElement(slidefooter,"SPAN","navigator");
        //Make it so that when the footer is hovered over the class will change to make it visible
        slidefooter.onmouseover = function () {slidefooter.className = "slideFooterOn"};
        slidefooter.onmouseout = function () {slidefooter.className = "slideFooterOff"};
        //Create the control button for the navigation 
        var onClickQuit = function(){config.macros.slideShow.endSlideShow();};
        createTiddlyButton(navigator,lingo.quit.text,lingo.quit.tooltip,onClickQuit);
        createTiddlyButton(navigator,lingo.firstSlide.text,lingo.firstSlide.tooltip,first_slide);
        createTiddlyButton(navigator,lingo.previousSlide.text,lingo.previousSlide.tooltip,previous_slide);
        createTiddlyButton(navigator,lingo.nextSlide.text,lingo.nextSlide.tooltip,next_slide);
        createTiddlyButton(navigator,lingo.lastSlide.text,lingo.lastSlide.tooltip,last_slide); 
        createTiddlyButton(navigator,lingo.resetClock.text,lingo.resetClock.tooltip,resetClock,"button","slideClock");
        var indexNumbers = createTiddlyElement(slidefooter,"SPAN","indexNumbers","indexNumbers","1/"+slideNumber)
        indexNumbers.onclick = showHideTOC;
        var toc = createTiddlyElement(slidefooter,"UL","toc");
        var ovl=1;
        for (var i=0;i<slideHolder.childNodes.length;i++) {
                if(!noOverlays) {
                        var ovl=1;
                        while(1){
                                var className="Overlay"+ovl;
                                var overlays=getElementsByClass(className,slideHolder.childNodes[i]);
                                if(overlays.length>0){
                                        for(var j=0; j<overlays.length; j++) {overlays[j].className+=' nextOverlay';}
                                        ovl++;
                                } else {break;}
                        }
                }
                slideHolder.childNodes[i].setAttribute("numberOverlays",ovl-1);
                slideHolder.setAttribute("currentOverlay",0);
                //Loop through each slide and check the header's content
                var tocLabel = null; 
                for (var j=0;j<slideHolder.childNodes[i].childNodes.length;j++) {
                        var node = slideHolder.childNodes[i].childNodes[j];
                        if(node.nodeName=="H1" || node.nodeName=="H2" || node.nodeName=="H3" || node.nodeName=="H4") {
                                var htstring = node.innerHTML;
                                var stripped = htstring.replace(/(<([^>]+)>)/ig,"");
                                tocLabel = abbreviateLabel(stripped);
                                var tocLevel="tocLevel"+node.nodeName.charAt(1);
                                var tocItem = createTiddlyElement(toc,"LI",null,tocLevel);
                                var tocLink = createTiddlyElement(tocItem,"A",null,"tocItem",tocLabel);
                                tocLink.setAttribute("slideNumber",i);
                                tocLink.onclick=tocShowSlide;
                        }
                }
        }
        //Input box to jump to s specific slide
        var tocItem = createTiddlyElement(toc,"LI",null,"tocJumpItem",config.macros.slideShow.messages.gotoLabel);
        var tocJumpInput = createTiddlyElement(tocItem,"INPUT","jumpInput");
        tocJumpInput.type="text";
        tocJumpInput.onkeyup=jumpInputToSlide;
}

var next_slide= function(e){GoToSlide(1);}
var first_slide= function(e){GoToSlide("f");}
var previous_slide= function(e){GoToSlide(-1);}
var last_slide= function(e){GoToSlide("l");}

function toggleSlideStyles(){
        var contentWrapper = document.getElementById('contentWrapper');
        if (contentWrapper.className == "slideShowMode"){
                contentWrapper.className = "";
                refreshPageTemplate();
                setStylesheet("#backstageShow{display: block;}","SlideShowStyleSheet"); 
                if(slideShowStyleSheet) removeStyleSheet(slideShowStyleSheet);
        } else{
                contentWrapper.className = "slideShowMode";
                refreshPageTemplate("SlideShowPageTemplate");
                setStylesheet(store.getRecursiveTiddlerText("SlideShowStyleSheet"),"SlideShowStyleSheet");
                if(slideShowStyleSheet) setStylesheet(store.getRecursiveTiddlerText(slideShowStyleSheet),slideShowStyleSheet);
        }
}

config.shadowTiddlers.SlideShowPageTemplate="<!--{{{-->\n<div id='displayArea'>\n<div id='tiddlerDisplay'></div>\n</div>\n<!--}}}-->";

config.shadowTiddlers.SlideShowViewTemplate="<!--{{{-->\n<div class='title' macro='view title'></div>\n<div class='viewer' macro='view text wikified'></div>\n<!--}}}-->";

config.shadowTiddlers.SlideShowStyleSheet = "/***\n!Slide Mode Styles\n***/\n/*{{{*/\n#slideBlanker {\n position:absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 90; \n background-color: #000;\n}\n#backstageShow{\n display: none !important;\n}\n\n#contentWrapper.slideShowMode #slideContainer{\n display: block;\n}\n\n#contentWrapper.slideShowMode .Comment{\n display: none;\n}\n\n#contentWrapper.slideShowMode .nextOverlay{\n visibility: hidden;\n}\n\n#contentWrapper.slideShowMode .currentOverlay{\n visibility: visible;\n}\n\n#contentWrapper.slideShowMode .previousOverlay{\n visibility: visible;\n}\n\n#jump{\n text-align: right;\n}\n\n.slideFooterOff #navigator{\n visibility: hidden;\n}\n\n.slideFooterOn #navigator{\n visibility: visible;\n}\n\n#contentWrapper.slideShowMode #slideClock{\n cursor: pointer; margin: 0 5px 0 5px; border: 1px solid #db4\n}\n\n#contentWrapper.slideShowMode,\n #contentWrapper.slideShowMode #displayArea{\n width: 100%;\n font-size: 1.5em;\n margin: 0 !important;\n padding: 0;\n}\n\n#slideContainer{\n display: none;\n}\n\n.indexNumbers{\n cursor: pointer;\n}\n\n#navigator{\n bottom: 0;\n}\n\n#toc{\n display: none;\n position: absolute;\n font-size: .75em;\n bottom: 2em;\n right: 0;\n background: #fff;\n border: 1px solid #000;\n text-align: left;\n}\n\nul#toc, #toc li{\n margin: 0;\n padding: 0;\n list-style: none;\n line-height: 1em;\n}\n\n.tocJumpItem{\n margin-right: 2em;\n}\n\n.tocJumpItem input{\nmargin-right: 1em;\n border: 0;\n}\n\n#toc a,\n#toc a.button{\n display: block;\n padding: .1em;\n}\n\n#toc .tocLevel1{\nfont-size: .8em;\n}\n\n#toc .tocLevel2{\n margin-left: 1em;\n font-size: .75em;\n}\n\n#toc .tocLevel3{\n margin-left: 2em;\nfont-size: .75em;\n}\n\n#toc .tocLevel4{\n margin-left: 3em;\nfont-size: .65em;\n}\n\n#toc a{\n cursor: pointer;\n}\n\nh1{\n min-height: 1em;\n}\n\n.slide h1{\n min-height: 0;\n}\n\n/* The '>' selector is ignored by IE6 and earlier so the proper rules are given */\n#slideFooter{\n position: fixed;\n bottom: 2px;\n right: 2px;\n width: 100%;\n text-align: right;\n}\n\n/* This is a hack to trick IE6 and earlier to put the navbar on the bottom of the page */\n* html #slideFooter {\n position: absolute;\n width: 100%;\n text-align: right;\n right: auto; bottom: auto;\n left: expression( ( -20 - slideFooter.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );\n top: expression( ( -10 - slideFooter.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );\n}\n\n\n\n/*}}}*/";

config.shadowTiddlers.SlideShowPluginDoc="The documentation is missing. It is available [[here|http://www.math.ist.utl.pt/~psoares/addons.html#SlideShowPluginDoc]].";
//}}}
<!--{{{-->
<div class='title' macro='view title'></div>
<div class='viewer' macro='view text wikified'></div>
<!--}}}-->
! Slim: Simple Login Manager
[>img[http://slim.berlios.de/themes/tmb-fingerprint.jpg]]
* [[Página Web de SLiM| http://slim.berlios.de/themes01.php]].
* Puede usarse para distros minimalistas a la medida como Puppy
''Enlaces:''
* [[Addin a login manager en el wiki de Archlinux| http://wiki.archlinux.org/index.php/Adding_a_login_manager_(KDM%2C_GDM%2C_or_XDM)_to_automatically_boot_on_startup]]
!! Instalación en Archlinux
<<<
''Consola Superusuario:''
{{{
yaourt -S slim
}}}
<<<
!! Configuración en Archlinux
Hay dos formas de configurar Slim. 
* Agregando un //daemon// a {{{/etc/rc.conf}}}
* Cambiando el {{{/etc/inittab}}}
Las veremos ambas de menor dificultad a mayor
!!! Configurando Slim vía {{{/etc/rc.conf}}}
Cambiamos el archivo agregando slim a la lista de //daemons// para que quede como se indica a continuación:
indica a continuación:
<<<
''Archivo:'' {{{/etc/rc.conf}}}
{{{
# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
DAEMONS=(syslog-ng network netfs crond slim)
}}}
<<<
!!! Configurando Slim vía {{{/etc/inittab}}}
Los niveles de arranque indican al sistema cómo debe iniciar, por ejemplo usando el modo gráfico, que por convención usual es el modo 5, en lugar del modo texto, que por convención es el modo 3. Para usar Slim hacemos lo siguiente:
* Modificamos la línea del archivo de configuración comentando las línea de arranque en modo texto y descomentando la del modo gráfico, quedando como se indica a continuación:
<<<
''Archivo:'' {{{/etc/inittab}}}
{{{
## Only one of the following two lines can be uncommented!
# Boot to console
# id:3:initdefault:
# Boot to X11
id:5:initdefault:
}}}
<<<
* y, en el mismo archivo, comentamos el gestor por omisión, que suele ser xdm y descomentamos la línea que dice cómo usar el gestor de arranque, quedando similar a esto:
<<<
''Archivo:'' {{{/etc/inittab}}}
{{{
# Example lines for starting a login manager
#x:5:respawn:/usr/bin/xdm -nodaemon
#x:5:respawn:/usr/sbin/gdm -nodaemon
#x:5:respawn:/opt/kde/bin/kdm -nodaemon
x:5:respawn:/usr/bin/slim >& /dev/null
}}}
<<<
Smalltalk es un lenguaje de programación orientado a objetos:
<<<
Diseñado por Alan Kay durante los años setenta en el Palo Alto Reasearch Institute de Xerox (conocido como Xerox Parc). Smalltalk era un elemento de la primera computadora personal con interfaz gráfica el "Alto" (que nunca fue llevado al mercado pero de cuyas ideas nació el Macintosh). 

Smalltalk es considerado el primero de los lenguajes orientados a objetos (OOP). En Smalltalk TODO es un objeto, incluso los números enteros. Smalltalk se basó en ideas de Simula (un lenguaje de simulaciones).

Pero Smalltalk no es meramente un lenguaje, sino un entorno completo, prácticamente un sistema operativo que se ejecuta encima de una "máquina virtual". Esto asegura su máxima portabilidad entre plataformas.
<<<
: (tomado de la Wikipedia en Español).

Existe un auje renovado por Smalltalk actualmente, debido a su imponente diseño. [[Squeak]] es una implementación moderna de las ideas de Smalltalk. Pueden encontrar información en:
* [[Lecturas sobre Smalltalk| http://www.iam.unibe.ch/~scg/Teaching/Smalltalk/index.html]]
* [[Libros de libre distribución y otra información| http://minnow.cc.gatech.edu/squeak/377]] (en inglés)
* [[Dynamic Object-Oriented Programming with Smalltalk| http://www.iam.unibe.ch/~scg/Teaching/Smalltalk/]]: Curso con referencias a más enlaces externos y un listado de material sobre las lecturas magistrales del mismo, cubierto bajo licencias creative commons (by-sa) y en formatos [[presentaciones del curso de Smalltalk en pdf| http://www.iam.unibe.ch/~scg/Teaching/Smalltalk/Slides]] y [[presentaciones del curso de Smalltalk en powerpoint| http://www.iam.unibe.ch/~scg/Teaching/Smalltalk/ST-06-PPT.zip]] comprimido.
* [[Design Principles Behind Smalltalk| http://users.ipa.net/~dwighth/smalltalk/byte_aug81/design_principles_behind_smalltalk.html]], escrito por [[Dan Ingalls| http://www.squeakland.org/community/biography/ingalls.html]], uno de los arquitectos de varias encarnaciones de Smalltalk, incluída [[Squeak]].
* [[La portada de la revista byte| http://st-www.cs.uiuc.edu/Graphics/bytebloon.jpg]] (circa 1961).
* [[Un artículo sobre Smalltalk en la revista OnLamp| http://www.onlamp.com/pub/a/onlamp/2006/09/21/learning_smalltalk.html]] (En inglés)
* [[Reading Smalltalk| http://www.jera.com/techinfo/readingSmalltalk.pdf]]
* [[Industry Misinterpretations Podcast| http://www.cincomsmalltalk.com/userblogs/cincom/blogView?content=podcasts]]: James Robertson, Cincom Smalltalk Product Evangelist, hosts "Industry Misinterpretations" each week with Michael Lucas-Smith and David Buck
Réplicas a //Smalltalk is dead//:
* [[What Killed Smalltalk: My Balls| http://gilesbowkett.blogspot.com/2009/05/what-killed-smalltalk-my-balls.html]]
!! Grupos de Usuarios
* [[European Smalltakl Users Group| http://www.esug.org/]]
!! Sobre mí:
* Estudios de pregrado en Informática Matemática
* Maestría en Educación con énfasis en cognición, creatividad y aprendizaje.
* Ambos en la Pontificia Universidad Javeriana.
* Activista de software libre y usario desde 1996
* Me gustan los //comics//, las buenas tertulias, el cine, los juegos de rol...
<<<
* [[sK1| http://sk1project.org/]]: "is an open-source illustration program that can substitute professional proprietary software like Corel Draw or Adobe Illustrator*. Currently Linux is our main development platform, but porting on Win32 and ~MacOS X desktops has been scheduled. sK1 supports professional publishing features, such as CMYK color, separations, ICC color management and press-ready PDF output."
* UniConvertor is a universal vector graphics translator. It is a command line tool which uses sK1 object model to convert one file format to another. The project is a multiplatform software and can be compiled under Linux (and other ~UNIX-like systems), ~MacOS X and Win32/64 operation systems.
* CDR Explorer is a research tool for ~CorelDraw file formats. It was used to create a CDR import filter for sK1 Editor and UniConvertor. This tool is written on Python and works under Linux, ~MacOS X and Win32.
* pymfvu is a small research project. This project was started to prepare new WMF/EMF filter for sK1 and Uniconvertor. The pymfvu program can open and render both Windows Metafile and Enchanced Metafile files.
<<<
* [[FLOSS Is Not Just Good For Teeth| http://www.sarai.net/publications/occasional/floss-is-not-just-good-for-teeth]]
* [[How to Start an Open Source Project| http://vimeo.com/856110?pg=embed&sec=856110]]
* [[Hackers produce more than software, they produce hackers| http://folk.uio.no/lrisan/Linux/Identity_games/]]
* [[La UNESCO y la firma Sun Microsystems anuncian su cooperación para propulsar el desarrollo educativo y comunitario mediante las tecnologías de código abierto| http://portal.unesco.org/es/ev.php-URL_ID=45516&URL_DO=DO_TOPIC&URL_SECTION=201.html]]
* [[Charisma & Code| http://www.tik.uio.no/Charismacode/on_the_project.html]]
* [[Código libre, hombres libres| http://www.kriptopolis.org/codigo-libre-hombres-libres]]: con una introducción que me recuerda a Blade Runner:
<<<
He visto cosas que vosotros no veréis jamás,[...]. He vivido siete vidas distintas recorriendo los parajes ardientes de Ascalon destruido. He escalado en solitario los Picos Escalofriantes. He afrontado la Ascensión en la Roca del Augurio para obtener el don de la Visión Verdadera. Y todo para convertirme en un Elegido del montón, uno más del millón de usuarios que han pagado 50 euros por una cuenta de Guild Wars.
<<<
* [[“A la gente se le vende una porquería y se la educa para que la use”| http://americalatinaunida.wordpress.com/2009/05/11/%E2%80%9Ca-la-gente-se-le-vende-una-porqueria-y-se-la-educa-para-que-la-use%E2%80%9D/]]: un post con un "vocabulario fuerte" sobre el tema de uso de software privativo, pero con buenos puntos y argumentos.
* [[Libros libres de software libre| http://www.jesusda.com/docs/ebooks/#book-ciberia]]
!! Miscelaneo
* [[Sharethis | http://sharethis.com/poweredby]]
* [[Vcasmo | http://www.vcasmo.com/my/feature#f2]]: Integra presentaciones y video... por lo pronto sólo trae soporte para sincronización con diapositivas a lo Open Impress, Power Point... sería bueno colocar tags de tiempo a las presentaciones tipo freemind.
* [[Social Networks: Facebook Takes Over Top Spot, Twitter Climbs| http://blog.compete.com/2009/02/09/facebook-myspace-twitter-social-network/]]
* Ning: Una infraestructura para redes sociales que provee servicios a terceros para facilitar su creación.
** [[Términos del servicio de Ning| http://edusim.ning.com/main/authorization/termsOfService?noBack=1]]: No estoy de acuerdo con la posibilidad de relicenciar el software o el contenido.
** [[Política de privacidad de Ning| http://edusim.ning.com/main/authorization/privacyPolicy?noBack=1]]: No estoy de acuerdo con los términos de "protección de datos" suscritos a leyes estadounidenses (sería mejor si el servidor estuviera en Europa).
Es un reproductor de audio basado en la tecnología mozilla que nos trajo Firefox y Thunderbird, esto quiere decir que se puede modificar con extensiones con //plugins// y que tiene un amplio listado de temas. Es una aplicación autocontenida en su mayoría y multiplataforma (los requerimientos básicos del sistema operativo la harán funcionar sin ningún tipo de cosa extra o tener que instalar toda la base de un sistema de escritorio o un montón de dependencias, como ocurre con amarok o banshee).

!!! Enlaces relacionados:
* [[Get Songbird: El sitio principal de Songbird | http://getsongbird.com/]]
* [[Songbird en el wiki de Ubuntu | https://help.ubuntu.com/community/Songbird]] con instrucciones de instalación usando el repositorio independiente de paquetes para Ubuntu [[GetDeb | http://www.getdeb.net/about.php]]
* [[GStreamer for all, all for GStreamer | http://blog.songbirdnest.com/2008/01/30/gstreamer-for-all-all-for-gstreamer/]]: Con una interesante discusión de VLC versus GSTreamer (estos dos programas junto con Mplayer parecen constituirse como mis opciones para reproducción de medios).
* [[El Wiki de los desarrolladores de Songbird | http://wiki.songbirdnest.com/]], con guías sobre como empezar a participar en el desarrollo. Está hecho con el Wiki ~MindTouch Deki Community Edition.
* Iconos para Songbird en DeviantART
** [[Seis íconos agrupados para songbird | http://onikilly.deviantart.com/art/Songbird-42330065]]
** [[Icono Individual de Songbird | http://subnexo.deviantart.com/art/Songbird-Icon-Object-Y-z-Dock-28818687]] De este modo tiene más apariencia de reproductor de CDs por la redondez del ave y las notas musicales.
* [[Bluemindo | http://bluemindo.codingteam.net/]] Bluemindo aims to provide a very simple audio player under GNU systems in PyGTK, without any GNOME dependencies. Actually, there are a few players that make everything (but the coffee). That's not our goal: with Bluemindo, you can play your music. That's all. 
** Chévere que esté hecho en python y use GStreamer. Lástima que no sea multiplataforma y no soporte //plugins//.

!!! Configuración
Dos características agradables son:
* Búsqueda automática de carátulas en: {{{Tools -> Get Album Work}}}
* Seguimiento de cambios en una carpeta en {{{Songbird Preferences -> Media importer -> Watch Folder Settings}}} y se selecciona la opción que dice: "Automatically watch for changes in the following folder". 

!!! Configuración Ubuntu 8.10 para amd64
Cuando se intenta instalar usar en Ubuntu 8.10 para amd64 se obtiene este mensaje.
{{{
No GStreamer plugin could be found to play back this file: No tiene instalado un decodificador
para manejar este archivo. Puede que necesite instalar los complementos necesarios.

Would you like to view instructions on how to find additional plugins for GStreamer?
}}}
Lo cual se soluciona fácilmente al instalar: {{{GStreamer Extras}}} y {{{GStreamer ffmpeg}}}.
Uno de los juegos independientes que más me gustan: centrado en los personaje, no en el imaginario, con conflictos internos que los matizan y llenan de color; una mecánica rápida de resolución de acciones sin la //burocracia// de D&D; Acá hay unos enlaces:

* [[http://www.indie-rpgs.com/forum/index.php?topic=23417.0|Sorcerer: No pain prep]]
* [[Una revisión de Sorcerer | http://www.websnark.com/archives/2007/03/for_all_the_fif.html]]
* [[Sorcerer First Steps | http://www.indie-rpgs.com/forum/index.php?topic=23615.0]]
* [[Warlocks, Witches, Priests, Nuns, Demons, Angels, Satan and God | http://www.indie-rpgs.com/forum/index.php?topic=23821.0]], con dos referencias a comics y una posible "taxonomía" para demonios y eventualmente ángeles.

* [[Flamerising | http://www.flamesrising.com/about/]]: "an online resource for fans of Horror and Dark Fantasy entertainment. This horror fanzine offers reviews of Games, Fiction, Movies and more ranging from Top-Selling authors to the coolest Small Press and “indie” publishers".
* [[Demon: The Fallen | http://en.wikipedia.org/wiki/Demon:_the_Fallen]]: Podría servir para un imaginario de Sorcerer.
[[SPD Project| http://code.google.com/p/spdproject/]]
<<<
Source Python Distribution (SPD) is a Python distribution and many optional (mainly scientific) packages. Everything fully builds from source on any platform (any linux, Mac OS X, clusters and soon windows).

It is based on Sage, but the standard download has only 60MB (and builds in less than 10 minutes) and then you only install packages that you really need (or you can just download the 2MB bare SPD package and install things yourself).

The aim of SPD is to make it easy for anyone to create all in one distributions with just the packages that he/she needs (e.g. packages that are currently in SPD, like scipy, numpy, notebook and then bunch of custom libraries, that don't even have a spkg yet).
<<<
/***
|''Name:''|SpanishTranslationPlugin|
|''Description:''|Translation of TiddlyWiki into Spanish|
|''Author:''|Dave Gifford giff (at) giffmex (dot) org|
|''Source:''|www.giffmex.org/twtutorialespanol.html |
|''CodeRepository:''||
|''Version:''||
|''Date:''|August 29, 2007|
|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev |
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]] |
|''~CoreVersion:''|2.2.5|
***/

//{{{
//--
//-- Translateable strings
//--

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

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

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

merge(config.tasks,{
        save: {text: "guardar", tooltip: "Guardar sus cambios a este TiddlyWiki", action: saveChanges},
        sync: {text: "sincronizar", tooltip: "Sincronizar cambios con otros archivos TiddlyWiki y servidores", content: '<<sync>>'},
        importTask: {text: "importar", tooltip: "Importar tiddlers y plugins de otros archivos TiddlyWiki y servidores", content: '<<importTiddlers>>'},
        tweak: {text: "modificar", tooltip: "Modificar la apariencia y comportamiento de TiddlyWiki", content: '<<options>>'},
        plugins: {text: "plugins", tooltip: "Manejar plugins instalados", content: '<<plugins>>'}
});

// Options that can be set in the options panel and/or cookies
merge(config.optionsDesc,{
        txtUserName: "Nombre usuario para firmar sus cambios",
        chkRegExpSearch: "Habilitar expresiones normales para búsquedas",
        chkCaseSensitiveSearch: "Búsquedas sensibles a mayúsculas",
        chkAnimate: "Habilitar animaciones",
        chkSaveBackups: "Guardar archivo de respaldo al guardar cambios",
        chkAutoSave: "Guardar cambios automáticamente",
        chkGenerateAnRssFeed: "Generar un archivo RSS al guardar cambios",
        chkSaveEmptyTemplate: "Generar una plantilla vacía al guardar cambios",
        chkOpenInNewWindow: "Abrir enlaces externos en una nueva ventana",
        chkToggleLinks: "Un tiddler abierto se cierra cuando el usuario hace clic en un enlace al tiddler",
        chkHttpReadOnly: "Ocultar elementos de edición cuando visto por medio de HTTP",
        chkForceMinorUpdate: "No actualizar modificador, nombre usuario o fecha cuando un tiddler es editado",
        chkConfirmDelete: "Requerir confirmación antes de borrar tiddlers",
        chkInsertTabs: "Usar la tecla de tabulación para insertar carácteres de tabulación en vez de alternar entre campos",
        txtBackupFolder: "Nombre de la carpeta que debe usarse para respaldos",
        txtMaxEditRows: "Máximo número de renglones en cajas de edición",
        txtFileSystemCharSet: "Juego de carácteres por defecto para guardar cambios (Firefox/Mozilla solamente)"});

merge(config.messages,{
        customConfigError: "Hubo problemas en la instalación de plugins. Véase PluginManager para los detalles",
        pluginError: "Error: %0",
        pluginDisabled: "No ejecutado por ser deshabilitado via la etiqueta 'systemConfigDisable'",
        pluginForced: "Ejecutado por ser forzado via la etiqueta 'systemConfigForce'",
        pluginVersionError: "No ejecutado porque este plugin requiere una versión más reciente TiddlyWiki",
        nothingSelected: "Nada ha sido seleccionado. Debe seleccionar uno o más elementos primero",
        savedSnapshotError: "Parece que este TiddlyWiki no ha sido guardado correctamente. Favor de consultar  http://www.tiddlywiki.com/#DownloadSoftware para más información",
        subtitleUnknown: "(desconocido)",
        undefinedTiddlerToolTip: "El tiddler '%0' no existe todavía",
        shadowedTiddlerToolTip: "El tiddler '%0' no existe todavía, pero tiene un valor oculto predefinido",
        tiddlerLinkTooltip: "%0 - %1, %2",
        externalLinkTooltip: "Enlace externo a %0",
        noTags: "No hay tiddlers con etiquetas",
        notFileUrlError: "Se necesita guardar este TiddlyWiki a un archivo antes de poder guardar cambios",
        cantSaveError: "No es posible guardar cambios. Posibles causas incluyen:\n- su navegador web no permite que guarde los cambios  (Firefox, Internet Explorer, Safari y Opera funcionan si son configurados correctamente)\n- la dirección a su TiddlyWiki contiene carácteres ilegales \n- el archivo TiddlyWiki HTML file ha sido removido o renombrado",
        invalidFileError: "El archivo original '%0' no parece ser un TiddlyWiki válido",
        backupSaved: "Respaldo guardado",
        backupFailed: "Respaldo no pudo ser guardado",
        rssSaved: "Archivo RSS guardado",
        rssFailed: "Archivo RSS no pudo ser guardado",
        emptySaved: "Plantilla vacía guardada",
        emptyFailed: "Plantilla vacía no pudo ser guardada",
        mainSaved: "Archivo TiddlyWiki guardado",
        mainFailed: "El archivo TiddlyWiki o pudo ser guardado. Sus cambios no han sido guardados",
        macroError: "Error en macro <<\%0>>",
        macroErrorDetails: "Error al ejecutar macro <<\%0>>:\n%1",
        missingMacro: "Tal macro no existe",
        overwriteWarning: "Un tiddler llamado '%0' ya existe. Presione OK para reemplazarlo",
        unsavedChangesWarning: "CUIDADO! Hay cambios no guardados en TiddlyWiki\n\nPresione OK para guardar\nPresione CANCELAR para cancelar cambios",
        confirmExit: "--------------------------------\n\nHay cambios no guardados en TiddlyWiki. Si continue, perderá los cambios\n\n--------------------------------",
        saveInstructions: "GuardarRespaldos",
        unsupportedTWFormat: "Formato '%0' no apoyado por TiddlyWiki",
        tiddlerSaveError: "Error en guardar tiddler '%0'",
        tiddlerLoadError: "Error en cargar tiddler '%0'",
        wrongSaveFormat: "No se puede guardar con formato de almacenaje '%0'. Cambiando a un formato válido para guardar.",
        invalidFieldName: "Nombre de campo '%0' inválido",
        fieldCannotBeChanged: "El campo '%0' no puede ser cambiado",
        loadingMissingTiddler: "Intentando acceder el tiddler '%0' del servidor '%1' en:\n\n'%2' en el área de trabajo '%3'"});

merge(config.messages.messageClose,{
        text: "cerrar",
        tooltip: "cerrar este área de mensaje"});

config.messages.backstage = {
        open: {text: "bastidores", tooltip: "Abrir el área entre bastidores para ejecutar tareas especiales de composición y edición"},
        close: {text: "cerrar", tooltip: "Cerrar el área entre bastidores"},
        prompt: "bastidores: ",
        decal: {
                edit: {text: "editar", tooltip: "Editar el tiddler '%0'"}
        }
};

config.messages.listView = {
        tiddlerTooltip: "Hacer clic para ver el texto completo de este tiddler",
        previewUnavailable: "(preeestreno 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", "miercoles", "jueves", "viernes", "sábado"];
config.messages.dates.shortMonths = ["ene", "feb", "mar", "abr", "mayo", "jun", "jul", "ag", "sep", "oct", "nov", "dic"];
config.messages.dates.shortDays = ["dom", "lun", "mar", "mier", "jue", "vie", "sáb"];
// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"
config.messages.dates.daySuffixes = ["","","","","","","","","","",
                "","","","","","","","","","",
                "","","","","","","","","","",
                ""];
config.messages.dates.am = "am";
config.messages.dates.pm = "pm";

merge(config.messages.tiddlerPopup,{
        });

merge(config.views.wikified.tag,{
        labelNoTags: "no hay etiquetas",
        labelTags: "etiquetas: ",
        openTag: "Abrir etiqueta '%0'",
        tooltip: "Mostrar tiddlers con etiqueta '%0'",
        openAllText: "Abrir todos",
        openAllTooltip: "Abrir todos estos tiddlers",
        popupNone: "No hay otros tiddlers con la etiqueta '%0'"});

merge(config.views.wikified,{
        defaultText: "El tiddler '%0' aún no existe. Hacer doble-clic para crearlo",
        defaultModifier: "(no encontrado)",
        shadowModifier: "(tiddler integral oculto)",
        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"});

merge(config.views.editor,{
        tagPrompt: "Escribir etiquetas separados por espacios, [[usar doble corchetes]] si es necesario, or seleccionar existentes",
        defaultText: "Escribir el texto para '%0'"});

merge(config.views.editor.tagChooser,{
        text: "etiquetas",
        tooltip: "Seleccionar etiquetas existentes para añadir a este tiddler",
        popupNone: "No hay etiquetas definidas",
        tagTooltip: "Añadir la etiqueta '%0'"});

merge(config.messages,{
        sizeTemplates:
                [
                {unit: 1024*1024*1024, template: "%0\u00a0GB"},
                {unit: 1024*1024, template: "%0\u00a0MB"},
                {unit: 1024, template: "%0\u00a0KB"},
                {unit: 1, template: "%0\u00a0B"}
                ]});

merge(config.macros.search,{
        label: "búsqueda",
        prompt: "Buscar en este TiddlyWiki",
        accessKey: "F",
        successMsg: "%0 tiddlers encontrados con %1",
        failureMsg: "Ningunos tiddlers encontrados con %0"});

merge(config.macros.tagging,{
        label: "etiquetas: ",
        labelNotTag: "no etiquetas",
        tooltip: "Lista de tiddlers con la etiqueta '%0'"});

merge(config.macros.timeline,{
        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

merge(config.macros.allTags,{
        tooltip: "Mostrar tiddlers con la etiqueta '%0'",
        noTags: "No hay tiddlers con etiquetas"});

config.macros.list.all.prompt = "Todos los tiddlers en orden alfabético";
config.macros.list.missing.prompt = "Tiddlers enlazados por otros tiddlers pero que no son definidos";
config.macros.list.orphans.prompt = "Tiddlers que no han sido enlazados por nigin otro tiddler";
config.macros.list.shadowed.prompt = "Tiddlers ocultos con contenido por defecto";
config.macros.list.touched.prompt = "Tiddlers que han sido modificados localmente";

merge(config.macros.closeAll,{
        label: "cerrar todos",
        prompt: "Cerrar todos los tiddlers abiertos (excepto los que están en modo de edición)"});

merge(config.macros.permaview,{
        label: "permavista",
        prompt: "Enlace al URL de este archivo con todos los tiddlers actualmente abiertos"});

merge(config.macros.saveChanges,{
        label: "guardar cambios",
        prompt: "Guardar todos los cambios a este TiddlyWiki",
        accessKey: "S"});

merge(config.macros.newTiddler,{
        label: "nuevo tiddler",
        prompt: "Crear un nuevo tiddler",
        title: "Nuevo Tiddler",
        accessKey: "N"});

merge(config.macros.newJournal,{
        label: "nuevo diario",
        prompt: "Crear un nuevo tiddler con el día y la hora como el título",
        accessKey: "J"});

merge(config.macros.options,{
        wizardTitle: "Modificar las opciones avanzadas",
        step1Title: "Estas opciones son guardadas como cookies en su navegador web",
        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'} 
                        ]}
        });

merge(config.macros.plugins,{
        wizardTitle: "Manejar plugins",
        step1Title: "Plugins actualmente instalados",
        step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
        skippedText: "(Este plugin no ha sido ejecutado porque fue añadido desde el último inicio del archivo)",
        noPluginText: "No hay plugins instalados",
        confirmDeleteText: "¿Está seguro que quiere eliminar estos plugins?:\n\n%0",
        removeLabel: "remover ña etiqueta systemConfig",
        removePrompt: "Remover la etiqueta systemConfig",
        deleteLabel: "borrar",
        deletePrompt: "Eliminar estos tiddlers para siempre",
        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: '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: "Sí", falseText: "No"},
                        {name: 'Startup Time', field: 'startupTime', title: "Tiempo de inicio", type: 'String'},
                        {name: 'Error', field: 'error', title: "Estado", type: 'Boolean', trueText: "Error", falseText: "OK"},
                        {name: 'Log', field: 'log', title: "Log", type: 'StringList'}
                        ],
                rowClasses: [
                        {className: 'error', field: 'error'},
                        {className: 'warning', field: 'warning'}
                        ]}
        });

merge(config.macros.toolbar,{
        moreLabel: "más",
        morePrompt: "Mostar más órdenes"
        });

merge(config.macros.refreshDisplay,{
        label: "refrescar",
        prompt: "Re-dibujar toda la visualización de TiddlyWiki"
        });

merge(config.macros.importTiddlers,{
        readOnlyWarning: "No se puede importar a un archivo TiddlyWiki de lectura. Intente abrirlo desde un archivo:// URL",
        wizardTitle: "Importar tiddlers de otro archivo o servidor",
        step1Title: "Primer paso: Localizar el servidor o archivo TiddlyWiki",
        step1Html: "Especificar el tipo de servidor: <select name='selTypes'><option value=''>Escoger...</option></select><br>Ingresar el URL or dirección al archivo aquí: <input type='text' size=50 name='txtPath'><br>...o navegar para buscar un archivo: <input type='file' size=50 name='txtBrowse'><br><hr>...o seleccionar un FEED predefinido: <select name='selFeeds'><option value=''>Escoger...</option></select>",
        openLabel: "abrir",
        openPrompt: "Abrir la conexión a este archivo o servidor",
        openError: "Hubo problemas en acceder el archivo Tiddlywiki",
        statusOpenHost: "Abriendo el servidor",
        statusGetWorkspaceList: "Adquiriendo la lista de áreas de trabajo disponibles",
        step2Title: "Segundo paso: Escoger el área de trabajo",
        step2Html: "Ingresar un nombre de un área de trabajo: <input type='text' size=50 name='txtWorkspace'><br>...o seleccionar un área de trabajo: <select name='selWorkspace'><option value=''>Escoger...</option></select>",
        cancelLabel: "cancelar",
        cancelPrompt: "Cancelar esta importación",
        statusOpenWorkspace: "Abriendo el área de trabajo",
        statusGetTiddlerList: "Adquiriendo la lista de tiddlers disponibles",
        step3Title: "Tercer paso: Escoger los tiddlers para importar",
        step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Mantener estos tiddlers enlazados a este server para poder sincronizar cambios posteriores</input><br><input type='checkbox' name='chkSave'>Guardar los detalles de este servidor en un tiddler 'systemServer' tiddler llamado:</input> <input type='text' size=25 name='txtSaveTiddler'>",
        importLabel: "importar",
        importPrompt: "Importar estos tiddlers",
        confirmOverwriteText: "¿Está seguro que quiere reemplazar estos tiddlers?:\n\n%0",
        step4Title: "Cuarto paso: Importando %0 tiddler(s)",
        step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
        doneLabel: "OK",
        donePrompt: "Cerrar este wizard",
        statusDoingImport: "Importando tiddlers",
        statusDoneImport: "Todos los tiddlers importados",
        systemServerNamePattern: "%2 en %1",
        systemServerNamePatternNoWorkspace: "%1",
        confirmOverwriteSaveTiddler: "El tiddler '%0' ya existe. Haga clic en 'OK' para reemplazarlo con los detalles de este servidor, o haga clic en 'Cancelar' para cancelar los cambios",
        serverSaveTemplate: "|''Tipo:''|%0|\n|''URL:''|%1|\n|''Área de trabajo:''|%2|\n\nEste tiddler fue creado automáticamente para guardar un record de los detallles 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: [
                        ]}
        });

merge(config.macros.sync,{
        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", type: 'String'},
                        {name: 'Server Workspace', field: 'serverWorkspace', title: "Área de trabajo del servidor", type: 'String'},
                        {name: 'Status', field: 'status', title: "Estado de sincronización", type: 'String'},
                        {name: 'Server URL', field: 'serverUrl', title: "Servidor URL", text: "View", type: 'Link'}
                        ],
                rowClasses: [
                        ],
                buttons: [
                        {caption: "Sincronizar estos tiddlers", name: 'sync'}
                        ]},
        wizardTitle: "Sincronizar con servidores y archivos externos",
        step1Title: "Escoger los tiddlers para sincronizar",
        step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
        syncLabel: "sincronizar",
        syncPrompt: "Sincronizar estos tiddlers",
        hasChanged: "Cambiado mientras desconectado",
        hasNotChanged: "No cambiado mientras desconectado",
        syncStatusList: {
                none: {text: "...", color: "ninguno"},
                changedServer: {text: "Cambiado en el servidor", color: '#80ff80'},
                changedLocally: {text: "Cambiado mientras desconectado", color: '#80ff80'},
                changedBoth: {text: "Cambiado mientras desconectado y en el servidor", color: '#ff8080'},
                notFound: {text: "No encontrado en el servidor", color: '#ffff80'},
                putToServer: {text: "Se guardó una actualización en el servidor", color: '#ff80ff'},
                gotFromServer: {text: "Adquirió una actualización del servidor", color: '#80ffff'}
                }
        });

merge(config.commands.closeTiddler,{
        text: "cerrar",
        tooltip: "Cerrar este tiddler"});

merge(config.commands.closeOthers,{
        text: "cerrar los demás",
        tooltip: "Cerrar todos los demás tiddlers"});

merge(config.commands.editTiddler,{
        text: "editar",
        tooltip: "Editar este tiddler",
        readOnlyText: "ver",
        readOnlyTooltip: "Ver la fuente de este tiddler"});

merge(config.commands.saveTiddler,{
        text: "OK",
        tooltip: "Guardar los cambios a este tiddler"});

merge(config.commands.cancelTiddler,{
        text: "cancelar",
        tooltip: "Cancelar los cambios a este tiddler",
        warning: "¿Seguro que quiere abandonar sus cambios a  '%0'?",
        readOnlyText: "OK",
        readOnlyTooltip: "Ver este tiddler normalmente"});

merge(config.commands.deleteTiddler,{
        text: "borrar",
        tooltip: "Borrar este tiddler",
        warning: "¿Seguro que quiere borrar '%0'?"});

merge(config.commands.permalink,{
        text: "permaenlace",
        tooltip: "Permaenlace para este tiddler"});

merge(config.commands.references,{
        text: "referencias",
        tooltip: "Mostar tiddlers que hacen referencia a este tiddler",
        popupNone: "No hay referencias"});

merge(config.commands.jump,{
        text: "saltar",
        tooltip: "Saltar a otro tiddler abierto"});

merge(config.commands.syncing,{
        text: "sincronización",
        tooltip: "Controlar la sincronización de este tiddler con un servidor o archivo externo",
        currentlySyncing: "<div>En proceso de sincronizar via <span class='popupHighlight'>'%0'</span> a:</"+"div><div>servidor: <span class='popupHighlight'>%1</span></"+"div><div>área de trabajo: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
        notCurrentlySyncing: "No hay sincronización en proceso",
        captionUnSync: "Dejar de sincronizar este tiddler",
        chooseServer: "Sincronizar este tiddler con otro servidor:",
        currServerMarker: "\u25cf ",
        notCurrServerMarker: "  "});

merge(config.commands.fields,{
        text: "campos",
        tooltip: "Mostrar los campos extendidos de este tiddler",
        emptyText: "No hay campos extendidos para este tiddler",
        listViewTemplate: {
                columns: [
                        {name: 'Field', field: 'field', title: "Campo", type: 'String'},
                        {name: 'Value', field: 'value', title: "Valor", type: 'String'}
                        ],
                rowClasses: [
                        ],
                buttons: [
                        ]}});

merge(config.shadowTiddlers,{
        DefaultTiddlers: "[[IniciarConTiddlyWiki]]",
        MainMenu: "[[IniciarConTiddlyWiki]]\n\n\n^^~TiddlyWiki versión <<version>>\n© 2007 [[UnaMesa|http://www.unamesa.org/]]^^",
        IniciarConTiddlyWiki: "Para empezar con este TiddlyWiki vacío, necesitará modificar los siguientes tiddlers:\n* SiteTitle & SiteSubtitle: El título y subtítulo del sitio, mostrados en el encabezado (después de guardar, también aparecerán en la barra del título de su navegador web)\n* MainMenu: El menú principal que funciona como tabla de contenido para el usuario (generalmente este menú se encuentra a la izquierda)\n* DefaultTiddlers: Contiene los nombres de los tiddlers que aparecerán cuando el archivo TiddlyWiki se abre\nAdemás, necesitará ingresar su nombre usuario para firmar sus cambios posteriores al archivo: <<option txtUserName>>",
        SiteTitle: "Mi TiddlyWiki",
        SiteSubtitle: "un cuaderno web personal, no lineal y reutilizable",
        SiteUrl: "http://www.tiddlywiki.com/",
        OptionsPanel: "Estas opciones para personalizar TiddlyWiki son guardados en su navegador\n\nSu nombre de usuario para firmar los cambios que realiza. Escríbalo como PalabraWiki (eg JuanDiego)\n<<option txtUserName>>\n\n<<option chkSaveBackups>> GuardarRespaldos\n<<option chkAutoSave>> AutoGuardar\n<<option chkRegExpSearch>> BuscaRegExp\n<<option chkCaseSensitiveSearch>> BúsquedaSensible\n<<option chkAnimate>> HabilitarAnimaciones\n\n----\Véase también [[OpcionesAvanzadas|AdvancedOptions]]",
        SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "opciones »" "Cambiar las opciones avanzadas de TiddlyWiki">>',
        SideBarTabs: '<<tabs txtMainTab "Fecha" "tiddlers por fecha de creación" TabTimeline "Título" "Tiddlers por título" TabAll "Etiquetas" "Todas las etiquetas" TabTags "Más" "Más listas" TabMore>>',
        TabMore: '<<tabs txtMoreTab "perdidos" "Tiddlers que no existen" TabMoreMissing "huérfanos" "Tiddlers que no han sido enlazados por ningun otro tiddler" TabMoreOrphans "ocultos" "Tiddlers ocultos" TabMoreShadowed>>'});

merge(config.annotations,{
        AdvancedOptions: "Este tiddler oculto provee acceso a varias opciones avanzadas",
        ColorPalette: "Los valores en este tiddler oculto determinan la esquema de colores de este ~TiddlyWiki",
        DefaultTiddlers: "Los tiddlers alistados en este tiddler oculto se abren automáticamente cuando se abre este archivo ~TiddlyWiki",
        EditTemplate: "La plantilla HTML en este tiddler oculto determina la apariencia de los tiddlers cuando están en modo de edición",
        GettingStarted: "Este tiddler oculto provee instrucciones básicas acerca del uso de ~TiddlyWiki",
        ImportTiddlers: "Este tiddler oculto permite la importación de tiddlers de otros archivos",
        MainMenu: "Este tiddler oculto se usa como la tabla de contenido del menú principal en la columna a la izquiera de la pantalla",
        MarkupPreHead: "Este tiddler es insertado en la parte superior de la sección <head> del HTML de ~TiddlyWiki",
        MarkupPostHead: "Este tiddler es insertado en la parte inferior de la sección <head> del HTML de ~TiddlyWiki",
        MarkupPreBody: "Este tiddler es insertado en la parte superior de la sección <body> del HTML de ~TiddlyWiki",
        MarkupPostBody: "Este tiddler es insertado en la parte inferior de la sección <body> del HTML de ~TiddlyWiki immediatamente antes del 'script block'",
        OptionsPanel: "Este tiddler oculto se usa como el contenido del panel de opciones en el menú a la derecha",
        PageTemplate: "La plantilla HTML en este tiddler oculto determina la presentación general de este ~TiddlyWiki",
        PluginManager: "Este tiddler oculto provee acceso al administrador de plugins",
        SideBarOptions: "Este tiddler oculto se usa como el contenido de las opciones de la parte superior del menú a la derecha",
        SideBarTabs: "Este tiddler oculto se usa como el contenido del panel de pestañas en el menú a la derecha",
        SiteSubtitle: "Este tiddler oculto contiene el subtítulo del sitio o página",
        SiteTitle: "Este tiddler oculto contiene el título del sitio o página",
        SiteUrl: "Este tiddler debe ser configurado al URL completo cuando el archivo se publica",
        StyleSheetColours: "Este tiddler oculto contiene definiciones de CSS relacionadas con los colores de los elementos de la página",
        StyleSheet: "Este tiddler puede contener definiciones de CSS que el usuario asigna",
        StyleSheetLayout: "Este tiddler oculto contiene definiciones de CSS relacionadas con la configuración visual de los elementos de la página",
        StyleSheetLocale: "Este tiddler oculto contiene definiciones de CSS relacionadas con el local de la traducción",
        StyleSheetPrint: "Este tiddler oculto contiene definiciones de CSS relacionadas con la impresión",
        TabAll: "Este tiddler oculto contiene los contenidos de la pestaña 'Título' en el menú a la derecha",
        TabMore: "Este tiddler oculto contiene los contenidos de la pestaña 'Más' en el menú a la derecha",
        TabMoreMissing: "Este tiddler oculto contiene los contenidos de la pestaña 'perdidos' en el menú a la derecha",
        TabMoreOrphans: "Este tiddler oculto contiene los contenidos de la pestaña 'huérfanos' en el menú a la derecha",
        TabMoreShadowed: "Este tiddler oculto contiene los contenidos de la pestaña 'ocultos' en el menú a la derecha",
        TabTags: "Este tiddler oculto contiene los contenidos de la pestaña 'Etiquetas' en el menú a la derecha",
        TabTimeline: "Este tiddler oculto contiene los contenidos de la pestaña 'Fecha' en el menú a la derecha",
        ViewTemplate: "la plantilla HTML en este tiddler oculto determina la apariencia de los tiddlers cuando están en modo de lectura"
        });

//}}}
* [[Read about Squeak (in Spanish)| http://www.nabble.com/Read-about-Squeak-(in-Spanish)-td19948539.html]]: Un correo en la lista de Squeak que refernecia varios enlaces en español sobre Squeak.
* [[Back to the Future Once More| http://stephane.ducasse.free.fr/FreeBooks/CollectiveNBlueBook/formatted-btf-once-more.pdf]]
* [[My Morphle, a comfortable place| http://www.morphle.org/]]: un proyecto en Squeak que pretende cambiar la forma como las personas tienen presencia en la Web.
** [[Propuesta de Morphle| http://www.squeakphone.com:8203/seaside/pier/Morphle]] (pdf) contiene la propuesta completa de esta visión y las tecnologías que lo implementan (y las que reemplaza).
* [[Pharo| http://code.google.com/p/pharo/]]: Pharo (aka Smalltalk burn the disk pack) is an open source Smalltalk. The goal of Pharo is to produce a clean and lean open-source Smalltalk. Pharo wants to bring Squeak to the next level.
** Pharo wants to help people invent the future.
** Pharo may not be compatible with Squeak: Do not expect Etoys/Nebraska to work.
** We will try to avoid to reinvent the wheel but will change if change is better. We will produce a set of good packages that will be able to be loaded on a micro/tiny kernel. 
* [[Music Objects in Squeak| http://www.zogotounga.net/comp/squeak/sqgeo.htm]]
* Url de pruebas para firefox portable: http://squeakland.org/project.jsp?/http://recursostic.javeriana.edu.co/squeak/histologia.pr
* [[Pongo | http://pongo.sourceforge.net/]] an MSN Instant Messenger client written in VisualWorks Smalltalk. Pongo runs on Intel Linux, Windows (95/98/ME/NT/2000/XP), Mac OS X, AIX, SGI Irix, Compaq UNIX, HP-UX, and Solaris. 
* [[Ruby The Smalltalk Way #1 - Fundamentals | http://www.sapphiresteel.com/Ruby-The-Smalltalk-Way-1]]
* [[Video: Linex Squeak. Extremadura | http://www.tu.tv/videos/linex-squeak-extremadura]]
* Probando Squeak en disco duro desde el LiveCD de Puppy Linux:
{{{
  /mnt/hda1/usr/local/lib/squeak/3.7-7/squeak -plugins /mnt/hda1/usr/local/lib/squeak/3.7-7/ /mnt/hda6/offray/Programas/Lenguajes/Squeak/BotsInc/Ready.image 
}}}
* [[Icons for OmniBrowser | http://smallwiki.unibe.ch/hermion/icons/]]
* [[Planet Squeak Updates| http://planetmisc.squeak.org/]]: Actualizaciones técnicas de paquetes de Monticello e imágenes.
* [[The Squeak Oversight Board Blog| http://squeakboard.wordpress.com/]]
* [[Notas y enlaces sobre Smalltalk| http://www.ociweb.com/mark/programming/Smalltalk.html]] (Smalltalk es el lenguaje en el que está basado Squeak)
* [[Unnamed Grand Project| http://gulik.pbwiki.com/]]: "In a single sentence, it's a distributed object architecture with a custom client that is meant to replace the World Wide Web".
: Es interesante como este y otros proyectos como Croquet, repiensan desde Squeak lo que podría ser Internet tal como //no// la conocemos.
!! De la lista de Squeak
Bert Freudenberg
<<<
in contrast to many other languages which are most easily learned by creating simple programs writing to stdin/stdout. The power of Squeak is in the system (the development tools and frameworks), not so much the language (which is powerful, too, but not really what sets Squeak apart).
<<<

Sobre la "eficiencia" de la comunidad (me acuerda del humor geek en el canal #gluc)
<<<
Rob Rothwell: How is it possible that things happen faster around here than they do in most businesses?
Michael van der Gulik: Because we're all at work, procrastinating on the Squeak mailing lists :-P.
<<<


!! Lecturas
Dan Ingalls //Back to the Future Once More//
<<<
The immediate focus at Squeak Central was not on browser access,
but rather on leveraging the network to distribute “updates” to anyone
participating in the active development of Squeak itself, or managing
their own collaborative development efforts. The update mechanism
is a simple and effective approach to coordinated system development.
Each update is a file containing Squeak source code and possibly exe-
cutable expressions as well. On a server is a list of all updates published
so far, and an index of the order in which they were published. Any
Squeak system connected to the internet can automatically determine
what files have been published since it was last updated, and can read
them in, thus becoming current with the latest work at Squeak Cen-
tral or with the image from which the system updates were issued.
This mechanism immediately brought the entire Squeak community
together and allowed anyone to follow the latest changes with almost
no effort at all
<<<

Sobre la OLPC y los Etoys, en http://diegolevis.com.ar/tecnocultura/:
<<<
El aporte pedagógicamente más innovador y posiblemente más prometedor de la laptop parece ser Etoys, una aplicacion para crear actividades multimedia cuyo potencial y modo de uso me gustaría conocer en profundidad.»
<<<

Craig Latta en http://wiki.squeak.org/squeak/5930
<<<
I think the future of Smalltalk is one in which it is seen as the
easiest way to teach the expression of intent with a computer, and the
most productive way to build meaningful systems. So far I think
Smalltalk has done rather well on the second part, but very poorly on
the first.
<<<

!!! Comments on Java programming:

[From a post on comp.lang.smalltalk] encontrado en http://www.rowledge.org/tim/squeak/index.html
<<<
Java programming is like teenage sex ....
* Everyone talks about it all of the time (but they don't really know what they're talking about);
* Everyone claims to be doing it;
* Everyone thinks everyone else is doing it;
* Those few who are actually doing it:
** Are not practicing it safely;
** Are doing it poorly, and
** Are sure it will be better next time."
<<<

En http://www.blackbagops.net/?p=91
<<<
Which is unfortunate. The state of the software industry is deplorable. I think 90% of the people programming out there ought to be doing something else. They suck at their job and aren’t even educated enough to understand that they suck much less how they suck. One trick ponies, they flounder if given a problem that isn’t pre-solved in their platform. FACT: the best indicator that a candidate is likely to fail the interview process at big river books is if they characterize themselves as a “Java Architect” or “Java Developer”. It usually means they don’t know anything else. They think Java (or .NET) is the pinnacle of software achievement. Without a proper education, they can’t conceive of anything else.
<<<
* [[Smalltalk is cool again says gartners| http://news.squeak.org/2008/10/11/smalltalk-is-cool-again-says-gartner/]]
* [[Remember Smalltalk?| http://blogs.gartner.com/mark_driver/2008/10/09/remember-smalltalk/]]
* [[Soup for Squeak| http://news.squeak.org/2009/01/19/soup-for-squeak/]] "a Squeak port of Beautiful Soup, the tolerant HTML/XML parser written in Python, which is extremely useful when you need to scrape data from a web page".
* [[seaBreeze| http://seabreeze.heeg.de/]]: Un //framework// para la creación de aplicaciones web sobre Seaside.
* [[Mars| http://news.squeak.org/2009/01/08/squeak-goes-to-mars/]] "an MVC framework for Squeak built using Cocoa"
* Una secuencia de tres artículos por [[Juan Rafael Fernández García| http://people.ofset.org/jrfernandez/]] de la revista Linux Magazine en español
** [[Squeak. ¿La herramienta que hará la revolución educativa?| http://people.ofset.org/jrfernandez/edu/n-c/squeak_1.pdf]]
** [[Esto es lo que hay| http://people.ofset.org/jrfernandez/edu/n-c/squeak_2.pdf]]
** [[¿Un juicio justo?| http://people.ofset.org/jrfernandez/edu/n-c/squeak_3.pdf]]

* Why Squeak? una serie de artículos sobre el uso de Squeak para diseñar software educativo:
** [[Why Squeak Parte I: Introducción| http://blog.ofset.org/hilaire/index.php?post/2008/04/17/Why-Squeak-Part-I]]
** [[Why Squeak Parte II: El uso de la "imagen"| http://blog.ofset.org/hilaire/index.php?post/2008/04/24/Why-Squeak-Part-II]], explora las implicaciones educativas de tener un archivo //image// en Squeak.

* Enlaces con reflexiones educativas sobre el uso de Squeak en educación media:
** [[Rebautizando Squeak| http://squeak.blog.com/519834/]]
** [[Hablan los alumnos/as| http://squeak.blog.com/233581/]] y [[Hablan los alumnos/as II| http://squeak.blog.com/342280/]]
** [[Una nueva experiencia y Squeak| http://squeak.blog.com/729061/]], [[la visita| http://costasalvarez.blogspot.com/2006/05/la-visita-ayer-tuvimos-la-oportunidad.html]] y [[Los "peques" enseñan a los mayores| http://elblogdeschenell.blogspot.com/2006/05/los-peques-ensean-los-mayoreshoy-en-la.html]] hablan de una experiencia en la que los niños enseñan a adultos a usar Squeak.
* [[Programando Robots (de hardware) en Squeak| http://prog2.vub.ac.be/~cderoove/esugtalks/stinckwich.pdf]]
* [[Fútbol de robots en Squeak| http://tecnodacta.com.ar/gira/?p=26]]
* [[Comikit| http://www.comikit.com/download/]]: Un sistema de programación gráfica, basada en Comics y hecha en Squeak. Libre para uso no comercial
** [[Página académica sobre Comikit| http://www.ida.liu.se/~mikki/index.php?page=Comics]] de la Universidad de Linköpings con ''papers'' y más enlaces al respecto.
* [[V-toys| http://community.ofset.org/wiki/V-toys]]: una extensión compatible con los eToys para enseñar a programar a los niños construyendo juguetes digitales/virtuales
* [[Repositorio de proyectos educativos de Squeakpolis en Educarex| http://proyectos.educarex.es/All/]]
* [[Hoja de cálculo en Squeak| http://www.youtube.com/watch?v=i9jkw8yG3KI&mode=related&search=]]
* [[Una experiencia interdisciplinar en Ed. Primaria mediante el uso de Squeak| http://dewey.uab.es/pmarques/pdigital/simo/adriana.pdf]] por: Fernando Fraga Adriana Gewerc de la Universidad de Santiago.
* [[Construccion de triangulos y poligonos| http://swiki.agro.uba.ar/small_land/204]], los cuales pueden ser de gran ayuda para los novatos que recien empiezan a utilizar squeak
* [[Programa para medi el Ph| http://swiki.agro.uba.ar/small_land/213]],  ademas si quieres ver el proyecto debes tener instalado el plugin de squeak y se podra aprender un nivel mas de programacion en squeak
* [[Geometría y un sistema experto, con Squeak Prolog| http://community.ofset.org/wiki/G%C3%A9om%C3%A9trie_et_syst%C3%A8me_expert]]
* http://www.supersciencekids.com/: No es propiamente sobre Squeak, pero es un evento, patrocinado por Hewlett Packard en Japón, que alienta a los niños a crear artefactos digitales que den cuenta de procesos científicos, del que me enteré en el ~SqueakFest2007
* [[Squeak for education en Japón| http://www.yc.musashi-tech.ac.jp/~design/squeak/index.html]]
~SqueakMap Es un repositorio de paquetes que extiende la funcionalidad de Squeak:
!! Paquetes Probados
Estos paquetes del ~SqueakMap han sido probados en la versión de Squeak3.8. Algunos mensajes hablan de posibles incompatibilidades, pero pueden se puede hacer caso omiso a ellos.
* Taksbar: Funciona como la barra de tareas de algunos ambientes de escritorio, listando u ocultando los objetos gráficos abiertos en Squeak.
* Sokoban Enhanced: Después de Instalado queda disponible en la categoría ''Juegos'' del ''Catálogo de Objetos''.
!! Paquetes Interesantes por probar
* ~SVGMorph(): Se recomienda usar bajo su propio riesgo.
* Sudoku solver and generator: A mi no me gusta el sudoku, pero pueden haber interesados.
* ~ST2JS: Smalltalk to Java Script generator.
* ~SqueakSVN
* [[Tutorial desactualizado de Space Invaders| http://209.143.91.36/super/503]]
* [[Tutorial de Space Invaders Actualizado| http://billkerr2.blogspot.com/2007/11/how-to-make-space-invaders-in-etoys.html]]
* [[Soporte de teclado| http://wiki.squeak.org/squeak/488]]
* [[Squeak & JavaScript| http://www.nabble.com/RE%3A-Smalltalk---Javascript-p13573047.html]], la particularmente completa, respuesta de Ron Teitelbaum (como siempre) a una pregunta en Squeak Newbies
* [[OOPSLA 2007| http://goran.krampe.se/blog/OOPSLA/OOPSLA07-1.rdoc]]

!! Squeak y la consola de comandos
* [[OSProcess| http://wiki.squeak.org/squeak/708]]: Para conectar //desde// Squeak con el sistema operativo.
** [[Código de ejemplo| http://article.gmane.org/gmane.comp.lang.smalltalk.squeak.beginners/5161]] en la lista Squeak Beginners por Randal L. Schwartz.
* [[Writing scripts| http://wiki.squeak.org/squeak/425]]: Para ejecutar un script de Squeak desde la consola de comandos. (es decir en el sentido alterno al script anterior).
* GNU Smalltalk y Spoon pueden ser usados mejor en los escenarios anteriores.
* Existe algo llamado el modo //headless// que permite usar Squeak sin la interface gráfica.
[[Squeaky Tales| http://waveplace.com/resources/tutorials/]] Un conjunto de video tutoriales que explican cómo usar Squeak para crear versiones digitales de cuentos tradicionales de Haiti, Florida y Nicaragua, con niños de esos lugares.
Es un sistema de notificación que algunos programas necesitan para ejecutarse. Por omisión se ejecuta en la parte inferior izquierda de la pantalla. El siguiente archivo de configuración lo coloca en la parte inferior derecha.

''Archivo:'' {{{~/.stalonetrayrc}}}
{{{
# vim:filetype=config:tw=80:et
# 
# This is sample ~/.stalonetrayrc, resembling default configuration.
# Remember: command line parameters take precedence.
#
# Directives introduced in 0.7.6 are marked with "NEW in 0.7.6"
#
####################################################################
# 
# stalonetray understands following directives
#
####################################################################

# background <color>         # color can be specified as an HTML hex triplet or
                             # as a name from rgb.txt, note that '#' must be quoted
background "#777777"

# decorations <decspec>      # set trays window decorations; possible values for
                             # decspec are: all, title, border, none
decorations none

# display <display name>     # as usual

# dbg_level <int>            # controls the amount of debug info (for this setting to
                             # have effect, stalonetray sources must have been
                             # configured and compiled with --enable-debug)
# dbg_level 0

# fuzzy_edges [<level>]      # enable fuzzy edges and set fuzziness level. level
                             # can be from 0 (disabled) to 3; this setting works
                             # with tinting and/or transparent and/or pixmap
                             # backgrounds (NEW in 0.7)
fuzzy_edges 0

# geometry <geometry>        # tray's geometry in standard X notation
geometry 90x24-4-4

# grow_gravity <gravity>     # one of N, S, E, W, NW, NE, SW, SE; tray will grow
                             # in the direction opposite to one specified by
                                                         # grow_gravity; if horizontal or vertical
                                                         # direction is not specified, tray will not grow in
                                                         # that direction
grow_gravity NW

# icon_gravity <gravity>     # icon placement gravity, one of NW, NE, SW, SE
icon_gravity NE

# icon_size <int>            # specifies dimensions of typical icon slot
icon_size 24

# ignore_icon_resize [<bool>] # ignore icon attempts to resize their windows
                             # (NEW in 0.7)
ignore_icon_resize false

# max_width <int>            # specifies maximal tray's width (0 = no limit)
max_width 0

# max_height <int>           # specifies maximal tray's height (0 = no limit)
max_height 24

# no_shrink [<bool>]         # disables shrink-back mode (NEW in 0.7)
no_shrink false

# parent_bg [<bool>]         # whether to use pseudo-transparency 
                             # (looks better when reparented into smth like FvwmButtons)
parent_bg false

# pixmap_bg <path_to_xpm>    # use pixmap from specified xpm file for (tiled) background
# pixmap_bg /home/user/.stalonetraybg.xpm

# respect_icon_hints [<bool>] # try to respect icon hints (NEW in 0.7)
respect_icon_hints false

# skip_taskbar [<bool>]      # hide tray`s window from the taskbar
skip_taskbar true

# sticky [<bool>]            # make a tray`s window sticky across the
                             # desktops/pages
sticky true

# tint_color <color>         # set tinting color (NEW in 0.7)
tint_color black

# tint_level <level>         # set tinting level; level ranges from 0 (disabled)
                             # to 255 (NEW in 0.7)
tint_level 0 

# transparent [<bool>]       # whether to use root-transparency (background
                             # image must be set with Esetroot or compatible utility)
transparent true

# vertical [<bool>]          # whether to use vertical layout (horisontal layout
                             # is used by default)
vertical false

# window_layer <layer>       # set the EWMH-compatible window layer; one of:
                             # bootom, normal, top
window_layer bottom

# window_type <type>         # set the EWMH-compatible window type; one of:
                             # dock, normal, toolbar, utility
window_type dock 

# withdrawn [<bool>]         # start withdrawn (NEW in 0.7, prior to that
                             # withdrawn mode was default!)
withdrawn false 

# xsync [<bool>]             # whether to operate on X server synchronously (SLOOOOW)
xsync false
}}}
Sudo es una utilidad que permite adquirir momentáneamente permisos de superusuario. Esto es conveniente, pues muchos de los procesos no requieren permisos de superusuario todo el tiempo y restringir su uso a los momentos realmente necesarios ayuda a hacer el sistema más seguro. Programas como ~ArchE17 hacen uso de sudo y sólo pueden ser lanzados a través de este.
!! Instalación
Para instalarla en Arch Linux hacemos:
<<<
''Consola superusuario:''
{{{
pacman -S sudo
}}}
<<<
!! Configuración
Para esto se pueden serguir las 
* [[intrucciones de configuración de Sudo en Arch Linux| http://wiki.archlinux.org/index.php/Sudo]]
* [[Why sudo is not working| http://bbs.archlinux.org/viewtopic.php?id=67251]] en los foros de Arch Linux.
Con algunas recomendaciones:
* No es necesario el uso de vi ni visudo para la edición.
* Cuando sudo pide el password se refiere al del usuario que lo ejecuta, no al del superusuario.
El archivo generado en mi caso luce así:
<<<
''Archivo:'' {{{/etc/sudoers}}}
{{{
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
# Failure to use 'visudo' may result in syntax or file permission errors
# that prevent sudo from running.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# Runas alias specification

# User privilege specification
root	ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel	ALL=(ALL) ALL

# Same thing without a password
# %wheel	ALL=(ALL) NOPASSWD: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
# %users ALL=(ALL) NOPASSWD:/usr/bin/pacman
%users ALL=(ALL) NOPASSWD:/usr/bin/abs

# user created during chakra setup
offray     ALL=(ALL) ALL
offray	   ALL=NOPASSWD: /usr/bin/pacman
offray	   ALL=NOPASSWD: /usr/bin/pacdiffviewer

}}}
<<<
* [[Sugar on a Stick| http://wiki.sugarlabs.org/go/Sugar_on_a_Stick]]: Una versión del interface informática educativa Sugar, que se ejecuta desde una memoria USB.
* [[Sugar on a Stick Virtualbox| http://wiki.sugarlabs.org/go/Sugar_on_a_Stick_VirtualBox]]: Cómo ejecutar este entorno usando vitualización en lugar de tener que reiniciar la máquina.
* [[Fotos Sugar on a Stick| http://www.flickr.com/photos/curiouslee/3289629736/in/set-72157613785006745/]]: Lo muestra ejecutándose en el Classmate versión 3 y en el XO. Nótese coom la resolución de las dos pantallas difiere. Para otros modelos de máquinas véase: [[Computación 1 a 1|ComputacionUnoAUno]]
* [[Actividad Freecell en Squeak| http://activities.sugarlabs.org/en-US/sugar/addon/4054]]: un ejemplo de cómo usar Squeak para crear actividades compatibles con la interface de Sugar.
* [[One Laptop Per Child Foundation No Longer a Disruptive Force, Bender Fears; Q&A on His Plans for “Sugar” Interface| http://www.xconomy.com/boston/2008/04/24/one-laptop-per-child-foundation-no-longer-a-disruptive-force-bender-fears-qa-on-his-plans-for-sugar-interface/2/]]: Entrevista con Walter Bender. Acá algunos de los apartes más interesantes.
<<<
I think the culture around free software is actually a powerful culture for learning, and one of my goals from the very beginning of the project was to try to instill in the education industry some of the culture and technology and morals of the open source movement. I think it would greatly enhance the learning and education industry and their ability to engage teachers and students. So many different things are tied up in this concept. It’s both about freedom, and the freedom to be critical. Criticism of ideas is a powerful force in learning, and unleashing that is, I think, an important part of the OLPC mission.
<<<
:[...]
<<<
one of my goals in Peru was to build a lot of redundancy around support. That’s fundamentally a social problem, and how you solve it is an enormous challenge and one that I’m really interested in. So there is a technical piece and a social-cultural piece and both of them are passions of mine.
<<<
:[...]
<<<
I tried to build the solution based on three very simple principles about what makes us human. Because I knew this had to be something that worked everywhere, with every child. The first of the three things is that everyone is a teacher and a learner. Second, humans by their nature are social beings. Third, humans by their nature are expressive.
<<<
:[...]
<<<
I was very much influenced by Seymour Papert and his constructionist theories, which can be summarized in my mind very efficiently by two aphorism. One is that you learn through doing, so if you want more learning you want more doing. The second is that love is a better master than duty. You want people to engage in things that are authentic to them, things that they love. The first is more addressed by the Sugar technology; the second is more addressed by the culture around freedom.
<<<
Es una plataforma de //microblogging// creada sobre turbo gears. Al parecer no soporta canales, ni etiquetas. Los desarrolladores principales son hispanopartlantes. Están pensando en cambiar el framework base de desarrollo para la versión 3.0
* [[Sweetter 3.0| http://wiki.sweetter.net/sweetter%203.0]]
!! Instalación
<<<
{{{
yaourt sqlobject
}}}
<<<
[>img[http://2.bp.blogspot.com/_rh0QblLk0C0/SYmYK56bA6I/AAAAAAAAADc/6DU4VOcM4nE/s400/z_2525.png]]
<<<
is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. ~SymPy is written entirely in Python and does not require any external libraries.
<<<
: De la [[pagina web de SymPy| http://code.google.com/p/sympy/]]
* [[SymPy Tutorial| http://docs.sympy.org/tutorial.html]]
* [[SymPy Guide| http://docs.sympy.org/guide.html#guide]]: cómo explorar el código de este programa.
* [[SymPy Modules Reference| http://docs.sympy.org/modules.html#module-docs]]: El código fuente de las diferentes funcionalidades matemáticas para estudiarlo y extenderlo.
* [[Presentación de SymPy en los Sage Days 6| http://sympy.googlecode.com/svn/materials/presentations/SD6.pdf]]
* [[Sesión Web interactiva de SimPy| http://live.sympy.org/]]
* [[Consola "gráfica" de SymPy| http://live.sympy.org/graphical]] con salida ~LaTeX vía JsMath.
* [[SympyCore| http://code.google.com/p/sympycore/]]
* [[Empathy| http://empathy.sympy.org/]] Similar al //Integrator// de Wolfram, pero no sólo para integrales y el motor de fondo es ~SymPy.
* [[Blog de SymPy| http://planet.sympy.org/]]: Acá hay algunos post que me parecieron interesantes:
** [[SAGE Days 6| http://ondrejcertik.blogspot.com/2007/11/sage-days-6.html]]
** [[Galería de funciones matemáticas, generadas con mpmath| http://mpmath.googlecode.com/svn/gallery/gallery.html]] Una de ellas adorna esta página.
** [[SymPy core in Cython, general CAS design thoughts| http://ondrejcertik.blogspot.com/2008/08/sympy-core-in-cython-general-cas-design.html]]
** [[Jacobi theta function fractals| http://fredrik-j.blogspot.com/2009/01/jacobi-theta-function-fractals.html]] en el blog de Fredrik Johansson
!! Enlaces relacionados
* [[mpmath| http://code.google.com/p/mpmath/]] " is a pure-Python library for multiprecision floating-point arithmetic. It provides an extensive set of transcendental functions, unlimited exponent sizes, complex numbers, interval arithmetic, numerical integration and differentiation, root-finding, linear algebra, and much more. Almost any calculation can be performed just as well at 10-digit or 1000-digit precision, and in many cases mpmath implements asymptotically fast algorithms that scale well for extremely high precision work. If available, mpmath will (optionally) use gmpy to speed up high precision operations."
* [[gmpy| http://code.google.com/p/gmpy/]]: Multiprecision arithmetic for Python
* [[Pyglet| http://pyglet.org/]]: "a cross-platform windowing and multimedia library for Python" Usado para interacciones "gráficas" en ~SymPy.
* [[Symbide| http://symbide.googlecode.com/svn/trunk/website/html/home.html]]: "is a Python IDE with strong emphasis on physical and mathematical calculations, that afterwards have to be presented to an audience". No se actualiza desde el 2007, pero en su épica usó ~SymPy como backend para varios cálculos.
* NatGeo
** Animales como nosotros
*** Uso comparativo de herramientas en diferentes animales (protoherramientas: no se mueven).
* Héroes: Viernes 10:00 pm. Repetición Sábado 6 - 8 a.m. Domingo 7 am
* [[Structured Wiki | http://twiki.org/cgi-bin/view/Codev/StructuredWiki]]: Un wiki estructurado pretende combinar las ventajas de una base de datos (estructurada, con soporte de Workflows) y un wiki (orgánico, hipertextual) para tener lo mejor de los dos mundos.
* [[Startups Convene: TWiki Offers ‘Structured’ Wikis for Biz | http://www.redherring.com/Article.aspx?a=20099]]
* [[TWiki Application | http://twiki.org/cgi-bin/view/Codev/TWikiApplication]]: habla de cómo pasar de una plataforma colaborativa de escritura de hipertexto a una de escritura colaborativa de aplicaciones Web.
* [[Bliki usando Twiki| http://micha.wikiring.de/Main/WebHome]].
<<allTags excludeLists>>
<<tabs txtMoreTab "Tags" "All Tags" TabAllTags "Miss" "Missing tiddlers" TabMoreMissing "Orph" "Orphaned tiddlers" TabMoreOrphans "Shad" "Shadowed tiddlers" TabMoreShadowed>>
<<allTags excludeLists [a-z]>>
* [[TouchBook| https://www.alwaysinnovating.com/touchbook/info.htm]]: Un //tablet// basado en software libre y con teclado removible en formato de 9". Una alternativa económica e interesante.
* [[Archos 9PCTablet| http://www.archos.com/products/nb/archos_9/index.html?country=co&lang=en]]: Interasante factor de forma pero viene con Windows y cuesta 450 Dólares.
* [[Maemo| http://maemo.nokia.com/]]:"brings the power of computers to mobile devices. Designed with the internet at its core, Linux-based Maemo software takes us into a new era of mobile computing."
** [[Do you take contributions? or is it "Beware of the Leopard"| http://mer-l-in.blogspot.com/2009/09/do-you-take-contributions-or-is-it.html]]: Un post de un blog que explica como aún (sept. 2009) Nokia no ha incorporado las lógicas del software libre a su proceso, a pesar de que las licencias son libres.
* [[Kicker Studio| http://www.kickerstudio.com/]]: "We help companies design innovative products that are as pleasing to use as they are to look at and touch. We specialize in touchscreens and gestural interfaces."
Algunos proyectos interesantes que usan //tag clouds//:
* http://www.quintura.com/
* http://www.twitscoop.com/

Los //hashtags// son etiquetas creadas precediendo una palabra por el signo numeral (#) y se emplean para crear nubes de etiquetas, entre otros usos. Acá algunos portales que se ocupan de ellas.
* Definiciones de las etiquetas empleadas en Twitter.
** http://tagdef.com/ 
** http://wthashtag.com/
* [[Marking Up a Tag Cloud| http://24ways.org/2006/marking-up-a-tag-cloud]]
!! APML
* [[APML: The Next Big Thing or the Next FOAF?| http://mashable.com/2007/10/22/apml/]]: Una mirada crítica sobre esta tecnología (Attention Profile Markup Language]]
* [[Social Graph API Demos| http://code.google.com/intl/es-ES/apis/socialgraph/docs/examples.html]]
* [[The Rise of the Memetrackers| http://mashable.com/2006/02/03/the-rise-of-the-memetrackers/]]
/***
|Name:|TagglyTaggingPlugin|
|Description:|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|
|Version:|3.3.1 ($Rev: 6100 $)|
|Date:|$Date: 2008-07-27 01:42:07 +1000 (Sun, 27 Jul 2008) $|
|Source:|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
See http://mptw.tiddlyspot.com/#TagglyTagging
***/
//{{{

merge(String.prototype,{

        parseTagExpr: function(debug) {

                if (this.trim() == "")
                        return "(true)";

                var anyLogicOp = /(!|&&|\|\||\(|\))/g;
                var singleLogicOp = /^(!|&&|\|\||\(|\))$/;

                var spaced = this.
                        // because square brackets in templates are no good
                        // this means you can use [(With Spaces)] instead of [[With Spaces]]
                        replace(/\[\(/g," [[").
                        replace(/\)\]/g,"]] "). 
                        // space things out so we can use readBracketedList. tricky eh?
                        replace(anyLogicOp," $1 ");

                var expr = "";

                var tokens = spaced.readBracketedList(false); // false means don't uniq the list. nice one JR!

                for (var i=0;i<tokens.length;i++)
                        if (tokens[i].match(singleLogicOp))
                                expr += tokens[i];
                        else
                                expr += "tiddler.tags.contains('%0')".format([tokens[i].replace(/'/,"\\'")]); // fix single quote bug. still have round bracket bug i think

                if (debug)
                        alert(expr);

                return '('+expr+')';
        }

});

merge(TiddlyWiki.prototype,{
        getTiddlersByTagExpr: function(tagExpr,sortField) {

                var result = [];

                var expr = tagExpr.parseTagExpr();

                store.forEachTiddler(function(title,tiddler) {
                        if (eval(expr))
                                result.push(tiddler);
                });

                if(!sortField)
                        sortField = "title";

                result.sort(function(a,b) {return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);});
                
                return result;
        }
});

config.taggly = {

        // for translations
        lingo: {
                labels: {
                        asc:        "\u2191", // down arrow
                        desc:       "\u2193", // up arrow
                        title:      "title",
                        modified:   "modified",
                        created:    "created",
                        show:       "+",
                        hide:       "-",
                        normal:     "normal",
                        group:      "group",
                        commas:     "commas",
                        sitemap:    "sitemap",
                        numCols:    "cols\u00b1", // plus minus sign
                        label:      "Tagged as '%0':",
                        exprLabel:  "Matching tag expression '%0':",
                        excerpts:   "excerpts",
                        descr:      "descr",
                        slices:     "slices",
                        contents:   "contents",
                        sliders:    "sliders",
                        noexcerpts: "title only",
                        noneFound:  "(none)"
                },

                tooltips: {
                        title:      "Click to sort by title",
                        modified:   "Click to sort by modified date",
                        created:    "Click to sort by created date",
                        show:       "Click to show tagging list",
                        hide:       "Click to hide tagging list",
                        normal:     "Click to show a normal ungrouped list",
                        group:      "Click to show list grouped by tag",
                        sitemap:    "Click to show a sitemap style list",
                        commas:     "Click to show a comma separated list",
                        numCols:    "Click to change number of columns",
                        excerpts:   "Click to show excerpts",
                        descr:      "Click to show the description slice",
                        slices:     "Click to show all slices",
                        contents:   "Click to show entire tiddler contents",
                        sliders:    "Click to show tiddler contents in sliders",
                        noexcerpts: "Click to show entire title only"
                },

                tooDeepMessage: "* //sitemap too deep...//"
        },

        config: {
                showTaggingCounts: true,
                listOpts: {
                        // the first one will be the default
                        sortBy:     ["title","modified","created"],
                        sortOrder:  ["asc","desc"],
                        hideState:  ["show","hide"],
                        listMode:   ["normal","group","sitemap","commas"],
                        numCols:    ["1","2","3","4","5","6"],
                        excerpts:   ["noexcerpts","excerpts","descr","slices","contents","sliders"]
                },
                valuePrefix: "taggly.",
                excludeTags: ["excludeLists","excludeTagging"],
                excerptSize: 50,
                excerptMarker: "/%"+"%/",
                siteMapDepthLimit: 25
        },

        getTagglyOpt: function(title,opt) {
                var val = store.getValue(title,this.config.valuePrefix+opt);
                return val ? val : this.config.listOpts[opt][0];
        },

        setTagglyOpt: function(title,opt,value) {
                if (!store.tiddlerExists(title))
                        // create it silently
                        store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),"");
                // if value is default then remove it to save space
                return store.setValue(title,
                        this.config.valuePrefix+opt,
                        value == this.config.listOpts[opt][0] ? null : value);
        },

        getNextValue: function(title,opt) {
                var current = this.getTagglyOpt(title,opt);
                var pos = this.config.listOpts[opt].indexOf(current);
                // a little usability enhancement. actually it doesn't work right for grouped or sitemap
                var limit = (opt == "numCols" ? store.getTiddlersByTagExpr(title).length : this.config.listOpts[opt].length);
                var newPos = (pos + 1) % limit;
                return this.config.listOpts[opt][newPos];
        },

        toggleTagglyOpt: function(title,opt) {
                var newVal = this.getNextValue(title,opt);
                this.setTagglyOpt(title,opt,newVal);
        }, 

        createListControl: function(place,title,type) {
                var lingo = config.taggly.lingo;
                var label;
                var tooltip;
                var onclick;

                if ((type == "title" || type == "modified" || type == "created")) {
                        // "special" controls. a little tricky. derived from sortOrder and sortBy
                        label = lingo.labels[type];
                        tooltip = lingo.tooltips[type];

                        if (this.getTagglyOpt(title,"sortBy") == type) {
                                label += lingo.labels[this.getTagglyOpt(title,"sortOrder")];
                                onclick = function() {
                                        config.taggly.toggleTagglyOpt(title,"sortOrder");
                                        return false;
                                }
                        }
                        else {
                                onclick = function() {
                                        config.taggly.setTagglyOpt(title,"sortBy",type);
                                        config.taggly.setTagglyOpt(title,"sortOrder",config.taggly.config.listOpts.sortOrder[0]);
                                        return false;
                                }
                        }
                }
                else {
                        // "regular" controls, nice and simple
                        label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)];
                        tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)];
                        onclick = function() {
                                config.taggly.toggleTagglyOpt(title,type);
                                return false;
                        }
                }

                // hide button because commas don't have columns
                if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols"))
                        createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button");
        },

        makeColumns: function(orig,numCols) {
                var listSize = orig.length;
                var colSize = listSize/numCols;
                var remainder = listSize % numCols;

                var upperColsize = colSize;
                var lowerColsize = colSize;

                if (colSize != Math.floor(colSize)) {
                        // it's not an exact fit so..
                        upperColsize = Math.floor(colSize) + 1;
                        lowerColsize = Math.floor(colSize);
                }

                var output = [];
                var c = 0;
                for (var j=0;j<numCols;j++) {
                        var singleCol = [];
                        var thisSize = j < remainder ? upperColsize : lowerColsize;
                        for (var i=0;i<thisSize;i++) 
                                singleCol.push(orig[c++]);
                        output.push(singleCol);
                }

                return output;
        },

        drawTable: function(place,columns,theClass) {
                var newTable = createTiddlyElement(place,"table",null,theClass);
                var newTbody = createTiddlyElement(newTable,"tbody");
                var newTr = createTiddlyElement(newTbody,"tr");
                for (var j=0;j<columns.length;j++) {
                        var colOutput = "";
                        for (var i=0;i<columns[j].length;i++) 
                                colOutput += columns[j][i];
                        var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class
                        wikify(colOutput,newTd);
                }
                return newTable;
        },

        createTagglyList: function(place,title,isTagExpr) {
                switch(this.getTagglyOpt(title,"listMode")) {
                        case "group":  return this.createTagglyListGrouped(place,title,isTagExpr); break;
                        case "normal": return this.createTagglyListNormal(place,title,false,isTagExpr); break;
                        case "commas": return this.createTagglyListNormal(place,title,true,isTagExpr); break;
                        case "sitemap":return this.createTagglyListSiteMap(place,title,isTagExpr); break;
                }
        },

        getTaggingCount: function(title,isTagExpr) {
                // thanks to Doug Edmunds
                if (this.config.showTaggingCounts) {
                        var tagCount = config.taggly.getTiddlers(title,'title',isTagExpr).length;
                        if (tagCount > 0)
                                return " ("+tagCount+")";
                }
                return "";
        },

        getTiddlers: function(titleOrExpr,sortBy,isTagExpr) {
                return isTagExpr ? store.getTiddlersByTagExpr(titleOrExpr,sortBy) : store.getTaggedTiddlers(titleOrExpr,sortBy);
        },

        getExcerpt: function(inTiddlerTitle,title,indent) {
                if (!indent)
                        indent = 1;

                var displayMode = this.getTagglyOpt(inTiddlerTitle,"excerpts");
                var t = store.getTiddler(title);

                if (t && displayMode == "excerpts") {
                        var text = t.text.replace(/\n/," ");
                        var marker = text.indexOf(this.config.excerptMarker);
                        if (marker != -1) {
                                return " {{excerpt{<nowiki>" + text.substr(0,marker) + "</nowiki>}}}";
                        }
                        else if (text.length < this.config.excerptSize) {
                                return " {{excerpt{<nowiki>" + t.text + "</nowiki>}}}";
                        }
                        else {
                                return " {{excerpt{<nowiki>" + t.text.substr(0,this.config.excerptSize) + "..." + "</nowiki>}}}";
                        }
                }
                else if (t && displayMode == "contents") {
                        return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}";
                }
                else if (t && displayMode == "sliders") {
                        return "<slider slide>\n{{contents{\n" + t.text + "\n}}}\n</slider>";
                }
                else if (t && displayMode == "descr") {
                        var descr = store.getTiddlerSlice(title,'Description');
                        return descr ? " {{excerpt{" + descr  + "}}}" : "";
                }
                else if (t && displayMode == "slices") {
                        var result = "";
                        var slices = store.calcAllSlices(title);
                        for (var s in slices)
                                result += "|%0|<nowiki>%1</nowiki>|\n".format([s,slices[s]]);
                        return result ? "\n{{excerpt excerptIndent{\n" + result  + "}}}" : "";
                }
                return "";
        },

        notHidden: function(t,inTiddler) {
                if (typeof t == "string") 
                        t = store.getTiddler(t);
                return (!t || !t.tags.containsAny(this.config.excludeTags) ||
                                (inTiddler && this.config.excludeTags.contains(inTiddler)));
        },

        // this is for normal and commas mode
        createTagglyListNormal: function(place,title,useCommas,isTagExpr) {

                var list = config.taggly.getTiddlers(title,this.getTagglyOpt(title,"sortBy"),isTagExpr);

                if (this.getTagglyOpt(title,"sortOrder") == "desc")
                        list = list.reverse();

                var output = [];
                var first = true;
                for (var i=0;i<list.length;i++) {
                        if (this.notHidden(list[i],title)) {
                                var countString = this.getTaggingCount(list[i].title);
                                var excerpt = this.getExcerpt(title,list[i].title);
                                if (useCommas)
                                        output.push((first ? "" : ", ") + "[[" + list[i].title + "]]" + countString + excerpt);
                                else
                                        output.push("*[[" + list[i].title + "]]" + countString + excerpt + "\n");

                                first = false;
                        }
                }

                return this.drawTable(place,
                        this.makeColumns(output,useCommas ? 1 : parseInt(this.getTagglyOpt(title,"numCols"))),
                        useCommas ? "commas" : "normal");
        },

        // this is for the "grouped" mode
        createTagglyListGrouped: function(place,title,isTagExpr) {
                var sortBy = this.getTagglyOpt(title,"sortBy");
                var sortOrder = this.getTagglyOpt(title,"sortOrder");

                var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

                if (sortOrder == "desc")
                        list = list.reverse();

                var leftOvers = []
                for (var i=0;i<list.length;i++)
                        leftOvers.push(list[i].title);

                var allTagsHolder = {};
                for (var i=0;i<list.length;i++) {
                        for (var j=0;j<list[i].tags.length;j++) {

                                if (list[i].tags[j] != title) { // not this tiddler

                                        if (this.notHidden(list[i].tags[j],title)) {

                                                if (!allTagsHolder[list[i].tags[j]])
                                                        allTagsHolder[list[i].tags[j]] = "";

                                                if (this.notHidden(list[i],title)) {
                                                        allTagsHolder[list[i].tags[j]] += "**[["+list[i].title+"]]"
                                                                                + this.getTaggingCount(list[i].title) + this.getExcerpt(title,list[i].title) + "\n";

                                                        leftOvers.setItem(list[i].title,-1); // remove from leftovers. at the end it will contain the leftovers

                                                }
                                        }
                                }
                        }
                }

                var allTags = [];
                for (var t in allTagsHolder)
                        allTags.push(t);

                var sortHelper = function(a,b) {
                        if (a == b) return 0;
                        if (a < b) return -1;
                        return 1;
                };

                allTags.sort(function(a,b) {
                        var tidA = store.getTiddler(a);
                        var tidB = store.getTiddler(b);
                        if (sortBy == "title") return sortHelper(a,b);
                        else if (!tidA && !tidB) return 0;
                        else if (!tidA) return -1;
                        else if (!tidB) return +1;
                        else return sortHelper(tidA[sortBy],tidB[sortBy]);
                });

                var leftOverOutput = "";
                for (var i=0;i<leftOvers.length;i++)
                        if (this.notHidden(leftOvers[i],title))
                                leftOverOutput += "*[["+leftOvers[i]+"]]" + this.getTaggingCount(leftOvers[i]) + this.getExcerpt(title,leftOvers[i]) + "\n";

                var output = [];

                if (sortOrder == "desc")
                        allTags.reverse();
                else if (leftOverOutput != "")
                        // leftovers first...
                        output.push(leftOverOutput);

                for (var i=0;i<allTags.length;i++)
                        if (allTagsHolder[allTags[i]] != "")
                                output.push("*[["+allTags[i]+"]]" + this.getTaggingCount(allTags[i]) + this.getExcerpt(title,allTags[i]) + "\n" + allTagsHolder[allTags[i]]);

                if (sortOrder == "desc" && leftOverOutput != "")
                        // leftovers last...
                        output.push(leftOverOutput);

                return this.drawTable(place,
                                this.makeColumns(output,parseInt(this.getTagglyOpt(title,"numCols"))),
                                "grouped");

        },

        // used to build site map
        treeTraverse: function(title,depth,sortBy,sortOrder,isTagExpr) {

                var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

                if (sortOrder == "desc")
                        list.reverse();

                var indent = "";
                for (var j=0;j<depth;j++)
                        indent += "*"

                var childOutput = "";

                if (depth > this.config.siteMapDepthLimit)
                        childOutput += indent + this.lingo.tooDeepMessage;
                else
                        for (var i=0;i<list.length;i++)
                                if (list[i].title != title)
                                        if (this.notHidden(list[i].title,this.config.inTiddler))
                                                childOutput += this.treeTraverse(list[i].title,depth+1,sortBy,sortOrder,false);

                if (depth == 0)
                        return childOutput;
                else
                        return indent + "[["+title+"]]" + this.getTaggingCount(title) + this.getExcerpt(this.config.inTiddler,title,depth) + "\n" + childOutput;
        },

        // this if for the site map mode
        createTagglyListSiteMap: function(place,title,isTagExpr) {
                this.config.inTiddler = title; // nasty. should pass it in to traverse probably
                var output = this.treeTraverse(title,0,this.getTagglyOpt(title,"sortBy"),this.getTagglyOpt(title,"sortOrder"),isTagExpr);
                return this.drawTable(place,
                                this.makeColumns(output.split(/(?=^\*\[)/m),parseInt(this.getTagglyOpt(title,"numCols"))), // regexp magic
                                "sitemap"
                                );
        },

        macros: {
                tagglyTagging: {
                        handler: function (place,macroName,params,wikifier,paramString,tiddler) {
                                var parsedParams = paramString.parseParams("tag",null,true);
                                var refreshContainer = createTiddlyElement(place,"div");

                                // do some refresh magic to make it keep the list fresh - thanks Saq
                                refreshContainer.setAttribute("refresh","macro");
                                refreshContainer.setAttribute("macroName",macroName);

                                var tag = getParam(parsedParams,"tag");
                                var expr = getParam(parsedParams,"expr");

                                if (expr) {
                                        refreshContainer.setAttribute("isTagExpr","true");
                                        refreshContainer.setAttribute("title",expr);
                                        refreshContainer.setAttribute("showEmpty","true");
                                }
                                else {
                                        refreshContainer.setAttribute("isTagExpr","false");
                                        if (tag) {
                                        refreshContainer.setAttribute("title",tag);
                                                refreshContainer.setAttribute("showEmpty","true");
                                        }
                                        else {
                                        refreshContainer.setAttribute("title",tiddler.title);
                                                refreshContainer.setAttribute("showEmpty","false");
                                        }
                                }
                                this.refresh(refreshContainer);
                        },

                        refresh: function(place) {
                                var title = place.getAttribute("title");
                                var isTagExpr = place.getAttribute("isTagExpr") == "true";
                                var showEmpty = place.getAttribute("showEmpty") == "true";
                                removeChildren(place);
                                addClass(place,"tagglyTagging");
                                var countFound = config.taggly.getTiddlers(title,'title',isTagExpr).length
                                if (countFound > 0 || showEmpty) {
                                        var lingo = config.taggly.lingo;
                                        config.taggly.createListControl(place,title,"hideState");
                                        if (config.taggly.getTagglyOpt(title,"hideState") == "show") {
                                                createTiddlyElement(place,"span",null,"tagglyLabel",
                                                                isTagExpr ? lingo.labels.exprLabel.format([title]) : lingo.labels.label.format([title]));
                                                config.taggly.createListControl(place,title,"title");
                                                config.taggly.createListControl(place,title,"modified");
                                                config.taggly.createListControl(place,title,"created");
                                                config.taggly.createListControl(place,title,"listMode");
                                                config.taggly.createListControl(place,title,"excerpts");
                                                config.taggly.createListControl(place,title,"numCols");
                                                config.taggly.createTagglyList(place,title,isTagExpr);
                                                if (countFound == 0 && showEmpty)
                                                        createTiddlyElement(place,"div",null,"tagglyNoneFound",lingo.labels.noneFound);
                                        }
                                }
                        }
                }
        },

        // todo fix these up a bit
        styles: [
"/*{{{*/",
"/* created by TagglyTaggingPlugin */",
".tagglyTagging { padding-top:0.5em; }",
".tagglyTagging li.listTitle { display:none; }",
".tagglyTagging ul {",
"       margin-top:0px; padding-top:0.5em; padding-left:2em;",
"       margin-bottom:0px; padding-bottom:0px;",
"}",
".tagglyTagging { vertical-align: top; margin:0px; padding:0px; }",
".tagglyTagging table { margin:0px; padding:0px; }",
".tagglyTagging .button { visibility:hidden; margin-left:3px; margin-right:3px; }",
".tagglyTagging .button, .tagglyTagging .hidebutton {",
"       color:[[ColorPalette::TertiaryLight]]; font-size:90%;",
"       border:0px; padding-left:0.3em;padding-right:0.3em;",
"}",
".tagglyTagging .button:hover, .hidebutton:hover, ",
".tagglyTagging .button:active, .hidebutton:active  {",
"       border:0px; background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]];",
"}",
".selected .tagglyTagging .button { visibility:visible; }",
".tagglyTagging .hidebutton { color:[[ColorPalette::Background]]; }",
".selected .tagglyTagging .hidebutton { color:[[ColorPalette::TertiaryLight]] }",
".tagglyLabel { color:[[ColorPalette::TertiaryMid]]; font-size:90%; }",
".tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }",
".tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}",
".tagglyTagging ul ul li {margin-left:0.5em; }",
".editLabel { font-size:90%; padding-top:0.5em; }",
".tagglyTagging .commas { padding-left:1.8em; }",
"/* not technically tagglytagging but will put them here anyway */",
".tagglyTagged li.listTitle { display:none; }",
".tagglyTagged li { display: inline; font-size:90%; }",
".tagglyTagged ul { margin:0px; padding:0px; }",
".excerpt { color:[[ColorPalette::TertiaryDark]]; }",
".excerptIndent { margin-left:4em; }",
"div.tagglyTagging table,",
"div.tagglyTagging table tr,",
"td.tagglyTagging",
" {border-style:none!important; }",
".tagglyTagging .contents { border-bottom:2px solid [[ColorPalette::TertiaryPale]]; padding:0 1em 1em 0.5em;",
"  margin-bottom:0.5em; }",
".tagglyTagging .indent1  { margin-left:3em;  }",
".tagglyTagging .indent2  { margin-left:4em;  }",
".tagglyTagging .indent3  { margin-left:5em;  }",
".tagglyTagging .indent4  { margin-left:6em;  }",
".tagglyTagging .indent5  { margin-left:7em;  }",
".tagglyTagging .indent6  { margin-left:8em;  }",
".tagglyTagging .indent7  { margin-left:9em;  }",
".tagglyTagging .indent8  { margin-left:10em; }",
".tagglyTagging .indent9  { margin-left:11em; }",
".tagglyTagging .indent10 { margin-left:12em; }",
".tagglyNoneFound { margin-left:2em; color:[[ColorPalette::TertiaryMid]]; font-size:90%; font-style:italic; }",
"/*}}}*/",
                ""].join("\n"),

        init: function() {
                merge(config.macros,this.macros);
                config.shadowTiddlers["TagglyTaggingStyles"] = this.styles;
                store.addNotification("TagglyTaggingStyles",refreshStyles);
        }
};

config.taggly.init();

//}}}

/***
InlineSlidersPlugin
By Saq Imtiaz
http://tw.lewcid.org/sandbox/#InlineSlidersPlugin

// syntax adjusted to not clash with NestedSlidersPlugin
// added + syntax to start open instead of closed

***/
//{{{
config.formatters.unshift( {
        name: "inlinesliders",
        // match: "\\+\\+\\+\\+|\\<slider",
        match: "\\<slider",
        // lookaheadRegExp: /(?:\+\+\+\+|<slider) (.*?)(?:>?)\n((?:.|\n)*?)\n(?:====|<\/slider>)/mg,
        lookaheadRegExp: /(?:<slider)(\+?) (.*?)(?:>)\n((?:.|\n)*?)\n(?:<\/slider>)/mg,
        handler: function(w) {
                this.lookaheadRegExp.lastIndex = w.matchStart;
                var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
                if(lookaheadMatch && lookaheadMatch.index == w.matchStart ) {
                        var btn = createTiddlyButton(w.output,lookaheadMatch[2] + " "+"\u00BB",lookaheadMatch[2],this.onClickSlider,"button sliderButton");
                        var panel = createTiddlyElement(w.output,"div",null,"sliderPanel");
                        panel.style.display = (lookaheadMatch[1] == '+' ? "block" : "none");
                        wikify(lookaheadMatch[3],panel);
                        w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
                }
   },
   onClickSlider : function(e) {
                if(!e) var e = window.event;
                var n = this.nextSibling;
                n.style.display = (n.style.display=="none") ? "block" : "none";
                return false;
        }
});

//}}}
Taskfox integra algunas ideas de [[Ubiquity]] directamente en Firefox. Por lo pronto está en la fase //alfa// de pruebas, pero es conveniente mantener el proyecto en observación.
* [[Taskfox: integrando Ubiquity en Firefox| http://tentandole.blogsome.com/2009/04/09/taskfox-integrando-ubiquity-en-firefox/]]: Una introducción en español que se "pasa de elogios" para la tecnología, pero que muestra posibilidades interesantes
* [[Taskfox, the screencast edition| http://theunfocused.net/2009/06/27/taskfox-the-screencast-edition/]]
* [[Taskfox Mockup| http://www.azarask.in/aza/TaskFox/]] Una página web que se comporta de modo similar a como lo haría Taskfox.
* [[Taskfox Prototype: Ubiquity in Firefox| http://www.azarask.in/blog/post/taskfox-prototype-ubiquity-in-firefox/]]
** [[Taskfox Prototype video| http://vimeo.com/4062903]]
* [[Taskfox – guineapigs wanted| http://theunfocused.net/2009/06/11/taskfox-guineapigs-wanted/]]: Se buscan conejillos de indias para Taskbar... a mi el experimento me interesa lo suficiente como para ser uno de ellos :-)
* [[Latest Taskfox binary| http://people.mozilla.org/~bmcbride/taskfox/latest/]] (Mac, Linux, Windows)
Es un software para crear gráficas en 2D y 3D procedentes de expresiones matemáticas, empleando ~LaTeX.
Para mayor información:
* [[Página principal de TeXgraph| http://texgraph.tuxfamily.org/index.html]]:(en francés)
* [[Plugin TeXgraph para TeXmacs| http://corcelle.wordpress.com/texmacs/plugin-texgraph/]]: La página también contiene otros plugins interesantes.
!! Instalación:
Esta sección mostrará como instalar ~TeXgraph y el plugin para ser usado desde TeXmacs.
Primero descargamos ~TeXgraph para la versión de nuestro sistema operativo y nuestro procesador.
* [[Página de descargas de TeXgraph| http://texgraph.forumpro.fr/version-a-tester-f4/future-version-194-t35.htm]]
Por ejemplo, para descargar la versión de 32 bits para Linux hacemos:
<<<
''Consola:''
{{{
wget ftp://download.tuxfamily.org/texgraph/version_test/linux/TeXgraph1.94.tar.gz
}}}
<<<
Ahora descomprimimos el archivo:
<<<
''Consola''
{{{
tar xvzf TeXgraph1.94.tar.gz
}}}
<<<
Como superusuario, entramos a la carpeta creada en el paso anterior y ejecutamos el //script// de instalación:
<<<
''Consola superusuario''
{{{
cd TeXgraph1.94
sh install.sh
}}}
<<<
Descargamos el plugin de ~TeXgraph para ~TeXmacs
<<<
''Consola''
{{{
wget http://dl.getdropbox.com/u/246467/texgraph.zip
}}}
<<<
Lo descomprimimos y lo copiamos a donde están los //plugins// en nuestra carpeta personal de ~TeXmacs:
<<<
''Consola''
{{{
unzip texgraph.zip
mv texgraph ~/.TeXmacs/plugins/
}}}
<<<
Enlazamos un archivo dentro del //plugin// de ~TeXgraph para TeXmacs a donde se encuentran los macros de ~TeXgraph:
<<<
''Consola superusuario''
{{{
cp /home/offray/.TeXmacs/plugins/texgraph/texgraph_macros_texmacs.mac /usr/local/share/TeXgraph/macros/
}}}
<<<
!! Observaciones
Aún el procedimiento no está funcionando. Ya pregunté en la lista de ~TeXmacs para saber qué está pasando puntualmente.
!! Ideas
* Usar el plugin de ~TeXgraph para ~TeXmacs como forma de demostrar el uso de este último como un //Scientific Workplace//.
* [[Publications by Joris van der Hoeven| http://www.texmacs.org/joris/main/publs.html]], autor de ~TeXmacs
* [[Some Algorithms in Real Algebraic Geometry (SARAG)| http://perso.univ-rennes1.fr/marie-francoise.roy/bpr-posted1.html]]: Los textos son interactivos y hechos en ~TeXmacs + Maxima.
* [[Professor plugin| http://corcelle.wordpress.com/texmacs/plugin-professor/]] Una extensión de ~LaTeX adaptada a TeXmacs por Emanuelle Corcelle, para falicitar varias labores de profesor: tablas de crecimiento y decrecimiento de funciones en cálculo, árboles de probabilidad, gráficas, etc. La página contiene ejemplos y manuales de uso de las diferentes funcionalidades. (pendiente: instalarla y revisarla con deteminiento)
* [[TeXmacs for Windows| http://www.texmacs.org/tmweb/download/windows.en.html]]
* [[ecmascript for guile| http://wingolog.org/archives/2009/02/22/ecmascript-for-guile]]: Una posible forma de extender TeXmacs sin saber Scheme (vía javascript)
El blog de tecnología Tech Crunch lanzó una idea para un Tablet Web de código abierto y pantalla táctil. Aún no ha salido al mercado, pero se espera que lo haga antes de que termine el año. Acá están algunos enlaces organizados cronológicamente, desde el planteamiento de la idea, pasando por los primeros prototipos hasta un beta preliminar.
* [[We Want A Dead Simple Web Tablet For $200. Help Us Build It.| http://www.ianmikutel.com/index/2009/1/19/techcrunch-shows-off-crunchpad-web-tablet-prototype.html]]
* [[The Techcrunch Web Tablet Project| http://www.techcrunchit.com/2008/07/21/the-techcrunch-web-tablet-project/]]
* [[Techcrunch Web Tablet Prototype A| http://www.techcrunch.com/2008/08/30/update-on-the-techcrunch-tablet-prototype-a/]] la foto lo muestra cuando aún no había salido de la mesa de soldar.
* [[Techcrunch Web Tablet Prototype B| http://www.techcrunch.com/2009/01/19/techcrunch-tablet-update-prototype-b/]]
* [[TechCrunch Shows Off "CrunchPad" Web Tablet Prototype| http://www.ianmikutel.com/index/2009/1/19/techcrunch-shows-off-crunchpad-web-tablet-prototype.html]]
* [[TechCrunch Tablet makes an early debut| http://www.crunchgear.com/2009/04/09/crunchtablet-hits-the-net-a-little-early/]]
* [[Ubuntu Mobile Internet Device (MID) Edition | http://www.ubuntu.com/products/mobile]]
* [[Building consumer products with open source | http://linuxdevices.com/articles/AT7621761066.html]]
* [[Nokia's open source director on the 770 Internet Tablet | http://linuxdevices.com/articles/AT3098094341.html]]
* [[Nokia to buy, free Symbian | http://linuxdevices.com/news/NS8056168201.html]]
* [[Guest opinion: Symbian + Nokia = Love | http://linuxdevices.com/articles/AT8495374639.html]]
* Modu: El teléfono modular de ensamblar.
** [[La página principal de modu | http://www.modumobile.com/]]
** [[Modu, el teléfono modular: nuestras impresiones | http://www.xataka.com/2008/02/13-modu-el-telefono-modular-nuestras-impresiones]]

!! Eventos
* [[Mindtrek | http://www.mindtrek.org/]]
* [[Bantora | http://bantora.com/main]]

!! Accesorios
* [[Golla| http://www.golla.com/index.html]]: Diseño finlandes para fundas y maletas de dispositivos móviles
Un programa para descargar series de televisión usando clientes de bit torrent.
* [[Página de Descargas de Ted| http://www.ted.nu/download.php]]

Para lanzar ted, vamos a la carpeta donde descomprimimos el archivo y ejecutamos:
{{{
java -jar ted.jar
}}}
! Teemu Arina
Creador de //Dicole Knowledge Work Environment//, uno de los primeros ambientes digitales para aprendizaje que conocí y tal vez un inspirador subliminal para las ideas de la //mesh de conocimiento// pues potencia mucho el uso de RSS.
* [[Página Personal de Teemu Arina | http://tarina.blogging.fi/about/]]
* [[Blog Teemu Arina | http://tarina.blogging.fi/]]: Para resaltar:
** [[Pecha Kucha en Mobile Monday  | http://www.mobilemonday.nl/2008/11/05/momoment-momo8-teemu-arina/]]: Además de las varias ideas interesantes que presenta en la charla, habla de //desmonetarizar// las relaciones... muy chévere.
* [[Presentaciones y escritos | http://tarina.blogging.fi/presentations-and-writings/]]
[[Arch Linux + KDEmod: A Visual Tour of my KDE 4.3 Setup| http://www.terminal-variant.co.cc/2009/07/arch-linux-kdemod-visual-tour-of-my-kde_2394.html]]
* <<slider chkAprendizajeMultimedia AprendizajeMultimedia 'Aprendizaje Multimedia »' 'Aprendizaje Multimedia'>>
* ''Aprendizaje Colaborativo'': Cómo lidiar con la tendencia de pasar del individuo a lo colectivo cuando el microcontenido y el aprendizaje entran en juego?. Un par de ejemplos:
** [[Redtics en Identi.ca| http://identi.ca/tag/redtics]]
*** Un Zoom: un intersticio entre "la comunidad" y los individuos
** [[Microwikis]]
* Aprendizaje Móvil y Pervasivo: Tiene más un discurso tecnocéntrico. Cómo ponerlo a dialogar con uno como el del microaprenzaje?
“Blessed are the meek, for they shall inherit the earth.”
—Matthew 5:5

The Meek is a graphic novel about Angora, an inexperienced young girl who has been sent on a quest to save the world. War looms on the horizon, and at its helm is the Emperor of the North and his hellish adviser. The two countries are overwhelmed with as much terror, crime, disease and revolution as they are with those who wish to create peace. Armed with only her instincts and an unexplainable power, she must experience and judge the world—and decide once and for all if it is truly worth saving.

The comic began in 2009, and will be posted online until it finishes.

(tomado del sitio web)

* [[The Meek | http://www.meekcomic.com]]
* [[The Meek: Unofficial Webcomic Trailer | http://www.youtube.com/watch?v=oDKtDZa1ej4]]
* [[Shingworks | http://www.shingworks.com/about_me.html]]: Página de el autor de The Meek.
* [[The Meek, leyendo en...| http://www.meekcomic.com/2009/04/08/chapter-1-page-16/]]
* [[http://www.media.mit.edu/physics/pedagogy/nmm/student/ | Página de estudiantes en el MIT]]
* [[http://www.media.mit.edu/physics/pedagogy/nmm/ | Página del curso]], tiene problemas con una redirección (8 jun 2008)
* [[http://web.media.mit.edu/~ayb/nmm/ | Página de un estudiante]]
* [[http://www.maa.org/reviews/naturemodel.html | Revisión de la Asociación Norteamericana de Matemáticas]]
[[TiddlyWiki | http://www.tiddlywiki.com/]] Interesante interface y la idea de microcontenido. Es un wiki totalmente contenido en un único archivo que usa Javascript para brindar las opciones de edición interactiva. Es interesante como, usando esta idea, se vinculan la capa de presentación (css), el almacenamiento (html) y la capa lógica (javascritp) en un único "archivo ejecutable" a través del navegador. En alguna medida es similar a los images de Squeak y la idea de la lista como estructura de datos y como programa en lisp. A continuación los enlaces:
!! Introducción
* Un muy buen [[tutorial de Tiddlywiki en español de Tutoras Web | http://minicursos.usal.googlepages.com/TiddlyWikiTutorial.html]]
* [[Diapositivas sobre Tiddlywiki de Tutoras Web | http://www.slideshare.net/minicursos/tiddlywiki]] (vía Slideshare).
* [[Tutorial de Tiddly Wiki en español | http://www.giffmex.org/twtutorialespanol.html]]
* [[TiddlyWiki, la agenda del profesor | http://www.eduvlog.org/2007/06/tiddlywiki-la-agenda-del-profesor.html]]
* [[Tutorial de Tiddly Wiki en Inglés | http://www.blogjones.com/TiddlyWikiTutorial.html]]
* [[Seminario de Wikicontenidos| http://www.um.es/atica/gat/gat2/noticias/seminario-de-wikicontenidos/]]: Un listado de tutoriales que muestran cómo usar tiddlywiki, con algunas animaciones. Sería bueno algo como un chatbot para que la cosa sea interactiva y la información sea contextual y actualizada
* [[Resumen de sintaxis en wikimatrix | http://www.wikimatrix.org/show/TiddlyWiki]]
* [[Preguntas Frecuentes sobre Tiddlywiki| http://tiddlywikiguides.org/index.php?title=TiddlyWiki_FAQ]] (en inglés)
* [[Pregunta sobre cómo embeber imágenes en Tiddlywiki | http://groups.google.com/group/TiddlyWiki/browse_thread/thread/b085f143328408d6]] (vía googlegroups). Hay forma de redimensionarlas?
* [[Transclusión en TW| http://tiddlywikiguides.org/index.php?title=Tiddler_templates]] (inclusión sin copiado).
!! Sitios y hospedaje
* [[Tiddlyspot | http://tiddlyspot.com/]]: Un sitio con hosting para Tiddlywiki:
** [[blog con una galería de los mejores wikis hospedados en este Tiddlyspot | http://tiddlyspot.blogspot.com/search/label/gallery]], según uno de sus autores.
** [[La galería de Wikis del TiddlySpot | http://tiddlyspot.com/?page=gallery]]
** Algunos de los ejemplos mostrados en los dos sitios anteriores ya fueron seleccionados en el enlace [[SitiosTiddly]].
** [[Presentation mode TiddlyWiki now available | http://tiddlyspot.blogspot.com/2006/12/saq-excellent-presentation-mode.html]] y la [[presentación vacia | http://lewcid.googlepages.com/presentation_empty_full.html#Documentation]]
* [[Tiddlythemes| http://tiddlythemes.com/]]: Una forma de cambiar la apariencia visual de un sitio con hecho con Tiddlywiki.
* [[tiddlyspot, wikis and usability barriers | http://tiddlyspot.com/blog/archives/general/tiddlyspot-wikis-and-usability-barriers/]]
* [[Unamesa | http://www.unamesa.org/]]: la compañía que hace Tiddly.
* [[My first TiddlyWiki Application | http://curiousjames.wordpress.com/2008/05/19/my-first-tiddlywiki-application/]]
* [[Tiddlywiki internals 1 of 3: Architectural Concepts | http://softwareas.com/tiddlywiki-internals-1-of-3-architectural-concepts]]
* [[Reflections from a TiddlyWiki Tiddler and Thoughts on a Guide for Web App Development with TiddlyWiki | http://softwareas.com/reflections-from-a-tiddlywiki-tiddler-and-thoughts-on-a-guide-for-web-app-development-with-tiddlywiki]]
* [[Developing and Testing a Plugin | http://www.tiddlywiki.org/wiki/Developing_and_Testing_a_Plugin]]
[[Osmosoft| ]], la compañía de [[Jeremy Ruston|JeremyRuston]] fue adquirida pro British Telecom y ahora es la línea de negocios en software libre y de código abierto de la misma. Usos en educación, gestión de proyectos, plataformas como la Wii, entre otras, son mostrados acá

<html>
<object width="400" height="321"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=859037&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=859037&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="321"></embed></object><br /><a href="http://vimeo.com/859037">TiddlyWiki in BT</a> from <a href="http://vimeo.com/user423727">Phil Whitehouse</a> on <a href="http://vimeo.com">Vimeo</a>.
</html>
Enlaces:
* [[Tildes en Teclado US| http://el-directorio.org/TildesEnTecladoUs]]: (en El Directorio)

!! Modificando el xinitrc

Desde la consola de comandos colocamos:
{{{
setxkbmap -model pc102 -layout us_intl
}}}

también podemos agregar este comando al archivo {{{.xinitrc}}} para que ocurra siempre que entremos al entorno.

!! Modificando el Xorg

Modificar el archivo de configuración del sistema gráfico base, agregando las siguientes lineas:
{{{
Option          "XkbVariant"    "alt-intl"
}}}
de modo que quede como se indica a continuaciOn:
''Archivo:''{{{/etc/X11/xorg.conf}}}
{{{
Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc104"
        Option          "XkbLayout"     "us"
        Option          "XkbVariant"    "alt-intl"
 EndSection
}}}
/***
|Name:|ToggleTagPlugin|
|Description:|Makes a checkbox which toggles a tag in a tiddler|
|Version:|3.1.0 ($Rev: 4907 $)|
|Date:|$Date: 2008-05-13 03:15:46 +1000 (Tue, 13 May 2008) $|
|Source:|http://mptw.tiddlyspot.com/#ToggleTagPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Usage
{{{<<toggleTag }}}//{{{TagName TiddlerName LabelText}}}//{{{>>}}}
* TagName - the tag to be toggled, default value "checked"
* TiddlerName - the tiddler to toggle the tag in, default value the current tiddler
* LabelText - the text (gets wikified) to put next to the check box, default value is '{{{[[TagName]]}}}' or '{{{[[TagName]] [[TiddlerName]]}}}'
(If a parameter is '.' then the default will be used)
* TouchMod flag - if non empty then touch the tiddlers mod date. Note, can set config.toggleTagAlwaysTouchModDate to always touch mod date
!!Examples
|Code|Description|Example|h
|{{{<<toggleTag>>}}}|Toggles the default tag (checked) in this tiddler|<<toggleTag>>|
|{{{<<toggleTag TagName>>}}}|Toggles the TagName tag in this tiddler|<<toggleTag TagName>>|
|{{{<<toggleTag TagName TiddlerName>>}}}|Toggles the TagName tag in the TiddlerName tiddler|<<toggleTag TagName TiddlerName>>|
|{{{<<toggleTag TagName TiddlerName 'click me'>>}}}|Same but with custom label|<<toggleTag TagName TiddlerName 'click me'>>|
|{{{<<toggleTag . . 'click me'>>}}}|dot means use default value|<<toggleTag . . 'click me'>>|
!!Notes
* If TiddlerName doesn't exist it will be silently created
* Set label to '-' to specify no label
* See also http://mgtd-alpha.tiddlyspot.com/#ToggleTag2
!!Known issues
* Doesn't smoothly handle the case where you toggle a tag in a tiddler that is current open for editing
* Should convert to use named params
***/
//{{{

if (config.toggleTagAlwaysTouchModDate == undefined) config.toggleTagAlwaysTouchModDate = false;

merge(config.macros,{

        toggleTag: {

                createIfRequired: true,
                shortLabel: "[[%0]]",
                longLabel: "[[%0]] [[%1]]",

                handler: function(place,macroName,params,wikifier,paramString,tiddler) {
                        var tiddlerTitle = tiddler ? tiddler.title : '';
                        var tag   = (params[0] && params[0] != '.') ? params[0] : "checked";
                        var title = (params[1] && params[1] != '.') ? params[1] : tiddlerTitle;
                        var defaultLabel = (title == tiddlerTitle ? this.shortLabel : this.longLabel);
                        var label = (params[2] && params[2] != '.') ? params[2] : defaultLabel;
                        var touchMod = (params[3] && params[3] != '.') ? params[3] : "";
                        label = (label == '-' ? '' : label); // dash means no label
                        var theTiddler = (title == tiddlerTitle ? tiddler : store.getTiddler(title));
                        var cb = createTiddlyCheckbox(place, label.format([tag,title]), theTiddler && theTiddler.isTagged(tag), function(e) {
                                if (!store.tiddlerExists(title)) {
                                        if (config.macros.toggleTag.createIfRequired) {
                                                var content = store.getTiddlerText(title); // just in case it's a shadow
                                                store.saveTiddler(title,title,content?content:"",config.options.txtUserName,new Date(),null);
                                        }
                                        else 
                                                return false;
                                }
                                if ((touchMod != "" || config.toggleTagAlwaysTouchModDate) && theTiddler)
                                                theTiddler.modified = new Date();
                                store.setTiddlerTag(title,this.checked,tag);
                                return true;
                        });
                }
        }
});

//}}}
* [[Torrentbox| http://torrentbox.com/]]: Una de las cosas interesantes es que los torrents tienen puntuaciones y comentarios en línea, lo cual permite una gestión de calidad comunitaria de los mismos.
* Maxwell, John W. (2006). [[Tracing the Dynabook: A Study of Technocultural Transformations | http://thinkubator.ccsp.sfu.ca/Dynabook/dissertation]]. University of British Columbia.
* Offray Vladimir Luna Cárdenas
* 7801 NW 37th ST DORAL, FL 33166-6559
* Suite 111592TP0CO, P.O. Box 025512
* Miami, Florida 33166
* United States
* Phone: 305 592 0839
/***
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.
***/
//{{{

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'offray';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
window.showBackstage = true; // show backstage too

// disable autosave in d3
if (window.location.protocol != "file:")
        config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
        SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
        SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
        OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
        DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
        MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}

// create some shadow tiddler content
merge(config.shadowTiddlers,{

'WelcomeToTiddlyspot':[
 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki.org|http://tiddlywiki.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),

'TspotControls':[
 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[blog|http://tiddlyspot.blogspot.com/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),

'TspotSidebar':[
 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].join("\n")

});
//}}}
Ubiquity es una extensión de Firefox que permite ejecutar comandos a través de verbos para la funcionalidad más usual de Internet: Buscar, traducir, calcular, //mapear//, etc y es a su vea una plataforma para crear y compartir fácilmente nuevos verbos.
!! Para el usuario
* [[Ubiquity 0.5 User Tutorial| https://wiki.mozilla.org/Labs/Ubiquity/Latest_Ubiquity_User_Tutorial]]
* [[Finding New Ubiquity Commands with the Herd| https://ubiquity.mozilla.com/herd/]]
* [[Ubiquity commands in the Wild| https://wiki.mozilla.org/Labs/Ubiquity/Commands_In_The_Wild]]
* [[Foro de Ubiquity en Get Satisfaction| http://getsatisfaction.com/mozilla/products/mozilla_ubiquity]]
!! Conceptual
Para una introducción conceptual véase:
* [[Sharing Streamable Functionality| http://www.azarask.in/blog/post/sharing-streamable-functionality/]]: un post del blog de Aza Raskin sobre las ideas detrás de Ubiquity.
* [[The linguistic command line| http://portal.acm.org/citation.cfm?doid=1330526.1330535]]
!! Desarrolladores
* [[Ubiquity Roadmap| https://wiki.mozilla.org/Labs/Ubiquity/Roadmap]]
* [[Ubiquity 0.5 Author Tutorial| https://wiki.mozilla.org/Labs/Ubiquity/Ubiquity_0.5_Author_Tutorial]]
!! Mi lista de comandos en Ubiquity:
Este es el listado de comandos con los que he extendido el comportamiento por omisión de Ubiquity:
* [[Time| http://swapoff.org/files/ubiquity_time/]]
* [[Shorten y goto| http://labs.vunite.com/vubiqs/verbs.php]]
[[Ulteo| http://www.ulteo.com/]] es un servidor de escritorios virtuales que facilita su administración y uso. Esta cubierto bajo licencia ~GPL2 y el modelo de negocios es vender capacitación y soporte. Este //tiddler// agrupa información sobre su instalación y configuración en ArchLinux. En otras distribuciones el procedimiento debe ser similar.

!! Instalación
Ulteo requiere de un entorno //LAMP// (Linux Apache Mysql Php) para funcionar. Lo instalamos usando el gestor de paquetes y lo ponemos a funcionar como dice en el tiddler de [[Xampp]].

Después de eso, desde el navegador vamos a la siguiente dirección: {{{http://localhost/phpmyadmin/}}}
{{{
    # copy stdin to stdout, except for lines starting with #
    while left_angle_right_angle:
        if dollar_underscore[0] =eq= "#":
            continue_next;
        }
        print dollar_underscore;
    }
}}}
{{{
while(@line = Sys::Stdin->readline()):
        continue_next if $line[0] =eq= "#":
        print @line;
    }
}}}

Extracto de una larga broma: http://www.perl.com/pub/a/2001/04/01/parrot.htm :D

* [[Si los lenguajes de programación fuera religiones| http://www.aegisub.net/2008/12/if-programming-languages-were-religions.html]] (inglés)
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 21/03/2013 12:03:26 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . |
| 22/03/2013 15:52:02 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . | ok |
| 22/03/2013 16:55:55 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . | ok |
| 22/03/2013 17:01:10 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . | ok |
| 22/03/2013 17:11:10 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . | ok |
| 22/03/2013 17:14:16 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . |
| 11/07/2013 17:59:28 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . |
| 11/07/2013 18:12:44 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . | ok |
| 11/07/2013 18:13:51 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . |
| 12/10/2013 12:16:35 | Offray | [[/|http://offray.tiddlyspot.com/]] | [[store.cgi|http://offray.tiddlyspot.com/store.cgi]] | . | [[index.html | http://offray.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
        major: 4, minor: 1, revision: 3,
        date: new Date("Feb 24, 2008"),
        source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
        author: 'BidiX (BidiX (at) bidix (dot) info',
        coreVersion: '2.2.0'
};

//
// Environment
//

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;        // true to activate both in Plugin and UploadService
        
//
// Upload Macro
//

config.macros.upload = {
// default values
        defaultBackupDir: '',   //no backup
        defaultStoreScript: "store.php",
        defaultToFilename: "index.html",
        defaultUploadDir: ".",
        authenticateUser: true  // UploadService Authenticate User
};
        
config.macros.upload.label = {
        promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
        promptParamMacro: "Save and Upload this TiddlyWiki in %0",
        saveLabel: "save to web", 
        saveToDisk: "save to disk",
        uploadLabel: "upload"   
};

config.macros.upload.messages = {
        noStoreUrl: "No store URL in parmeters or options",
        usernameOrPasswordMissing: "Username or password missing"
};

config.macros.upload.handler = function(place,macroName,params) {
        if (readOnly)
                return;
        var label;
        if (document.location.toString().substr(0,4) == "http") 
                label = this.label.saveLabel;
        else
                label = this.label.uploadLabel;
        var prompt;
        if (params[0]) {
                prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
                        (params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
        } else {
                prompt = this.label.promptOption;
        }
        createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};

config.macros.upload.action = function(params)
{
                // for missing macro parameter set value from options
                if (!params) params = {};
                var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
                var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
                var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
                var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
                var username = params[4] ? params[4] : config.options.txtUploadUserName;
                var password = config.options.pasUploadPassword; // for security reason no password as macro parameter  
                // for still missing parameter set default value
                if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
                        storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
                if (storeUrl.substr(0,4) != "http")
                        storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
                if (!toFilename)
                        toFilename = bidix.basename(window.location.toString());
                if (!toFilename)
                        toFilename = config.macros.upload.defaultToFilename;
                if (!uploadDir)
                        uploadDir = config.macros.upload.defaultUploadDir;
                if (!backupDir)
                        backupDir = config.macros.upload.defaultBackupDir;
                // report error if still missing
                if (!storeUrl) {
                        alert(config.macros.upload.messages.noStoreUrl);
                        clearMessage();
                        return false;
                }
                if (config.macros.upload.authenticateUser && (!username || !password)) {
                        alert(config.macros.upload.messages.usernameOrPasswordMissing);
                        clearMessage();
                        return false;
                }
                bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
                return false; 
};

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
{
        if (!storeUrl)
                return null;
                var dest = bidix.dirname(storeUrl);
                if (uploadDir && uploadDir != '.')
                        dest = dest + '/' + uploadDir;
                dest = dest + '/' + toFilename;
        return dest;
};

//
// uploadOptions Macro
//

config.macros.uploadOptions = {
        handler: function(place,macroName,params) {
                var wizard = new Wizard();
                wizard.createWizard(place,this.wizardTitle);
                wizard.addStep(this.step1Title,this.step1Html);
                var markList = wizard.getElement("markList");
                var listWrapper = document.createElement("div");
                markList.parentNode.insertBefore(listWrapper,markList);
                wizard.setValue("listWrapper",listWrapper);
                this.refreshOptions(listWrapper,false);
                var uploadCaption;
                if (document.location.toString().substr(0,4) == "http") 
                        uploadCaption = config.macros.upload.label.saveLabel;
                else
                        uploadCaption = config.macros.upload.label.uploadLabel;
                
                wizard.setButtons([
                                {caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
                                        onClick: config.macros.upload.action},
                                {caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
                                
                        ]);
        },
        options: [
                "txtUploadUserName",
                "pasUploadPassword",
                "txtUploadStoreUrl",
                "txtUploadDir",
                "txtUploadFilename",
                "txtUploadBackupDir",
                "chkUploadLog",
                "txtUploadLogMaxLine"           
        ],
        refreshOptions: function(listWrapper) {
                var opts = [];
                for(i=0; i<this.options.length; i++) {
                        var opt = {};
                        opts.push();
                        opt.option = "";
                        n = this.options[i];
                        opt.name = n;
                        opt.lowlight = !config.optionsDesc[n];
                        opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
                        opts.push(opt);
                }
                var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
                for(n=0; n<opts.length; n++) {
                        var type = opts[n].name.substr(0,3);
                        var h = config.macros.option.types[type];
                        if (h && h.create) {
                                h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
                        }
                }
                
        },
        onCancel: function(e)
        {
                backstage.switchTab(null);
                return false;
        },
        
        wizardTitle: "Upload with options",
        step1Title: "These options are saved in cookies in your browser",
        step1Html: "<input type='hidden' name='markList'></input><br>",
        cancelButton: "Cancel",
        cancelButtonPrompt: "Cancel prompt",
        listViewTemplate: {
                columns: [
                        {name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
                        {name: 'Option', field: 'option', title: "Option", type: 'String'},
                        {name: 'Name', field: 'name', title: "Name", type: 'String'}
                        ],
                rowClasses: [
                        {className: 'lowlight', field: 'lowlight'} 
                        ]}
};

//
// upload functions
//

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
        //from saving
        invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
        backupSaved: "Backup saved",
        backupFailed: "Failed to upload backup file",
        rssSaved: "RSS feed uploaded",
        rssFailed: "Failed to upload RSS feed file",
        emptySaved: "Empty template uploaded",
        emptyFailed: "Failed to upload empty template file",
        mainSaved: "Main TiddlyWiki file uploaded",
        mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
        //specific upload
        loadOriginalHttpPostError: "Can't get original file",
        aboutToSaveOnHttpPost: 'About to upload on %0 ...',
        storePhpNotFound: "The store script '%0' was not found."
};

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
        var callback = function(status,uploadParams,original,url,xhr) {
                if (!status) {
                        displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
                        return;
                }
                if (bidix.debugMode) 
                        alert(original.substr(0,500)+"\n...");
                // Locate the storeArea div's 
                var posDiv = locateStoreArea(original);
                if((posDiv[0] == -1) || (posDiv[1] == -1)) {
                        alert(config.messages.invalidFileError.format([localPath]));
                        return;
                }
                bidix.upload.uploadRss(uploadParams,original,posDiv);
        };
        
        if(onlyIfDirty && !store.isDirty())
                return;
        clearMessage();
        // save on localdisk ?
        if (document.location.toString().substr(0,4) == "file") {
                var path = document.location.toString();
                var localPath = getLocalPath(path);
                saveChanges();
        }
        // get original
        var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
        var originalPath = document.location.toString();
        // If url is a directory : add index.html
        if (originalPath.charAt(originalPath.length-1) == "/")
                originalPath = originalPath + "index.html";
        var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
        var log = new bidix.UploadLog();
        log.startUpload(storeUrl, dest, uploadDir,  backupDir);
        displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
        if (bidix.debugMode) 
                alert("about to execute Http - GET on "+originalPath);
        var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
        if (typeof r == "string")
                displayMessage(r);
        return r;
};

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
{
        var callback = function(status,params,responseText,url,xhr) {
                if(status) {
                        var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
                        displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
                        bidix.upload.uploadMain(params[0],params[1],params[2]);
                } else {
                        displayMessage(bidix.upload.messages.rssFailed);                        
                }
        };
        // do uploadRss
        if(config.options.chkGenerateAnRssFeed) {
                var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
                var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
                var rssString = generateRss();
                // no UnicodeToUTF8 conversion needed when location is "file" !!!
                if (document.location.toString().substr(0,4) != "file")
                        rssString = convertUnicodeToUTF8(rssString);    
                bidix.upload.httpUpload(rssUploadParams,rssString,callback,Array(uploadParams,original,posDiv));
        } else {
                bidix.upload.uploadMain(uploadParams,original,posDiv);
        }
};

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
{
        var callback = function(status,params,responseText,url,xhr) {
                var log = new bidix.UploadLog();
                if(status) {
                        // if backupDir specified
                        if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
                                var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
                                displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
                        }
                        var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
                        displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
                        store.setDirty(false);
                        log.endUpload("ok");
                } else {
                        alert(bidix.upload.messages.mainFailed);
                        displayMessage(bidix.upload.messages.mainFailed);
                        log.endUpload("failed");                        
                }
        };
        // do uploadMain
        var revised = bidix.upload.updateOriginal(original,posDiv);
        bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
        var localCallback = function(status,params,responseText,url,xhr) {
                url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
                if (xhr.status == 404)
                        alert(bidix.upload.messages.storePhpNotFound.format([url]));
                if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
                        alert(responseText);
                        if (responseText.indexOf("Debug mode") >= 0 )
                                responseText = responseText.substring(responseText.indexOf("\n\n")+2);
                } else if (responseText.charAt(0) != '0') 
                        alert(responseText);
                if (responseText.charAt(0) != '0')
                        status = null;
                callback(status,params,responseText,url,xhr);
        };
        // do httpUpload
        var boundary = "---------------------------"+"AaB03x";  
        var uploadFormName = "UploadPlugin";
        // compose headers data
        var sheader = "";
        sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
        sheader += uploadFormName +"\"\r\n\r\n";
        sheader += "backupDir="+uploadParams[3] +
                                ";user=" + uploadParams[4] +
                                ";password=" + uploadParams[5] +
                                ";uploaddir=" + uploadParams[2];
        if (bidix.debugMode)
                sheader += ";debug=1";
        sheader += ";;\r\n"; 
        sheader += "\r\n" + "--" + boundary + "\r\n";
        sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
        sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
        sheader += "Content-Length: " + data.length + "\r\n\r\n";
        // compose trailer data
        var strailer = new String();
        strailer = "\r\n--" + boundary + "--\r\n";
        data = sheader + data + strailer;
        if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
        var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
        if (typeof r == "string")
                displayMessage(r);
        return r;
};

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
        if (!posDiv)
                posDiv = locateStoreArea(original);
        if((posDiv[0] == -1) || (posDiv[1] == -1)) {
                alert(config.messages.invalidFileError.format([localPath]));
                return;
        }
        var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
                                store.allTiddlersAsHtml() + "\n" +
                                original.substr(posDiv[1]);
        var newSiteTitle = getPageTitle().htmlEncode();
        revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
        revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
        revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
        revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
        revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
        return revised;
};

//
// UploadLog
// 
// config.options.chkUploadLog :
//              false : no logging
//              true : logging
// config.options.txtUploadLogMaxLine :
//              -1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//              n :  the last n lines are only kept
//              NaN : no limit (-1)

bidix.UploadLog = function() {
        if (!config.options.chkUploadLog) 
                return; // this.tiddler = null
        this.tiddler = store.getTiddler("UploadLog");
        if (!this.tiddler) {
                this.tiddler = new Tiddler();
                this.tiddler.title = "UploadLog";
                this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
                this.tiddler.created = new Date();
                this.tiddler.modifier = config.options.txtUserName;
                this.tiddler.modified = new Date();
                store.addTiddler(this.tiddler);
        }
        return this;
};

bidix.UploadLog.prototype.addText = function(text) {
        if (!this.tiddler)
                return;
        // retrieve maxLine when we need it
        var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
        if (isNaN(maxLine))
                maxLine = -1;
        // add text
        if (maxLine != 0) 
                this.tiddler.text = this.tiddler.text + text;
        // Trunck to maxLine
        if (maxLine >= 0) {
                var textArray = this.tiddler.text.split('\n');
                if (textArray.length > maxLine + 1)
                        textArray.splice(1,textArray.length-1-maxLine);
                        this.tiddler.text = textArray.join('\n');               
        }
        // update tiddler fields
        this.tiddler.modifier = config.options.txtUserName;
        this.tiddler.modified = new Date();
        store.addTiddler(this.tiddler);
        // refresh and notifiy for immediate update
        story.refreshTiddler(this.tiddler.title);
        store.notify(this.tiddler.title, true);
};

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
        if (!this.tiddler)
                return;
        var now = new Date();
        var text = "\n| ";
        var filename = bidix.basename(document.location.toString());
        if (!filename) filename = '/';
        text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
        text += config.options.txtUserName + " | ";
        text += "[["+filename+"|"+location + "]] |";
        text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
        text += uploadDir + " | ";
        text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
        text += backupDir + " |";
        this.addText(text);
};

bidix.UploadLog.prototype.endUpload = function(status) {
        if (!this.tiddler)
                return;
        this.addText(" "+status+" |");
};

//
// Utilities
// 

bidix.checkPlugin = function(plugin, major, minor, revision) {
        var ext = version.extensions[plugin];
        if (!
                (ext  && 
                        ((ext.major > major) || 
                        ((ext.major == major) && (ext.minor > minor))  ||
                        ((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
                        // write error in PluginManager
                        if (pluginInfo)
                                pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
                        eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
        }
};

bidix.dirname = function(filePath) {
        if (!filePath) 
                return;
        var lastpos;
        if ((lastpos = filePath.lastIndexOf("/")) != -1) {
                return filePath.substring(0, lastpos);
        } else {
                return filePath.substring(0, filePath.lastIndexOf("\\"));
        }
};

bidix.basename = function(filePath) {
        if (!filePath) 
                return;
        var lastpos;
        if ((lastpos = filePath.lastIndexOf("#")) != -1) 
                filePath = filePath.substring(0, lastpos);
        if ((lastpos = filePath.lastIndexOf("/")) != -1) {
                return filePath.substring(lastpos + 1);
        } else
                return filePath.substring(filePath.lastIndexOf("\\")+1);
};

bidix.initOption = function(name,value) {
        if (!config.options[name])
                config.options[name] = value;
};

//
// Initializations
//

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

//optionsDesc
merge(config.optionsDesc,{
        txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
        txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
        txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
        txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
        txtUploadUserName: "Upload Username",
        pasUploadPassword: "Upload Password",
        chkUploadLog: "do Logging in UploadLog (default: true)",
        txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});

// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');


// Backstage
merge(config.tasks,{
        uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");


//}}}
Uvikuo es un cliente de mensajería instantánea que se propuso como resultado de un seminario abierto sobre edumática bajo la premisa de crear artefactos que se expandieran en la población juvenil vinculándolos a sus usos cotidianos de la tecnología y dieran la posibilidad de expresarse de modos no instrumentales a través de recursos tecnológicos. Sólo llegamos a la discusión de la idea y a ciertos diseños preliminares sobre la interface. Los bocetos originales son míos y Sergio Fernandez realizó la digitalización con muy bonitos efectos en 3D. El avatar virtual del proyecto se ha convertido en mi avatar.

[img[http://img72.imageshack.us/img72/5655/uvikuologosit6.png]]
[img[http://img72.imageshack.us/img72/8849/uvikuoletrazc2.png]]
[img[http://img179.imageshack.us/img179/1111/uvikuochatefectos1lu0.png]]
* [[The Chakra Project| http://chakra-project.org/]]: "The Chakra Project, a free software project made by a bunch of people who like Arch Linux and the K Desktop Environment. We are always striving to create the best possible KDE experience on Arch Linux and we also promote the use of free software wherever we can, because we believe that empowering the average user is the most worthwhile thing we can do"
* [[Shift Linux| ]]: "We decided that the focus of our project should be the experience and learning about how Linux is built and how it functions. We decided that the journey was just as important as the product." El sitio Web tambiEn es muy interesante en el Diseñoo, podría servir de plantilla para una versiOn futura de El Directorio.
* [[Firefly Linux| http://fireflylinux.com/]]: "is a lightweight operating system designed with netbooks in mind. Firefly Linux Float, our main edition of Firefly, comes with the small and fast LXDE desktop environment and many popular applications to help you make the most out of your netbook. Firefly Linux isn't under-powered and doesn't limit you to a "netbook-oriented" interface - you get a full Linux distribution (based on Arch Linux) in a tiny package, designed for your netbook."
Versiones de TiddlyWiki que integran funcionalidades que extienden o modifican su comportamiento y que ya vienen listas para usar:

* [[tiddlywikimania| http://www.socio-kybernetics.net/saurierduval/2005/07/tiddlywiki-mania.html]]: Un blog que muestra, rápidamente, diferentes variantes de TW.
* [[NewsWiki| http://tiddlyhome.bidix.info/systemServer/NewsWiki]]: Una variante construida para portales de noticias,  se podría usar en la página principal de departamento de matemáticas.
* [[VisualTW  Wysiwyg, tabs, fields editor and encryption plugins | http://visualtw.ouvaton.org/VisualTW.html]].
* [[Monkey Pirate TiddlyWiki: tiddlywiki powered up | http://mptw.tiddlyspot.com/]]: Con varias extensiones para organizar mejor la información.
* [[Twab: Twiddly Wiki Address Book | http://www.tiddly-twab.com/]]
* [[Ticklerwiki| http://www.ticklerwiki.com/]]: Un sistema para organizar el tiempo. Creo que necesitaré arrendar un servidor para hacer pruebas más allá de lo que ofrece tiddlyspot.
* [[Tiddly Wiki CSS|  http://codestar.lidonet.net/misc/tiddlywikicss.html]]: No es propiamente una variante de funcionalidad pero muestra cómo cambiar la apariencia gráfica de TiddlyWiki.
* [[Variantes de Tiddly| http://www.tiddlywiki.com/#TiddlyWikiAdaptations]]
* [[TiddlyWiki-SE (Student Edition) | http://checkettsweb.com/tw/tiddlywikise.htm]]
* [[Get Team Taks | http://www.getteamtasks.com/]]
* http://monkeygtd.tiddlyspot.com/
* [[PrinceTiddlyWiki | http://ptw.sourceforge.net/]]
* [[Yatwa | http://www.rumsby.org/yatwa/]]
* [[Taggly Wiki | http://informationality.com/tagglywiki/tagglywiki.html]]: a taggable, reusable, non-linear personal web notebook. 
* [[CompleXimple InDeed | http://www.christianhauck.net/html/14300.html#EmbeddedImages]]: Una adaptación para colocar imágenes embebidas externas y también como código //dentro// del html!!
* [[Tiddly Desktop| http://tiddlyhome.bidix.info/desk/]]: Una mejora en la apariencia visual para dar la impresión de ventanas en Tiddly.
* [[Tiddly para el Iphone| http://itw.bidix.info/]] (eventualmente se podría usar en el Freerunner). 
* [[GTDTiddlyWiki| http://nathanbowers.com/gtdtw/]]: Chéveres los tags centrados.
* [[Página de Vacunación de la Cruz Roja | http://www.cruzrojabogota.org.co/salud/vacunacion.htm]]: Se consiguen horarios y lugares de vacuanación contra la fiebre amarilla, por ejemplo.
Una nueva versión en construcción de la [[historia original| http://recursostic.javeriana.edu.co/narratopedia/2009/04/30/%E2%80%9Cviajes-post-apocalipticos%E2%80%9D-aventuras-de-un-avatar-un-cyborg-y-un-clon/]] de [[@anacida| http://identi.ca/anacida]] para Narratopedia... los desvelos afortunados
<html>
<iframe width="400" height="328" src="http://280slides.com/Viewer/?user=25212&name=viajesPostApocalipticos" style="border: 1px solid black; margin: 0; padding: 0;"></iframe>
</html>
<html>
<embed src="http://www.metacafe.com/fplayer/yt-suXkdsftsVU/watch_the_quantum_of_solace_music_video_another_way_to_die_featuring_alicia_keys_and_jack_white.swf" width="400" height="345" wmode="transparent"  pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed><br/><font size="1">

                                <a href="http://www.metacafe.com/watch/2089796/watch_the_quantum_of_solace_music_video_another_way_to_die_featuring_alicia_keys_and_jack_white/">Watch the Quantum Of Solace Music Video "Another Way To Die" Featuring Alicia Keys and Jack White - video powered by Metacafe</a></font>
</html>

* [[An anthropological introduction to YouTube| http://www.youtube.com/watch?v=TPAO-lZ4_hU&]] Michal Wesch nos habla de ~YouTube desde una perspectiva antropológica. Interesante, aunque es una lástima que en la parte crítica no haya hecho alusión al hecho de que "Video en línea = ~YouTube" nos deja con un desafortunado centralismo que no era para nada la intensión del "video en red". De hecho su grupo sólo estudia a YouTube y su logo es igual. Para una mirada más crítica y diversa ver http://getmiro.com/
* El reproductor de video que uso es smplayer. Para hacer capturas de pantalla de alguna escena interesante, se presiona la tecla [s].
Que bueno que existan cada vez más  y mejores alternativas a la monopólica tecnología de flash para crear una Web interactiva. //Javascript// ya ha hecho buena parte para muchas páginas y para el video están [[Cortado]] y el nuevo estandar de HTML 5 que soporta una etiqueta que permite colocar video en Internet sin la ayuda del plugin de flash, en el formato abierto de ogg theora. La versión 3.5 beta de firefox ya lo soporta. Hice la prueba en Arch Linux con Firefox y funcionó sin problema. Acá esta como:

''consola:''
{{{
yaourt -S firefox-beta
}}}

Luego cargué la dirección:

http://www.dailymotion.com/openvideodemo

y //voalá//!. Se puede jugar con los controles laterales para oscurecer la página, rotar el video, agregar tintes de color, etc. Dailymotion ya migró más de 300.000 video al formato libre de ogg theora, lo cual es una importante muestra de cómo están apoyando este formato y será mi lugar de escogencia de ahora en adelante para colocar video en línea. Si Internet Archive hace este cambio creo que !YouTube le seguirá y flash perderá cada vez más relevancia por una web abierta, libre y sin monopolios omnipresentes en ninguna parte importante de la interacción del usuario en la red.

!!Enlaces:
* [[HTML 5 and Web video: freeing rich media from plugin prison| http://arstechnica.com/open-source/news/2009/05/google-dailymotion-endorse-html-5-and-standards-based-video.ars]]
<<<
Video is becoming increasingly important on the Web, and it's becoming clear that content providers, browser vendors, and end users can no longer afford to have the primary delivery mechanisms for video locked up in an opaque binary blob that can't be improved or adapted to work in new environments. This is especially true in light of the growing relevance of mobile Web technology. It will be possible for anyone to adapt existing open source HTML 5 video implementations so that they will work optimally in environments with unusual resource constraints, form factors, or input mechanisms—the same cannot be said of Flash.

Flash's suboptimal performance and lack of reliability on Linux and Mac OS X (and arguably the absence of Flash on the iPhone) are emblematic of its limited portability. Browser and platform vendors can't fix Flash, but they do have the ability to ensure that standards-based open video technologies deliver the best possible experience in their own software. It's not hard to guess what approach they will favor for video delivery.
<<<

* [[Watch Video…without Flash| http://blog.dailymotion.com/2009/05/27/watch-videowithout-flash/]]
//Si nos rascan, nos expandimos//
Villa Roncha es una ecotecnoaldea viral autosostenible. Se diferencia de otras alternativas similares en que el caracter autosostenible no la hace aislada de los modelos insostenibles actuales, sino que plantea un tránsito con estos espacios a través de mercados simbólicos y materiales que potencien lo que la aldea pretende.
!! Enlaces relacionados
* [[Página principal de Open Source Ecology| http://openfarmtech.org/]]
* [[Evolve to Freedom| http://openfarmtech.org/index.php?title=OSE_Brochure]]
* [[Factor e Farm in Five Minutes| http://openfarmtech.org/FactorEFive.pdf]] (pdf)
* [[Open Source Ecology| http://openfarmtech.org/index.php?title=Open_Source_Ecology]]
* [[Open Source Ecology Blog| http://openfarmtech.org/weblog/]]
* [[The Nubian vault| http://www.lavoutenubienne.org/spip.php?page=sommaire&lang=en]]

* [[Open Farm Tech| http://www.youtube.com/watch?v=o53UAz-gCSA]] (video)
Es un proyecto para crear un entorno informático personal para computo científico, con particular énfasis en matemáticas (aunque otros módulos para otros campos pueden ser creados por los interesados).

La página es Virtual Tangram está en: http://virtualtangram.tiddlyspot.com/

Mientras recuerdo el password, documentaré algunas cosas acá:

!! Historia de Usuario: Instalación
Hoy, diciembre 30 de 2008, charlamos con Guio sobre cuál sería una posible historia de usuario cuando el o ella se enfrenten a la instalación por primera vez.

* La persona coloca el CD/DVD/USB que contiene Virtual Tangram.
* Un programa de mensajería instantánea (similar a Messenger) se abre y un usuario virtual guía a través de una conversación al humano sobre el proceso. Le hace preguntas y ofrece botones con alternativas (similares al Aceptar/Rechazar de cuando compartimos archivos vía MSN o cualquier red similar).
* Lo primero que el programa hace es instruir al usuario sobre la instalación de Virtual Box.
* La pregunta más importante es cuanto porcentaje se le quiere colocar de RAM a Virtual Tangram. El software leerá el total de la máquina y mostrará el porcentaje mínimo recomendado, sin exceder ese total. El usuario podrá aceptar este porcentaje, o colocar un nuevo valor, mediante un botón deslizable.
* Una vez se define esto, el programa continua automáticamente creando la máquina virtual con el imagen virtual de disco (vdi, por sus siglas en inglés) y asignándole la memoria que el usuario autorizó.
* Finalmente lanza Virtual box y le dice como arrancar la máquina virtual que contiene a Virtual Tangram, por primera vez.
* Los documentos se deben poder ver desde el medio de instalación (CD/DVD/USB) sin tener que arrancar Virtual Tangram.
!!! Implementación:
* Se podría empezar con unos comics colocados en el microwiki de Virtual Tangram, del tipo "elije tu propia aventura" en el que las diferentes elecciones del usuario lo lleven por distintos lugares. Dichos //comics// alimentarían luego el //chatbot//.
* El microwiki estaría colocado en el medio de instalación y se ejecutaría automáticamente desde Firefox portable (esto garantizaría que el microwiki se ejecute y vea adecuadamente sin depender de software de terceros, como el Internet Explorer de Windows, que es una de las plataformas objetivo principales). En las primeras versiones el usuario debe leer el microwiki y hacer lo que en él se ilustra.
* Un script en python, también autoejecutado, se encargaría de leer las características de la máquina y ofrecerlas desde el //chatbot//. También colocaría los resultaods de la charla en el archivo xml que define las características de la máquina virtual y se encargaría de la ejecución final de Virtual Tangram. Esto se espera que ocurra en versiones posteriores.
!! Como arrancar una partición de Windows desde Virtualbox en Linux
* [[VirtualBox using physical bootable partition| http://www.bluemind.org/tips-a-tricks/9-linux/29-virtualbox-using-physical-bootable-partition.html]]
* [[Boot an existing XP (Physical HD) install with VirtualBox| http://ubuntuforums.org/showthread.php?t=769883]] de Ubuntu forums.
* [[VirtualBox (virtualbox): How to boot from an existing Win XP partition under Ubuntu| http://mesbalivernes.blogspot.com/2008/01/virtual-box-booting-from-existing.html]]
* http://portableapps.com/node/17098
* http://www.german-nlite.org/wbb/index.php?page=DownloadDBView&katID=3
* [[Vue|http://vue.tufts.edu]]
** [[Creative Problem Solving: Toward a Digitally Driven Process|http://vue.tufts.edu/gallery/buffaloCPS.cfm]]
* [[Profusians Gallery|http://goosebumps4all.net/profusians/wiki/Gallery]]
* [[Infovis| http://en.wikipedia.org/wiki/Infovis]]
* [[Estadísticas y la lectura del mundo, en TED| http://ur1.ca/6war]]
** [[Gap Minder| http://www.gapminder.org/faq_frequently_asked_questions/]]: el software usado para la charla anterior.
* << [[Many Eyes| http://manyeyes.alphaworks.ibm.com/manyeyes/page/About.html]] is a bet on the power of human visual intelligence to find patterns. Our goal is to "democratize" visualization and to enable a new social kind of data analysis. Jump right to our visualizations  now, take a tour, or read on for a leisurely explanation of the project.>>
* [[Map of livecrunch relationship| http://twitter.mailana.com/profile.php?person=livecrunch&]]
* [[The Inner Circles of 10 Geek Heroes on Twitter| http://www.readwriteweb.com/archives/the_inner_circles_of_10_geek_heroes_on_twitter.php]]
!! Grafos en Ajax:
Chéreve diseñar una interface no dependiente de Flash, que pueda mostrar dinámicamente una mezcla de nubes de etiquetas y redes semánticas/sociales. Acá algunas iniciativas:
* http://blog.thejit.org/2008/10/31/graph-operations/
* http://blog.thejit.org/javascript-information-visualization-toolkit-jit/
* http://ejohn.org/blog/processingjs/
Un reproducto de video multiplataforma. En este momento tiene un error en el tratamiento del color. La versión 1.0.x aún no liberada pero presente en los repositorios corrige el error, pero por alguna razón no instala en Chakra. Acá algunos enlaces sobre el error y posibles soluciones:

* [[XV extension produce strange colors: hue missed up whith 169.09 drivers| http://www.nvnews.net/vbulletin/showthread.php?t=107009]]
* [[Getting VLC or x264 source code via Git| http://wiki.videolan.org/Git]]
* [[Howto build VLC 1.0.0-git in Ubuntu in less than 5 commands| http://www.jbkempf.com/blog/post/2009/03/03/Howto-build-VLC-1.0.0-git-in-Ubuntu-in-less-than-5-commands]]
!VNC: Un computador virtual usable a través de Internet
!!Instalación
<<<
''Consola Superusuario:''
{{{
yaourt tightvnc
}}}
<<<
!!Configuración
<<<
''Consola:''
{{{
vncserver
}}}
<<<
<<<
''//prompt// de consola:''
{{{
You will require a password to access your desktops.

Password: 
Warning: password truncated to the length of 8.
Verify:
}}}
<<<
: escribimos la contraseña un par de veces (la de definición y la de verificación). Luego nos pregunta si queremos que tal contraseña sea de sólo lectura, tecleamos [n] para que sea también de escritura
<<<
''//prompt// de consola:''
{{{
Would you like to enter a view-only password (y/n)? n
}}}
<<<
<<<
''salida de consola:''
{{{
New 'X' desktop is hacklab:1

Creating default startup script /home/offray/.vnc/xstartup
Starting applications specified in /home/offray/.vnc/xstartup
Log file is /home/offray/.vnc/hacklab:1.log
}}}
<<<
Este último mensaje nos dice cuál es el número del //display// que corresponde al escritorio virtual. Cada vez que lancemos el servidor, crearemos un nuevo //display// y tenemos que tenerlo en cuenta a la hora de hacer conexiones a la máquina, asì como de terminar escritorios virtuales que hallamos creado. Por ejemplo si quieramos terminar lo que se está ejecutando en el display 1 haríamos:
<<<
''Consola:''
{{{
vncserver -kill :1
}}}
<<<
!!Conexión
Para conectarnos al escritorio virtual que acabamos de lanzar hacemos lo siguiente:
* Lanzamos el cliente de vnc de acuerdo a nuestra plataforma. En Linux es así:
<<<
''Consola:''
{{{
vncviewer
}}}
<<<
* Se abrirá una pequeña ventana que nos pregunta a qué maquina queremos conectarnos. Escribimos allí la dirección IP del computador y el número del //display//, por ejemplo:
{{{
10.6.91.154:1
}}}
!! Enlaces relacionados:
* [[Java Remote Desktop en Sourceforge| http://jrdesktop.sourceforge.net/]]
* [[Java Remote Desktop en Wikipedia| http://en.wikipedia.org/wiki/Java_Remote_Desktop]]
! Wammu: Conectando nuestro teléfono móvil a Linux

!! Enlaces

 * http://www.pilas.net/20060503/nokia-y-gnulinux/
 * http://wammu.eu/
 * http://no-creas.blogspot.com/search/label/Ubuntu
 * http://www.gammu.org/wiki/index.php?title=Gammu:Main_Page#Wammu
 * http://www.gammu.org/wiki/index.php?title=Gammu:Wammu_Installation_Script_for_Ubuntu
 * http://snofs.sourceforge.net/
 * http://ubuntuforums.org/showthread.php?t=41180

!! Instalación:
<<<
''Consola:''
{{{
yaourt wammu
}}}
<<<

!!Utilización
Lanzamos wammu:
<<<
''Consola:''
{{{
sudo wammu
}}}
<<<
* Aparecerá un letrero que pregunta si deseamos configurar el teléfono. Elegimos esta opción.
* Nos pregunta si queremos una configuración manual o automática, entre otras. Elegimos automática.
** Wammu empezará a detectar si el teléfono está conectado y por donde. Luego dará un listado de opciones de lo que encontró, para tener más claridad sobre qué elegir entre las opciones dadas hacemos:
<<<
''Consola:''
{{{
dmesg
}}}
<<<
La salida, en el caso del Nokia 6800 es algo así:
<<<
''Salida de Consola:''
{{{
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for pl2303
pl2303 4-1:1.0: pl2303 converter detected
usb 4-1: pl2303 converter now attached to ttyUSB0
usbcore: registered new interface driver pl2303
pl2303: Prolific PL2303 USB to serial adaptor driver
}}}
<<<
: Así que optamos por un modelo que tenga el 2303 en la referencia de lo detectado.
* Luego probará la conexión con el dispositivo, nos mostrará el fabricante y el modelo y nos pedirá un nombre para referirnos al teléfono, ofreciéndonos una opción por omisión.
* El el menú de la aplcación elegimos: {{{Phone -> Connect}}}
* Después de estar conectados elegimos el menú {{{Retrieve}}} para recuperar la información que deseemos: Contactos, mensajes, etc. Una vez recuperada la información, esta aparecerá en la interface gráfica.
Warren Ellis: El escritor de varios comics.
* [[Warren Ellis en la Wikipedia | http://en.wikipedia.org/wiki/Warren_Ellis]]
* [[Sitio oficial de Warren Ellis | http://www.warrenellis.com/]]
* [[Warren Ellis en Vox | http://warrenellis.vox.com/]]: El sitio es chévere porque se pueden encontrar otras personas con los mismos intereses (por ejemplo gente de las comunidades virtuales de Comics). También trae un artículo chévere sobre la muerte de la ciencia ficción (vivimos en la ciencia ficción ahora, aunque no la que queríamos o soñábamos, así que lo que queda es "ficción mundana").
* [[Fell en la Wikipedia | http://en.wikipedia.org/wiki/Fell_(comics)]] (en inglés): uno de los mejores comics que me he leído con un formato de historias autocontenidas (cada lector puede empezar con una historia sin conocer la trama de las anteriores).
* [[Fell Feral City | http://blog.oregonlive.com/steveduin/2007/06/fell_feral_city.html]]: Fell revisado en The Oregonian.
* [[Freakangels | http://www.freakangels.com]]
* * [[Webcomics to Read After Freakangels? | http://freakangels.com/whitechapel/comments.php?DiscussionID=10247&Focus=316767#Comment_316767]]
* Watchmen, un comic con banda sonora (en su edición de papel, no la película), entre las canciones están [[All Along The Watchtower| http://www.bobdylan.com/#/songs/all-along-watchtower]]
* Practical Joke (inspirado por Watchmen):
** [[Practical Joke en wikipedia| http://en.wikipedia.org/wiki/Practical_joke]]
** [[Practical Joke en Unclyclopedia| http://uncyclopedia.wikia.com/wiki/Practical_jokes]]
* http://en.wikipedia.org/wiki/Numbers_in_Chinese_culture
* http://upload.wikimedia.org/wikipedia/commons/3/3a/Astrologyproject.svg
* http://www.bibletexts.com/glossary/number-symbolism.htm
* http://en.wikipedia.org/wiki/Numerology
Un //framework// Web autocontenido (//a la [[bitnami|http://bitnami.org/]]//). Puede servir para la idea de [[wikis fractales|Wikifractality]] usándolo junto con TiddlyWiki.
* [[Página principal de Web2py| http://mdp.cti.depaul.edu/examples/default/index]]
* [[Web2py tiene soporte para jPolite| http://www.web2py.com/jpolite/default/main#t1]]
* [[Presentación panorámica para web2py| http://www.scribd.com/doc/16085263/web2py-slides-version-163]]
!! Prerrequisitos
* Python 2.5
!!Instalación en Linux:
* Se descarga de la web la versión para nuestra plataforma.
* Se descomprime.
* Se ejectua:
<<<
{{{
python web2py.py
}}}
<<<
** Aparecerá una pequeña ventana de administración del servidor que nos pide los datos: contraseña del administrador, dirección IP, y puerto. En este punto sólo es necesario colocar la contraseña. Con los otros datos lo tendremos funcionando en la máquina donde instalamos web2py.
** Se abrirá una ventana del navegador que muestra nuestro servidor de web2py funcionando y un formulario web que nos pide la contraseña definida en el paso anterior (hay ya pequeños efectos de [[Ajax]] habilitados).
* Una vez funcionando podemos empezar
!! Cargar un plugin
* Veáse Cargando el [[plugin de t3|Web2pyT3]]
!! Haciendo una aplicación simple
* Véase Web2pyApp
Algunas aplicaciones interesantes para Web2py:
* [[Ajax SpreadSheet| http://mdp.cti.depaul.edu/appliances/default/show/53]]
* [[Processing.js| http://mdp.cti.depaul.edu/appliances/default/show/46]]
!! Model builider
* ''Nota:'' Esta información está sin terminar. Puede servir para un tutorial posterior, pero en este momento no conduce a un resultado estable y util.
Vamos al enlace que dice [[Model Builder| http://mdp.cti.depaul.edu/sqldesigner]], el cual despliega una interface Web donde podemos diseñar el modelo entidad relación de nuestra aplicación. La de este ejemplo luce más o menos así:
[img[https://photos-3.getdropbox.com/i/m/nUvWF19A619xtnMQGqwy6ViH6BDbnw049-O3FeVssBo]][[Click para agrandar la imagen|https://dl-web.getdropbox.com/get/Photos/solucionarioDb.jpg?w=47eafeb1]]
* En la sección que dice "Import/Export" hacemos click en el botón que dice "Go!" el cual genera el código que representa nuestro modelo en ~SQLAlchemy (una capa de abstracción que nos permite representar el modelo en diferentes bases de datos). Copiamos este código y lo tenemos disponible pues lo usaremos dentro de poco.
* Vamos a donde dice "Create a new application" escribimos solucionario y le damos click en "Submit". Aparecerá algo similar a esto:
<<<
solucionario
[ uninstall | about | design | errors | cleanup | pack all | compile ] 
<<<
* hacemos click donde dice "design".
* Aparecerá algo similar a esto (acá las tablas ya están definidas, pues la captura se hizo después de hacer el experimento, pero la idea es la misma):
<<<
<html>
<h2 id="models" onclick="collapse('models_inner');">Models</h2>
<div id="models_inner">
<i>the data representation, define database tables and sets</i>
<br/><br/>
[ 
<a href="/solucionario/appadmin/index">database administration</a>
| <a href="/admin/default/peek/solucionario/databases/sql.log">sql.log</a> ] 

<ul>
<li><a href="/admin/default/peek/solucionario/models/db.py">db.py</a>
[ <a href="">edit</a> | <a href="/admin/default/delete/solucionario/models/db.py?sender=design%2Fsolucionario">delete</a> ]

</li><li><a href="">solucionario.py</a>
[ <a href="">edit</a> | <a href="">delete</a> ]
defines tables <b>autor</b>, <b>ejercicio</b>, <b>libro</b>, <b>usuario</b>

</li>
<li><form action="/admin/default/create_file" enctype="multipart/form-data" method="post">create file with filename: <input name="filename" type="text" /><input name="location" type="hidden" value="solucionario/models/" /><input name="sender" type="hidden" value="/admin/default/design/solucionario" /><input type="submit" value="submit" /></form></li>
</ul>
</div>
</html>
<<<
* al lado de donde dice {{{filename}}} escribimos {{{solucionario}}} y damos "Submit".
* Aparece un formulario de python vacio. Allí copiamos el código SQL obtenido en el //Model Builder//.
Describiremos cómo crear una aplicación sencilla de Web2py. Esta aplicación, llamada solucionario, sirve para que las personas intercambien ejercicios de matemáticas que fueron creados usando un editor de texto científico como LyX o TeXmacs. Esta es la historia de usuario:
!! Historia de Usuario
* La usuaria entra a la página web y ve un menú con las siguientes opciones:
** "Inicio": Es una breve página de saludo que explica los objetivos del sitio.
** "Resuelto por...": Permite agregar los datos de quien resolvió el problema. Usualmente un profeso o estudiante.
** "Agregar autor(a)": Permite agregar los datos de quien escribió el enunciado del ejercicio. No confundir con los datos de "Resuelto por...". Por ejemplo para un curso de Álgebra Lineal un autor sería //Bernard Kolman//.
** "Agregar fuente": Una fuente es una obra que contiene uno o varios enunciados. Siguiendo con nuestro ejemplo. Un autor puede escribir varias fuentes. Siguiendo con nuestro ejemplo, la fuente asociada al autor Kolman seria: //Algebra Lineal con aplicaciones y Matlab//.
** "Agregar Edición": Una fuente puede tener varias ediciones y en este lugar se colocan los datos de tales ediciones. Por ejemplo el libro de Kolman tiene la Octava edición del año 2008 y la sexta, del año 1999. Como los ejercicios pueden cambiar de edición a edición, debe asociarse a cada fuente una edición específica.
** "Publicar ejercicio": permite dar los datos del ejercicio como son la fuente y su edición, el número y la página en la que están y cargar archivos con las respuestas. Los archivos deben estar en dos formatos: código fuente ({{{.lyx}}} o {{{.tm}}} para LyX y TeXmacs, respectivamente) y pdf.
* Eventualmente la interface debe permitir que un usuario vea si un ejercicio ya ha sido publicado por alguien y si no, separarlo para que nadie más lo pueda subir (habrá ejercicios equivalentes en ediciones diferentes de los libros y debería hacía futuro poderse rastrear cosas como estas).
!! Diseño de la solución.
!!! Modelo
* Véase: Web2pySolucionarioModelo
{{{
#########################################################################
## This is a samples controller
## - index is the default action of any application
## - user is required for authentication and authorization
## - download is for downloading files uploaded in the db (does streaming)
## - call exposes all registered services (none by default)
#########################################################################  

def index():
    """
    example action using the internationalizaiton operator T and flash
    rendered by views/default/index.html or views/generic.html
    """
    response.flash = T('Bienvenid@ al solucionario')
    return dict(message=T('[Heuristi.ca]'))


def user():
    """
    exposes:
    http://..../[app]/default/user/login 
    http://..../[app]/default/user/logout
    http://..../[app]/default/user/register
    http://..../[app]/default/user/profile
    http://..../[app]/default/user/retrieve_password
    http://..../[app]/default/user/change_password
    use @auth.requires_login()
        @auth.requires_membership('group name')
        @auth.requires_permission('read','table name',record_id)
    to decorate functions that need access control
    """
    return dict(form=auth())


def download():
    """
    allows downloading of uploaded files
    http://..../[app]/default/download/[filename]
    """
    return response.download(request,db)


def call():
    """
    exposes services. for example:
    http://..../[app]/default/call/jsonrpc
    decorate with @services.jsonrpc the functions to expose
    supports xml, json, xmlrpc, jsonrpc, amfrpc, rss, csv
    """
    return service()

#################################################################################
# Esta son las funciones que personalizan la interface para convertirla en un sistema de publicación de
# ejercicios
#################################################################################

def resueltoPor():
    """
    Who solved the excersise
    """
    ### create an insert form from the table
    form=SQLFORM(db.resolutores)
    ### if form correct perform the insert
    if form.accepts(request.vars,session):
        response.flash='nuevo persona insertada'
    ### and get a list of all users
    records=SQLTABLE(db().select(db.resolutores.ALL))
    return dict(form=form,records=records)

def agregarAutor():
    """
    Let's the user update a data base with authors of the sources where exercices and problems come from.
    """
    ### create an insert form from the table
    form=SQLFORM(db.autor)
    ### if form correct perform the insert
    if form.accepts(request.vars,session):
        response.flash='nuevo autor insertado'
    ### and get a list of all users
    records=SQLTABLE(db().select(db.autor.ALL))
    return dict(form=form,records=records)
    
def agregarFuente():
    """
    Used to update the sources of the excercices
    """
    ### create an insert form from the table
    form=SQLFORM(db.fuentes)
    ### if form correct perform the insert
    if form.accepts(request.vars,session):
        response.flash='nuevo fuente insertado'
    ### and get a list of all users
    records=SQLTABLE(db().select(db.fuentes.ALL))
    return dict(form=form,records=records)

def publicarEjercicio():
    """
    Used to update the solutions of the excercices
    """
    ### create an insert form from the table
    form=SQLFORM(db.ejercicios)
    ### if form correct perform the insert
    if form.accepts(request.vars,session):
        response.flash='nuevo ejercicio insertado'
    ### and get a list of all users
    records=SQLTABLE(db().select(db.ejercicios.ALL))
    return dict(form=form,records=records)
}}}
Este es el modelo de la aplicación "Solucionario"
''Archivo:'' {{{db.py}}}
{{{
#########################################################################
## This scaffolding model makes your app work on Google App Engine too
#########################################################################

try:
    from gluon.contrib.gql import *  # if running on Google App Engine
except:
    db = SQLDB('sqlite://storage.sqlite')  # if not, use SQLite or other DB
else:
    db = GQLDB()  # connect to Google BigTable
    session.connect(request, response, db=db)  # and store sessions there
    # or use the following lines to store sessions in Memcache
    #from gluon.contrib.memdb import MEMDB
    #from google.appengine.api.memcache import Client
    #session.connect(request, response, db=MEMDB(Client()))

#########################################################################
## uncomment the following line if you do not want sessions
#session.forget()
#########################################################################

#########################################################################
## Define your tables below, for example
##
## >>> db.define_table('mytable',SQLField('myfield','string'))
##
## Fields can be 'string','text','password','integer','double','boolean'
##       'date','time','datetime','blob','upload', 'reference TABLENAME'
## There is an implicit 'id integer autoincrement' field
## Consult manual for more options, validators, etc.
## More API examples for controllers:
##
## >>> db.mytable.insert(myfield='value')
## >>> rows=db(db.mytbale.myfield=='value).select(db.mytable.ALL)
## >>> for row in rows: print row.id, row.myfield
#########################################################################

db.define_table('autor',
   SQLField('apellido','string'),
   SQLField('nombre','string'))
   
db.autor.apellido.requires=IS_NOT_EMPTY()

db.define_table('resolutores',
    SQLField('apellido','string'),
    SQLField('nombre','string'),
    SQLField('email','string',length=128))

db.resolutores.apellido.requires=IS_NOT_EMPTY()
db.resolutores.nombre.requires=IS_NOT_EMPTY()
db.resolutores.email.requires=IS_NOT_EMPTY()
        
db.define_table('temas',
    SQLField('nombre'))

db.temas.nombre.requires=IS_NOT_EMPTY()

db.define_table('subtemas',
    SQLField('tema_id',db.temas),
    SQLField('nombre'))

db.subtemas.tema_id.requires=IS_IN_DB(db,'temas.id','temas.nombre')

db.define_table('fuentes',
    SQLField('autor_id',db.autor),
    SQLField('titulo','string',length=128),
    SQLField('url_web','string'),
    SQLField('tema_id',db.temas))

fuentes_autor=(db.fuentes.autor_id==db.autor.id)

db.fuentes.titulo.requires=IS_NOT_EMPTY()
db.fuentes.tema_id.requires=IS_IN_DB(db,'temas.id','temas.nombre')
db.fuentes.autor_id.requires=IS_IN_DB(db,'autor.id','autor.apellido')

db.define_table('ediciones',
    SQLField('fuente_id',db.fuentes),
    SQLField('fecha','string'),
    SQLField('edicion','string'))

fuentes_ediciones=((db.ediciones.fuente_id==db.fuentes.id)&(db.fuentes.autor_id==db.autor.id))
    
db.ediciones.fecha.requires=IS_NOT_EMPTY()
#db.ediciones.fuente_id.requires=IS_IN_DB(db,'fuentes.id','fuentes.titulo')
db.ediciones.fuente_id.requires=IS_IN_DB(db(fuentes_autor),'db(fuentes_autor).select(db.fuentes.id)','%(db(fuentes_autor).select(db.fuentes.titulo))s %(db(fuentes_autor).select(db.autor.apellido))s')
#db.ediciones.fuente_id.requires=IS_IN_DB(db,'fuentes.id','%(autor.apellido)s %(titulo)s')
    
db.define_table('ejercicios',
    SQLField('fuente_edicion',db.ediciones),
    SQLField('seccion','string'),
    SQLField('numero','string'),
    SQLField('pagina','integer'),
    SQLField('resuelto_por',db.resolutores),
    SQLField('archivo_fuente','upload',default=''),
    SQLField('archivo_pdf','upload',default=''))

db.ejercicios.numero.requires=IS_NOT_EMPTY()
db.ejercicios.pagina.requires=IS_NOT_EMPTY()
db.ejercicios.archivo_fuente.requires=IS_NOT_EMPTY()
db.ejercicios.resuelto_por.requires=IS_IN_DB(db,'resolutores.id','%(apellido)s %(nombre)s')
db.ejercicios.fuente_edicion.requires=IS_IN_DB(db,'ediciones.id','ediciones.fecha')
                                
#########################################################################
## Here is sample code if you need:
## - email capabilities
## - authentication (registration, login, logout, ... )
## - authorization (role based authorization)
## - services (xml, csv, json, xmlrpc, jsonrpc, amf, rss)
## - crud actions
## comment/uncomment as needed
#########################################################################

from gluon.tools import *
auth=Auth(globals(),db)            # authentication/authorization
auth.define_tables()               # creates all needed tables
crud=Crud(globals(),db)            # for CRUD helpers using auth
service=Service(globals())         # for json, xml, jsonrpc, xmlrpc, amfrpc

## uncomment as necessary or consult docs for more options
#crud.settings.auth=auth           # (optional) enforces authorization on crud
#mail=Mail()                                  # mailer
#mail.settings.server='smtp.gmail.com:587'    # your SMTP server
#mail.settings.sender='you@gmail.com'         # your email
#mail.settings.login='username:password'      # your credentials
#auth.settings.mailer=mail         # for user email verification
#auth.settings.registration_requires_verification = True
#auth.settings.registration_requires_approval = True
#auth.messages.verify_email = \
#  'Click on the link http://.../verify_email/%(key)s to verify your email'
}}}
T3, es un plugin que se encarga de las tareas más usuales a la hora de realizar una aplicación Web. Para importarlo:
* Descagamos t3 de la dirección: http://bitbucket.org/yarko/web2py-t3/overview/
* Descomprimimos el archivo al lugar donde lo descargamos:
<<<
''Consola:''
{{{
gunzip web2py-t3-3d9dda9094ac.tar.gz
}}}
<<<
: (el número de versión puede cambiar dependiendo de en qué momento hayamos descomprimido el archivo.
* en el formulario donde dice "upload application:" colocamos la dirección de este plugin en nuestro disco duro, la renombramos como "plugin_t2" y luego hacemos click en "Submit". Aparecerá una aplicación llamada "plugin_t2" en el listado de las aplicaciones instaladas.
!! Enlaces relacionados
* [[Repositorio de código de T3| http://bitbucket.org/yarko/web2py-t3/overview/]]
* [[Video de T2| http://www.vimeo.com/1790354]]: El código ya fue reemplazado por T3, pero las ideas siguen siendo las mismas.
* [[Wicd| http://wicd.sourceforge.net/]]: "is an open source wired and wireless network manager for Linux which aims to provide a simple interface to connect to networks with a wide variety of settings." (de la página web del proyecto)
Para activar el adaptador de red inalámbrico en ArchLinux se hace lo siguiente:
{{{
modprobe rtl8187
ifconfig wlan1 up
}}}
* [[Wikifractality en ProWiki | http://www.prowiki.org/prowiki/wiki.cgi?WikiFractality]] 
* [[Wikifractality en Usemod | http://www.usemod.com/cgi-bin/mb.pl?WikiFractality]] (documento original).
* [[Wikifractality y contexto | http://www.wikiservice.at/fractal/wikidev.cgi?Context]]
* [[Wikifractality y Contextualidad | http://www.prowiki.org/prowiki/wiki.cgi?WikiContextuality]] 

[Img[http://www.prowiki2.org/upload/HelmutLeitner/context.gif]]
* [[Wikipedia is not Typical | http://www.usemod.com/cgi-bin/mb.pl?WikiPediaIsNotTypical]]
* [[Conversando unos minutos con Jimmy Wales | http://alt1040.com/2008/10/conversando-unos-minutos-con-jimmy-wales/]] "La semana pasada tuve la oportunidad de charlar por unos minutos con Jimmy (Jimbo) Wales, el fundador de la Wikipedia y otros proyectos como Wikia..." (Por: Christian Van Der Henst S., a quien conocí en la Campus de Brasil 2008)
* [[Wikipedia Revolution| http://wikipediarevolution.com/The_Book.html]]: "How a bunch of nobodies created the world’s greatest Encyclopedia"
* [[Wikis in Plain English | http://www.commoncraft.com/video-wikis-plain-english]](Video de Common Craft).
* [[Wikis en español sencillo| http://www.youtube.com/watch?v=jIgk8v74IZg]] (Video en ~YouTube, tranducción españoleta del anterior)
* [[Time: It's a Wiki, Wiki World | http://www.time.com/time/magazine/article/0,9171,1066904-1,00.html]]
* [[Infoworld: Enterprise collaboration with blogs and wikis | http://www.infoworld.com/article/05/03/25/13FEblogwiki_1.html]]
* [[Wiki and the Wiki Way: Beyond a Knowledge Management Solution | http://www.citeulike.org/user/kwoo/article/825645]]
* http://www.wikyblog.com/ Un blog que trata de asuntos relacionados con Wikis.
* [[WikiScience| http://en.wikibooks.org/wiki/Wiki_Science]]: is the study of how the phenomenon of wikis, and free, open collaborative works in general (like free software and open source), are growing, changing and adapting. (presentado en la forma de wikilibro).
* [[WikiSym | http://ws2006.wikisym.org/space/Workshop%3e%3eWiki+Markup+Standard]]: Simposio sobre wikis.
* [[Gimme Five | http://www.usemod.com/cgi-bin/mb.pl?GimmeFive]]: Cinco cosas para hacer cuando se crea una página en un Wiki.
* [[Encyclopedia or Cosmopedia? Collective Intelligence and Knowledge Technospaces  | http://wikimania2006.wikimedia.org/wiki/Proceedings:PA1/Full_text|]]
* [[Order and Structure en Prowiki | http://www.prowiki.org/prowiki/wiki.cgi?OrderAndStructure]]
* [[What you see is Wiki - Questioning WYSIWYG in the Internet Age | http://www.i3g.hs-heilbronn.de/attach/Ver%C3%B6ffentlichungen/What+you+see+is+Wiki.pdf]]: Presenta //Wiki wizard// como una posibilidad intermerdia entre un lenguaje de etiquetamiento y una presentación Wysiwyg y por qué es pertinente para los //trabajadores del conocimiento// en medio de plataformas híbridas y móviles.
* [[WikiSquared | http://www.wikisquared.com/]]: Un blog, muy recomendado, dedicado al tema de los wikis.
** [[Cuál es la forma más sencilla de hablar de todo el asunto "2.0" | http://www.wikisquared.com/2007/07/whats-a-simple-.html]]
** [[Maybe the real story IS atoms - not bits | http://www.wikisquared.com/2006/12/maybe_the_real_.html]]
* [[Collective Problem Solving Wiki| http://www.communitywiki.org/odd/CollectiveProblemSolving/HomePage]]
* [[Open Business Models Wiki| http://socialsynergyweb.net/cgi-bin/wiki?action=browse;oldid=HomePage;id=FrontPage]]
* [[About Us| http://www.aboutus.org]] is the guide to websites that you can edit.
* [[WikiBirthday 2009: 14 years of collaboration| http://blog.aboutus.org/2009/03/25/wikibirthday-2009-14-years-of-collaboration/]]
!! Infraestructuras
* [[Wikimatrix | http://www.wikimatrix.org/]] para comparar un gran listado de motores wiki y sus características puntuales.
* [[A Decentralized Wiki Engine for Collaborative Wikipedia Hosting | http://www.globule.org/publi/DWECWH_webist2007.html]]
* [[Connected Text: A Personal Wiki System | http://www.connectedtext.com/dsoul.html]]: grafos, diffs, lástima que es privativo.
* [[Wikicalc | http://www.softwaregarden.com/products/wikicalc/]]: Un sistema wiki que usa la metáfora de la hoja de cálculo en lugar de la del texto lineal para la creación colaborativa e hipertextual.
* [[Instiwiki | http://www.instiki.org/show/HomePage]]: is a basic wiki clone so pretty and easy to set up, you’ll wonder if it’s really a wiki. Instiki may not have all the features of the competitors, but what it does it does very well indeed. (Hecho en Ruby)
** [[Características de Instiwiki | http://www.instiki.org/show/InstikiFeatures]]: Chévere el hecho de que permita "Multiple webs: Create separate wikis with their own namespaces"
!! No categorizados
* [[Wiki visualisations with JavaScript: Processing.js and Raphaël| http://www.mattryall.net/blog/2008/11/wiki-visualisations-with-javascript]]: Me recuerda lo que charlamos con Gloria, Jose y Marlon sobre la red de nubes de etiquetas conectadas.
Multilenguaje:
* [[Twexter | http://wixi.cc/twexter]]: Un wiki multilenguaje
* [[Twext | http://wixi.cc/twext]]: Texto emparejado (Twin Text), ofrece el texto en dos idiomas, el idioma de origen y el idioma objetivo.
* [[twext method | http://wixi.cc/twext_method]]
* [[Twext demo | http://delyric.tv/imagine/]]
* [[Twext overview | http://twext.cc/go/overview]]
* [[Twext most recent spec is at i18n | http://twext.cc/go/multilingual]]
* [[Wixi | http://wiki.laptop.org/go/WiXi]]: Un wiki con texto anotado que facilita el aprendizaje del lenguaje.
* [[Digitale Pioniers| http://twext.com/digitale_pioniers]]: Unas notas sobre el papel del lenguaje en la construcción de la identidad, su uso en redes sociales entre otras. En el wiki de Twext
* [[Live Q&A with Stephen Wolfram| http://www.wolfram.com/broadcast/wolframalphaqa/]]
* [[Can W|A pass the turing test| http://andeejay.blogspot.com/2009/06/wolframalpha-easter-egg.html]]: una pregunta interesante por mi amigo Andrés Via, con una respuesta que tiene su toque de humor :-)
* [[Impact of Wolfram Alpha on Math Ed| http://teachingcollegemath.com/?p=998]]: un detallado análisis con diapositivas acompañantes y una matriz que muestra cómo los cambios se difunden en un sistema. Muchos de los argumentos aplicados a W|A, también aplican a sistemas como [[Sage]], A este respecto cabe mencionar que:
** Se requiere una interface Web que permita hacer cálculos anónimamente para facilitar el uso abierto de Sage. El hecho de que las preguntas puedan ser vagas en W|A es llamativo para algunas cosas, pero en otras son importantes los cálculos precisos y las argumentaciones y heurísticas acompañantes y la interface Web tipo //notebook// de Sage puede ser más apropiada.
** El artículo brinda ideas sobre cómo expandir los resultados obtenidos este año con los estudiantes usando VirtualTangram a otras áreas del sistema educativo usando la Teoría de Difusión de las Innovaciones (más en el //tiddler// [[Educación|Educacion]])
** Interesante uso de [[Odiogo| http://www.odiogo.com/]] para hacer que el texto del blog sea leído en Internet, sin lugar a dudas algo con mucha aplicación en aprendizaje de otra lengua.
Las diapositivas de la presentación:
<html>
<div><h3 style="padding:0px;margin:3px;"><a href="http://www.authorstream.com/Presentation/wyandersen-194988-impact-wolfram-alpha-mathematics-education-technology-possible-walpha-ppt-powerpoint/" target="_blank" style="font:normal 18px,arial;">Impact of Wolfram Alpha</a></h3><object width="425" height="354" id="player"><param name="movie" value="http://www.authorstream.com/player/player.swf?p=194988_633791984035327642" /><param name="allowfullscreen" value="true" /><param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/player/player.swf?p=194988_633791984035327642" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="354"></embed></object><div style="font:normal 11px,arial;">Uploaded on <a href="http://www.authorstream.com/" target="_blank">authorSTREAM</a> by <a href="http://www.authorstream.com/User-Presentations/wyandersen/" target="_blank">wyandersen</a>&nbsp;|&nbsp;<a href="http://upload.authorstream.com/multipleupload/" target="_blank">Upload your own presentation</a></div></div>
</html>
!! Configurando el soporte de Pantalla Táctil en ArchLinux
* Instalamos el soporte para wacom, que es el sistema que da soporte a pantallas táctiles en este equipo:
{{{
yaourt -S linuxwacom-dev
}}}
y reiniciamos. La siguiente vez el lapiz estará funcionando sobre la pantalla táctil sin inconveniente.
!!Enlaces
* [[Wacom Tablet en el Wiki de ArchLinux| http://wiki.archlinux.org/index.php/Wacom_Tablet]]
* [[Thinkpad X61s and Linux| http://polishlinux.org/linux/ubuntu/thinkpad-x61s-and-linux/]]
* [[Lenovo ThinkPad X61 Tablet PC Review| http://www.tabletpcreview.com/default.asp?newsID=868]]
La mía es una máquina que se encuentra entre los modelos siguientes. Con //blue tooth// como la primera, pero con las características de las segunda y 4GB en RAM.
<<<
* [[Thinkpad X61 Modelo 1GB Ram en Tiger Direct| http://www.tigerdirect.com/applications/searchtools/item-details.asp?EdpNo=4538528&csid=_28]]
* [[hinkpad X61 Modelo 2GB Ram en Tiger Direct| http://www.tigerdirect.com/applications/searchtools/item-details.asp?EdpNo=4538526&csid=_28]]
<<<
El vendedor del mío puede encontrarse en [[sistemovil| http://www.sistemovil.com/]]
XMind es un software para la creación de ideogramas de diferente índole: Mapas mentales, mapas conceptuales, gráficas de gantt, gráficas de pescado, inclusión de hojas de cálculo, entre otros, están licenciado bajo ~LGPL3 y EPL.

* [[Página de Xmind| http://www.xmind.net/]]
* [[XMind mind mapping software went open … what’s really behind it?| http://www.mind-mapping.org/blog/2009/01/whats-really-behind-xmind-making-their-mind-mapping-software-open/]]: Una entrevista que habla del modelo de negocios y las relaciones con Freemind, en un blog dedicado al tema de los mapas mentales.
! Comentarios sobre la instalación en Linux
La versión 3.0.3 estaba mal empaquetada en Arch Linux, como lo muestra [[la página del paquete Xmind en AUR| http://aur.archlinux.org/packages.php?ID=22394]] la solución, documentada también en esta página, consiste en cambiar el archivo de construcción así:
<<<

The escape character before the last md5 seems to be breaking the md5 check.


This is an example on how it should look like.
{{{
source=(http://dl.xmind.org/xmind-portable-3.0.3.200904291819.zip \
xmind.desktop xmind.png)
md5sums=('41e24d1f96dfaad5dd32c42d9a80874b' \
'10fde17e4f9446ba0047ce77ac78d2d2' '0c539aa09041417a7de60b75bde9fb0a')
}}}
<<<
* Instalación:
<<<
''Consola:''
{{{
yaourt xampp
}}}
<<<
* Arranque:
<<<
''Consola:''
{{{
sudo xampp start
}}}
<<<
<<<
''Mensaje de salida:''
{{{
Starting XAMPP for Linux 1.7.2...
XAMPP: Starting Apache with SSL (and PHP5)...
XAMPP: Starting MySQL...
XAMPP: Starting ProFTPD...
XAMPP for Linux started.
}}}
<<<
después de esto cargamos {{{http://localhost/}}} en el navegador y podemos empezar a gestionar el entorno, crear bases de datos, etc.
"Xara Xtreme for Linux is a powerful, general purpose graphics program for Unix platforms including Linux, ~FreeBSD and (in development) OS-X".
* [[Galería de imagenes de Xara| http://www.xaraxtreme.org/about-screenshots.html]]: con gráficos vectoriales increiblemente detallados.
Para instalaro en ArchLinux:
''Consola superusuario:''
{{{
yaourt xara
}}}
y elegimos la versión de los repositorios que más nos guste. Una adición opcional pero importante es imagemagick, así que no está de más instalaro
''Consola superusuario:''
{{{
yaourt imagemagick
}}}
Para autoidentificaci'on:

xchat menu > network list > freenode > edit > 
Es el archivo que indica qué opciones se cargaran al comienzo para nuestro usuario
<<<
''Archivo:''{{{~/.xinitrc}}}
{{{
#!/bin/sh

#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)
#

#!/bin/sh

# mapa de teclado en español
setxkbmap latam


# Launch e17
enlightenment_start

# Set the Sage Path (for better integration with TeXmacs) 
export PATH=$PATH:/opt/sage/bin

# Launch the system trayer
# To do: define another background or enable transparency support for E17
trayer --edge bottom --align right --widthtype pixel --width 50 --transparent true --alpha 255 &

# Launch gnome-do
gnome-do
}}}
<<<
* [[Ejemplo de Yaml | http://yaml.org/start.html]] en su sitio web.
* [[Mira mamá, sin etiquetas | http://www.xml.com/lpt/a/2002/07/24/yaml.html]]
* [[Using YAML to Decrease Data Transfer Bandwidth Requirements | http://www.devx.com/xml/Article/27249/1954?pf=true]]
* [[Yaml parser | http://tpe.freepan.org/repos/oren/yaml-parser/]] en C.
* [[SLIP | http://www.scottsweeney.com/projects/slip/]]
* [[Syck | http://whytheluckystiff.net/syck/]]: //Syck = Yaml + Fast// 
* [[XML Deviant | http://www.xml.com/pub/a/2003/06/11/deviant.html]]: Una actualización (ya desactualizada :-P) acerca de las charlas sobre XML con una interesante sección titulada //YAML is alive//.

Instalación Yaml: 

* Se descarga {{{PyYAML-3.04.tar.gz}}} o la versión más reciente de http://pyyaml.org/download/pyyaml/ . Para ver un registro de cambios entre versiones consular: http://pyyaml.org/wiki/PyYAML
* Se descomprime y se ejecuta como superusuario: {{{python setup.py install}}}.
* Para más info: http://pyyaml.org/wiki/PyYAMLDocumentation
<<<
Yaourt is a command line interface program which complete pacman for installing software on Archlinux.Written by Julien Mischkowitz
<<<
Una de las cosas importantes de yaourt es que nos permite instalar fácilmente paquetes disponibles en el reposotorio comunitario de paquetes ([[AUR|ArchUserRepository]]), incluyendo la descarga del código fuente y la compilación del mismo.
* [[Página principal de Yaourt| http://www.archlinux.fr/yaourt-en/]]
* [[Yaourt Easy Install| http://wiki.archlinux.org/index.php/Yaourt#Easy_Install]]
!! Uso
* Para preguntar por un paquete en los diferentes repositorios hacemos:
<<<
''Consola:''
{{{
yaourt -Ss sage | more
}}}
<<<

!!Control de calidad comunitario
Yaourt nos recomienda instalar //aurvote//, un programa que nos permite votar por el software de AUR que hemos instalado, de modo que podamos ayudar a las gestion comunitaria de calidad en los paquetes. Para instalar este paquete hacemos:
<<<
''Consola Superusuario:''
{{{
yaourt aurvote
}}}
<<<
<<<
''Salida de consola:''
{{{
1 aur/aurvote 0.3.1-2 (590)
    A tool to vote for favorite AUR's packages for inclusion in [community]
==>  Enter n° (separated by blanks, or a range) of packages to be installed
==>   ----------------------------------------------
}}}
<<<
: Esta salida contiene la cantidad de paquetes que satisfacen los criterios de nuestra solicitud (en este caso sOlo 1), de que repositorio proviene el paquete (aur) el nombre y la version (aurvote 0.3.1-2) y la cantidad de votos que ha recibido el paquete (590).
Procedemos con la instalaciOn eligiendo el nUmero del paquete, tecleando [Enter] y siguiendo con las instrucciones de la pantalla.
!! Para configurar y usar Aurvote
* Vamos a la pAgina http://aur.archlinux.org/account.php y creamos un usuario.
* Con los datos de este usuario creamos en el archivo siguiente archivo:
<<<
''Archivo:'' {{{~/.aurvote}}}:
{{{
user=NombreDeUsuario
pass=Password
}}}
<<<
* Ahora podemos votar por los paquetes de nuestra predilecciOn, por ejemplo:
<<<
''Consola de usuario:''
{{{
aurvote --vote yaourt aurvote
}}}
<<<
<<<
''Salida de Consola''
{{{
yaourt now voted
aurvote now voted
}}}
<<<
Yo Frankie es un juego hecho con Blender y el motor de juegos [[Crystal Space|http://www.crystalspace3d.org/main/Main_Page]].
* [[Página de descargas de Yo Frankie| http://www.yofrankie.org/available-for-testing-windows-packages-cs-edition/]]: Explica como usarlo empleando 0install.
!! Prerrequisitos
0install
!! Instalación
Una vez instalado 0install se ejecuta en una consola normal:
{{{
0launch http://crystalspace3d.org/downloads/YoFrankie/YoFrankie.xml 
}}}
Yonkly es al mismo tiempo un motor de microblogs y un sitio para alojar una "comunidad personal" de microblogging. La interface está muy bien diseñada, tiene soporte para imágenes, post de más de 140 caracteres, etiquetas, conversaciones en hilos y está cubierto por la licencia gpl2. La desventaja, está hecho en asp.net y el código fuente no está bien documentado. El soporte no es muy activo/casi nulo.
* [[Sitio Web de Yonkly| http://www.yonkly.com/]]
* [[Yonkly Makes Microblogging Pretty and Personal, But Will Anyone Use It?| http://mashable.com/2008/12/16/yonkly/]]
* [[“I Quit” 1 Year Anniversary| http://www.emadibrahim.com/2009/03/09/i-quit-1-year-anniversary/]]: Un post en el blog de Emad Ibrahim, el desarrollador de Yonkly en el que explica como empezó la idea, habla del modelo de negocios y el balance al final del primer año.
Ejemplos de comunidades en Yonkly:
* [[Photographers Journal| http://photographersjournal.yonkly.com/home]]: "Como twitter con fotos", reza el //slogan//. Seguramente le gustaría a [[Aztlek| http://identi.ca/aztlek]]. Chévere permitir también las descargas y visualizaciones en diferentes tamaños.
* [[Write Zoo| http://writezoo.com/home]] Historias cortas tipo microblog. Interesante para [[Narratopedia]].
* [[Blogpei| http://blogpei.com/]]
Para clientes
* [[Tarifas de Yonky| http://www.yonkly.com/plans]]
* [[Código fuente de Yonkly "a la venta"| http://www.yonkly.com/buy]]
** [[Yonkly Source Code For Sale| http://www.emadibrahim.com/2009/01/08/yonkly-source-code-for-sale/]]: Un post del blog de Emad, que explica las diferencias entre la versión de código fuente comprada y la que se puede descargar en Internet.
Para desarrolladores
* [[Página de Yonkly en Codeplex| http://yonkly.codeplex.com/]]
** [[Código fuente de Yonkly| http://yonkly.codeplex.com/SourceControl/ListDownloadableCommits.aspx]]
* [[Hilo en google groups sobre la instalación de Yonkly| http://groups.google.com/group/yonkly-os/browse_thread/thread/59f41efc2c6f3199]]
* [[ASP.NET MVC v1.0 Source| http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471]]: Un requerimiento para que la instalación sea viable.
Un sistema para ejecución de software que hace transparente el proceso de instalación. Más información en la [[página de Zero Install en El Directorio| http://el-directorio.org/0install]]:
* [[Zero Install Virtual Machines| http://0install.net/virtual.html]]: Cómo ejecutar desde una máquina virtual de Virtualbox, programas de 0install colocados en la máquina anfitriona.
* [[Zero Install Links| http://0install.net/links.html]].
* [[Mancosi| http://www.mancoosi.org/]]: Managing the Complexity of the Open Source Infrastructure. Están interesados en Zero Install e invitaron a su autor a dar una charla al respecto.
* [[Where Zope Leads, Python Follows| http://dirtsimple.org/2007/01/where-zope-leads-python-follows.html]]: El artículo que inició todo (al que llegué por una referencia a la ZCA: Zope Component Architecture, en la lista de [[Leo]]).
* [[Zope en la Wikipedia| http://en.wikipedia.org/wiki/Zope]]
* [[A Comprehensive Guide to Zope Component Architecture| http://www.muthukadan.net/docs/zca.html#id17]] por Baiju M. Interesante el ejemplo sobre una aplicación hecha en Zope pero que tiene interface en Gtk para el escritorio.
* [[Component Architecture Overview en el Wiki de Zope 3| http://wiki.zope.org/zope3/ComponentArchitectureOverview]]
* [[Zsh en el wikide grml|http://grml.org/zsh/]]
* [[A User's Guide to the Z-Shell| http://zsh.sunsite.dk/Guide/zshguide.html]]
* [[Curtains up: introducing the Z shell| http://www.ibm.com/developerworks/linux/library/l-z.html?dwzone=linux]]
* [[Phil!'s ZSH Prompt| http://aperiodic.net/phil/prompt/]]: un tutorial completo de cómo personalizar zsh con un desglose de las diferentes partes del archivo. y variaciones sobre las posibilidades.
* [[My funky ZSH prompt| http://tsdh.wordpress.com/2007/12/06/my-funky-zsh-prompt/]]
''Archivo:'' {{{~/.zshrc}}}
{{{
# Lines configured by zsh-newuser-install
HISTFILE=~/.histfile
HISTSIZE=1000
SAVEHIST=1000
setopt appendhistory autocd beep extendedglob nomatch notify
# End of lines configured by zsh-newuser-install
# The following lines were added by compinstall
zstyle :compinstall filename '/home/offray/.zshrc'

autoload -Uz compinit
compinit
# End of lines added by compinstall
# Cargar el perfil de tema para la consola de mi usuario
autoload -U promptinit
promptinit
prompt adam2 7bit
export TEXMACS_PATH=/home/Compartido/Programas/Texmacs/1.0.7
export PATH=$TEXMACS_PATH/bin:$PATH
}}}
Una de las características interesantes de zsh es su integración con varios sistemas de control de versiones, entre los que se encuentran bazar, git, mercurial y fossil, entre otros. A partir de las últimas versiones (a octubre de 2012) fossil cambio la forma de determinar que un repositorio está abierto, así que ahora usa un archivo {{{.fslckout}}} en lugar del habitual {{{__FOSSIL__}}}, que empleaba en el pasado. Para hacer que fossil reconozca que un repositorio está abierto lo que hacemos que es modificamos el archivo {{{/usr/share/zsh/functions/VCS_Info/Backends/VCS_INFO_detect_fossil}}}, sustituyendo la línea:

{{{
vcs_comm[detect_need_file]=_FOSSIL_
}}}

por:

{{{
vcs_comm[detect_need_file]="_FOSSIL_ .fslckout"
}}}

!! Referencias

* [[Adding a VCS to zsh's vcs_info | http://blog.mired.org/2011/02/adding-vcs-to-zshs-vcsinfo.html]]
* [[vcs_info backend for fossil | http://chiselapp.com/user/mwm/repository/vcs_info/doc/tip/README.wiki]]
* [[Re: vcs_info : git, hg, svn, fossil, etc | http://www.zsh.org/mla/users/2012/msg00594.html]]: Un mensaje en la lista de discusión de zsh que habla de cómo configurar el soporte de fossil con el cambio de estandar reciente.
Un wiki colaborativo basado en Tiddlywiki. Puede ser clave para implementar la [[wikifractalidad|Wikifractality]].
* [[Página de ccTiddly en tiddlywiki.org|http://tiddlywiki.org/wiki/CcTiddly]]
* [[Alpha en Osmosoft|http://wiki.osmosoft.com/alpha/]]: Un proveedor de microwikis basado en ccTiddy, similar a Tiddlyspot.
* [[Serverside tiddly| http://simonmcmanus.wordpress.com/2007/09/14/server-side-tiddlywikis/]]: Un blog que revisa las diferentes versiones que hay para poner a tiddlywiki a charlar con el servidor.