Welcome to TiddlyWiki created by Jeremy Ruston; Copyright © 2004-2007 Jeremy Ruston, Copyright © 2007-2011 UnaMesa Association
!Licenciaturas
Neste semestre sou o professor responsável pela disciplina de Probabilidades e Estatística (PE) para a Licenciatura em Engenharia Electrotécnica e de Computadores.
!Mestrado em Estatística
A partir de meados de Novembro irei leccionar o módulo de Estatística bayesiana da disciplina de Inferência Estatística (IE).
!Horário lectivo
|center|k
||!Segunda|!Terça|!Quarta|!Quinta|!Sexta|!Sábado|
| ''8:00''|||||||
|~|||||||
| ''9:00''|||||||
|~||||||bgcolor(#ffcc33):IE|
| ''10:00''||||||~|
|~|||bgcolor(#ffccff):PE - HD (exames)|||~|
| ''11:00''|||~|||~|
|~|||~|||~|
| ''12:00''|||~|||~|
|~|||||||
| ''13:00''|||||||
|~|||||||
| ''14:00''||||bgcolor(#ffcc33):PE - T5(~EA2)|bgcolor(#ffccff):PE - HD||
|~||||~|~||
| ''15:00''|||||~||
|~|||||~||
| ''16:00''||bgcolor(#ffcc33):PE - T5(~PA1)||bgcolor(#ffcc33):PE - T6(~PA1)|bgcolor(#ffcc33):PE - T5(~GA3)||
|~||~||~|~||
| ''17:00''||bgcolor(#ffcc33):PE - T6(~PA1)|||bgcolor(#ffcc33):PE - T6(~GA3)||
|~||~|||~||
!Licenciaturas
Neste semestre dou aulas práticas de [[Probabilidades e Estatística|https://fenix.ist.utl.pt/publico/viewSiteExecutionCourse.do?method=firstPage&objectCode=45139]] (PE) para as Licenciaturas em Engenharia Electrotécnica e de Computadores e em Engenharia Electrónica, no Taguspark, e a aula prática de [[Análise de Dados Categorizados|http://www.math.ist.utl.pt/~gsilva/adc/]] (ADC) para a Licenciatura em Matemática Aplicada e Computação.
|center|k
||!Segunda|!Terça|!Quarta|!Quinta|!Sexta|
| ''8:00''||||||
|~|||bgcolor(#cfffcf):ADC - P (V1.12)|||
| ''9:00''|||~|||
|~|||~|||
| ''10:00''|||~|||
|~||||||
| ''11:00''||||||
|~||||||
| ''12:00''||||||
|~||||||
| ''13:00''||||||
|~||||||
| ''14:00''||||bgcolor(#ffccff):ADC - HD (P1.12)||
|~||||~||
| ''15:00''|||||bgcolor(#ffccff):PE - HD (2 N4.4)|
|~|||||~|
| ''16:00''|||||~|
|~|||||~|
| ''17:00''|||||bgcolor(#cfffcf):PE - P (0.13)|
|~||bgcolor(#cfffcf):PE - P (0.15)|||~|
| ''18:00''||~|||~|
|~||~|||~|
| ''19:00''||~||||
|~||||||
Neste semestre sou o professor responsável pela disciplina de [[Probabilidades e Estatística|http://pe.math.ist.utl.pt/qeb/]] (PE) para a Licenciatura em Engenharia Química.
|center|k
||!Segunda|!Terça|!Quarta|!Quinta|!Sexta|
| ''8:00''||||||
|~||||||
| ''9:00''||||||
|~||||||
| ''10:00''||||bgcolor(#ffcc33):PE - T2 (~GA3)||
|~||||~||
| ''11:00''|||bgcolor(#ffcc33):PE - T2 (~GA3)|bgcolor(#ffccff):PE - HD (P1.12)|bgcolor(#cfffcf):PE - P5 (Q5.1)|
|~|||~|~|~|
| ''12:00''||bgcolor(#ffcc33):PE - T2 (~GA1)||~|~|
|~||~||~|~|
| ''13:00''||||||
|~||||||
| ''14:00''||||||
|~||||||
| ''15:00''||||||
|~||||||
| ''16:00''||||||
|~||||||
| ''17:00''||||||
|~||||||
| ''18:00''||||||
|~||||||
| ''19:00''||||||
|~||||||
Neste semestre sou o professor responsável pela disciplina de [[Probabilidades e Estatística II|http://www.math.ist.utl.pt/~psoares/pe2/]] (~PE2) para a Licenciatura em Matemática Aplicada.
Dou ainda aulas teóricas e práticas de [[Probabilidades e Estatística|http://pe.math.ist.utl.pt/2s0607a/]] (PE) para várias licenciaturas, sob a responsabilidade do [[Prof. Giovani Silva|http://www.math.ist.utl.pt/~gsilva/]].
|center|k
||!Segunda|!Terça|!Quarta|!Quinta|!Sexta|
| ''8:00''||||||
|~||||||
| ''9:00''||||||
|~||||||
| ''10:00''|bgcolor(#ffcc33):~PE2 - T/P (V1.14)|bgcolor(#ffccff):~PE2 - HD (P1.12)||||
|~|~|~||||
| ''11:00''|~|~||bgcolor(#ffccff):PE - HD (P1.12)||
|~|~|~||~||
| ''12:00''||||~||
|~||||~||
| ''13:00''|||bgcolor(#cfffcf):PE - P8 (V1.24)|||
|~|||~|||
| ''14:00''|||~|bgcolor(#ffcc33):~PE2 - T/P (V1.17)||
|~|||~|~||
| ''15:00''|bgcolor(#ffcc33):PE - T1 (~GA4)|bgcolor(#ffcc33):PE - T1 (~QA02.3)||bgcolor(#ffcc33):PE - T1 (~QA02.4)||
|~|~|~||~||
| ''16:00''||||||
|~||||||
| ''17:00''|bgcolor(#cfffcf):PE - P1 (V0.01)|||||
|~|~||bgcolor(#ffcc33):~PE2 - T/P (V1.14)|||
| ''18:00''|~||~|||
|~|~||~|||
| ''19:00''|||~|||
|~||||||
Neste semestre dou aulas práticas de [[Probabilidades e Estatística|http://pe.math.ist.utl.pt/1s0708/]] (PE) para várias licenciaturas.
Oriento ainda o aluno Vincent Guedes, da LMAC, na disciplina de //Projecto em Matemática//.
|center|k
||!Seg|!Ter|!Qua|!Qui|!Sex|
| ''8:00''||||||
|~||||bgcolor(#cfffcf):PE - P18 (V0.02)||
| ''9:00''||||~||
|~||||~||
| ''10:00''||||||
|~||||||
| ''11:00''||||||
|~||||||
| ''12:00''||||||
|~||||||
| ''13:00''||||||
|~||||||
| ''14:00''||||||
|~||||||
| ''15:00''|||||bgcolor(#ffccff):PE - HD (P1.12)|
|~|||||~|
| ''16:00''|||||~|
|~|||||bgcolor(#cfffcf):PE - P23 (V1.09)|
| ''17:00''|||||~|
|~|||||~|
| ''18:00''||||||
|~||||||
| ''19:00''||||||
|~||||||
Neste semestre sou o professor responsável pela disciplina de [[Complementos de Probabilidades e Estatística|http://www.math.ist.utl.pt/~psoares/cpe/]] (CPE) para a Licenciatura em Matemática Aplicada.
Dou ainda aulas práticas de Probabilidades e Estatística (PE) ([[aqui|https://fenix.ist.utl.pt/disciplinas/pest-4-1/2007-2008/2-semestre]] e [[aqui|https://fenix.ist.utl.pt/disciplinas/pest-4-2/2007-2008/2-semestre]]) para várias licenciaturas.
|center|k
||!Segunda|!Terça|!Quarta|!Quinta|!Sexta|
| ''8:00''||||||
|~||||||
| ''9:00''||||||
|~||||||
| ''10:00''||bgcolor(#ffcc33):~CPE-T (V1.26)|bgcolor(#cfffcf):~PE-P (Q4.4)|||
|~||~|~|||
| ''11:00''||~|~|||
|~||||||
| ''12:00''||||||
|~||||||
| ''13:00''|bgcolor(#ffccff):HD (P1.12)|||||
|~|~|bgcolor(#cfffcf):~CPE-P (V1.27)|bgcolor(#ffccff):HD (P1.12)|||
| ''14:00''|~|~|~|||
|~|bgcolor(#cfffcf):~PE-P (Q4.7)|~|~|||
| ''15:00''|~|||||
|~|~|||||
| ''16:00''|||bgcolor(#ffcc33):~CPE-T (V1.31)|||
|~|bgcolor(#ffccff):HD (P1.12)||~|||
| ''17:00''|~||~|||
|~|||bgcolor(#ffccff):HD (P1.12)|||
| ''18:00''|||~|||
|~||||||
| ''19:00''||||||
|~||||||
Neste semestre sou o professor responsável pelas disciplinas de [[Inferência Estatística|http://www.math.ist.utl.pt/~psoares/ie/]] (IE) na Licenciatura em Matemática Aplicada e de [[Probabilidades e Estatística|https://fenix.ist.utl.pt/disciplinas/pest2/2008-2009/1-semestre]] (PE) no Mestrado Integrado em Engenharia Electrotécnica e de Computadores.
|center|k
||!Seg|!Ter|!Qua|!Qui|!Sex|
| ''8:00''|bgcolor(#ffcc33):~IE-T (P6)|||||
|~|~|||||
| ''9:00''|~|||||
|~|bgcolor(#cfffcf):~IE-P (P6)|||bgcolor(#ffcc33):~IE-T (P6)||
| ''10:00''|~|||~||
|~|~|||~||
| ''11:00''||bgcolor(#ffcc33):~PE-T (~GA1)||||
|~||~||bgcolor(#ffcc33):~PE-T (~GA1)||
| ''12:00''||~||~||
|~||||~||
| ''13:00''||||||
|~||||||
| ''14:00''||||||
|~|||bgcolor(#ffccff):~IE-HD (P1.12)|||
| ''15:00''|||~|bgcolor(#ffccff):~PE-HD (P1.12)||
|~||||~||
| ''16:00''|bgcolor(#ffccff):~IE-HD (P1.12)|||~||
|~|~|||||
| ''17:00''|~|||||
|~||||||
| ''18:00''||||||
|~||||||
| ''19:00''||||||
|~||||||
Neste semestre dou aulas práticas de Probabilidades e Estatística (PE) ([[aqui|https://fenix.ist.utl.pt/disciplinas/pest3/2008-2009/2-semestre]] e [[aqui|https://fenix.ist.utl.pt/disciplinas/pest5/2008-2009/2-semestre]]) para várias licenciaturas.
|center|k
||!Segunda|!Terça|!Quarta|!Quinta|!Sexta|
| ''8:00''||||||
|~||||||
| ''9:00''||||||
|~||||||
| ''10:00''||||||
|~||||||
| ''11:00''|||||bgcolor(#cfffcf):~PE-P (C01)|
|~|||||~|
| ''12:00''|bgcolor(#cfffcf):~PE-P (V1.13)|||bgcolor(#cfffcf):~PE-P (C22)|~|
|~|~|||~||
| ''13:00''|~|||~||
|~||||bgcolor(#cfffcf):~PE-P (V1.16)||
| ''14:00''||||~||
|~||||~||
| ''15:00''||||||
|~||bgcolor(#cfffcf):~PE-P (V1.23)||bgcolor(#ffccff):HD (P1.12)||
| ''16:00''||~||~||
|~||~||~||
| ''17:00''||bgcolor(#ffccff):HD (P1.12)||||
|~||~||||
| ''18:00''||~||||
|~||~||||
| ''19:00''||||||
|~||||||
Neste semestre sou o professor responsável pela disciplina de [[Probabilidades e Estatística|https://fenix.ist.utl.pt/disciplinas/pest2-0-2-3/2009-2010/1-semestre]] (PE) para vários cursos.
|center|k
||!Seg|!Ter|!Qua|!Qui|!Sex|
| ''8:00''|||||
|~||||||
| ''9:00''|||||
|~||||||
| ''10:00''|bgcolor(#ffccff):~PE-HD (P02.09)||||
|~|~|||||
| ''11:00''|~|||||
|~||||||
| ''12:00''||||||
|~||||||
| ''13:00''||||||
|~||||||
| ''14:00''||||||
|~||||||
| ''15:00''||||||
|~||||||
| ''16:00''||||||
|~|||bgcolor(#ffccff):~PE-HD (P02.09)|||
| ''17:00''|||~|||
|~|bgcolor(#cfffcf):~PE-P (V1.32)||bgcolor(#ffcc33):~PE-T (~QA02.1)|bgcolor(#ffcc33):~PE-T (~QA02.1)||
| ''18:00''|~||~|~||
|~|~||~|~||
| ''19:00''||||||
|~||||||
Neste semestre sou o professor responsável pela disciplina de [[Probabilidades e Estatística|https://fenix.ist.utl.pt/disciplinas/pest3-2/2009-2010/2-semestre]] (PE) para vários cursos.
|center|k
||!Seg|!Ter|!Qua|!Qui|!Sex|
| ''8:00''|||||
|~||||||
| ''9:00''|||||
|~||||bgcolor(#ffcc33):~PE-T (~QA02.1)||
| ''10:00''||||~||
|~|bgcolor(#ffcc33):~PE-T (~QA02.4)|||~||
| ''11:00''|~|||||
|~|~|||||
| ''12:00''|bgcolor(#cfffcf):~PE-P (V1.13)|||||
|~|~|||||
| ''13:00''|~|||||
|~||||||
| ''14:00''||||||
|~||||||
| ''15:00''||||||
|~||||bgcolor(#cfffcf):~PE-P (V1.36)||
| ''16:00''||||~||
|~||bgcolor(#cfffcf):~PE-P (P8)||~||
| ''17:00''||~||bgcolor(#ffccff):~PE-HD (P02.09)||
|~||~||~||
| ''18:00''||bgcolor(#ffccff):~PE-HD (P02.09)||~||
|~||~||~||
| ''19:00''||~||||
|~||||||
Neste semestre sou o professor responsável pela disciplina de [[Probabilidades e Estatística|https://fenix.ist.utl.pt/disciplinas/pest3-0/2010-2011/1-semestre]] (PE) para MEC, LEGM e LET.
|center|k
||!Seg|!Ter|!Qua|!Qui|!Sex|
| ''8:00''||||||
|~||||||
| ''9:00''||||||
|~||||||
| ''10:00''||bgcolor(#ffccff):~PE-HD (P02.09)||||
|~||~||||
| ''11:00''||~||||
|~||~||||
| ''12:00''||~||||
|~||||||
| ''13:00''||||||
|~||||||
| ''14:00''||||||
|~||||||
| ''15:00''|bgcolor(#ffcc33):~PE-T (~VA4)||bgcolor(#ffcc33):~PE-T (~VA4)|||
|~|~|bgcolor(#cfffcf):~PE-P (V1.13)|~|||
| ''16:00''|~|~|~|||
|~|bgcolor(#ffcc33):~PE-T (~VA4)|~|bgcolor(#ffcc33):~PE-T (~VA4)|bgcolor(#cfffcf):~PE-P (V1.09)||
| ''17:00''|~||~|~||
|~|~||~|~||
| ''18:00''||||bgcolor(#ffccff):~PE-HD (P02.09)||
|~||||~||
| ''19:00''||||~||
|~||||~||
/***
|''Name:''|AccordionMenuPlugin|
|''Description:''|Turn an unordered list into an accordion style menu|
|''Author:''|Saq Imtiaz ( lewcid@gmail.com )|
|''Source:''|http://tw.lewcid.org/#AccordionMenuPlugin|
|''Code Repository:''|http://tw.lewcid.org/svn/plugins|
|''Version:''|2.0|
|''Date:''|03/11/2007|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.2.5|
!!Usage:
* put {{{<<accordion>>}}} on the line after your unordered list
!!Customizing:
* customize the css via the shadow tiddler StyleSheetAccordionMenuPlugin
* or give the list a custom class by passing the classes as parameters to the macro.
** Eg: {{{<<accordion ClassName1 ClassName2>>}}}
!!Examples:
*[[AccordionMenuPluginDemo]]
***/
// /%
//!BEGIN-PLUGIN-CODE
config.macros.accordion={
dropchar : " \u00BB",
handler : function(place,macroName,params,wikifier,paramString,tiddler){
list = findRelated(place.lastChild,"UL","tagName","previousSibling");
if (!list)
return;
addClass(list,"accordion");
if (params.length){
addClass(list,paramString);
}
this.fixLinks(list.childNodes);
},
fixLinks : function(els){
for (var i=0; i<els.length; i++){
if(els[i].tagName.toLowerCase()=="li"){
var link = findRelated(els[i].firstChild,"A","tagName","nextSibling");
if(!link){
var ih = els[i].firstChild.data;
els[i].removeChild(els[i].firstChild);
link = createTiddlyElement(null,"a",null,null,ih+this.dropchar,{href:"javascript:;"});
els[i].insertBefore(link,els[i].firstChild);
}
else{
link.firstChild.data = link.firstChild.data + this.dropchar;
removeClass(link,"tiddlyLinkNonExisting");
}
link.onclick = this.show;
}
}
},
show : function(e){
var list = this.parentNode.parentNode;
var els = list.childNodes;
for (var i=0; i<els.length; i++){
removeClass(els[i],"accordion-active");
}
addClass(this.parentNode,"accordion-active");
}
};
config.shadowTiddlers["StyleSheetAccordionMenuPlugin"] = "/*{{{*/\n"+
"ul.accordion, ul.accordion li, ul.accordion li ul {margin:0; padding:0; list-style-type:none;text-align:left;}\n"+
"ul.accordion li ul {display:none;}\n"+
"ul.accordion li.accordion-active ul {display:block;}\n"+
"\n"+
"ul.accordion li.accordion-active a {cursor:default;}\n"+
"ul.accordion li.accordion-active ul li a{cursor:pointer;}\n"+
"\n"+
"ul.accordion a {display:block; padding:0.5em;}\n"+
"ul.accordion li a.tiddlyLink, ul.accordion li a.tiddlyLinkNonExisting, ul.accordion li a {font-weight:bold;}\n"+
"ul.accordion li a {background:#0066aa; color:#FFF; border-bottom:1px solid #fff;}\n"+
"ul.accordion li.accordion-active a, ul.accordion li a:hover {background:#00558F;color:#FFF;}\n"+
"\n"+
"ul.accordion li ul li{display:inline-block;overflow:hidden;}\n"+
"ul.accordion li.accordion-active ul li {background:#eff3fa; color:#000; padding:0em;}\n"+
"ul.accordion li.accordion-active ul li div {padding:1em 1.5em; background:#eff3fa;}\n"+
"ul.accordion li.accordion-active ul a{background:#eff3fa; color:#000; padding:0.5em 0.5em 0.5em 1.0em;border:none;}\n"+
"ul.accordion li.accordion-active ul a:hover {background:#e0e8f5; color:#000;}\n" +
"/*}}}*/";
store.addNotification("StyleSheetAccordionMenuPlugin",refreshStyles);
//!END-PLUGIN-CODE
// %/
|center|k
|!Período|!Actividade|
|28/09/1987 - 08/04/1991|Monitor no Instituto de Ciências Biomédicas Abel Salazar|
|17/04/1991 - 14/09/1995|Assistente Estagiário no Instituto Superior Técnico|
|15/09/1995 - 18/09/1996|Assistente Convidado no Instituto Superior Técnico|
|19/09/1996 - 21/11/2004|Assistente no Instituto Superior Técnico|
|22/11/2004 - ...|Professor Auxiliar no Instituto Superior Técnico|
[[Reuniões científicas]]
[[Cursos frequentados]]
[[Afiliações]]
Sou membro das seguintes organizações:
* [[Sociedade Portuguesa de Matemática|http://www.spm.pt]] (SPM)
* [[Sociedade Portuguesa de Estatística|http://www.spestatistica.pt]] (SPE)
* [[International Society for Bayesian Analysis|http://www.bayesian.org]] (ISBA)
[[Semestres anteriores]]
[[Relatórios]]
[[Disciplinas leccionadas]]
text/plain
.txt .text .js .vbs .asp .cgi .pl
----
text/html
.htm .html .hta .htx .mht
----
text/comma-separated-values
.csv
----
text/javascript
.js
----
text/css
.css
----
text/xml
.xml .xsl .xslt
----
image/gif
.gif
----
image/jpeg
.jpg .jpe .jpeg
----
image/png
.png
----
image/bmp
.bmp
----
image/tiff
.tif .tiff
----
audio/basic
.au .snd
----
audio/wav
.wav
----
audio/x-pn-realaudio
.ra .rm .ram
----
audio/x-midi
.mid .midi
----
audio/mp3
.mp3
----
audio/m3u
.m3u
----
video/x-ms-asf
.asf
----
video/avi
.avi
----
video/mpeg
.mpg .mpeg
----
video/quicktime
.qt .mov .qtvr
----
application/pdf
.pdf
----
application/rtf
.rtf
----
application/postscript
.ai .eps .ps
----
application/wordperfect
.wpd
----
application/mswrite
.wri
----
application/msexcel
.xls .xls3 .xls4 .xls5 .xlw
----
application/msword
.doc
----
application/mspowerpoint
.ppt .pps
----
application/x-director
.swa
----
application/x-shockwave-flash
.swf
----
application/x-zip-compressed
.zip
----
application/x-gzip
.gz
----
application/x-rar-compressed
.rar
----
application/octet-stream
.com .exe .dll .ocx
----
application/java-archive
.jar
/***
|Name|AttachFilePlugin|
|Source|http://www.TiddlyTools.com/#AttachFilePlugin|
|Documentation|http://www.TiddlyTools.com/#AttachFilePluginInfo|
|Version|4.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|AttachFilePluginFormatters, AttachFileMIMETypes|
|Description|Store binary files as base64-encoded tiddlers with fallback links for separate local and/or remote file storage|
Store or link binary files (such as jpg, gif, pdf or even mp3) within your TiddlyWiki document and then use them as images or links from within your tiddler content.
> Important note: As of version 3.6.0, in order to //render// images and other binary attachments created with this plugin, you must also install [[AttachFilePluginFormatters]], which extends the behavior of the TiddlyWiki core formatters for embedded images ({{{[img[tooltip|image]]}}}), linked embedded images ({{{[img[tooltip|image][link]]}}}), and external/"pretty" links ({{{[[label|link]]}}}), so that these formatter will process references to attachment tiddlers as if a normal file reference had been provided. |
!!!!!Documentation
>see [[AttachFilePluginInfo]]
!!!!!Inline interface (live)
>see [[AttachFile]] (shadow tiddler)
><<tiddler AttachFile>>
!!!!!Revisions
<<<
2009.06.04 [4.0.0] changed attachment storage format to use //sections// instead of embedded substring markers.
|please see [[AttachFilePluginInfo]] for additional revision details|
2005.07.20 [1.0.0] Initial Release
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePlugin= {major: 4, minor: 0, revision: 0, date: new Date(2009,6,4)};
// shadow tiddler
config.shadowTiddlers.AttachFile="<<attach inline>>";
// add 'attach' backstage task (insert before built-in 'importTask')
if (config.tasks) { // for TW2.2b or above
config.tasks.attachTask = {
text: "attach",
tooltip: "Attach a binary file as a tiddler",
content: "<<attach inline>>"
}
config.backstageTasks.splice(config.backstageTasks.indexOf("importTask"),0,"attachTask");
}
config.macros.attach = {
// // lingo
//{{{
label: "attach file",
tooltip: "Attach a file to this document",
linkTooltip: "Attachment: ",
typeList: "AttachFileMIMETypes",
titlePrompt: " enter tiddler title...",
MIMEPrompt: "<option value=''>select MIME type...</option><option value='editlist'>[edit list...]</option>",
localPrompt: " enter local path/filename...",
URLPrompt: " enter remote URL...",
tiddlerErr: "Please enter a tiddler title",
sourceErr: "Please enter a source path/filename",
storageErr: "Please select a storage method: embedded, local or remote",
MIMEErr: "Unrecognized file format. Please select a MIME type",
localErr: "Please enter a local path/filename",
URLErr: "Please enter a remote URL",
fileErr: "Invalid path/file or file not found",
tiddlerFormat: '!usage\n{{{%0}}}\n%0\n!notes\n%1\n!type\n%2\n!file\n%3\n!url\n%4\n!data\n%5\n',
//}}}
// // macro definition
//{{{
handler:
function(place,macroName,params) {
if (params && !params[0])
{ createTiddlyButton(place,this.label,this.tooltip,this.toggleAttachPanel); return; }
var id=params.shift();
this.createAttachPanel(place,id+"_attachPanel",params);
document.getElementById(id+"_attachPanel").style.position="static";
document.getElementById(id+"_attachPanel").style.display="block";
},
//}}}
//{{{
createAttachPanel:
function(place,panel_id,params) {
if (!panel_id || !panel_id.length) var panel_id="_attachPanel";
// remove existing panel (if any)
var panel=document.getElementById(panel_id); if (panel) panel.parentNode.removeChild(panel);
// set styles for this panel
setStylesheet(this.css,"attachPanel");
// create new panel
var title=""; if (params && params[0]) title=params.shift();
var types=this.MIMEPrompt+this.formatListOptions(store.getTiddlerText(this.typeList)); // get MIME types
panel=createTiddlyElement(place,"span",panel_id,"attachPanel",null);
var html=this.html.replace(/%id%/g,panel_id);
html=html.replace(/%title%/g,title);
html=html.replace(/%disabled%/g,title.length?"disabled":"");
html=html.replace(/%IEdisabled%/g,config.browser.isIE?"disabled":"");
html=html.replace(/%types%/g,types);
panel.innerHTML=html;
if (config.browser.isGecko) { // FF3 FIXUP
document.getElementById("attachSource").style.display="none";
document.getElementById("attachFixPanel").style.display="block";
}
return panel;
},
//}}}
//{{{
toggleAttachPanel:
function (e) {
if (!e) var e = window.event;
var parent=resolveTarget(e).parentNode;
var panel = document.getElementById("_attachPanel");
if (panel==undefined || panel.parentNode!=parent)
panel=config.macros.attach.createAttachPanel(parent,"_attachPanel");
var isOpen = panel.style.display=="block";
if(config.options.chkAnimate)
anim.startAnimating(new Slider(panel,!isOpen,e.shiftKey || e.altKey,"none"));
else
panel.style.display = isOpen ? "none" : "block" ;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
return(false);
},
//}}}
//{{{
formatListOptions:
function(text) {
if (!text || !text.trim().length) return "";
// get MIME list content from text
var parts=text.split("\n----\n");
var out="";
for (var p=0; p<parts.length; p++) {
var lines=parts[p].split("\n");
var label=lines.shift(); // 1st line=display text
var value=lines.shift(); // 2nd line=item value
out +='<option value="%1">%0</option>'.format([label,value]);
}
return out;
},
//}}}
// // interface definition
//{{{
css:
".attachPanel { display: none; position:absolute; z-index:10; width:35em; right:105%; top:0em;\
background-color: #eee; color:#000; font-size: 8pt; line-height:110%;\
border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;\
padding: 0.5em; margin:0em; -moz-border-radius:1em;-webkit-border-radius:1em; text-align:left }\
.attachPanel form { display:inline;border:0;padding:0;margin:0; }\
.attachPanel select { width:99%;margin:0px;font-size:8pt;line-height:110%;}\
.attachPanel input { width:98%;padding:0px;margin:0px;font-size:8pt;line-height:110%}\
.attachPanel textarea { width:98%;margin:0px;height:2em;font-size:8pt;line-height:110%}\
.attachPanel table { width:100%;border:0;margin:0;padding:0;color:inherit; }\
.attachPanel tbody, .attachPanel tr, .attachPanel td { border:0;margin:0;padding:0;color:#000; }\
.attachPanel .box { border:1px solid black; padding:.3em; margin:.3em 0px; background:#f8f8f8; \
-moz-border-radius:5px;-webkit-border-radius:5px; }\
.attachPanel .chk { width:auto;border:0; }\
.attachPanel .btn { width:auto; }\
.attachPanel .btn2 { width:49%; }\
",
//}}}
//{{{
html:
'<form>\
attach from source file\
<input type="file" id="attachSource" name="source" size="56"\
onChange="config.macros.attach.onChangeSource(this)">\
<div id="attachFixPanel" style="display:none"><!-- FF3 FIXUP -->\
<input type="text" id="attachFixSource" style="width:90%"\
title="Enter a path/file to attach"\
onChange="config.macros.attach.onChangeSource(this);">\
<input type="button" style="width:7%" value="..."\
title="Enter a path/file to attach"\
onClick="config.macros.attach.askForFilename(document.getElementById(\'attachFixSource\'));">\
</div><!--end FF3 FIXUP-->\
<div class="box">\
<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
embed data <input type=checkbox class=chk name="useData" %IEdisabled% \
onclick="if (!this.form.MIMEType.value.length)\
this.form.MIMEType.selectedIndex=this.checked?1:0; "> \
</td><td style="border:0">\
<select size=1 name="MIMEType" \
onchange="this.title=this.value; if (this.value==\'editlist\')\
{ this.selectedIndex=this.form.useData.checked?1:0; story.displayTiddler(null,config.macros.attach.typeList,2); return; }">\
<option value=""></option>\
%types%\
</select>\
</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
local link <input type=checkbox class=chk name="useLocal"\
onclick="this.form.local.value=this.form.local.defaultValue=this.checked?config.macros.attach.localPrompt:\'\';"> \
</td><td style="border:0">\
<input type=text name="local" size=15 autocomplete=off value=""\
onchange="this.form.useLocal.checked=this.value.length" \
onkeyup="this.form.useLocal.checked=this.value.length" \
onfocus="if (!this.value.length) this.value=config.macros.attach.localPrompt; this.select()">\
</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
remote link <input type=checkbox class=chk name="useURL"\
onclick="this.form.URL.value=this.form.URL.defaultValue=this.checked?config.macros.attach.URLPrompt:\'\';\"> \
</td><td style="border:0">\
<input type=text name="URL" size=15 autocomplete=off value=""\
onfocus="if (!this.value.length) this.value=config.macros.attach.URLPrompt; this.select()"\
onchange="this.form.useURL.checked=this.value.length;"\
onkeyup="this.form.useURL.checked=this.value.length;">\
</td></tr></table>\
</div>\
<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;vertical-align:top;width:1%;white-space:nowrap">\
notes \
</td><td style="border:0" colspan=2>\
<textarea name="notes" style="width:98%;height:3.5em;margin-bottom:2px"></textarea>\
</td><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
attach as \
</td><td style="border:0" colspan=2>\
<input type=text name="tiddlertitle" size=15 autocomplete=off value="%title%"\
onkeyup="if (!this.value.length) { this.value=config.macros.attach.titlePrompt; this.select(); }"\
onfocus="if (!this.value.length) this.value=config.macros.attach.titlePrompt; this.select()" %disabled%>\
</td></tr></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
add tags \
</td><td style="border:0">\
<input type=text name="tags" size=15 autocomplete=off value="" onfocus="this.select()">\
</td><td style="width:40%;text-align:right;border:0">\
<input type=button class=btn2 value="attach"\
onclick="config.macros.attach.onClickAttach(this)"><!--\
--><input type=button class=btn2 value="close"\
onclick="var panel=document.getElementById(\'%id%\'); if (panel) panel.parentNode.removeChild(panel);">\
</td></tr></table>\
</form>',
//}}}
// // control processing
//{{{
onChangeSource:
function(here) {
var form=here.form;
var list=form.MIMEType;
var theFilename = here.value;
var theExtension = theFilename.substr(theFilename.lastIndexOf('.')).toLowerCase();
// if theFilename is in current document folder, remove path prefix and use relative reference
var h=document.location.href; folder=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf("/")+1)));
if (theFilename.substr(0,folder.length)==folder) theFilename='./'+theFilename.substr(folder.length);
else theFilename='file:///'+theFilename; // otherwise, use absolute reference
theFilename=theFilename.replace(/\\/g,"/"); // fixup: change \ to /
form.useLocal.checked = true;
form.local.value = theFilename;
form.useData.checked = !form.useData.disabled;
list.selectedIndex=1;
for (var i=0; i<list.options.length; i++) // find matching MIME type
if (list.options[i].value.indexOf(theExtension)!=-1) { list.selectedIndex = i; break; }
if (!form.tiddlertitle.disabled)
form.tiddlertitle.value=theFilename.substr(theFilename.lastIndexOf('/')+1); // get tiddlername from filename
},
//}}}
//{{{
onClickAttach:
function (here) {
clearMessage();
// get input values
var form=here.form;
var src=form.source; if (config.browser.isGecko) src=document.getElementById("attachFixSource");
src=src.value!=src.defaultValue?src.value:"";
var when=(new Date()).formatString(config.macros.timeline.dateFormat);
var title=form.tiddlertitle.value;
var local = form.local.value!=form.local.defaultValue?form.local.value:"";
var url = form.URL.value!=form.URL.defaultValue?form.URL.value:"";
var notes = form.notes.value;
var tags = "attachment excludeMissing "+form.tags.value;
var useData=form.useData.checked;
var useLocal=form.useLocal.checked;
var useURL=form.useURL.checked;
var mimetype = form.MIMEType.value.length?form.MIMEType.options[form.MIMEType.selectedIndex].text:"";
// validate checkboxes and get filename
if (useData) {
if (src.length) { if (!theLocation) var theLocation=src; }
else { alert(this.sourceErr); src.focus(); return false; }
}
if (useLocal) {
if (local.length) { if (!theLocation) var theLocation = local; }
else { alert(this.localErr); form.local.focus(); return false; }
}
if (useURL) {
if (url.length) { if (!theLocation) var theLocation = url; }
else { alert(this.URLErr); form.URL.focus(); return false; }
}
if (!(useData||useLocal||useURL))
{ form.useData.focus(); alert(this.storageErr); return false; }
if (!theLocation)
{ src.focus(); alert(this.sourceErr); return false; }
if (!title || !title.trim().length || title==this.titlePrompt)
{ form.tiddlertitle.focus(); alert(this.tiddlerErr); return false; }
// if not already selected, determine MIME type based on filename extension (if any)
if (useData && !mimetype.length && theLocation.lastIndexOf('.')!=-1) {
var theExt = theLocation.substr(theLocation.lastIndexOf('.')).toLowerCase();
var theList=form.MIMEType;
for (var i=0; i<theList.options.length; i++)
if (theList.options[i].value.indexOf(theExt)!=-1)
{ var mimetype=theList.options[i].text; theList.selectedIndex=i; break; }
}
// attach the file
return this.createAttachmentTiddler(src, when, notes, tags, title,
useData, useLocal, useURL, local, url, mimetype);
},
getMIMEType:
function(src,def) {
var ext = src.substr(src.lastIndexOf('.')).toLowerCase();
var list=store.getTiddlerText(this.typeList);
if (!list || !list.trim().length) return def;
// get MIME list content from tiddler
var parts=list.split("\n----\n");
for (var p=0; p<parts.length; p++) {
var lines=parts[p].split("\n");
var mime=lines.shift(); // 1st line=MIME type
var match=lines.shift(); // 2nd line=matching extensions
if (match.indexOf(ext)!=-1) return mime;
}
return def;
},
createAttachmentTiddler:
function (src, when, notes, tags, title, useData, useLocal, useURL, local, url, mimetype, noshow) {
if (useData) { // encode the data
if (!mimetype.length) {
alert(this.MIMEErr);
form.MIMEType.selectedIndex=1; form.MIMEType.focus();
return false;
}
var d = this.readFile(src); if (!d) { return false; }
displayMessage('encoding '+src);
var encoded = this.encodeBase64(d);
displayMessage('file size='+d.length+' bytes, encoded size='+encoded.length+' bytes');
}
var usage=(mimetype.substr(0,5)=="image"?'[img[%0]]':'[[%0|%0]]').format([title]);
var theText=this.tiddlerFormat.format([
usage, notes.length?notes:'//none//', mimetype,
useLocal?local.replace(/\\/g,'/'):'', useURL?url:'',
useData?('data:'+mimetype+';base64,'+encoded):'' ]);
store.saveTiddler(title,title,theText,config.options.txtUserName,new Date(),tags);
var panel=document.getElementById("attachPanel"); if (panel) panel.style.display="none";
if (!noshow) { story.displayTiddler(null,title); story.refreshTiddler(title,null,true); }
displayMessage('attached "'+title+'"');
return true;
},
//}}}
// // base64 conversion
//{{{
encodeBase64:
function (d) {
if (!d) return null;
// encode as base64
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var out="";
var chr1,chr2,chr3="";
var enc1,enc2,enc3,enc4="";
for (var count=0,i=0; i<d.length; ) {
chr1=d.charCodeAt(i++);
chr2=d.charCodeAt(i++);
chr3=d.charCodeAt(i++);
enc1=chr1 >> 2;
enc2=((chr1 & 3) << 4) | (chr2 >> 4);
enc3=((chr2 & 15) << 2) | (chr3 >> 6);
enc4=chr3 & 63;
if (isNaN(chr2)) enc3=enc4=64;
else if (isNaN(chr3)) enc4=64;
out+=keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);
chr1=chr2=chr3=enc1=enc2=enc3=enc4="";
}
return out;
},
decodeBase64: function(input) {
var out="";
var chr1,chr2,chr3;
var enc1,enc2,enc3,enc4;
var i = 0;
// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
input=input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
do {
enc1=keyStr.indexOf(input.charAt(i++));
enc2=keyStr.indexOf(input.charAt(i++));
enc3=keyStr.indexOf(input.charAt(i++));
enc4=keyStr.indexOf(input.charAt(i++));
chr1=(enc1 << 2) | (enc2 >> 4);
chr2=((enc2 & 15) << 4) | (enc3 >> 2);
chr3=((enc3 & 3) << 6) | enc4;
out=out+String.fromCharCode(chr1);
if (enc3!=64) out=out+String.fromCharCode(chr2);
if (enc4!=64) out=out+String.fromCharCode(chr3);
} while (i<input.length);
return out;
},
//}}}
// // I/O functions
//{{{
readFile: // read local BINARY file data
function(filePath) {
if(!window.Components) { return null; }
try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
catch(e) { alert("access denied: "+filePath); return null; }
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
try { file.initWithPath(filePath); } catch(e) { alert("cannot read file - invalid path: "+filePath); return null; }
if (!file.exists()) { alert("cannot read file - not found: "+filePath); return null; }
var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
inputStream.init(file, 0x01, 00004, null);
var bInputStream = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream);
bInputStream.setInputStream(inputStream);
return(bInputStream.readBytes(inputStream.available()));
},
//}}}
//{{{
writeFile:
function(filepath,data) {
// TBD: decode base64 and write BINARY data to specified local path/filename
return(false);
},
//}}}
//{{{
askForFilename: // for FF3 fixup
function(target) {
var msg=config.messages.selectFile;
if (target && target.title) msg=target.title; // use target field tooltip (if any) as dialog prompt text
// get local path for current document
var path=getLocalPath(document.location.href);
var p=path.lastIndexOf("/"); if (p==-1) p=path.lastIndexOf("\\"); // Unix or Windows
if (p!=-1) path=path.substr(0,p+1); // remove filename, leave trailing slash
var file=""
var result=window.mozAskForFilename(msg,path,file,true); // FF3 FIXUP ONLY
if (target && result.length) // set target field and trigger handling
{ target.value=result; target.onchange(); }
return result;
}
};
//}}}
//{{{
if (window.mozAskForFilename===undefined) { // also defined by CoreTweaks (for ticket #604)
window.mozAskForFilename=function(msg,path,file,mustExist) {
if(!window.Components) return false;
try {
netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
picker.init(window, msg, mustExist?nsIFilePicker.modeOpen:nsIFilePicker.modeSave);
var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
thispath.initWithPath(path);
picker.displayDirectory=thispath;
picker.defaultExtension='';
picker.defaultString=file;
picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
if (picker.show()!=nsIFilePicker.returnCancel)
var result=picker.file.persistentDescriptor;
}
catch(ex) { displayMessage(ex.toString()); }
return result;
}
}
//}}}
/***
|Name|AttachFilePluginFormatters|
|Source|http://www.TiddlyTools.com/#AttachFilePluginFormatters|
|Version|4.0.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1.3|
|Type|plugin|
|Description|run-time library for displaying attachment tiddlers|
Runtime processing for //rendering// attachment tiddlers created by [[AttachFilePlugin]]. Attachment tiddlers are tagged with<<tag attachment>>and contain binary file content (e.g., jpg, gif, pdf, mp3, etc.) that has been stored directly as base64 text-encoded data or can be loaded from external files stored on a local filesystem or remote web server. Note: after creating new attachment tiddlers, you can remove [[AttachFilePlugin]], as long as you retain //this// tiddler (so that images can be rendered later on).
!!!!!Formatters
<<<
This plugin extends the behavior of the following TiddlyWiki core "wikify()" formatters:
* embedded images: {{{[img[tooltip|image]]}}}
* linked embedded images: {{{[img[tooltip|image][link]]}}}
* external/"pretty" links: {{{[[label|link]]}}}
''Please refer to AttachFilePlugin (source: http://www.TiddlyTools.com/#AttachFilePlugin) for additional information.''
<<<
!!!!!Revisions
<<<
2009.10.10 [4.0.1] in fileExists(), check for IE to avoid hanging Chrome during startup
2009.06.04 [4.0.0] changed attachment storage format to use //sections// instead of embedded substring markers.
2008.01.08 [*.*.*] plugin size reduction: documentation moved to ...Info
2007.12.04 [*.*.*] update for TW2.3.0: replaced deprecated core functions, regexps, and macros
2007.10.29 [3.7.0] more code reduction: removed upload handling from AttachFilePlugin (saves ~7K!)
2007.10.28 [3.6.0] removed duplicate formatter code from AttachFilePlugin (saves ~10K!) and updated documentation accordingly. This plugin ([[AttachFilePluginFormatters]]) is now //''required''// in order to display attached images/binary files within tiddler content.
2006.05.20 [3.4.0] through 2007.03.01 [3.5.3] sync with AttachFilePlugin
2006.05.13 [3.2.0] created from AttachFilePlugin v3.2.0
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePluginFormatters= {major: 4, minor: 0, revision: 1, date: new Date(2009,10,10)};
//}}}
//{{{
if (config.macros.attach==undefined) config.macros.attach= { };
//}}}
//{{{
if (config.macros.attach.isAttachment==undefined) config.macros.attach.isAttachment=function (title) {
var tiddler = store.getTiddler(title);
if (tiddler==undefined || tiddler.tags==undefined) return false;
return (tiddler.tags.indexOf("attachment")!=-1);
}
//}}}
//{{{
// test for local file existence - returns true/false without visible error display
if (config.macros.attach.fileExists==undefined) config.macros.attach.fileExists=function(f) {
if(window.Components) { // MOZ
try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
catch(e) { return false; } // security access denied
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
try { file.initWithPath(f); }
catch(e) { return false; } // invalid directory
return file.exists();
}
else if (config.browser.isIE) { // IE
var fso = new ActiveXObject("Scripting.FileSystemObject");
return fso.FileExists(f);
}
else return true; // other browsers: assume file exists
}
//}}}
//{{{
if (config.macros.attach.getAttachment==undefined) config.macros.attach.getAttachment=function(title) {
// extract embedded data, local and remote links (if any)
var text=store.getTiddlerText(title,'');
var embedded=store.getTiddlerText(title+'##data','').trim();
var locallink=store.getTiddlerText(title+'##file','').trim();
var remotelink=store.getTiddlerText(title+'##url','').trim();
// backward-compatibility for older attachments (pre 4.0.0)
var startmarker="---BEGIN_DATA---\n";
var endmarker="\n---END_DATA---";
var pos=0; var endpos=0;
if ((pos=text.indexOf(startmarker))!=-1 && (endpos=text.indexOf(endmarker))!=-1)
embedded="data:"+(text.substring(pos+startmarker.length,endpos)).replace(/\n/g,'');
if ((pos=text.indexOf("/%LOCAL_LINK%/"))!=-1)
locallink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));
if ((pos=text.indexOf("/%REMOTE_LINK%/"))!=-1)
remotelink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));
// if there is a data: URI defined (not supported by IE)
if (embedded.length && !config.browser.isIE) return embedded;
// document is being served remotely... use remote URL (if any) (avoids security alert)
if (remotelink.length && document.location.protocol!="file:")
return remotelink;
// local link only... return link without checking file existence (avoids security alert)
if (locallink.length && !remotelink.length)
return locallink;
// local link, check for file exist... use local link if found
if (locallink.length) {
locallink=locallink.replace(/^\.[\/\\]/,''); // strip leading './' or '.\' (if any)
if (this.fileExists(getLocalPath(locallink))) return locallink;
// maybe local link is relative... add path from current document and try again
var pathPrefix=document.location.href; // get current document path and trim off filename
var slashpos=pathPrefix.lastIndexOf("/"); if (slashpos==-1) slashpos=pathPrefix.lastIndexOf("\\");
if (slashpos!=-1 && slashpos!=pathPrefix.length-1) pathPrefix=pathPrefix.substr(0,slashpos+1);
if (this.fileExists(getLocalPath(pathPrefix+locallink))) return locallink;
}
// no embedded data, no local (or not found), fallback to remote URL (if any)
if (remotelink.length) return remotelink;
// attachment URL doesn't resolve, just return input as is
return title;
}
//}}}
//{{{
if (config.macros.attach.init_formatters==undefined) config.macros.attach.init_formatters=function() {
if (this.initialized) return;
// find the formatter for "image" and replace the handler
for (var i=0; i<config.formatters.length && config.formatters[i].name!="image"; i++);
if (i<config.formatters.length) config.formatters[i].handler=function(w) {
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) // Simple bracketted link
{
var e = w.output;
if(lookaheadMatch[5])
{
var link = lookaheadMatch[5];
// ELS -------------
var external=config.formatterHelpers.isExternalLink(link);
if (external)
{
if (config.macros.attach.isAttachment(link))
{
e = createExternalLink(w.output,link);
e.href=config.macros.attach.getAttachment(link);
e.title = config.macros.attach.linkTooltip + link;
}
else
e = createExternalLink(w.output,link);
}
else
e = createTiddlyLink(w.output,link,false,null,w.isStatic);
// ELS -------------
addClass(e,"imageLink");
}
var img = createTiddlyElement(e,"img");
if(lookaheadMatch[1])
img.align = "left";
else if(lookaheadMatch[2])
img.align = "right";
if(lookaheadMatch[3])
img.title = lookaheadMatch[3];
img.src = lookaheadMatch[4];
// ELS -------------
if (config.macros.attach.isAttachment(lookaheadMatch[4]))
img.src=config.macros.attach.getAttachment(lookaheadMatch[4]);
// ELS -------------
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
}
//}}}
//{{{
// find the formatter for "prettyLink" and replace the handler
for (var i=0; i<config.formatters.length && config.formatters[i].name!="prettyLink"; i++);
if (i<config.formatters.length) {
config.formatters[i].handler=function(w) {
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
var e;
var text = lookaheadMatch[1];
if(lookaheadMatch[3]) {
// Pretty bracketted link
var link = lookaheadMatch[3];
if (config.macros.attach.isAttachment(link)) {
e = createExternalLink(w.output,link);
e.href=config.macros.attach.getAttachment(link);
e.title=config.macros.attach.linkTooltip+link;
}
else e = (!lookaheadMatch[2] && config.formatterHelpers.isExternalLink(link))
? createExternalLink(w.output,link)
: createTiddlyLink(w.output,link,false,null,w.isStatic);
} else {
e = createTiddlyLink(w.output,text,false,null,w.isStatic);
}
createTiddlyText(e,text);
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
}
} // if "prettyLink" formatter found
this.initialized=true;
}
//}}}
//{{{
config.macros.attach.init_formatters(); // load time init
//}}}
//{{{
if (TiddlyWiki.prototype.coreGetRecursiveTiddlerText==undefined) {
TiddlyWiki.prototype.coreGetRecursiveTiddlerText = TiddlyWiki.prototype.getRecursiveTiddlerText;
TiddlyWiki.prototype.getRecursiveTiddlerText = function(title,defaultText,depth) {
return config.macros.attach.isAttachment(title)?
config.macros.attach.getAttachment(title):this.coreGetRecursiveTiddlerText.apply(this,arguments);
}
}
//}}}
Projecto conjunto com Jorge Achcar (~UFSC-Brasil) e Carlos Daniel Paulino (IST).
[[Simulação de dados de um PPNH]]
!Conjuntos de dados
http://www.cse.cuhk.edu.hk/~lyu/book/reliability/data.html -- software reliability (Lyu)
http://www.cmhrc.pwp.blueyonder.co.uk/lodis.htm -- MINING DISASTERS IN GREAT BRITAIN
http://www.wvminesafety.org/disaster.htm -- West Virginia MINE DISASTERS 1884 to Present
http://www.welshcoalmines.co.uk/DisastersList.htm -- Welsh Mining Disasters
http://www.dmm.org.uk/ -- Durham Mining Museum
/***
|''Name:''|BibTeXPlugin|
|''Description:''|Very incomplete BibTeX implementation to work with bibliographic references|
|''Author:''|Paulo Soares|
|''Version:''|1.4|
|''Date:''|2009-11-20|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Overrides''|Story.prototype.refreshTiddler|
|''Documentation:''|[[BibTeXPlugin Documentation|BibTeXPluginDoc]]|
|''License:''|[[Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.5.0|
***/
//{{{
if(!version.extensions.BibTeXPlugin) { //# ensure that the plugin is only installed once
version.extensions.BibTeXPlugin = {installed: true};
(function($) {
config.macros.cite = {
noReference: "(??)",
refreshTiddler: Story.prototype.refreshTiddler
};
config.macros.cite.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
var pos, cmb = config.macros.bibliography;
if(params.length==0) return;
var entry = params[0];
var args = paramString.parseParams(null,null,true);
var title = getParam(args,"bibliography",null);
if(title) {
this.biblioTiddler = title;
} else {title = this.biblioTiddler;}
title = getParam(args,"thisBibliography",title);
var format = getParam(args,"format",null);
if(format) {
this.format = format;
} else {format = this.format;}
format = getParam(args,"thisFormat",format);
var argsArray = paramString.readMacroParams();
var showAll = ($.inArray('showAll',argsArray) > -1);
if(title && store.tiddlerExists(title)) var bib = cmb.extractEntry(title, entry);
if(bib.content) {
var entries = this.entries;
if($.inArray(entry, entries)==-1) this.entries.push(entry);
entries = this.entries;
pos = $.inArray(entry, entries)+1;
var author = cmb.processNames(bib.content.extract("author"), showAll);
var year = bib.content.extract("year");
var citation = format.replace("author", author);
citation = citation.replace("year", year);
citation = citation.replace("number", pos);
wikify(citation, place);
} else {
wikify(this.noReference, place);
}
}
Story.prototype.refreshTiddler = function(title,template,force){
config.macros.cite.biblioTiddler = null;
config.macros.cite.format = "author (year)";
config.macros.cite.entries = [];
var tiddler = config.macros.cite.refreshTiddler.apply(this,arguments);
return tiddler;
}
config.macros.bibliography = {
article: {fields: ["author", "year", "title", "journal", "volume", "pages"], format: "author (year). title. //journal// ''volume'', pages."},
book: {fields: ["author", "year", "title", "publisher"], format: "author (year). //title//. publisher."},
inproceedings: {fields: ["author", "year", "title", "editor", "booktitle", "pages", "publisher"], format: "author (year). title. In editor //booktitle//, pages. publisher."},
incollection: {fields: ["author", "year", "title", "editor", "booktitle", "pages", "publisher"], format: "author (year). title. In editor //booktitle//, pages. publisher."},
techreport: {fields: ["author", "year", "title", "institution"], format: "author (year). title. Technical report, institution."},
manual: {fields: ["author", "year", "title", "organization"], format: "author (year). //title//. organization."},
unpublished: {fields: ["author", "year", "title"], format: "author (year). //title//. Unpublished."}
};
config.macros.bibliography.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
var cmc = config.macros.cite;
var title = (cmc.biblioTiddler) ? cmc.biblioTiddler : params[0];
if(!title || !store.tiddlerExists(title)) return;
var argsArray = paramString.readMacroParams();
var i, entryText;
var entries = [];
if($.inArray('showAll',argsArray) > -1) {
entryText = this.extractAllEntries(title);
for(i=0; i<entryText.length; i++) {
entries[entries.length] = this.processEntry(entryText[i], i);
}
} else {
for(i=0; i<cmc.entries.length; i++){
entryText = this.extractEntry(title, cmc.entries[i]);
if(entryText) {
entries[entries.length] = this.processEntry(entryText, i);
}
}
}
entries.sort();
wikify(entries[0] , place);
for (i=1; i < entries.length; i++) {
wikify("\n\n" + entries[i] , place);
}
return true;
}
config.macros.bibliography.processNames = function(names, showAll) {
var i, authors = names.split(" and ");
var entry = authors[0];
var numAuthors = authors.length;
var fullEntry = entry;
if (numAuthors==2) {
entry += " and " + authors[1];
fullEntry = entry;
}
if (numAuthors>2) {
fullEntry = entry;
for (i=1; i < numAuthors; i++) {
if (i==numAuthors-1) {fullEntry += " and "} else {fullEntry += ", "};
fullEntry += authors[i];
}
if(showAll) {entry = fullEntry;} else {entry += " et al.";}
}
return entry;
}
config.macros.bibliography.processEntry = function(entry, pos) {
var field, text=entry.content;
var fields={};
fields.number = pos+1;
var type = this[entry.type];
var output = type.format;
for(var i=0; i<type.fields.length; i++){
field = type.fields[i];
switch(field){
case "author":
fields.author = this.processNames(text.extract("author"), true);
break;
case "title":
var url = text.extract("url");
fields.title = text.extract("title");
fields.title = (url=='') ? fields.title : "[[" + fields.title + "|" + url + "]]";
break;
case "editor":
var editor = text.extract("editor");
fields.editor = (editor=='') ? editor : this.processNames(editor,true) + " (Eds.), ";
break;
default:
fields[field] = text.extract(field);
}
output = output.replace(field, fields[field]);
}
return output;
}
config.macros.bibliography.extractEntry = function(title,entry) {
var bib = {type: null, content: null};
var text = store.getTiddlerText(title);
var re = new RegExp('\\s*@(\\w+?)\\{\\s*' + entry + '\\s*,\\s*(.[^@]+)\\}','mi');
var field = text.match(re);
if(field) {
bib.type = field[1].toLowerCase();
bib.content = field[2];
}
return bib;
}
config.macros.bibliography.extractAllEntries = function(title) {
var bib, field, entries = [];
var text = store.getTiddlerText(title);
var bibs = text.match(/\s*@(\w+?)\{\s*(.[^@]+)\}/mgi);
for(var i=0; i<bibs.length; i++){
field=bibs[i].match(/\s*@(\w+?)\{\s*(.[^@]+)\}/mi);
bib = {type: null, content: null};
if(field) {
bib.type = field[1].toLowerCase();
bib.content = field[2];
if(bib.type!='string' && bib.type!='preamble' && bib.type!='comment') entries.push(bib);
}
}
return entries;
}
config.macros.bibliography.extractField = function(field) {
var text = "";
var re = new RegExp('\\s*'+field+'\\s*=\\s*[\\{|"]\\s*(.+?)\\s*[\\}|"],','mi');
var fieldText = this.match(re);
if(fieldText){
text = fieldText[1].replace(/\{|\}/g,'');
text = text.replace(/-+/g,"—");
}
return text;
}
String.prototype.extract = config.macros.bibliography.extractField;
config.shadowTiddlers.BibTeXPluginDoc="The documentation is available [[here.|http://www.math.ist.utl.pt/~psoares/addons.html#BibTeXPluginDoc]]";
})(jQuery)
}
//}}}
{{{
@book{davison-bmatasisapmn11997,
title = {Bootstrap Methods And Their Application (Cambridge Series In Statistical And Probabilistic Mathematics, No 1)},
author = {Davison, A. C. and Hinkley, D. V.},
publisher = {Cambridge University Press},
year = {1997},
edition = {1},
pages = {592},
isbn = {0-521-57471-4}
}
@ARTICLE{Ait:82,
author = {Aitchison, J.},
title = {The Statistical Analysis of Compositional Data},
journal = {Journal of the Royal Statistical Society B},
year = {1982},
volume = {44},
pages = {139-177},
number = {2}
}
@article{SoBobe:01,
author = {Solow, A. R., Bollens, S. M., Beet, A.},
title = {Comparing Two Vertical Plankton Distributions},
journal = {Limnology and Oceanography},
volume = {45},
number= {2},
pages = {506-509},
year = {2000},
}
@article{Bagg:01,
author = {Baggerly, K. A.},
title = {Probability binning and testing agreement between multivariate immunofluorescence histograms: Extending the chi-squared test},
journal = {Cytometry},
volume = {45},
number= {2},
pages = {141-150},
year = {2001},
url = {http://dx.doi.org/10.1002/1097-0320(20011001)45:2<141::AID-CYTO1156>3.0.CO;2-M},
}
@article{Wat:01,
author = {Watson, J. V.},
title = {Proof without prejudice revisited: Immunofluorescence histogram analysis using cumulative frequency subtraction plus ratio analysis of means},
journal = {Cytometry},
volume = {43},
number= {1},
pages = {55-68},
year = {2001},
url = {http://dx.doi.org/10.1002/1097-0320(20010101)43:1<55::AID-CYTO1019>3.0.CO;2-T},
}
@article{Lam:00,
author = {Lampariello, F.},
title = {On the use of the Kolmogorov-Smirnov statistical test for immunofluorescence histogram comparison},
journal = {Cytometry},
volume = {39},
number= {3},
pages = {179-188},
year = {2000},
url = {http://dx.doi.org/10.1002/(SICI)1097-0320(20000301)39:3<179::AID-CYTO2>3.0.CO;2-I},
}
@article{Cox:01,
author = {Cox, C. and Reeder, J.E and Robinson, R. D. and Suppes, S. B. and Wheeless, L. L.},
title = {Comparison of frequency distributions in flow cytometry},
journal = {Cytometry},
volume = {9},
number= {4},
pages = {291-298},
year = {1988},
url = {http://dx.doi.org/10.1002/cyto.990090404},
}
@INPROCEEDINGS{Bra:07,
author = {Branco, J. A. and Pires, A. M.},
title = {Poucos dados não é derrota e muitos dados não é vitória},
booktitle = {Estatística Ciência Interdisciplinar - Actas do XIV Congresso Anual da Sociedade Portuguesa de Estatística},
year = {2007},
editor = {Ferrão, M. E. and Nunes, C. and Braumann, C. A.},
pages = {257-268},
address = {Lisboa},
publisher ={SPE},
}
@article{Roed:01,
author = {Roederer, M. and Moore, W. and Treister, A. and Hardy, R. R. and Herzenberg, L. A.},
title = {Probability binning comparison: a metric for quantitating multivariate distribution differences},
journal = {Cytometry},
volume = {46}
pages = {37-46},
year = {2001},
url = {http://dx.doi.org/10.1002/1097-0320(20010901)45:1<47::AID-CYTO1143>3.0.CO;2-A},
}
@article{Pari:99,
author = {Parikh, H. H. and Li, W. C. and Ramanathan, M.},
title = {Evaluation of an alternative to the Kolmogorov-Smirnov test for flow cytometric histogram comparisons},
journal = {Journal of Immunological Methods},
volume = {229},
pages = {97-105},
year = {1999},
url = {http://dx.doi.org/10.1016/S0022-1759(99)00108-8},
}
@article{Noe:63,
author = {Noether, G. E.},
title = {Note on the Kolmogorov Statistic in the Discrete Case},
journal = {Metrika},
volume = {7},
number = {1},
pages = {115-116},
year = {1963},
url = {http://www.springerlink.com/content/m140803n35h1628w},
}
@article{PDFinch03011979,
author = {Finch, P. D.},
title = {Substantive difference and the analysis of histograms from very large samples [letter]},
journal = {Journal of Histochemistry and Cytochemistry},
volume = {27},
number = {3},
pages = {800},
year = {1979},
url = {http://www.jhc.org/cgi/reprint/27/3/800.pdf},
}
@article{ITYoung07011977,
author = {Young, I. T.},
title = {Proof without prejudice: use of the Kolmogorov-Smirnov test for the analysis of histograms from flow systems and other sources},
journal = {Journal of Histochemistry and Cytochemistry},
volume = {25},
number = {7},
pages = {935-941},
year = {1977},
url = {http://www.jhc.org/cgi/reprint/25/7/935.pdf},
}
}}}
{{{
@incollection{212782,
editor = {Michie, D. and Spiegelhalter, D. J. and Taylor, C. C. and Campbell, J.},
title = {Machine learning, neural and statistical classification},
year = {1994},
isbn = {0-13-106360-X},
publisher = {Ellis Horwood},
address = {Upper Saddle River, NJ, USA},
url = {http://www.amsta.leeds.ac.uk/~charles/statlog/whole.pdf},
}
}}}
!Identificação
''Disciplina:'' Complementos de Probabilidades e Estatística
''Licenciatura:'' Matemática Aplicada e Computação
''Ano lectivo:'' 2007/2008
''Semestre:'' Segundo
''Professor responsável:'' Paulo Soares
''Página web da disciplina:'' http://www.math.ist.utl.pt/~psoares/cpe/
!Caracterização dos alunos
|| Com inscrição em PE II| Sem inscrição em PE II| ''Total''|
|''Número de alunos''| 38| 17| 55|
|''Proporção de alunos''| 69,1%| 30,9%| 100%|
!Funcionamento da disciplina
A disciplina funcionou com duas aulas teóricas e uma aula de resolução de exercícios semanais. A componente teórica foi apresentada com base num conjunto de notas que resumem os resultados e exemplos mais importantes dos conteúdos programáticos. Essas notas, projectadas nas aulas e colocadas previamente à disposição dos alunos foram complementadas abundantemente por demonstrações e cálculos efectuados no quadro.
!Frequência das aulas
A frequência das aulas foi praticamente constante e rondou a metade dos alunos inscritos. Um número significativo de alunos não teve qualquer contacto com o professor responsável até a alguma das datas de exame final. As aulas de esclarecimento de dúvidas só foram procuradas por altura das provas de avaliação por um número muito reduzido de alunos.
!Resultados
| ''Inscritos'' | ''Avaliados'' | ''Aprovados'' |
| 55| 40 (72,7% dos inscritos)| 19 (34,5% dos inscritos e 47,5% dos avaliados)|
| ''Nota final'' | [0,7[ | [7,9.5[ | [9.5,14[ | [14,17[ | [17,18[ | [18,20] |
| ''Número de alunos'' | 14 (35%)| 7 (17,5%)| 16 (40%)| 2 (5%)| 1 (2,5%)| 0 (0%)|
!Comentários
Os resultados dos alunos representam uma agradável melhoria relativamente aos obtidos no ano lectivo anterior na disciplina de Probabilidades e Estatística II (PEII), que esta veio substituir. Ainda comparativamente, observou-se uma atitude mais empenhada por parte de um número significativo de alunos que estiveram inscritos em PEII. No que diz respeito aos //novos// alunos, foi estimulante constatar a existência maioritária de uma boa preparação e de uma atitude interessada e responsável perante esta disciplina. Evidência disto mesmo são as taxas de aprovação entre os inscritos: 28,9% entre os alunos que estiveram inscritos em PEII contra 41,2% nos restantes. Esta diferença pode ser talvez explicada pela permanência de um grupo de alunos que, por desmotivação ou outros factores, não revelam qualquer progressão. É também justo reconhecer que para a melhoria dos resultados possa ter contribuído a experiência por mim acumulada em PEII.
Tendo em vista uma melhoria de resultados futuros parece-me importante levar em conta o menor interesse manifestado pela maior parte dos alunos pelas matérias de Estatística relativamente às de Probabilidade. Isto parece-me ser devido à existência de ideias pré-concebidas relativamente à Estatística e também à dificuldade de se ensinar Estatística Clássica de uma forma bem estruturada e fundamentada que a possa tornar apelativa a alunos de Matemática.
IST, 6 de Outubro de 2008
Paulo José de Jesus Soares
!Introdução
O correio electrónico em massa não solicitado, vulgarmente conhecido por @@SPAM@@ é um problema que afecta seriamente a utilização desta forma de comunicação. Para o minorar têm sido implementadas diversas metodologias quer ao nível dos servidores quer dos clientes. De entre elas, o @@filtro bayesiano de SPAM@@ (FBS) tem tido um assinalável sucesso uma vez que se adapta ao perfil das mensagens recebidas, melhorando os seus resultados ao longo do tempo com uma intervenção mínima do utilizador.
O FBS é uma simples aplicação de um teorema elementar da Teoria da Probabilidade, o teorema de Bayes, em que se baseia toda uma corrente da Estatística, a Estatística Bayesiana, que nas últimas décadas conquistou uma grande notoriedade. Este filtro é uma das abordagens probabilísticas do problema matemático da @@Classificação@@ que têm inúmeras aplicações em praticamente todas as @@áreas do conhecimento@@.
!Tópicos de desenvolvimento
#SPAM -- Problema de motivação. Descrição do problema e referência de algumas das medidas utilizadas para o combater.
#FBS -- Descrição do algoritmo e apresentação dos seus fundamentos probabilísticos.
#Classificação -- Descrição formal do problema. Classificação supervisionada.
#Aplicação -- Apresentação de uma aplicação menos simples numa área à escolha.
''Nota:'' esta secção é meramente indicativa.
!Objectivos
Pesquisa autónoma sobre o tema proposto e elaboração de um trabalho escrito com 30 páginas, no máximo, sobre o mesmo.
!Avaliação
A avaliação do projecto terá três componentes:
#reuniões de trabalho quinzenais
#trabalho escrito
#apresentação oral (a confirmar)
!Bibliografia
!!!SPAM e FBS
<<<
''Graham'', P. (2002)
[[A Plan for Spam|http://www.paulgraham.com/spam.html]]
<<<
<<<
''Buescu'', J. (2007)
//O fim do Mundo está próximo?//
Gradiva
<<<
<<<
Outras referências online
<<<
!!!Probabilidade
<<<
''Casella'', G. and ''Berger'', R. L. (1990)
//Statistical Inference//
Duxbury Press, Belmont
<<<
<<<
''Murteira'', B. J. (1990)
//Probabilidades e Estatística//, vol. I e II (2ª edição revista)
~McGraw-Hill, Lisboa
<<<
<<<
''Pestana'', D. D. e ''Velosa'', S. F. (2002)
//Introdução à Probabilidade e à Estatística//
Fundação Calouste Gulbenkian, Lisboa
<<<
!!!Estatística bayesiana
<<<
''Paulino'', C. D., ''Amaral Turkman'', M. A. e ''Murteira'', B. (2003)
//Estatística Bayesiana//
Fundação Calouste Gulbenkian, Lisboa
<<<
<<<
''Lee'', P. M. (2004)
//Bayesian Statistics: an introduction// (3^^rd^^ edition)
Hodder & Stoughton Educational
<<<
!!!Classificação
<<<
''Marques'', J. S. (1999)
//Reconhecimento de padrões -- métodos estatísticos e neuronais//
IST Press
<<<
<<<
<<bibliography CE-bibliografia showAll>>
<<<
/***
|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;
}
});
//}}}
!Introdução
A ideia de que "quanto mais dados melhor" é um dos mais frequentes lugares-comuns da Estatística. De facto, parece natural aceitar-se ou até mesmo esperar que a precisão dos resultados estatísticos aumente com o tamanho do conjunto de dados em que se suportam. Infelizmente a prática contraria muita vezes essa convicção e coloca novos e inesperados desafios a algumas metodologias estatísticas existentes e de grande aplicação. Este é um problema de importância crescente pois, hoje em dia, são utilizados em muitas áreas procedimentos automatizados de recolha de dados que permitem obter, sem grande esforço, grandes volumes de dados.
A citometria de fluxo (<<wikipedia 'Flow cytometry'>>) é uma técnica laboratorial que produz contagens de partículas microscópicas num grande número de categorias e que é empregue em vários ramos da Biologia e da Medicina. Em muitas aplicações é, por vezes, necessário comparar essas distribuições de frequências que são frequentemente representadas na forma de histogramas. Os métodos estatísticos usados tradicionalmente nessa comparação -- os testes do qui-quadrado de Pearson e de ~Kolmogorov-Smirnov -- revelam-se insatisfatórios ao detectarem diferenças significativas quando, na prática, elas não existem.
!Tópicos de desenvolvimento
#Descrição do problema
#Estudo das condições de aplicação e das limitações dos procedimentos estatísticos mais usuais
#Revisão de novas metodologias propostas na literatura
#Comparação de procedimentos por simulação
##Teste de ~Kolmogorov-Smirnov usual
##Teste de ~Kolmogorov-Smirnov para populações discretas^^(1)^^
##Teste da razão de verosimilhanças^^(1)^^
##Distância de Aitchison^^(1)^^
^^(1)^^ recorrendo a um procedimento de reamostragem (//bootstrap//)
!Objectivo
Pesquisa autónoma sobre o tema proposto e elaboração de um trabalho escrito com 30 páginas, no máximo, sobre o mesmo.
!Avaliação
A avaliação do projecto terá três componentes:
#reuniões de trabalho
#trabalho escrito
#apresentação oral (a confirmar)
!Bibliografia
<<bibliography CDDGA-bibliografia showAll>>
!Correio electrónico
<<linkTo email ? paulo.soares at tecnico dot ulisboa.pt>>
!Contactos telefónicos
Telefone: +351 218417043 (extensão 1043, dentro do IST)/%Voip: <<linkTo phone? ist13185@ist.utl.pt>> (experimental)%/
Fax: +351 218417035
!Endereço postal
Departamento de Matemática
Instituto Superior Técnico
Av. Rovisco Pais, 1
1049-001 LISBOA
Portugal
*Advances and Challenges in Space-time Modelling: Bayesian modelling and inference with Gaussian Markov random fields and stochastic Partial Differential Equations (Finn Lindgren), Universidade de Lisboa, 17 e 18 de Junho de 2013
*Introduction to Bayesian Item Response Modeling (~Jean-Paul Fox ), Universidade de Lisboa, 6 e 7 de Junho de 2013
*Bayesian computing with INLA (Havard Rue), Universidade de Lisboa, 8 de Novembro de 2010
*Estatística Bayesiana ~Não-Paramétrica (Peter Mueller), Universidade de Lisboa, 11-15 Janeiro de 2010
*Bayesian Analysis with Applications in Quantitative Genetics, Universidade Técnica de Lisboa, 2-4 Fevereiro de 2004
*Longitudinal Data Analysis, Universidade de Santiago de Compostela, 22-23 Setembro de 2003
*Model Based Geostatistics, Universidade de Lisboa, 1-4 Julho de 2002
*Introduction to ~S-Plus and Statistical Modelling, Universidade Técnica de Lisboa, 21-25 Julho de 2000
*SAS Fundamentals: A Programming Approach Exploring Statistics Using the Analyst Application, Universidade Técnica de Lisboa, Janeiro de 2000
*Practical Bayesian Statistics Course, Universidade de Nottingham, 14-15 Julho de 1997
Introdução à Estatística Bayesiana via ~WinBUGS, Instituto de Saúde Pública da UP, 28 de Fevereiro a 11 de Março de 2011
Introdução à Estatística Bayesiana via ~WinBUGS, FCUL, 17 e 18 de Dezembro de 2009
''Uma introdução ao //slice sampling//'', FCUL, 19 de Março de 2010 <<slideShow tiddler:'Slice sampling' single theme:'PEStyleSheet' header:'' clock:0 clockFormat:'0hh:0mm'>> <<slideShow tiddler:'Slice sampling' single showAll theme:'PrintingTheme' header:'' label:'impressão' tooltip:'Versão para impressão'>>
!Licenciatura
*Bioestatística (no Instituto de Ciências Biomédicas Abel Salazar - Porto) [P]
*Análise Infinitésimal II (na secção de Álgebra e Análise do IST) [P]
* Probabilidades e Estatística [T+P]
* Estatística [T+P]
* Inferência Estatística [T+P]
* Séries Temporais [P]
* Inferência e Decisão I [T+P]
* Análise de Dados Categorizados [P]
* Probabilidades e Estatística II / Complementos de Probabilidades e Estatística [T+P]
!Mestrado
*Inferência Estatística (módulo de Inferência bayesiana)
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<div class='editor' macro='edit text'></div>
<!--}}}-->
* Doutoramento em Matemática pela Universidade Técnica de Lisboa em 2004.
* Mestrado em Matemática Aplicada e Computação pela Universidade Técnica de Lisboa em 1996.
* Licenciatura em Matemática, ramo de Matemática Aplicada pela Faculdade de Ciências da Universidade do Porto em 1989.
Dissertação: ''Mapeamento Bayesiano para Fenótipos Binários Complexos''
Autora: ''César Armindo Franco Correia''
Instituto Superior Técnico -- 12 de Novembro de 2009
Dissertação: ''Valor prognóstico da citometria de fluxo de ADN no carcinoma do colo do útero''
Autora: ''Ausenda Filipa Rosa Pires''
Instituto Superior Técnico -- 7 de Novembro de 2007/13 de Novembro de 2008
Dissertação: ''Uma Abordagem Bayesiana à Determinação de Modelos''
Autora: ''Júlia Maria Vitorino Teles''
Faculdade de Motricidade Humana - 6 de Dezembro de 2005
// //''Name:'' EmailLink
// //''Author:'' AlanHecht
// //''Type:'' [[Macro|Macros]]
// //''Description:'' email lets you list a "email" address without displaying it as readable text. This helps prevent your email address from being harvested by search engines and other web crawlers that read your page's contents. Using email, you type in the words "at" and "dot" instead of the punctuation symbols and add spaces inbetween words to disguise your address. However, email will display your email address in a web browser so that humans can read it. And email turns the address into a hyperlink that can be clicked to send you an instant email.
// //''Syntax:'' << {{{email yourname at yourdomain dot com "?optional parameters"}}} >>
// //Example 1: <<linkTo email ? sample at nowhere dot com>> (standard)
// //Example 2: <<linkTo email ? sample at nowhere dot com "?subject=Submission&body=Type your message here.">> (with optional parameters)
// //''Directions:'' <<tiddler MacroDirections>>
// //''Notes:'' You can use the optional email parameters to stipulate a subject or message body for the message. Most (not all) email clients will use this information to construct the email message.
// //''Related Links:'' none
// //''Revision History:''
// // v0.1.0 (20 July 2005): initial release
// // v0.1.1 (22 July 2005): renamed the macro from "mailto" to "email" to further thwart email harvesters.
// //''Code section:''
version.extensions.linkTo = {major: 0, minor: 1, revision: 1, date: new Date("Jul 22, 2005")};
config.macros.linkTo = {}
config.macros.linkTo.handler = function(place,macroName,params)
{
var temp = params.join(" ");
var data = temp.split("?");
var protocol = data[0].replace(/\s/g,"");
if(protocol=='email') protocol = "ma"+"il"+"to:";
else if(protocol=='phone') protocol = "s"+"ip:";
var recipient = data[1];
recipient = recipient.replace(" at ","@").replace(" dot ",".");
recipient = recipient.replace(/\s/g,"");
var optional = data[2] ? "?" + data[2] : "";
var theLink = createExternalLink(place,protocol+recipient+optional);
theLink.appendChild(document.createTextNode(recipient))
}
*Pessoal
**[[Uma breve apresentação]]
**[[Actividade profissional]]
**[[Contactos]]
*Ensino
**[[Neste semestre]]
**[[Orientação]]
**[[Arquivo]]
*Investigação
**[[Projectos]]
**[[Publicações]]
**[[Cursos/Seminários]]
<<accordion>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>
<link rel="icon" href="figuras/ist.ico" type="image/x-icon">
<!--[if IE]>
<html xmlns:m="http://www.w3.org/1998/Math/MathML">
<object id="mathplayer" classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987"></object>
<?import namespace="m" implementation="#mathplayer"?>
<![endif]-->
<!--}}}-->
/***
|''Name:''|MathJaxPlugin|
|''Description:''| Displays TeX math using MathJax|
|''Author:''|Paulo Soares|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Version:''|0.9.1|
|''Date:''|2011-09-15|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/ ]]|
|''~CoreVersion:''|2.6.4|
***/
//{{{
(function($) {
if(!version.extensions.MathJaxPlugin) {
version.extensions.MathJaxPlugin = {installed: true};
config.extensions.MathJaxPlugin = {
src: 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-AMS_HTML',
delay: 500,
config: 'skipStartupTypeset: true,'
+ 'messageStyle: "none",'
+ 'TeX: {extensions: ["autobold.js"]},'
+ 'tex2jax: {'
+ 'inlineMath: [ ["$","$"], ["\\\\(","\\\\\)"] ],'
+ 'displayMath: [ ["$$","$$"], ["\\\\[","\\\\]"] ],'
+ 'processEscapes: true}',
install: function() {
var mjconfig = 'MathJax.Hub.Config({' + this.config + '});MathJax.Hub.Startup.onload();';
$.getScript(this.src, function(){$.globalEval(mjconfig);});
config.formatterHelpers.mathFormatHelper = function(w) {
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
var math = $('<script>').attr(this.attribs).text(lookaheadMatch[1]).appendTo($(w.output))[0];
if(window.MathJax){
MathJax.Hub.Queue(["Process",MathJax.Hub,math]);
} else {
setTimeout(function(){MathJax.Hub.Queue(["Process",MathJax.Hub,math]);},config.extensions.MathJaxPlugin.delay);
}
w.nextMatch = this.lookaheadRegExp.lastIndex;
}
};
config.formatters.push({
name: "displayMath1",
match: "\\\\\\\[",
lookaheadRegExp: /\\\[([\s\S]+?)\\\]/mg,
attribs: {type: "math/tex; mode=display"},
handler: config.formatterHelpers.mathFormatHelper
});
config.formatters.push({
name: "displayMath2",
match: "\\\${2}",
lookaheadRegExp: /\${2}([\s\S]+?)\${2}/mg,
attribs: {type: "math/tex; mode=display"},
handler: config.formatterHelpers.mathFormatHelper
});
config.formatters.push({
name: "inlineMath1",
match: "\\\\\\\(",
lookaheadRegExp: /\\\(([\s\S]+?)\\\)/mg,
attribs: {type: "math/tex"},
handler: config.formatterHelpers.mathFormatHelper
});
config.formatters.push({
name: "inlineMath2",
match: "\\\$",
lookaheadRegExp: /\$([\s\S]+?)\$/mg,
attribs: {type: "math/tex"},
handler: config.formatterHelpers.mathFormatHelper
});
}
}
config.extensions.MathJaxPlugin.install();
}
})(jQuery);
//}}}
/***
|''Name:''|MathSVGPlugin|
|''Description:''|SVG graphics with dynamical features|
|''Version:''|1.5.1|
|''Date:''|2011-10-08|
|''Source:''|http://www.math.ist.utl.pt/~psoares/MathSVG.html|
|''Author:''|Paulo Soares|
|''License:''|[[GNU Lesser General Public License|http://www.gnu.org/licences/lgpl.html]]|
|''~CoreVersion:''|2.6.4|
!~MathSVG code (minified)
***/
//{{{
Math.sec=function(a){return 1/Math.cos(a)};Math.csc=function(a){return 1/Math.sin(a)};Math.cot=function(a){return 1/Math.tan(a)};Math.asec=function(a){return Math.acos(1/a)};Math.acsc=function(a){return Math.asin(1/a)};Math.acot=function(a){return Math.atan(1/a)};Math.sinh=function(a){return(Math.exp(a)-Math.exp(-a))/2};Math.cosh=function(a){return(Math.exp(a)+Math.exp(-a))/2};Math.tanh=function(a){return(Math.exp(a)-Math.exp(-a))/(Math.exp(a)+Math.exp(-a))};Math.sech=function(a){return 1/Math.cosh(a)};Math.csch=function(a){return 1/Math.sinh(a)};Math.coth=function(a){return 1/Math.tanh(a)};Math.asinh=function(a){return Math.log(a+Math.sqrt(a*a+1))};Math.acosh=function(a){return Math.log(a+Math.sqrt(a*a-1))};Math.atanh=function(a){return Math.log((1+a)/(1-a))/2};Math.sech=function(a){return 1/Math.cosh(a)};Math.csch=function(a){return 1/Math.sinh(a)};Math.coth=function(a){return 1/Math.tanh(a)};Math.asech=function(a){return Math.acosh(1/a)};Math.acsch=function(a){return Math.asinh(1/a)};Math.acoth=function(a){return Math.atanh(1/a)};Math.sign=function(a){return(a===0?0:(a<0?-1:1))};Math.step=function(a,c,b){return(a<0?(b?b:0):(c?c:1))};Math.root=function(a,b){return Math.pow(a,1/b)};Math.factorial=function(b){if(b===0){return 1}if(b<0){if((b%1)===0){return}if(b>-1){return Math.factorial(b+1)/(b+1)}return -Math.PI/(Math.factorial(-1-b)*Math.sin(Math.PI*b))}var a=b;if((b%1)===0){while(b>1){b=b-1;a=a*b}}else{a=Math.exp((b+0.5)*Math.log(b+1)-b-b*(0.1121105+b*0.08106103)/(1.452342+b*(2.410858+b)))}return a};Math.Gamma=function(a){return Math.factorial(a-1)};Math.Beta=function(a,b){return Math.Gamma(a)*Math.Gamma(b)/Math.Gamma(a+b)};Math.C=function(a,b){var c=1/((a+1)*Math.Beta(b+1,a-b+1));return c};Math.truncate=function(a,c){var b=c||0;return Math.floor(a*Math.pow(10,b))/Math.pow(10,b)};Math.randomString=function(a,f){var b,e=(f||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz").split("");var d=[];var c=e.length;for(b=0;b<a;b+=1){d[b]=e[0|Math.random()*c]}return d.join("")};Math.runif=function(d,c,f){var e=f||0;return Math.truncate((c+Math.pow(10,-e)-d)*Math.random()+d,e)};Math.rnormal=function(a,b){a=a||0;b=b||1;var d=0,c=0;while(d*c===0){d=Math.random();c=Math.random()}return b*(Math.sqrt(-2*Math.log(d))*Math.cos(2*Math.PI*c))+a};Math.lagrangePolynomial=function(c){var a=[],b=function(e){var l,h,d,g,m,j=0,f=0;d=c.length;for(l=0;l<d;l+=1){a[l]=1;g=c[l][0];for(h=0;h<d;h+=1){if(h!==l){a[l]*=(g-c[h][0])}}a[l]=1/a[l]}for(l=0;l<d;l+=1){g=c[l][0];if(e===g){return c[l][1]}else{m=a[l]/(e-g);f+=m;j+=m*c[l][1]}}return j/f};return b};Math.derivative=function(d,a){var c=0.00001,b=1/(c*2);return((d(a+c)-d(a-c))*b)};Math.D=function(a){return function(b){return Math.derivative(a,b)}};Math.tangentLine=function(b,c){var a=Math.derivative(b,c);return function(d){return(a*(d-c)+b(c))}};Math.integral=function(e,c,h){var a,d=10000;var b=(h-c)/d;var g=0;for(a=c;a<h;a+=b){g+=e(a)}g*=b;return g};var MSVG=function($){var SVG,canvas;var collection={};if(!document.createElementNS){document.createElementNS=function(link,type){return this.createElement(type)}}function createSVGElement(elType){return document.createElementNS("http://www.w3.org/2000/svg",elType)}function getSVGElement(id,el){var res={node:null,newEl:false};if(id){id=SVG.id+"_"+id;res.node=$("#"+id)[0]}if(!res.node){res.node=createSVGElement(el);if(id){res.node.id=id}res.newEl=true}return res}function appendSVG(elmt){if(elmt.newEl){canvas.append(elmt.node)}}function openGroup(id,clear){var newEl=getSVGElement(id,"g");appendSVG(newEl);canvas=$("#"+SVG.id+"_"+id);if(clear){canvas.empty()}}function closeGroup(){canvas=$("#"+SVG.id+"_Canvas")}function addButton(parent,text,title,func,id){var node=$("<span />").attr("title",title).addClass("svgButton").click(func);if(id){node.attr("id",id)}node.append(text);node.css({paddingRight:"0.5em",paddingLeft:"0.5em",fontSize:"1.5em",fontFamily:"monospace",background:"blue",color:"yellow",cursor:"pointer"});node.mouseover(function(){$(this).css({background:"yellow",color:"blue"})});node.mouseout(function(){$(this).css({background:"blue",color:"yellow"})});parent.append(node);return parent}function PictureAttributes(){this.stroke="blue";this.strokewidth=1;this.strokeopacity=1;this.strokedasharray="none";this.fill="none";this.fillopacity=1;this.fixed=false;this.fontstyle="normal";this.fontfamily="serif";this.fontweight="normal";this.fontsize=12;this.fontstroke="none";this.fontstrokewidth=1;this.fontstrokeopacity=1;this.fontstrokedasharray="none";this.fontfill="black";this.fontfillopacity=1;this.sector=false;this.largearc=0;this.marker="o";this.orient="auto";this.size=8;this.units="userSpaceOnUse";this.markerstroke="blue";this.markerstrokewidth=1;this.markerstrokeopacity=1;this.markerstrokedasharray="none";this.markerfill="none";this.markerfillopacity=1;this.sweep=0;this.rx=0;this.ry=0;this.closed=false;this.curve="";this.direction=[1,0];this.ticklabels="";this.pos="";this.points=200;this.backgroundcolor="none";this.backgroundopacity=1;this.which=[true,true]}function PictureObject(){this.init=false;this.id=null;this.src="";this.width=320;this.height=null;this.factor=1;this.xmin=-5;this.xmax=5;this.ymin=null;this.ymax=null;this.xunitlength=null;this.yunitlength=null;this.origin=[0,0];this.x=null;this.y=null;this.coords="cartesian";this.drag=null;this.pan=true;this.zoom=true;this.locked=false;this.attr=new PictureAttributes()}function drawPicture(){canvas.empty();$("#"+SVG.id+" .svgMarker").remove();var context=$("#"+SVG.id).parent();$(".SVGLaTeX",context).remove();SVG.attr=new PictureAttributes();try{var code=function(){with(Math){eval(SVG.src)}}();collection[SVG.id]=SVG}catch(err){var errstr;if(typeof err=="object"){errstr=err.name+" "+err.message+" "+err.number+" "+err.description}else{errstr=err}alert(errstr+"\n"+SVG.src)}}function sanitize(){$.each(collection,function(key,value){if($("#"+key).length==0){delete collection[key]}})}function setOptions(atr){for(var i in atr){SVG.attr[i]=atr[i]}}function getOptions(attr,options,prefix){var pref=prefix||"";if(typeof attr=="string"){return(options[pref+attr]==undefined?SVG.attr[pref+attr]:options[pref+attr])}else{var i,newAttr={},len=attr.length,item;for(i=0;i<len;i++){item=attr[i];newAttr[item]=options[pref+item]==undefined?SVG.attr[pref+item]:options[pref+item]}return newAttr}}function setAction(evt,fn,id){if(!$.isFunction(fn)){return}var node=id?$("#"+SVG.id+"_"+id):$("#"+SVG.id);node.bind(evt,fn)}function getAngle(p){p=p||[0,0];var res=Math.atan2(SVG.y-p[1],SVG.x-p[0]);res=(res<0)?res+2*Math.PI:res;return res}function getDistance(p){p=p||[0,0];return Math.sqrt(Math.pow(SVG.x-p[0],2)+Math.pow(SVG.y-p[1],2))}function updateButton(){var obj=$("#SVGtoolbar #SVGupdateButton");if(obj.text()=="Edit"){obj.text("Update");obj.attr("title","Update picture");$("#SVGsrc").val(SVG.src).css("display","block")}else{SVG.src=$("#SVGsrc").val();SVG.init=false;SVG.factor=1;drawPicture()}}function closeEditor(){$("#SVGtoolbar").slideUp();$("#SVGsrc").val("");SVG.locked=false}function switchTo(evt){var name=evt.currentTarget.id;if(SVG.id==name||SVG.locked){return false}SVG=collection[name];canvas=$("#"+SVG.id+"_Canvas");return false}function onWheel(evt){if(SVG.locked||!SVG.zoom){return false}evt=evt||window.event;var factor=1;evt.preventDefault();evt.stopPropagation();if(evt.wheelDelta){factor=(evt.wheelDelta>0)?0.8:1.25}else{if(evt.detail){factor=(evt.detail<0)?0.8:1.25}}if(evt.altKey){resize(factor)}else{zoom(factor)}return false}function onClick(evt){if(SVG.locked){return false}if(evt.button===0){if(evt.shiftKey){$("#SVGtoolbar #SVGupdateButton").text("Update");$("#SVGsrc").val(SVG.src);$("#SVGtoolbar").css({top:evt.pageY,left:evt.pageX}).slideDown();SVG.locked=true;evt.stopImmediatePropagation()}else{if(SVG.pan){SVG.drag=[evt.clientX,evt.clientY];document.body.style.cursor="move"}}}return false}function onDrop(evt){if(SVG.drag==null){return false}document.body.style.cursor="default";var xlen=(SVG.drag[0]-evt.clientX)/SVG.xunitlength;var ylen=(-SVG.drag[1]+evt.clientY)/SVG.yunitlength;SVG.drag=null;if(xlen!=0||ylen!=0){setScales([SVG.xmin+xlen,SVG.xmax+xlen,SVG.ymin+ylen,SVG.ymax+ylen])}return false}function setScales(scales){if(scales){SVG.xmin=scales[0];SVG.xmax=scales[1];SVG.ymin=scales[2];SVG.ymax=scales[3]}SVG.xunitlength=SVG.width/(SVG.xmax-SVG.xmin);SVG.yunitlength=SVG.height/(SVG.ymax-SVG.ymin);SVG.origin=[-SVG.xmin*SVG.xunitlength,-SVG.ymin*SVG.yunitlength];drawPicture()}function getScales(scales){scales=scales||[];var res=[null,null,null,null,0];if(scales.length==0){res[0]=SVG.xmin;res[1]=SVG.xmax}if(scales.length>1){if(typeof scales[0]=="number"&&typeof scales[1]=="number"&&scales[1]>scales[0]){res[0]=scales[0];res[1]=scales[1];res[4]=4}else{res[0]=SVG.xmin;res[1]=SVG.xmax}}if(scales.length==4){if(typeof scales[2]=="number"&&typeof scales[3]=="number"&&scales[3]>scales[2]){res[2]=scales[2];res[3]=scales[3];res[4]+=8}}return res}function initGraph(options){if(SVG.init){return false}options=options||{};if(options.pan==false){SVG.pan=false}if(options.zoom==false){SVG.zoom=false}SVG.coords=options.coords||SVG.coords;var status=0,picture=$("#"+SVG.id).parent()[0];var width=parseFloat(picture.style.width);var height=parseFloat(picture.style.height);if(!isNaN(width)){options.width=width}if(!isNaN(height)){options.height=height}if(typeof options.width=="number"&&options.width>0){SVG.width=options.width;status+=1}if(typeof options.height=="number"&&options.height>0){SVG.height=options.height;status+=2}var scales=getScales(options.scales);SVG.xmin=scales[0];SVG.xmax=scales[1];SVG.ymin=scales[2];SVG.ymax=scales[3];status+=scales[4];SVG.height=options.height;if(status%4!=0){SVG.width=options.width}if(!SVG.width){SVG.width=1.6*SVG.height}else{if(!SVG.height){SVG.height=0.625*SVG.width}}if(status<8){SVG.ymax=0.5*SVG.height*(SVG.xmax-SVG.xmin)/SVG.width;SVG.ymin=-SVG.ymax}else{if(status<12){SVG.xmax=0.5*SVG.width*(SVG.ymax-SVG.ymin)/SVG.height;SVG.xmin=-SVG.xmax}}if(status==12||status==13){SVG.height=SVG.width*(SVG.ymax-SVG.ymin)/(SVG.xmax-SVG.xmin)}else{if(status==14){SVG.width=SVG.height*(SVG.xmax-SVG.xmin)/(SVG.ymax-SVG.ymin)}}var picture=$("#"+SVG.id);picture.attr({width:SVG.width,height:SVG.height});picture.parent().css({width:SVG.width,height:SVG.height});SVG.xunitlength=SVG.width/(SVG.xmax-SVG.xmin);SVG.yunitlength=SVG.height/(SVG.ymax-SVG.ymin);SVG.origin=[-SVG.xmin*SVG.xunitlength,-SVG.ymin*SVG.yunitlength];SVG.init=true}function resize(factor){SVG.factor=(SVG.factor*factor).toFixed(3);SVG.width/=factor;SVG.height/=factor;var picture=$("#"+SVG.id);picture.attr({width:SVG.width,height:SVG.height});picture.parent().css({width:SVG.width,height:SVG.height});setScales()}function zoom(factor,center){var px,py;if(center){px=(SVG.xmax+SVG.xmin)*0.5;py=(SVG.ymax+SVG.ymin)*0.5}else{px=SVG.x;py=SVG.y}SVG.factor=(SVG.factor*factor).toFixed(3);var dx=(SVG.xmax-SVG.xmin)*factor;var dy=(SVG.ymax-SVG.ymin)*factor;var xmin=(1-factor)*px+factor*SVG.xmin;var ymin=(1-factor)*py+factor*SVG.ymin;setScales([xmin,xmin+dx,ymin,ymin+dy])}function updateCartesianCoord(){if(!SVG.locked){$("#"+SVG.id+"_Coords").text("("+SVG.x.toFixed(2)+", "+SVG.y.toFixed(2)+")")}return false}function updatePolarCoord(){if(!SVG.locked){$("#"+SVG.id+"_Coords").text("("+getDistance().toFixed(2)+", "+getAngle().toFixed(2)+")")}return false}function getPosition(evt){var a=[null,null];var off=$(evt.currentTarget.parentNode).offset();a[0]=(evt.pageX-off.left-SVG.origin[0])/SVG.xunitlength;a[1]=(SVG.height-SVG.origin[1]-evt.pageY+off.top)/SVG.yunitlength;return a}function updatePosition(evt){var pos=getPosition(evt);SVG.x=pos[0];SVG.y=pos[1];return false}function removeCoord(){$("#"+SVG.id+"_Coords").text("");return false}function tracker(pos,options){options=options||{};var coords=options.coords||SVG.coords;var func=(coords=="polar")?updatePolarCoord:updateCartesianCoord;options.id="Coords";options.fixed=true;text(pos,"",options);setAction("mousemove",func);setAction("mouseout",removeCoord)}function exportSVG(){var svg="<?xml version='1.0' encoding='UTF-8' standalone='no'?>\n";svg+=$("#"+SVG.id).parent().html();svg=svg.substring(0,svg.indexOf("</svg>")+6);svg=svg.replace(/ /g,"");svg=svg.replace(/><(?!\/)/g,">\n<");$("#SVGtoolbar #SVGupdateButton").text("Edit").attr("title","Edit script");$("#SVGsrc").val(svg).css("display","block")}function toSVG(p){var x=p[0]*SVG.xunitlength+SVG.origin[0];var y=SVG.height-p[1]*SVG.yunitlength-SVG.origin[1];return[x.toFixed(3),y.toFixed(3)]}function toSVGPair(p){var q=toSVG(p);return q[0]+" "+q[1]}function setStrokeAndFill(node,options,prefix){var attributes=["stroke","strokewidth","strokedasharray","strokeopacity","fill","fillopacity"];var attr=getOptions(attributes,options,prefix);var elem=$(node);elem.attr("stroke",attr.stroke);elem.attr("stroke-width",attr.strokewidth/SVG.factor);elem.attr("stroke-dasharray",attr.strokedasharray);elem.attr("stroke-opacity",attr.strokeopacity);elem.attr("fill",attr.fill);elem.attr("fill-opacity",attr.fillopacity)}function button(p,q,txt,action,options){options=options||{};options.id=(options.id||Math.randomString(8));rect(p,q,options);setAction("click",action,options.id);options.fill=null;options.fillopacity=1;options.id+="_t";text([(p[0]+q[0])*0.5,(p[1]+q[1])*0.5],txt,options);setAction("click",action,options.id)}function setMarkers(obj,options){var markerChars="o*sSx+<>|";var attributes=["marker","size","units","orient","markerstroke","markerstrokewidth","markerstrokeopacity"];var attr=getOptions(attributes,options);var node,node2,i,id,pos=["marker-start","marker-mid","marker-end"];var lim=attr.marker.length;for(i=0;i<lim;i++){var type=attr.marker.charAt(i);if(type=="-"||markerChars.indexOf(type)<0){continue}id=(options.id||Math.randomString(8))+"Marker_"+markerChars.indexOf(type);node=$("#"+SVG.id+"_"+id);if(node.length===0){node=$(getSVGElement(id,"marker").node);node.attr("class","svgMarker");node.attr("viewBox","0 0 10 10");node.attr("refX",5);node.attr("refY",5);node.attr("orient",attr.orient);node.attr("markerUnits",attr.units);switch(type){case"*":case"o":node2=$(createSVGElement("circle"));node2.attr("cx",5);node2.attr("cy",5);node2.attr("r",4);break;case">":node2=$(createSVGElement("path"));node2.attr("d","M0 0 L10 5 L0 10 z");node.attr("refX",10);break;case"<":node2=$(createSVGElement("path"));node2.attr("d","M10 0 L10 10 L0 5 z");node.attr("refX",0);break;case"x":node2=$(createSVGElement("path"));node2.attr("d","M0 0 L10 10 M0 10 L10 0");break;case"+":node2=$(createSVGElement("path"));node2.attr("d","M5 0 L5 10 M0 5 L10 5");break;case"|":node2=$(createSVGElement("path"));node2.attr("d","M5 0 L5 10");break;case"S":case"s":node2=$(createSVGElement("rect"));node2.attr("x",0);node2.attr("y",0);node2.attr("width",10);node2.attr("height",10)}setStrokeAndFill(node2,options,"marker");node2.attr("stroke-width",attr.markerstrokewidth);if("*<>S".indexOf(type)>-1){node2.attr("fill",attr.markerstroke);node2.attr("fill-opacity",attr.markerstrokeopacity)}node.append(node2);$("#"+SVG.id+"_Defs").append(node)}node.attr("markerWidth",attr.size/SVG.factor);node.attr("markerHeight",attr.size/SVG.factor);$(obj).attr(pos[i],"url(#"+SVG.id+"_"+id+")")}}function setLabels(p,options){var i,point=[0,0],pos;var label=(typeof options.label=="string")?[options.label]:options.label;var labelpos=getOptions("pos",options);labelpos=(typeof labelpos=="string")?[labelpos]:labelpos;var poslen=labelpos.length;var size=options.size||SVG.attr.size;var dx=(0.5*size/SVG.xunitlength)/SVG.factor;var dy=(0.5*size/SVG.yunitlength)/SVG.factor;for(i=0;i<label.length;i++){options.isLabel="_label"+i;point[0]=p[i][0];point[1]=p[i][1];pos=(poslen>i)?labelpos[i].toUpperCase():pos;if(/E/.test(pos)){point[0]+=dx}if(/W/.test(pos)){point[0]-=dx}if(/N/.test(pos)){point[1]+=dy}if(/S/.test(pos)){point[1]-=dy}options.pos=pos;text(point,label[i],options)}}function line(p,q,options){options=options||{};options.closed=false;options.curve="";path([p,q],options)}function dot(p,options){options=options||{};var direction=getOptions("direction",options);var q=[p[0]+direction[0]/SVG.xunitlength,p[1]+direction[1]/SVG.yunitlength];var st="M"+toSVGPair(p)+" "+toSVGPair(q);var elmt=getSVGElement(options.id,"path");var elem=$(elmt.node);elem.attr("d",st);elem.attr("stroke","none");setMarkers(elem,options);appendSVG(elmt);if(options.label){setLabels([p],options)}}function path(list,options,append){options=options||{};var i,elmt=getSVGElement(options.id,"path");var attr=getOptions(["curve","closed"],options);var len=list.length;if(len>0){var node=$(elmt.node);var st=(append&&!elmt.newEl)?elmt.node.getAttribute("d"):"";st+="M"+toSVGPair(list[0])+" "+attr.curve;for(i=1;i<len;i++){st+=toSVGPair(list[i])+" "}if(attr.closed){st+="Z"}node.attr("d",st);setStrokeAndFill(node,options);if(options.marker){setMarkers(node,options)}appendSVG(elmt);if(options.label){setLabels(list,options)}}}function rotate(id,angle,options){if(!id||!angle){return}var node=$("#"+SVG.id+"_"+id)[0];if(node){options=options||{};var center=options.center?toSVG(options.center):SVG.origin;angle=-angle*180/Math.PI;var transform=node.getAttribute("transform")||"";transform="rotate("+angle+" "+center+") "+(options.replace?"":transform);$(node).attr("transform",transform)}}function translate(id,delta,options){if(!id||!delta){return}var node=$("#"+SVG.id+"_"+id)[0];if(node){options=options||{};delta=toSVG(delta);var transform=node.getAttribute("transform")||"";transform="translate("+(delta[0]-SVG.origin[0])+" "+(SVG.origin[1]+delta[1]-SVG.height)+") "+(options.replace?"":transform);$(node).attr("transform",transform)}}function curve(list,options){options=options||{};options.curve=options.curve||"T";path(list,options)}function circle(center,radius,options){ellipse(center,radius,radius,options)}function loop(p,options){options=options||{};var d=options.direction||[1,0];options.curve="C";options.closed=false;path([p,[p[0]+d[0],p[1]+d[1]],[p[0]-d[1],p[1]+d[0]],p],options)}function arc(options){options=options||{};var start=options.start;var end=options.end;var center=options.center;var startangle=options.startangle;var endangle=options.endangle;var st="M",elmt=getSVGElement(options.id,"path");var attr=getOptions(["largearc","sweep","closed","sector"],options);var radius=options.radius;if(center!=null&&startangle!=null&&endangle!=null&&radius!=null){start=[radius*Math.cos(startangle)+center[0],radius*Math.sin(startangle)+center[1]];end=[radius*Math.cos(endangle)+center[0],radius*Math.sin(endangle)+center[1]]}if(start==null||end==null){return}if(!radius){var v=[end[0]-start[0],end[1]-start[1]];radius=Math.sqrt(v[0]*v[0]+v[1]*v[1])}if(attr.sector){st+=toSVGPair(center)+" "}st+=toSVGPair(start)+" A"+radius*SVG.xunitlength+","+radius*SVG.yunitlength+" 0 "+attr.largearc+","+attr.sweep+" "+toSVGPair(end);if(attr.sector||attr.closed){st+=" z"}var node=$(elmt.node);node.attr("d",st);setStrokeAndFill(node,options);if(options.marker){setMarkers(node,options)}appendSVG(elmt);if(options.label){setLabels([start,end],options)}}function sector(options){if(!options.center||!options.startangle||!options.endangle||!options.radius){return}options.sector=true;arc(options)}function ellipse(center,rx,ry,options){options=options||{};var elmt=getSVGElement(options.id,"ellipse");center=toSVG(center);var node=$(elmt.node);node.attr("cx",center[0]);node.attr("cy",center[1]);node.attr("rx",rx*SVG.xunitlength);node.attr("ry",ry*SVG.yunitlength);setStrokeAndFill(node,options);appendSVG(elmt)}function polygon(list,options){options=options||{};options.closed=true;path(list,options)}function rect(p,q,options){options=options||{};var elmt=getSVGElement(options.id,"rect");var attr=getOptions(["rx","ry"],options);var node=$(elmt.node);node.attr("x",toSVG(p)[0]);node.attr("y",toSVG(q)[1]);node.attr("width",(q[0]-p[0])*SVG.xunitlength);node.attr("height",(q[1]-p[1])*SVG.yunitlength);node.attr("rx",attr.rx*SVG.xunitlength);node.attr("ry",attr.ry*SVG.yunitlength);setStrokeAndFill(node,options);appendSVG(elmt)}function text(p,st,options){var str=$.trim(st.toString());if(str.match(/\$.+\$/g)){latex(p,str,options);return}options=options||{};var id=options.id,q=toSVG(p);if(id&&options.isLabel){id+=options.isLabel}var attr=getOptions(["fontstyle","fontfamily","fontweight","fontfill","fontsize","fixed","pos"],options);if(!attr.fixed){attr.fontsize/=SVG.factor}var pos=attr.pos.toUpperCase();var baseline="middle",textanchor="middle";if(/E/.test(pos)){textanchor="start"}if(/W/.test(pos)){textanchor="end"}if(/N/.test(pos)){baseline="text-after-edge"}if(/S/.test(pos)){baseline="text-before-edge"}var elmt=getSVGElement(id,"text");var elem=$(elmt.node);elem.empty().text(str);elem.attr("font-style",attr.fontstyle);elem.attr("font-family",attr.fontfamily);elem.attr("font-weight",attr.fontweight);elem.attr("font-size",attr.fontsize);elem.attr("text-anchor",textanchor);elem.attr("dominant-baseline",baseline);setStrokeAndFill(elem,options,"font");elem.attr("x",q[0]);elem.attr("y",q[1]);appendSVG(elmt)}function latex(p,str,options){if(p[0]<SVG.xmin||p[0]>SVG.xmax||p[1]<SVG.ymin||p[1]>SVG.ymax){return}options=options||{};var frag,id=options.id;var context=$("#"+SVG.id).parent();var attr=getOptions(["fontstyle","fontfamily","fontweight","fontfill","fontsize","fixed","pos"],options);if(!attr.fixed){attr.fontsize/=SVG.factor}var pos=attr.pos.toUpperCase(),q=toSVG(p);if(id){if(options.isLabel){id+=options.isLabel}id=SVG.id+"_"+id;frag=$("#"+id,context);if(frag.length==0){frag=$('<div class="SVGLaTeX"/>').attr("id",id)}}else{frag=$('<div class="SVGLaTeX"/>')}frag.text(str);frag.css({position:"absolute","z-index":10,left:q[0]+"px",top:q[1]+"px","font-size":attr.fontsize,background:"none",color:attr.fontfill,"font-weight":attr.fontweight,"font-style":attr.fontstyle,"font-family":attr.fontfamily,"pointer-events":"none"});context.append(frag);if(window.MathJax){MathJax.Hub.Queue(["Typeset",MathJax.Hub,frag[0]]);MathJax.Hub.Queue([fixPosition,frag,pos])}}function fixPosition(x,pos){var d=[0.5,0.5];if(/W/.test(pos)){d[0]=1}if(/E/.test(pos)){d[0]=0}if(/S/.test(pos)){d[1]=0}if(/N/.test(pos)){d[1]=1}var obj=$(".math",x);var w=obj.innerWidth();var l=parseInt(x.css("left"));var h=obj.innerHeight();var t=parseInt(x.css("top"));x.css({left:l-w*d[0],top:t-h*d[1]})}function image(url,options){options=options||{};var elmt=getSVGElement(options.id,"image");var elem=$(elmt.node);var height=options.height?options.height/SVG.factor:SVG.height;var width=options.width?options.width/SVG.factor:SVG.width;var origin=toSVG(options.origin||[SVG.xmin,SVG.ymin]);var pos=(options.pos||"").toUpperCase();var x=origin[0]-width*0.5;var y=origin[1]-height*0.5;if(/N/.test(pos)){y-=height*0.5}if(/S/.test(pos)){y+=height*0.5}if(/E/.test(pos)){x+=width*0.5}if(/W/.test(pos)){x-=width*0.5}elem.attr("x",x);elem.attr("y",y);elem.attr("width",width);elem.attr("height",height);elem.attr("preserveAspectRatio","none");elmt.node.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",url);appendSVG(elmt)}function grid(options){options=options||{};var dx,dy,x,y,k;var orig=options.origin||[0,0];var id=options.id||"Grid";options.stroke=options.stroke||"grey";options.strokewidth=(options.strokewidth||SVG.attr.strokewidth*0.5);var coords=options.coords||SVG.coords;var lim=getScales(options.scales);openGroup(id,true);lim[2]=(typeof lim[2]=="number")?lim[2]:SVG.ymin;lim[3]=(typeof lim[3]=="number")?lim[3]:SVG.ymax;if(coords=="polar"){dx=options.dx||1;dy=options.dy||3;var limit=Math.max(Math.abs(lim[0]),Math.abs(lim[1]),Math.abs(lim[2]),Math.abs(lim[3]));for(x=dx;x<limit;x+=dx){circle(orig,x,options)}if(dy>1){for(y=1;y<dy;y++){k=Math.tan(y*Math.PI/(2*dy));line([lim[0],(lim[0]-orig[0])*k+orig[1]],[SVG.xmax,(lim[1]-orig[0])*k+orig[1]],options);line([lim[0],-(lim[0]-orig[0])*k+orig[1]],[SVG.xmax,-(lim[1]-orig[0])*k+orig[1]],options)}}}else{dx=options.dx||1;dy=options.dy||dx;for(x=orig[0];x<SVG.xmax;x+=dx){if(x>lim[0]&&x<lim[1]){line([x,lim[2]],[x,lim[3]],options)}}for(x=orig[0]-dx;x>SVG.xmin;x-=dx){if(x>lim[0]&&x<lim[1]){line([x,lim[2]],[x,lim[3]],options)}}for(y=orig[1];y<SVG.ymax;y+=dy){if(y>lim[2]&&y<lim[3]){line([lim[0],y],[lim[1],y],options)}}for(y=orig[1]-dy;y>SVG.ymin;y-=dy){if(y>lim[2]&&y<lim[3]){line([lim[0],y],[lim[1],y],options)}}}closeGroup()}function axes(options){options=options||{};options.marker=options.marker||"-|>";var i,x,y,start,stop,label,pos,liminf,inf,limsup,sup;var dx=options.dx||1;var dy=options.dy||dx;var id=options.id||"Axes";var whichAxes=getOptions("which",options);var coords=options.coords||SVG.coords;var orig=(coords=="polar")?[0,0]:(options.origin||[0,0]);var ddx=options.decx||Math.max(0,-Math.floor(Math.log(dx)/Math.log(10)));var ddy=options.decy||Math.max(0,-Math.floor(Math.log(dy)/Math.log(10)));options.stroke=options.stroke||"black";options.strokewidth=(options.strokewidth||SVG.attr.strokewidth*0.5);options.markerstroke=options.stroke;options.markerstrokewidth=options.strokewidth;openGroup(id,true);var lim=getScales(options.scales);if(lim[4]<8){lim[2]=SVG.ymin;lim[3]=SVG.ymax}var cx,list=[],labels=[];if(whichAxes[0]){list.push([lim[0],orig[1]]);labels.push("");if($.isArray(options.xticks)){var xticks=options.xticks.sort();for(i=0;i<xticks.length;i++){list.push([xticks[i],orig[1]]);labels.push(String(xticks[i].toFixed(ddx)))}}else{inf=(lim[0]-orig[0])/dx;liminf=Math.ceil(inf);if(liminf==inf){liminf+=1}sup=(lim[1]-orig[0])/dx;limsup=Math.floor(sup);if(limsup==sup){limsup-=1}for(i=liminf;i<=limsup;i++){if(i==0){continue}cx=orig[0]+i*dx;if(cx>lim[0]+0.25*dx&&cx<lim[1]-0.25*dx){list.push([cx,orig[1]]);label=(coords=="polar")?"":cx.toFixed(ddx);labels.push(label)}}}list.push([lim[1],orig[1]]);labels.push("");if(options.ticklabels!=false){options.label=labels;options.pos="S"}path(list,options);list=[],labels=[]}if(whichAxes[1]){list.push([orig[0],lim[2]]);labels.push("");if($.isArray(options.yticks)){var yticks=options.yticks.sort();for(i=0;i<yticks.length;i++){list.push([orig[0],yticks[i]]);labels.push(String(yticks[i].toFixed(ddy)))}}else{inf=(lim[2]-orig[1])/dy;liminf=Math.ceil(inf);if(liminf==inf){liminf+=1}sup=(lim[3]-orig[1])/dy;limsup=Math.floor(sup);if(limsup==sup){limsup-=1}for(i=liminf;i<=limsup;i++){if(i==0){continue}cx=orig[1]+i*dy;if(cx>lim[2]+0.25*dy&&cx<lim[3]-0.25*dy){list.push([orig[0],cx]);label=(coords=="polar")?"":cx.toFixed(ddy);labels.push(label)}}}list.push([orig[0],lim[3]]);labels.push("");if(options.ticklabels!=false){options.label=labels;options.pos="W"}path(list,options)}closeGroup()}function list(fun,tmin,tmax,options){var inc=(tmax-tmin)/getOptions("points",options);if(inc<=0||fun.length==0){return}var t,pth,g=[],xt,yt;for(t=1;t>=0;t--){if($.isFunction(fun[t])){g[t]=fun[t]}else{if(typeof fun[t]=="string"){with(Math){eval("g["+t+"] = function(x){return "+fun[t]+"}")}}else{return}}}if(g.length<2){return}pth=[];for(t=tmin;t<=tmax;t+=inc){xt=g[0](t);yt=g[1](t);if(isFinite(xt)&&isFinite(yt)){pth[pth.length]=[xt,yt]}}return pth}function plot(fun,options){options=options||{};var append,pth,steps=options.steps||[];var n_steps=steps.length;options.closed=false;options.curve="";var xmin=(options.min==null)?SVG.xmin:Math.max(SVG.xmin,options.min);var xmax=(options.max==null)?SVG.xmax:Math.min(SVG.xmax,options.max);if(n_steps===0){pth=list(["x",fun],xmin,xmax,options);if(pth){path(pth,options)}}else{options.id=options.id||Math.randomString(6);steps.sort();var steps_a=[];steps_a.push(xmin);for(i=0;i<n_steps;i++){if(steps[i]>xmin&&steps[i]<xmax){steps_a.push(steps[i])}}steps_a.push(xmax);n_steps=steps_a.length-1;for(i=0;i<n_steps;i++){xmax=steps_a[i+1];xmin=steps_a[i];pth=list(["x",fun],xmin,xmax,options);append=(i>0);if(pth){path(pth,options,append)}}}}function area(fun1,fun2,options){options=options||{};options.curve="";options.closed=true;var xmin=(options.min==null)?SVG.xmin:options.min;var xmax=(options.max==null)?SVG.xmax:options.max;var pth1=list(["x",fun1],xmin,xmax,options);var pth2=list(["x",fun2],xmin,xmax,options);if(pth1&&pth2){pth1=pth1.concat(pth2.reverse());path(pth1,options)}}function polarPlot(fun,options){var g1,g2;if(typeof fun=="string"){with(Math){eval("g1 = function(x){return ("+fun+")*cos(x)}");eval("g2 = function(x){return ("+fun+")*sin(x)}")}}else{if($.isFunction(fun)){with(Math){eval("g1 = function(x){return fun(x)*cos(x)}");eval("g2 = function(x){return fun(x)*sin(x)}")}}}parametricPlot(g1,g2,options)}function parametricPlot(fun1,fun2,options){options=options||{};options.closed=false;options.curve="";var xmin=(options.min==null)?0:options.min;var xmax=(options.max==null)?2*Math.PI:options.max;var pth=list([fun1,fun2],xmin,xmax,options);if(pth){path(pth,options)}}function slopeField(fun,options){options=options||{};var g=fun;if(typeof fun=="string"){with(Math){eval("g = function(x,y){return "+fun+"}")}}var gxy,x,y,u,v,dz;var dx=(options.dx==null)?1:options.dx;var dy=(options.dy==null)?1:options.dy;dz=Math.sqrt(dx*dx+dy*dy)/6;var xmin=Math.ceil(SVG.xmin/dx);var ymin=Math.ceil(SVG.ymin/dy);for(x=xmin;x<=SVG.xmax;x+=dx){for(y=ymin;y<=SVG.ymax;y+=dy){gxy=g(x,y);if(!isNaN(gxy)){if(Math.abs(gxy)=="Infinity"){u=0;v=dz}else{u=dz/Math.sqrt(1+gxy*gxy);v=gxy*u}line([x-u,y-v],[x+u,y+v],options)}}}}return{generic:function(){if(!document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")){MSVG.initPictures=MSVG.removePictures}},removePictures:function(obj){var pictures=obj?$(obj):$(".SVGgraph");$(pictures).each(function(){var that=$(this);this.id=null;that.empty();that.css({color:"red",background:"yellow"});that.text("Missing picture: your browser does not support inline SVG");window.setTimeout(function(){that.remove()},10000)})},initPictures:function(obj){var qnode,node,node2,elem;var pictures=obj?$(obj):$(".SVGgraph");$(pictures).each(function(){var that=$(this);SVG=new PictureObject();SVG.src=$.trim(that.text());that.empty().removeAttr("id");SVG.id=Math.randomString(16);qnode=createSVGElement("svg");elem=$(qnode);qnode.id=SVG.id;elem.attr("xmlns","http://www.w3.org/2000/svg");elem.attr("xmlns:ev","http://www.w3.org/2001/xml-events");elem.attr("xmlns:xlink","http://www.w3.org/1999/xlink");elem.attr("version","1.1");elem.attr("baseProfile","full");node2=createSVGElement("defs");node2.id=SVG.id+"_Defs";elem.append(node2);node2=createSVGElement("g");node2.id=SVG.id+"_Canvas";elem.append(node2);that.append(qnode);that.css("position","relative");if(!(this.nodeName=="SPAN")){setAction("mousemove",updatePosition);setAction("mouseup",onDrop);if(window.addEventListener){var evt=$.browser.mozilla?"DOMMouseScroll":"mousewheel";qnode.addEventListener(evt,onWheel,false)}}else{SVG.pan=false}setAction("mousedown",onClick);setAction("mouseover",switchTo);canvas=$("#"+SVG.id+"_Canvas");drawPicture();sanitize()});if(pictures.length>0&&$("#SVGtoolbar").length===0){node=$("<span />").attr("id","SVGtoolbar").css({position:"absolute","z-index":10});node=addButton(node,"X","Close editor",closeEditor);node=addButton(node,"Update","Update picture",updateButton,"SVGupdateButton");node=addButton(node,"SVG","View SVG code",exportSVG);node=addButton(node,"-","Zoom out",function(){zoom(1.25,true)});node=addButton(node,"+","Zoom in",function(){zoom(0.8,true)});node=addButton(node,"\u2191","Enlarge picture",function(){resize(0.8)});node=addButton(node,"\u2193","Reduce picture",function(){resize(1.25)});node.append("<br />");node2=$("<textarea />").attr({id:"SVGsrc",rows:8,cols:60});node.append(node2).hide().appendTo($("body"))}}}}(jQuery);
//}}}
/***
!~TiddlyWiki formatters
***/
//{{{
if(!version.extensions.MathSVGPlugin) { //# ensure that the plugin is only installed once
version.extensions.MathSVGPlugin = {installed: true};
MSVG.generic();
config.formatters.push( {
name: "graph",
match: "<div",
lookaheadRegExp: /<div.+SVGgraph.+?>((?:.|\n)*?)<\/div>/mg,
handler: function(w){
if(w.tiddler && MSVG.noSvgTag && jQuery.inArray(MSVG.noSvgTag,w.tiddler.tags)>-1) return;
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch){
var text = lookaheadMatch[0].replace('<div','<div id="currentGraph"');
jQuery(w.output).append(text);
MSVG.initPictures("#currentGraph");
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
}
})
config.formatters.push( {
name: "inlineGraph",
match: "<span",
lookaheadRegExp: /<span.+SVGgraph.+?>((?:.|\n)*?)<\/span>/mg,
handler: function(w){
if(w.tiddler && MSVG.noSvgTag && jQuery.inArray(MSVG.noSvgTag,w.tiddler.tags)>-1) return;
this.lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
if(lookaheadMatch){
var text = lookaheadMatch[0].replace('<span','<span id="currentGraph"');
jQuery(w.output).append(text);
MSVG.initPictures("#currentGraph");
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
}
})
}
//}}}
Esta página é um [[TiddlyWiki|http://www.tiddlywiki.com]] na versão <<version>>. Um ~TiddlyWiki é uma excelente ferramenta para colocar //online// informação fragmentada de uma forma muito eficiente. Segundo o seu autor, Jeremy Ruston:
>A ~TiddlyWiki is like a blog because it's divided up into neat little chunks, but it encourages you to read it by hyperlinking rather than sequentially: if you like, a non-linear blog analogue that binds the individual microcontent items into a cohesive whole.
/%[[Classificação estatística]] (projecto em matemática)
[[Comparação de distribuições discretas com grandes amostras]] (projecto em matemática/dissertação)%/
!Identificação
''Disciplina:'' Probabilidades e Estatística
''Licenciatura:'' Engenharia Mecânica
''Ano lectivo:'' 2004/2005
''Semestre:'' Segundo
''Professor responsável:'' Paulo Soares (PS)
''Outros docentes:'' Ana Costa (AC), Marta Correia (MC) e Pedro Figueira (PF)
!Caracterização dos alunos
|''Número de inscrições''| 1| 2| 3| 4| 5| 6| 7| 8| 9| 11| 15|''Total''|
|''Número de alunos''| 55| 38| 22| 12| 12| 4| 6| 4| 2| 3| 1| 159|
|''Proporção de alunos''| 34,6| 23,9| 13,8| 7,5| 7,5| 2,5| 3,8| 2,5| 1,3| 1,9| 0,6| 100%|
!Frequência das aulas práticas
Turma 3201 (MC): <<sparkline 24 21 21 34 20 20 24 19 21 21 12 15>> (valor inicial=24)
Turma 3202 (AC): <<sparkline 28 33 22 33 30 15 17 21 17 10 10 12>> (valor inicial=28)
Turma 3203 (PF): <<sparkline 13 12 15 12 12 10 13 10 10 13 10 10 9>> (valor inicial=13)
Turma 3204 (PS): <<sparkline 40 50 45 30 30 15 25 25 25 25 25 20 12>> (valor inicial=40)
Turma 3205 (AC): <<sparkline 9 6 6 6 14 14 12 10 10>> (valor inicial=9, informação incompleta e duvidosa)
!Resultados
| ''Inscritos'' | ''Avaliados'' | ''Aprovados'' |
| 159| 80 (50,3% dos inscritos)| 37 (23,3% dos inscritos e 46,3% dos avaliados)|
| ''Nota final'' | [0,7[ | [7,9.5[ | [9.5,14[ | [14,17[ | [17,18[ | [18,20] |
| ''Número de alunos'' | 29 (36,3%)| 14 (17,5%)| 33 (41,3%)| 3 (3,8%)| 1 (1,3%)| 0 (0,0%)|
!Comentários
O semestre decorreu com normalidade com a excepção do roubo de algumas provas (incluindo 6 alunos de LEM) do segundo teste na primeira chamada. Este incidente foi resolvido a contento dos alunos afectados e com a concordância dos órgãos do DM e do IST através da criação de oportunidades para a repetição da prova.
Os resultados obtidos não se afastam muito dos de semestres anteriores e continuam aquém do desejado. Para isso parece contribuir o desinteresse ou a dificuldade dos alunos em acompanharem satisfatoriamente a disciplina, o que pode ser comprovado com o abandono progressivo das aulas práticas como se pode ver acima. Apesar de não serem apresentados dados, o panorama nas aulas teóricas foi ainda pior, havendo uma frequência inferior a 10% dos alunos inscritos nas últimas aulas do semestre. Isto é tanto mais incompreensível quando, pela primeira vez, foi posto à disposição dos alunos material escrito para acompanhamento das aulas teóricas que cobriu a maior parte do programa (capítulos 3 a 9). Note-se que este material foi concebido para que não possa ser usado como material exclusivo de estudo, tendo isto sido anunciado repetidamente aos alunos.
A frequência das aulas de dúvidas foi extremamente reduzida ao longo de todo o semestre, mesmo nas aulas mais próximas das provas de avaliação.
Por outro lado, a fraca afluência às provas de avaliação (pouco mais de metade dos alunos inscritos foram avaliados) contribuiu decisivamente para os fracos resultados obtidos. Para este facto não consegui encontrar qualquer explicação.
IST, 28 de Setembro de 2005
Paulo José de Jesus Soares
!Identificação
''Disciplina:'' Probabilidades e Estatística
''Licenciatura:'' Engenharia Electrotécnica e de Computadores
''Ano lectivo:'' 2005/2006
''Semestre:'' Primeiro
''Professor responsável:'' Paulo Soares (PS)
''Outros docentes:'' Bruno Silva (BS), Delfina Barbosa (DB), Joana Coelho (JC), Miguel Matos (MM) e Sofia d'Orey (SO)
!Caracterização dos alunos
|''Número de inscrições''| 1| 2| 3| 5| 6| 7| 8| 9| 11| 12| 15| 16| 19| 35|''Total''|
|''Número de alunos''| 192| 148| 76| 15| 2| 15| 3| 7| 4| 3| 2| 1| 1| 1| 470|
|''Proporção de alunos''| 40,9| 31,5| 16,2| 3,2| 0,4| 3,2| 0,6| 1,5| 0,9| 0,6| 0,4| 0,2| 0,2| 0,2| 100%|
!Frequência das aulas práticas
Turma 14201 (BS): <<sparkline 43 34 31 33 27 30 29 30 32 25 30 22>> (valor inicial=43)
Turma 14202 (BS): <<sparkline 36 28 39 41 39 33 32 21 31 37 21>> (valor inicial=36)
Turma 14203 (SO): <<sparkline 31 30 33 27 17 16 14 27 26 19 16 12>> (valor inicial=31)
Turma 14204 (JC): <<sparkline 45 40 40 35 25 25 20 23 25 20 20 17>> (valor inicial=45)
Turma 14205 (DB): <<sparkline 45 45 40 40 35 38 34 34 25 38 36 34>> (valor inicial=45)
Turma 14206 (SO): <<sparkline 35 35 26 26 21 17 22 17 14 21 11 10>> (valor inicial=35)
Turma 14207 (MM): <<sparkline 40 35 30 35 42 45 25 27 26 26 24 30>> (valor inicial=40)
Turma 14208 (SO): <<sparkline 10 12 17 12 7 10 3 11 6 10 7>> (valor inicial=10)
!Resultados
| ''Inscritos'' | ''Avaliados'' | ''Aprovados'' |
| 470| 227 (48,3% dos inscritos)| 100 (21,3% dos inscritos e 44,1% dos avaliados)|
| ''Nota final'' | [0,7[ | [7,9.5[ | [9.5,14[ | [14,17[ | [17,18[ | [18,20] |
| ''Número de alunos'' | 85 (37,4%)| 42 (18,5%)| 86 (37,9%)| 12 (5,3%)| 0 (0,0%)| 2 (0,9%)|
!Comentários
O semestre decorreu com inteira normalidade. O corpo docente, que teve 3 monitores estreantes (BS, JC e MM), teve um desempenho imaculado com a excepção do monitor Miguel Matos que cedo mostrou desmotivação que, segundo o próprio, se deveu à sua falta de vocação para actividades lectivas e a excesso de trabalho. No entanto, não há qualquer evidência de que o seu desempenho nas aulas práticas que leccionou tenha sido afectado. Este monitor acabou por nos abandonar antes da época de avaliação, por acordo com o presidente do DM e contra a minha opinião.
Os resultados obtidos são uma melhoria em relação aos do ano anterior mas continuam bem aquém do desejado. Para isso parece contribuir o desinteresse ou a dificuldade dos alunos em acompanharem satisfatoriamente a disciplina, o que pode ser comprovado com o abandono progressivo das aulas práticas como se pode ver acima. Apesar de não serem apresentados dados, o panorama nas aulas teóricas foi ainda pior, havendo uma frequência residual dos alunos inscritos nas últimas aulas do semestre.
A frequência das aulas de dúvidas foi também extremamente reduzida ao longo de todo o semestre, mesmo nas aulas mais próximas das provas de avaliação.
Por outro lado, a fraca afluência às provas de avaliação (menos de metade dos alunos inscritos foram avaliados) contribuiu decisivamente para os fracos resultados obtidos. Para este facto não consigo encontrar qualquer explicação.
IST, 13 de Fevereiro de 2006
Paulo José de Jesus Soares
!Identificação
''Disciplina:'' Probabilidades e Estatística
''Licenciatura:'' Engenharia Química
''Ano lectivo:'' 2006/2007
''Semestre:'' Primeiro
''Professor responsável:'' Paulo Soares (PS)
''Outros docentes:'' Bruno Silva (BS)
!Caracterização dos alunos
|''Número de inscrições''| 1| 2| 3| 4| 5| 6| 7| 10|''Total''|
|''Número de alunos''| 43| 12| 8| 6| 4| 1| 1| 2| 77|
|''Proporção de alunos''| 55,8| 15,6| 10,4| 7,8| 5,2| 1,3| 1,3| 2,6| 100%|
!Frequência das aulas práticas
Turma 5201 (BS): <<sparkline 14 30 33 32 22 32 25 27 22 28 18 15>> (valor inicial=14)
Turma 5202 (PS): aula prática encerrada por ter um número insuficiente de alunos
Turma 5203 (PS): <<sparkline 45 30 30 25 25 15 15 15 15 15 15 20>> (valor inicial=45)
!Resultados
| ''Inscritos'' | ''Avaliados'' | ''Aprovados'' |
| 77| 48 (62,3% dos inscritos)| 27 (35,1% dos inscritos e 56,3% dos avaliados)|
| ''Nota final'' | [0,7[ | [7,9.5[ | [9.5,14[ | [14,17[ | [17,18[ | [18,20] |
| ''Número de alunos'' | 14 (29,2%)| 7 (14,6%)| 23 (47,9%)| 4 (8,3%)| 0 (0,0%)| 0 (0,0%)|
!Comentários
O semestre decorreu com inteira normalidade. Os resultados obtidos são comparáveis aos do ano anterior e continuam aquém do desejado. Os alunos não se mostram minimamente motivados para procurarem a aprovação a esta disciplina o que parece ser um reflexo do facto de ela se encontrar isolada no currículo da licenciatura. Por esta razão, esta disciplina é tratada com grande displicência pelos alunos que não lhe dedicam o esforço exigido, encarando a avaliação como uma experiência aleatória e que, frequentemente, deixam para o fim das suas licenciaturas.
A frequência das aulas de dúvidas foi praticamente nula ao longo de todo o semestre, mesmo nas aulas mais próximas das provas de avaliação. Por outro lado, a fraca afluência às provas de avaliação contribuiu decisivamente para os fracos resultados obtidos.
IST, 13 de Fevereiro de 2006
Paulo José de Jesus Soares
!Identificação
''Disciplina:'' Probabilidades e Estatística II
''Licenciatura:'' Matemática Aplicada e Computação
''Ano lectivo:'' 2006/2007
''Semestre:'' Segundo
''Professor responsável:'' Paulo Soares
''Página web da disciplina:'' http://www.math.ist.utl.pt/~psoares/pe2/
!Caracterização dos alunos
|''Número de inscrições''| 1| 2| 3| 4| ''Total''|
|''Número de alunos''| 18| 18| 2| 3| 41|
|''Proporção de alunos''| 43,9| 43,9| 4,9| 7,3| 100%|
!Funcionamento da disciplina
A disciplina funcionou com aulas teórico-práticas em que se intercalou a apresentação dos conteúdos programados com a resolução de exercícios. A componente teórica foi apresentada com base num conjunto de notas que resumem os resultados e exemplos mais importantes dos conteúdos programáticos. Essas notas, projectadas nas aulas e colocadas (quase sempre) previamente à disposição dos alunos foram complementadas abundantemente por demonstrações e cálculos efectuados no quadro. Na resolução dos exercícios propostos foi adoptada uma estratégia de incentivo ao trabalho individual dos alunos sem contudo se cair no erro comum que consiste em pressupor que, após a apresentação teórica de uma matéria, todos os alunos se encontram aptos a resolver qualquer problema prático. Esta modalidade de funcionamento foi apresentada aos alunos na primeira aula e não foi contestada a não ser quanto à resolução de exercícios que, para alguns, deveria ser feita exclusivamente pelo professor na forma que, segundo eles, é a mais habitual.
Considero que a componente teórica das aulas decorreu com assinalável sucesso, tendo tido uma boa participação dos alunos. A componente prática pareceu ter sido bem aproveitada pelo reduzido número de alunos que se empenharam mas esbarrou quase sempre com uma enorme passividade e desinteresse dos restantes. Tem interesse realçar que os alunos que mais e melhor participaram nas aulas foram aqueles que bem cedo manifestaram o seu reduzido interesse nas áreas de Probabilidade e Estatística.
Na definição do regime de avaliação teve um peso decisivo a queixa frequente dos alunos acerca do excesso de trabalho noutras disciplinas. Nesse sentido, foi adoptada uma forma leve de avaliação que permitiu que os alunos pudessem ter gerido melhor o seu tempo de trabalho.
!Frequência das aulas
A frequência das aulas raramente ultrapassou metade dos alunos inscritos. Um número significativo de alunos não teve qualquer contacto com o professor responsável até a alguma das datas de exame final. As aulas de esclarecimento de dúvidas só foram procuradas por altura das provas de avaliação por um número muito reduzido de alunos.
!Resultados
| ''Inscritos'' | ''Avaliados'' | ''Aprovados'' |
| 41| 23 (56,1% dos inscritos)| 4 (9,8% dos inscritos e 17,4% dos avaliados)|
| ''Nota final'' | [0,7[ | [7,9.5[ | [9.5,14[ | [14,17[ | [17,18[ | [18,20] |
| ''Número de alunos'' | 15 (65,2%)| 4 (17,4%)| 2 (8,7%)| 0 (0,0%)| 0 (0,0%)| 2 (8,7%)|
!Comentários
Os resultados obtidos pelos alunos são desoladores. Torna-se difícil compreender como numa disciplina em que dois alunos obtiveram classificações elevadas sem, pelo menos aparentemente, terem feito grandes esforços, não tenha havido um maior número de alunos a obter a aprovação. Não tendo havido reclamações durante todo o semestre e perante os resultados dos inquéritos feitos aos alunos, torna-se razoável acreditar que a origem do problema é necessariamente externa à disciplina. Na opinião que fui criando através de conversas com alunos, o factor crucial parece ser o crescente número de docentes que estão dispostos a quase tudo para garantirem o maior tempo e atenção possíveis dos alunos para as suas disciplinas. Os esforços desses docentes, sob uma aparência benevolente, criam um clima de concorrência inaceitável num contexto escolar que faz com que uma disciplina em que não sejam adoptadas estratégias semelhantes seja //canibalizada// pelas que as aplicam. Como exemplo, temos a disciplina de Topologia, com 10 trabalhos, opcionais mas a contarem para a nota final, 3 testes e 2 exames finais. A este respeito, penso que a coordenação de ciclo deve ter um papel mais activo na harmonização dos regimes de avaliação das diferentes disciplinas. A alternativa de seguir o exemplo dessas outras disciplinas parece-me simplesmente irresponsável e desrespeitosa para com os alunos, a não ser que alguém consiga provar que o tempo dos alunos do IST é infinitamente extensível.
IST, 21 de Setembro de 2007
Paulo José de Jesus Soares
body{
background: #fff;
}
.tiddler {
padding-left: 4em;
padding-right: 4em;
/* background: #000;*/
border: none;
font-family: serif;
line-height: 1.2
}
li {margin: .5em 0}
.viewer {
font-size:100%;
}
.viewer code{
font-size:100%;
}
.viewer pre {
font-size: 75%;
}
h1,h2,h3 {
font-family: sans;
}
.title, #topBar, #topMenu, #bar, #pageFooter {
display:none !important;
}
.viewer .button {
background: #ffc;
color: #000;
border: none;
}
.viewer .button:hover {
background: #228b22;
color: #fffaae;
}
#slideFooter {
font-family: mono;
}
#toc {
color: black;
font-family: sans;
}
.tocJumpItem{
color: #000;
}
.indexNumbers {
color: #ffc;
border: none;
}
#slideClock {
padding: 0 0.2em 0 0.2em;
background: #ffc
}
{{rights{Instituto Superior Técnico e Paulo Soares © 2017. Todos os direitos reservados.}}}[[Contactos]] | [[?|O que é isto?]]
<!--{{{-->
<div id='topBar'> </div>
<div class='header'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
<span class='topRight' refresh='content' tiddler='TopRight'></span>
</div>
<div id='topMenu'>
<span refresh='content' tiddler='TopMenu'></span>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='macro' force='true' macro='slider chkSideBarTabs SideBarTabs "index »" "Mostra listas de tiddlers"'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<div id='bar'> </div>
<div id='pageFooter' refresh='content' tiddler='PageFooter'></div>
<!--}}}-->
!Ligações
[[OpenMosix|http://openmosix.sourceforge.net/]]
[[Simple Parallel Statistical Computing in R (apresentação)|http://www.stat.uiowa.edu/~luke/talks/uiowa03.pdf]]
[[Simple Parallel Statistical Computing in R (artigo)|http://www.bepress.com/cgi/viewcontent.cgi?article=1016&context=uwbiostat]]
[[snow (R package)|http://www.sfu.ca/~sblay/R/snow.html]]
[[HPC - part 1|http://www-128.ibm.com/developerworks/linux/library/l-cluster1/?ca=dgr-lnxwClusterP1]]
[[HPC - part 2|http://www-128.ibm.com/developerworks/linux/library/l-cluster2/?ca=dgr-lnxwClusterP2]]
[>img[figuras/retrato.png]]Professor Auxiliar no [[Departamento de Matemática|http://www.math.ist.utl.pt/]] do [[Instituto Superior Técnico|http://www.ist.utl.pt/]], [[Universidade Técnica de Lisboa|http://www.utl.pt]].
Membro do [[Centro de Estatística e Aplicações da Universidade de Lisboa|http://www.ceaul.fc.ul.pt/]].
Email: <<linkTo email ? paulo.soares at tecnico dot ulisboa.pt>>
Telefone: {{{+351 218417043}}} (extensão {{{1043}}}, dentro do IST)
Fax: {{{+351 218417035}}}
{{hide{Voip: <<linkTo phone? ist13185@ist.utl.pt>> (experimental)}}}
/***
|''Name:''|PortugueseTranslationPlugin|
|''Description:''|Translation of TiddlyWiki into European Portuguese|
|''Author:''|Paulo Soares|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Version:''|2.6.2|
|''Date:''|Jan 18, 2011|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/ ]]|
|''~CoreVersion:''|2.6.0|
***/
/*{{{*/
config.locale = "pt"; // W3C language tag
if (config.options.txtUserName=="YourName")
merge(config.options,{txtUserName: "OSeuNome"});
merge(config.tasks,{
save: {text: "guardar", tooltip: "Guarda as alterações a este TiddlyWiki", action: saveChanges},
sync: {text: "sincronizar", tooltip: "Sincroniza alterações com outros ficheiros TiddlyWiki ou servidores", content: '<<sync>>'},
importTask: {text: "importar", tooltip: "Importa tiddlers e plugins de outros ficheiros TiddlyWiki ou servidores", content: '<<importTiddlers>>'},
tweak: {text: "configurar", tooltip: "Configura a aparência e o comportamento do TiddlyWiki", content: '<<options>>'},
upgrade: {text: "actualizar", tooltip: "Actualiza o código central do TiddlyWiki", content: '<<upgrade>>'},
plugins: {text: "plugins", tooltip: "Gerir plugins instalados", content: '<<plugins>>'}
});
// Options that can be set in the options panel and/or cookies
merge(config.optionsDesc,{
txtUserName: "Nome de utilizador para assinar as edições",
chkRegExpSearch: "Activar expressões regulares na procura",
chkCaseSensitiveSearch: "Procura sensível a maiúsculas",
chkIncrementalSearch: "Procura incremental caracter-a-caracter",
chkAnimate: "Activar animações",
chkSaveBackups: "Manter ficheiro de salvaguarda ao guardar alterações",
chkAutoSave: "Guardar alterações automaticamente",
chkGenerateAnRssFeed: "Gerar um ficheiro RSS ao guardar alterações",
chkSaveEmptyTemplate: "Gerar um modelo vazio ao guardar alterações",
chkOpenInNewWindow: "Abrir ligações externas em novas janelas",
chkToggleLinks: "Clicar em ligações para tiddlers abertos, fecha-os",
chkHttpReadOnly: "Esconde funções de edição quando acedido por HTTP",
chkForceMinorUpdate: "Não actualizar o nome de utilizador nem a data ao editar tiddlers",
chkConfirmDelete: "Requerer confirmação ao eliminar tiddlers",
chkInsertTabs: "Usar a tecla TAB para inserir caracteres de tabulação em vez de saltar para o próximo campo",
txtBackupFolder: "Nome do directório para os ficheiros de salvaguarda",
txtMaxEditRows: "Número máximo de linhas nas caixas de edição",
txtTheme: "Nome do tema a usar",
txtFileSystemCharSet: "Código de caracteres por omissão para guardar alterações (apenas em Firefox/Mozilla)"});
merge(config.messages,{
customConfigError: "Foram encontrados problemas ao carregar plugins. Veja o PluginManager para mais detalhes",
pluginError: "Erro: %0",
pluginDisabled: "Não executado porque foi desactivado pela etiqueta 'systemConfigDisable'",
pluginForced: "Executado porque foi forçado pela etiqueta 'systemConfigForce'",
pluginVersionError: "Não executado porque este plugin requer uma versão mais recente do TiddlyWiki",
nothingSelected: "Nada está selecionado. Deve selecionar um ou mais itens primeiro",
savedSnapshotError: "Parece que este TiddlyWiki foi guardado incorrectamente. Por favor veja http://www.tiddlywiki.com/#Download para mais detalhes",
subtitleUnknown: "(desconhecido)",
undefinedTiddlerToolTip: "O tiddler '%0' ainda não existe",
shadowedTiddlerToolTip: "O tiddler '%0' ainda não existe, mas tem um modelo pré-definido",
tiddlerLinkTooltip: "%0 - %1, %2",
externalLinkTooltip: "Ligação externa a %0",
noTags: "Não há tiddlers com etiquetas",
notFileUrlError: "É necessário guardar este TiddlyWiki num ficheiro antes de poder guardar alterações",
cantSaveError: "Não é possível guardar alterações. Possíveis razões incluem:\n- o seu browser não o permite (funciona sob Firefox, Internet Explorer, Safari ou Opera se estes estiverem configurados adequadamente)\n- o nome do caminho para o seu ficheiro TiddlyWiki contém caracteres ilegais\n- o nome ou a localização do ficheiro TiddlyWiki foram alterados",
invalidFileError: "O ficheiro original '%0' não parece ser um TiddlyWiki válido",
backupSaved: "Ficheiro de salvaguarda guardado",
backupFailed: "Falha ao guardar o ficheiro de salvaguarda",
rssSaved: "Ficheiro RSS guardado",
rssFailed: "Falha ao guardar o ficheiro RSS",
emptySaved: "Modelo vazio guardado",
emptyFailed: "Falha ao guardar o modelo vazio",
mainSaved: "Ficheiro principal de TiddlyWiki guardado",
mainFailed: "Falha ao guardar o ficheiro principal de TiddlyWiki. As suas alterações não foram guardadas",
macroError: "Erro na macro <<%0>>",
macroErrorDetails: "Erro ao executar a macro <<%0>>:\n%1",
missingMacro: "Essa macro não existe",
overwriteWarning: "Um tiddler chamado '%0' já existe. Escolha OK para substituí-lo",
unsavedChangesWarning: "ATENÇÃO! Há alterações no TiddlyWiki que ainda não foram guardadas\n\nEscolha OK para guardar\nEscolha CANCEL para abandonar as alterações",
confirmExit: "--------------------------------\n\nHá alterações no TiddlyWiki que ainda não foram guardadas. Se continuar irá perder essas alterações\n\n--------------------------------",
saveInstructions: "GuardarAlterações",
unsupportedTWFormat: "Formato TiddlyWiki não suportado '%0'",
tiddlerSaveError: "Erro ao guardar tiddler '%0'",
tiddlerLoadError: "Erro ao carregar tiddler '%0'",
wrongSaveFormat: "Não é possível guardar no formato de armazenamento '%0'. Use o formato padrão para guardar.",
invalidFieldName: "Nome de campo inválido %0",
loadingMissingTiddler: "Tentando obter o tiddler '%0' do servidor '%1' em:\n\n'%2' no espaço de trabalho '%3'",
upgradeDone: "A actualização para a versão %0 está completa\n\nClique 'OK' para recarregar o TiddlyWiki actualizado",
invalidCookie: "Cookie inválida '%0'"});
merge(config.messages.messageClose,{
text: "fechar",
tooltip: "fecha esta área de mensagens"});
config.messages.backstage = {
open: {text: "bastidores", tooltip: "Abre a área de bastidores para executar tarefas de edição e administração"},
close: {text: "fechar", tooltip: "Fecha a área de bastidores"},
prompt: "bastidores: ",
decal: {
edit: {text: "editar", tooltip: "Edita o tiddler '%0'"}
}
};
config.messages.listView = {
tiddlerTooltip: "Clique para ver o texto completo deste tiddler",
previewUnavailable: "(antevisão não disponível)"
};
config.messages.dates.months = ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"];
config.messages.dates.days = ["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"];
config.messages.dates.shortMonths = ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"];
config.messages.dates.shortDays = ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"];
merge(config.messages.tiddlerPopup,{
});
merge(config.views.wikified.tag,{
labelNoTags: "sem etiquetas",
labelTags: "etiquetas: ",
openTag: "Abrir etiqueta '%0'",
tooltip: "Abrir tiddlers etiquetados com '%0'",
openAllText: "Abrir todos",
openAllTooltip: "Abrir todos estes tiddlers",
popupNone: "Não há outros tiddlers etiquetados com '%0'"});
merge(config.views.wikified,{
defaultText: "O tiddler '%0' ainda não existe. Faça duplo-clique para criá-lo",
defaultModifier: "(em falta)",
shadowModifier: "(tiddler sombra pré-definido)",
dateFormat: "DD MMM YYYY",
createdPrompt: "criado em"});
merge(config.views.editor,{
tagPrompt: "Escreva as etiquetas separadas por espaços, [[use duplos parênteses rectos]] se necessário, ou atribua existentes",
defaultText: "Escreva o texto para '%0'"});
merge(config.views.editor.tagChooser,{
text: "etiquetas",
tooltip: "Escolha entre as etiquetas existentes para atribuir a este tiddler",
popupNone: "Não há etiquetas definidas",
tagTooltip: "Atribuir a 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: "procurar",
prompt: "Procura neste TiddlyWiki",
accessKey: "F",
successMsg: "%0 tiddlers encontrados que contêm %1",
failureMsg: "Não foi encontrado nenhum tiddler que contenha %0"});
merge(config.macros.tagging,{
label: "etiquetando:",
labelNotTag: "não etiquetando",
tooltip: "Lista de tiddlers etiquetados com '%0'"});
merge(config.macros.timeline,{
dateFormat: "DD MMM YYYY"});
merge(config.macros.allTags,{
tooltip: "Mostra tiddlers com a etiqueta '%0'",
noTags: "Não há tiddlers etiquetados"});
config.macros.list.all.prompt = "Todos os tiddlers em ordem alfabética";
config.macros.list.missing.prompt = "Tiddlers com ligações para eles mas que não existem";
config.macros.list.orphans.prompt = "Tiddlers sem ligações de outros tiddlers";
config.macros.list.shadowed.prompt = "Tiddlers na sombra com conteúdo pré-definido";
config.macros.list.touched.prompt = "Tiddlers que foram modificados localmente";
merge(config.macros.closeAll,{
label: "fechar todos",
prompt: "Fecha todos os tiddlers abertos (excepto os que estão a ser editados)"});
merge(config.macros.permaview,{
label: "permavista",
prompt: "Ligação a um URL que mostra todos os tiddlers que estão abertos"});
merge(config.macros.saveChanges,{
label: "guardar alterações",
prompt: "Guarda todas as alterações em ficheiro",
accessKey: "S"});
merge(config.macros.newTiddler,{
label: "novo tiddler",
prompt: "Cria um novo tiddler",
title: "Novo tiddler",
accessKey: "N"});
merge(config.macros.newJournal,{
label: "novo diário",
prompt: "Cria um novo tiddler com a data e hora actuais",
accessKey: "J"});
merge(config.macros.options,{
wizardTitle: "Configurar opções avançadas",
step1Title: "Estas opções são guardadas em cookies no seu browser",
step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Mostra opções desconhecidas</input>",
unknownDescription: "//(desconhecido)//",
listViewTemplate: {
columns: [
{name: 'Option', field: 'option', title: "Opção", type: 'String'},
{name: 'Description', field: 'description', title: "Descrição", type: 'WikiText'},
{name: 'Name', field: 'name', title: "Nome", type: 'String'}
],
rowClasses: [
{className: 'lowlight', field: 'lowlight'}
]}
});
merge(config.macros.plugins,{
wizardTitle: "Gerir plugins",
step1Title: "Plugins carregados",
step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
skippedText: "(Este plugin não foi executado porque foi incluido depois do arranque)",
noPluginText: "Não há plugins instalados",
confirmDeleteText: "Tem a a certeza que quer eliminar estes plugins:\n\n%0",
removeLabel: "remover a etiqueta systemConfig",
removePrompt: "Remove a etiqueta systemConfig",
deleteLabel: "eliminar",
deletePrompt: "Elimina estes tiddlers para sempre",
listViewTemplate: {
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Description', field: 'Description', title: "Descrição", type: 'String'},
{name: 'Version', field: 'Version', title: "Versão", type: 'String'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Tamanho", type: 'Size'},
{name: 'Forced', field: 'forced', title: "Forçado", tag: 'systemConfigForce', type: 'TagCheckbox'},
{name: 'Disabled', field: 'disabled', title: "Desactivado", tag: 'systemConfigDisable', type: 'TagCheckbox'},
{name: 'Executed', field: 'executed', title: "Carregado", type: 'Boolean', trueText: "Sim", falseText: "Não"},
{name: 'Startup Time', field: 'startupTime', title: "Tempo de arranque", type: 'String'},
{name: 'Error', field: 'error', title: "Estado", type: 'Boolean', trueText: "Erro", falseText: "OK"},
{name: 'Log', field: 'log', title: "Registo", type: 'StringList'}
],
rowClasses: [
{className: 'error', field: 'error'},
{className: 'warning', field: 'warning'}
]},
listViewTemplateReadOnly: {
columns: [
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Description', field: 'Description', title: "Descrição", type: 'String'},
{name: 'Version', field: 'Version', title: "Versão", type: 'String'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Tamanho", type: 'Size'},
{name: 'Executed', field: 'executed', title: "Carregado", type: 'Boolean', trueText: "Sim", falseText: "Não"},
{name: 'Startup Time', field: 'startupTime', title: "Tempo de inicialização", type: 'String'},
{name: 'Error', field: 'error', title: "Estado", type: 'Boolean', trueText: "Erro", falseText: "OK"},
{name: 'Log', field: 'log', title: "Registo", type: 'StringList'}
],
rowClasses: [
{className: 'error', field: 'error'},
{className: 'warning', field: 'warning'}
]}
});
merge(config.macros.toolbar,{
moreLabel: "mais",
morePrompt: "Mostra comandos adicionais",
lessLabel: "menos",
lessPrompt: "Esconde comandos adicionais",
separator: "|"
});
merge(config.macros.refreshDisplay,{
label: "refresca",
prompt: "Refresca a apresentação de todo o TiddlyWiki"
});
merge(config.macros.importTiddlers,{
readOnlyWarning: "Não pode importar para um ficheiro TiddlyWiki só de leitura. Tente abrir a partir de um URL do tipo file://",
wizardTitle: "Importar tiddlers de outro ficheiro TiddlyWiki ou servidor",
step1Title: "Passo 1: Localize o servidor ou o ficheiro TiddlyWiki",
step1Html: "Especifique o tipo de servidor: <select name='selTypes'><option value=''>Escolha...</option></select><br>Escreva o URL ou o caminho aqui: <input type='text' size=50 name='txtPath'><br>...ou procure um ficheiro: <input type='file' size=50 name='txtBrowse'><br><hr>...ou selecione uma localização pré-definida: <select name='selFeeds'><option value=''>Escolha...</option></select>",
openLabel: "abrir",
openPrompt: "Abre a ligação a este ficheiro ou servidor",
statusOpenHost: "Abrindo o anfitrião",
statusGetWorkspaceList: "Obtendo a lista de espaços de trabalho disponíveis",
step2Title: "Passo 2: Escolha o espaço de trabalho",
step2Html: "Escreva o nome de um espaço de trabalho: <input type='text' size=50 name='txtWorkspace'><br>...or selecione um espaço de trabalho: <select name='selWorkspace'><option value=''>Escolha...</option></select>",
cancelLabel: "cancelar",
cancelPrompt: "Cancela esta importação",
statusOpenWorkspace: "Abrindo o espaço de trabalho",
statusGetTiddlerList: "Obtendo a lista de tiddlers disponíveis",
errorGettingTiddlerList: "Erro ao transferir a lista de tiddlers, clique em Cancelar para tentar novamente",
step3Title: "Passo 3: Escolha os tiddlers para importar",
step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Manter estes tiddlers ligados a este servidor para poder sincronizar mudanças subsequentes</input><br><input type='checkbox' name='chkSave'>Guardar os detalhes deste servidor num tiddler 'systemServer' chamado:</input> <input type='text' size=25 name='txtSaveTiddler'>",
importLabel: "importar",
importPrompt: "Importa estes tiddlers",
confirmOverwriteText: "Tem a certeza que quer substituir estes tiddlers:\n\n%0",
step4Title: "Passo 4: Importando %0 tiddler(s)",
step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
doneLabel: "fechar",
donePrompt: "Fecha este assistente",
statusDoingImport: "Importando tiddlers",
statusDoneImport: "Todos os tiddlers importados",
systemServerNamePattern: "%2 de %1",
systemServerNamePatternNoWorkspace: "%1",
confirmOverwriteSaveTiddler: "O tiddler '%0' já existe. Clique 'OK' para o substituir pelos detalhes deste servidor, ou 'Cancel' para manter sem alterações",
serverSaveTemplate: "|''Tipo:''|%0|\n|''URL:''|%1|\n|''Espaço de trabalho:''|%2|\n\nEste tiddler foi criado automaticamente para registar os detalhes deste 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: "Tamanho", type: 'Size'},
{name: 'Tags', field: 'tags', title: "Etiquetas", type: 'Tags'}
],
rowClasses: [
]}
});
merge(config.macros.upgrade,{
wizardTitle: "Actualização do código central do TiddlyWiki",
step1Title: "Actualize ou repare este TiddlyWiki para a versão mais recente",
step1Html: "Vai proceder com a actualização para o código central do TiddlyWiki mais recente (a partir de <a href='%0' class='externalLink' target='_blank'>%1</a>). O seu conteúdo será preservado pela actualização.<br><br>Note que as actualizações do código central podem interferir com plugins antigos. Se tiver problemas com o ficheiro actualizado, veja <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
errorCantUpgrade: "Não é possível actualizar este TiddlyWiki. Só são possíveis as actualizações de ficheiros TiddlyWiki guardados localmente",
errorNotSaved: "É necessário guardar modificações antes de actualizar",
step2Title: "Confirme os detalhes da actualização",
step2Html_downgrade: "Vai regredir para a versão %0 do TiddlyWiki a partir da versão %1.<br><br>Regredir para uma versão anterior do código central não é recomendado",
step2Html_restore: "Parece que este TiddlyWiki já usa a última versão do código central (%0).<br><br>Pode continuar a actualização para garantir que o código central não foi corrompido ou danificado",
step2Html_upgrade: "Vai actualizar o TiddlyWiki da versão %1 para a versão %0",
upgradeLabel: "actualizar",
upgradePrompt: "Prepare-se para o processo de actualização",
statusPreparingBackup: "A preparar cópia de segurança",
statusSavingBackup: "A guardar cópia de segurança",
errorSavingBackup: "Ocorreu um problema ao guardar a cópia de segurança",
statusLoadingCore: "A transferir o código central",
errorLoadingCore: "Erro ao transferir o código central",
errorCoreFormat: "Erro com o novo código central",
statusSavingCore: "A guardar o novo código central",
statusReloadingCore: "A recarregar o novo código central",
startLabel: "iniciar",
startPrompt: "Inicie a actualização",
cancelLabel: "cancelar",
cancelPrompt: "Cancele a actualização",
step3Title: "Actualização cancelada",
step3Html: "A actualização foi cancelada"
});
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: "Anfitrião do servidor", type: 'String'},
{name: 'Server Workspace', field: 'serverWorkspace', title: "Espaço de trabalho do servidor", type: 'String'},
{name: 'Status', field: 'status', title: "Estado da sincronização", type: 'String'},
{name: 'Server URL', field: 'serverUrl', title: "URL do servidor", text: "Ver", type: 'Link'}
],
rowClasses: [
],
buttons: [
{caption: "Sincroniza este tiddlers", name: 'sync'}
]},
wizardTitle: "Sincronizar com ficheiros ou servidores externos",
step1Title: "Escolha os tiddlers que quer sincronizar",
step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
syncLabel: "sincronizar",
syncPrompt: "Sincroniza este tiddlers",
hasChanged: "Alterado enquanto desligado",
hasNotChanged: "Sem alterações enquanto desligado",
syncStatusList: {
none: {text: "...", display:'none', className:'notChanged'},
changedServer: {text: "Alterado no servidor", display:null, className:'changedServer'},
changedLocally: {text: "Alterado enquanto desligado", display:null, className:'changedLocally'},
changedBoth: {text: "Alterado enquanto desligado e no servidor", display:null, className:'changedBoth'},
notFound: {text: "Não encontrado no servidor", display:null, className:'notFound'},
putToServer: {text: "Actualizado no servidor", display:null, className:'putToServer'},
gotFromServer: {text: "Obtida actualização do servidor", display:null, className:'gotFromServer'}
}
});
merge(config.macros.annotations,{
});
merge(config.commands.closeTiddler,{
text: "fechar",
tooltip: "Fecha este tiddler"});
merge(config.commands.closeOthers,{
text: "isolar",
tooltip: "Fecha todos os outros tiddlers"});
merge(config.commands.editTiddler,{
text: "editar",
tooltip: "Edita este tiddler",
readOnlyText: "ver",
readOnlyTooltip: "Ver o conteúdo deste tiddler"});
merge(config.commands.saveTiddler,{
text: "guardar",
tooltip: "Guarda as alterações a este tiddler"});
merge(config.commands.cancelTiddler,{
text: "cancelar",
tooltip: "Cancela as alterações a este tiddler",
warning: "Tem a certeza que quer cancelar as alterações a '%0'?",
readOnlyText: "voltar",
readOnlyTooltip: "Ver este tiddler normalmente"});
merge(config.commands.deleteTiddler,{
text: "eliminar",
tooltip: "Elimina este tiddler",
warning: "Tem a certeza que quer eliminar '%0'?"});
merge(config.commands.permalink,{
text: "permaligação",
tooltip: "Permaligação para este tiddler"});
merge(config.commands.references,{
text: "referências",
tooltip: "Mostra tiddlers que ligam a este",
popupNone: "Sem referências"});
merge(config.commands.jump,{
text: "saltar",
tooltip: "Salta para outro tiddler aberto"});
merge(config.commands.syncing,{
text: "sinc",
tooltip: "Controla sincronização deste tiddler com um servidor ou ficheiro externo",
currentlySyncing: "<div>Sincronizando via <span class='popupHighlight'>'%0'</span> para:</"+"div><div>anfitrião: <span class='popupHighlight'>%1</span></"+"div><div>espaço de trabalho: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
notCurrentlySyncing: "Sem sincronização",
captionUnSync: "Parar sincronização deste tiddler",
chooseServer: "Sincronizar este tiddler com outro servidor:",
currServerMarker: "\u25cf ",
notCurrServerMarker: " "});
merge(config.commands.fields,{
text: "campos",
tooltip: "Mostra os campos estendidos deste tiddler",
emptyText: "Este tiddler não tem campos estendidos",
listViewTemplate: {
columns: [
{name: 'Field', field: 'field', title: "Campo", type: 'String'},
{name: 'Value', field: 'value', title: "Valor", type: 'String'}
],
rowClasses: [
],
buttons: [
]}});
merge(config.shadowTiddlers,{
DefaultTiddlers: "[[ComoIniciar]]",
MainMenu: "[[ComoIniciar]]",
ComoIniciar: "Para começar a usar este TiddlyWiki vazio terá de modificar os seguintes tiddlers:\n* SiteTitle & SiteSubtitle: O título e o subtítulo do site, como pode ver acima (depois de guardar as alterações, eles aparecerão também na barra de título do browser)\n* MainMenu: O menu (usualmente à esquerda)\n* DefaultTiddlers: Contém o nome dos tiddlers que pretende que apareçam quando o TiddlyWiki é aberto\nSerá também necessário inserir o nome de utilizador que servirá para assinar as edições: <<option txtUserName>>",
SiteTitle: "O meu TiddlyWiki",
SiteSubtitle: "um bloco de notas reutilizável e não-linear na web",
SiteUrl: "",
SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "opções \u00bb" "Muda as opções avançadas do TiddlyWiki">>',
OptionsPanel: "Estas opções de personalização do TiddlyWiki ficam guardadas no seu browser\n\nO seu nome de utilizador para assinar os textos. Use uma PalavraWiki (eg, JoséSilva)\n\n<<option txtUserName>>\n<<option chkSaveBackups>> GuardarSalvaguardas\n<<option chkAutoSave>> AutoGuardar\n<<option chkRegExpSearch>> ProcuraExpReg\n<<option chkCaseSensitiveSearch>> ProcuraSensívMaiúsc\n<<option chkAnimate>> ActivarAnimações\n\n----\nVeja as [[OpçõesAvançadas|AdvancedOptions]]",
SideBarTabs: '<<tabs txtMainTab "Data" "Tiddlers por ordem cronológica" TabTimeline "Título" "Tiddlers por ordem alfabética" TabAll "Etiquetas" "Todas as etiquetas" TabTags "Mais" "Mais listas" TabMore>>',
TabMore: '<<tabs txtMoreTab "Em falta" "Tiddlers em falta" TabMoreMissing "Órfãos" "Tiddlers sem ligações de outros tiddlers" TabMoreOrphans "Sombra" "Tiddlers na sombra" TabMoreShadowed>>',
ToolbarCommands: "|~ViewToolbar|closeTiddler closeOthers +editTiddler > fields syncing permalink references jump|\n|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|"});
merge(config.annotations,{
AdvancedOptions: "Este tiddler sombra dá acesso a várias opções avançadas",
ColorPalette: "Estes valores neste tiddler sombra determinam o esquema de cores do interface de utilizador do ~TiddlyWiki",
DefaultTiddlers: "Os tiddlers listados neste tiddler sombra serão automaticamente abertos no arranque do ~TiddlyWiki",
EditTemplate: "O modelo em HTML neste tiddler sombra determina o aspecto dos tiddlers enquanto são editados",
ComoIniciar: "Este tiddler sombra fornece algumas instruções básicas de utilização",
ImportTiddlers: "Este tiddler sombra dá acesso à importação de tiddlers",
MainMenu: "Este tiddler sombra é usado como conteúdo do menu principal na coluna da esquerda do ecran",
MarkupPreHead: "Este tiddler é inserido no topo da secção <head> do ficheiro TiddlyWiki",
MarkupPostHead: "Este tiddler é inserido no fundo da secção <head> do ficheiro TiddlyWiki",
MarkupPreBody: "Este tiddler é inserido no topo da secção <body> do ficheiro TiddlyWiki",
MarkupPostBody: "Este tiddler é inserido no fim da secção <head> do ficheiro TiddlyWiki immediatamente após o bloco <script>",
OptionsPanel: "Este tiddler sombra é usado como conteúdo do painel deslizante de opções na barra lateral da direita",
PageTemplate: "O modelo em HTML neste tiddler sombra determina o aspecto geral do ~TiddlyWiki",
PluginManager: "Este tiddler sombra dá acesso ao gestor de plugins",
SideBarOptions: "Este tiddler sombra é usado como conteúdo do painel de opções na barra lateral da direita",
SideBarTabs: "Este tiddler sombra é usado como conteúdo do painel de abas na barra lateral da direita",
SiteSubtitle: "Este tiddler sombra é usado como a segunda parte do título da página",
SiteTitle: "Este tiddler sombra é usado como a primeira parte do título da página",
SiteUrl: "Este tiddler sombra deve conter o URL completo para publicação",
StyleSheetColors: "Este tiddler sombra contém definições CSS relacionadas com a cor dos elementos da página. ''NÃO EDITE ESTE TIDDLER'', em vez disso faça as suas alterações no tiddler sombra StyleSheet",
StyleSheet: "Este tiddler pode conter definições CSS do utilizador",
StyleSheetLayout: "Este tiddler sombra contém definições CSS relacionadas com a disposição dos elementos da página. ''NÃO EDITE ESTE TIDDLER'', em vez disso faça as suas alterações no tiddler sombra StyleSheet",
StyleSheetLocale: "Este tiddler sombra contém definições CSS relacionadas com traduções",
StyleSheetPrint: "Este tiddler sombra contém definições CSS relacionadas com a impressão",
SystemSettings: "Este tiddler é usado para guardar opções de configuração deste documento ~TiddlyWiki",
TabAll: "Este tiddler sombra define o conteúdo da aba 'Título' na barra lateral da direita",
TabMore: "Este tiddler sombra define o conteúdo da aba 'Mais' na barra lateral da direita",
TabMoreMissing: "Este tiddler sombra define o conteúdo da aba 'Em falta' na barra lateral da direita",
TabMoreOrphans: "Este tiddler sombra define o conteúdo da aba 'Órfãos' na barra lateral da direita",
TabMoreShadowed: "Este tiddler sombra define o conteúdo da aba 'Sombra' na barra lateral da direita",
TabTags: "Este tiddler sombra define o conteúdo da aba 'Etiquetas' na barra lateral da direita",
TabTimeline: "Este tiddler sombra define o conteúdo da aba 'Data' na barra lateral da direita",
ToolbarCommands: "Este tiddler sombra determina quais os comandos que aparecem na barra de ferramentas dos tiddlers",
ViewTemplate: "O modelo em HTML neste tiddler sombra determina o aspecto dos tiddlers"
});
delete config.shadowTiddlers.GettingStarted;
/*}}}*/
/*{{{*/
body{
background: #fff;
}
.header, .mainMenu, #sidebar, #backstageShow{
display:block !important
}
#displayArea{
font-size: 100%;
margin: 1em 15.5em 0em 1em !important;
position: relative;
}
.tiddler{
font-family: serif;
margin:0;
padding: 0
}
h1,h2,h3 {
/* margin-top:0.3em;*/
font-family: sans;
}
@media print {
#mainMenu, #sidebar, #messageArea, .tagging, .tagged, .subtitle, #pageFooter, .button, .header {display: none ! important;}
.tiddler{
/* page-break-after: always;*/
border: none;
/*margin: 1em 0 1em 0;*/
margin:0;
padding: 0;
font-family: serif
}
#displayArea {
font-size: 150%;
margin: 1em 0em 0em 0em !important;
}
}
/*}}}*/
!Software estatístico
Ao longo do tempo fui produzindo uma razoável quantidade de código que acaba os seus dias perdido nalgum disco rígido ou CD. Como uma grande parte dos programadores, eu detesto documentar os programas que escrevo e, por isso, não os torno públicos limitando, possivelmente, a sua utilidade.
Em particular, tenho uma biblioteca de métodos de MCMC e outra de análise de resultados obtidos por esses métodos escritas em [[OX|http://www.doornik.com/products.html#Ox]], que me têm sido muito úteis e que espero conseguir disponibilizar em breve.
!Outro software
Se já sabe [[o que isto é|O que é isto?]] então fique também sabendo que pode encontrar as minhas pequenas contribuições para este projecto [[aqui|http://www.math.ist.utl.pt/~psoares/addons.html]].
No meu tempo livre e em conjunto com a Margarida Conde, professora da Escola Secundária de Odivelas (e minha esposa!), elaborei ainda o [[labVideo|http://corto.homeip.net/labvideo/]], um software de análise educativa de vídeo.
''If we knew what it was we were doing, it would not be called research, would it?'' (//Albert Einstein//)
Os meus interesses na investigação repartem-se pelos seguintes tópicos:
* Estatística bayesiana
* Dados categorizados
* Estatística computacional
!Trabalhos em curso
#[[Bayesian Analysis of Non-Homogeneous Poisson Processes with a Change-point]]
#Bayesian Analysis of Coarse Categorical Data
#[[Parallel Computation with R]]
Veja referências em [[MathSciNet|http://www.ams.org/msnmain?fn=130&fmt=hl&pg1=IID&s1=693406&v1=Soares%2C%20Paulo]] (só para utilizadores registados).
*Silva, G.L., Soares, P., Marques, S., Dias, M.I., Oliveira, M.M. and Borges, J.G. (2015). A Bayesian modelling of wildfires in Portugal. In Bourguignon, J.P., Jeltsch, R., Pinto, A. and Viana, M. (Editors), Dynamics, Games and Science III - International Conference and Advanced School Planet Earth DGS II, CIM Series in Mathematical Sciences, Springer-Verlag, pg. 723-733.
*Achcar, J. A., Rodrigues, E. R., Paulino, C. D. and Soares, P. (2009). Non-homogeneous Poisson models with a change-point: an application to ozone peaks in Mexico city. Environmental and Ecological Statistics. http://dx.doi.org/10.1007/s10651-009-0114-3.
*Achcar, J. A., Martinez, E. Z., ~Ruffino-Netto, A., Paulino, C. D. and Soares, P. (2008). A statistical model investigating the prevalence of tuberculosis in New York City using counting processes with two change-points. Epidemiology and Infection, 136, 1599-1605, http://dx.doi.org/10.1017/S0950268808000526.
*Soares, P. (2004). Análise Bayesiana de Dados Deficientemente Categorizados. Dissertação para a obtenção do grau de Doutor em Matemática. ~IST-UTL, Lisboa. ([[PDF|http://www.math.ist.utl.pt/~psoares/upload/PS_dissert.pdf]], 5.8MB)
*Paulino, C. D., Soares, P. and Neuhaus, J. (2003). [[Binomial Regression with Misclassification|http://www.math.ist.utl.pt/~psoares/upload/biom-%5B670-675%5D.pdf]]. Biometrics 59, 670-675. ''Notice:'' This is an electronic version of an article published in Biometrics: complete citation information for the final version of the paper, as published in the print edition of Biometrics, is available on the Blackwell Synergy online delivery service, accessible via the journal's website at http://www.blackwellpublishing.com/journals/BIOM or http://www.blackwell-synergy.com.
*Paulino, C. D. and Soares, P. (2003). Analysis of rates in incomplete Poisson data. Journal of the Royal Statistical Society D 52, 87-99.
*Soares, P. and Paulino, C. D. (2001). Incomplete Categorical Data Analysis: A Bayesian Perspective. Journal of Statistical Computation and Simulation 69, 157-170.
*Paulino, C. D. e Soares, P. (2001). Modelação e análise de dados Poisson sob censura não informativa. Parte II - Ajustamento de modelos estruturais para as taxas e aplicações. Em Oliveira, P. e Athayde, E. (editores), Um olhar sobre a Estatística. Sociedade Portuguesa de Estatística, Lisboa, 357-367.
*Soares, P. e Paulino, C. D. M. (1998). Análise Bayesiana de Dados Categorizados Informativamente Omissos: Uma Abordagem por Simulação. Em Miranda, M. S. e Pereira, I. (editores), Estatística: A Diversidade na Unidade. Col. Novas Tecnologias/Estatística, Edições Salamandra, Lisboa, 405-410.
*Soares, P. (1996). Análise Bayesiana de Dados Categorizados Incompletos - Implementação Computacional. Dissertação para obtenção do grau de Mestre em Matemática Aplicada. ~IST-UTL, Lisboa.
!Relatórios de docência
[[Complementos de Probabilidades e Estatística - 2º semestre de 2007/2008|CPE-0708S2]]
[[Probabilidades e Estatística 2 - 2º semestre de 2006/2007|PE2-0607S2]]
[[Probabilidades e Estatística - 1º semestre de 2006/2007|PE-0607S1]]
[[Probabilidades e Estatística - 1º semestre de 2005/2006|PE-0506S1]]
[[Probabilidades e Estatística - 2º semestre de 2004/2005|PE-0405S2]]
!Mestrados
[[César Correia - 12/11/2009|Júri de Mestrado - 12/11/2009]]
[[Ausenda Pires - 07/11/2007|Júri de Mestrado - 13/11/2008]]
!Doutoramentos
[[Júlia Teles - 06/12/2005|Júri de doutoramento - 06/12/2005]]
* XXI Congresso da Sociedade Portuguesa de Estatística, Aveiro, 29 Novembro-2 Dezembro 2013
* XX Congresso da Sociedade Portuguesa de Estatística, Porto, 26-29 Setembro 2012
* Ninth Valencia International Meeting on Bayesian Statistics, Benidorm - Espanha, 3-8 Junho de 2010
* 56^^th^^ Session of the International Statistical Institute, Lisboa, 22-29 Agosto de 2007
* XV Congresso Anual da Sociedade Portuguesa de Estatística, Lisboa, 19-21 Agosto de 2007
* 17º SINAPE - Simpósio Nacional de Probabilidade e Estatística, Caxambu, MG - Brasil, 24-28 Julho de 2006
* AMS 2005 Joint Statistical Meeting, Minneapolis - EUA, 7-11 Agosto de 2005
* ~MCMSki - 2nd ~IMS-ISBA Joint Meeting, Bormio - Itália, 12-14 Janeiro de 2005
* Seventh Valencia International Meeting on Bayesian Statistics, Tenerife - Espanha, 2-6 Junho de 2002
* IX Congresso Anual da Sociedade Portuguesa de Estatística, ~Ponta-Delgada, 4-7 Novembro de 2001
* CAUS 99 - 5º Congresso Anual dos Utilizadores de SAS, Lisboa, 26-27 Outubro de 1999
* VII Congresso Anual da Sociedade Portuguesa de Estatística, Ofir, 14-16 Outubro de 1999
* International Workshop on Objective Bayesian Methodology, Valência - Espanha, 10-13 Junho de 1999
* VI Congresso Anual da Sociedade Portuguesa de Estatística, Tomar, 11-14 Junho de 1998
* Sixth Valencia International Meeting on Bayesian Statistics, Alcossebre - Espanha, 30 Maio-4 Junho de 1998
* Royal Statistical Society 1997 Conference, Nottingham - Inglaterra, 15-18 Julho de 1997
* V Congresso Anual da Sociedade Portuguesa de Estatística, Curia, 11-14 Junho de 1997
* III Congresso Anual da Sociedade Portuguesa de Estatística, Guimarães, 26-28 Junho de 1995
* Fifth Valencia International Meeting on Bayesian Statistics, Alicante - Espanha, 5-9 Junho de 1994
* I Congresso Anual da Sociedade Portuguesa de Estatística, Vimeiro, Junho de 1993
* Statistics in Public Resources and Utilities and in Care of the Environment (SPRUCE), Lisboa, 7-10 Abril de 1992
[[Segundo semestre 2009/2010|0910S2]]
[[Primeiro semestre 2009/2010|0910S1]]
[[Segundo semestre 2008/2009|0809S2]]
[[Primeiro semestre 2008/2009|0809S1]]
[[Segundo semestre 2007/2008|0708S2]]
[[Primeiro semestre 2007/2008|0708S1]]
[[Segundo semestre 2006/2007|0607S2]]
[[Primeiro semestre 2006/2007|0607S1]]
[[Segundo semestre 2005/2006|0506S2]]
[[Primeiro semestre 2005/2006|0506S1]]
<div class='SVGgraph noClicks' style='margin-left:auto; margin-right:auto; width:300px; height:75px'>
initGraph({scales:[-4,4,-0.1,0.1]});
setOptions({stroke:'black'});
path([[-4,-0.01],[-0.8,-0.01],[4,-0.01]],{marker:"-|-",markerstroke:'black',label:["","$x_0$"],pos:'S'});
line([0.8,-0.01],[2.1,-0.01],{strokewidth:4,stroke:'orange'});
line([-1.7,-0.01],[-0.15,-0.01],{strokewidth:4,stroke:'orange'});
text([3.4,-0.02],"$S$",{fontsize:16,pos:'S',fontfill:'orange',fontweight:'bold'});
line([-2.4,0.01],[0.6,0.01],{id:'slice',marker:"|-|",markerstroke:'black'});
dot([0.3,-0.01],{marker:'*',markerstroke:'red'});
line([-2.4,0.01],[0.3,0.01],{id:'slice2',marker:"|-|",markerstroke:'black'});
dot([-1.8,-0.01],{marker:'*',markerstroke:'red'});
line([-1.8,0.01],[0.3,0.01],{id:'slice3',marker:"|-|",markerstroke:'black'});
dot([-1.3,-0.01],{marker:'*',markerstroke:'green',label:'$x_1$',pos:'s'});
</div>
<<closeAll>><<permaview>><<newTiddler>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "opções »" "Muda as opções avançadas do TiddlyWiki">>
<<tabs txtMainTab "Data" "Tiddlers por ordem cronológica" TabTimeline "Título" "Tiddlers por ordem alfabética" TabAll "Etiquetas" "Todas as etiquetas" TabTags "Mais" "Mais listas" TabMore>>
A simulação de dados baseia-se no seguinte resultado:
>Dado $N(T)=n$, os tempos de ocorrências $T_1,T_2,\ldots,T_n$ de um PPNH têm a mesma distribuição que as estatísticas de ordem de $n$ variáveis aleatórias independentes com função densidade comum $f(t)=\lambda(t)/m(T),$ $0\leq t\leq T$.
O algoritmo usado é então o seguinte:
#gerar uma observação de uma v.a. $N$ com distribuição Poisson$(m(T))$;
#gerar $N$ v.a.'s $V_i$, $i=1,\ldots,N$ com função densidade $f(t)$;
#tomar $(T_1,T_2,\ldots,T_n)$=ordenar$(V_1,V_2,\ldots,V_n)$.
Para executar o passo 2. gera-se $U_i\sim U(0,1)$ e calcula-se $V_i=F^{-1}(U_i)$, com a função de distribuição $F(t)=m(t)/m(T)$, $0\leq t \leq T$. A sua inversa é dada por
$$\displaystyle{ F^{-1}(t) = \left\{\begin{array}{l l}
\alpha_1(t m(T))^{1/\beta_1}, & 0\leq t\leq m(\tau)/m(T) \\
\alpha_2(t m(T)+m_2(\tau)-m_1(\tau))^{1/\beta_2}, & m(\tau)/m(T) \lt t\leq 1
\end{array}\right.},$$
para um PLP com $m_i(t)=\left(\frac{t}{\alpha_i}\right)^{\beta_i}$, $i=1,2$, e
$$\displaystyle{ F^{-1}(t) = \left\{\begin{array}{l l}
\alpha_1\left[\exp\{t/\beta_1 m(T)\}-1\right], & 0\leq t\leq m(\tau)/m(T) \\
\alpha_2\left[\exp\{t/\beta_2 (m(T)+m_2(\tau)-m_1(\tau))\}-1\right], & m(\tau)/m(T) \lt t\leq 1
\end{array}\right.},$$
para um MOP com $m_i(t)=\beta_i\log\left(1+\frac{t}{\alpha_i}\right)$, $i=1,2$.
[img[Instituto Superior Técnico|figuras/tecnico.png][http://www.ist.utl.pt]]
http://www.math.ist.utl.pt/~psoares/
!Slice sampling -- an overview
*the slice sampler is one of the workhorses behind the BUGS family of software for a few years now;
*yet, its presence is quite discrete;
*and only the simplest version is routinely used.
-s-
!!The basic idea
<div class='SVGgraph' options='width:300,height:200,scales:[-4,4,-0.1,0.4]' style='float:right'>
function df(x,mu,sigma2){return 1/sqrt(2*PI*sigma2)*exp(-1/(2*sigma2)*pow(x-mu,2));}
function f(x){return 0.5*df(x,-1,0.5)+0.5*df(x,1.5,0.8);}
plot(f,{points:100,strokewidth:2});
text([2.5,0.225],"$f(x)$",{fontsize:12});
text([0,0.075],"$U$",{fontsize:16});
area(f,"-0.01",{stroke:"none",fill:"#ddd"});
line([-4,-0.01],[4,-0.01],{stroke:'black'});
</div>
''Problem:'' sample from a density $\pi(x)=cf(x)$
#{{blank{introduce an auxiliary variable $Y$ such that
$$\pi(x,y)=cI_{U}(x,y), \mathrm{with}\, U=\left\{(x,y):0<y<f(x)\right\},$$}}}
#generate a point from an uniform distribution on $U$ and discard the value of $Y$.
@@Difficult to execute step 2!@@
-s-
!!Gibbs sampling
<div class='SVGgraph' style='float:right; width:300px; height:200px'>
initGraph({scales:[-4,4,-0.1,0.4]});
function df(x,mu,sigma2){return 1/sqrt(2*PI*sigma2)*exp(-1/(2*sigma2)*pow(x-mu,2));}
function f(x){return 0.5*df(x,-1,0.5)+0.5*df(x,1.5,0.8);}
plot(f,{points:100,strokewidth:2});
text([2.5,0.225],"$f(x)$",{fontsize:12});
text([-0.9,f(-1.7)],"$y$",{fontsize:12,pos:"NW"});
area(f,"-0.01",{stroke:"none",fill:"#ddd"});
setOptions({stroke:'black'});
path([[-4,-0.01],[-0.8,-0.01],[4,-0.01]],{marker:"-|-",markerstroke:'black',label:["","$x_0$"],pos:'S'});
line([-0.8,-0.01],[-0.8,f(-0.8)]);
line([-1.7,f(-1.7)],[-0.15,f(-1.7)]);
line([0.8,f(-1.7)],[2.1,f(-1.7)]);
line([0.8,-0.01],[2.1,-0.01],{strokewidth:4,stroke:'orange'});
line([-1.7,-0.01],[-0.15,-0.01],{strokewidth:4,stroke:'orange'});
setOptions({strokedasharray:[2,2]});
line([-1.7,-0.01],[-1.7,f(-1.7)]);
var a = -0.15;
line([a,-0.01],[a,f(a)]);
a = 0.8;
line([a,-0.01],[a,f(a)]);
a = 2.1;
line([a,-0.01],[a,f(a)]);
text([3.4,-0.02],"$S$",{fontsize:16,pos:'S',fontfill:'orange',fontweight:'bold'});
</div>
From the joint distribution of $(X,Y)$ we have:
#$Y\mid X=x \sim U(0,f(x))$
#$X\mid Y=y \sim U(S)$ with $S=\left\{x:y<f(x)\right\}$
Defines a Gibbs sampling scheme with uniform full conditionals.
@@How to define the slice $S$?@@
-s-
!!Neal's univariate slice sampler
Neal (2003) proposed a couple of strategies to replace the uniform sampling from $S$ with an update of $x_0$ that leaves the uniform distribution over $U$ invariant according to the following procedure:
#draw $y$ from $U(0,f(x_0))$ defining the slice $S=\left\{x:y<f(x)\right\}$;
#find an interval, $I=(L,R)$, around $x_0$ that contains all, or much, of the slice;
#draw a new point $x_1$ from the part of the slice within this interval.
-s-
!!!The "stepping-out" procedure
#define a random interval of width $w$ around $x_0$;
#expand the interval in steps of size $w$ until both ends are outside the slice, thereby defining the interval $I$.
<<tiddler Stepping>>
-s-
!!!The "shrinkage" procedure
Generate from an uniform distribution on $I$ until a point inside the slice is found. Points outside the slice are used to shrink the interval.
<<tiddler Shrinkage>>
-s-
!!!A few notes
#almost fully automated procedure -- there's only one tuning parameter, $w$, that can be fixed in an adaptive tuning phase
#easy to adapt if the variable has a bounded support
#multimodality can be problematic -- modes can be missed if the support is unbounded
#univariate slice sampling can perform poorly when variables are highly correlated
#but it usually can outperform the ~Metropolis-Hastings algorithm
-s-
!!An illustration
Simple linear regression model:
$$Y_i\sim N(\alpha+\beta x_i,1),\, i=1,\ldots,30$$
*the data was generated in order to induce an high correlation between $\alpha$ and $\beta$
*improper uniform priors
*50000 iterations of a random walk M/H and a slice sampler, both conveniently tuned
-s-
|center|k
|!~Metropolis-Hastings|!Slice sampler|
|[img[mh_trace.png]]|[img[slice_trace.png]]|
|[img[mh.png]]|[img[slice.png]]|
-s-
!!Multivariate slice sampling
To sample from $\pi(\mathbf{x})=cf(\mathbf{x})$, $\mathbf{x}\in\mathbb{R}^n$, updating all components simultaneously, the interval $I$ becomes an $n$-dimensional hyperrectangle.
<div class='SVGgraph' style='margin-left:auto; margin-right:auto; width:400px; height:300px'>
initGraph({scales:[-2,5,-1,3]});
var p=[[1.1,1.1],[2,0.5],[3.5,0.25],[1,1.65],[1.1,1.1]];
curve(p,{id:'slice',fill:'orange',stroke:'none'});
rotate("slice",PI/8,{center:[2,1]});
dot([2,1],{marker:'+',label:'$x_0$',pos:'w'});
rect([1.5,0.55],[2.8,1.2]);
rect([1.5,-0.1],[2.8,0.55]);
rect([1.5,1.2],[2.8,1.85]);
text([3.9,0.8],"$S$",{fontsize:16,pos:'S',fontfill:'orange',fontweight:'bold'});
line([-2,1.7],[5,1.7],{stroke:'gray',strokedasharray:[2,2]});
line([1.8,-1],[1.8,3],{stroke:'gray',strokedasharray:[2,2]});
dot([1.8,1.7],{marker:'*',markerstroke:'red'});
line([-2,0.3],[5,0.3],{stroke:'gray',strokedasharray:[2,2]});
line([2.6,-1],[2.6,3],{stroke:'gray',strokedasharray:[2,2]});
dot([2.6,0.3],{marker:'*',markerstroke:'red'});
dot([2.3,0.8],{marker:'*',markerstroke:'green',label:'$x_1$',pos:'e'});
</div>
-s-
''Problem:'' the "stepping-out" procedure becomes too expensive -- need to check $2^n$ vertices
*Neal (2003): skip expansion -- the choice of $w_i$ is now crucial
*without the "stepping-out" procedure, the multivariate procedure works less well than applying the univariate slice sampling to each variable in turn
''Problem:'' some amount of shrinkage may be unnecessary in some directions
*Neal (2003): evaluate the gradient of $f$ at $x_0$ and shrink only in the direction of faster variation
-s-
''Two proposed solutions:''
#{{blank{Adaptive multivariate slice sampling -- Neal (2003) and Thompson and Neal (2010)
//Better adjustment to the local curvature of the density when variables are highly correlated//}}}
#{{blank{Reintroduce the "stepping-out" procedure and perform parallel computation -- Tibbits, Haran and Liechty (2009)
//The evaluation of $f$ at each vertice is done on a separate core/CPU or on a vectorized process in a GPU (graphics processing unit)//}}}
-s-
!!Further reading
*Neal, R. (2003). Slice sampling. //The Annals of Statistics//, ''31''(3), 705-767.
*Thompson, M. and Neal, R. (2010). ~Covariance-Adaptive Slice Sampling. Technical report. Department of Statistics, University of Toronto.
*Tibbits, M. M., Haran, M. and Liechty, J. C. (2009). Parallel Multivariate Slice Sampling. To appear in //Statistics and Computing//.
/***
|''Name:''|SlideShowPlugin|
|''Description:''|Creates a slide show from any number of tiddlers|
|''Author:''|Paulo Soares|
|''Contributors:''|John P. Rouillard|
|''Version:''|2.2.5|
|''Date:''|2010-09-14|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Documentation:''|[[SlideShowPlugin Documentation|SlideShowPluginDoc]]|
|''License:''|[[Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.5.0|
***/
//{{{
if(!version.extensions.SlideShowPlugin) { //# ensure that the plugin is only installed once
version.extensions.SlideShowPlugin = {installed: true};
(function($) {
config.macros.slideShow = {maxTOCLength: 30, separator:'-s-'};
config.formatters.push( {
name: "SlideSeparator",
match: "^-s-+$\\n?",
handler: function(w) {
createTiddlyElement(w.output,"hr",null,'slideSeparator');
}
});
config.macros.slideShow.text = {
label: "slide show", tooltip: "Start slide show",
quit: {label: "x", tooltip: "Quit the slide show"},
firstSlide: {label: "<<", tooltip: "Go to first slide"},
previous: {label: "<", tooltip: "Go back"},
next: {label: ">", tooltip: "Advance"},
lastSlide: {label: ">>", tooltip: "Go to last slide"},
goto: {label: "Go to slide:"},
resetClock: {tooltip: "Reset the clock"},
overlay: "overlay"
};
config.macros.slideShow.handler = function(place,macroName,params,wikifier,paramString){
var args = paramString.parseParams(null,null,false);
this.label = getParam(args,"label",this.text.label);
this.tooltip = getParam(args,"tooltip",this.text.tooltip);
var onclick = function(){config.macros.slideShow.onClick(place,paramString); return false;};
createTiddlyButton(place,this.label,this.tooltip,onclick);
return false;
}
config.macros.slideShow.onClick = function(place,paramString) {
var slide, cm = config.macros.slideShow;
var title = story.findContainingTiddler(place);
title = title ? title.getAttribute("tiddler") : null;
var args = paramString.parseParams(null,null,false);
title = getParam(args,"tiddler",title);
var argsArray = paramString.readMacroParams();
this.single = ($.inArray('single',argsArray) > -1);
this.clicks = ($.inArray('noClicks',argsArray) < 0);
this.keyboard = ($.inArray('noKeyboard',argsArray) < 0);
this.showAll = ($.inArray('showAll',argsArray) > -1);
this.cycle = ($.inArray('cycle',argsArray) > -1);
this.overlays = ($.inArray('noOverlays',argsArray) < 0);
this.theme = getParam(args,"theme");
this.tag = getParam(args,"tag");
this.toc = getParam(args,"toc","headers");
this.sort = getParam(args,"sort");
this.clockFormat = getParam(args,"clockFormat",'0hh:0mm:0ss');
this.auto = getParam(args,"auto",0);
this.header = getParam(args,"header",title);
this.footer = getParam(args,"footer","");
this.clock = getParam(args,"clock");
this.blocked = 0;
if(this.clock){
var startTime = new Date(0);
this.clockCorrection=startTime.getTimezoneOffset()*60000;
startTime = new Date();
this.clockMultiplier = 1;
this.clockInterval = 0;
var clockType= parseFloat(this.clock);
if(clockType < 0) {
this.clockMultiplier = -1;
this.clockInterval = -clockType*60000;
} else if(clockType == 0){
this.clockCorrection = 0;
startTime = new Date(0);
}
this.clockStartTime=startTime.getTime();
}
this.slides = [];
this.openTiddlers = [];
$("#tiddlerDisplay > *").each(function(){cm.openTiddlers.push($(this).attr('tiddler'))});
var count = 0;
this.slideTOC=[];
if(this.single){
if(!store.tiddlerExists(title)) return;
var newTiddler;
var content = store.getTiddlerText(title).split(cm.separator);
$.each(content, function(){
count++;
newTiddler = new Tiddler();
newTiddler.title ="TempSlide" + count;
newTiddler.tags[0] = "excludeLists";
newTiddler.text = $.trim(this);
newTiddler.fields['doNotSave']= true;
store.addTiddler(newTiddler);
cm.buildTOC(count,newTiddler.title);
cm.slides.push(newTiddler.title);
});
} else {
if(this.tag){
var content = store.getTaggedTiddlers(this.tag,this.sort);
$.each(content, function(){
count++;
cm.buildTOC(count,this.title);
cm.slides.push(this.title);
});
} else {
story.displayTiddler(null,title);
var list = $('[tiddler='+title+']').children('.viewer').find('.tiddlyLinkExisting');
$.each(list,function(){
if(!$(this).parents().hasClass("exclude")){
slide = $(this).attr('tiddlylink');
count++;
cm.buildTOC(count,slide);
cm.slides.push(slide);
}
});
}
}
this.nSlides = this.slides.length;
if(this.nSlides==0) return false;
clearMessage();
this.toggleSlideStyles();
if(!this.showAll){
//Attach the key and mouse listeners
if(this.keyboard && !$("#tiddlerDisplay").hasClass("noKeyboard")) $(document).keyup(cm.keys);
if(this.clicks){
$(document).mouseup(cm.clicker);
document.oncontextmenu = function(){return false;}
}
if(this.clock) this.slideClock=setInterval(this.setClock, 1000);
if(this.auto>0){
this.autoAdvance=setInterval(cm.next, this.auto*1000);
}
this.showSlide(1);
} else {
story.closeAllTiddlers();
story.displayTiddlers(null,this.slides);
$(".tiddler").attr("ondblclick",null);
$(document).keyup(cm.endSlideShow);
}
return false;
}
config.macros.slideShow.buildNavigator = function() {
//Create the navigation bar
var i, slidefooter = $("#controlBar")[0];
if(!slidefooter) return;
$(slidefooter).addClass("slideFooterOff noClicks");
var navigator = createTiddlyElement(slidefooter,"SPAN","navigator");
var buttonBar = createTiddlyElement(navigator,"SPAN","buttonBar");
//Make it so that when the footer is hovered over the class will change to make it visible
$(slidefooter).bind("mouseenter mouseleave", function(e){$(this).toggleClass("slideFooterOff");});
//Create the control buttons for the navigation
createTiddlyButton(buttonBar,this.text.firstSlide.label,this.text.firstSlide.tooltip,this.firstSlide,"button");
createTiddlyButton(buttonBar,this.text.previous.label,this.text.previous.tooltip,this.previous,"button");
createTiddlyButton(buttonBar,this.text.quit.label,this.text.quit.tooltip,this.endSlideShow,"button");
createTiddlyButton(buttonBar,this.text.next.label,this.text.next.tooltip,this.next,"button");
createTiddlyButton(buttonBar,this.text.lastSlide.label,this.text.lastSlide.tooltip,this.lastSlide,"button");
if(this.clock){
if(this.clock == 0){
createTiddlyElement(navigator,"SPAN","slideClock");
} else {
createTiddlyButton(navigator," ",this.text.resetClock.tooltip,this.resetClock,"button","slideClock");
}
this.setClock();
}
var index = createTiddlyElement(slidefooter,"SPAN","slideCounter");
index.onclick = this.toggleTOC;
var toc = createTiddlyElement(slidefooter,"SPAN","toc");
var tocLine;
for(i=0; i<this.slideTOC.length; i++){
$(toc).append(this.slideTOC[i][2]);
tocLine = $(toc.lastChild);
tocLine.addClass("tocLevel"+this.slideTOC[i][1]).css("cursor", "pointer").hover(function () {
$(this).addClass("highlight");}, function () {
$(this).removeClass("highlight");});
tocLine.attr("slide",this.slideTOC[i][0]);
tocLine.click(config.macros.slideShow.showSlideFromTOC);
}
//Input box to jump to specific slide
var tocItem = createTiddlyElement(toc,"DIV","jumpItem",null,this.text.goto.label);
var tocJumpInput = createTiddlyElement(tocItem,"INPUT","jumpInput");
tocJumpInput.type="text";
$(tocJumpInput).keyup(config.macros.slideShow.jumpToSlide);
}
//Used to shorten the TOC fields
config.macros.slideShow.abbreviate = function(label){
if(label.length>this.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)<=this.maxTOCLength){
label += " " + temp[j];
} else {
label += " ...";
break;
}
}
}
return label;
}
config.macros.slideShow.buildTOC = function(count,title) {
var level = 1, text;
switch(this.toc){
case "headers":
var frag = wikifyStatic(store.getTiddlerText(title));
text = frag.replace(/<div class="comment">.*<\/div>/mg,"");
var matches = text.match(/<h[123456]>.*?<\/h[123456]>/mgi);
if(matches){
for (var j=0; j<matches.length; j++){
level = matches[j].charAt(2);
text = matches[j].replace(/<\/?h[123456]>/gi,"");
text = this.abbreviate(text);
this.slideTOC.push([count,level,"<div>"+text+"</div>"]);
}
}
break;
case "titles":
text = this.abbreviate(title);
this.slideTOC.push([count,level,"<div>"+text+"</div>"]);
}
}
config.macros.slideShow.showSlideFromTOC = function(e) {
var cm = config.macros.slideShow;
var slide = parseInt(e.target.getAttribute('slide'));
$("#toc").hide();
cm.showSlide(slide);
return false;
}
config.macros.slideShow.toggleTOC = function(){
$("#toc").toggle();
$("#jumpInput").focus().val('');
return false;
}
config.macros.slideShow.isInteger = function(s){
for (var 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;
}
config.macros.slideShow.jumpToSlide = function(e){
var cm = config.macros.slideShow;
if(e.which==13){
var input= $("#jumpInput").val();
if(cm.isInteger(input) && input>0 && input<=cm.nSlides){
$("#toc").hide();
cm.showSlide(input);
} else {$("#jumpInput").val('');}
}
return false;
}
config.macros.slideShow.toggleSlideStyles = function(){
var contentWrapper = $('#contentWrapper');
if(contentWrapper.hasClass("slideShowMode")){
refreshPageTemplate();
removeStyleSheet("SlideShowStyleSheet");
if(this.theme) removeStyleSheet(this.theme);
} else {
$("#displayArea").prepend('<div id="slideBlanker" style="display:none"></div><div id="slideHeader">'+this.header+'</div><div id="slideFooter">'+this.footer+'</div><div id="controlBar"></div>');
setStylesheet(store.getRecursiveTiddlerText("SlideShowStyleSheet"),"SlideShowStyleSheet");
if(this.theme && store.tiddlerExists(this.theme)){setStylesheet(store.getRecursiveTiddlerText(this.theme),this.theme);}
this.buildNavigator();
}
contentWrapper.toggleClass("slideShowMode");
return false;
}
config.macros.slideShow.showSlide = function(n){
if(this.cycle) {
if(n>this.nSlides) {
n = 1;
} else if(n<1) {
n = this.nSlides;
}
} else {
if(n>this.nSlides || n<1) return;
}
story.closeAllTiddlers();
if(this.clock=='-'){this.resetClock();}
story.displayTiddler(null,String(this.slides[n-1]));
$(".tiddler").attr("ondblclick",null);
$("body").removeClass("slide"+this.curSlide);
this.curSlide = n;
$("body").addClass("slide"+this.curSlide);
$("#slideCounter").text(this.curSlide+"/"+this.nSlides);
if(this.overlays){
var contents = $(".viewer *");
this.numOverlays = 1;
while(1){
if(contents.hasClass(this.text.overlay+this.numOverlays)){
this.numOverlays++;
} else {break;}
}
this.numOverlays--;
this.showOverlay(0);
}
return false;
}
config.macros.slideShow.showOverlay = function(n){
var i, set, cm = config.macros.slideShow;
if(!cm.overlays || cm.numOverlays == 0 || n<0 || n>cm.numOverlays){return;}
for(i=1; i<n; i++){
set = $(".viewer "+"."+cm.text.overlay+i);
set.removeClass("currentOverlay nextOverlay");
set.addClass("previousOverlay");
}
set = $(".viewer "+"."+cm.text.overlay+n);
set.removeClass("previousOverlay nextOverlay");
set.addClass("currentOverlay");
for(i=n; i<config.macros.slideShow.numOverlays; i++){
set = $(".viewer "+"."+cm.text.overlay+(i+1));
set.removeClass("previousOverlay currentOverlay");
set.addClass("nextOverlay");
}
cm.curOverlay = n;
}
config.macros.slideShow.firstSlide = function(){
config.macros.slideShow.showSlide(1);
return false;
}
config.macros.slideShow.lastSlide = function(){
config.macros.slideShow.showSlide(config.macros.slideShow.nSlides);
return false;
}
config.macros.slideShow.next = function(){
var cm = config.macros.slideShow;
if(!cm.overlays || cm.numOverlays == 0 || cm.curOverlay == cm.numOverlays) {
cm.showSlide(cm.curSlide+1);
} else {
cm.showOverlay(cm.curOverlay+1);
}
return false;
}
config.macros.slideShow.previous = function(){
var cm = config.macros.slideShow;
if(!cm.overlays || cm.numOverlays == 0 || cm.curOverlay == 0) {
cm.showSlide(cm.curSlide-1);
cm.showOverlay(cm.numOverlays);
} else {
cm.showOverlay(cm.curOverlay-1);
}
return false;
}
config.macros.slideShow.endSlideShow=function(){
var cm = config.macros.slideShow;
if(cm.autoAdvance) {clearInterval(cm.autoAdvance);}
if(cm.clock) clearInterval(cm.slideClock);
story.closeAllTiddlers();
cm.toggleSlideStyles();
story.displayTiddlers(null,cm.openTiddlers);
$(document).unbind();
document.oncontextmenu = function(){};
$("body").removeClass("slide"+cm.curSlide);
return false;
}
// 'keys' code adapted from S5 which in turn was adapted from MozPoint (http://mozpoint.mozdev.org/)
config.macros.slideShow.keys = function(key) {
var cm = config.macros.slideShow;
switch(key.which) {
case 32: // spacebar
if(cm.auto>0 && cm.blocked==0){
if(cm.autoAdvance){
clearInterval(cm.autoAdvance);
cm.autoAdvance = null;
} else {
cm.autoAdvance=setInterval(cm.next, cm.auto*1000);
}
} else {
if(cm.blocked==0) cm.next();
}
break;
case 34: // page down
if(cm.blocked==0) cm.showSlide(cm.curSlide+1);
break;
case 39: // rightkey
if(cm.blocked==0) cm.next();
break;
case 40: // downkey
if(cm.blocked==0) cm.showOverlay(cm.numOverlays);
break;
case 33: // page up
if(cm.blocked==0) cm.showSlide(cm.curSlide-1);
break;
case 37: // leftkey
if(cm.blocked==0) cm.previous();
break;
case 38: // upkey
if(cm.blocked==0) cm.showOverlay(0);
break;
case 36: // home
if(cm.blocked==0) cm.firstSlide();
break;
case 35: // end
if(cm.blocked==0) cm.lastSlide();
break;
case 27: // escape
cm.endSlideShow();
break;
case 66: // B
$("#slideBlanker").toggle();
cm.blocked = (cm.blocked +1)%2;
break;
}
return false;
}
config.macros.slideShow.clicker = function(e) {
var cm = config.macros.slideShow;
if(cm.blocked==1 || $(e.target).attr('href') || $(e.target).parents().andSelf().hasClass('noClicks')){
return true;
}
if($("#toc").is(':visible')){
cm.toggleTOC();
} else {
if((!e.which && e.button == 1) || e.which == 1) {
cm.next();
}
if((!e.which && e.button == 2) || e.which == 3) {
cm.previous();
}
}
return false;
}
config.macros.slideShow.setClock = function(){
var cm = config.macros.slideShow;
var actualTime = new Date();
var newTime = actualTime.getTime() - cm.clockStartTime;
newTime = cm.clockMultiplier*newTime+cm.clockInterval+cm.clockCorrection;
actualTime.setTime(newTime);
newTime = actualTime.formatString(cm.clockFormat);
$("#slideClock").text(newTime);
return false;
}
config.macros.slideShow.resetClock = function(){
var cm = config.macros.slideShow;
if(cm.clock == 0) return;
var time = new Date(0);
if(cm.clockStartTime>time){
var startTime = new Date();
cm.clockStartTime=startTime.getTime();
}
return false;
}
config.shadowTiddlers.SlideShowStyleSheet="/*{{{*/\n.header, #mainMenu, #sidebar, #backstageButton, #backstageArea, .toolbar, .title, .subtitle, .tagging, .tagged, .tagClear, .comment{\n display:none !important\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 opacity: 0.9;\n filter: alpha(opacity=90)\n}\n\n.nextOverlay{\n visibility: hidden\n}\n\n.previousOverlay,.currentOverlay{\n visibility: visible\n}\n\n#displayArea{\n font-size: 250%;\n margin: 0 !important;\n padding: 0\n}\n\n#controlBar{\n position: fixed;\n bottom: 2px;\n right: 2px;\n width: 100%;\n text-align: right\n}\n\n#controlBar .button{\n margin: 0 0.25em;\n padding: 0 0.25em\n}\n\n#slideHeader{\n font-size: 200%;\n font-weight: bold\n}\n\n#slideFooter{\n position: fixed;\n bottom: 2px\n}\n\n.slideFooterOff #navigator{\n visibility: hidden\n}\n\n#slideClock{\n margin: 0 5px 0 5px\n}\n\n#slideCounter{\n cursor: pointer;\n color: #aaa\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\n#jumpItem{\n padding-left:0.25em\n}\n\n#jumpInput{\n margin-left: 0.25em;\n width: 3em\n}\n\n.tocLevel1{\n font-size: .8em\n}\n\n.tocLevel2{\n margin-left: 1em;\n font-size: .75em\n}\n\n.tocLevel3{\n margin-left: 2em;\n font-size: .7em\n}\n\n.tocLevel4{\n margin-left: 3em;\n font-size: .65em\n}\n\n.tocLevel5{\n margin-left: 4em;\n font-size: .6em\n}\n\n.tocLevel6{\n margin-left: 5em;\n font-size: .55em\n}\n/*}}}*/";
config.shadowTiddlers.SlideShowPluginDoc="The documentation is available [[here|http://www.math.ist.utl.pt/~psoares/addons.html#SlideShowPluginDoc]].";
})(jQuery)
}
//}}}
//{{{
config.macros.slideShow.text = {
label: "apresentação", tooltip: "Começar apresentação",
quit: {label: "x", tooltip: "Terminar apresentação"},
firstSlide: {label: "<<", tooltip: "Primeiro slide"},
previous: {label: "<", tooltip: "Anterior"},
next: {label: ">", tooltip: "Seguinte"},
lastSlide: {label: ">>", tooltip: "Último slide"},
goto: {label: "Ir para o slide:"},
resetClock: {tooltip: "Recomeçar relógio"},
overlay: "camada"
}
//}}}
/***
|''Name:''|SparklinePlugin|
|''Description:''|Sparklines macro|
***/
//{{{
if(!version.extensions.SparklinePlugin) {
version.extensions.SparklinePlugin = {installed:true};
//--
//-- Sparklines
//--
config.macros.sparkline = {};
config.macros.sparkline.handler = function(place,macroName,params)
{
var data = [];
var min = 0;
var max = 0;
var v;
for(var t=0; t<params.length; t++) {
v = parseInt(params[t]);
if(v < min)
min = v;
if(v > max)
max = v;
data.push(v);
}
if(data.length < 1)
return;
var box = createTiddlyElement(place,"span",null,"sparkline",String.fromCharCode(160));
box.title = data.join(",");
var w = box.offsetWidth;
var h = box.offsetHeight;
box.style.paddingRight = (data.length * 2 - w) + "px";
box.style.position = "relative";
for(var d=0; d<data.length; d++) {
var tick = document.createElement("img");
tick.border = 0;
tick.className = "sparktick";
tick.style.position = "absolute";
tick.src = "data:image/gif,GIF89a%01%00%01%00%91%FF%00%FF%FF%FF%00%00%00%C0%C0%C0%00%00%00!%F9%04%01%00%00%02%00%2C%00%00%00%00%01%00%01%00%40%02%02T%01%00%3B";
tick.style.left = d*2 + "px";
tick.style.width = "2px";
v = Math.floor(((data[d] - min)/(max-min)) * h);
tick.style.top = (h-v) + "px";
tick.style.height = v + "px";
box.appendChild(tick);
}
};
}
//}}}
<div class='SVGgraph noClicks' style='margin-left:auto; margin-right:auto; width:300px; height:75px'>
initGraph({scales:[-4,4,-0.1,0.1]});
setOptions({stroke:'black'});
path([[-4,-0.01],[-0.8,-0.01],[4,-0.01]],{marker:"-|-",markerstroke:'black',label:["","$x_0$"],pos:'S'});
line([0.8,-0.01],[2.1,-0.01],{strokewidth:4,stroke:'orange'});
line([-1.7,-0.01],[-0.15,-0.01],{strokewidth:4,stroke:'orange'});
text([3.4,-0.02],"$S$",{fontsize:16,pos:'S',fontfill:'orange',fontweight:'bold'});
path([[-1.4,0.01],[-0.9,0.01],[-0.4,0.01]],{id:'w1',marker:"|-|",markerstroke:'black',label:["","$w$"],pos:'N'});
path([[-0.4,0.01],[0.25,0.01],[0.6,0.01]],{id:'w2',marker:"--|",markerstroke:'black'});
path([[-2.4,0.01],[-2.25,0.01],[-1.4,0.01]],{id:'w3',marker:"|--",markerstroke:'black'});
</div>
/***
!Custom rules
***/
/*{{{*/
.viewer .center {margin-left:auto; margin-right:auto}
.cent {text-align:center}
.cent img{border:0px!important}
.center {text-align:center}
.floatright{float:right}
.floatleft{float:left}
.hide {display:none}
div[tags~="math"].tiddler .viewer, math {font-family:"Bitstream Vera Serif", "Times New Roman", serif; color:#000}
/*}}}*/
/***
!General
***/
/*{{{*/
body {font-family:“Bitstream Vera Sans”,“Lucida Grande”, “Trebuchet MS”,sans-serif; background:#eae7e4; color:#333}
input {font-size:100%}
.sparkline {background:none}
/*}}}*/
/***
!Backstage
***/
/*{{{*/
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0 0.5em 0 0.5em; background:#a8a88e}
#backstageArea {display:none; position:relative; overflow:hidden; z-index:150; padding:0 0.5em 0em 0.5em; font-size:90%; background:#a8a88e; color:#fff}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0; font-size:0.8em; padding:0}
#backstageButton a {padding:0 0.4em 0 0.4em; margin:0; font-size:0.7em; color:#a8a88e}
#backstageButton a:hover {background:#a8a88e; color:#333}
/*}}}*/
/***
!Messages area
***/
/*{{{*/
#messageArea {font-size:90%; border:none}
#messageArea .button {text-decoration:none; font-weight:bold; background:transparent; border:none}
/*}}}*/
/***
!Header
***/
/*{{{*/
.header {padding:2em 0em 0em 0em; background-color:#fff}
#topBar {display:block; background:#a8a88e; font-size:0.7em}
.topRight {position:absolute; top:20px; right:20px; text-align:right}
.topRight .externalLink {color:#45556a; font-size:0.8em; text-decoration:none}
.topRight .externalLink:hover{text-decoration:underline}
.topRight .tiddlyLink{color:#45556a; font-size:0.8em; font-weight:normal}
.topRight .tiddlyLink:hover{background:#eae7e4; text-decoration:underline}
.search {font-size:75%}
.searchButton{display:none}
.searchField {width:10.5em}
.siteTitle {padding-left:10px}
/*}}}*/
/***
!Top menu
***/
/*{{{*/
#topMenu {padding:0.4em 0em 0.4em 14.7em; font-size:0.9em; background:#a2aebc}
#topMenu .button, #topMenu .tiddlyLink, #topMenu tiddlyLinkExisting, #topMenu .externalLink {text-decoration:none; color:#45556a; padding:0.35em 0.8em 0.35em 0.8em; border:none}
#topMenu .button:active {background:#a2aebc}
#topMenu a:hover {color:#333; padding:0.35em 0.8em 0.35em 0.8em; background:#c6cacd}
.HideSideBarButton {font-size:75%; border:none; color:#45556a; font-weight:bold}
/*}}}*/
/***
!Main menu
***/
/*{{{*/
#mainMenu {position:relative; left:0; float:left; width:12em; text-align:left; line-height:1.5em; padding:0}
#mainMenu .tiddlyLink {border-bottom:1px solid #ccc; font-size:0.8em; color:#333; margin-right:0; padding-left:0.8em; display:block}
#mainMenu .tiddlyLink:hover {background:#fff; color:#333}
/*}}}*/
/***
!Display area
***/
/*{{{*/
#displayArea {margin:0em 14.5em 0em 13.2em}
.tagClear{clear:none}
h1 {color:#c30; border:none}
h2,h3,h4,h5 {color:#333; border:none}
hr {border:0px solid #04b; color:#04b; background-color:#04b}
.title {color: #069; border-bottom:1px dotted #069; padding-bottom:0.1em; margin-bottom:0.1em; font-weight:normal}
.tiddler {padding-bottom:1em; background:#fff; border-left:1px solid #ccc; border-right:1px solid #ccc; margin-right:1px}
.toolbar .button {border:1px solid transparent}
.toolbar .button:hover, #sidebarOptions .button:hover {border:1px solid #db4}
.viewer ul {list-style-image:url("figuras/icon_redcircle.gif")}
.viewer img {border:2px solid #e2e2e2}
.viewer {line-height:1.6em}
a {color:#069}
a:hover {color:#039; text-decoration:none; background: none}
/*}}}*/
/***
!Editor area
***/
/*{{{*/
.editor input, .editor textarea {margin-bottom:1px}
/*}}}*/
/***
!Side bar
***/
/*{{{*/
#sidebar {position:relative; float:right; display:inline}
#sidebarOptions .button {border:1px solid #eae7e4}
#sidebarOptions input{background:#fff}
.sliderPanel .txtOptionInput, .pasOptionInput {width: 16em}
#sidebarOptions .sliderPanel {background:transparent}
#sidebarTabs .button {margin:0em 0.1em; padding:0.2em 0.3em; border:1px solid #eae7e4; display:block}
#sidebarTabs .button:hover {border:1px solid #db4}
#sidebarTabs .tabSelected { background:#ffc; border:1px solid #ffc}
#sidebarTabs{margin-left:1px}
#sidebarTabs .tabUnselected {color:#999; background:#eee; border-top:solid 1px #ccc; border-left:solid 1px #ccc; border-right:solid 1px #ccc; border-bottom:none}
#sidebarTabs .tabContents {background:#ffc; border-top:1px solid #ffc; border-left:none; border-right:none; border-bottom:none}
#sidebarTabs .txtMoreTab .tabContents, #sidebarTabs .txtMoreTab .tabSelected {border:1px solid #fff; background:#fff}
#sidebarTabs .txtMoreTab .tabUnselected { background:#eee}
/*}}}*/
/***
!Footer
***/
/*{{{*/
#bar {clear:both; background:#45556a; font-size:0.7em}
#pageFooter {clear:both; background:#a8a88e; padding:0.5em 0.5em 1em 1em; color:#45556a}
#pageFooter .tiddlyLink{color:#45556a; font-size:0.7em}
#pageFooter .tiddlyLink:hover{background:#a8a88e; text-decoration:underline}
.rights{float:right; font-size:0.8em}
/*}}}*/
/***
!Printing
***/
/*{{{*/
@media print {
body {background:#fff}
#mainMenu, #sidebar, #messageArea, .tagging, .tagged, .subtitle, #pageFooter, #topMenu, #bar, #topBar, .button, .header {display:none ! important}
#displayArea {margin:0 !important}
.tiddler {border:none; padding:0 0 1.5em 0}
noscript {display:none}
}
/*}}}*/
/*{{{*/
ul.accordion, ul.accordion li, ul.accordion li ul {margin:0; padding:0; list-style-type:none;text-align:left; font-size:1em}
ul.accordion li ul {display:none}
ul.accordion li.accordion-active ul {display:block}
ul.accordion li.accordion-active a {cursor:default}
ul.accordion li.accordion-active ul li a{cursor:pointer}
ul.accordion a {display:block; padding:0em}
ul.accordion li a.tiddlyLink, ul.accordion li a.tiddlyLinkNonExisting, ul.accordion li a {font-size:0.8em; color:#333; margin-right:0; padding-left:0.8em; display:block}
ul.accordion li a {background:#eae7e4; color:#333;font-weight:bold; border-bottom: 1px solid #ccc}
ul.accordion li.accordion-active a, ul.accordion li a:hover {background:#ffc;color:#333; font-weight:bold}
ul.accordion li.accordion-active ul li {background:#eae7e4; color:#000}
ul.accordion li.accordion-active ul li div {padding:0em; background:#eae7e4}
ul.accordion li.accordion-active ul a {background:#eae7e4; color:#000;margin-left:1em}
ul.accordion li.accordion-active ul a:hover {background:#fff; color:#000}
/*}}}*/
/***
|''Name:''|ToggleSideBarMacro|
|''Description:''|Provides a button for toggling visibility of the SideBar.|
|''Author:''|Paulo Soares (based on a previous macro from Saq Imtiaz)|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Version:''|1.1|
|''Date:''|Jan 28, 2011|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/ ]]|
|''~CoreVersion:''|2.5|
***/
//{{{
(function($) {
config.macros.toggleSideBar={
mode: 'hide',
arrowShow: "◄",
arrowHide: "►",
tooltip: "Toggle sidebar"
};
config.macros.toggleSideBar.handler=function(place){
var label = (this.mode == "hide")? this.arrowShow : this.arrowHide;
createTiddlyButton(place,label,this.tooltip,this.onToggleSideBar,"HideSideBarButton");
if(this.mode == "hide"){
$('#sidebar').hide();
$('#displayArea').css({'margin-right':'1em'});
}
};
config.macros.toggleSideBar.onToggleSideBar = function(){
var cm = config.macros.toggleSideBar;
var button = this.firstChild;
var sidebar = $('#sidebar');
if(sidebar.is(':visible') ) {
$('#displayArea').css({'margin-right':'1em'});
button.data = cm.arrowShow;
} else {
$('#displayArea').css({'margin-right':''});
button.data = cm.arrowHide;
}
sidebar.toggle();
return false;
}
})(jQuery)
//}}}
[[Início|http://web.tecnico.ulisboa.pt/paulo.soares/]]
[[Login .IST|https://fenix.ist.utl.pt/]] | [[Contactos]] | <<toggleSideBar>>
{{search{Pesquisar:}}} <<search>>
//{{{
readOnly = false; // means web visitors can experiment with your site by clicking edit
config.views.editor.defaultText = ""; // don't need message when creating a new tiddler
config.macros.accordion.dropchar = "";
config.macros.toggleSideBar.tooltip = 'Mostra/esconde a barra lateral';
//}}}
Nasci no Porto em Novembro de 1966 e por lá permaneci até 1991. Durante a maior parte desse tempo frequentei várias escolas e acabei por obter uma licenciatura em Matemática, ramo de Matemática Aplicada, pela Universidade do Porto. Aí comecei também a carreira de docência como monitor da disciplina de Bioestatística no Instituto de Ciências Biomédicas Abel Salazar.
Em Fevereiro de 1991 mudei-me para Lisboa e entrei para a Secção de Álgebra e Análise do IST onde, por um semestre, dei aulas práticas de Análise Matemática II. Findo esse semestre passei para a Secção de Estatística e Aplicações, onde permaneço actualmente como professor auxiliar. Entretanto concluí o mestrado e o doutoramento em Matemática sob a orientação do [[Prof. Daniel Paulino|http://www.math.ist.utl.pt/~dpaulino/]].
[[Habilitações académicas]]
<!--{{{-->
<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>
<!--}}}-->
//{{{
config.macros.wikipedia = {};
config.macros.wikipedia.handler= function(place,macroName,params) {
if(params.length==1){
var key=params[0];
var lang="en";
} else {
var key=params[1];
var lang=params[0];
}
wikify("[["+key+"|http://"+lang+".wikipedia.org/wiki/"+key+"]]",place)
}
//}}}
!usage
{{{[img[mh.png]]}}}
[img[mh.png]]
!notes
//none//
!type
image/png
!file
!url
!data
data:image/png;base64,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
!usage
{{{[img[mh_trace.png]]}}}
[img[mh_trace.png]]
!notes
//none//
!type
image/png
!file
!url
!data
data:image/png;base64,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ZmaRrYJXpDgSyYUJScjfs5Df//73l4emhH3y4YcfNjY2Dg4OQqnoymV0dPTJJ588f/58ZeX/x957h8dVXevDM3PmTNWoj3rXqNoqtoorNsbGgI0xJA6YhBCCeQKG5NIC95Jc7i/cPITc0JJwIQRCTULHFPcid8u2ZPU+6mVmVEaa3ufM+f54H/Zz7sxoLMmyMfm0//BjSTOn7L322mu9a613lfzhD38wGAwpKSlNTU0HDx48ffr00qVLv/zyy3379kml0tkSKxqNxr/97W8xMTHR0dFffPHFkSNHPB6PTqc7dOiQ35WVSuUnn3xy4MABmHYz1JUmk+mhhx7aunUrj8d79913H374YZqmFQrFCy+84PF4MjIyDh8+fPTo0e7ubolEsnv37oMHD1ZUVMy8kPHDDz98+OGHz507V1JS8qc//WlgYCAuLm5iYuLrr78+ePDgkiVLvvjiiwMHDsTGxjIM8+yzzxoMhoSEBNIjNvRwOBxvvPHG3XffHRsbm5+f/6tf/er3v//9ihUr6urqqqqq1Gp1bm7u66+/XldXp1Aoent73377bYqikpOTZ8K6ivPm1Vdf/dOf/iSRSCQSyZdffnnw4MHy8vLa2tp33nmHpmmhUPjcc8/5LXdlZeUMJ9/r9X766afPP/98Xl6eUql84IEH3nrrraioqCNHjtTW1kZERFAU9dlnn+3bt6+wsFCj0bz44osejycpKWmGKQV4hZ/97Gdbtmyprq5+5513wNIMQXI6nTExMb///e8HBwcjIyOPHTu2d+/e2Yqoz+c7fPhwQ0ODTCa77777Pv7448rKyv379+/du5f7zESQZrXprFbrH/7wh6eeemrFihVnzpw5fPgw95mDClJw4WfnaWzbto1l2aqqqi+++OLSr8YwzP79+1977TWWZX/5y1+Oj483NTV98MEHTzzxhNPp7Orquvfeez/88EOWZb///e/P4fovvPDCuXPnyGN/9NFHN9xwQ+CV3W73Y489xrLsM888g0a+MxwbN25kWVaj0fzud787duwYy7KPPPKIy+V69913Ozs7f/CDH7Ase+rUqS1btrS3t4+Pjz/++OMzv/hXX33FsuzLL798++23q9Vqp9P5y1/+8sMPP2xqahofH7///vuffvpplmWff/75Bx98EFP35ptvzvDiOp2uvb2dYZjrr7/e7Xbfe++9AwMDZKJO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
!usage
{{{[img[slice.png]]}}}
[img[slice.png]]
!notes
//none//
!type
image/png
!file
!url
!data
data:image/png;base64,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
!usage
{{{[img[slice_trace.png]]}}}
[img[slice_trace.png]]
!notes
//none//
!type
image/png
!file
!url
!data
data:image/png;base64,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