<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml'/>
<!--}}}-->
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar +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 text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser

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

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

----
Also see AdvancedOptions
<<importTiddlers>>
|''Type:''|file|
|''URL:''|file://D:\Document\tiddlywiki_yw.htm|
|''Workspace:''|(default)|

This tiddler was automatically created to record the details of this server
<<tiddler YangWen>>
!! More about me
* <<slider mamSlider1 [[Research area]] 'Research Area' 'Click here to toggle the "Research focuses and interests"' >>
* <<slider mamSlider2 [[Work Experiences]] 'Work and other experiences' 'Click here to toggle the "Work and intern experiences"' >>
* Checkout my ...
**  [[Tech Blog|http://ywen-tech.blogspot.com/]] 
** [[TiddlyWiki notebook|tiddlywiki_yw.htm]] 
*** the file is about 500 KB, and may need a while to load for slow connections...
* HTML version of my [[resume|resume_yangwen_07.htm]] (looking for full-time position)

/%!Education
<<tiddler Education>>%/
/%
!!!Find out more...
* [[Education]]
* [[Research interests|MyResearch]]
* [[Extracurricular activities|Hobbies]]
* <<slider myrSlider MyResearch 'My Research' 'Research interests'>>
* <<slider hobSlider Hobbies 'Hobbies' 'Extracurricular Activities'>>
%/
* MIT Intramural Soccer B+ league Champions (2007, 2006)
* MIT Intramural Soccer B league Champions (2004)
* Refereed in CNASA Annual Badminton Tournament (2006) 
* ...
Details about [[Awards in Sports]].
!Academic-related Awards
!!Graduate Awards
* 2003 ''Thurber Graduate Fellowship'' of MIT
* 2003 Graduate with the Honor of ''Outstanding Graduate of Tsinghua University'' 
** awarded to 1 or 2 graduates in each department for overall achievement
* 2001 Tsinghua Scholarship of Outstanding Graduate
!!Underraduate Awards
* 2000 Awarded privilege to enter the graduate program at Computer Science and Technology Division, Dept. of Civil Engr., Tsinghua University (Admission exam waived)
* 2000 Graduate with the Honor of ''Outstanding Student of Tsinghua University''
* 1996~1999 Tsinghua Scholarship for Outstanding Student. First Prize for 3 times, Second Prize for 1 time
* 1999 Winner of Tsinghua Material Mechanics Competition, ranked in the 2nd place
* 1998 Winner of The 5th Structure Design Competition of Tsinghua University, the 9th place
* 1998 Passed the National Examination of Computer Software, obtained Rank Certificate of Computer Software Programmer
* 1996 Tsinghua Scholarship for freshman: Ranked ''No.1 in the National College Entrance Examination of China'' (among about 80 thousand students in Guangdong Province)
<<slider ahsSlider AwardsAtHighSchool 'More' 'Awards obtained during high school' >>
!Honors ...
* 2008~2009, MIT Intramural Soccer (A league) Champions: The Unbelievables
* 2007~2008, MIT Intramural Soccer (B+ league) Champions: The Unbelievables
* 2006~2007, MIT Intramural Soccer (B+ league) Champions: The Unbelievables  ([[See results|MIT IM Soccer 2006 Results]])
* 2004~2005, MIT Intramural Soccer (B+ league) Runners-up: [[The Unbelievables|http://web.mit.edu/tang/www/sports/socceru04/]]
* 2003~2004, MIT Intramural Soccer (B league) Champions: [[Tang-Soccer|http://web.mit.edu/tang/www/sports/soccer03/]]
* 1999-2000, Tsinghua University Football (Soccer, Group B) Championship Winner, Team of Dept. of Civil Engineering
----
* 2002, Champion and record-holder of Jianzi (a Chinese shuttlecock-kicking game) of Tsinghua University 
** (I forgot the final score, but it was about 200 kicks in 2 minutes)
!!Awarded when I was at Zhixin High School
* 1996 Zhixin Scholarship of Outstanding Student. Ranked 1st in the National College Entrance Examination of China (among about 80 thousand students in Guangdong Province)
* 1996 Awarded privilege to enter Tsinghua University, Zhongshan University, South China University of Tech., and Shantou University, all with Admission Exam waived
* 1995 Winner of ''National Olympic Mathematics Competition'' (National Mathematics Olympiad) of high-school students, First Prize
* 1995 Winner of National Olympic Physics Competition (National Physics Olympiad) of high-school students, Second prize
* 1994 Winner of National Olympic Mathematics Competition (National Mathematics Olympiad) of high-school students, Third Prize
* 1990~1994 Winner of some inter-city competitions, on Mathematics, Chemistry and Computer Programming, separately, altogether 7 times
!!!Old News
<<listTags Blog modified '*' limit:8 reverse>>
Official description is available at the [[MIT-Portugal Transportation Research - Intelligent Transportation Systems (ITS)|http://www.mitportugal.org/trans/transportation-systems-research/intelligent-transportation-systems.html#citymotion]] web page.

CityMotion is a research project in the [[MIT-Portugal Program|http://www.mitportugal.org/index.php]]. It started in 2007. The participants include faculty members and PhD students from three Portugal universities (IST, FCTUC, and FEUP) as well as MIT. For the MIT side, the major participants are researches at the [[ITS Lab|http://its.mit.edu]] and the [[SENSEable City Lab|http://senseable.mit.edu]].

This project will focus on the development of a knowledge infrastructure, computational models, and user applications that allow access to real-time information about the state of transportation-related resources as well as predictions regarding their future state. While the overall system developed under this project is intended to function as a whole, it includes several different modules: 

# A computational infrastructure that is based on a Geographical Information System for acquiring and parsing data that describe the state of transportation-related resources (e.g. bus and train locations, cell phone traces, road sensors, GPS tracking, weather, emergency events, and census data); 
# Data fusion engine that combines the data to extract from it additional information including predictions; 
#	A web-based service that enables different applications to access the data collected.
#	A multi-modal, multi criteria route planning application that would exemplify the capabilities of the data fusion engine and providing support to the travelling decisions of the public. The application includes a nomadic user interface that allows interaction with the route-planning application. 
#	A geographical modeling and visualization module of city dynamics. This service provides models and visualizations of city scenarios relevant both for planners and services. 

The overall objectives are:

* //Data acquisition//: obtain and parse data that describe the state of transportation-related resources in a specific Portuguese city (to be defined), building a coherent spatial framework for data fusion.
* //Data fusion//: integrate the acquired data so that software applications can access specifically relevant data without prior knowledge of the data source or type, and in order to obtain additional information from the data such as predictions. 
* //Services//: a pilot service that exemplifies the usage potential of the data collected and of the data fusion engine providing a service to citizens for making public transportation more efficient and pleasant to use, and providing support for policy making; a geographical modeling and visualization module that will use the information produced by  the data fusion engine. 
!View or Edit System Tiddlers
<<listTags systemTiddlers>>
!Check System Config
<<tag systemConfig>>
!Options
OptionsPanel
!Save
<<saveChanges>>
/***
|''Name:''|CryptoFunctionsPlugin|
|''Description:''|Support for cryptographic functions|
***/
//{{{
if(!version.extensions.CryptoFunctionsPlugin) {
version.extensions.CryptoFunctionsPlugin = {installed:true};

//--
//-- Crypto functions and associated conversion routines
//--

// Crypto "namespace"
function Crypto() {}

// Convert a string to an array of big-endian 32-bit words
Crypto.strToBe32s = function(str)
{
	var be = Array();
	var len = Math.floor(str.length/4);
	var i, j;
	for(i=0, j=0; i<len; i++, j+=4) {
		be[i] = ((str.charCodeAt(j)&0xff) << 24)|((str.charCodeAt(j+1)&0xff) << 16)|((str.charCodeAt(j+2)&0xff) << 8)|(str.charCodeAt(j+3)&0xff);
	}
	while (j<str.length) {
		be[j>>2] |= (str.charCodeAt(j)&0xff)<<(24-(j*8)%32);
		j++;
	}
	return be;
};

// Convert an array of big-endian 32-bit words to a string
Crypto.be32sToStr = function(be)
{
	var str = "";
	for(var i=0;i<be.length*32;i+=8)
		str += String.fromCharCode((be[i>>5]>>>(24-i%32)) & 0xff);
	return str;
};

// Convert an array of big-endian 32-bit words to a hex string
Crypto.be32sToHex = function(be)
{
	var hex = "0123456789ABCDEF";
	var str = "";
	for(var i=0;i<be.length*4;i++)
		str += hex.charAt((be[i>>2]>>((3-i%4)*8+4))&0xF) + hex.charAt((be[i>>2]>>((3-i%4)*8))&0xF);
	return str;
};

// Return, in hex, the SHA-1 hash of a string
Crypto.hexSha1Str = function(str)
{
	return Crypto.be32sToHex(Crypto.sha1Str(str));
};

// Return the SHA-1 hash of a string
Crypto.sha1Str = function(str)
{
	return Crypto.sha1(Crypto.strToBe32s(str),str.length);
};

// Calculate the SHA-1 hash of an array of blen bytes of big-endian 32-bit words
Crypto.sha1 = function(x,blen)
{
	// Add 32-bit integers, wrapping at 32 bits
	add32 = function(a,b)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF);
		var msw = (a>>16)+(b>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Add five 32-bit integers, wrapping at 32 bits
	add32x5 = function(a,b,c,d,e)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF)+(c&0xFFFF)+(d&0xFFFF)+(e&0xFFFF);
		var msw = (a>>16)+(b>>16)+(c>>16)+(d>>16)+(e>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Bitwise rotate left a 32-bit integer by 1 bit
	rol32 = function(n)
	{
		return (n>>>31)|(n<<1);
	};

	var len = blen*8;
	// Append padding so length in bits is 448 mod 512
	x[len>>5] |= 0x80 << (24-len%32);
	// Append length
	x[((len+64>>9)<<4)+15] = len;
	var w = Array(80);

	var k1 = 0x5A827999;
	var k2 = 0x6ED9EBA1;
	var k3 = 0x8F1BBCDC;
	var k4 = 0xCA62C1D6;

	var h0 = 0x67452301;
	var h1 = 0xEFCDAB89;
	var h2 = 0x98BADCFE;
	var h3 = 0x10325476;
	var h4 = 0xC3D2E1F0;

	for(var i=0;i<x.length;i+=16) {
		var j,t;
		var a = h0;
		var b = h1;
		var c = h2;
		var d = h3;
		var e = h4;
		for(j = 0;j<16;j++) {
			w[j] = x[i+j];
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=16;j<20;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=20;j<40;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k2);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=40;j<60;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),(b&c)|(d&(b|c)),w[j],k3);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=60;j<80;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k4);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}

		h0 = add32(h0,a);
		h1 = add32(h1,b);
		h2 = add32(h2,c);
		h3 = add32(h3,d);
		h4 = add32(h4,e);
	}
	return Array(h0,h1,h2,h3,h4);
};


}
//}}}
[[About Me]]
/***
|''Name:''|DeprecatedFunctionsPlugin|
|''Description:''|Support for deprecated functions removed from core|
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};

//--
//-- Deprecated code
//--

// @Deprecated: Use createElementAndWikify and this.termRegExp instead
config.formatterHelpers.charFormatHelper = function(w)
{
	w.subWikify(createTiddlyElement(w.output,this.element),this.terminator);
};

// @Deprecated: Use enclosedTextHelper and this.lookaheadRegExp instead
config.formatterHelpers.monospacedByLineHelper = function(w)
{
	var lookaheadRegExp = new RegExp(this.lookahead,"mg");
	lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = lookaheadRegExp.exec(w.source);
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var text = lookaheadMatch[1];
		if(config.browser.isIE)
			text = text.replace(/\n/g,"\r");
		createTiddlyElement(w.output,"pre",null,null,text);
		w.nextMatch = lookaheadRegExp.lastIndex;
	}
};

// @Deprecated: Use <br> or <br /> instead of <<br>>
config.macros.br = {};
config.macros.br.handler = function(place)
{
	createTiddlyElement(place,"br");
};

// Find an entry in an array. Returns the array index or null
// @Deprecated: Use indexOf instead
Array.prototype.find = function(item)
{
	var i = this.indexOf(item);
	return i == -1 ? null : i;
};

// Load a tiddler from an HTML DIV. The caller should make sure to later call Tiddler.changed()
// @Deprecated: Use store.getLoader().internalizeTiddler instead
Tiddler.prototype.loadFromDiv = function(divRef,title)
{
	return store.getLoader().internalizeTiddler(store,this,title,divRef);
};

// Format the text for storage in an HTML DIV
// @Deprecated Use store.getSaver().externalizeTiddler instead.
Tiddler.prototype.saveToDiv = function()
{
	return store.getSaver().externalizeTiddler(store,this);
};

// @Deprecated: Use store.allTiddlersAsHtml() instead
function allTiddlersAsHtml()
{
	return store.allTiddlersAsHtml();
}

// @Deprecated: Use refreshPageTemplate instead
function applyPageTemplate(title)
{
	refreshPageTemplate(title);
}

// @Deprecated: Use story.displayTiddlers instead
function displayTiddlers(srcElement,titles,template,unused1,unused2,animate,unused3)
{
	story.displayTiddlers(srcElement,titles,template,animate);
}

// @Deprecated: Use story.displayTiddler instead
function displayTiddler(srcElement,title,template,unused1,unused2,animate,unused3)
{
	story.displayTiddler(srcElement,title,template,animate);
}

// @Deprecated: Use functions on right hand side directly instead
var createTiddlerPopup = Popup.create;
var scrollToTiddlerPopup = Popup.show;
var hideTiddlerPopup = Popup.remove;

// @Deprecated: Use right hand side directly instead
var regexpBackSlashEn = new RegExp("\\\\n","mg");
var regexpBackSlash = new RegExp("\\\\","mg");
var regexpBackSlashEss = new RegExp("\\\\s","mg");
var regexpNewLine = new RegExp("\n","mg");
var regexpCarriageReturn = new RegExp("\r","mg");

}
//}}}
-- ''Dy''namic ''N''etwork ''A''ssignment for ''M''anagement of ''I''nformation to ''T''ravelers

Quoting [[ITS Website|http://web.mit.edu/its/dynamit.html]]:

> DynaMIT is a state-of-the-art real-time computer system designed to effectively support the operation of an Advanced Traveler Information System (ATIS) and an Advanced Traffic Management Systems (ATMS) at a Traffic Management Center (TMC). Sponsored by the Federal Highway Administration (FHWA) with Oak Ridge National Laboratories (ORNL) as the program manager, DynaMIT was the result of several years of intense research and development at the Intelligent Transportation Systems Program, Massachusetts Institute of Technology.

In short, DynaMIT is a real-time traffic estimation and prediction system based on dynamic traffic assignment (DTA). Compared with other prediction systems that rely on statistical techniques, DTA based approach offers the advantage of being able to model driver behavior and response to guidance.
!! ~DynaMIT-R and ~DynaMIT-P
* DynaMIT-R and DynaMIT-P refer to the "real-time" version and "planning" version of DynaMIT, respectively.

!! ~DynaMITmpi
* This is (for now) the unofficial name for my parallel version of DynaMIT, using MPI for parallel processing. Initial evaluation of this version shows good results and is used as a prototype to prove the concept of Scalable Dynamic Traffic Assignment.
!! ~DynaMIT-E
* This refers to a general framework we developed for using DynaMIT to evaluate emergency evacuation plans. Details available in the TRB paper Balakrishna, Wen, Antoniou, and Ben-Akiva (2008). To be published on TRR.

!! Miscellaneous
* DynaMIT has been evaluated in several places in the US, including Irvine, CA, Hampton Roads, VA, [[Los Angeles, CA|DynaMIT at LA]], and [[Lower Westchester County, NY|http://maps.google.com/staticmap?center=41.012345,-73.750000&zoom=11&size=450x480&maptype=mobile&markers=40.702147,-74.015794,blues%7C40.711614,-74.012318,greeng%7C40.718217,-73.998284,redc&key=ABQIAAAABNKWrI_TvxNiBnyiHpL07BRsJji6Mdgnm2pkbtcvjpxdjPlvfhQTkTnKw_tI5AAazIZcLp4Lt8N71w]]. 
* I have a vague impression that DynaMIT has also been applied in Europe (Southampton, UK), Asia (Korea, Japan, and Malaysia),  and Africa (South Africa).  I need to confirm this with Rama and Costantinos, though.
* A [[flash demo|http://web.mit.edu/wenyang/www/DynaMIT_LA_new3.htm]] I made some time ago (2006?)
* [[Gif animation of xdta|DynaMIT and MITSIM Animations]], the "prehistoric" GUI for DynaMIT.
* DynaMIT: the downtown Los Angeles network.
[img[LA network in DynaMIT GUI (xdta)|http://web.mit.edu/wenyang/www/pics/DynaMITdemo.gif]]
* MITSIMLab: the Boston CA/T ("big-dig" project) network
[img[The CA/T ("big-dig") project in MITSIM GUI (xmitsim)|http://web.mit.edu/wenyang/www/pics/MITSIM_CAT.gif]]
!! Background
An on-line evaluation of DynaMIT was done in South Park area of downtown Los Angeles (Sep 2005 ~ Jan 2006).  In this case study, DynaMIT-R used both off-line (historical) and on-line (surveillance) data to estimate the state of the network (every 5 minutes) and predict the future travel time (up to 30 minutes ahead). 
!! Network
The network is shown [[here|http://web.mit.edu/wenyang/www/pics/LAmap4.jpg]] (from [[Google Maps|http://maps.google.com/maps?hl=en&ie=UTF8&om=1&z=14&ll=34.037796,-118.27486&spn=0.032291,0.086517&iwloc=A]])  in case you cannot see the below map (powered by [[Google Static Maps API|http://code.google.com/apis/maps/documentation/staticmaps/]]):
[img[The LA network|http://maps.google.com/staticmap?center=34.038934,-118.269024&zoom=14&size=512x512&maptype=mobile&markers=40.702147,-74.015794,blues%7C40.711614,-74.012318,greeng%7C40.718217,-73.998284,redc&key=ABQIAAAABNKWrI_TvxNiBnyiHpL07BRsJji6Mdgnm2pkbtcvjpxdjPlvfhQTkTnKw_tI5AAazIZcLp4Lt8N71w]]
* Characteristics for the South Park area
** Freeways
** Signalized arterials
** Staples Center, etc.
* Network attributes
** 243 nodes 
** 606 links 
** 1129 OD pairs
** 203 sensors
** ~80,000 vehicles (in 30-minute horizon)
!! Demo
A flash demo is available [[here|http://web.mit.edu/wenyang/www/DynaMIT_LA_new3.htm]].
(You may need an [[Adobe Flash Player|http://www.adobe.com/products/flashplayer]] to see this demo.)
!! Screenshot
A screenshot of the xdta (DynaMIT GUI) is shown below:
[img[LA network in DynaMIT GUI (xdta)|http://web.mit.edu/wenyang/www/pics/sc.png]]
* Animation 
** Displaying minute-by-minute predicted density for 5:15 ~ 5:45 AM, based on information available at 5:15 AM.
[img[LA network in DynaMIT GUI (xdta)|http://web.mit.edu/wenyang/www/pics/DynaMITdemo.gif]]

It refers to the real-time version of DynaMIT. (In contrast, the planning version of DynaMIT is usually referred to as DynaMIT-P.)

See [[DynaMIT at LA]] for its recent application in downtown Los Angeles.
* 06/2005 - Present, Massachusetts Institute of Technology, Cambridge, MA
** Ph. D candidate of CEE Systems Program. See [[My Research]] for details.
** Dissertation Topic: Scalability of Dynamic Traffic Assignment.
** Cumulative GPA: 5.0/5.0
** Relevant Courses: System Optimization, Software Engineering, Computer Algorithms in System Engineering, Advanced Demand Modeling, Discrete Choice Analysis, Modeling & Simulation, Database and Systems Integration Technologies, Web System Architecting, Microeconomics, Finance Theory, Operations Research, Transportation Economics
*** Details at [[List of courses|http://spreadsheets.google.com/pub?key=pInHVrxI0_hdN3dqkDo0LEw]]
* 08/2003 - 06/2005, Massachusetts Institute of Technology, Cambridge, MA
** Graduate student in Dept. of CEE. Major in Information Technology 
** Since 2005, IT program and the Transportation program have merged into a new doctoral program, the //Civil and Environmental Engineering Systems// program
* 09/2000 - 07/2003, Tsinghua University, Beijing, China
** M.S. in Civil Engineering. Major in Structure Engineering (Computer Science & Technology Division)
* 09/1996 – 07/2000, Tsinghua University, Beijing, China
** B.S. in Civil Engineering. Major in Structure Engineering
!Extracurricular Activities
* Sports
** Soccer (a.k.a. Football all over the world except America... Prefer playing as Mid-fielder) 
** Badminton
** [[JianZi|http://en.wikipedia.org/wiki/Jianzi]] (One of the traditional Chinese sports. I do not know how it is officially translated...maybe a Shuttlecock-kicking game?)
* Others
** Photographing 
** Music (Prefer classic, but like popular as well)
** Programming (Coding is fun)
** New software testing (Enjoy learning new ways to do my job better!)
* More than FUN: See [[prizes I won in sports|Awards in Sports]] <<smiley :-)>>

!! Recent activities
* Our Unbelievables won 4:3 in penalty kick in the IM Soccer A League 2008~2009 Finals on 12/13/2008, claiming championship title at first attempt
* Our Unbelievables won 4:2 in the IM Soccer B+ League 2007~2008 Finals on 5/17/2008, claiming championship title for the second straight season
* Weekly soccer practice
* Camping in Acadia National Park (9/8/2007)
* Cycling on the Golden Gate Bridge (6/26/2007)
* Paintball in [[Windham, NH|http://www.canobiepaintball.com]]
* Referee in CNASA CUP/MITCAST 2006 3rd Annual Badminton Tournament (9/3/2006)
* Kayaking at Essex River (8/13/2006)
* Taken from http://www.bracketmaker.com/tlist.cfm?tid=182627
!! B+ League
[img[B+ League Playoffs Bracket List, 2006|http://web.mit.edu/wenyang/www/pics/20061119_IM Soccer B+ League.png]]
!! B League
[img[B League Playoffs Bracket List, 2006|http://web.mit.edu/wenyang/www/pics/20061119_IM Soccer B League.png]]
* In one of the Quarterfinals,  the Dragons lost to the Jokers, who evetually won the Championship of B League.
Two summer session courses will be given by Professor Ben-Akiva through the MIT Professional Institute:
* 14.61s: Individual Choice Behavior:  Theory and Application of Discrete Choice Analysis (June 19-23, 2006)
* 1.10s: Modeling and Simulation of Transportation Networks (July 31 - August 4, 2006)

Reference: http://mit.edu/its/courseevent.html

!! Course description: 14.61s

The development of discrete choice models represents a significant advance in the analysis of individual choice behavior. Recent applications to predict changes in demand and market shares include such diverse areas as: choice of travel mode, coffee brand, telephone service, soft drinks and other foods, and choice of durables such as automobiles, air conditioners and houses. Discrete (or qualitative) choice analysis was initially developed by researchers in psychology, but has been extended to apply to choice problems in many fields. The most popular form of these analysis techniques, logit analysis, has recently received significant attention in marketing research and offers considerable promise as a new tool to guide product positioning, pricing, product concept testing, and many other areas of strategic and tactical interest.

This one-week program undertakes an in-depth study of discrete choice models and their applications. It provides participants with the practical tools necessary for applying new discrete choice techniques. By examining actual case studies of discrete choice methods students will be familiarized with problems of data collection, model formulation, testing, and forecasting and will gain hands-on application experience by applying commonly available software to estimate and test discrete choice models from real data bases. The course will emphasize applications of discrete choice methods to strategic and tactical marketing and to policy-related problems.

!! Course Description: 1.10s

Modeling and simulation methods are essential elements in the design, evaluation, and operation of transportation systems. Congestion problems in cities worldwide have prompted at all levels of government and industry a proliferation of interest in Intelligent Transportation Systems (ITS) that include advanced supply and demand management techniques. Such techniques include real-time traffic control measures, and real-time traveler information and guidance systems whose purpose is to assist travelers in making departure time, mode and route choice decisions.

Transportation researchers around the world have in recent years devoted their attention to developing models and methods for use in the design and operations of effective traffic management systems. This course draws heavily on the results of recent research and is sponsored by the Intelligent Transportation Systems Program at the Massachusetts Institute of Technology (MIT). The course instructors represent - in addition to MIT - Princeton University; Swiss Institute of Technology, Lausanne; University of Naples; University of Montreal; University of Massachusetts, Lowell; Volpe National Transportation Systems Center; University of Texas, Austin; Ohio State University; and Technical University of Crete.

The course lecturers have studied in depth all aspects of dynamic traffic management. They have developed both microscopic and mesoscopic simulation models along with dynamic simulation-assignment models with multiple user classes for ITS applications. Analytical dynamic traffic assignment models are also being developed and extensive research on computational aspects, such as shortest path computations, has been conducted. In addition, extensive research in estimation and prediction of origin to destination (O-D) flows has occurred throughout the past decade and several versions of a real-time O-D model have been developed. Travel choice models have been under development for the past two decades, with current emphasis on driver behavior in the presence of information and the use of multimedia tools for the collection of related choice data. Researchers are also addressing congestion pricing issues. Like other demand management schemes, congestion pricing and traveler information systems can be used to directly influence people's departure-time, route, mode, and destination choice, as well as their decision to travel.

Some of the products garnered from research projects at various universities and institutions are currently in a relatively mature state and can be utilized by practitioners in the field. Traffic simulation and dynamic traffic assignment techniques, for instance, have proven their usefulness both in managing traffic and in evaluating various management systems prior to bringing them on line.

This one-week program studies in depth a suite of traffic models and modeling methods and their application to designing, evaluating, and operating real-time traffic management systems. Participants learn about origin-destination estimation and prediction for real-time applications; dynamic traffic assignment methods; traffic flow models; traffic control and guidance systems; and off-line evaluation methods using traffic simulation. The program includes demonstration of existing software. Applications include both realistic and hypothetical situations.
{{{
<meta name="description" content="Website of Yang Wen at MIT ITS Lab">
<meta name="keywords" content="Yang, Wen, wenyang, CEE, Civil, MIT, wenyang00, warmsun">
}}}
/***
|''Name:''|LegacyStrikeThroughPlugin|
|''Description:''|Support for legacy (pre 2.1) strike through formatting|
|''Version:''|1.0.2|
|''Date:''|Jul 21, 2006|
|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|
|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|
|''License:''|[[BSD open source license]]|
|''CoreVersion:''|2.1.0|
***/

//{{{
// Ensure that the LegacyStrikeThrough Plugin is only installed once.
if(!version.extensions.LegacyStrikeThroughPlugin) {
version.extensions.LegacyStrikeThroughPlugin = {installed:true};

config.formatters.push(
{
	name: "legacyStrikeByChar",
	match: "==",
	termRegExp: /(==)/mg,
	element: "strike",
	handler: config.formatterHelpers.createElementAndWikify
});

} //# end of "install only once"
//}}}
| MIT |c
|>| ! Course |
| Stellar |http://stellar.mit.edu |
| Open Course Ware |http://ocw.mit.edu |
| ~WebSIS |http://student.mit.edu |
|>| ! Computing |
| Athena Clusters & Printers |http://web.mit.edu/olh/Clusters |
|>| ! Life |
| Personal web page |http://web.mit.edu/wenyang/www |
| Chinese Student and Scholar Association |http://cssa.mit.edu |
| Card Office |http://web.mit.edu/mitcard/ |

| Boston |c
|>| ! Transportation |
| MBTA |http://www.mbta.com/ |
| Logan Airport (BOS) |http://www.boston-bos.com |
|>| ! Weather |
| Cambridge Weather |http://weather.yahoo.com/forecast/USMA0066_c.html |
|>| ! Scene |
| Boston Harbor Islands |http://www.bostonislands.org |
| New England Holocaust Memorial |http://www.nehm.com/contents/niemoller.html |
* Scientific 
** [[Matlab Documentation|http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.shtml]]
** [[Matlab Compiler|http://www.mathworks.com/products/compiler]]
Click here to see the list of macro enabled: <<tag systemConfig>>
//{{{
// listtags tagname * or # or nothing
// adding parameters to limit number of items (limit:number)
// adding parameters to reverse order (reverse)
// YW 2/2/2006: use var to declare variables to avoid crash in Firefox 1.5.0.1

version.extensions.listTags = {major: 0, minor: 1, revision: 0};
config.macros.listTags = { text: "" };
config.macros.listTags.handler = function(place,macroName,params)
{ var limit=0;
 var reverse; 
 for(var t=0; t<params.length; t++) {
 var type = params[t].split(":")[0].toLowerCase();
 if (type == "limit")
 limit = parseInt(params[t].split(":")[1]);
 if (type == "reverse")
 reverse= true;
 else
 reverse = false;
 }
 var tagged = store.getTaggedTiddlers(params[0],params[1]); //Second parameter is field to sort by (eg, title, modified, modifier or text)

var string = "";
if (limit==0) limit = tagged.length; else limit=(limit>tagged.length) ? tagged.length : limit;

 if (reverse==true) {
for(var r=tagged.length-1;r>=(tagged.length-limit)&&r>=0;r--) {
 if(params[2]) string = string + params[2] + " ";
 string = string + "[[" + tagged[r].title + "]]\n";
}
 } else {
for(var r=0;r<limit;r++) {
 if(params[2]) string = string + params[2] + " ";
 string = string + "[[" + tagged[r].title + "]]\n";
}
 }

wikify(string, place, null, null);
}
//}}}
* Bracket list taken from http://www.bracketmaker.com/tlist.cfm?tid=182627
* MIT Intramural Soccer official website at http://web.mit.edu/athletics/www/intramurals/soccer/index.html
!! B+ League
[img[B+ League Playoffs Bracket List, 2006|http://web.mit.edu/wenyang/www/pics/20061119_IM Soccer B+ League.png]]
!! B League
[img[B League Playoffs Bracket List, 2006|http://web.mit.edu/wenyang/www/pics/20061119_IM Soccer B League.png]]
* In one of the Quarterfinals,  the Dragons lost to the Jokers, who evetually won the Championship of B League.
http://www.mitportugal.org/index.php
MITSIMLab is an open-source simulation laboratory developed by the MIT Intelligent Transportation Systems (ITS) Lab. It has been used heavily by both researchers and private consultants for conducting detailed transportation systems analyses for Boston's "Big Dig" project, and other large networks such as Des Moines, the Lincoln Tunnel (NYC) and Stockholm.

MITSIMLab has been developed in C++ on the Linux operating system. It can be download at http://mit.edu/its/MITSIMLabOS.html

See also: http://mit.edu/its/mitsimlab.html
Discussion board for MITSIMLab on Yahoo! Groups: http://groups.yahoo.com/group/MITSIMLab/ 

* [[Gif animation of MITSIMLab|DynaMIT and MITSIM Animations]].
<<displayDefaultTiddlers 'Home Page'>>
----
[[About Me|About Me]]
[[Education]]
[[Research|My Research]]
[[Publication]]
[[Teaching]]
[[Hobbies]]
[[Awards]]
[[Pictures]]
[[Links]]
^^[[Edit MainMenu|MainMenu]]^^
----
<<newTiddler>>
<<newJournal "DD MMM YYYY" Blog>>
----
<<smiley :-)>>[[Wiki|tiddlywiki_yw.htm]]
----
[[Tech blog|http://ywen-tech.blogspot.com/]]
----
^^[[Edit Configurations|Configurations]]^^
^^TiddlyWiki V<<version>>^^
^^What is TiddlyWiki?^^
[img[ |http://counter.mit.edu/tally]]
!! Intelligent Transportation Systems Lab, MIT,	02/2004 - present
Selected Publications: [[see here|Publication]]
Follow the link for research done at [[Intelligent Transportation Systems Lab|http://its.mit.edu]].
Screenshots of the tools we use are available at [[DynaMIT and MITSIM Animations]]
* ''Scalability of Dynamic Traffic Assignment systems'' ([[Dissertation|PhD Thesis: Scalability of Dynamic Traffic Assignment]])
** Enhanced the DynaMIT system, a Dynamic Traffic Assignment (DTA) system for real-time traffic estimation and prediction, written in C++.  
*** Identified major bottlenecks through profiling studies.  
*** Developed more efficient algorithms.  
*** Implemented new O-D estimation algorithm (50+ times faster). 
*** Redesigned and implemented several core modules resulting in 10+ times overall performance boost.
** Designed adaptive load-balancing algorithms for parallel simulation in DTA systems
** Developed the parallel computing version of DynaMIT, using Message Passing Interface ([[MPI|http://www.mpi-forum.org/]]) library.
* ''Data fusion for intelligent transportation systems'' (on-going)
** Developed models to use real-time travel time data for traffic estimation and prediction.
*** Designed architectures to use cell phone data and floating car (GPS-equipped taxi fleet) data for travel demand estimation
*** Case study: CityMotion, data fusion and a multi-modal, multi criteria, predictive, stochastic, route-planning application.
* ''Application of on-line (real-time) DTA systems''
** Designed on-line DTA system architecture. 
** Developed functionalities & interfaces for on-line operations. 
** Deployed DynaMIT at Los Angeles Department of Transportation ([[LADOT|http://trafficinfo.lacity.org/]]). Integrated it with LADOT’s traffic surveillance and control system. See [[here|http://web.mit.edu/wenyang/www/tiddlywiki_yw.htm#%5B%5BDynaMIT%20at%20LA%5D%5D]] for details.<<smiley ;-)>>
* ''Calibration of traffic simulation models''
** Implemented algorithms in Matlab to calibrate parameters in demand & supply models of traffic simulation on large-scale networks.  
*** Assignment-matrix based algorithms
*** Simultaneous Perturbation Stochastic Approximation (SPSA)
** Performed quantitative analysis on traffic assignment models.
* ''Evaluation of traffic management strategies and route guidance''
** Setup the closed-loop system for evaluation
*** DynaMIT is used to generate predictive route guidance and simulate traffic management strategies
*** MITSIMLab is used as a laboratory or test-bed for the real world.
** Case studies 
*** [[Boston emergency evacuation planning|http://web.mit.edu/wenyang/www/pics/boston_evac_density.png]]
*** Variable Message Signs (VMS) evaluation in [[Lower Westchester County, NY|http://maps.google.com/staticmap?center=41.012345,-73.750000&zoom=11&size=450x480&maptype=mobile&markers=40.702147,-74.015794,blues%7C40.711614,-74.012318,greeng%7C40.718217,-73.998284,redc&key=ABQIAAAABNKWrI_TvxNiBnyiHpL07BRsJji6Mdgnm2pkbtcvjpxdjPlvfhQTkTnKw_tI5AAazIZcLp4Lt8N71w]]

!! Computer Engineering & Application Lab, Dept. of Civil Engr., Tsinghua University,	2000 - 2003
* Developed algorithms for modeling real-time interactive simulation of structures.
<<slider ahsSlider PreviousResearch 'More' 'Research done at Tsinghua University' >>
温阳 

* In Chinese, the meaning of my name is "warm sun".
* In case your brower cannot display Chinese fonts, here is a GIF version: <<smiley WEN>><<smiley YANG>>
#996633
<div class='header' macro='gradient vert #993333 #333333'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
(defended on September 26, 2008)

!! Abstract

This research develops a systematic approach to analyze the computational performance of Dynamic Traffic Assignment (DTA) models and provides solution techniques to improve their scalability for on-line applications for large-scale networks.

DTA models for real-time use provide short-term predictions of network status and generate route guidance for travelers. The computational performance of such systems is a critical concern. Existing methodologies, which have limited capabilities for on-line large-scale applications, use single-processor configurations that are less scalable, and rely primarily on trade-offs that sacrifice accuracy for improved computational efficiency.

In the proposed scalable methodology, algorithmic analyses are first used to identify the system bottlenecks for large-scale problems. Our analyses show that the computation time of DTA systems for a given time interval depends largely on a small set of parameters. Important parameters include the number of origin-destination (OD) pairs, the number of sensors, the number of vehicles, the size of the network, and the number of time-steps used by the simulator. Then scalable approaches are developed to solve the bottlenecks. A constraint generalized least-squares solution enabling efficient use of the sparse-matrix property is applied to the dynamic OD estimation, replacing the Kalman-Filter solution or other full-matrix algorithms. Parallel simulation with an adaptive network decomposition framework is proposed to achieve better load-balancing and improved efficiency. A synchronization-feedback mechanism is designed to ensure the consistency of traffic dynamics across processors while keeping communication overheads minimal.

The proposed methodology is implemented in DynaMIT, a state-of-the-art DTA system. Profiling studies are used to validate the algorithmic analysis of the system bottlenecks. The new system is evaluated on two real-world networks under various scenarios. Empirical results of the case studies show that the proposed OD estimation algorithm is insensitive to an increase in the number of OD pairs or sensors, and the computation time is reduced from minutes to a few seconds. The parallel simulation is found to maintain accurate output as compared to the sequential simulation, and with adaptive load-balancing, it considerably speeds up the network models even under non-recurrent incident scenarios. The results demonstrate the practical nature of the methodology and its scalability to large-scale real-world problems.


!! Thesis Supervisor: 
Moshe E. ~Ben-Akiva, Edmund K. Turner Professor of Civil and Environmental Engineering

!! Full text

Quoting from [[Specifications for Thesis Preparation 2008-2009|http://libraries.mit.edu/archives/thesis-specs/]] by the MIT Libraries:
<<<
Additionally, the student is authorized to post electronic versions of the student's own thesis, in whole or in part, on the World Wide Web. Any further publication of the thesis in whole or in part shall be made only with the authorization of the Technology Licensing Office, in consultation with the head of the department or course in which the student was registered when the thesis was accepted.
<<<
A electronic copy of the dissertation can be found here: [[Yang Wen: Scalability of Dynamic Traffic Assignment|http://web.mit.edu/wenyang/www/wen_phdthesis.pdf]]. &copy; Massachusetts Institute of Technology. All rights reserved.
* Photos of places I recently visited: [[picasaweb|http://picasaweb.google.com/wenyang00]]
* NY network
[img[NY network: Lower Westchester County|http://maps.google.com/staticmap?center=41.012345,-73.750000&zoom=11&size=450x480&maptype=mobile&markers=40.702147,-74.015794,blues%7C40.711614,-74.012318,greeng%7C40.718217,-73.998284,redc&key=ABQIAAAABNKWrI_TvxNiBnyiHpL07BRsJji6Mdgnm2pkbtcvjpxdjPlvfhQTkTnKw_tI5AAazIZcLp4Lt8N71w]]
* Fireworks
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0049-R320.JPG]]
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0057-R320.JPG]]
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0058-R320.JPG]]
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0060-R320.JPG]]
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0063-R320.JPG]]
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0065-R320.JPG]]
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0142-R320.JPG]]
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0174-R320.JPG]]
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0175-R320.JPG]]
[img[Boston Fireworks, July 4th, 2006|http://web.mit.edu/wenyang/www/pics/fireworks/DSCN0176-R320.JPG]]
* 1000 island lake
[img[Yang, July 2006|http://web.mit.edu/wenyang/www/pics/20060626wy@HeartIsland_320.jpg]]
* 11/2001 – 07/2003, Project Chief Developer, Tsinghua University
** Research on 3D modeling of complicated building structures, focused on express modeling and Virtual Reality real-time interactive simulation for complicated structures.
** Research on CAD Neutral Model, the XML based presentation of construction information
** Provided automatic detection of interferences within the structural system and conflicts among the designs of different specialties. 
* 09/2000 – 10/2001, Research Assistant and Project Participant, Tsinghua University 
** Research on Scheme for Disaster Prevention and Reduction in TEDA, work for application of NNSF supported project Modeling and Disaster Prevention of Earthquake Induced Fires.
* 02/2000 – 06/2000, Research Assistant, Tsinghua University 
** Research on Crack Control System for ~Early-Age Concrete.
** Develop the 4D Modeling ~Sub-System in the Crack Control System for Concrete.
* 11/1999 – 03/2000, Student Research Training Program, Tsinghua University 
** Develop an Information Management System for Petroleum Geophysical Exploration based on GeoMedia GIS system.
!!Selected Publications (refereed)

!!! Refereed journals
* ''Yang Wen'', {{{Ramachandran Balakrishna}}}, {{{Moshe Ben-Akiva}}}, and {{{Scott Smith}}} (2006). 'Online deployment of dynamic traffic assignment: architecture and run-time management', //IEE Proceedings Intelligent Transport Systems// ''153''(1): 76-84. 

** Important note for the [[IEE Proceedings ITS|http://www.iee.org/Publish/Journals/ProfJourn/Proc/ITS/]] journal, quoting from their website:
<<<
Following the merger on March 31st 2006 between the IEE (Institution of Electrical Engineers) and the IIE (The Institution of Incorporated Engineers) to form the Institution of Engineering and Technology, with effect from 2007, the IEE Proceedings suite of journals will change name to reflect the fact that they are now published by the Institution of Engineering and Technology. IEE Proceedings Intelligent Transport Systems will be published as IET Intelligent Transport Systems from 2007 onwards, starting at Volume 1, Issue 1. The new Print ISSN and Online ISSN for this new title are as follows:
    * Print ISSN: 1751-956X
    * Online ISSN: 1751-9578
<<<

* {{{Moshe Ben-Akiva}}}, {{{Jon Bottom}}}, {{{Song Gao}}}, {{{Haris N. Koutsopoulos}}}, and ''Yang Wen'' (2007). 'Towards disaggregate dynamic travel forecasting models', //Tsinghua Science and Technology//, ''12''(2): 115-130.  ([[ISSN 1007-0214|http://qhxb.lib.tsinghua.edu.cn/eng/]] 01/14. April 2007) 

* {{{Ramachandran Balakrishna}}}, {{{Constantinos Antoniou}}}, {{{Moshe Ben-Akiva}}}, {{{Haris N. Koutsopoulos}}} and ''Yang Wen'' (2007). 'Calibration of Microscopic Traffic Simulation Models: Methods and Application', //Transportation Research Record, journal of the Transportation Research Board//, No. 1999: 198-207. ([[Traffic Flow Theory 2007|https://commerce.metapress.com/content/96jm3543127p7562/resource-secured/?target=fulltext.pdf&sid=tyngqb5514zdms55wwad1555&sh=trb.metapress.com]])

* {{{Ramachandran Balakrishna}}}, ''Yang Wen'', {{{Constantinos Antoniou}}}, and {{{Moshe Ben-Akiva}}} (2008). 'Transportation Network Simulation for Emergency Management'. Accepted for publication in //Transportation Research Record, journal of the Transportation Research Board//. 

!!! Refereed conferences/proceedings/presentations
{{{Ramachandran Balakrishna}}}, {{{Moshe Ben-Akiva}}}, ''Yang Wen'' (2006). 
'Observability in estimating time dependent origin-destination flows from traffic counts', in proceeding of the first International Symposium on Dynamic Traffic Assignment ([[DTA 2006|http://www.its.leeds.ac.uk/dta2006]]): 205-214. June 21-23, 2006, University of Leeds.

{{{Daniel Florian}}}, {{{Ramachandran Balakrishna}}}, {{{Moshe Ben-Akiva}}}, ''Yang Wen'' (2006). 
'Evaluation of on-line dynamic traffic assignment using micro-simulation', International Symposium of Transport Simulation 2006 ([[ISTS06|http://ists06.epfl.ch]]), September 4-6, 2006, Ecole Polytechnique Fédérale de Lausanne, Switzerland. [CD-ROM]

{{{Ramachandran Balakrishna}}}, {{{Constantinos Antoniou}}}, {{{Moshe Ben-Akiva}}}, {{{Haris N. Koutsopoulos}}} and ''Yang Wen'' (2007). 'Calibration of Microscopic Traffic Simulation Models: Methods and Application'. Presented at the 86th annual meeting of the Transportation Research Board.  


''Yang Wen'', {{{Ramachandran Balakrishna}}}, {{{Moshe Ben-Akiva}}}, and {{{Scott Smith}}} (2007). 
'Online deployment of dynamic traffic assignment: evaluation and lessons', //11th World Conference on Transport Research// ([[WCTR 2007|http://www.uctc.net/wctrs/]]), June 24-28, 2007, University of California, Berkeley

{{{Ramachandran Balakrishna}}}, ''Yang Wen'', {{{Constantinos Antoniou}}}, and {{{Moshe Ben-Akiva}}} (2008). 'Transportation Network Simulation for Emergency Management'. Presented at the 87th annual meeting of the Transportation Research Board, and submitted for publication in Transportation Research Record. January 13-17, 2008, Washington, D.C. [DVD-ROM]

{{{Vaibhav Rathi}}}, {{{Constantinos Antoniou}}}, ''Yang Wen'', {{{Moshe Ben-Akiva}}}, and {{{Maggie Cusack}}} (2008). 'Assessment of the Impact of Dynamic Prediction-Based Route Guidance using a simulation-based, closed-loop framework'. Presented at the 87th annual meeting of the Transportation Research Board. January 13-17, 2008, Washington, D.C. [DVD-ROM]

''Yang Wen'', {{{Ramachandran Balakrishna}}}, {{{Moshe Ben-Akiva}}}, and {{{Scott Smith}}} (2007). 
'Online deployment of dynamic traffic assignment: evaluation and lessons', Presented at the 87th annual meeting of the Transportation Research Board. January 13-17, 2008, Washington, D.C. [DVD-ROM]

{{{Vaibhav Rathi}}}, {{{Constantinos Antoniou}}}, {{{Moshe Ben-Akiva}}},  and ''Yang Wen''. 'Optimal Variable Message Sign location identification using genetic algorithms'. Presentated at the 10th International Conference on Application of Advanced Technologies in Transportation ([[AATT 2008|http://www.civil.ntua.gr/aatt/aatt.htm]]), May 27- 31, 2008, Athens, Greece.

!!! Selected non-refereed papers
{{{Ramachandran Balakrishna}}}, {{{Constantinos Antoniou}}}, {{{Haris N. Koutsopoulos}}}, ''Yang Wen'', and {{{Moshe Ben-Akiva}}}. 'Calibrating Speed-Density Functions for Mesoscopic Traffic Simulation', Presented at the Symposium on the Fundamental Diagram: 75 years ([["Greenshields75" Symposium|http://guest.cvent.com/EVENTS/Info/Summary.aspx?e=7ba6438e-5aec-4f4e-a6e3-256b02817e10]]), July 8-10, 2008, Woods Hole, MA.



!! Working papers

''Yang Wen'' and {{{Moshe Ben-Akiva}}}. Scalable Dynamic Traffic Assignment.  (Working paper for TRB 2009)


See also: [[Talks and Presentations]], [[Reports and Manuals]], and [[Review of papers]]
!! LA Project
''Y. Wen'', R. Balakrishna, A. Gupta, M. Ben-Akiva and S. Smith (2006) "Deployment of DynaMIT in the City of Los Angeles." Submitted to the Federal Highway Administration, Office of Operations Research and Development.

!! NY Project

C. Antoniou, ''Y. Wen'', V. Rathi,  S. Diwan, and S. Hasan (2007) "Development of ITS analysis tools for Lower Westchester County: Technical memorandum on the assessment of the impact of dynamic prediction-based route guidance using a simulation-based, closed loop framework for the Lower Westchester County". To be submitted to New York State Department of Transportation.

C. Antoniou, ''Y. Wen'', V. Vaze, and V. Rathi (2006) "Development of ITS analysis tools for Lower Westchester County: Technical memorandum on the calibration and validation of DynaMIT in closed loop with MITSIMLab for the Lower Westchester County network". Submitted to New York State Department of Transportation.

C. Antoniou, ''Y. Wen'', V. Ramanujam, and V. Vaze (2006) "Development of ITS analysis tools for Lower Westchester County: Technical memorandum on the calibration of MITSIMLab for the Lower Westchester County network". Submitted to New York State Department of Transportation.
(click [[here|My Research]] for more details): 
** Primary focuses: 
*** Intelligent Transportation Systems
*** Real-time traffic estimation and prediction
*** Data fusion and traffic modeling with new sources of data
*** On-line dynamic traffic assignment systems.
** Other interests and experiences: 
*** Evacuation planning
*** Calibration of traffic simulation models
*** Large-scale stochastic system optimization
*** Statistical modeling for personalized recommendation engine. 
*** Advanced demand modeling
!! Conferences Refereed
* A regular paper for IEEE [[ITSC 2007|http://www.ewh.ieee.org/tc/its/itsc2007/]] International Conferences on Intelligent Transportation Systems (Sept. 30 - Oct. 3, 2007, Seattle, Washington, USA)
** Contact: Constantinos Antoniou
** Review submitted on June 14, 2007.

* A regular paper for IEEE [[ITSC 2006|https://its.papercept.net/conferences/index.html#ITSC2006]] International Conferences on Intelligent Transportation Systems (September 17-20, 2006, Toronto, Canada)
** Associate editor: Werner Kraus Jr.
** Review submitted on April 21, 2006.
You can save changes if you're using Firefox, Internet Explorer or Safari
# if you're using Internet Explorer on Windows XP you might run into [[ServicePack2Problems|http://www.tiddlywiki.com#ServicePack2Problems]]
# right click on [[this link|tiddlywiki_empty.html]] and select 'Save link as...' or 'Save target as...'
** do ''not'' try to use the File/Save command in your browser because of SaveUnpredictabilities.
** choose where to save the file, and what to call it (but keep the .HTML extension)
# open the newly downloaded file in your browser
# click the 'options' button on the right to set your username
# edit, create and delete the tiddlers you want
** you can change the [[SpecialTiddlers|http://www.tiddlywiki.com#SpecialTiddlers]] to change the SiteTitle and MainMenu etc.
# click the 'save changes' button on the right to save your changes
# TiddlyWiki will make a backup copy of the existing file, and then replace it with the new version
Quoting [[SaveUnpredictabilities|http://www.tiddlywiki.com#SaveUnpredictabilities]] from www.tiddlywiki.com:

> Several people have reported problems with reusing TiddlyWiki when they have used the File/Save command of their browser to save it. The issue is that some browsers (notably FireFox) don't save the text of the HTML file exactly as it appears on the server, but rather save a snapshot of the current state of the page. In the case of a highly dynamic page like TiddlyWiki, this leads to all sorts of peculiarness...
>
> TiddlyWiki now displays a warning if it thinks that it has been saved wrongly.
/***
''Single Page Mode Plugin for TiddlyWiki version 2.0 or above''
^^author: Eric Shulman - ELS Design Studios
source: http://www.TiddlyTools.com/#SinglePageModePlugin
license: [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]^^

Normally, as you click on the links in TiddlyWiki, more and more tiddlers are displayed on the page. The order of this tiddler display depends upon when and where you have clicked. Some people like this non-linear method of reading the document, while others have reported that when many tiddlers have been opened, it can get somewhat confusing.

!!!!!Usage
<<<
SinglePageMode allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one item displayed at a time.  When SinglePageMode is enabled, the title of the current tiddler is automatically displayed in the browser window's titlebar and the browser's location URL is updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler.

Even when SinglePageMode is disabled (i.e., displaying multiple tiddlers is permitted), you can reduce the potential for confusion by enable TopOfPageMode, which forces tiddlers to always open at the top of the page instead of being displayed following the tiddler containing the link that was clicked.
<<<
!!!!!Configuration
<<<
When installed, this plugin automatically adds checkboxes in the AdvancedOptions tiddler so you can enable/disable the plugin behavior.  For convenience, these checkboxes are also included here:

<<option chkSinglePageMode>> Display one tiddler at a time
<<option chkTopOfPageMode>> Always open tiddlers at the top of the page
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
''SinglePageModePlugin'' (tagged with <<tag systemConfig>>)
^^documentation and javascript for SinglePageMode handling^^

When installed, this plugin automatically adds checkboxes in the ''shadow'' AdvancedOptions tiddler so you can enable/disable this behavior.  However, if you have customized your AdvancedOptions, you will need to ''manually add these checkboxes to your customized tiddler.''
<<<
!!!!!Revision History
<<<
''2006.07.04 [2.2.1]'' in hijack for displayTiddlers(), suspend TPM as well as SPM so that DefaultTiddlers displays in the correct order.
''2006.06.01 [2.2.0]'' added chkTopOfPageMode (TPM) handling
''2006.02.04 [2.1.1]'' moved global variable declarations to config.* to avoid FireFox 1.5.0.1 crash bug when assigning to globals
''2005.12.27 [2.1.0]'' hijack displayTiddlers() so that SPM can be suspended during startup while displaying the DefaultTiddlers (or #hash list).  Also, corrected initialization for undefined SPM flag to "false", so default behavior is to display multiple tiddlers
''2005.12.27 [2.0.0]'' Update for TW2.0
''2005.11.24 [1.1.2]'' When the back and forward buttons are used, the page now changes to match the URL.  Based on code added by Clint Checketts
''2005.10.14 [1.1.1]'' permalink creation now calls encodeTiddlyLink() to handle tiddler titles with spaces in them
''2005.10.14 [1.1.0]'' added automatic setting of window title and location bar ('auto-permalink').  feature suggestion by David Dickens.
''2005.10.09 [1.0.1]'' combined documentation and code in a single tiddler
''2005.08.15 [1.0.0]'' Initial Release
<<<
!!!!!Credits
<<<
This feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].
Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageMode= {major: 2, minor: 2, revision: 1, date: new Date(2006,7,3)};

if (config.options.chkSinglePageMode==undefined) config.options.chkSinglePageMode=false;
config.shadowTiddlers.AdvancedOptions += "\n<<option chkSinglePageMode>> Display one tiddler at a time";

if (config.options.chkTopOfPageMode==undefined) config.options.chkTopOfPageMode=false;
config.shadowTiddlers.AdvancedOptions += "\n<<option chkTopOfPageMode>> Always open tiddlers at the top of the page";

config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
	if (!config.options.chkSinglePageMode)
		{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
	if (config.lastURL == window.location.hash)
		return;
	var tiddlerName = convertUTF8ToUnicode(decodeURI(window.location.hash.substr(1)));
	tiddlerName=tiddlerName.replace(/\[\[/,"").replace(/\]\]/,""); // strip any [[ ]] bracketing
	if (tiddlerName.length) story.displayTiddler(null,tiddlerName,1,null,null);
}

if (Story.prototype.SPM_coreDisplayTiddler==undefined) Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)
{
	if (config.options.chkSinglePageMode) {
		window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
		config.lastURL = window.location.hash;
		document.title = wikifyPlain("SiteTitle") + " - " + title;
		story.closeAllTiddlers();
		if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
	}
	if (config.options.chkTopOfPageMode) { story.closeTiddler(title); window.scrollTo(0,0); srcElement=null; }
	this.SPM_coreDisplayTiddler(srcElement,title,template,animate,slowly)
}

if (Story.prototype.SPM_coreDisplayTiddlers==undefined) Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function(srcElement,titles,template,unused1,unused2,animate,slowly)
{
	// suspend single-page mode when displaying multiple tiddlers
	var saveSPM=config.options.chkSinglePageMode; config.options.chkSinglePageMode=false;
	var saveTPM=config.options.chkTopOfPageMode; config.options.chkTopOfPageMode=false;
	this.SPM_coreDisplayTiddlers(srcElement,titles,template,unused1,unused2,animate,slowly);
	config.options.chkSinglePageMode=saveSPM; config.options.chkTopOfPageMode=saveTPM;
}
//}}}
IT, Transportation, Civil and Environmental Engineering Systems
Homepage of Yang Wen
http://www.mit.edu/~wenyang/
<<smiley :-)>>
<<smiley :-(>>
<<smiley ;-)>>
<<smiley :-|>>
<<smiley :-D>>
<<smiley WEN>><<smiley YANG>>
/***
|''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);
	}
};


}
//}}}
/*{{{*/
.tiddlyLink {color: [[MyFavoriteLinkColor]];}
.tiddlyLink:hover { background: [[MyFavoriteLinkColor]]; color: #fff; }
.externalLink { color: [[MyFavoriteLinkColor]];}
.externalLink:hover { background: [[MyFavoriteLinkColor]]; color: #fff;}

 .button { color: #996633;}
 .button:hover { color: #cf6; background: [[MyFavoriteLinkColor]]; }

h1,h2,h3,h4,h5
{ color: #fff;
 background: #666666;
 clear: right;
}

.headerForeground a { font-weight: normal; color: #666666; }
.header { background: #333; border-bottom: 2px solid #ffbf00;}

.title { color: #996633; }

.tabSelected, .tabContents { color: #000; }

/*}}}*/
{{{Moshe Ben-Akiva}}}, ''Yang Wen'', {{{Charisma Choudhury}}},  {{{Jorge Lopes}}}, and {{{Tiago Fernandes}}}. "Data fusion with DynaMIT".  MIT-Portugal Research Workshop: Transportation Systems Focus Area. [[Instituto Superior Técnico|http://www.ist.utl.pt/]], Lisbon, Portugal, July 11 -- 15, 2008  ([[MPP Research Workshop July 2008|http://www.mitportugal.org/component/option,com_events/Itemid,30/agid,45/day,14/month,07/task,view_detail/year,2008/]])


''Yang Wen'' and {{{Moshe Ben-Akiva}}}. "Scalable Dynamic Traffic Assignment".  Workshop on Traffic Modeling: Traffic Behavior and Simulation - University of Technology, Graz, Austria, June 30, 2008 -- July 2, 2008. ([[Traffic Simulation Workshop 2008|http://portal.tugraz.at/portal/page?_pageid=75,3468695&_dad=portal&_schema=PORTAL]])

''Y. Wen'' (2008) "Scalable Dynamic Traffic Assignment -- Enhancing computational performance of DTA systems". Fourth Transportation Engineering Research Symposium of Institute of Transportation Engineers Massachusetts Chapter (MAITE) and ITS/Mass, [[Boston University|http://www.bu.edu/maps/index.php?search=photonics&campus=all&sbuttton=Search]], 22 February 2008.

''Y. Wen'' (2007c) "Scalability in Dynamic Traffic Assignment Systems". Guest lecture, Tsinghua University, Beijing, China, December 21, 2007.

''Y. Wen'' (2007b) "DynaMIT Demand Models". Research seminar, Beijing Transportation Research Center, Beijing, China, December 19, 2007.

''Y. Wen'' (2007a) "DynaMIT Architecture and Data Requirements". Research seminar, Beijing Transportation Research Center, Beijing, China, December 19, 2007.

{{{V. Ramanujam}}}, {{{V. Vaze}}}, ''Y. Wen'' (2007) "Application of multi-class vehicles counts in the calibration of micro-simulation models". Third Annual Transportation Student Research Symposium of Institute of Transportation Engineers Massachusetts Chapter (MAITE) and ITS/Mass, [[Radisson Hotel|http://www.radisson.com/bostonma]] ([[200 Stuart Street, Boston, MA, 02116|http://maps.google.com/maps?f=q&hl=en&q=200+Stuart+Street,+Boston,+Ma]]), Boston, 9 February.

''Y. Wen'' (2006) "Online Deployment of Dynamic Traffic Assignment". Second Transportation Engineering Research Symposium of Institute of Transportation Engineers Massachusetts Chapter (MAITE) and ITS/Mass, Northeastern University, 10 February.

''Y. Wen'' (2005) "Simulation-Based Evaluation of Advanced Traveler Information Services". 
First Transportation Engineering Research Symposium of Institute of Transportation Engineers Massachusetts Chapter (MAITE) and ITS/Mass, Massachusetts Institute Technology, 18 February.
!! Teaching Assistant for the following courses:
* Spring 2007. [[1.202/ESD.212  Demand Modeling|http://stellar.mit.edu/S/course/1/sp07/1.202/index.html]]
** Give weekly recitations; grade case-studies, problem sets, and the exams; revise course slides.
* July 31 - August 4, 2006. 1.10s Modeling and Simulation of Transportation Networks
** Give software demos; answer questions; revise course slides.
* June 19 - 23, 2006.  14.61s Individual Choice Behavior: Theory and Application of Discrete Choice Analysis
** Give software demos; assist the Lab sections; revise course slides
* Fall 2005, [[1.222J/ESD.202J Transportation Demand and Economics|http://stellar.mit.edu/S/course/1/fa05/1.222J/]]
** Give recitations; grade homeworks and the final exam.
* August 1 - 5, 2005. 1.10s Modeling and Simulation of Transportation Networks
** Give software demos; answer basic questions; prepare some slides.
* June 20 - 24, 2005.  14.61s Individual Choice Behavior: Theory and Application of Discrete Choice Analysis to Consumer Demand and Market Share
** Give software demos; answer questions in the Lab sections. 
* August 2 - 6, 2004. 1.10s Modeling and Simulation for Intelligent Transportation Systems

Notes: More about  [[ITS Summer courses]].
Due to server upgrade issues, my techblog's address is changed from http://blogs.mit.edu/wenyang to http://blogs.mit.edu/CS/Blogs/wenyang. All previous comments are unfortunately gone.
!!Athena related topics
<<listTags Athena modified '*' reverse>>
!! Recent news
<<listTags Blog modified '*' reverse>>
/%<<listTags Blog modified '*' reverse limit:5>>%/ /% there is a bug for the above code, if limit:N is used with reverse, we should show the last N posts, but here it give the first N. %/
This site is a JavaScript based Wiki. If you want the plain text version, please go to http://web.mit.edu/wenyang/www/text/
TiddlyWiki: a reusable non-linear personal web notebook, published by Jeremy Ruston at Osmosoft under a BSD Open Source License. See http://www.tiddlywiki.com/

Some resources:
* [[TiddlyWiki Home|http://www.tiddlywiki.com/]]
* [[Tutorial|http://www.blogjones.com/TiddlyWikiTutorial.html#EasyToEdit]]
* [[MilchFlasche's site|http://linshi.twbbs.org/usr/m/milchflasche/TiddlyWiki.html]]
* [[zRenard's site|http://www.zrenard.com/tiddlywiki/tiddlywiki.html]]
* [[TiddlyWiki Tips|http://tiddlywikitips.com/]]

More resource on TW:
* http://www.tiddlyforge.net/
* http://thepettersons.org/PaulsNotepad.html
* http://groups.google.com/group/TiddlyWiki

Resource on JavaScript and others:
* http://www.w3schools.com/js/default.asp
* http://www.math.union.edu/~dpvc/jsMath/
* ''Science Intern'' @ [[ChoiceStream Inc.|http://www.choicestream.com/]], Summer 2007.
Developed latent-class models for personalized recommendation engine, resulting over 200% improvement. Bonus awarded for using [[Stata|http://www.stata.com/]] to develop a streamlined tool to automate the latent-class model estimation and output processing, reducing human process time to 5%.

* Other experiences
** [[Teaching Assistant|Teaching]] for four MIT courses
*** Demand modeling (2007)
*** Transportation Demand and Economics (2005)
*** Individual Choice Behavior (2005~2006)
*** Modeling and Simulation of Transportation Networks (2004~2006)
** Leadership: Vice-president of MIT Chinese Student & Scholar Association (600+ members), 2006~2007
*** Organized large events including the Mid-Autumn Harbor Cruise (400+ attendees) and the Chinese New Year Performance Show (900+ attendees).

See also [[Activities in Sports]], [[Hobbies]].
My name is [[Yang Wen|My name in Chinese]] . 

I graduated from MIT in 2008 and received a Ph.D. degree in Civil and Environmental Engineering Systems (Feb 2009).  Currently I am a senior member of technical staff at Oracle focusing on collaboration technologies.  I remain a research affiliate of the [[MIT ITS Lab|http://its.mit.edu]] led by Prof. [[Moshe Ben-Akiva|http://cee.mit.edu/ben-akiva]]. 


Most of the stuff you will find in this place are likely to be somewhat out-dated... yes I have been lazy on updating the page @_@

For my professional expertise and experience please check out my [[LinkedIn profile|http://www.linkedin.com/in/wenyang]]

----
Email: {{{ wenyang [AT] mit [DOT] edu }}}
//{{{
// use <<displayDefaultTiddlers 'Home Page'>>
// <<displayDefaultTiddlers>>
// YangWen 1/8/2006: update for TW 2.0
// change closeAllTiddlers() to story.closeAllTiddlers(); 
// same to displayTiddlers(null,start,1,null,null);

version.extensions.displayDefaultTiddlers = {major: 0, minor: 1, revision: 0, date:new Date(2005,8,23)};
config.macros.displayDefaultTiddlers = {label: "default tiddlers", prompt: "Display default tiddlers"};
 
config.macros.displayDefaultTiddlers .handler = function(place,macroName,params) {
 var displayDefaultTiddlersFunc = function () {
 var start = store.getTiddlerText("DefaultTiddlers");
 story.closeAllTiddlers();
 if(start)
 story.displayTiddlers(null,start.readBracketedList(),1,null,null);
 }
 if (params[0]==null) {
 createTiddlyButton(place,this.label,this.prompt,displayDefaultTiddlersFunc);
 } else {
 createTiddlyButton(place,params[0],this.prompt,displayDefaultTiddlersFunc);
 }
}
//}}}
//{{{
//Smiley Samples:
//<<smiley :-)>>
//<<smiley :-(>>
//<<smiley ;-)>>
//<<smiley :-|>>
//<<smiley :-D>>
//here's how they behave inside <<smiley :-)>> some text.
//a few more to come!

version.extensions.smileyMacro = {major: 0, minor: 1, revision: 0, date: new Date(2005,7,20)};
//Author: Alan Hecht
config.macros.smiley = {}
config.macros.smiley.handler = function(place,macroName,params)
{
 var palette = ["transparent","#000000","#1a1507","#352e18","#464646","#666666","#a3141e","#b06b63","#cc9900","#dd9030","#dddddd","#e89d00","#edc32a","#f3cb3c","#fdf201","#fdf526","#ff3149","#ffac00","#ffbf06","#ffc846","#ffcc66","#ffd758","#ffdd01","#ffea7b","#ffed55","#ffffff"];
 var data = params;
 var imageMap = null;
 if(data[0] == ":-)" || data[0] == ":)")

 imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyffyffuujbaadyyyeeyeetttdabppppddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwboooowwwbllbbwwwboooowbrllbacwwwbbbbbrllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
 else if(data[0] == ":-(" || data[0] == ":(")
 imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyyyyyyuujbaadyyyeeyeetttdabppppddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwoooooowwrllbbwwwwbbbbbsrllbacwwbwwwwsbllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
 else if(data[0] == ";-)" || data[0] == ";)")
 imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyxxxxxuujbaadyyyxxxeetttdabppphddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwboooowwwbllbbwwwboooowbrllbacwwwbbbbbrllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
 else if(data[0] == ":-|" || data[0] == ":|")
 imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyffyffuujbaadyyyeeyeetttdabppppddyddpmmlbbwoooooooowsrlbbwwpooooowwmrlbbwwoooooowwrllbbwwwwbbbbbsrllbacwwwwwwwsrllcaablswwwwsrrlibaaablsssrrllibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
 else if(data[0] == ":-D" || data[0] == ":D")
 imageMap = "aaaaabbbbbaaaaaaaabdtyyvtdbaaaaabnyxxxxxujbaaabmyyeeyeeuujbaadyyyeeyeetttdabppppyyyyypmmlbbwbbbbbbbbbbblbbwbkzzzzzzzkbwbbwbfzzzzzzzfbwbbwbkzzzzzzzkbwbacwbkzzzzzkblcaablsbkzzzkblibaaablsbbbbblibaaaaabcrrlllcbaaaaaaaabbbbbaaaaa";
 else if(data[0] == "WEN")
 imageMap = "abaaaabbbbbbbaaaabbaabaaaaabaaaaabaabaaaaabaabaaaaabbbbbbbaaabbaaabaaaaabaaaabaaabaaaaabaaaaaababbbbbbbaaaaabaaaaaaaaaaaaabaabbbbbbbbbabbbaabaababaabaaabaabaababaabaaabaabaababaabaaabaabaababaabaaababbbbbbbbbbbaabaaaaaaaaaaaa";
 else if(data[0] == "YANG")
 imageMap = "abbbbbaabbbbbbaabaaabaabaaaabaabaabaaabaaaabaabaabaaabaaaabaababaaaabaaaabaabaabaaabaaaabaabaabaaabbbbbbaabaaabaabaaaabaabaaabaabaaaabaabaaabaabaaaabaabbabaaabaaaabaababaaaabaaaabaabaaaaaabaaaabaabaaaaaabbbbbbaabaaaaaabaaaaba";
 else
 createTiddlyElement(place,"span",null,"errorNoSuchMacro","unknown smiley");
 if(imageMap)
 {
 var box = createTiddlyElement(place,"span",null,"smiley",String.fromCharCode(160));
 box.style.position = "relative";
 box.style.width = "15px";
 box.style.height = "15px";
 box.style.marginLeft = "1px";
 box.style.marginRight = "1px";
 box.style.paddingRight = "12px";
 box.style.verticalAlign = "top";

 //now divide into 15x15 grid and create each pixel
 // rows
var r,c; // YW 2/2/2006: avoid crash in Firefox 1.5.0.1
 for(r=0; r<15; r++)
 {
 // columns
 for(c=0; c<15; c++)
 {
 //create each pixel with the correct background
 var pix = document.createElement("img");
 pix.className = "smileyPixel";
 pix.style.position = "absolute";
 pix.border = 0;
 pix.style.top = r + "px";
 pix.style.left = c + "px";
 pix.style.width = "1px";
 pix.style.height = "1px";
 pix.style.backgroundColor = palette[imageMap.charCodeAt((r*15)+c)-97];
 pix.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";
 box.appendChild(pix);
 }
 }
 }
}
//}}}