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

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

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

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Also see AdvancedOptions
* (2008) I'm the webmaster of my daughter's Chinese school: [[Northern Westchester Chinese School|http://nwcsny.org]]. I created the site using Joomla CMS and spent countless hours to find add-ons that provide functions needed. I'm very proud of creating the whole site without writing a single line of PHP code. I deal with SQL a lot though.   
* (2011) I and my wife Sylvia Zhang migrated the Chinese school web site from Joomla to Wordpress. 
* (2012) I and my wife Sylvia Zhang created a student information system for the Chinese School. 

IBM Thomas J. Watson Research Center
19 Skyline Drive, Hawthorne, NY 10532
Office: (914)784-7781
Tel: 914-945-1459 (Office), 914-299-6799 (Cell)
1101 Kitchawan Rd, Yorktown Heights,  NY 10598, USA

You can also find me at [[Facebook|https://www.facebook.com/perng]] and [[LinkedIn| http://www.linkedin.com/in/perng ]].
* Ph.D: Computer Science Dept., University of California, Los Angeles, 9/94-1999.
** Major field: Database Systems and Programming Languages.
** Minor fields: Computer Networking, Computer Science Theory.
** Dissertation: Querying and Mining Time Series Data.
* M.S.: [[Computer Science Dept., National Taiwan University|http://www.csie.ntu.edu.tw/]], Taipei, Taiwan, 9/88-6/90, M.S. in Computer Science.
* B.S: [[Industrial Engineering and Management Dept.|http://www.iem.nctu.edu.tw/]], National Chiao-Tung University, Hsinchu, Taiwan, 9/84-6/88, B.S. in Industrial Engineering 
* [[Hsinchu Senior High School|http://www.hchs.hc.edu.tw/hchs_eng/index.htm]], Hsinchu, Taiwan, 1981-84. 
* [[Liou-Jia Junior High School|http://www.ljjh.hcc.edu.tw/]], Hsinchu. 
* [[Liou-Jia Elementary School|http://www.ljes.hcc.edu.tw]], Hsinchu
*Research Staff Member	IBM T.J. Watson Research Center,	Spring 2000 – Present 
**Knowledge-based Automatic Generation of Product Configurator (Jan. 2013 – present)
***	Aim to reduce work cycle from 6 months to 2 weeks, resource demand 60% from a 600-employee division
***	Lead implementation of a cognitive system with DSL using Play, Clojure, jQuery, and ~MongoDB
**Cloud Services Marketplace (2012-2013)
***	Led an exploratory research team of 8, created a prototype for a service marketplace that matches customer requests with services offerings. The prototype evolved into IBM 2013 Global Technology Outlook project “Scalable Services Ecosystem”
**Economic Model for Cloud Computing (2009-2012)
***	Create 7 ~Return-on-Investment Models for IBM Cloud Offerings (Private Cloud, Public Cloud, Private Shared Cloud, Storage Cloud, Desktop Cloud, Self Enablement Portal, Security Cloud)
***	Served as project lead and main developer, create cost and benefit models for cloud computing, developed web-based ROI tools
***	The ROI tools were used for securing 30+ major cloud computing deals to date
**Cloud Analytics for IBM Smart Cloud Enterprise Plus (SCE+) (2008-2011)
***	Create cloud analytics for cloud usage and resource demands for IBM’s flagship cloud offering
***	Lead on cloud analytics— capacity modelling, VM provisioning prediction, and reporting
**Performance Analysis for SOA System (2007-2008)
***	Created a diagnosis tool for SOA application performance using queuing theory
***	Created a new IBM service offering “SOA Paramedic”
**Text Classification for Problem Ticket (2006-2007)
***	Created an analytical system that classifies problem tickets to problem categories, finds related tickets, and suggests possible resolutions. The system is part of IBM Global Service Delivery Platform, is still used today in IBM strategic outsourcing
**Event and Metric Analysis for Distributed System Management (2000-2006)
***	Constructed an extensible and scalable analysis platform for system data (event logs, performance metrics) for discovering event correlation, predicting catastrophic events, and generate event correlation rules and monitoring design
***	Initiated and created 3 IBM event management and monitoring design service offerings, the tool and methodology are still in used globally

* (Volunteer) Webmaster	Northern Westchester Chinese School	Fall 2007 – Present
**	Created an Online Student Information System (https://sis.nwcsny.org), Based on Python/Django/~MySQL. The system is used for online registration, enrollment, class management, grade/attendance recording and reporting, homework notification, etc.  Reduced 80% paper work for teachers and staff
**	Built and maintain school website, mailing list, photo and video sharing

*Research Engineer	Telecommunications Labs, Taiwan	1991 – 1994
**	Conducted research on networking protocols conformance testing, designed a tool suite on Unix for developing  ~TTCN language (~OSI-9646)
**	Lead a team of 4 to design and implement a fully automatic ~TTCN-to-C translator as the core of a conformance testing system, which was previously regarded as technologically impossible

*Software Engineer	Tecom Corporation, Taiwan	1990 - 1991
**	Designed and implement firmware of the first AMPS cellular phone designed in Taiwan
**	Created algorithms for reducing power consumption and compensating device instability
[[Contact Me]]
[[Community Work]]
[[Tools I use]]
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-2610919-5");
<div class='header'>
<div class='titleLine'>
<div class='siteTitle' refresh='content' tiddler='SiteTitle'></div>
<div class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></div>
<div class='headerLine'></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 id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
1.	US 8086596 Healthcheck Of Information Technology Infrastructure Based On Log Data
2.	US 7783694 Identification Of Relevant Metrics
3.	US 7870398 Integrity Assurance Of Query Result From Database Service Provider
4.	US 6697802 Method And System For Mining Event Patterns Based On Pairwise Analysis
5.	US 7447723 Method For Fast Relevance Discovery In Time Series
6.	US 7343604 Methods And Apparatus For Creation Of Parsing Rules
7.	US 7243100 Methods And Apparatus For Mining Attribute Associations
8.	US 6697791 System and method for systematic construction of correlation rules for event management
9.	US 7827132 Peer Based Event Conversion
10.	US 7596793 Smart Event Parser For Autonomic Computing
11.	US 7895611 Smart Event Parser Using ~Self-Learning & ~Self-Configuration
12.	US 20030074439 Systems and methods for providing off-line decision support for correlation analysis
13.	US 7724784 System And Method For Classifying Data Streams Using ~High-Order Models
14.	US 7343604 Methods and apparatus for creation of parsing rules
15.	US 8472330 System And Method For Determining And Optimizing Resources Of A Data Processing System Utilized By A Service Request
16.	US 7657627 System And Method For Throttling Events In An Information Technology System
17.	US 20040049504 System And Method For Exploring Mining Spaces With Multiple Attributes
18.	US 7447723 System And Method For Fast Relevance Discovery In Time Series
19.	US 6907426 System And Method For Identifying And Counting Instances Of Temporal Patterns
20.	US 7418455 System And Method For Indexing ~Weighted-Sequences In Large Databases
21.	US 20080275646 System And Method For Minimal Detour Routing With Multiple Stops
22.	US 7870398 System And Method For Providing Query Integrity Assurance In Database Outsourcing
23.	US 6697788 System And Method For Systematic Construction Of Correlation Rules For Event Management
24.	US 6615211 System And Method For Using Continuous Optimization For Ordering Categorical Datasets 
25.	US 7720785 System And Method Of Mining ~Time-Changing Data Streams Using Models Of Low Granularity
26.	US 20080270444 System, Method And Tool For ~Web-Based Interactive Graphical Visualization And Authoring Of Relationships 
27.	US 7631058 Systems And Methods For ~Data-Driven Validation, Completion And Construction Of Event Relationship Networks 
28.	US 20130018764 Methodology For Charging Of Discrete Resource Reservation Based Services

#.	SQL/LPP: A Time Series Extension of SQL Based on Limited Patience Patterns. Chang-shing Perng, Douglas Stott Parker Jr., DEXA 1999: 218-227  
#.	SQL/LPP+: A Cascading Query Language for Temporal Correlation Verification. Chang-shing Perng, Douglas Stott Parker Jr.,  DaWaK 1999: 343-352,  Best paper award
#.	Temporal Coupling Verification in Time Series Databases. Chang-shing Perng, Douglas Stott Parker Jr.: ,  J. Intell. Inf. Syst. 15(1): 29-49 (2000)
#.	 Landmarks: a New Model for Similarity-based Pattern Querying in Time Series Databases. Chang-shing Perng, Haixun Wang, Sylvia R. Zhang, Douglas Stott Parker Jr. ICDE 2000: 33-42
#.	Spectral Approach to Ordering Large Categorical Datasets, A. Beygelzimer, C.-S. Perng, S. Ma, Smart Graphics 2001
#.	 FARM: A Framework for Exploring Mining Spaces with Multiple Attributes. Chang-shing Perng, Haixun Wang, Sheng Ma, Joseph L. Hellerstein,  ICDM 2001: 449-456
#.	 Fast ordering of large categorical datasets for better visualization. Alina Beygelzimer, Chang-shing Perng, Sheng Ma , KDD 2001: 239-244
#.	The S2-Tree : An Index Structure for Subsequence Matching of Spatial Objects. Haixun Wang, Chang-shing Perng, PAKDD 2001: 312-323
#.	Discovering actionable patterns in event data. Joseph L. Hellerstein, Sheng Ma, Chang-shing Perng , IBM Systems Journal 41(3): 475-493 (2002)
#.	Fast ordering of large categorical datasets for visualization. Alina Beygelzimer, Chang-shing Perng, Sheng Ma,  Intell. Data Anal. 6(4): 379-395 (2002)
#.	 EventMiner: An integrated mining tool for Scalable Analysis of Event Data, by Sheng Ma, Joseph Hellerstein, Chang-shing Perng,in the 2nd IEEE International Conference on Data Mining (ICDM), 2002, Maebashi, Japan.
#.	 Mining Associations by Pattern Structure in Large Relational Tables, by Haixun Wang, Chang-shing Perng, Sheng Ma, Philip Yu, in the 2nd IEEE International Conference on Data Mining (ICDM), 2002, Maebashi, Japan. 
#.	 User-directed Exploration of Mining Space with Multiple Attributes, by Chang-shing Perng, Haixun Wang, Sheng Ma, Joseph Hellerstein, in the 2nd IEEE International Conference on Data Mining (ICDM), 2002, Maebashi, Japan. 
#.	An Indexing Structure for Similarity Searching in Microarray Data, by Haixun Wang, Chang-shing Perng, Wei Fan, and Philip S. Yu, in Proceedings of the First IEEE Computer Society Bioinformatics Conference (CSB 2002), August, 2002, Palo Alto, California, USA. 
#.	User-directed Discovery of Patterns in Multi-attribute Data, by Chang-shing Perng, Haixun Wang, Sheng Ma, and Joe Hellerstein, in KDD Explorations, Volume 4, Issue 1 (June 2002). 
#.	 Carlotta Domeniconi, Chang-shing Perng, Ricardo Vilalta, Sheng Ma: A Classification Approach for Prediction of Target Events in Temporal Sequences. PKDD 2002: 125-137

#.	 Indexing Weighted Sequences in Large Databases, by Haixun Wang, Chang-shing Perng, Wei Fan, Sanghyun Park, Philip S Yu, in IEEE International Conference on Data Engineering (ICDE) 2003, Bangalore, India. 
#.	Search by  Pattern Similarity  in DNA Microarray Data, Haixun Wang, Chang-shing Perng, Wei Fan, Philip Yu, book charpter. 
#.	 Data-driven Validation, Completion and Construction of Event Relationship Networks, Chang-shing Perng, David Thoenen, Genady Grabarnik, Sheng Ma, Joe Hellerstein, KDD 2003.
#.	 Data-driven Event Management Design, S. Ma, M. Brodie, G. Grabarnik, D. Thoenen., NOMS 2004. 
#.	 Data-driven Monitoring Design of Service Level and Resource Utilization, Chang-shing Perng, Sheng Ma, Steve Lin, IM 2005.
#.	 Near-Neighbor Search in Pattern Distance Spaces. Haixun Wang, Chang-shing Perng, Philip S. Yu,  SDM 2005
#.	Demand-driven frequent itemset mining using pattern structures. Haixun Wang, Chang-shing Perng, Sheng Ma, Philip S. Yu,  Knowl. Inf. Syst. 8(1): 82-102 (2005)
#.	 Fast Relevance Discovery, Chang-shing Perng, Haixun Wang,  IEEE Intl' Conf. of Data Mining 2006
#.	Self-healing Infrastructure Design and optimization as a Data Mining Service, Chang-sing Perng, Shang Q. Guo, A. Szypka,  IBM P3AD 2006
#.	Discover Actionable Patterns via Event Summarization, Wei Peng, Tao Li, Chang-shing Perng, IBM P3AD 2006
#.	Data Mining for Autonomic System Management: A Case Study at FIU-SCIS, Tao Li, Masoud Sadjadi, Charles Perng, Abdi  Salahshour, IBM P3AD 2006
#.	 Mining Infrastructure Data for System Management Optimization", Chang-shing Perng, Shang Guo, IM 07
#.  "QoS-Aware Optimization of Composite-Service Fulfillment Policy", Chun Zhang, Rong N. Chang, Chang-Shing Perng, Edward So, Chunqiang Tang, Tao Tao: . IEEE SCC 2007: 11-19
#.  “Event Summarization for System Management”, W. Peng, C.-S. Perng, T. Li, H. Wang. KDD (PIC conf.)  2007.
#.  “Guest Editorial” for “Data Mining & Knowledge Discovery” journal, “Temporal Data Mining” special issue
#.  "Leveraging Service Composition Relationship to Improve CPU Demand Estimation in SOA Environments", Chun Zhang, Rong N. Chang, Chang-Shing Perng, Edward So, Chunqiang Tang, Tao Tao: . IEEE SCC (1) 2008: 317-324
#. "A Temporal Data-Mining Approach for Discovering End-to-End Transaction Flows", Ting Wang,Chang-shing Perng, Tao Tao, Chungqiang Tang, Edward So,Chun Zhang,  Rong Chang, Ling Liu, IEEE ICWS 2008.
#.	An Optimal Capacity Planning Algorithm for Provisioning Cluster-Based Failure-Resilient Composite Services, Chun Zhang, Rong N. Chang, Chang-Shing Perng, Edward So, Chunqiang Tang, Tao Tao, IEEE SCC 2009: 112-119
#.	Economics of cloud computing for enterprise IT, Kirk A. Beaty, Vijay K. Naik, Chang-Shing Perng:. IBM Journal of Research and Development 55(6): 12 (2011)
#.	Natural event summarization, Yexi Jiang, Chang-Shing Perng, Tao Li,  CIKM 2011: 765-774
#.	LogSig: generating system events from raw textual logs Liang Tang, Tao Li, Chang-Shing Perng:. CIKM 2011: 785-794
#.	ASAP: A Self-Adaptive Prediction System for Instant Cloud Resource Demand Provisioning, Yexi Jiang, Chang-Shing Perng, Tao Li, Rong N. Chang, ICDM 2011: 1104-1109
#.	Self-Adaptive Cloud Capacity Planning, Yexi Jiang, Chang-Shing Perng, Tao Li, Rong N. Chang. IEEE SCC 2012: 73-80.
#.	Towards cloud services marketplaces , Rahul P. Akolkar, Tom Chefalas, Jim Laredo, Chang-Shing Perng, Anca Sailer, Frank Schaffa, Ignacio Silva-Lepe, Tao Tao,  CNSM 2012: 179-183
#.	Self-service financial control and organizational governance in cloud,  Chunqiang Tang, Chang-Shing Perng, Salman Abdul Baset:. CNSM 2012: 229-232
#.	Methodology and Tool Design for Building Return on Investment Models for IT Transformations, Chang-Shing Perng, Rong N. Chang:. ICEBE 2012: 177-184
#.	Intelligent cloud capacity management Yexi Jiang, Chang-Shing Perng, Tao Li, Rong N. Chang, NOMS 2012: 502-505
#.	Universal economic analysis methodology for IT transformations,  Chang-Shing Perng, Rong N. Chang, Tao Tao, Edward So, Mihwa Choi, Hidayatullah Shaikh, NOMS 2012: 558-561
#.	The Future of Service Marketplaces in the Cloud , Rahul P. Akolkar, Tom Chefalas, Jim Laredo, Chang-Shing Perng, Anca Sailer, Frank Schaffa, Ignacio Silva-Lepe, Tao Tao, SERVICES 2012: 262-269
#.	Cloud Analytics for Capacity Planning and Instant VM Provisioning, Yexi Jiang,Chang-Shing Perng,Tao Li,and Rong Chang,  IEEE Transactions on Network and Service Management,  2013 (to appear) .
#.	Provisioning Legacy Simulation Applications in Product Lifecycle Management via a Cloud Platform, Liangzhao Zeng, Charles Perng, Ajay Mohindra, IEEE CLOUD 2013.
#.	Ranking Services by Service Network Structure and Service Attributes, Yang Zhou, Ling Liu, Chang-shing Perng, Ignacia Silva, Anca Sailer, CWS 2013. 
#.     META: Multi-resolution Framework for Event Summarization, Yexi Jiang, Chang-Shing Perng, Tao Li1, SIAM Data Mining (SDM) 2014. 

<<slider chkSliderToolsPanel SidebarTools '� Tools �' 'New tiddler, save changes etc..'>><<slider chkSliderOptionsPanel OptionsPanel '� Options �' 'Change TiddlyWiki advanced options'>><<slider chkSliderTime Time '� Time �' 'Time'>>
<<newJournal 'DD MMM YYYY'>>
<<importTiddlers link>>

Charles Perng

!Colors used by this Theme
*@@background(#867663):#867663@@ Used for MSG Area, Tiddler Title, text, and SubTitle


!Popup styles /% =========================================================== %/
#popup {
 border: 1px solid #aaa;
 padding: 0;
 background: #fff;
 color: #f79b60;

#popup a{
 color: #f79b60;
 font-weight: normal;

#popup a:hover {
 background: #f5d7b4;
 color: #930;

#popup hr {border-top: solid 1px #f5d7b48;}
#popup li.disabled{color: #cf936c;}

#popup .currentlySelected,
#popup .currentlySelected:hover{
 background: #f5d7b4;
!Generic styles /% ===================================================== %/
h1,h2,h3,h4,h5,h6 {
 background-color: transparent;
 margin: .25em 0;

h1 {
border-bottom: 2px dotted #ccc;

h2 {
border-bottom: 1px dotted #ccc;

 color: #f79b60;
 color: #c51;

 color: #f79b60;
 background: transparent;

 border: 0;
!Header styles /% ================================================================== %/
 position: static;

.titleLine {
 height: 7.5em;
 background: #c51;
 border-bottom: 8px solid #b8764c;
 color: #fff;

.titleLine a,
.titleLine a:link,
.titleLine a:hover{
 color: #fff;

.titleLine a:hover{
border-bottom: 2px dotted;

 padding: 0;
 border-top: 5px solid #cf936c;
 border-bottom: 3px solid #f5d7b4;

.siteTitle {
 text-align: right;
 font-size: 4.5em;
 font-weight: bold;
 padding-right: .5em;

.siteSubtitle {
 text-align: right;
 font-size: 1.5em;
 font-family: georgia,times;
 padding-right: 1.5em;
!Main menu styles /% ================================================================== %/
#mainMenu {
 width: 12em;
 margin-top: .5em;
 left: .5em;
 padding: 0;
 border: 1px solid #f5d7b4;
 color: #666

#mainMenu ul,
#mainMenu li{
 list-style: none;
 margin: 0;
 padding: 0;

#mainMenu li strong a {
 color: #fff;
 background: #d16400;

#mainMenu li strong a:hover,#mainMenu li strong .button:hover{
 color: #f5d7b4;
 background: #930;
 text-decoration: none;

/* The bold has to be a block to contain the links <a>
because inline elements can't contain blocks */
#mainMenu li strong,
#mainMenu li span{
 display: block;

#mainMenu li a,
#mainMenu li a:link{
 display: block; 
width: 100%;
 text-decoration: none;
 padding-right: 5px;
 margin-right: 0;
 color: #f79b60;
 border: 0;

#mainMenu li a:hover, #mainMenu li .button:hover{
 background-color: #f5d7b4;
 text-decoration: none;

#mainMenu a:link{
 text-decoration: none;
 color: #f79b60;
 margin-right: 5px;

#mainMenu a:hover,#mainMenu .button:hover{
 text-decoration: underline;
 background: transparent;
 color: #930;

!Message area styles /% ================================================================== %/
#messageArea {
 background-color: #f5d7b4;
 color: #867663;
 padding: 0.5em;
 border: 1px solid #ccc;

#messageArea a:link, #messageArea a:visited {
 color: #c51;

#messageArea a:hover {
 color: #f79b60;

#messageArea a:active {
 color: #fff;
!Sidebar styles /% ================================================================== %/
#sidebar {
 width: 14.5em;
 border-bottom:1px solid #aaa; 
 border-left: 1px solid #aaa;

 background-color: #fff;

#sidebarOptions a{
 color: #f79b60;
 background: transparent;
 text-decoration: none;
 border: 0;

#sidebarOptions a:hover{
 color: #c51;
 background: #fff;
 text-decoration: underline;

#sidebarOptions .sliderPanel{
 background: #f5d7b4;
 margin: 0;

#sidebarOptions .sliderPanel a{
 color: #922;

#sidebarOptions .sliderPanel a:hover{
 color: #b44;
 background: transparent;

#sidebarTabs {
 background-color: #fff;

#sidebarTabs a {
 background: transparent;

#sidebarTabs .tabContents a:hover {
 color: #922;
 text-decoration: underline;
 background-color: transparent;

.tab {
 margin: 0px 1px; 
 border:1px solid #aaa;
 color: #922;

.tab:hover {
 border-color: black;
 text-decoration: none;

#sidebarTabs .tabSelected {
 background: #f5d7b4;
 padding: 2px 4px;
 color: #922;

#sidebarTabs .tabUnselected {
 background: #c51;
 padding: 2px 4px 0px 4px;
 color: #fff;

#sidebarTabs .tabContents {
 background-color: #f5d7b4;

#sidebarTabs .tabContents a{
 color: #922;

#sidebarTabs .tabContents a:hover{
 color: #b44;

#sidebarTabs .txtMoreTab .tabSelected,
#sidebarTabs .txtMoreTab .tabSelected:hover{
 background: #cf936c ;
 color: #000 ;
 text-decoration: none;

#sidebarTabs .txtMoreTab .tabUnselected,
#sidebarTabs .txtMoreTab .tabUnselected:hover{
 background: #f5d7b4 ;
 color: #000 ;
 text-decoration: none;

#sidebarTabs .txtMoreTab .tabContents {
 color: #fff;
 background: #cf936c;
 border-bottom: solid #aaa 1px;
!Tiddler display styles /% ================================================================== %/
#displayArea {
 margin: 1em 15em 0em 15em;

 padding: 0;
 border: 1px solid #ccc;
 padding: 5px;

.title {
 font-size: 1.5em;
 color: #867663;
 font-weight: bold;

.toolbar {
 font-size: .9em;

.toolbar a.button{
 color: #f79b60;
 border: 1px solid #fff;

.tiddler .toolbar a.button:hover,
.tiddler .toolbar a.button:active {
 color: #930;
 background: #f5d7b4;
 border: 1px solid #f79b60;

.toolbar a.button:active {
 color: #666;

.body {
 border-top:1px solid #ccc;
 padding-top: 0.5em;
''Viewer styles'' /% --------------------------------------------------------------------------------------------- %/
.tiddler a.button {
 color: #f79b60;

.tiddler a.button:hover {
 color: #be540b;
 background: transparent;

.viewer {
 color: #867663;

.viewer {
  line-height: 125%;
  font-family: serif;
  font-size: 12pt;
 color: #867663;

.viewer .button{
 background: transparent;
 color: #888;
 border: 1px solid transparent;

.viewer a:link, .body a:visited{
 color: #be540b;

.viewer a:hover {
 background-color: transparent;
 text-decoration: underline;

.viewer blockquote {
 border-left: 1px solid #ccc;

.viewer table {
 border: 2px solid #333;

.viewer td, tr {
 border: 1px solid #666;
 padding: 3px;

.viewer hr {
 border-color: #666;
 color: #666;

.viewer pre {
 border: 1px solid #aaa;
 background: #f5d7b4;
 color: #333;

.viewer code {
 color: #922;

.selected .isTag .tagging,
.selected .tagged,
.isTag .tagging,
.tagged {
 float: none;
 display: inline;
 border: 0;
 background: transparent;
 color: #f79b60;
 margin: 0;

.tagged li, .tagging li,
.tagged ul, .tagging ul{
 display: inline;

.tiddler .tagging .listTitle,
.tiddler .tagged .listTitle{
 color: #ccc;

.tiddler .tagging a.button,
.tiddler .tagged a.button{
 margin: 0;
 padding: 0;
 color: #ccc;

.selected .tagging .listTitle,
.selected .tagged .listTitle,
.selected .tagging a.button,
.selected .tagged a.button{
 color: #333;
''Editor styles'' /% --------------------------------------------------- %/
.editor input,
.editor textarea {
 border: 1px solid black;

.editor textarea{
 font-size: .8em;
<html><object type="application/x-shockwave-flash" data="chronograph.swf" width="150" height="150">
<param name="movie" value="chronograph.swf" /><param name="bgcolor" value="#eeeeee" />
I use many software and web tools for my work and life. I'd like to share with everyone. 
* [[TiddlyWiki|http://www.tiddlywiki.com/]]: You probably have noticed that my home page works quite differently than other sites. That's because I use [[TiddlyWiki|http://www.tiddlywiki.com/]]. It is very unconventional. The whole website is stored in one ~HTML page.It's typically used as a notebook. I don't see any reason that I can not use it for my website. 
* [[MonkeyGTD|http://monkeygtd.tiddlyspot.com]]:  If you haven't heard of David Allen's [[Getting Things Done|http://www.davidco.com/]], you probably should check it out. It is a methodology to organize work and life.  Literally hundreds of GTD tools have been created. I've tried many of them and finally decided to stick to [[MonkeyGTD|http://monkeygtd.tiddlyspot.com]]. It is based on [[TiddlyWiki|http://www.tiddlywiki.com/]], the cute Wiki "system" this site is built upon. 
* FreeMind
* Audacity
* ScrapBook
Dr. Charles (Chang-shing) Perng is a research staff member in  IBM T. J. Watson Research Center.  He received his Ph.D. degree in computer science in 2000 from the University of California, Los Angeles, and has been at IBM since then. In IBM Research, Dr. Perng has been focused in temporal data mining research. He has organized serval ACM SIGKDD and IEEE ICDM Workshops on Temporal Data Mining, he was also a guest editor of the Temporal Data Mining Special Issue of Springer Data Mining and Knowledge Discovery Journal. In IBM, Dr. Perng has persistently working on Event Management and Monitoring Design which is a cornerstone of IBM's IT Services Management Portfolio. He has developed algorithms and tools that apply data mining technology to system and service management. His current research interests include temporal data mining, autonomic computing and intelligent system management design. He is an IBM Master Inventor.