<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;DkUFQX09cSp7ImA9WhRWEU0.&quot;"><id>tag:blogger.com,1999:blog-1125062745297868456</id><updated>2011-12-28T12:30:10.369-08:00</updated><title>Jazzerup Blog</title><subtitle type="html">My blog has moved - View my latest blog posts here: &lt;a href="http://www.jazzerup.com/blog"&gt;http://www.jazzerup.com/blog&lt;/a&gt;</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://jazzerup.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://jazzerup.blogspot.com/" /><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Jazzerup" /><feedburner:info uri="jazzerup" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;A0cDQHk8fCp7ImA9WxVaGEk.&quot;"><id>tag:blogger.com,1999:blog-1125062745297868456.post-92034934790715547</id><published>2009-04-15T15:31:00.000-07:00</published><updated>2009-04-15T19:31:11.774-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-15T19:31:11.774-07:00</app:edited><title>Google Friend Connect - Capture ID</title><content type="html">Find out your members' unique ids (sometimes referred to as userid or user id) in Google Friend Connect.  Useful for integrating friend connect into your existing web forms, applications or tracking.&lt;br /&gt;&lt;br /&gt;Ever have one of those days where that you think something is going to be really easy and 5 hours later you're ready to pull your hair out?&lt;br /&gt;&lt;br /&gt;That's how I felt about Google friend Connect. Don't get me wrong it's extremely easy if you are only playing with the provided gadgets but the developer's section can make you squirm.&lt;br /&gt;&lt;br /&gt;Google does a good job of explaining the initial pieces of code you need in your page in order to connect to the API:&lt;br /&gt;&lt;a href="http://code.google.com/apis/friendconnect/articles/inpage_integration.html#setup"&gt;http://code.google.com/apis/friendconnect/articles/inpage_integration.html#setup&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What Google doesn't give you is a quick example on capturing only the unique userid.  Here's the code to make that happen.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1: Paste this in the header section of your webpage&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="codebox"&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;script src="http://www.google.com/jsapi" type="text/javascript" charset="utf-8"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" charset="utf-8"&amp;gt;&lt;br /&gt;google.load('friendconnect', '0.8');&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;google.friendconnect.container.setParentUrl('/');&lt;br /&gt;google.friendconnect.container.loadOpenSocialApi({&lt;br /&gt;site: '&lt;span class="codeboxcustomize"&gt;XXXXXXXXXXXXXXX&lt;/span&gt;', &lt;span class="codeboxcomments"&gt;// Change this on your site&lt;/span&gt;&lt;br /&gt; onload: function() { initAllData(); }&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;function initAllData() {&lt;br /&gt;var req = opensocial.newDataRequest();&lt;br /&gt;req.add(req.newFetchPersonRequest("VIEWER"), "viewer");&lt;br /&gt;req.send(loadData);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="codeboxcodeboxcomments"&gt;// load the data using open social&lt;/span&gt;&lt;br /&gt;function loadData() {&lt;br /&gt;var req = opensocial.newDataRequest();&lt;br /&gt;req.add(req.newFetchPersonRequest('VIEWER'), 'viewer');&lt;br /&gt;req.send(onLoadCallback);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="codeboxcomments"&gt;// called after data is loaded&lt;/span&gt;&lt;br /&gt;function onLoadCallback(data) {    &lt;br /&gt;if(data.get('viewer').getData()) {&lt;br /&gt;var viewer = data.get('viewer').getData();&lt;br /&gt;var name = viewer.getDisplayName();&lt;br /&gt;&lt;br /&gt;&lt;span class="codeboxcomments"&gt;//The holy grail of code that took me forever to figure out&lt;/span&gt;&lt;br /&gt;var userid = viewer.getField( opensocial.Person.Field.ID );&lt;br /&gt;&lt;br /&gt;&lt;span class="codeboxcodeboxcomments"&gt;// This code that will update your form field with the userid value. Be sure to change the formname value and the fieldname value to match your form.&lt;/span&gt;&lt;br /&gt;document.&lt;span class="codeboxcustomize"&gt;FORMNAME.FIELDNAME&lt;/span&gt;.value = userid;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 2: Create your form &lt;/strong&gt;&lt;br /&gt;&lt;div class="codebox"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;form id="&lt;span class="codeboxcustomize"&gt;FORMNAME&lt;/span&gt;" name="&lt;span class="codeboxcustomize"&gt;FORMNAME&lt;/span&gt;" action="http://www.actionhere.com" method="post"&amp;gt;&lt;br /&gt;&amp;lt;input size="32" name="&lt;span class="codeboxcustomize"&gt;FIELDNAME&lt;/span&gt;"&amp;gt;&lt;br /&gt;&amp;lt;input type="submit" value="Submit"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Reference Links&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Google Friend Connect Website&lt;br /&gt;&lt;a href="http://www.google.com/friendconnect"&gt;http://www.google.com/friendconnect&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Google Friend Connect API Documentation (Javascript):&lt;br /&gt;&lt;a href="http://code.google.com/apis/friendconnect/js_api.html"&gt;http://code.google.com/apis/friendconnect/js_api.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Supported Open Social Parameters:&lt;br /&gt;&lt;a href="http://code.google.com/apis/friendconnect/opensocial_and_gfc.html#VIEWER"&gt;http://code.google.com/apis/friendconnect/opensocial_and_gfc.html#VIEWER&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;xmp&gt;&lt;/xmp&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125062745297868456-92034934790715547?l=jazzerup.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://jazzerup.blogspot.com/feeds/92034934790715547/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jazzerup.blogspot.com/2009/04/google-friend-connect-capture-id.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/92034934790715547?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/92034934790715547?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jazzerup/~3/cYgsdWqNCuA/google-friend-connect-capture-id.html" title="Google Friend Connect - Capture ID" /><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total><feedburner:origLink>http://jazzerup.blogspot.com/2009/04/google-friend-connect-capture-id.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQFR3w8cCp7ImA9WxRSGEg.&quot;"><id>tag:blogger.com,1999:blog-1125062745297868456.post-4455999038489028539</id><published>2008-09-16T15:05:00.000-07:00</published><updated>2008-09-19T12:41:56.278-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-09-19T12:41:56.278-07:00</app:edited><title>Outlook Meeting Tracking Export</title><content type="html">&lt;p&gt;Recently I was planning an event using my Outlook calendar at work. I needed to share the list of users who had accepted the outlook invitation with my fellow event planners. Unfortunately I couldn't find a way to do this in outlook without taking screen shots of the list&lt;/p&gt;&lt;p&gt;I found a website where someone had written a macro to export the list in word.&lt;br /&gt;&lt;a href="http://www.outlookcode.com/codedetail.aspx?id=37"&gt;http://www.outlookcode.com/codedetail.aspx?id=37&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The code didn't work in Office 2007 so I tweaked it and decided to take it one step further. I set it to export my list to Excel, instead of word, where I could quickly sort by name or acceptance.&lt;/p&gt;&lt;p&gt;If you have never created a macro before this may be a little intimidating but here's some easy instructions I got from &lt;a href="http://groups.google.com/group/microsoft.public.outlook.calendaring/browse_frm/thread/57c2e2b503fad550/241fccb5474500d3?lnk=st&amp;amp;q=outlook+macro+print+invitation&amp;amp;rnum=1"&gt;Google Groups&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Copy the code below&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Open Outlook&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Press your &amp;lt;ALT&amp;gt;+&amp;lt;F11&amp;gt; (This opens the Microsoft Visual Basic - VbaProject.OTM)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;On the menu across the top select "Insert" &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select "Module" &lt;/li&gt;&lt;br /&gt;&lt;li&gt;In the blank window on the right, PASTE the code you copied &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select "File" &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select "Close and Return to Microsoft Outlook" &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Right click on your Tool menu (in the gray part where the buttons are) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select "Customize..." &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click on the "Commands" tab &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select "Macros" from the Categories &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click on "Project1.PrintAapptAttendee" and drag it to your toolbar&lt;br /&gt;&lt;br /&gt;and Drop it (You have to drop it ON the toolbar not in the gray&lt;br /&gt;&lt;br /&gt;blank area but next to something like the yellow question mark icon) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Close the Customize window.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Now try to use this "&lt;strong&gt;Macro&lt;/strong&gt;"&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Open an appointment that has attendees in it &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Click on the "Project1.PrintAapptAttendee" button that you put on your toolbar. &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Wait a moment for Word to open and show you your appointment with all of the attendees and how they responded to the invitation&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Code:&lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="codebox"&gt;&lt;br /&gt;&lt;p&gt;Sub PrintAapptAttendee()&lt;br /&gt;&lt;br /&gt;' Gather data from an opened appointment and print to&lt;br /&gt;' Excel. This provides a way to print the attendee list with their&lt;br /&gt;' response, which Outlook will not do on its own.&lt;/p&gt;&lt;p&gt;' Set up Outlook&lt;br /&gt;&lt;br /&gt;Dim objApp As Outlook.Application&lt;br /&gt;Dim objItem As Object&lt;br /&gt;Dim objSelection As Selection&lt;br /&gt;Dim objAttendees As Outlook.Recipients&lt;br /&gt;Dim objAttendeeReq As String&lt;br /&gt;Dim objAttendeeOpt As String&lt;br /&gt;Dim objOrganizer As String&lt;br /&gt;Dim dtStart As Date&lt;br /&gt;Dim dtEnd As Date&lt;br /&gt;Dim strSubject As String&lt;br /&gt;Dim strLocation As String&lt;br /&gt;Dim strNotes As String&lt;br /&gt;Dim strMeetStatus As String&lt;br /&gt;Dim strUnderline As String ' Horizontal divider line&lt;/p&gt;&lt;br /&gt;&lt;p&gt;' Set up Excel&lt;br /&gt;&lt;br /&gt;Set objExcel = CreateObject("Excel.Application")&lt;br /&gt;objExcel.Visible = True&lt;br /&gt;objExcel.Workbooks.Add&lt;/p&gt;&lt;br /&gt;&lt;p&gt;'Create the header and set the background color as yellow&lt;br /&gt;&lt;br /&gt;objExcel.Cells(1, 1).Value = "Attendee"&lt;br /&gt;objExcel.Cells(1, 1).Interior.ColorIndex = 6&lt;br /&gt;objExcel.Cells(1, 2).Value = "Response"&lt;br /&gt;objExcel.Cells(1, 2).Interior.ColorIndex = 6&lt;/p&gt;&lt;br /&gt;&lt;p&gt;objExcel.Cells(1, 3).Value = "Req/Opt"&lt;br /&gt;objExcel.Cells(1, 3).Interior.ColorIndex = 6&lt;br /&gt;&lt;/p&gt;&lt;p&gt;On Error Resume Next&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Set objApp = CreateObject("Outlook.Application")&lt;br /&gt;Set objItem = objApp.ActiveInspector.CurrentItem&lt;br /&gt;Set objSelection = objApp.ActiveExplorer.Selection&lt;br /&gt;Set objAttendees = objItem.Recipients&lt;br /&gt;Set objExcel = GetObject(, "Excel.Application")&lt;br /&gt;&lt;br /&gt;If objExcel Is Nothing Then&lt;br /&gt;Set objExcel = CreateObject("Excel.Application")&lt;br /&gt;End If&lt;/p&gt;&lt;p&gt;strUnderline = String(60, "_") ' use 60 underline characters&lt;br /&gt;&lt;br /&gt;On Error GoTo EndClean:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;' check for user problems with none or too many items open&lt;br /&gt;Select Case objSelection.Count&lt;br /&gt;&lt;br /&gt;Case 0&lt;br /&gt;MsgBox "No appointment was opened. Please opten the appointment to print."&lt;br /&gt;GoTo EndClean:&lt;br /&gt;&lt;br /&gt;Case Is &amp;gt; 1&lt;br /&gt;MsgBox "Too many items were selected. Just select one!!!"&lt;br /&gt;GoTo EndClean:&lt;br /&gt;End Select&lt;/p&gt;&lt;br /&gt;&lt;p&gt;' Is it an appointment&lt;br /&gt;&lt;br /&gt;If objItem.Class &amp;lt;&amp;gt; 26 Then&lt;br /&gt;MsgBox "You First Need To open The Appointment to Print."&lt;br /&gt;GoTo EndClean:&lt;br /&gt;End If&lt;/p&gt;&lt;br /&gt;&lt;p&gt;' Get the data&lt;br /&gt;&lt;br /&gt;dtStart = objItem.Start&lt;br /&gt;dtEnd = objItem.End&lt;br /&gt;strSubject = objItem.Subject&lt;br /&gt;strLocation = objItem.Location&lt;br /&gt;strNotes = objItem.Body&lt;br /&gt;objOrganizer = objItem.Organizer&lt;br /&gt;objAttendeeReq = ""&lt;br /&gt;objAttendeeOpt = ""&lt;/p&gt;&lt;p&gt;' Get The Attendee List&lt;br /&gt;&lt;br /&gt;For x = 1 To objAttendees.Count&lt;br /&gt;&lt;br /&gt;strMeetStatus = ""&lt;br /&gt;&lt;br /&gt;Select Case objAttendees(x).MeetingResponseStatus&lt;br /&gt;&lt;br /&gt;Case 0&lt;br /&gt;strMeetStatus = "No Response"&lt;br /&gt;&lt;br /&gt;Case 1&lt;br /&gt;strMeetStatus = "Organizer"&lt;br /&gt;&lt;br /&gt;Case 2&lt;br /&gt;strMeetStatus = "Tentative"&lt;br /&gt;&lt;br /&gt;Case 3&lt;br /&gt;strMeetStatus = "Accepted"&lt;br /&gt;&lt;br /&gt;Case 4&lt;br /&gt;strMeetStatus = "Declined"&lt;br /&gt;&lt;br /&gt;End Select&lt;br /&gt;&lt;br /&gt;If objAttendees(x).Type = olRequired Then&lt;br /&gt;&lt;br /&gt;objExcel.Cells(x + 1, 1).Value = objAttendees(x).Name&lt;br /&gt;objExcel.Cells(x + 1, 2).Value = strMeetStatus&lt;br /&gt;objExcel.Cells(x + 1, 3).Value = "Required"&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Else&lt;br /&gt;&lt;br /&gt;objExcel.Cells(x + 1, 1).Value = objAttendees(x).Name&lt;br /&gt;objExcel.Cells(x + 1, 2).Value = strMeetStatus&lt;br /&gt;objExcel.Cells(x + 1, 3).Value = "Optional"&lt;br /&gt;&lt;br /&gt;End If&lt;br /&gt;RowCount = RowCount + 1&lt;br /&gt;Next&lt;/p&gt;&lt;br /&gt;&lt;p&gt;'Sort Worksheet&lt;br /&gt;&lt;br /&gt;objExcel.Worksheets("Sheet1").Range("B2").Sort _&lt;br /&gt;Key1:=objExcel.Worksheets("Sheet1").Columns("B"), _&lt;br /&gt;Header:=xlGuess&lt;br /&gt;&lt;/p&gt;&lt;p&gt;objExcel.Worksheets("Sheet1").Range("A2").Sort _&lt;br /&gt;Key1:=objExcel.Worksheets("Sheet1").Columns("B"), _&lt;br /&gt;Header:=xlGuess&lt;br /&gt;&lt;br /&gt;objExcel.Worksheets("Sheet1").Range("C2").Sort _&lt;br /&gt;Key1:=objExcel.Worksheets("Sheet1").Columns("B"), _&lt;br /&gt;Header:=xlGuess&lt;/p&gt;&lt;br /&gt;&lt;p&gt;EndClean:&lt;br /&gt;&lt;br /&gt;Set objApp = Nothing&lt;br /&gt;Set objItem = Nothing&lt;br /&gt;Set objSelection = Nothing&lt;br /&gt;Set objAttendees = Nothing&lt;br /&gt;Set objExcel = Nothing&lt;br /&gt;Set objxls = Nothing&lt;br /&gt;Set excelRng = Nothing&lt;br /&gt;Set wordPara = Nothing&lt;/p&gt;&lt;br /&gt;&lt;p&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#cc0000;"&gt;----&gt;UPDATE (9/19/08): &lt;/span&gt;&lt;span style="color:#cc0000;"&gt;&lt;em&gt;Please note you are using this macro at your own risk.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#660000;"&gt;Many people were complaining that they could only run the item once and then it stopped working.  I did some research and it turn outs that Outlook disables all "untrusted" Macros.  &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#660000;"&gt;To get this to run more than once you will need to go to: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#660000;"&gt;Tools &gt; Trust Center and Macro Security &gt; and change the radio button to "Warning for all macros"&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#660000;"&gt;You will need to close outlook completely (make sure it's not running as a background task) then reopen it.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#660000;"&gt;You will receive a warning each time you run this macro but it should still work.&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125062745297868456-4455999038489028539?l=jazzerup.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://jazzerup.blogspot.com/feeds/4455999038489028539/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jazzerup.blogspot.com/2008/09/outlook-meeting-tracking-export.html#comment-form" title="86 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/4455999038489028539?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/4455999038489028539?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jazzerup/~3/R9wR-F_EntA/outlook-meeting-tracking-export.html" title="Outlook Meeting Tracking Export" /><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>86</thr:total><feedburner:origLink>http://jazzerup.blogspot.com/2008/09/outlook-meeting-tracking-export.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04DQ307eCp7ImA9WxdUEkQ.&quot;"><id>tag:blogger.com,1999:blog-1125062745297868456.post-6170351985670599249</id><published>2008-07-28T18:22:00.000-07:00</published><updated>2008-07-28T19:52:52.300-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-28T19:52:52.300-07:00</app:edited><title>Google Calendar Event Images</title><content type="html">Many college are jumping on Google Apps to begin hosting student email. One of the features of Google Apps is the public calendar where you can post college events.&lt;br /&gt;&lt;br /&gt;There are some limitations with Google Calendar:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;When you create an event you cannot add custom fields. There's no field for a brief description (teaser) or image.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When I asked Google how to add additional fields they recommended using the API and writing a custom application that uses the google calendar database as a backend. Unfortunately I don't have the time or the resources to do that right now.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I wanted to be able to embed google calendar items in a webpage with a one line teaser and picture.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Example:&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://www.jazzerup.com/webapps/googlecalendar.asp"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228241980521075074" style="BORDER-RIGHT: #eaeaea 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #eaeaea 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: #eaeaea 1px solid; CURSOR: hand; PADDING-TOP: 2px; BORDER-BOTTOM: #eaeaea 1px solid" alt="Screenshot" src="http://bp3.blogger.com/_mL5JGKVc2AY/SI5yYYC-UYI/AAAAAAAAAA0/1PyXSUXi_vE/s320/screenshot.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;span class="blogtitle"&gt;How did I do it?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To get around this I added the subject and the image to the description but google likes to strip out the html tags. I created a new event on my calendar and in the description box I typed:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;a href="http://bp1.blogger.com/_mL5JGKVc2AY/SI54dOERUiI/AAAAAAAAACM/qBQgP683Odw/s1600-h/googlecal_description.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228248660811272738" style="CURSOR: hand" alt="" src="http://bp1.blogger.com/_mL5JGKVc2AY/SI54dOERUiI/AAAAAAAAACM/qBQgP683Odw/s400/googlecal_description.JPG" border="0" name="BLOGGER_PHOTO_ID_5228248660811272738" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="codebox"&gt;&lt;code&gt;This is my description of the event. It can be as long as I need. This is where I would type all the details that would show up after someone clicks the link.&lt;br /&gt;&amp;lt;br&amp;gt;&lt;br /&gt;Image: http://www.myurl.com/image.jpg&lt;br /&gt;&amp;lt;br&amp;gt;&lt;br /&gt;Subject: This is my teaser&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;I parsed the xml file created by google and extracted the image and subject from the description. I wrapped the image and subject in the proper html tags when I displayed the content on my webpage.&lt;br /&gt;&lt;br /&gt;Here is what the Google Calendar XML file looks like: &lt;a href="http://www.google.com/calendar/feeds/jazzerup%40gmail.com/public/basic"&gt;http://www.google.com/calendar/feeds/jazzerup%40gmail.com/public/basic&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I found a free ASP script to display RSS/XML feeds - &lt;a href="http://bytescout.com/how_to_display_rss_using_asp.html"&gt;ByteScout&lt;/a&gt; (Big thanks to ByteScout for sharing your code with the world)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.jazzerup.com/downloads/googlecalendar.zip"&gt;&lt;img height="32" alt="zip" hspace="10" src="http://bp1.blogger.com/_mL5JGKVc2AY/SI4HrKaluKI/AAAAAAAAAAk/VFWXg9T7vgE/s320/zip-icon.gif" width="32" align="left" border="0" /&gt; Download my modified version&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;I used regular expressions to extract the subject and image. Please note I'm awful at Regular Expressions but I found this great site where people share their completed expresssions: &lt;a href="http://regexlib.com/"&gt;http://regexlib.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To install this code you'll need to change the &lt;strong&gt;URLToRSS =&lt;/strong&gt; &lt;a href="http://www.google.com/calendar/feeds/jazzerup%40gmail.com/public/basic"&gt;http://www.google.com/calendar/feeds/jazzerup%40gmail.com/public/basic&lt;/a&gt;&lt;br /&gt;to your Google Calendar XML Address.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="blogtitle"&gt;How do I find my Google Calendar XML Address?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;It's a little tricky to find your XML Address&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Open your Google Calendar: &lt;a href="http://www.google.com/calendar"&gt;http://www.google.com/calendar&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Click on "Settings" in the upper right hand corner.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://bp0.blogger.com/_mL5JGKVc2AY/SI50lju2SmI/AAAAAAAAABE/f4s_mLUsd3g/s1600-h/step1.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228244406019443298" style="CURSOR: hand" alt="Step 1" src="http://bp0.blogger.com/_mL5JGKVc2AY/SI50lju2SmI/AAAAAAAAABE/f4s_mLUsd3g/s400/step1.png" border="0" name="BLOGGER_PHOTO_ID_5228244406019443298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 3:&lt;/strong&gt; Under the "Calendars" tab select your calendar. &lt;/p&gt;&lt;p&gt;&lt;a href="http://bp2.blogger.com/_mL5JGKVc2AY/SI51HyX3d_I/AAAAAAAAABM/8MTQjNfx-DA/s1600-h/step2.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228244994065135602" style="CURSOR: hand" alt="Step 2" src="http://bp2.blogger.com/_mL5JGKVc2AY/SI51HyX3d_I/AAAAAAAAABM/8MTQjNfx-DA/s400/step2.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Step 4:&lt;/strong&gt; Under "Sharing" click on "Sharing:Edit Settings"&lt;/p&gt;&lt;p&gt;&lt;a href="http://bp2.blogger.com/_mL5JGKVc2AY/SI51WAMumtI/AAAAAAAAABk/Q5-K_nwfkB4/s1600-h/step3.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228245238294682322" style="CURSOR: hand" alt="step 3" src="http://bp2.blogger.com/_mL5JGKVc2AY/SI51WAMumtI/AAAAAAAAABk/Q5-K_nwfkB4/s400/step3.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 5:&lt;/strong&gt; Under the "Share the Calendar" tab you need to make the Calendar Public in order for your feeds to show events.&lt;/p&gt;&lt;p&gt;&lt;a href="http://bp0.blogger.com/_mL5JGKVc2AY/SI51ZGvUhXI/AAAAAAAAABs/pBmoLR-XYco/s1600-h/step4.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228245291589993842" style="CURSOR: hand" alt="Step 3" src="http://bp0.blogger.com/_mL5JGKVc2AY/SI51ZGvUhXI/AAAAAAAAABs/pBmoLR-XYco/s400/step4.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 6:&lt;/strong&gt; Under the "Calendar Details" tab there are links to your XML, ICAL and HTML calendars.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://bp3.blogger.com/_mL5JGKVc2AY/SI51bwJk6mI/AAAAAAAAAB0/3YPKNpG-6fk/s1600-h/step5.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228245337065712226" style="CURSOR: hand" alt="step 4" src="http://bp3.blogger.com/_mL5JGKVc2AY/SI51bwJk6mI/AAAAAAAAAB0/3YPKNpG-6fk/s400/step5.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;a href="http://bp3.blogger.com/_mL5JGKVc2AY/SI51ggyt6CI/AAAAAAAAAB8/MA4FObGaAfQ/s1600-h/step6.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228245418842646562" style="CURSOR: hand" alt="step 5" src="http://bp3.blogger.com/_mL5JGKVc2AY/SI51ggyt6CI/AAAAAAAAAB8/MA4FObGaAfQ/s400/step6.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 7:&lt;/strong&gt; Click on the XML link and copy the address.&lt;/p&gt;&lt;p&gt;&lt;a href="http://bp0.blogger.com/_mL5JGKVc2AY/SI51jooeZ6I/AAAAAAAAACE/no9mRH76Rc8/s1600-h/step7.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228245472486778786" style="CURSOR: hand" alt="step 6" src="http://bp0.blogger.com/_mL5JGKVc2AY/SI51jooeZ6I/AAAAAAAAACE/no9mRH76Rc8/s400/step7.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125062745297868456-6170351985670599249?l=jazzerup.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://jazzerup.blogspot.com/feeds/6170351985670599249/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jazzerup.blogspot.com/2008/07/google-calendar-event-images.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/6170351985670599249?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/6170351985670599249?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jazzerup/~3/sFQhrK5fnqc/google-calendar-event-images.html" title="Google Calendar Event Images" /><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp3.blogger.com/_mL5JGKVc2AY/SI5yYYC-UYI/AAAAAAAAAA0/1PyXSUXi_vE/s72-c/screenshot.png" height="72" width="72" /><thr:total>4</thr:total><feedburner:origLink>http://jazzerup.blogspot.com/2008/07/google-calendar-event-images.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYDQHk4fCp7ImA9WxdUEkQ.&quot;"><id>tag:blogger.com,1999:blog-1125062745297868456.post-8281885851692914876</id><published>2008-07-27T21:21:00.000-07:00</published><updated>2008-07-28T17:59:31.734-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-28T17:59:31.734-07:00</app:edited><title>Organize Files VBS</title><content type="html">Organize Files by Extension VB Script &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have hundreds of gigs worth of files and difficulty finding anything. Before Windows Vista I found that searching for a file could take a half hour and I realized I needed a better way to get organized. I wrote this quick Vistual Basic Script to help organize my files into subfolders by extension and date modifed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://bp1.blogger.com/_mL5JGKVc2AY/SI4HrKaluKI/AAAAAAAAAAk/VFWXg9T7vgE/s1600-h/zip-icon.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228124655535372450" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://bp1.blogger.com/_mL5JGKVc2AY/SI4HrKaluKI/AAAAAAAAAAk/VFWXg9T7vgE/s320/zip-icon.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.jazzerup.com/downloads/organizefiles.zip"&gt;Download Zip&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Below is a screenshot of my folders after my files have been copied to their destination.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://bp2.blogger.com/_mL5JGKVc2AY/SI4HWKeKKmI/AAAAAAAAAAc/nqV_JFWPlYs/s1600-h/folders_screenshot.JPG"&gt;&lt;img id="BLOGGER_PHOTO_ID_5228124294773090914" style="MARGIN: 0px 10px 10px 0px; CURSOR: hand" alt="" src="http://bp2.blogger.com/_mL5JGKVc2AY/SI4HWKeKKmI/AAAAAAAAAAc/nqV_JFWPlYs/s320/folders_screenshot.JPG" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;How it works: &lt;/div&gt;&lt;div&gt;1) It looks at my source folder&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) Copies the file into a new destination (I didn't do move in case something wen wrong)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) Places the files into a subfolder by its extension and daet modified (Example - test.doc) would go into a doc_2008 folder.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4) Create a log of each file moved (in case it crashes mid-stream I know the last file moved)&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;License:&lt;/strong&gt; Open Source (GNU General Public License) &lt;/div&gt;&lt;br&gt;&lt;br /&gt;&lt;strong&gt;Code:&lt;/strong&gt; &lt;br /&gt;&lt;div class="codebox"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Dim varstartpath, vardestination&lt;br /&gt;&lt;br /&gt;'IMPORTANT - You need to provide a source and destination path.&lt;br /&gt;varsource = "S:\Users\"&lt;br /&gt;vardestination = "R:\Backup"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OrganizeFiles(varsource)&lt;br /&gt;&lt;br /&gt;WScript.Echo "Done!"&lt;br /&gt;&lt;br /&gt;'-------function to Find File Extensions------------&lt;br /&gt;&lt;br /&gt;Function GetExtension(varfile)&lt;br /&gt;&lt;br /&gt;'------Split the file by periods--------------------&lt;br /&gt;arrayperiods = Split(varfile,".")&lt;br /&gt;'------Select the characters after the last period--&lt;br /&gt;varnumperiods = UBound(arrayperiods)&lt;br /&gt;'------Return the value to GetExtension&lt;br /&gt;GetExtension = arrayperiods(varnumperiods)&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'-------Sub Procedure to Create Folders Based on File Extensions and Date------------&lt;br /&gt;&lt;br /&gt;Sub CreateFolder(varfile,vardate)&lt;br /&gt;&lt;br /&gt;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;&lt;br /&gt;'------Find out file extension-----------------------&lt;br /&gt;varextension = GetExtension(varfile)&lt;br /&gt;'-------------------&lt;br /&gt;&lt;br /&gt;'------Create a destination folder based on the extension and the year modified&lt;br /&gt;varfolder = vardestination &amp;amp; "\" &amp;amp; varextension &amp;amp; "_" &amp;amp; year(vardate)&lt;br /&gt;'-------------------&lt;br /&gt;&lt;br /&gt;'------If the folder doesn't already exist then create it&lt;br /&gt;If Not objFSO.FolderExists(varfolder) Then Set objFolder = objFSO.CreateFolder(varfolder)&lt;br /&gt;'-------------------&lt;br /&gt;&lt;br /&gt;Set objFSO=Nothing&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'-------Sub Procedure to Copy Files to a Folder------------&lt;br /&gt;&lt;br /&gt;Sub CopyToFolder(varpath,varfile,vardate)&lt;br /&gt;&lt;br /&gt;varextension = GetExtension(varfile)&lt;br /&gt;varfilesourcepath = varpath&lt;br /&gt;varfiledespath = vardestination &amp;amp; "\" &amp;amp; varextension &amp;amp; "_" &amp;amp; year(vardate) &amp;amp; "\" &amp;amp; varfile&lt;br /&gt;&lt;br /&gt;Set objFSO = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'-----Keep a log of files moved so you know where it crashed------------------&lt;br /&gt;&lt;br /&gt;'Create or append a text file&lt;br /&gt;&lt;br /&gt;varlog = varpath&lt;br /&gt;&lt;br /&gt;Set fso = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;fpath= vardestination &amp;amp; "\FilesMoved.txt"&lt;br /&gt;flg=fso.FileExists(fpath)&lt;br /&gt;&lt;br /&gt;If flg Then&lt;br /&gt;Set floc= fso.OpenTextFile(fpath, 8)&lt;br /&gt;floc.WriteLine(varlog)&lt;br /&gt;floc.Close&lt;br /&gt;Else&lt;br /&gt;Set floc = fso.CreateTextFile(fpath,true)&lt;br /&gt;floc.WriteLine(varlog)&lt;br /&gt;floc.Close&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;Set fso = Nothing&lt;br /&gt;&lt;br /&gt;'--------------&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'------Check to see if File Exists-------------------&lt;br /&gt;If Not objFSO.FileExists(varfiledespath) Then&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;objFSO.copyFile varfilesourcepath,varfiledespath&lt;br /&gt;&lt;br /&gt;Else&lt;br /&gt;&lt;br /&gt;set objFileName = objFSO.GetFile(varfilesourcepath)&lt;br /&gt;varsourcesize = objFileName.Size&lt;br /&gt;varsourcemod = objFileName.DateLastModified&lt;br /&gt;Set objFileName = Nothing&lt;br /&gt;&lt;br /&gt;set objFileName = objFSO.GetFile(varfiledespath)&lt;br /&gt;vardestsize = objFileName.Size&lt;br /&gt;vardestmod = objFileName.DateLastModified&lt;br /&gt;Set objFileName = Nothing&lt;br /&gt;&lt;br /&gt;'------If the file was last modified at the same time and is the same size----&lt;br /&gt;&lt;br /&gt;If (varsourcesize = vardestsize) and (varsourcemod = vardestmod) Then&lt;br /&gt;&lt;br /&gt;objFSO.copyFile varfilesourcepath,varfiledespath,true&lt;br /&gt;&lt;br /&gt;Else&lt;br /&gt;&lt;br /&gt;'------If not true then rename the file-------&lt;br /&gt;varyear = year(varsourcemod)&lt;br /&gt;varsourcemod = FormatDateTime(varsourcemod,2)&lt;br /&gt;varsourcemod = Replace(varsourcemod, "/", "_")&lt;br /&gt;arrayperiods = Split(varfile,".")&lt;br /&gt;varitemname = arrayperiods(0)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;varfiledespath = vardestination &amp;amp; "\" &amp;amp; varextension &amp;amp; "_" &amp;amp; varyear &amp;amp; "\" &amp;amp; varitemname &amp;amp; "_" &amp;amp; varsourcesize &amp;amp; "_" &amp;amp; varsourcemod &amp;amp; "." &amp;amp; varextension&lt;br /&gt;&lt;br /&gt;objFSO.CopyFile varfilesourcepath,varfiledespath,true&lt;br /&gt;&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;End if&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Set objFSO=Nothing&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'-------Sub Procedure to run through the files--------------------&lt;br /&gt;&lt;br /&gt;Sub OrganizeFiles(path)&lt;br /&gt;&lt;br /&gt;dim fs, folder, file, item, url&lt;br /&gt;&lt;br /&gt;set fs = CreateObject("Scripting.FileSystemObject")&lt;br /&gt;set folder = fs.GetFolder(path)&lt;br /&gt;&lt;br /&gt;'Display the target folder and info.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'Display a list of sub folders.&lt;br /&gt;&lt;br /&gt;for each item in folder.SubFolders&lt;br /&gt;OrganizeFiles(item.Path)&lt;br /&gt;next&lt;br /&gt;&lt;br /&gt;'Display a list of files.&lt;br /&gt;&lt;br /&gt;for each item in folder.Files&lt;br /&gt;&lt;br /&gt;CreateFolder item.Name,item.DateLastModified&lt;br /&gt;CopyToFolder item.path,item.Name,item.DateLastModified&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;next&lt;br /&gt;&lt;br /&gt;set fs = Nothing&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;end sub&lt;br /&gt;&lt;br /&gt;'----------&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125062745297868456-8281885851692914876?l=jazzerup.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://jazzerup.blogspot.com/feeds/8281885851692914876/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jazzerup.blogspot.com/2008/07/organize-files-by-extension.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/8281885851692914876?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/8281885851692914876?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jazzerup/~3/zKiJKj3aSuY/organize-files-by-extension.html" title="Organize Files VBS" /><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp1.blogger.com/_mL5JGKVc2AY/SI4HrKaluKI/AAAAAAAAAAk/VFWXg9T7vgE/s72-c/zip-icon.gif" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://jazzerup.blogspot.com/2008/07/organize-files-by-extension.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIFRno9fSp7ImA9WxdUEks.&quot;"><id>tag:blogger.com,1999:blog-1125062745297868456.post-1356958604661196694</id><published>2008-07-27T21:15:00.000-07:00</published><updated>2008-07-28T10:35:17.465-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-07-28T10:35:17.465-07:00</app:edited><title>Text Message Notification</title><content type="html">Nowadays email mailing lists are not nearly as popular&amp;nbsp;or hip as text message lists.&amp;nbsp; There are service providers&amp;nbsp;out there that charge you an arm and a leg for text messaging.&amp;nbsp; There are also free services like Twitter but it requires you join the twitter network.&amp;nbsp; I needed a quick an easy way to notify our technicans and managers of technology issues or outages.&amp;nbsp; I wrote this simple web application that allows you to send text messages based on subscribed categories. It is built in Dreamweaver using Classic ASP and runs on a Microsoft Access Database.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none;"&gt;&lt;a href="http://bp2.blogger.com/_mL5JGKVc2AY/SI4Cg6dr-wI/AAAAAAAAAAU/9_pgSQ69I7k/s1600-h/zip-icon.gif" imageanchor="1" style="clear: left; border-right: 0px; border-top: 0px; float: left; margin-bottom: 1em; border-left: 0px; margin-right: 1em; border-bottom: 0px; background-color: transparent; cssfloat: left;"&gt;&lt;img src="http://bp2.blogger.com/_mL5JGKVc2AY/SI4Cg6dr-wI/AAAAAAAAAAU/a4U_SjaxGjE/s320-R/zip-icon.gif" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px; cssfloat:  ;" wc="true" /&gt;&lt;/a&gt;&lt;a href="http://www.jazzerup.com/downloads/textnotify.zip"&gt;Download Zip File&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;
&lt;strong&gt;License:&lt;/strong&gt; Open Source (&lt;a href="http://www.gnu.org/"&gt;GNU General Public License&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.jazzerup.com/webapps/textnotify/default.asp"&gt;Demo Site&lt;/a&gt;&lt;br /&gt;
username: &lt;a href="mailto:admin@admin.com"&gt;admin@admin.com&lt;/a&gt;&lt;br /&gt;
password: password&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Note:&lt;/strong&gt; This demo is intended to display the features and user interface. The ability to update the database has been removed.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://bp3.blogger.com/_mL5JGKVc2AY/SI39LptqktI/AAAAAAAAAAM/N8G6O3RyAvU/s1600-h/TextAlerts.png" imageanchor="1" style="border-right: 0px; border-top: 0px; float: left; margin-left: 1em; border-left: 0px; margin-right: 1em; border-bottom: 0px; background-color: transparent;"&gt;&lt;img src="http://bp3.blogger.com/_mL5JGKVc2AY/SI39LptqktI/AAAAAAAAAAM/T_DrmH4zjUM/s320-R/TextAlerts.png" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px; cssfloat:  ;" wc="true" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;strong&gt;Installation:&lt;/strong&gt; On a windows server, unzip, upload, change permissions on the database to write and you're good to go.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Instructions:&lt;/strong&gt;&lt;br /&gt;
1) Set your Categories&lt;br /&gt;
&lt;em&gt;Categories are items that a user may want to be notifed about.&lt;/em&gt;&amp;nbsp; &lt;br /&gt;
&lt;div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Example:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;&lt;em&gt;ITS&lt;/em&gt;&lt;/strong&gt; - You may want to set up your categories as different technology items (servers, phones, email, etc...)&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Clubs &amp;amp; Services&lt;/em&gt;&lt;/strong&gt; - You may want to set up your categories for different clubs and services services and notify&amp;nbsp;students or users&amp;nbsp;of upcoming events.&amp;nbsp; &lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Emergency &lt;/em&gt;&lt;/strong&gt;- Categories can be different types of emergency notification.&amp;nbsp; However, given this is running off of an access database I wouldn't run it with more than 100 users.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;2) Create Users&lt;br /&gt;
&lt;br /&gt;
3) Select which users should be notified about which categories.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;How it Works:&amp;nbsp; &lt;/strong&gt;It's actually very simple.&amp;nbsp; It uses CDOSYS to send emails to the user's cell phone provider text message service.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
Enjoy and &lt;a href="http://www.chipin.com/contribute/id/915764dce9d48d03"&gt;donations&lt;/a&gt; to my college fund are welcome =)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1125062745297868456-1356958604661196694?l=jazzerup.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://jazzerup.blogspot.com/feeds/1356958604661196694/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://jazzerup.blogspot.com/2008/07/text-message-notification.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/1356958604661196694?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1125062745297868456/posts/default/1356958604661196694?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Jazzerup/~3/eG-cXSV_qUU/text-message-notification.html" title="Text Message Notification" /><author><name>Jaz</name><uri>http://www.blogger.com/profile/00036866587380897292</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://bp2.blogger.com/_mL5JGKVc2AY/SI4Cg6dr-wI/AAAAAAAAAAU/a4U_SjaxGjE/s72-Rc/zip-icon.gif" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://jazzerup.blogspot.com/2008/07/text-message-notification.html</feedburner:origLink></entry></feed>

