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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
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>>
!''SUMMARY''
These are some basic steps.  Every Virus is unique and may need more research, steps, etc. that are not listed here.
!''DETAILS''
#The best thing to do when you even suspect a virus is on a Windows computer is to run the [[Sophos Command Line Scanner|http://www.sophos.com/support/knowledgebase/article/10069.html]] in safemode without network support.  Make sure to follow the instructions to use the latest virus definitions.  It is best to use a CD so if there are any viruses they can't write to the media the virus tool is on.  Again, this CD should always be made with the latest antivirus definitions.
#Boot normally and Install and run the [[Sophos Rootkit scanner|http://www.sophos.com/products/free-tools/sophos-anti-rootkit.html]] After you scan the computer.  Try the graphical install first.  If there still seems to be an issue then follow the steps for using the [[Sophos Rootkit Command Line Utility|http://www.sophos.com/support/knowledgebase/article/17091.html]].  Use it in safemode without network support.
#Use a spyware scanner like [[Spybot S&D|http://www.safer-networking.org/en/spybotsd/index.html]] to search for any leftover spyware, addware, registry settings, etc.  Spybot has a feature to run a scan at login after a reboot.  This scan launches after an administrator logs in but before the services start and the desktop loads.  This type of scan can be more affective in removing malware that loads at startup.
!''ADDITIONAL INFORMATION''
!!!Free Online Virus Scanners
[[Trend Micro HouseCall|http://housecall.trendmicro.com/]]
[[Kapersky Online Scanner|http://www.kaspersky.com/virusscanner]]
[[BitDefender Online Scanner|http://www.bitdefender.com/scan8/ie.html]]  ~~Note I.E. Only~~
[[Microsoft Online Scanner|http://safety.live.com]] ~~Note I.E. Only~~

!!!Free Virus Scanners
[[ClamWin|http://www.clamwin.com/]] ~~Windows Version of [[ClamAV|http://www.clamav.net/]]~~
!Information
Bixby@Beale was formerly Women's Global Health Imperative, a.k.a. WGHI and was founded by Nancy Padian.  Nancy Padian left UCSF for Research Triangle Institute out of N.C.  The name and acronym WGHI was owned by Nancy Padian so the department had to change their name.  xWGHI was used until Patricia Niland came up with Bixby@Beale.

Bixby@Beale is a subdivision of the [[Bixby Center|http://bixbycenter.ucsf.edu/]] out of [[SFGH OBGYN|https://obgyn.ucsf.edu/crs/]].
![[Key Stakeholders]]
| !Name | !Title | !eMail Address | !Phone Number | !Fax Number | !Box Number |
| [[Jane Meier, MPH |http://directory.ucsf.edu/people_detail.jsp?FNO=Jane.Meier@ucsf.edu&retLink=1&school_code=all&last_name=M&first_name=jane&offset=0]] | SFGH Division Administrator | [[meierj@obgyn.ucsf.edu|mailto:meierj@obgyn.ucsf.edu]] | 415-206-3639 | 415-206-4955 | SFGH |
| [[Patricia Niland|http://directory.ucsf.edu/people_detail.jsp?FNO=Patricia.Niland@ucsf.edu&retLink=1&school_code=all&last_name=niland&first_name=p&offset=0]] | Accounts Payable Manager | [[nilandp@globalhealt.ucsf.edu|mailto:nilandp@globalhealt.ucsf.edu]] |415-597-4964 |415-597-9300 | 1224 |
| [[Craig Cohen, MD, MPH|http://directory.ucsf.edu/people_detail.jsp?FNO=Craig.E..Cohen@ucsf.edu&retLink=1&school_code=all&last_name=cohen&first_name=c&offset=0]] | ADJUNCT ~PROF-MEDCOMP-A | [[CCohen@globalhealth.ucsf.edu|mailto:CCohen@globalhealth.ucsf.edu]] | 415-597-9192 | 415-597-9300 | 1224 |
| [[Suellen Miller, PhD, CNM, MHA|http://directory.ucsf.edu/people_detail.jsp?FNO=Suellen.Miller@ucsf.edu&retLink=1&school_code=all&last_name=Miller&first_name=S&offset=0]] | Assoc Prof | [[suellenmiller@gmail.com|mailto:suellenmiller@gmail.com]] | 415-597-9394 | 415-597-9300 | 1224 |
| [[Janet Turan|http://directory.ucsf.edu/people_detail.jsp?FNO=Janet.Turan@ucsf.edu&retLink=1&school_code=all&last_name=turan&first_name=J&offset=0]] | Assistant Adjunct Professor | [[janet.turan@ucsf.edu|mailto:janet.turan@ucsf.edu]] | 415-597-9304 | 415-597-9300 | 1224 |
![[Computer Inventory|Bixby@Beale Computer Inventory]]
<html><a href="https://spreadsheets.google.com/lv?key=tVLWJlbD_0rsXyN9DNhH7MQ&type=view&gid=0&f=true&sortcolid=-1&sortasc=true&rowsperpage=250" target="_blank">go there</a><br><iframe width=100% height="900" src="https://spreadsheets.google.com/lv?key=tVLWJlbD_0rsXyN9DNhH7MQ&type=view&gid=0&f=true&sortcolid=-1&sortasc=true&rowsperpage=250">Bixby@Beale Computer Inventory</iframe></html>
![[Printer Inventory|Printing]]
| !Printer Name | !Printer Make | !Printer Model | !Serial Number | !Location | !Support Group | !IP Address |
| [[B@B P3|http://128.218.216.30]] | HP | Laser Jet 8100 |  | Faces POD | [[SOM Desktop Support]] | [[128.218.216.30|http://128.218.216.30]] |
| [[B@B P2|http://128.218.215.30]] | HP | Laser Jet 8100 | ~JPDLR87309 | Faces POD | [[SOM Desktop Support]] | [[128.218.215.30|http://128.218.215.30]] |

<html><a href="https://spreadsheets.google.com/lv?key=tVLWJlbD_0rsXyN9DNhH7MQ&type=view&gid=0&f=true&sortcolid=-1&sortasc=true&rowsperpage=250" target="_blank">go there</a><br><iframe width=100% height="900" src="https://spreadsheets.google.com/lv?key=tVLWJlbD_0rsXyN9DNhH7MQ&type=view&gid=0&f=true&sortcolid=-1&sortasc=true&rowsperpage=250">Bixby@Beale Computer Inventory</iframe></html>






!''SUMMARY''
RIM (Research In Motion) Blackberry devices are the SOM ISU standard issue PDA/Phone/Personal Organizer for wireless synchronization to SOM ISU Exchange resources.  These resources include a customer's SOM ISU Exchange email box, calendar, contacts, tasks, and memos.  The synchronization is done through a BES (Blackberry Enterprise Server).

!''DETAILS''
!!!Blackberry Orders
[[Blackberry Order Process Worklow | https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Protocols%20and%20Procedures/Blackberry_Order%20Process%20Workflow.vsd]]
[[Blackberry Order Proccessing and Required Information | https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Protocols%20and%20Procedures/Blackberry_Order%20Processing%20and%20Required%20Information.doc]]

!!!Blackberry Specific Devices Information and Simulations
[[Blackberry 101 | http://na.blackberry.com/eng/]]
[[Blackberry 8300 - Curve Demo | http://www.blackberrycurve.com/8300demo/]]
[[Blackberry 8310 - Curve Demo | http://www.blackberrycurve.com/8310demo/]]
[[Blackberry 8320 - Curve Demo | http://www.blackberrycurve.com/8320demo/]]
[[Blackberry 8330 - Curve Demo | http://demos.blackberry.com/8330/na/us/gen]]
[[Blackberry 8800 Demo | http://www.blackberry8800series.com/8800demo/]]

!''ADDITIONAL INFORMATION''

[[Steps To Free Up Memory]]
[[Folder Redirection]]
[[Using A Blackberry Device As Tethered Modem]]
/***
|Name:|CloseOnCancelPlugin|
|Description:|Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.commands.cancelTiddler,{

	handler_mptw_orig_closeUnsaved: config.commands.cancelTiddler.handler,

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

});

//}}}

Name: MptwTeal
Background: #fff
Foreground: #000
PrimaryPale: #B5D1DF
PrimaryLight: #618FA9
PrimaryMid: #1a3844
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #f8f8f8
TertiaryLight: #bbb
TertiaryMid: #999
TertiaryDark: #888
Error: #f88
!12th Floor Information

| !Computing Support by Department |>|
| [[PPHG|http://globalhealthsciences.ucsf.edu/PPHG/]] ~~formerly IGH~~ | [[PSG - Computer & Network Support]] |
| Bixby @ Beale | [[SOM Desktop Support]] |
| [[GHS|http://globalhealthsciences.ucsf.edu/]] | [[SOM Desktop Support]] |
| [[GHG|http://globalhealthsciences.ucsf.edu/GHG/index.aspx]] | [[SOM Desktop Support]] |

!13th Floor Information
| !Computing Support by Department |>|
| ARI | [[SOM Desktop Support]] |
|CAPS | CAPS IT |

![[Departments At 50 Beale Street]]
In Windows 7 you can make a network location pretty simply.  The steps are listed below.

#Right click the Desktop
#Click New Connection, this starts the New Connection Wizard.
#Click Next.
#Make sure that Choose Another Network Location is selected, then click Next.
#After typing the address,Click Next.
#You will now be asked for your login information. Type in your mail login for the User Name, and your password for the password. Click OK.
##Your files will become accessible to anyone who uses this computer. This is not a wise action on a public workstation! NEVER check the remember password box on a public workstation.
#In this box, you will type in the name of the connection. (Dept, Shared, Home Drive,Network Scanner Files, etc.)
#This is the end of the wizard. The connection should now be successfully set up. You can check the box to have the network folder opened automatically. Click Finish.

To open this folder again after closing it, click Start, click My Network Places and then click the folder with the name that you chose back in Step 6. To move a file from the folder to your desktop simply click and drag the desired file to your desktop
#  <<selectTheme>> makes a dropdown selector
# <<selectPalette>> makes a dropdown selector
# <<applyPalette>> applies the current tiddler as a palette

<html><a href="http://psgweb.ucsf.edu/asp/DepartingEmployeeForm.asp" target="_blank">go there</a><br><iframe width=100% height="659" src="http://psgweb.ucsf.edu/asp/DepartingEmployeeForm.asp">New Employee Check Out Form</iframe></html>
!12th Floor
*[[Bixby@Beale]] ~~ a.k.a. xWGHI ~~
*[[Global Health Sciences]] ~~ GHS ~~
**[[Global Health Group]] ~~ GHG ~~
*[[International Global Health]] ~~ IGH ~~
!13th Floor
*[[AIDS Research Institute]] ~~ ARI ~~
*[[Center For AIDS Prevention]] ~~ CAPS ~~

When I help people setup their laptops I often get requests from these people to have access ALL of their email offline.  Here is how I set that up for them in Outlook 2007, the process is similar in Outlook 2003.

1. Start Outlook 2007
2. Click ''Tools'' | ''Options''

[img[pic1|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/Download%20Complete%20Items%20Including%20Attachments/1.jpg]]

3. Click the ''Mail Setup'' tab
4. Click the ''Send/Receive'' button

[img[pic1|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/Download%20Complete%20Items%20Including%20Attachments/2.jpg]]

5. Select ''All Accounts''
6. Click ''Edit''

[img[pic1|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/Download%20Complete%20Items%20Including%20Attachments/3.jpg]]

7. Make Sure ''Receive mail items'' is checked
8. Under Receive mail items click the radio button next to ''Download complete items including attachments for subscribed folders''

[img[pic1|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/Download%20Complete%20Items%20Including%20Attachments/4.jpg]]

9. Click ''OK'', ''Close'', ''OK''
10. You are done, now wait while EVERYTHING gets downloaded!
<html><a href="http://psgweb.ucsf.edu/asp/emergencycontactform.asp" target="_blank">go there</a><br><iframe width=100% height="659" src="http://psgweb.ucsf.edu/asp/emergencycontactform.asp">Emergency Contact Form</iframe></html>
<html><a href="http://psgweb.ucsf.edu/asp/MovingEmployeeForm.asp" target="_blank">go there</a><br><iframe width=100% height="659" src="http://psgweb.ucsf.edu/asp/MovingEmployeeForm.asp">Employee Move Form</iframe></html>
!Information
Here is a list of guides I've made for work, family, friends, myself on various computing technologies.
!Software
!!Google
*[[Google Advanced Searching]]
!!!Windows
*[[Basic Virus Removal Steps]]
*Microsoft Office
**All office versions
***[[WORD: Disable Reading Layout]]
**Office 2007
***[[SOM RPC over HTTPS Settings]] ~~how to connect to School of Medicine Email with RPC over HTTPS~~
***[[Download Complete Items Including Attachments]]
***[[OUTLOOK: Clearing The Auto-Complete Email Address Cache File]]
***[[OUTLOOK: Error - Cannot open the Outlook window]]
*[[Microsoft Virtual CD Control Panel]]
*[[Google Video Chat Plugin Install]]
*[[Create a Network Location in WIndows 7]] ~~ Like my network places in Windows XP ~~
!!Mac OS X
*Microsoft Office
**Office 2008
***[[OUTLOOK / ENTOURAGE: SEND ON BEHALF DELEGATE ACCESS SETUP]]
*[[Google Video Chat Plugin Install]]
!Hardware
*Mobile Devices
**[[BlackBerry Devices]]
*Printers
**[[Seoul Printer Scanner Copier]]
!UCSF
*[[PSG Sharepoint Account Setup]] ~~used for resource booking and other features~~
*[[Facilities Support: Contacts & Forms]] ~~The department of Epidemiology & Biostatistics~~
/***
|Name:|ExtentTagButtonPlugin|
|Description:|Adds a New tiddler button in the tag drop down|
|Version:|3.2 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#ExtendTagButtonPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{

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

//}}}

!Information
[[The department of Epidemiology & Biostatistics Facilities Support|http://www.epibiostat.ucsf.edu/general/administration/facilities.html]] provides help with building access, furniture, phones, copiers, fax machines, mail, conference room reservations, surplus and storage, and coordinate facilities maintenance services. Works to ensure emergency preparedness.
!Contacts:
Peggy Ghertner, 597-9366
[[pghertner@psg.ucsf.edu|mailto:pghertner@psg.ucsf.edu]]
50 Beale Operations Manager
!Forms
*[[New Employee Check In Form]]
*[[Departing Employee Check Out Form]]
*[[Employee Move Form]]
*[[Emergency Contact Form]]
!''SUMMARY''
Setting up Folder Redirection from a Blackberry Handheld Device

!''DETAILS''

To set folder redirection on the device, the Blackberry device software must be version 4.0 or higher.

1. From the Home screen, go to Messages. 
2. Click the trackwheel (menu button) and select Options > Email Settings. 
3. Click the trackwheel (menu button) and select Folder Redirection. 
4. In the Folder Redirection menu, expand the Mailbox by highlighting it, clicking trackwheel and selecting Expand. 
5. Under the Mailbox, expand the Inbox by highlighting it, clicking the trackwheel and selecting Expand. 
6. Highlight the folder on which you want to enable redirection. Click the trackwheel and select Change Option. 
Note: If you are unable to select Expand for any of the folders, or if the Change Option menu option is unavailable, try turning Wireless Reconcile on the handheld off and then on again. You can find Wireless Reconcile in Messages > Options > Email Reconciliation. 
7. Click the trackwheel (menu button) and select Save to save your changes.

!''ADDITIONAL INFORMATION''
<html><a href="http://spreadsheets.google.com/lv?key=tWwieuoIGnjJiKjA-5W2Kmw&type=view&gid=0&f=true&sortcolid=-1&sortasc=true&rowsperpage=250" target="_blank">go there</a><br><iframe width=100% height="900" src="http://spreadsheets.google.com/lv?key=tWwieuoIGnjJiKjA-5W2Kmw&type=view&gid=0&f=true&sortcolid=-1&sortasc=true&rowsperpage=250">GHG Computer Inventory</iframe></html>
![[Key Stakeholders]]
| !Name | !Title | !eMail Address | !Phone Number | !Fax Number | !Box Number |
| [[Sir Richard Feachem, DSc, PhD|http://en.wikipedia.org/wiki/Richard_Feachem]] | Professor | [[FeachemR@globalhealth.ucsf.edu|mailto:FeachemR@globalhealth.ucsf.edu]] | 415-597-9276 | 415-597-8299 | 1224 |
| [[Hyun-ju Woo|http://directory.ucsf.edu/people_detail.jsp?FNO=Hyun-Ju.Woo@ucsf.edu&retLink=1&school_code=all&last_name=Woo&first_name=H&offset=0]] | Analyst | [[wooh@globalhealth.ucsf.edu|mailto:wooh@globalhealth.ucsf.edu]] | 415-597-4660 | 415-597-8299 | 1224 |
| [[Elizabeth Brashers|http://directory.ucsf.edu/people_detail.jsp?FNO=Elizabeth.Brashers@ucsf.edu&retLink=1&school_code=all&last_name=Brashers&first_name=E&offset=0]] | Chief Operating Officer | [[brasherse@globalhealth.ucsf.edu|mailto:brasherse@globalhealth.ucsf.edu]] | 415-597-9220 | 415-597-8299 | 1224 |
![[Computer Inventory|GHG Computer Inventory]]
<html><a href="http://spreadsheets.google.com/lv?key=tWwieuoIGnjJiKjA-5W2Kmw&type=view&gid=0&f=true&sortcolid=-1&sortasc=true&rowsperpage=250" target="_blank">go there</a><br><iframe width=100% height="900" src="http://spreadsheets.google.com/lv?key=tWwieuoIGnjJiKjA-5W2Kmw&type=view&gid=0&f=true&sortcolid=-1&sortasc=true&rowsperpage=250">GHG Computer Inventory</iframe></html>
![[Printer Inventory|Printing]]
| !Printer Name | !Printer Make | !Printer Model | !Serial Number | !Location | !Support Group | !IP Address |
| [[GHG P1|http://128.218.216.29]] | HP | Laser Jet 4350 | ~JPRFH01957 | GHG POD | [[SOM Desktop Support]] | [[128.218.216.29|http://128.218.216.29]] |
<html><iframe src="http://docs.google.com/present/embed?id=dgd7j3dm_18f8npc4wx" frameborder="0" width="410" height="342">Google Advanced Searching</iframe></html>

!Information
This is a visual guide to installing the Google Video Chat plugin for Gmail and iGoogle.  ''Administrative Rights are NOT required to perform this install.''

!Installation Steps

1) Open a web browser and go to ''http://www.google.com/talk/''.

2) Click ''Install video chat plug-in''.

[img[http://jackpicks.com/JBKB/Files/Images/ITGuides/Google/VideoChat/1.jpg]]

3) Click ''Save File''.

[img[http://jackpicks.com/JBKB/Files/Images/ITGuides/Google/VideoChat/2.jpg]]

4) Click ''Run''.

[img[http://jackpicks.com/JBKB/Files/Images/ITGuides/Google/VideoChat/3.jpg]]

5) You will see a progress bar initializing the install.

[img[http://jackpicks.com/JBKB/Files/Images/ITGuides/Google/VideoChat/4.jpg]]

6) Click ''Restart Browsers Now''.

[img[http://jackpicks.com/JBKB/Files/Images/ITGuides/Google/VideoChat/5.jpg]]

7) Go to Gmail.

[img[http://jackpicks.com/JBKB/Files/Images/ITGuides/Google/VideoChat/6.jpg]]

8) In ''Settings'' Under the ''Chat'' tab you can test your mic and video and other configuration options.

[img[http://jackpicks.com/JBKB/Files/Images/ITGuides/Google/VideoChat/7.jpg]]

9) Start a chat with someone, click ''Video & more''.

[img[http://jackpicks.com/JBKB/Files/Images/ITGuides/Google/VideoChat/8.jpg]]

10) Invite them to a ''voice/video chat''.

[img[http://jackpicks.com/JBKB/Files/Images/ITGuides/Google/VideoChat/9.jpg]]
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{

window.hideWhenLastTest = false;

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


merge(config.macros,{

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

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

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

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

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

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

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

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

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

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

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

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

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

});

//}}}

!''SUMMARY''
''What IDX (PACE) is: ''
An integrated solution for practice management and clinical automation.

It is touchy. It's a billing system.  They are paranoid about anyone knowing anything about it.

!''DETAILS''
IDX can be used from a PC or Mac.  Remote use assumes you have a VPN account and that you connect to the UCSF network BEFORE you take any of the steps listed below.
!!!IDX - Connecting with Reflection
* [[IDX setup with Reflection|https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Application%20Support/IDX%20Setup%20with%20Reflection.pdf]]
!!!IDX - Windows Home Use
''Connecting to PACE/IDX on your PC at home:''  
#Connect to the VPN first 
#Click on the "Start" button 
#Click on "Run" in the Start Menu. 
#type in the following: telnet 64.54.42.127 
#Click the "OK" button
#You will be prompted for your PACE/IDX Username.  Enter that and hit "Return" 
#Enter your PACE/IDX Password and hit "Retrun" 
#A default warning screen will come up.  Wait. 
#The PACE/IDX interface will then come up. 
!!!IDX - Macintosh Home Use
''Connecting to PACE/IDX on your Mac at home.''
*You will want to connect to vpn.ucsf.edu with Safari.
#Connect to the VPN first via the previous instructions.
#Open the "Applications" folder.
#Open the "Utilities" folder.
#Double-click on the "Terminal" icon to launch the Terminal application.
#type in the following: telnet 64.54.42.127
#Hit the enter/return key on your keyboard
#You will be prompted for your PACE/IDX Username. Enter that and hit "Return"
#Enter your PACE/IDX Password and hit "Retrun"
#A default warning screen will come up. Wait.
#The PACE/IDX interface will then come up.

!''ADDITIONAL INFORMATION''
!''SUMMARY''
ISIS stands for Integrated Student Information System.  Is is a SOM ISU Development Team developed application.

!''DETAILS''
SOM ISU Desktop Support does not provide direct support for this application.
If calls come in to SOM ISU Desktop Support refer customers to [[Bonnie Hellvig|mailto:HellevigB@medsch.ucsf.edu]]
If calls come in from Bonnie Hellvig create a HD Ticket and assign to Rodanni (Danni) Pugeda in Remedy.

!''ADDITIONAL INFORMATION''
ISIS has two versions 1.0 and 2.0.

!!!ISIS 2.0 Update sent Wednesday, 04/16/2008
Dear Team

It is with a heavy heart that I have to say we have decided to ‘Shelf ISIS 2.0’ and revert to the old ISIS 1.0 application. The ISIS team have done an incredible job to get ISIS 2.0 to the stage it is at now, but unfortunately ISU does not have the infrastructure or skill set in-house to support this type of complex application and it would require a FTE for at least another 3-6 months to support this application after it goes live, which we cannot afford.

I will be putting a project plan together for the Rollout of ISIS 1.O again, so I may call on some of your skill sets for help during this time and will set up a meeting for us all to discuss as needed.

We will also be setting up an ISIS 2.0 project post partum meeting next week. I will share the findings of this meeting with all the ISU staff so we can all learn from the ‘lessons learned’ on this project which will hopefully enable us to grow, so that one day ISU can build out these type of applications.

We HAVE NOT shared this information with the direct users of ISIS 2.0 (only Kevin & Bonnie know) so please keep this confidential. Once we have a project plan in place we will communicate the next steps to the client.

Thank You all for your hard work and dedication on this project, especially Susan, Julian & Danni.
Rhona

Rhona Snyman
Information Services Unit – Project Management Office
UCSF, School Of Medicine
/***
|Name:|InstantTimestampPlugin|
|Description:|A handy way to insert timestamps in your tiddler content|
|Version:|1.0.10 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#InstantTimestampPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Usage
If you enter {ts} in your tiddler content (without the spaces) it will be replaced with a timestamp when you save the tiddler. Full list of formats:
* {ts} or {t} -> timestamp
* {ds} or {d} -> datestamp
* !ts or !t at start of line -> !!timestamp
* !ds or !d at start of line -> !!datestamp
(I added the extra ! since that's how I like it. Remove it from translations below if required)
!!Notes
* Change the timeFormat and dateFormat below to suit your preference.
* See also http://mptw2.tiddlyspot.com/#AutoCorrectPlugin
* You could invent other translations and add them to the translations array below.
***/
//{{{

config.InstantTimestamp = {

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

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

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

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

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

}; 

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

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

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

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

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

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

//}}}

To learn more about me you can wander through my personal knowledge base that I've named [[JBKB|http://www.jackabates.com/JBKB/jbkb.html]]~~ Jack Bates' Knowledge Base....basically everything which I know that I know~~.  Most people like to start with my [[creative entries|http://www.jackabates.com/JBKB/jbkb.html#Creative]].
!Summary
[[Key Stakeholders|http://www.stakeholder-management.com/blog/?p=16]] are not just ~VIPs int the traditional sense.  One definition is from [[Cornell University, Information Technologies|http://www2.cit.cornell.edu/computer/robohelp/cpmm/Project_Roles_and_Responsibilities.htm]] is: ‘Key Stakeholders are a subset of Stakeholders who, if their support were to be withdrawn, would cause the project to fail’.  That is the definition that is used to generate this list.

!Information by Department
| !Bixby @ Beale |>|>|>|>|>|
| !Name | !Title | !eMail Address | !Phone Number | !Fax Number | !Box Number |
| [[Jane Meier, MPH |http://directory.ucsf.edu/people_detail.jsp?FNO=Jane.Meier@ucsf.edu&retLink=1&school_code=all&last_name=M&first_name=jane&offset=0]] | SFGH Division Administrator | [[meierj@obgyn.ucsf.edu|mailto:meierj@obgyn.ucsf.edu]] | 415-206-3639 | 415-206-4955 | SFGH |
| [[Patricia Niland|http://directory.ucsf.edu/people_detail.jsp?FNO=Patricia.Niland@ucsf.edu&retLink=1&school_code=all&last_name=niland&first_name=p&offset=0]] | Accounts Payable Manager | [[nilandp@globalhealt.ucsf.edu|mailto:nilandp@globalhealt.ucsf.edu]] |415-597-4964 |415-597-9300 | 1224 |
| [[Craig Cohen, MD, MPH|http://directory.ucsf.edu/people_detail.jsp?FNO=Craig.E..Cohen@ucsf.edu&retLink=1&school_code=all&last_name=cohen&first_name=c&offset=0]] | ADJUNCT ~PROF-MEDCOMP-A | [[CCohen@globalhealth.ucsf.edu|mailto:CCohen@globalhealth.ucsf.edu]] | 415-597-9192 | 415-597-9300 | 1224 |
| [[Suellen Miller, PhD, CNM, MHA|http://directory.ucsf.edu/people_detail.jsp?FNO=Suellen.Miller@ucsf.edu&retLink=1&school_code=all&last_name=Miller&first_name=S&offset=0]] | Assoc Prof | [[suellenmiller@gmail.com|mailto:suellenmiller@gmail.com]] | 415-597-9394 | 415-597-9300 | 1224 |
| [[Janet Turan|http://directory.ucsf.edu/people_detail.jsp?FNO=Janet.Turan@ucsf.edu&retLink=1&school_code=all&last_name=turan&first_name=J&offset=0]] | Assistant Adjunct Professor | [[janet.turan@ucsf.edu|mailto:janet.turan@ucsf.edu]] | 415-597-9304 | 415-597-9300 | 1224 |
| !Global Health Sciences |>|>|>|>|>|
| !Name | !Title | !eMail Address | !Phone Number | !Fax Number | !Box Number |
| [[Sarah Macfarlane, MS|http://directory.ucsf.edu/people_detail.jsp?FNO=Sarah.Macfarlane@ucsf.edu&retLink=1&school_code=all&last_name=Macf&first_name=S&offset=0]] | Associate Adjunct Professor | [[Macfarlane@globalhealth.ucsf.edu|mailto:Macfarlane@globalhealth.ucsf.edu]] |415-502-6051|415-502-6052 | 0443 |
| [[Lindsey Lubbock, MPH|http://directory.ucsf.edu/people_detail.jsp?FNO=Lindsey.Lubbock@ucsf.edu&retLink=1&school_code=all&last_name=lubbock&first_name=L&offset=0]] | Analyst | [[lubbockl@globalhealth.ucsf.edu|mailto:lubbockl@globalhealth.ucsf.edu]] |415-597-8222 |415-597-8299 | 1224 |
| [[Karen Nelson|http://directory.ucsf.edu/people_detail.jsp?FNO=Karen.Nelson@ucsf.edu&retLink=1&school_code=all&last_name=Nelson&first_name=K&offset=0]] | Education Program Officer | [[nelsonk@globalhealth.ucsf.edu|mailto:nelsonk@globalhealth.ucsf.edu]] |415-597-9321|415-597-8299 | 1224 |
| [[Laurie Kalter, MPA|http://directory.ucsf.edu/people_detail.jsp?FNO=Laurie.Kalter@ucsf.edu&retLink=1&school_code=all&last_name=Kalter&first_name=L&offset=0]] | ANALYST V | [[kalterl@globalhealth.ucsf.edu|mailto:kalterl@globalhealth.ucsf.edu]] |415-597-8119 |415-597-8299 | 1224 |
| !Global Health Group ~~A department in Global Health Sciences, but separate enough to denote their own entry~~ |>|>|>|>|>|
| !Name | !Title | !eMail Address | !Phone Number | !Fax Number | !Box Number |
| [[Sir Richard Feachem, DSc, PhD|http://directory.ucsf.edu/people_detail.jsp?FNO=Richard.Feachem@ucsf.edu&retLink=1&school_code=all&last_name=Feach&first_name=R&offset=0]] | Professor | [[FeachemR@globalhealth.ucsf.edu|mailto:FeachemR@globalhealth.ucsf.edu]] | 415-597-9276 | 415-597-8299 | 1224 |
| [[Hyun-ju Woo|http://directory.ucsf.edu/people_detail.jsp?FNO=Hyun-Ju.Woo@ucsf.edu&retLink=1&school_code=all&last_name=Woo&first_name=H&offset=0]] | Analyst | [[wooh@globalhealth.ucsf.edu|mailto:wooh@globalhealth.ucsf.edu]] | 415-597-4660 | 415-597-8299 | 1224 |
| [[Elizabeth Brashers|http://directory.ucsf.edu/people_detail.jsp?FNO=Elizabeth.Brashers@ucsf.edu&retLink=1&school_code=all&last_name=Brashers&first_name=E&offset=0]] | Chief Operating Officer | [[brasherse@globalhealth.ucsf.edu|mailto:brasherse@globalhealth.ucsf.edu]] | 415-597-9220 | 415-597-8299 | 1224 |
/***
|Name:|LessBackupsPlugin|
|Description:|Intelligently limit the number of backup files you create|
|Version:|3.0.1 ($Rev: 2320 $)|
|Date:|$Date: 2007-06-18 22:37:46 +1000 (Mon, 18 Jun 2007) $|
|Source:|http://mptw.tiddlyspot.com/#LessBackupsPlugin|
|Author:|Simon Baird|
|Email:|simon.baird@gmail.com|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Description
You end up with just backup one per year, per month, per weekday, per hour, minute, and second.  So total number won't exceed about 200 or so. Can be reduced by commenting out the seconds/minutes/hours line from modes array
!!Notes
Works in IE and Firefox only.  Algorithm by Daniel Baird. IE specific code by by Saq Imtiaz.
***/
//{{{

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

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

window.getSpecialBackupPath = function(backupPath) {

	var now = new Date();

	var modes = config.lessBackups.modes;

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

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

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

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

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

//}}}

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

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

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 }
 return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
MPTW is a distribution or edition of TiddlyWiki that includes a standard TiddlyWiki core packaged with some plugins designed to improve usability and provide a better way to organise your information. For more information see http://mptw.tiddlyspot.com/.
!''ISSUE''
''Macintosh and the UCSF Juniper VPN''
In October 2007 the old Nortel Continvity VPN system in operation by the UCSF OAAIS group was shut down in favor of a new system by Juniper Networks. The Juniper VPN client works in many significantly different ways from the old Contivity client, including being unable to have "groups" on the server than allow users to be parts of different groups and thus distributing them different DNS servers from other groups. The practical downside to this for Macintosh users is that they are unable to connect to some SOM ISU developer resources such as the staging and integration servers over the web. Testing and troubleshooting with the OAAIS VPN team and the SOM ISU server team determined that there currently (11/2007) is no way to resolve this issue on the server side. SOM ISU server team can provide details (contact Brett Woods) on why neither group will take the steps that could resolve this issue.


!''RESOLUTION''
The current (11/2007) resolution to the problem for Macintosh users on Mac OSes Panther, Tiger and Leopard is to edit the hosts file to allow resolution of the integration and staging servers. Below follows a copied set of instructions that state the easiest and quickest method for opening and editing the hosts file.

These instructions were taken from the following web page: http://forums.macosxhints.com/archive/index.php/t-15637.html 

Open the terminal and apply the following commands.

''sudo cp /etc/hosts /etc/hosts.orig
[enter password when prompted]

Then to do the actual editing of the file:

sudo pico /etc/hosts
[enter password IF prompted]
[make your change to the file]
^X
Y (answering yes to "Save modified buffer")
and just hit return to save as the same name you opened the file with (answering "File Name to write")''

In this case, the change in the file should be an addition to the file with this entry:
''128.218.241.141 intosher.ucsf.edu
128.218.241.141 stageosher.ucsf.edu''

The SOM ISU integration servers that go to addresses ending strictly in "ucsf.edu" are the servers that are susceptible to this issue. Servers ending in "medschool.ucsf.edu" are NOT susceptible to the issue and this hosts file editing isn't necessary.

!''CONTRIBUTOR''
[[James Wesson|mailto:WessonJ@medsch.ucsf.edu]]
[[Quick Links]] [[Computing]] [[Networking]] [[Printing]] [[End User Guides]] [[Departments @50 Beale Street]]
!Summary
I use this free tool from Microsoft to mount .iso files for software installations.  It is free, easy, and clean.  This entry in the GTPC wills show you how to mount ISO files with ~VCdControlTool.exe a.k.a. Microsoft Virtual CD Control Panel.

!Purpose
The Microsoft Virtual CD Control Panel allows Windows to mount an ISO file as if were a physical ~CD-Rom.  This allows for installations from images of ~CD-Roms without the need for the original media.  In the photo below the ''Y:'' drive is an ISO file that Windows has mounted as if it were a ~CD-Rom inserted in the computer.
| [img[pic12|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/12.jpg]] |

!Download
[[winxpvirtualcdcontrolpanel_21.exe|http://download.microsoft.com/download/7/b/6/7b6abd84-7841-4978-96f5-bd58df02efa2/winxpvirtualcdcontrolpanel_21.exe]]

!Extract
Extract to a folder (I use My Documents)

!Readme - Instructions

<<<
Readme for Virtual ~CD-ROM Control Panel v2.0.1.1

THIS TOOL IS UNSUPPORT BY MICROSOFT PRODUCT SUPPORT SERVICES

System Requirements
===================
- Windows XP Home or Windows XP Professional

Installation instructions
=========================
1. Copy ~VCdRom.sys to your %systemroot%\system32\drivers folder. 
2. Execute ~VCdControlTool.exe
3. Click "Driver control"
4. If the "Install Driver" button is available, click it. Navigate to the %systemroot%\system32\drivers folder, select ~VCdRom.sys, and click Open.
5. Click "Start"
6. Click OK
7. Click "Add Drive" to add a drive to the drive list. Ensure that the drive added is not a local drive. If it is, continue to click "Add Drive" until an unused drive letter is available.
8. Select an unused drive letter from the drive list and click "Mount".
9. Navigate to the image file, select it, and click "OK". UNC naming conventions should not be used, however mapped network drives should be OK.

You may now use the drive letter as if it were a local ~CD-ROM device. When you are finished you may unmount, stop, and remove the driver from memory using the driver control.
<<<

!Installation Instructions With Pictures
1. Copy ~VCdRom.sys to your %systemroot%\system32\drivers folder. 
| [img[pic1|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/1.jpg]] |
2. Execute ~VCdControlTool.exe
| [img[pic2|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/2.jpg]] |
3. Click "Driver control"
| [img[pic3|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/3.jpg]] |
4. If the "Install Driver" button is available, click it. Navigate to the %systemroot%\system32\drivers folder, select ~VCdRom.sys, and click Open.
| [img[pic4|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/4.jpg]] | [img[http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/5.jpg]] |
5. Click "Start"
6. Click OK
| [img[pic6|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/6.jpg]] |
7. Click "Add Drive" to add a drive to the drive list. Ensure that the drive added is not a local drive. If it is, continue to click "Add Drive" until an unused drive letter is available.
| [img[pic7|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/7.jpg]] |
8. Select an unused drive letter from the drive list and click "Mount".
| [img[pic8|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/8.jpg]] |
9. Navigate to the image file, select it, and click "OK". UNC naming conventions should not be used, however mapped network drives should be OK.
| [img[pic9|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/9.jpg]] | [img[http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/10.jpg]] |
You may now use the drive letter as if it were a local ~CD-ROM device. When you are finished you may unmount, stop, and remove the driver from memory using the driver control.
| [img[pic11|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/11.jpg]] |
| [img[pic12|http://www.jackabates.com/Files/Images/ITGuides/msvcdrom/12.jpg]] |
!''SUMMARY''
Just a list of the most common support calls and how to handle them.  If you have a common support call with an easy solution email your suggestion to the [[BFU Administrator | mailto:batesj@medsch.ucsf.edu]]

!''DETAILS''
!!!Password Resets
We support SOM AD password resets and ISU hosted application account resets ([[SOM ISU Developed Applications]])
*SOM AD (SOM) resets:
**ISU Service Desk resets to default password with change password at next logon. 
*[[OAAIS|OAAIS - Campus IT Service & Support]] AD (CAMPUS)
**ISU Service Desk refers caller to [[OAAIS|OAAIS - Campus IT Service & Support]] Help Desk at ''514-4100, option #2''
*[[Medical Center|UCSF Medical Center IT Customer Service]] AD (UCSFMC)
**ISU Service Desk refers caller to [[Medical Center|UCSF Medical Center IT Customer Service]] IT Help Desk at ''514-4100, option #1''
!!!VPN
''[[Medical Center|UCSF Medical Center IT Customer Service]] and [[OAAIS|OAAIS - Campus IT Service & Support]] Networks Deploy two different vendor VPN solutions.''
*[[OAAIS VPN|http://oaais.ucsf.edu/OAAIS/Services_Overview/7-DSY/secured_com/Remote_Access/web_vpn.html]]- used by SOM users- is the located at https://vpn.ucsf.edu - Password resets are provided by [[OAAIS|OAAIS - Campus IT Service & Support]] Help Desk at ''514-4100, option 2''
**Information about OAAIS VPN is located at the [[vpn@ucsf Web VPN Service|http://oaais.ucsf.edu/OAAIS/Services_Overview/7-DSY/secured_com/Remote_Access/web_vpn.html]] page.
**Information about SOM VPN help and client settings is located at http://www.medschool.ucsf.edu/help/Training/remote_access/index.aspx
*Medical Center VPN is CISCO based- support and password resets are provided by [[Medical Center|UCSF Medical Center IT Customer Service]] Help Desk - ''514-4100, option 1''
**Information for [[Medical Center|UCSF Medical Center IT Customer Service]] and VPN is located at http://itnas.ucsfmedicalcenter.org/vpn/
!!!EMAIL
SOM, [[OAAIS|OAAIS - Campus IT Service & Support]] and the [[Medical Center|UCSF Medical Center IT Customer Service]] administer their own exchange servers.
''SOM email support is as follows:''
*If the computer is on our support list we provide desktop client support for only Microsoft Entourage and Microsoft Outlook.
*If the computer is not on our support list we support the [[SOM OWA|https://somowa.medschool.ucsf.edu/]] and [[Online Password Manager|https://somowa.medschool.ucsf.edu/iisadmpwd/aexp2b.asp]]. Refer caller to our ISU website for [[client configurations|http://www.medschool.ucsf.edu/help/Training/index.aspx]].
*If we do not support that department's computers refer the caller to their Department CSC - see [[Campus CSC Guide | http://medschool.ucsf.edu/listbuilder/cscs.htm]]
*[[SOM OWA Password Issues]] troubleshooting guide
!!!Wireless Network Access
''[[OAAIS|OAAIS - Campus IT Service & Support]] and [[Medical Center|UCSF Medical Center IT Customer Service]] have separate Wireless Networks at different locations.''
*[[Medical Center|UCSF Medical Center IT Customer Service]] Wireless information is available at http://itnas.ucsfmedicalcenter.org/wireless/
**[[Medical Center|UCSF Medical Center IT Customer Service]] Wireless locations information is located at http://itnas.ucsfmedicalcenter.org/wireless/locations.asp
**If we support their department's computers SOM ISU facilitates the customer request for wireless access through Remedy to the UCSFMC IT group- see [[Mike|mailto:quirkm@medsch.ucsf.edu]] for details.
**If we do not support their department's computers then refer the caller to their Department CSC - [[Campus CSC Guide | http://medschool.ucsf.edu/listbuilder/cscs.htm]]
*[[OAAIS|OAAIS - Campus IT Service & Support]] Wireless Network Information and locations is located at the [[OAAIS|http://oaais.ucsf.edu]] [[Wireless Acess Areas page|http://oaais.ucsf.edu/OAAIS/Services_Overview/networking/g1/wireless.html]]
**[[OAAIS|OAAIS - Campus IT Service & Support]] Wireless access requires the user to have a GALEN account- Account creation and administration is web based at http://www.library.ucsf.edu/info/lias/
**If we support the Department computer, we would help the customer with registering their wireless M.A.C. address with their GALEN account
**If we do not support their department's computers then refer the caller to their Department CSC - [[Campus CSC Guide | http://medschool.ucsf.edu/listbuilder/cscs.htm]]
!!!Telephone Support
''[[OAAIS|OAAIS - Campus IT Service & Support]] and [[Medical Center|UCSF Medical Center IT Customer Service]] have separate voice infrastructures.''
*[[OAAIS|OAAIS - Campus IT Service & Support]] Telecommunications Support- (502, 476, 514 , 597 prefixes) is provided at ''514-4100, option 2''
*[[Medical Center|UCSF Medical Center IT Customer Service]] Telecommunications Support- (353, 885 prefixes) is provided at ''514-4100, option 1''
!!Dean's Office Support at SFGH 
DO SFGH IT can be reached at 415-206-5126
Name: MptwBlack
Background: #000
Foreground: #fff
PrimaryPale: #333
PrimaryLight: #555
PrimaryMid: #888
PrimaryDark: #aaa
SecondaryPale: #111
SecondaryLight: #222
SecondaryMid: #555
SecondaryDark: #888
TertiaryPale: #222
TertiaryLight: #666
TertiaryMid: #888
TertiaryDark: #aaa
Error: #300

This is in progress. Help appreciated.


Name: MptwBlue
Background: #fff
Foreground: #000
PrimaryPale: #cdf
PrimaryLight: #57c
PrimaryMid: #114
PrimaryDark: #012
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

/***
|Name:|MptwConfigPlugin|
|Description:|Miscellaneous tweaks used by MPTW|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#MptwConfigPlugin|
!!Note: instead of editing this you should put overrides in MptwUserConfigPlugin
***/
//{{{
var originalReadOnly = readOnly;
var originalShowBackstage = showBackstage;

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

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

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

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

config.mptwVersion = "2.5.3";

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

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

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

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

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

//}}}
Name: MptwGreen
Background: #fff
Foreground: #000
PrimaryPale: #9b9
PrimaryLight: #385
PrimaryMid: #031
PrimaryDark: #020
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

Name: MptwRed
Background: #fff
Foreground: #000
PrimaryPale: #eaa
PrimaryLight: #c55
PrimaryMid: #711
PrimaryDark: #500
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

|Name|MptwRounded|
|Description|Mptw Theme with some rounded corners (Firefox only)|
|ViewTemplate|MptwTheme##ViewTemplate|
|EditTemplate|MptwTheme##EditTemplate|
|PageTemplate|MptwTheme##PageTemplate|
|StyleSheet|##StyleSheet|

!StyleSheet
/*{{{*/

[[MptwTheme##StyleSheet]]

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

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

/*}}}*/

Name: MptwSmoke
Background: #fff
Foreground: #000
PrimaryPale: #aaa
PrimaryLight: #777
PrimaryMid: #111
PrimaryDark: #000
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88

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

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

!PageTemplate
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
	<div class='headerShadow'>
		<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
	</div>
	<div class='headerForeground'>
		<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
	</div>
</div>
<!-- horizontal MainMenu -->
<div id='topMenu' refresh='content' tiddler='MainMenu'></div>
<!-- original MainMenu menu -->
<!-- <div id='mainMenu' refresh='content' tiddler='MainMenu'></div> -->
<div id='sidebar'>
	<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
	<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->

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

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

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

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

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

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

<!--}}}-->

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

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

!StyleSheet
/*{{{*/

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/*}}}*/

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

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

<!-- horizontal MainMenu -->
<div id='topMenu' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<span refresh='content' tiddler='SiteTitle' style="padding-left:1em;font-weight:bold;"></span>:
<span refresh='content' tiddler='MainMenu'></span>
</div>
<div id='sidebar'>
	<div id='sidebarOptions'>
		<div refresh='content' tiddler='SideBarOptions'></div>
		<div style="margin-left:0.1em;"
			macro='slider chkTabSliderPanel SideBarTabs {{"tabs \u00bb"}} "Show Timeline, All, Tags, etc"'></div>
	</div>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
</div>

For upgrading. See [[ImportTiddlers]].
URL: http://mptw.tiddlyspot.com/upgrade.html
/***
|Description:|A place to put your config tweaks so they aren't overwritten when you upgrade MPTW|
See http://www.tiddlywiki.org/wiki/Configuration_Options for other options you can set. In some cases where there are clashes with other plugins it might help to rename this to zzMptwUserConfigPlugin so it gets executed last.
***/
//{{{

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

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

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

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

//}}}
![[UCSF Network Information]]

!50 Beale St. Quick Information
''12th Floor''

__Wireless Networks__
ssid: ''IGH''
Password: ''n2xa8!wr''

__Networking Support__
[[OAAIS Service Desk|OAAIS - Campus IT Service & Support]]: ''514-4100 Option 2''
[[PSG Help Desk|PSG - Computer & Network Support]] ~~(PPHG Staff Only)~~: ''514-8122''
<html><a href="http://psgweb.ucsf.edu/asp/NewEmployeeForm.asp" target="_blank">go there</a><br><iframe width=100% height="659" src="http://psgweb.ucsf.edu/asp/NewEmployeeForm.asp">New Employee Check In Form</iframe></html>
/***
|Name:|NewHerePlugin|
|Description:|Creates the new here and new journal macros|
|Version:|3.0 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#NewHerePlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
merge(config.macros, {
	newHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newTiddler "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
		}
	},
	newJournalHere: {
		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			wikify("<<newJournal "+paramString+" tag:[["+tiddler.title+"]]>>",place,null,tiddler);
		}
	}
});

//}}}

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

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

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

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

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


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

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

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

//}}}

!''SUMMARY''
OAAIS = Office of Academic and Administrative Informatin Services.  OAAIS is also refered to as CAMPUS IT and was formally known as CAMPUS ITS.

!''DETAILS''

''CONTACT:''  OAAIS Customer Support (Office of Academic and Administrative Information Systems) - Campus IT
''PHONE:'' 415-514-4100 Option 2
''WEB:'' [[UCSF OAAIS Customer Support Web Site | http://its.ucsf.edu]]


!''ADDITIONAL INFORMATION''

//__Services and Software Support__:// VPN access requests, VPN user name retrieval, VPN password retrieval, OLPPS access requests, OLPPS print queue setup

//__OAAIS Supported Services__:// [[OAAIS Supported Services and Applications | http://oaais.ucsf.edu/OAAIS/service_catalog/a-z_list.html]] - A list of some of the OAAIS supported applications and services.

[[OLPPS]] - [[Online-Payroll/Personnel Systems | http://oaais.ucsf.edu/OAAIS/Services_Overview/332-DSY/175-DSY.html]]
''CLS'' - [[Campus Locator System | http://oaais.ucsf.edu/OAAIS/Services_Overview/332-DSY/42-DSY.html]]
''[[Network Services | http://oaais.ucsf.edu/OAAIS/Services_Overview/networking/13-DSY.html]]'' - [[Requesting a Static IP from OAAIS Network Support | https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Network/Requesting%20a%20Static%20IP%20Address%20From%20ITS.doc]]
//[[VPN Remote Connectivity Center: | https://vpn.ucsf.edu]]// VPN Remote Connectivity Center [[Training Courses | http://oaais.ucsf.edu/OAAIS/7-DSY/email/secured_com/Remote_Access/web_vpn/81-DSY.html]] - Explanation of UCSF's VPN services including differences between the VPN web portal and the traditional Contivity VPN Nortel client.


//__OAAIS Decommissioned Services__:// 
[[Winph1.5]]
!''SUMMARY''
OAAIS has implemented a policy to auto delete any VPN account that has "separated" entered for personnel status in OLPPS

!''DETAILS''

VPN accounts will automatically be terminated by UCSF OAAIS if the status with UCSF is changed in the personnel system by HR to “separated”.  Personnel status needs to be something other than “separated” to have an active VPN account with UCSF.  Otherwise  VPN accounts will be automatically deleted by the system on a daily basis as the system updates.  To stop this auto deletion HR departments need to change the status to either, “inactive”, “WOS”, or something along those lines.  There is no way to recover a deleted account.  Before a new account is created HR department needs to follow the steps above and then contact OAAIS (514-4100, option #2) to request a new VPN account.

!CONTRIBUTOR
[[Ray Cheung|mailto:cheungr@medsch.ucsf.edu]]
!''SUMMARY''
This Information article notes the exact steps necessary for a VPN account to be created for a UCSF Contractor.
!''DETAILS''
''2008 VPN Requirements For Contractors''
REQUIREMENTS AS OF JANUARY 18, 2008
#UC contact name and phone number
#Contractor's name and UC ID number
#Sponsoring department's human resource analyst must verify that the contractor has been assigned a UC ID in the IID system of PP2 and that the IDAF section of the contractor's record is filled out and complete. Add a phone number or email address for the contractor via the CLUP function in CLDS.
#Employee must be able to be assigned a CHG or HD case in the UCSF Remedy system (this is dependent upon step 3).
#Duration of account/access (maximum is one year, after which it will need to be renewed)
#Will the contractor need to access a department server only; or will the contractor need to access other UCSF network resources?
#If the contractor needs access to other UCSF resources such as the Library, OAAIS Customer Support will submit a request for approval of a VPN account to the Library and will create a VPN account upon approval with an end date of a 1 year maximum. 
#Department is responsible for contacting OAAIS Customer Support approximately one month before the expiration date if they need to extend the VPN account.
!''CONTRIBUTOR''
[[James Wesson|mailto:WessonJ@medsch.ucsf.edu]]
!''Summary''
''OLPPS'' = [[Online-Payroll/Personnel Systems | http://oaais.ucsf.edu/OAAIS/Services_Overview/332-DSY/175-DSY.html]]  OLPPS is maintained at UCSF by [[OAAIS - Campus IT Service & Support]].

!''Details''
!!!OLPPS Connectivity
*[[SOM OLPPS Connectivity Installation Instructions|https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Application%20Support/Installing%20OLPPS%20Connectivity.pdf]]
!!!Printing to a Network Printer
*On the Printer set APPEND CR to LF = Yes
**For example on a ''HP Printer'' – ''CONFIGURE DEVICE'' => ''PRINTING'' => select ''Append CR to LF = NO'' change it to ''YES'' => Click ''Apply''
[img[OLPPS Settings on HP Printers|Images/OLPPSPrinterSettings/1.jpg]]

*Have the customer call 514-4100 option 2 and tell them to set their OLPPS printer to the printer IP address of the printer modified in step 1.
!!!Printing to an Attached Local Printer
Follow the steps in the Printing Section of [[Installing OLPPS Connectivity | https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Application%20Support/Installing%20OLPPS%20Connectivity.pdf]]
!''Additional Information''
!’’SUBJECT LINE’’
OUTLOOK / ENTOURAGE SEND ON BEHALF DELEGATE ACCESS SETUP
!’’ISSUE’’
Clients using Entourage 2004 or Entourage 2008 are unable to Send On Behalf of even though they have been granted Owner level permissions to the top level folder and the Inbox.
!’’ RESOLUTION’’
The client MUST be granted delegate access through the Options / Delegates option tab for Send On Behalf to work properly.
(1)Set up Outlook to login as the account you want people to be a delegate of
(2)Login as that account.
(3)Right click on the top level folder while in the Folders view, select Permissions, grant “Owner” access to the username you want to be a delegate that can send on behalf of.
(4) Right click on the Inbox folder while in the Folders view, select Permissions, grant “Owner” access to the username you want to be a delegate that can send on behalf of.
(5)Click on “Tools” in the Outlook menu bar.
(6)Select “Options…”
(7)Click on the “Delegates” tab.
(8)Click the Add button and add the username you want to have access.
(9)Once selected, set up the account Delegate settings as per the illustration provided:
[img[Delegate Permissions|Images/EntourageDelegates/1.jpg]]
(10)Click OK and Exit Outlook. 
(11)Clients should now be able to properly send on behalf of from Entourage as well as Outlook.
!’’ADDITIONAL INFORMATION’’
This information was generated by James Wesson after troubleshooting this issue with Brad Immanuel in Anesthesia.

!’’CONTRIBUTOR’’
[[James Wesson|mailto:wessonj@medsch.ucsf.edu]]


!''ISSUE:''
Outlook 2003 profiles become corrupted.

!''RESOLUTION:''
The repair must be made with the Outlook startup switches or via the Outlook Tools utility located at I:\Installers\PC\PC Utilities\Microsoft\OutlookTools  Outlook Tools utility requires .net 2.0 or higher.  Install the Outlook Tools and run the "cleanprofile" switch.

Alternatively, the clean profile switch can be run via the Run command tool simply by launching Run and putting in "Outlook /cleanprofile"
!''ISSUE''
User wants to clear out the addresses that are auto-completing in Outlook

!''RESOLUTION''
From http://www.outlook-tips.net/faq.htm

''The auto-fill option pulls up every address a person had, even though I have removed the old addresses from my contacts.''
The auto-complete cache is stored in a *.nk2 file at C:\Documents and Settings\username\Application Data\Microsoft\Outlook. You can delete the file to start fresh or use the arrow keys (as you are typing addresses in the fields) to select an address and use the Delete key to remove it.
!Information
This error occurs after a system crash and can be easily fixed by using outlook resetnav option which clears and regenerates the Navigation Pane.

!Details

Office Error:

[img[http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/Outlook%20Error%20Cannot%20open%20the%20Outlook%20window/1.jpg]]

Workaround

1. Click ''Start''
2. Click ''Run''

[img[http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/Outlook%20Error%20Cannot%20open%20the%20Outlook%20window/3.jpg]]

3. In dialogue box type ''Outlook /resetnavpane''

[img[http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/Outlook%20Error%20Cannot%20open%20the%20Outlook%20window/2.jpg]]

After you execute the resetnav switch Microsoft Office Outlook will launch with out problems.
!''SUMMARY''
OBGYN is a SOM ISU Supported Department.  SOM ISU supports OBGYN customers at Mount Zion, Parnassus, and Laurel Heights.

!''DETAILS''


!''ADDITIONAL INFORMATION''
OBGYN has employees in Oakland at a Broadway Street location.  SOM ISU does not support these customers.  See information below on support for these customers.

''[[Ray Cheung|mailto:cheungr@medsch.ucsf.edu]] Sent 06/30/2008''

Hello all,

Here is an update so that everyone is on the same page concerning user email account access requests and computer support at ObGyn’s new Oakland office location on Broadway street.

*They have a vendor, Bay Office Computing (BOC), LLC, and they will be the first contact and onsite computer support techs.  All computing requests should be directed to BOC FIRST and then escalated to SFGH CNS by BOC, if needed.  BOC sets up their PCs, onsite server and new local ANSIRH domain.  All computing and server folder share access requests for ANSIRH should be directed internally to either Carla Eckhardt (or her designee) or BOC FIRST and then escalated to SFGH CNS by BOC, if needed.  SFGH CNS is not responsible for any direct onsite computer support and very limited phone support via BOC.
**''Here is one of their techs:''
Jerome Daguio
System Administrator
BAY OFFICE COMPUTING, LLC 
415.391.3100 x213 
www.bayoc.com 
*Their after-hours support should be handled by Bay Office Computing.
*ALL new account creations (mainly for email accts) should be directed to "Support, SFGH" by their "authorized requester”, Carla Eckhardt.  ObGyn HR should coordinate with Carla Eckhardt to submit all new account requests for that site, SOM ISU cannot create, maintain, or troubleshoot user accounts for users of the Oakland site.
*All of their machines will eventually be joined to their new ANSIRH domain.


~Ray

_______________________________________
Ray Cheung
UCSF, School of Medicine, Dean's Office ISU
Ph:  415-502-1919
Fax: 415-502-2255

!’’CONTRIBUTOR’’
[[''Ray Cheung|mailto:cheungr@medsch.ucsf.edu]]


!''SUMMARY''
PDB Adhoc reporting is not installed by default during PDB Client Installations.  Users need special permissions for these reports.

!''DETAILS''

!!!ODBC Set-up

1.  Open Start • Control Panels • Administrative Tools  • Data Sources
2.  Select the tab for User or System DSN. User DSNs are good for you only and System DSNs are useful for anyone who logs into the computer.
3.  Click “Add”
4.  Select “SQL Server” from the driver list and then click “Finish”
5.  On the new “Create a New Data Source” window, name the DSN “PDB” and type “SomLH32” for the Server and click “Next”
6.  On the next page, click “Client Configuration”
7.  On the new “Edit Network Library Configuration” window, select TCP/IP for the Network Library
8.  Also, change the Port Number to 2433. You may need to un-check “Dynamically determine port”.
8.1 Click 
9.  Click “Next”
10. Click “Change the default database to” and select SomCentral
11. Click “Next”
12. Click “Finish”
13. Click “Test Data Source” and it should show a happy message.
14. Click OK and you’re half done.

!!!Access Front-end set-up

1. Create a new Access database called “PDB AdHoc Reporting” or something similar
2. Select File • Get External Data • Link Tables
3. In “Files of Type” select “ODBC Databases”
4. Select the data source you created and click “OK”
5. In the next window, select the following database objects (dbo) to bring into your database.
	dbo.vw_pdb_ah_costcenter 
	dbo.vw_pdb_ah_customfieldval 
	dbo.vw_pdb_ah_customfieldval_log 
	dbo.vw_pdb_ah_Evalrating 
	dbo.vw_pdb_ah_hist_ahvzapp 
	dbo.vw_pdb_ah_hist_ahvzdis 
	dbo.vw_pdb_ah_hist_ahvzper 
	dbo.vw_pdb_ah_mcb_costcenter 
	dbo.vw_pdb_ah_MedCenter 
	dbo.vw_pdb_ah_person 
	dbo.vw_pdb_ah_person_log 
	dbo.vw_pdb_ah_persondegree 
	dbo.vw_pdb_ah_personEvaluation 
	dbo.vw_pdb_ah_PersonEvaluation_log 
	dbo.vw_pdb_ah_personLicense 
	dbo.vw_pdb_ah_personLicense_log 
	dbo.vw_pdb_ah_personLOA 
	dbo.vw_pdb_ah_personLOA_log 
	dbo.vw_pdb_ah_personLOADetail 
	dbo.vw_pdb_ah_personLOADetail_log 
	dbo.vw_pdb_ah_profilefilter 
	dbo.vw_pdb_ah_profileuserid 
	dbo.vw_pdb_ah_ref_ApptType 
	dbo.vw_pdb_ah_ref_BargainingUnit 
	dbo.vw_pdb_ah_ref_EDBLOACode 
	dbo.vw_pdb_ah_ref_EmpStatus 
	dbo.vw_pdb_ah_ref_ethnicity 
	dbo.vw_pdb_ah_ref_LOAEvent 
	dbo.vw_pdb_ah_ref_LOAType 
	dbo.vw_pdb_ah_ref_PayVisaType 
	dbo.vw_pdb_ah_ref_SeparateDestin 
	dbo.vw_pdb_ah_ref_SeparateReason 
	dbo.vw_pdb_ahvdept_cascade_a 
	dbo.vw_pdb_ahvdept_info_a 
	dbo.vw_pdb_ahvdept_mailaddr_a 
	dbo.vw_pdb_ahvdept_role_a 
	dbo.vw_pdb_ahvdpa_fund_info_a 
	dbo.vw_pdb_ahvdpa_fund_mailaddr_a 
	dbo.vw_pdb_ahvdpa_info_a 
	dbo.vw_pdb_ahvdpa_mailaddr_a 
	dbo.vw_pdb_ahvfund_fy_info_a 
	dbo.vw_pdb_ahvfund_info_a 
	dbo.vw_pdb_ahvnca_info_a 
	dbo.vw_pdb_ahvper_cls_a 
	dbo.vw_pdb_ahvpgm_info_a 
	dbo.vw_pdb_ahvsf_depdch_a 
	dbo.vw_pdb_ahvsf_depdes_prim_a 
	dbo.vw_pdb_ahvzapp_app_d 
	dbo.vw_pdb_ahvzben_ben_d 
	dbo.vw_pdb_ahvzbld_bld 
	dbo.vw_pdb_ahvzccls_cls_a 
	dbo.vw_pdb_ahvzcdeg_deg_a 
	dbo.vw_pdb_ahvzceml_eml_a 
	dbo.vw_pdb_ahvzcphn_phn_a 
	dbo.vw_pdb_ahvzdis_dis_d 
	dbo.vw_pdb_ahvzdos_dos 
	dbo.vw_pdb_ahvzern_ern_d 
	dbo.vw_pdb_ahvzhme_hme 
	dbo.vw_pdb_ahvzpay_pay_d 
	dbo.vw_pdb_ahvzpcm_pcm_d 
	dbo.vw_pdb_ahvzper_per_d 
	dbo.vw_pdb_ahvztci_tci 
	dbo.vw_pdb_ahvzttl_ttl
6. Click "Ok" on all windows asking you for Unique Record Identifier
7. Wait a bit.
8. Start querying.
!''ADDITIONAL INFORMATION''
Anything that goes beyond detail descriptions, such as contact 
!''SUMMARY''
PDB stands for Personnel Data Base.  PDB is a SOM ISU Development Team developed application.

!''DETAILS''
*Documentation located in [[\\somlh17.som.ucsf.edu\app$\ISU Applications\Shared Accross Multiple Units\PDB | \\somlh17.som.ucsf.edu\app$\ISU Applications\Shared Accross Multiple Units\PDB]]
*PDB Installation outlined in the [[ PDB Client Installation Procedures | https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Application%20Support/PDB%20Installation%20Procedures.pdf]].
*PDB Troubleshooting outlined in the [[ PDB Troubleshooting Guide | https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Application%20Support/PDB%20Troubleshooting%20Guide.pdf]].
*[[PDB Adhoc Reports Setup]]
!''ADDITIONAL INFORMATION''
SOM ISU Desktop Support provides direct support for this application including installation, desktop and application troubleshooting.
If calls come in to SOM ISU Desktop Support create a HD Ticket and follow the [[ PDB Troubleshooting Guide | https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Application%20Support/PDB%20Troubleshooting%20Guide.pdf]].
![[Helpdesk|http://www.epibiostat.ucsf.edu/general/it/help.html]]
415-514-8122
[[HelpDesk@psg.ucsf.edu|mailto:HelpDesk@psg.ucsf.edu]]

The instructions will vary depending on which user domain you are on. 

!Campus Network Users: ''yourname@globalhealth.ucsf.edu or yourname@ucsf.edu'' 
To comply with HIPAA security guidelines, you must follow these additional instructions in order to setup a ~SharePoint user account:
1.  Open attachment "message_zdm.html" 
2.  Follow instructions to set up ~SecureMail account in order to read the secure message. 
3.  Follow instructions in message to set up ~SharePoint account.  This is how you change your temporary password.  Once you change your password, please restart your browser.
4.  Login to your ~SharePoint account to gain access to the new reservation system. 

!PSG network users:''your name@psg.ucsf.edu''
You can already log on to the calendar site ([[http://ghs-calendar.ucsf.edu/|http://ghs-calendar.ucsf.edu/]]) using the following information: 
     ''username: PSG\yourname ''
     ''password: same password you use to log onto your computer ''

!Additional Information
Emailed by Peggy and Alex on 3/11/2010
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

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

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

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

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

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

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

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}
/***
|Name:|PrettyDatesPlugin|
|Description:|Provides a new date format ('pppp') that displays times such as '2 days ago'|
|Version:|1.0 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#PrettyDatesPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Notes
* If you want to you can rename this plugin. :) Some suggestions: LastUpdatedPlugin, RelativeDatesPlugin, SmartDatesPlugin, SexyDatesPlugin.
* Inspired by http://ejohn.org/files/pretty.js
***/
//{{{
Date.prototype.prettyDate = function() {
	var diff = (((new Date()).getTime() - this.getTime()) / 1000);
	var day_diff = Math.floor(diff / 86400);

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

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

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

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

//}}}

!12th Floor

| !Printer Name | !Printer Make | !Printer Model | !Serial Number | !Location | !Support Group | !IP Address |
| [[Seoul Printer Scanner Copier]] | Ricoh | Aficio MP C4500 |  | 12029 - North Copy Room | [[PSG - Computer & Network Support]] | [[128.218.6.43|http://128.218.6.43]] |
| [[B@B P3|http://128.218.216.30]] | HP | Laser Jet 8100 | ~USBC014102 | Faces POD | [[SOM Desktop Support]] | [[128.218.216.30|http://128.218.216.30]] |
| [[B@B P2|http://128.218.215.30]] | HP | Laser Jet 8100 | ~JPDLR87309 | Party POD | [[SOM Desktop Support]] | [[128.218.215.30|http://128.218.215.30]] |
| [[GHS Education P1|http://128.218.215.71]] | HP | Laser Jet 1320 | ~CNRC6873GR | GHS Education POD between Cubes: 12039-4 & 12039-5| [[SOM Desktop Support]] | [[128.218.215.71|http://128.218.215.71]] |
| [[GHS Education P2|http://128.218.215.81]] | HP | Laser Jet 3005 | ~CNR1N20072 | GHS Education POD Cube: 12039-7 | [[SOM Desktop Support]] | [[128.218.215.81|http://128.218.215.81]] |
| [[GHG P1|http://128.218.216.29]] | HP | Laser Jet 4350 | ~JPRFH01957 | GHG POD | [[SOM Desktop Support]] | [[128.218.216.29|http://128.218.216.29]] |

!13th Floor
| !Printer Name | !Printer Make | !Printer Model | !Serial Number | !Location | !Support Group | !IP Address |
*[[UCSF Remedy]] ~~Web access to UCSF Remedy ticket system~~
**[[Remedy Ticket Coding System]] ~~A coding system for tickets developed by James Wesson to try and make Remedy somewhat useful~~
*[[UCSF HBS Time Sheets]] ~~ Online Timesheets hosted by UCSF MC used by most of UCSF now~~
*[[UCSF Service Now]] ~~Web ITSM tool~~
*[[SOM ISU Email]] ~~Outlook Web Access~~
*[[SOM ISU Online Password Change Tool]] ~~A place online for users to change their password online, from anywhere in the world!~~
*[[SOM CSC List]] ~~A contact list of the School of Medicine ~CSCs~~
*[[SFGH CSC List]] ~~A contact list of the San Francisco General Hospital ~CSCs~~
*[[SOM ISU Internal WIKI]] ~~An internal knowledge base for SOM ISU staff~~
*[[UCSF Staff Directory]] ~~A place to search for UCSF Staff~~
*[[UCSF Payroll Calendar]] ~~Paydays, Accrual Dates, Holidays~~
*[[UC Online Payroll Database]] ~~yep...what we all make~~
/***
|Name:|QuickOpenTagPlugin|
|Description:|Changes tag links to make it easier to open tags as tiddlers|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
config.quickOpenTag = {

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

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

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

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

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

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

config.quickOpenTag.init();

//}}}

For use as the first information to go into the Summary Field in order to assist in quickly sorting via alphabetization in the Overview Console and the Incident Management Console. 

!Hardware
|!Request |!Restoration|
|HWRQ - Order |HWRS - Problem |
|HWRQ - Move |HWRS - Reimage |
|HWRQ - Image |HWRS - Other |
|HWRQ - Other | |

!Software
|!Request |!Restoration|
|SWRQ - Order |SWRS - Problem |
|SWRQ - Install |SWRS - Reinstall |
|SWRQ - Uninstall | |
|SWRQ - Instruction | |
|SWRQ - Transfer Owner | |
|SWRQ - Upgrade | |

!Networking
|!Request |!Restoration|
|NWRQ - Port Activation |NWRS - No Service |
|NWRQ - Port Drop |NWRS - Slow Service |
|NWRQ - IP Request |NWRS - Intermittent Service |
|NWRQ - SOM Server Team Task |NWRS - VPN Connectivity |
| |NWRS - Email Problem |

!Printing
|!Request |!Restoration|
|PRRQ - Order Printer |PRRS - Not Printing |
|PRRQ - Order Part |PRRS - Part Needed |
|PRRQ - Configure Printer |PRRS -  Service Needed |
|PRRQ - Move Printer |PRRS - Jam |
|PRRQ - Person Setup Printer |PRRS - Misc |

!Administrative
//Request Only//
|!Request |
|ADRQ - Information Request |
|ADRQ - Person New |
|ADRQ - Person Transfer |
|ADRQ - Person Volunteer |
|ADRQ - Person Visitor |
|ADRQ - Person Modify |
|ADRQ - Resource Account |

!Projects
//Request Only//
|!Request |
|PJRQ - Planning |
|PJRQ - Meeting |
|PJRQ - Documentation |
|PJRQ - Project |

!Contributor

[[James Wesson|mailto:wessonj@medsch.ucsf.edu]]
/***
|Name:|RenameTagsPlugin|
|Description:|Allows you to easily rename or delete tags across multiple tiddlers|
|Version:|3.0 ($Rev: 5501 $)|
|Date:|$Date: 2008-06-10 23:11:55 +1000 (Tue, 10 Jun 2008) $|
|Source:|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
Rename a tag and you will be prompted to rename it in all its tagged tiddlers.
***/
//{{{
config.renameTags = {

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

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

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

	storeMethods: {

		saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,

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

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

		removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,

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

	},

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

config.renameTags.init();

//}}}

!''SUMMARY''
These are the procedures and standards associated obtaining a static IP address from ITS. 
Procedures.  Departments, units, and workforce members affected by this policy must follow these instructions to obtain a static IP address from ITS.
!''DETAILS''
#Send filled in template (see below) to: [[ITSCS@ITS.UCSF.EDU|mailto:ITSCS@ITS.UCSF.EDU]]
##Subject: IP Request in subject
##In the body place account fund/dpa in body with the template. - NOTE: There is no charge but the account fund/DPA is required to make the service request.
#Template:
Start Template
-----
''Dept''
[Fill In Sub Dept i.e. UROLOGY/SOM] 
''Location''
[Fill In Building Room] 
''Faceplate''
[Fill In Faceplate Info] 
''Contact1''
[Fill In Enduser's info] 
''Contact2''
[Fill In SOM CSC Info] 
[yourhost] in a 128.218.[XXX].YYY and other info [Device Type] [OS]
-----
Stop Template
!''ADDITIONAL INFORMATION''
Generic hostnames are applied unless requested and the XXX is the third octet of the network the users are on.
<html><a href="http://sfghdean.ucsf.edu/cns/csc.htm" target="_blank">go there</a><br><iframe width="900" height="800" src="http://sfghdean.ucsf.edu/cns/csc.htm">SFGH CSC List</iframe></html>

<html><a href="http://medschool.ucsf.edu/listbuilder/cscs.htm" target="_blank">go there</a><br><iframe width="900" height="800" src="http://medschool.ucsf.edu/listbuilder/cscs.htm">SOM CSC List</iframe></html>
!''SUMMARY''
SOM Desktop Support reports to [[Quinn Hearne|mailto:hearnepq@medsch.ucsf.edu]].  There are staffing locations at the Parnassus, Laurel Heights, Mt. Zion UCSF, and 50 Beale Campuses and locations.

!''DETAILS''

!Main contact information:
eMail: [[isurequest@medsch.ucsf.edu|mailto:isurequest@medsch.ucsf.edu]]
Phone: (415) 502-1919

!Desktop Support Solutions
''Desktop Imaging''
*PC
**[[Dell Image Direct]]
***Dell Image Direct is the desktop imaging solution that the SOM ISU uses to create images for Dell Computers.  Currently XP is the only OS that is being used on SOM PC Computers.
***SOM DVD Image ISOs are located at [[\\Somlh17.som.ucsf.edu\app$\Installers\PC\Dell System Images - ISOs\Dell Recovery DVD ISOs|\\Somlh17.som.ucsf.edu\app$\Installers\PC\Dell System Images - ISOs\Dell Recovery DVD ISOs]]
*Apple

''Patching''
[[PLUS: PatchLink Update Server]] is located at https://update.medschool.ucsf.edu. [[PLUS: PatchLink Update Server]] is the SOM ISU solution for cross-platform system patch monitoring and updating.

''Mobile Devices''
[[BlackBerry Devices]]

''Security''
*PC
**Microsoft Windows Encrypting File System (EFS) is currently implemented on every new SOM laptop computer.  Plans are to enforce EFS on all SOM supported desktops and laptops.
***[[EFS Standard Computer Procedures v4]]
*Apple
**Mac File Vault
*USB Thumb Drives
**[[Iron Key|www.ironkey.com]] USB drives are currently being tested as a secure USB thumb drive solution.

!''ADDITIONAL INFORMATION''
''SOM Desktop Support is made up of the following individuals:''
| !Name | !Role | !Email | !Phone Number |
| Quinn Hearne | Sr. Desktop Manager | [[hearnepq@medsch.ucsf.edu|mailto:hearnepq@medsch.ucsf.edu]] | 415-514-1600 |
| Jack Bates | Field Services / 50 Beale St. Lead | [[batesj@medsch.ucsf.edu|mailto:batesj@medsch.ucsf.edu]] | 415-476-0472 |
| Barb Maher | Field Services Supervisor / Laurel Heights Lead | [[maherb@medsch.ucsf.edu|mailto:maherb@medsch.ucsf.edu]] | 415-502-4003 |
| Brian Durr | Field Services / Laurel Heights | [[durrb@medsch.ucsf.edu|mailto:durrb@medsch.ucsf.edu]] | 415-476-3282 |
| Tim Shumway | Field Services / Parnassus | [[shumwayt@medsch.ucsf.edu|mailto:shumwayt@medsch.ucsf.edu]] | 415-476-1998 |
| Stephen Boelter | Field Services / Parnassus | [[boelters@medsch.ucsf.edu|mailto:boelters@medsch.ucsf.edu]] | 415-476-4716 |
| Mical Wilson | Field Services / Parnassus | [[wilsonmc@medsch.ucsf.edu|mailto:wilsonmc@medsch.ucsf.edu]] | 415-476-3282 |
| Ray Cheung | Field Services / Parnassus | [[cheungrm@medsch.ucsf.edu|mailto:cheungrm@medsch.ucsf.edu]] | 415-514-0807 |
| James Wesson | Field Services / Mount Zion (OCIM) | [[WessonJ@medsch.ucsf.edu|mailto:WessonJ@medsch.ucsf.edu]] | 415-353-7708 |
| Andres Elenes | Field Services / 50 Beale St. | [[elenesa@medsch.ucsf.edu|mailto:elenesa@medsch.ucsf.edu]] | 415-597-4993  |
<html><a href="https://somowa.medschool.ucsf.edu/exchange" target="_blank">go there</a><br><iframe width=100% height="800" src="https://somowa.medschool.ucsf.edu/exchange">SOM ISU OWA</iframe></html>
<html><a href="https://wiki.medschool.ucsf.edu/" target="_blank">go there</a><br><iframe width=100% height="800" src="https://wiki.medschool.ucsf.edu/">SOM ISU WIKI</iframe></html>
<html><a href="https://somowa.medschool.ucsf.edu/iisadmpwd/aexp2b.asp" target="_blank">go there</a><br><iframe width=100% height="800" src="https://somowa.medschool.ucsf.edu/iisadmpwd/aexp2b.asp">SOM ISU OWA</iframe></html>
!Information
These are instructions for connecting to UCSF School of Medicine Exchange servers with Microsoft Outlook 2007 using RPC over HTTPS.

!Details

1. Open ''Outlook 2007''
2. Click ''Tools'' | ''Account Settings''

[img[1.jpg|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/RPC%20over%20HTTPS/1.jpg]]

3. Make sure your mailbox is selected
4. Click ''Change''

[img[2.jpg|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/RPC%20over%20HTTPS/2.jpg]]

5. Make sure '' "Use Cached Exchange Mode" '' is checked
6. Click ''More Settings''

[img[3.jpg|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/RPC%20over%20HTTPS/3.jpg]]

7. Click the ''Connection'' tab
8. Check ''Connect to Microsoft Exchange using HTTP'' | Click ''Exchange Proxy Settings'' 

[img[4.jpg|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/RPC%20over%20HTTPS/4.jpg]]

9. https:// = ''somowa.medschool.ucsf.edu''
10. Check the box that says ''Only connect to proxy servers that have this principle name in their certificate:''
11. type ''msstd:somowa.medschool.ucsf.edu'' in the box under ''Only connect to proxy servers that have this principle name in their certificate:''
12. Check ''On fast networks, connect using HTTP first, then connect using TCP/IP''
13. Check ''On slow networks, connect using HTTP first, then connect using TCP/IP''
14. For ''Use this authentication when connecting to my proxy server for Exchange'' select ''Basic Authentication''

[img[5.jpg|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/RPC%20over%20HTTPS/5.jpg]]

15. Click ''OK''

[img[6.jpg|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/RPC%20over%20HTTPS/6.jpg]]

16. Click ''Next''

[img[7.jpg|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/RPC%20over%20HTTPS/7.jpg]]

17. Click ''Finish''

[img[8.jpg|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/RPC%20over%20HTTPS/8.jpg]]

18. Close and restart Microsoft Outlook 2007
19. From now on when ever starting Microsoft Outllook 2007 there will be a prompt for a username and password, each and every time.  This is due to the authentication going through the School of Medicine Outlook Web Access server.  Enter the correct ''SOM\username'' and ''password''.

[img[9.jpg|http://www.jackpicks.com/JBKB/Files/Images/ITGuides/Outlook/RPC%20over%20HTTPS/9.jpg]]

20. School of Medicine email is now being accessed with RPC over HTTPS.
!''SUMMARY''
The SOM Service Desk is the centralized contact point for the [[SOM Dean's Office Units|School of Medicine Dean's Office]] and all [[SOM Supported Departments]].  The SOM Service Desk lives under [[SOM Desktop Support]] and reports to [[Mike Quirk|mailto:quirkm@medsch.ucsf.edu]] and is sometimes referred to as the SOM Call Center.

!''DETAILS''

[[Call Screening Questions]]
[[Warm Transfer]]
[[Most Common Support Calls]]
''[[Supported Printers|https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Printing/Printers.html]]''
[[Approved Account Requesters]]
[[Creating Active Directory User Accounts]]
[[SOM AD Hosting Totals(05/20/2008)|outputhosting.html]]
[[SOM RESOURCE ACCOUNT CREATION REQUEST]]
[[Mailbox Size Increases]]
[[BlackBerry Devices]]
[[iPhone]]

!''ADDITIONAL INFORMATION''

''The Service Desk is made up of the following individuals:''
| !Name | !Role | !Email | !Phone Number |
| Mike Quirk | Desktop Support Manager | [[quirkm@medsch.ucsf.edu|mailto:quirkm@medsch.ucsf.edu]] | 415-514-1600 |
| Jack Bates | Service Desk Lead | [[batesj@medsch.ucsf.edu|mailto:batesj@medsch.ucsf.edu]] | 415-476-0472 |
| Barb Maher | Field Services / Laurel Heights Lead | [[maherb@medsch.ucsf.edu|mailto:maherb@medsch.ucsf.edu]] | 415-502-4003 |
| Jade Chin | Service Desk Technician | [[chinja@medsch.ucsf.edu|mailto:chinja@medsch.ucsf.edu]] | 415-502-4002 |
| Danny Azarcon | Service Desk Technician | [[azarcond@medsch.ucsf.edu|mailto:azarcond@medsch.ucsf.edu]] | 415-476-0473 |
!''SUMMARY''
The School of Medicine Dean's Office Information Support Unit (SOM ISU) supports all of the SOM Dean's Office (SOM DO) units.  In addition to those units the SOM ISU supports the SOM Departments listed in the table below.

!''DETAILS''
*For new account requests, account modifications and deletions consult the [[Approved Account Requesters]] list.
*The table below is a comprehensive list of the departments SOM ISU supports and a contact with in that department who is the business liaison with ISU.
| !''Department'' |>| !''Services Provided by ISU'' |>| !''Contact'' |
|~| ''Desktop Support'' | ''Email'' | ''Name'' | ''Computer Names'' |
| Anatomy - BMS | X | X | Magargal, Lisa | BMSxxx |
| Anesthesia Pain Management | X | X | Synder, Laurie | PAINxxx |
| Anthropology, History and Social Medicine | X | X | Hayes, Daniel J. | DASHMxxx |
| AIDS Research Institute | X | X | Moreno, Mario | ARIxxx |
| Cardiovascular Research Institute | |  X | n/a | n/a |
| Center for Health and Community | X | X | Dudum, Dina | CHCxxx |
| Center for Health and Community- Scolars | X | | Dudum, Dina | CHSxxx |
| Dermatology | X | X | Kenaani, Mounira | DERMxxx |
| Developmental and Stem Cell Biology Program | X | X | Kita, Stacey Y | SCxxx |
| Epidemiology and Biostatistics | | X | n/a | n/a |
| Family and Community Medicine | | X | n/a | n/a |
| GCRC | | X | n/a | n/a |
| Global Health Sciences | X | X | Mansfield, Robert | GHSxx |
| Health Psychology: Epel | X | X | Epel, Elissa | EPELxxx |
| Health Psychology: Salud | X | X | Wolf, Mimi | SALUDxxx |
| Center for Human Genetics | X | X | Fergus, Cory | HUMxxx |
| Laboratory Medicine | | X | n/a | n/a |
| Microbiology and Immunology |	| | n/a | n/a |
| Neurological Surgery | | X | n/a | n/a |
| Neurology - Peds Neuro | | X | n/a | n/a |
| [[Obstetrics and Gynecology (OBGYN)]] | X | X | Ellison, Wanda | OBxxx |
| Ophthalmology | | X |	n/a | n/a |
| Orthopaedic Surgery | | X | n/a | n/a |
| Osher Center for Integrative Medicine | X | X | [[Leslie Murchy|mailto:MurchyL@ocim.ucsf.edu]] | OCIMxxx |
| Otolaryngology | | | n/a | n/a |
| Pediatrics | | X | n/a | n/a |
| Physical Therapy and Rehabilitation Sciences | | X | n/a | n/a |
| Physiology | | X | n/a | n/a |
| Sandler Program for Asthma Research | X | X | Artz, Christy L | Cxxx |
| [[School of Medicine Dean's Office]] | X | X | [[Mike Quirk|mailto:quirkm@medsch.ucsf.edu]] | Cxxx |
| Urology | X | X | Christina McDevitt | URxxx |
| Women's Global Health Imperative | X | X | Linda Wells | WGHxxx |

!''ADDITIONAL INFORMATION''
Anything that goes beyond detail descriptions, such as contact information, support related information, etc.
/***
|Name:|SaveCloseTiddlerPlugin|
|Description:|Provides two extra toolbar commands, saveCloseTiddler and cancelCloseTiddler|
|Version:|3.0 ($Rev: 5502 $)|
|Date:|$Date: 2008-06-10 23:31:39 +1000 (Tue, 10 Jun 2008) $|
|Source:|http://mptw.tiddlyspot.com/#SaveCloseTiddlerPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
To use these you must add them to the tool bar in your EditTemplate
***/
//{{{
merge(config.commands,{

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

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

});

//}}}

!''SUMMARY''
[[The School of Medicine Dean's Office|http://www.medschool.ucsf.edu/deans.aspx]] units  provide leadership administration for the UCSF School of Medicine.

!''DETAILS''

| !Dean's Office Units |>| !Services Provided by ISU | !Contact |>|
|~| ''Desktop Support'' | ''Email'' | ''Name'' | ''Computer Names'' |
| Academic Affairs | X | X | Mildred Ng | Cxxx |
| Academy of Medical Education | X | X | Christine Khuu | Cxxx |
| Administration | X | X | Jed Shivers | Cxxx |
| Admissions | X | X | Kathleen Ryan Collis | Cxxx |
| Communications | X | X | Doug Levy | Cxxx |
| Compliance/Controller | X | X | Kathy Bates | Cxxx |
| Curricular Affiars | X | X | Kathleen B Healy | Cxxx |
| Curricular Affairs: Student Training | X | X | Bernie Miller | Cxxx |
| Educational Technology | X | X | Kevin H Souza | Cxxx |
| External Programs | X | X | Valerie Margol | Cxxx |
| Faculty Medical Group (UCSFMG) | X | X | Joyce Quan | Cxxx |
| Finance | X | X | Grace A. Crvarich | Cxxx |
| Graduate Medical Educ (GME) | X | X | Lorenzo Woo | Cxxx |
| ISU | X | X | Mike Quirk | Cxxx |
| Management | X | X | Deborah Medina | Cxxx |
| Medical Education | X | X | Victoria Ruddick | Cxxx |
| Continuing Medical Educ- (OCME) | X | X | Leslie Aguayo | Cxxx |
| Human Resources Services (OHRS) | X | X | to be filled | Cxxx |
| Research | X | X | Cristina Morrison | Cxxx |
| Student Affairs | X | X | Corrie Silva | Cxxx |
| Special Projects | X | X | Bonnie Maler | Cxxx |

!''ADDITIONAL INFORMATION''
Anything that goes beyond detail descriptions, such as contact information, support related information, etc.
/***
|Name:|SelectThemePlugin|
|Description:|Lets you easily switch theme and palette|
|Version:|1.0.1 ($Rev: 3646 $)|
|Date:|$Date: 2008-02-27 02:34:38 +1000 (Wed, 27 Feb 2008) $|
|Source:|http://mptw.tiddlyspot.com/#SelectThemePlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
* Borrows largely from ThemeSwitcherPlugin by Martin Budden http://www.martinswiki.com/#ThemeSwitcherPlugin
* Theme is cookie based. But set a default by setting config.options.txtTheme in MptwConfigPlugin (for example)
* Palette is not cookie based. It actually overwrites your ColorPalette tiddler when you select a palette, so beware. 
!Usage
* {{{<<selectTheme>>}}} makes a dropdown selector
* {{{<<selectPalette>>}}} makes a dropdown selector
* {{{<<applyTheme>>}}} applies the current tiddler as a theme
* {{{<<applyPalette>>}}} applies the current tiddler as a palette
* {{{<<applyTheme TiddlerName>>}}} applies TiddlerName as a theme
* {{{<<applyPalette TiddlerName>>}}} applies TiddlerName as a palette
***/
//{{{

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

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

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

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

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

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

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

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

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

//}}}

!Windows Users
!!Windows XP
#Launch Internet Explorer (IE Only site)
#Follow this link and select Seoul printer: [[http://128.218.6.43/printers/|http://128.218.6.43/printers/]]
#Click Seoul
#On the left under ''Printer Actions'' Click ''Connect''
##If you do not see ''Connect'' then look closely for Active X components that need to be installed.  You will have to install them several times.  You will also have to click ''Connect'' several times and agree to install the printer at least two times.
#Agree to any popus or license verbage
#Install should finish and you should see Seoul listed in your Printers and Faxes in Control Panel as ''Seoul on http://128.218.6.43''
!!''Printing''
When you print to this printer there will be a popup in the top left corner of the screen asking for a copy code.  This is the same code you input at the printer to make copies.  Enter it and click OK.  Your print job will continue as normal and you can pick it up off the copier.
!!Windows 7
#Download the drivers from the Richo Website: [[HERE|http://www.ricoh-support.com/enduser/downloads/downloads.asp?fileid=12622&ricohmodelid=6366&url=http%3A%2F%2Fsupport.ricoh.com%2Fbb%2Fhtml%2Fdr_ut_e%2Fre%2Fmodel%2Fmp35%2Fmp35en.htm]]

!Mac Users
#download the printer driver from the Ricoh website, : [[HERE|http://www.ricoh-support.com/enduser/downloads/downloads.asp?fileid=12622&ricohmodelid=6366&url=http%3A%2F%2Fsupport.ricoh.com%2Fbb%2Fhtml%2Fdr_ut_e%2Fre%2Fmodel%2Fmp35%2Fmp35en.htm]].
#Run the program from Ricoh
#Open ''Printers'' from ''System Preferences''
#Add a new printer
#Select ''LPD''
#IP address for the printer is ''128.218.6.43''
#Printer name: ''Seoul''
#Printer Que: ''Seoul''
#Location: ''50 Beale St. 12th Floor North End Copy Room 12029''
!!Mac Printing
#When selecting the printer driver use the ''Ricoh Aficio MP 4500 PS.gz''  Make sure it has the ''.gz'' file extension.
#This printer requires a copy code in order to print. Without the copy code, it will not print. 
##Where to enter the copy code?
###Select the Seoul printer from your printer list when printing (yes, every single time, sorry)
###Go to ''Job Log''
###Check the ''Enable User Code''
###Enter your copy code
###Click ''Print''
a non-linear knowledge repository for anything [[@50 Beale Street|Customize Theme]]
50 Beale Street WIKI
!''Summary''
Try these steps. Not in any certain order to free up memory on a Blackberry handheld device.

!''Details''

''Closing Open Applications''
ALT+Escape/Back Key
Make sure you haven't left applications open.
There should be 5 applications that are always open. 
Default 5: Phone, BBmessanger, Browers, Homescreen, and Call Log
You may have other 3rd party applications that may have to run in the background, but most can be closed. 

''Auto Delete ON/OFF''
Under Messages:
Select Menu/Blackberry Button
Select Options
Select General Options
Keep Messages: (Shortest is 15 Days, Longest is Forever)

''Battery Pull''
Pull out battery and leave out for 30 Seconds. 
(I do this at least once a week) Just for safety and memory leaks.

''Check How much free memory you have''
Options -> Status -> File Free: XXXXXXXX Bytes
Make sure it's not low. 

''Clear Event Log''
Press ALT + LGLG
Menu/Blackberry Button
Select Clear Log

''Clear Browser Content Cache''
Open up your Browser
Menu
Options
Cache Operations
Clear Content Cache

''Delete unwanted Applications to free up Device Memory''
By using your Desktop Manager, and Application Loader 
uncheck unwanted Applications also unused Language Packs


!''Additional Information''
<<allTags excludeLists>>
<<tabs txtMoreTab "Tags" "All Tags" TabAllTags "Miss" "Missing tiddlers" TabMoreMissing "Orph" "Orphaned tiddlers" TabMoreOrphans "Shad" "Shadowed tiddlers" TabMoreShadowed>>
<<allTags excludeLists [a-z]>>
/***
|Name:|TagglyTaggingPlugin|
|Description:|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|
|Version:|3.3.1 ($Rev: 9828 $)|
|Date:|$Date: 2009-06-03 21:38:41 +1000 (Wed, 03 Jun 2009) $|
|Source:|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
See http://mptw.tiddlyspot.com/#TagglyTagging
***/
//{{{

merge(String.prototype,{

	parseTagExpr: function(debug) {

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

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

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

		var expr = "";

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

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

		if (debug)
			alert(expr);

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

});

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

		var result = [];

		var expr = tagExpr.parseTagExpr();

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

		if(!sortField)
			sortField = "title";

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

config.taggly = {

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

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

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

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

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

	setTagglyOpt: function(title,opt,value) {
		// create it silently if it doesn't exist
		if (!store.tiddlerExists(title)) {
			store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),"");

			// <<tagglyTagging expr:"...">> creates a tiddler to store its display settings
			// Make those tiddlers less noticeable by tagging as excludeSearch and excludeLists
			// Because we don't want to hide real tags, check that they aren't actually tags before doing so
			// Also tag them as tagglyExpression for manageability
			// (contributed by RA)
			if (!store.getTaggedTiddlers(title).length) {
				store.setTiddlerTag(title,true,"excludeSearch");
				store.setTiddlerTag(title,true,"excludeLists");
				store.setTiddlerTag(title,true,"tagglyExpression");
			}
		}

		// if value is default then remove it to save space
		return store.setValue(title, this.config.valuePrefix+opt, value == this.config.listOpts[opt][0] ? null : value);
	},

	getNextValue: function(title,opt) {
		var current = this.getTagglyOpt(title,opt);
		var pos = this.config.listOpts[opt].indexOf(current);
		// supposed to automagically don't let cols cycle up past the number of items
		// currently broken in some situations, eg when using an expression
		// lets fix it later when we rewrite for jquery
		// the columns thing should be jquery table manipulation probably
		var limit = (opt == "numCols" ? store.getTaggedTiddlers(title).length : this.config.listOpts[opt].length);
		var newPos = (pos + 1) % limit;
		return this.config.listOpts[opt][newPos];
	},

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

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

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

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

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

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

		var upperColsize = colSize;
		var lowerColsize = colSize;

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

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

		return output;
	},

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

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

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

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

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

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

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

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

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

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

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

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

				first = false;
			}
		}

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

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

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

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

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

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

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

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

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

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

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

						}
					}
				}
			}
		}

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

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

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

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

		var output = [];

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

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

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

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

	},

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

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

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

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

		var childOutput = "";

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

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

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

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

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

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

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

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

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

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

config.taggly.init();

//}}}

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

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

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

//}}}

/***
|Name:|ToggleTagPlugin|
|Description:|Makes a checkbox which toggles a tag in a tiddler|
|Version:|3.1.0 ($Rev: 4907 $)|
|Date:|$Date: 2008-05-13 03:15:46 +1000 (Tue, 13 May 2008) $|
|Source:|http://mptw.tiddlyspot.com/#ToggleTagPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Usage
{{{<<toggleTag }}}//{{{TagName TiddlerName LabelText}}}//{{{>>}}}
* TagName - the tag to be toggled, default value "checked"
* TiddlerName - the tiddler to toggle the tag in, default value the current tiddler
* LabelText - the text (gets wikified) to put next to the check box, default value is '{{{[[TagName]]}}}' or '{{{[[TagName]] [[TiddlerName]]}}}'
(If a parameter is '.' then the default will be used)
* TouchMod flag - if non empty then touch the tiddlers mod date. Note, can set config.toggleTagAlwaysTouchModDate to always touch mod date
!!Examples
|Code|Description|Example|h
|{{{<<toggleTag>>}}}|Toggles the default tag (checked) in this tiddler|<<toggleTag>>|
|{{{<<toggleTag TagName>>}}}|Toggles the TagName tag in this tiddler|<<toggleTag TagName>>|
|{{{<<toggleTag TagName TiddlerName>>}}}|Toggles the TagName tag in the TiddlerName tiddler|<<toggleTag TagName TiddlerName>>|
|{{{<<toggleTag TagName TiddlerName 'click me'>>}}}|Same but with custom label|<<toggleTag TagName TiddlerName 'click me'>>|
|{{{<<toggleTag . . 'click me'>>}}}|dot means use default value|<<toggleTag . . 'click me'>>|
!!Notes
* If TiddlerName doesn't exist it will be silently created
* Set label to '-' to specify no label
* See also http://mgtd-alpha.tiddlyspot.com/#ToggleTag2
!!Known issues
* Doesn't smoothly handle the case where you toggle a tag in a tiddler that is current open for editing
* Should convert to use named params
***/
//{{{

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

merge(config.macros,{

	toggleTag: {

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

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

//}}}

!''SUMMARY''
This is a quick link section to technical troubleshooting guids and flowcharts.  If you find a guide out there that is not linked here or are in need of a guide that is not out there or linked here please email the [[BFU Administrator | mailto:batesj@medsch.ucsf.edu]]
!''DETAILS''
!!!Virus Troubleshooting
[[Sophos Guide to Removing Viruses on the local computer|http://www.sophos.com/support/knowledgebase/article/13282.html]] is a good resource for learning about virus removal.
[[Basic Virus Removal Steps]]

!!!3rd Party Applications
''Office Troubleshooting''
[[OUTLOOK 2003: Corrupted Profile Repair]]
[[OUTLOOK: Clearing The Auto-Complete Email Address Cache File]]
[[OUTLOOK / ENTOURAGE: SEND ON BEHALF DELEGATE ACCESS SETUP]]
[[WORD: Disable Reading Layout]]

!!!Blackberry Troubleshooting
[[Steps To Free Up Memory]]
[[Folder Redirection]]

!!!SOM ISU Developed Applications
[[ PDB Troubleshooting Guide | https://sharepoint.medschool.ucsf.edu/SOM/ISU/somtech/Technician%20Howtos/Application%20Support/PDB%20Troubleshooting%20Guide.pdf]]

!''ADDITIONAL INFORMATION''
/***
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.
***/
//{{{

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

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

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

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

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

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

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

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

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

});
//}}}
[[UCOP At Your Service|https://atyourserviceonline.ucop.edu/ayso/]]
[[Fidelity Net Benefits|https://login.fidelity.com/ftgw/Fidelity/NBPart/Login/Init?AuthRedUrl=https://workplaceservices400.fidelity.com/NBHome.html]]
<html><a href="http://www.sacbee.com/statepay/" target="_blank">go there</a><br><iframe width=100% height="800" src="http://www.sacbee.com/statepay/">UC Online Payroll Database</iframe></html>
<html><a href="https://hbsweb.ucsfmedicalcenter.org/tpweb/" target="_blank">go there</a><br><iframe width=100% height="659" src="https://hbsweb.ucsfmedicalcenter.org/tpweb/">UCSF HBS Time Sheets</iframe></html>

!''SUMMARY''
The [[UCSF Library|http://www.library.ucsf.edu/]] has [[Parnassus and Mission Bay locations|http://www.library.ucsf.edu/info/about/libmap.html]].  [[More about the library|http://www.library.ucsf.edu/info/about/]]

!''DETAILS''
The Library has many electronic resources that staff and faculty access.
[[Remote access to electronic resources|http://www.library.ucsf.edu/info/remote/]]


!''ADDITIONAL INFORMATION''
Anything that goes beyond detail descriptions, such as contact information, support related information, etc.
!''SUMMARY''
UCSF Medical Center is part of the University of California, San Francisco. The UCSF Medical Center includes the [[UCSF Medical Center at Parnassus | http://www.ucsfhealth.org/adult/patient_guide/services/ourhospitals.html#parnassus]] , [[UCSF Medical Center at Mount Zion | http://www.ucsfhealth.org/adult/patient_guide/services/ourhospitals.html#mountzion]], [[UCSF Children's Hospital | http://www.ucsfhealth.org/childrens/index.html]], and [[Clinics | http://www.ucsfhealth.org/adult/patient_guide/all_clinics.html]]

!''DETAILS''
''PHONE:'' 415-514-4100 Option 1
''WEB:'' [[UCSF Medical Center IT Customer Support | http://it.ucsfmedicalcenter.org]]
''CONTACT:'' UCSF Medical Center IT Customer Support

//__Services and Software Support__:// 

[[IDX]]
STOR/CDS
PACE
Picis
UCare
label printers
printing from any of the aforementioned applications.

//__UCSF Medical Center Access Forms__:// [[UCSF Medical Center Access Forms | http://it.ucsfmedicalcenter.org/forms/]] - A comprehensive list of forms for access to UCSF Medical Center services available for download.

!''ADDITIONAL INFORMATION''

//__Other Possible Services Supported__:// A list of [[Training Courses | http://training.ucsfmedicalcenter.org/index.html]] at the UCSF Medical Center are available at their web site.  These course listings might shed light on any other services that might require UCSF Medical Center  support.  Manuals for all of their training courses can be download at the UCSF Medical Center [[Manuals and Job Aids | http://training.ucsfmedicalcenter.org/downloads.htm]] web site.
!''SUMMARY''
There are two main network service providers here at UCSF.  OAAIS and UCSF Medical Center.

!''DETAILS''
!!!All UCSF Networks
| !''Network Service Provider'' | !''Subnets'' | !''Technical Support'' |
| [[OAAIS|OAAIS - Campus IT Service & Support]]  | 128.218.x.x / 169.230.x.x | ''514-4100 Option 2'' |
| [[Medical Center|UCSF Medical Center IT Customer Service]] | 64.54.x.x | ''514-4100 Option 1'' |
!!!Wireless Network Access
''[[OAAIS|OAAIS - Campus IT Service & Support]] and [[Medical Center|UCSF Medical Center IT Customer Service]] have separate Wireless Networks at different locations.''
*[[Medical Center|UCSF Medical Center IT Customer Service]] Wireless information is available at http://itnas.ucsfmedicalcenter.org/wireless/
**[[Medical Center|UCSF Medical Center IT Customer Service]] Wireless locations information is located at http://itnas.ucsfmedicalcenter.org/wireless/locations.asp
**If we support their department's computers SOM ISU facilitates the customer request for wireless access through Remedy to the UCSFMC IT group- see [[Mike|mailto:quirkm@medsch.ucsf.edu]] for details.
**If we do not support their department's computers then refer the caller to their Department CSC - [[Campus CSC Guide | http://medschool.ucsf.edu/listbuilder/cscs.htm]]
*[[OAAIS|OAAIS - Campus IT Service & Support]] Wireless Network Information and locations is located at the [[OAAIS|http://oaais.ucsf.edu]] [[Wireless Acess Areas page|http://oaais.ucsf.edu/OAAIS/Services_Overview/networking/g1/wireless.html]]
**[[OAAIS|OAAIS - Campus IT Service & Support]] Wireless access requires the user to have a GALEN account- Account creation and administration is web based at http://www.library.ucsf.edu/info/lias/
**If we support the Department computer, we would help the customer with registering their wireless M.A.C. address with their GALEN account
**If we do not support their department's computers then refer the caller to their Department CSC - [[Campus CSC Guide | http://medschool.ucsf.edu/listbuilder/cscs.htm]]
!!!VPN - Virtual Private Networking
''[[Medical Center|UCSF Medical Center IT Customer Service]] and [[OAAIS|OAAIS - Campus IT Service & Support]] Networks Deploy two different vendor VPN solutions.''
*[[OAAIS VPN|http://oaais.ucsf.edu/OAAIS/7-DSY/email/secured_com/Remote_Access/web_vpn.html]]- used by SOM users- is the located at https://vpn.ucsf.edu - Password resets are provided by [[OAAIS|OAAIS - Campus IT Service & Support]] Help Desk at ''514-4100, option 2''
**Information about OAAIS VPN is located at the [[vpn@ucsf Web VPN Service|http://oaais.ucsf.edu/OAAIS/Services_Overview/7-DSY/secured_com/Remote_Access/web_vpn.html]] page.
**[[OAASIS VPN ACCOUNT REQUIREMENTS FOR CONTRACTORS]]
**[[OAAIS VPN Auto Delete Policy]]
**Information about SOM VPN help and client settings is located at http://www.medschool.ucsf.edu/help/Training/remote_access/index.aspx
*Medical Center VPN is CISCO based- support and password resets are provided by [[Medical Center|UCSF Medical Center IT Customer Service]] Help Desk - ''514-4100, option 1''
**Information for [[Medical Center|UCSF Medical Center IT Customer Service]] and VPN is located at http://itnas.ucsfmedicalcenter.org/vpn/
!''ADDITIONAL INFORMATION''
[[Requesting a Static IP From OAAIS Network Support]]
[[Macintosh VPN ACCESS TO SOM INTEGRATION SERVERS]]
[[VPN LOGIN ISSUE - Time Differential]]
<html><a href="http://spreadsheets.google.com/ccc?key=0Au5MeTZ1zXo6dFNrU1VJVEluMDZ0NUJCUjl5VjFHdWc&hl=en" target="_blank">go there</a><br><iframe width=100% height="800" src="http://spreadsheets.google.com/ccc?key=0Au5MeTZ1zXo6dFNrU1VJVEluMDZ0NUJCUjl5VjFHdWc&hl=en">UCSF Payroll Calendar</iframe></html>

<html><a href="http://help-css.ucsf.edu/arsys/shared/login.jsp" target="_blank">go there</a><br><iframe width=100% height="659" src="http://help-css.ucsf.edu/arsys/shared/login.jsp">UCSF Remedy</iframe></html>
<html><a href="https://intranet.medschool.ucsf.edu/snauthentication" target="_blank">go there</a><br><iframe width=100% height="659" src="https://intranet.medschool.ucsf.edu/snauthentication">UCSF Service Now</iframe></html>
<html><a href="http://directory.ucsf.edu/directory.jsp?error=nullvalue" target="_blank">go there</a><br><iframe width=100% height="800" src="http://directory.ucsf.edu/directory.jsp?error=nullvalue">UCSF Staff Directory</iframe></html>
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 12/03/2010 08:20:54 | Jack Arthur Bates | [[50bealest.html|file:///C:/Documents%20and%20Settings/batesj/My%20Documents/My%20Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . | ok |
| 12/03/2010 10:24:12 | Jack Arthur Bates | [[50bealest.html|file:///C:/Documents%20and%20Settings/batesj/My%20Documents/My%20Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . | ok |
| 12/03/2010 14:12:35 | Jack Arthur Bates | [[50bealest.html|file:///C:/Documents%20and%20Settings/batesj/My%20Documents/My%20Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . | ok |
| 12/03/2010 14:14:03 | Jack Arthur Bates | [[50bealest.html|file:///C:/Documents%20and%20Settings/batesj/My%20Documents/My%20Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . | ok |
| 17/03/2010 09:44:23 | Jack Arthur Bates | [[50bealest.html|file:///C:/Documents%20and%20Settings/batesj/My%20Documents/My%20Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . | ok |
| 17/03/2010 10:00:20 | Jack Arthur Bates | [[50bealest.html|file:///C:/Documents%20and%20Settings/batesj/My%20Documents/My%20Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . | ok |
| 17/03/2010 10:01:16 | Jack Arthur Bates | [[50bealest.html|file:///C:/Documents%20and%20Settings/batesj/My%20Documents/My%20Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . | ok |
| 29/03/2010 09:57:03 | Jack Arthur Bates | [[50bealest.html|file:///C:/Documents%20and%20Settings/batesj/My%20Documents/My%20Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . | ok |
| 29/04/2010 10:51:29 | Jack Arthur Bates | [[50bealest.html|file:///C:/Documents%20and%20Settings/batesj/My%20Documents/My%20Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . | ok |
| 04/05/2010 13:28:03 | Jack Arthur Bates | [[50bealest.html|file:///Users/batesj/Dropbox/UCSF%20stuff/50BealSt/50bealest.html]] | [[store.cgi|http://50bealest.tiddlyspot.com/store.cgi]] | . | [[index.html | http://50bealest.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// Environment
//

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

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

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

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

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

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

//
// uploadOptions Macro
//

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

//
// upload functions
//

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

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

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

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

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

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

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

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

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

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

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

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

//
// Utilities
// 

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

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

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

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

//
// Initializations
//

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

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

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

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


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


//}}}

!''SUMMARY''

Information for using a Blackberry device as a tethered modem.

!''DETAILS''

The May 2008 information provided here was emailed to James Wesson by Osher client Dr. Rick Hecht.  Rick uses a Blackberry 8800 as a tethered modem on a Latitude D400.  He set this up initially but his machine was reimaged and the old setup instructions from 2006/2007 were not working.  He called AT&T and the phone support was unable to find documentation within AT&T on how to configure the device and ended up searching Google for third party information.  Rick put these instructions together and emailed them to Jamie.


!Setting up the Blackberry 8800 As A Tethered Modem ~~UPDATED MAY 07 2008~~

''Task 1''

#Make sure Blackberry device manager and desktop manager software are installed on the computer.
#Go to Start > Settings > Control Panel.
#Double-click Phone and Modem Options.
#In the Phone and Modem Options window, click the Modems tab.
#Select Standard Modem and click Properties.
#In the Standard Modem Properties window, click the Advanced tab.
#In the Extra initialization commands field, type the following: AT+CGDT=1,"IP","isp.cingular"
#Click OK.
#In the Phone and Modem Options window, click OK.

''Task 2''

To configure dial-up networking, complete the procedure that is appropriate to the operating system you are using:

Microsoft Windows Vista

Click Start > Control Panel > Hardware and Sound > Phone and Modem Options

If you are opening Phone and Modem Options for the first time, a dialog box displays prompting you to enter an area code and access codes.

Windows XP operating system

#Click Start > Settings > Network Connections.
#Double-click New Connection Wizard. The New Connection Wizard opens.
#Click Next.
#Select the Connect to the Internet option. Click Next.
#Select Set up my connection manually. Click Next.
#Select Connect using a dial-up modem. Click Next.
#If the Select a Device screen appears, select the Modem - Standard Modem check box. Click Next.
#In the ISP Name field, type a name for your connection. Click Next.
#In the Phone number field, type *99#. Click Next.
#Indicate which users will have access to the connection. Click Next.
#Type the user name and password provided by your service provider. Click Next.
#Click Finish.
#In the Connect window, click Properties.
#In the Properties window, verify that Modem - Standard Modem appears beneath the Connect using heading, and then click Configure.
#In the Modem Configuration window, clear the Enable hardware flow control check box and make sure none of the other check boxes are selected. Click OK. In the Properties window, click OK.

''Task 3''

Connect to the Internet using dial-up networking.

Note: During this procedure, do not operate the BlackBerry® Browser or any third-party applications on the BlackBerry smartphone. An active data session may interfere with the modem connection. Also, make sure an ethernet connection is not active at the same time.

#Connect the BlackBerry smartphone to the computer.
#Open BlackBerry Desktop Manager.
#Click Start > Settings > Network Connections > <name of your new connection>.
#Type the user name and password provided by your service provider. Note: AT&T no longer requires this to be filled in as the SIM card is used for validation. These should be left blank.
#Click Dial.

!''ADDITIONAL INFORMATION''

These instructions are for the Blackberry 8800 and have not been tested on any other devices.
!JUNIPER VPN NETWORK CONNECT UNABLE TO LOGIN

!ISSUE
The Juniper VPN will not login.  "Access from the client is denied." is the message.  Uninstalling old clients does not resolve the issue.  Installing the new client does not resolve the issue.

!RESOLUTION
In the case of Susan Folkman during July 2008 the issue was simple: the battery on the laptop had run down and the time on the laptop was set back to 2004.  The VPN server will not allow logins from devices with that great of a time differential.

Setting the proper year on the device resolved the issue.

!ADDITIONAL INFORMATION
N/A

!CONTRIBUTOR
[[Jamie Wesson|mailto:wessonj@medsch.ucsf.edu]]
!''ISSUE''
Opening a Microsoft Word document attachment in Outlook opens in Reading Layout

!''RESOLUTION''
To turn this "feature" off start Microsoft Word | click tools | options | click the General Tab | UNCHECK "allow starting in Reading Layout"
!''SUMMARY''
A Warm Transfer is when a technician transfers a customer to another support unit.  This is done when a customer has reached the wrong support unit for their //specific// issue.  Warm transfers help stop the customer from having needless transfers, streamlines their support experience, and helps them feel taken care of.

!''DETAILS''
!!!How to do a Warm Transfer on the Campus phone system
#''Press Transfer'', With the customer on the line 
#''Dial the phone number'' you wish to transfer teh customer to
#''Talk to the other IT support'' and explain the issue and ''//why//'' you are transferring the customer to them.  Provide the customer's name and contact information encase the call gets dropped.
#''Press Transfer'' again.
#''Introduce the caller to the other IT Support''
#''Say Goodbye''
#''Hangup'' or release the call
!''Summary''
Installation and support for all Approved Desktop Exceptions is executed on a project recharge basis and not included in monthly Desktop Support recharge fees.
!''Details''
!!!Adobe Creative Suite CS2 & CS3
Adobe Creative Suite is a collection of graphic design, video editing, and web development applications made by Adobe Systems.  The following applications are included in the highest bundled suite and may be installed and supported. 
#''Adobe Photoshop''
##Adobe Photoshop is a graphics editor developed and published by Adobe Systems.
#''Adobe Illustrator''
##Adobe Illustrator is a vector-based drawing program developed and marketed by Adobe Systems.
#''Adobe InDesign''
##Adobe InDesign is a desktop publishing software application produced by Adobe Systems.
#''Adobe Acrobat''
##Adobe Acrobat is an application used to create Adobe's Portable Document Format (PDF).  Adobe Acrobat is widely used as a way to present information with a fixed layout similar to a paper publication.
#''Adobe Flash''
##Adobe Flash is a set of multimedia technologies developed and distributed by Adobe Systems.  Flash technology has become a popular method for adding animation and interactivity to web pages.
#''Adobe Dreamweaver ''
##Adobe Dreamweaver is a web development application that has incorporated support for web technologies such as CSS, JavaScript, and various server-side scripting languages and frameworks including ASP.NET, ColdFusion, JavaServer Pages, and PHP.
#''Adobe Fireworks''
##Adobe Fireworks is a bitmap and vector graphics editor. 
#''Adobe Contribute''
##Adobe Contribute is a software application for editing the content of a website. It is a desktop application, originally developed by Macromedia, allowing a wide variety of people within an organization to update web pages by reducing the amount of web design skills necessary for the process.
#''Adobe After Effects''
##Adobe After Effects is a digital motion graphics and compositing software published by Adobe Systems. It can be used in film and video post-production.
#Adobe Premiere Pro
##Adobe Premiere Pro is a real-time, time line based video editing software application. 
#''Adobe Soundbooth''
##Adobe Soundbooth is a digital audio editor by Adobe Systems for creative professionals who do not specialize in audio. 
#''Adobe Encore''
##Adobe Encore is a DVD authoring software tool produced by Adobe Systems and targeted at semi-professional video producers.
!!!ATLAS.ti
ATLAS.ti, the Knowledge Workbench, is a computer software used mostly, but not exclusively, in qualitative research or Qualitative Data Analysis (QDA).
!!!BlackBerry Desktop Software
BlackBerry Desktop Software facilitates the following:
#Load new applications and upgrades from your PC to the BlackBerry smartphone
#Back up any important information from the smartphone to your PC or restore previously saved files back to your BlackBerry smartphone
#Transfer files between your computer and your BlackBerry smartphone’s internal memory or optional media card external memory
#Migrate data from a BlackBerry smartphone, Palm® Treo or Windows Mobile® based device to a new BlackBerry smartphone
!!!Cayuse
Cayuse is a software solution that is required at UCSF for the submission of most federally funded applications via Grants.gov. Cayuse is a hosted web application that can be accessed directly from a PC or Mac desktop. The system is easy to use, highly intuitive and has robust functionality to support the creation and submission of error-free grant applications.
!!!Citrix ICA Client
Citrix ICA Client, Independent Computing Architecture (ICA), Citrix Systems' thin client protocol.  The ICA Client is used by a desktop to connect to a remote Citrix Presentation Server.
!!!Dragon Naturally Speaking
Dragon Naturally Speaking is a speech recognition software.
!!!EndNote
EndNote is a commercial reference management software package, used to manage bibliographies and references when writing essays and articles made by Thomson Scientific.
!!!WebLinc ESA 
Electronic Signature Authentication (ESA) lets physicians electronically review and sign transcribed documents from ChartScript and VoiceScript. ESA fulfills all regulatory requirements for electronic signature authentication systems and is made by SoftMed.
!!!EBI
EBI is... RDP Connection to 128.218.116.105…
!!!Extensis Portfolio
Extensis Portfolio is a digital asset management application.  Portfolio can visually organize, sort and preview a complete library of digital assets—both online and off-line. Its built-in automated features allow it to quickly embed metadata into, archive, and share digital assets.
!!!EPI Info and EPI Map
Epi Info is used by epidemiologists and other public health and medical professionals to rapidly develop a questionnaire or form, customize the data entry process, and enter and analyze data. Epidemiologic statistics, tables, graphs, and maps are produced with simple commands such as READ, FREQ, LIST, TABLES, GRAPH, and MAP. Epi Map displays geographic maps with data from Epi Info.
!!!FileMaker Pro
FileMaker Pro is a cross-platform database application from FileMaker Inc.
!!!IDEAS  Electronic Medical Record
The Center for Reproductive Health (CRH) has implemented the IDEAS Electronic Medical Record. This is a clinic management solution offering unique event-based treatment plans enable patients to be managed dynamically through the cycle.  The MedCenter IT department provides break/fix technical support for users of the CRH IDEAS Electronic Medical Record system.
!!!MeetingMaker
Meeting Maker is a collaborative scheduling management software.
!!!QWS3270 PLUS
QWS3270 PLUS is a Windows Sockets 3270 Telnet Application that the SOM ISU uses for telnet connections to servers like OLPPS.  It creates an unsecured connection.  The SOM ISU secures this connection with Stunnel.
!!!Remote Print Monitor (RPM)
RPM takes TCP/IP print jobs from servers, like the OLPPS server, and routes them through the local Windows printing system. 
!!!Stunnel
Stunnel works with a 3270 client by “wrapping” TN3270 communications in a secure, encrypted tunnel.
!!!Palm Desktop
Palm Desktop is a personal information manager computer program that can be used alone or in combination with a Palm OS personal digital assistant.

!''Additional Information''
!''Summary''
The following is a comprehensive list of our Standard Hardware platform for Microsoft Windows Personal Computers

!''Details''
#Dell Optiplex Desktops
##Model numbers include but not limited to gx620, 745, 755
#Dell Latitude Laptops
##Model numbers include but not limited to D620, D630, D420, D430, D820, D830

!''Additional Information''
!''Summary''
The following is a comprehensive list of the ISU Standard Microsoft Desktop Solution.

!''Details''

!!!Windows XP Professional SP 2 – 32-Bit
The 32 bit version of Microsoft XP Professional is our Standard Desktop Operating system for PCs.  This includes all critical updates and optional updates that are recommended by our patching solution providers.
!!!Windows Media Player 11
Windows Media Player 11 is the default player for .wmp files.  It can play multiple file formats such as .mp3, .mpg, .avi, etc.  This player and all updates are fully supported.
!!!Patch Link Update Agent
[[PLUS: PatchLink Update Server]] is the server based, central patch management system that has been implemented by SOM ISU for managing patches for supported computers.  The Patch Link Update Agent is the local client for that system.  It reports back to the PLUS server on all installed software that is registered during an install on a local machine.  For windows this means anything that you can see in Add/Remove Programs will be reported back to the PLUS Server.
!!!Sophos 7.0 Anti-virus Client
The Sophos 7.0 Anti-virus Client is the latest version of the desktop client for the SOM ISU centrally managed Anti-virus solution.  This client receive standard scanning policies from the Sophos AV server and reports back to the server and isurequest@medsch.ucsf.edu any virus activity and actions taken.
!!!UltraVNC V1.0.x with DSM Encryption Plugin
UltraVNC is a powerful, easy to use and free software that can display the screen of another computer (via internet or network) on your own screen. The program allows you to use your mouse and keyboard to control the other PC remotely. It means that you can work on a remote computer, as if you were sitting in front of it, right from your current location.

UltraVNC features a Data Stream Modification (DSM) Plugin System allowing for any kind of operation on the data exchanged between client and server, from an external DLL (independent, not linked and not distributed with UltraVNC): additional rights checking, communication timing, data recording/persistence, encryption... it's up to the DLL developer. The SOM ISU has implemented MSRC4 Plugin 1.1.8.0 , an Ultra VNC Plugin using RC4 128-bit encryption from the MS RSA provider.
!!!Adobe Acrobat Reader 8.x
Adobe Acrobat Reader is the PDF file format reader solution implemented by the SOM ISU.
!!!Adobe Flash Player
Adobe Flash Player is the high-performance, lightweight, highly expressive client runtime that delivers powerful and consistent user experiences across major operating systems, browsers, mobile phones, and devices.
!!!Adobe Shockwave
Shockwave Player displays Web content that has been created by Macromedia Director.
!!!iList – Dean's Office Only
iList can be used to create, save, and share public or private lists containing persons or items, as well as facilitate communication by storing data centrally and allowing data to be exported to Word, Excel, Palm Pilots, and Email. 
!!iTunes & Quicktime
iTunes is a digital media player application for playing and organizing digital music and video files. The program is also an interface to manage the contents on Apple's popular iPod digital media players as well as the iPhone. Additionally, iTunes can connect to the iTunes Store via the internet to purchase and download digital music, music videos, television shows, iPod games, audio books, various podcasts, feature length films (available only in the USA), Movie Rentals and Ringtones.
!!!Sun Java 2 SE 1.x Runtime Environment
Java SE (Standard Edition) is used for running Java based applications on desktop PCs, servers and similar devices. 
!!!Firefox 2.x
Mozilla Firefox is a web browser, gopher client and FTP client project descended from the Mozilla Application Suite, managed by the Mozilla Corporation. 

Firefox uses the open-source Gecko layout engine, which implements some current Web standards plus a few features which are intended to anticipate likely additions to the standards. 

Firefox includes tabbed browsing, a spell checker, incremental find, live bookmarking, a download manager, and a search system that uses Google. Functions can be added through more than 2,000 add-ons created by third party developers.
!!!Microsoft Office 2003 Professional Enterprise Edition– SP 3
Office 2003 Professional Enterprise Edition includes the following applications and all their updates through Office Service Pack 3 and updates after SP3.
#''Microsoft Word 2003''
##Microsoft Word 2003 is Microsoft's word processing software.
#''Microsoft Excel 2003''
##Microsoft Excel 2003 is a spreadsheet application written and distributed by Microsoft for Microsoft Windows. It features calculation, graphing tools, pivot tables and a macro programming language called VBA (Visual Basic for Applications).
#''Microsoft Outlook 2003''
##Microsoft Outlook 2003 is a personal information manager from Microsoft, and is part of the Microsoft Office suite.  Although often used mainly as an e-mail application, it also provides a calendar, task and contact management, note taking, a journal and web browsing.  
##Outlook can be used as a stand-alone application, but can also operate in conjunction with Microsoft Exchange Server and Microsoft Office SharePoint Server to provide enhanced functions for multiple users in an organization, such as shared mailboxes and calendars, Exchange public folders, SharePoint lists and meeting time allocation.
#''Microsoft PowerPoint 2003''
##Microsoft PowerPoint 2003 is a presentation program developed by Microsoft.  It is widely used by business people, educators, students, and trainers and is among the most prevalent forms of persuasion technology.
#''Publisher 2003''
##Microsoft Publisher 2003 is a desktop publishing application from Microsoft.
#''Access 2003''
##Microsoft Access 2003 is a relational database management system from Microsoft which combines the relational Microsoft Jet Database Engine with a graphical user interface and software development tools. 
##Access can use data stored in Access/Jet, Microsoft SQL Server, Oracle, or any ODBC-compliant data container. Skilled software developers and data architects use it to develop application software. Relatively unskilled programmers and non-programmer "power users" can use it to build simple applications. It supports some object-oriented techniques but falls short of being a fully object-oriented development tool.
#''InfoPath 2003''
##Microsoft InfoPath 2003 is an application used to develop XML-based data entry forms.  The main feature of InfoPath is its ability to author and view XML documents with support for custom-defined XML schemata. It can connect to external systems using XML Web Services through MSXML and the SOAP Toolkit, and back-end and middle-tier systems can be configured to communicate by using Web services standards such as SOAP, UDDI, and WSDL. Additionally, since InfoPath documents are raw XML, it is possible to directly re-purpose the data in other XML processors.
!!!Microsoft Internet Explorer 6.x
Microsoft Internet Explorer 6 (commonly abbreviated to IE6), is a graphical web browser developed by Microsoft and included as part of the Microsoft Windows XP and Windows Server 2003.
!!!Microsoft Visio Viewer
Microsoft Visio Viewer allows for viewing Microsoft Visio (.vsd) files without having to have the application, Microsoft Visio, installed.  This is freely distributed from Microsoft.
!!!Microsoft Powertoys – Various
The following Microsoft Powertoys are installed on our Standard Desktop:
#''Clear Type Tuner''
##ClearType is the Microsoft implementation of subpixel rendering technology, aiming to improve the appearance of text on certain types of computer display screens, especially LCD flat-panel monitors. It was introduced with Windows XP, but kept turned off by default. With Windows Vista, ClearType is now turned on out-of-the-box.
#''Task Switcher''
##Alt-Tab Replacement Task Switcher - Replaces the simpler Alt-Tab switcher with a more visual one which shows live window previews. 
#''Image Resizer''
##Image Resizer (Photo Toys) - Allows right-clicking on multiple image files inside Windows Explorer to batch resize them. 
#''Open Command (CMD) Here''
##Open Command Window Here - Allows starting a command prompt from any folder in Windows Explorer by right-clicking.
!!!Real Player 11.x
RealPlayer is a cross-platform media player by RealNetworks that plays a number of multimedia formats including MP3, MPEG-4, QuickTime, Windows Media and multiple versions of proprietary RealAudio and RealVideo formats.
!!!CyberLink Power DVD
PowerDVD (from CyberLink) is a commercial video player and music player for Microsoft Windows. It enables the viewing of DVD-Video movies on the user's PC.
!!!Roxio Media Creator (CD/DVD)
Easy Media Creator is optical disc authoring software, produced by Roxio.
!!!WinZip
WinZip is a file archiver and compressor for Microsoft Windows. It natively uses the PKZIP format but also has various levels of support for other archive formats.
!!!Pidgin
Pidgin (formerly named Gaim) is a multi-platform instant messaging client. The software supports many commonly used instant messaging protocols, allowing the user to log into various different services from one application.  The SOM ISU uses Pidgin as the Windows desktop solution for connecting to the SOM IM Server (im.medschool.ucsf.edu).  Released under the terms of the GNU General Public License, Pidgin is free software.

!''Additional Information''
!''SUMMARY''
This application si no longer supported. ''OAAIS discontinued PH/QI service on ITSA server on 7/14/08''.
!''DETAILS''
Inform user that the service is now on the web.
!''ADDITIONAL INFORMATION''
http://directory.ucsf.edu/people_search.jsp
!''Contributor''
[[Stephen Boelter|mailto:boelters@medschool.ucsf.edu]]