Thoughts from the clay guru.

Archive for the category “Techie”

Creating Outlook Meetings that end early.

Here are the instructions to create a macro that will allow you create Outlook 2010 meetings that are scheduled to end 15 minutes shorter than the selected time.

First, we need to enable the Outlook Developer toolbar:

  • In Outlook, select the File | Options menu
  • Select “Customize Ribbon”
  • Then on the right, check the Developer option under Main Tabs
  • Click on the “OK” button to close the Outlook Options window.
You should now see a Developer tab item appear at the top of Outlook.
  • Select the Developer tab
  • Select Macros | Macros menu item in the ribbon bar.
  • In the resulting dialog, enter “CreateCustomApp” in the Macro Name: field
  • Click on the Create button
  • Copy and paste the following code into the Microsoft Visual Basic for Application (MS VBA) window that appears, overwriting the existing empty Sub CreateCustomAppt() code that is there
    Sub CreateCustomAppt()
     Const minShort = 15
     Dim objOL 'As Outlook.Application
     Dim objAppt 'As Outlook.AppointmentItem
     Dim oView As Outlook.View
     Dim oExpl As Outlook.Explorer
     Dim oFolder As Outlook.Folder
     Dim oCalView As Outlook.CalendarView
     Const olAppointmentItem = 1
     Const olMeeting = 1
     Set objOL = CreateObject("Outlook.Application")
     Set objAppt = objOL.CreateItem(olAppointmentItem)
     Set oExpl = Application.ActiveExplorer
     Set oFolder = Application.ActiveExplorer.CurrentFolder
     Set oView = oExpl.CurrentView
     ' Check whether the active explorer is displaying a calendar view.
     If oView.ViewType = olCalendarView Then
     Set oCalView = oExpl.CurrentView
     With objAppt
     .Subject = "<Placeholder>"
     .Start = oCalView.SelectedStartTime
     '.Duration = 55
     .End = DateAdd("n", -minShort, oCalView.SelectedEndTime)
     .ReminderMinutesBeforeStart = 15
     .ReminderSet = True
     End With
     End If
     Set objAppt = Nothing
     Set objOL = Nothing
    End Sub
  • Save and close down the MS VBA window.
Now we are going to create a custom ribbon bar icon for this macro.
  • Select File | Options menu from Outlook again
  • Select the Customize Ribbon
  • From the “choose commands from:” dropdown on the left side of the window, select “Macros” (you should see your CreateCustomApp macro there)
  • On the right, the Customize the Ribbon should have “Main Tabs” already selected
  • Highlight the “Home (Calendar)” item below the Main Tabs title
  • Click on New Group ( a “New Group (Custom)” is created)
  • Click on Rename… button.
  •  Let’s rename it to Custom and select any symbol you want.
  • Click on the “OK” button to save your changes.

You should see the name change, and your Custom tab highlighted on the right list of tabs.  We are now going to add the Macro we just created to our Custom Tab group.

  • Click on the CreateCustomAppt macro listed on the left of the Outlook Options window to select it.
  • Click on the “Add>>” button in the middle.  This will add the a button for the macro in the selected (in this case our “Custom”) tab
  • Click on the “Rename…” button.
  • Name the button “Custom Appointment” and select an icon you like.
  • Click on the “OK” button  to save  and close the Rename window.
  • Click on the “OK” button to close the Outlook Options window
  • Select the “Home” tab at the top of the Outlook application, and you should see your Custom Appointment icon in the ribbon bar.

Now to use the macro, find a date & time where you want to create your appointment.  Select the range, let’s say “tomorrow from 4pm – 5pm”.  Now click the Custom Appointment button in the ribbon bar, and an appointment dialog will appear with a meeting created that is 15 minutes shorter than the selected time.

That’s it.  If you want sometime other than 15 minutes less, then you can change the following line in the macro:

Const minShort = 15

to the number of minutes you want to “shorten” the meeting by.


What’s wrong with the press saying the Nokia 900 has under powered hardware?

I will start of my rant by saying, “Yes, the Nokia 900 does not have the highest end quad/dual-core processors” so some will perceive this as a bad thing, so let’s compare this to another real world analogy…

Let’s say you have two car choices for your next purchase; The Autobahn Android 2012 and the Likus Lumia 2012 models.  Both cars perform quite well…they go over 100 MPH (which you will likely never hit) and accelerate quite well (although when loaded with a lot of passengers, the Autobahn can get a bit sluggish).

The Autobahn Android 2012 looks like the same Autobahn car they have built for the last 4 years, but an overall favorite of drivers.  Under the hood is a 350 HP engine (eg. powerful Dual-Core processor) with an estimated fuel economy of 18 city and 25 highway (more cores = slightly more power usage – not exact, but click here for comparison of single vs. dual core power usage).  When doing 70 MPH, if you step on the pedal, it has lots of “get up and go”.  You pay for that power through everyday gas mileage.

The new Likus Lumia 2012 looks nice, and operates like every other car out there, but doesn’t have wood paneling on the dash (eg. Draw Something or Words with Friends), but almost every other feature is available.  Under the hood is a 300 HP engine (eg. slightly less powerful, but still has acceptable pickup) with an estimated fuel economy of 22 city and 33 highway.

You love the look of the Likus , it gets great gas mileage, and has 99% of the features you want.  Which car do you buy?  Based on that information, and the fact that gas prices are over $4 per gallon in parts of the US…most folks I would guess would go with the Likus (just look at Honda Prius and hybrid sales).  So, why would you not pick a phone that performs every bit as well as the “more powerful” ones on the market, has a really great OS and UI, and by using a single-core processor, which does not affect everyday performance, but instead will increase battery life (eg. gas mileage)?

What it really should boil down to is usability, overall performance and battery life…why worry if the processor is Quad Core 2 GHz processor when better than half the time the phone is either off, or only using a fraction of the processing power.  And for most of the time the phone is on, you are doing nothing more than talking, texting or viewing facebook feeds.  We are not rendering 3D images or crunching numbers to solve cancer.

Go and try the new Nokia 900 (I don’t have mine yet…but FedEx has it in there truck right now).  If you don’t like the UI, the big 4.3″ sccreen, or find the phone sluggish…then by all means, buy a different phone that best meets your needs.  But don’t let some journalist tell you that you don’t want the new Honda Lumia 2012 car because the engine is only a 300HP engine and you can’t get wood trim on the dash….that’s just silly.  You are smarter than that.

Why I like my WP7 phone over my iPhone – part 2

After a few days, I came up with a few more features I like on my WP7…that iPhone users have to learn to live without.

  1. Damn IOS Auto Correct.  Now WP7 has “auto correct”, but it seems to perform much better than the iOS version of auto correct.  I remember turning it off on my iPhone when I had it, and I still have it turned off on my iPad.  (see  there are entire sites dedicated to the auto correct silliness of iOS)
  2. Late for meeting.  If I am running late for a scheduled meeting, there is a quick “Late” button when I view my meeting invite.  When I press this button, I am given the option to send an email to the person that scheduled the meeting, or everyone invited to the meeting that states; “I’ll be a bit late, but I’m on my way.  See you soon.”  So from the meeting, I am 3 clicks away to tell folks I am running late.
  3. Edit response to meeting invite.  When declining a meeting, on an iOS device I cannot give a reason.  I am so used to this in Outlook and now WP7 that I do not accept or decline meetings using my iPad (that and the number of issues iOS devices have had with meeting synchronization in the past).

Please feel free to add your favorite reasons in the comments.

Okay, I tried it…

(click on the picture to enlarge)

This morning, on my way into work I saw the truck pitured in the photo.  Yes, is a QR code on the tailgate.  Initially, I thought that was silly, but when I came to a stop, I snapped a picture and tried Bing to see if I could follow the link…but no go. Maybe if I had a little more time I may have been able to zoom in and get it.

What’s next? QR bumper stickers?

Windows 8 and Proxy servers

This post is only relevant if you are trying to use the Customer Preview version of Windows 8 within a corporate firewall.  If this is not you…go do something else…like google “cat breading” (and that is breading…like Wonder Bread…and, I can’t figure it out either…what a waste of bandwidth).

Okay, on to the regularly scheduled blog….

After reading some posts, looking up some MS articles, and miscellaneous other reference materials, I finally got Windows 8 – Customer Preview to download and install apps from within our corporate firewall…and here are my 12 easy steps:

  1. Go to the windows Desktop (if you don’t know what this is…wait until the final release of Windows 8) and fire up Windows Explorer (the folder thingy)
  2. Under the View menu, make sure you have “File Name Extensions” checked
  3. Right click in a folder (Documents is fine) and select “New | Text Document”
  4. Name this new file MikeIsCool.cmd (or some other name that states I am not really a geek)
  5. Click on “Yes” when prompted if you want to change the file name extension.  If you don’t get this prompt…go back to Step 2…you forgot to turn on the file extensions.
  6. Right-click on the MikeIsCool.cmd file then select the Edit menu item.
  7. Type in the following 2 lines:
    netsh winhttp set proxy http://<your proxy server here>:<your port here>
  8. Close the Window and click on “Save” button to save the file
  9. Right-click on the MikeIsCool.cmd file (yes, again), and select “Run as administrator”
  10. (optional) Enter your administrator password.  A command prompt will pop up and you should see a line labeled Proxy Server(s) with your proxy server to the right of that.  Make sure it all looks good…if not, you typed something wrong in step 7…or I got something wrong…but I am guessing it is you.  If it is me, please post a comment and tell me how much smarter you are than me…and please tell me and others how to fix my blunder.  And make sure you don’t really type in “<your proxy server here>” or “<your port here>”
  11. (optional) Press the spacebar to close down the command window.
  12. Reboot your Windows 8 machine.

That worked for me.  After the reboot, I was able to install apps in Windows 8.

Authentication vs. Encryption vs. APIs/Communciation Protocols

Context is Learning Systems….

This is a quick primer on the differnces between Authentication, Encryption and APIs/Communciation Protocols.  I will try and explain each in simple terms, and the importance of all three.


At its basic sense, authentication is simply a way for a web server to verify a user is who they say they are…and to keep “riff raff” out.  Most people know this as simple username/password prompts.  An LMS or content server with an authentication scheme employed will require an individual to identify (login) before they are allowed into the system.  Now some Authentication schemes, like Single-Sign-On (SSO), will be integrated with either your local Operating System or browser to store credentials that you have entered earlier, and share that with other SSO enabled sights.   From an end-user perspective, it appears they may not be authenticating on a particular site…but be assured…they are…it is just automatic.

If a site does not provide authentication…then by definition, the site is open to the general public.  You may have heard of the term, Security by Obscurity.  This simply means…if a person does not know it is there..then it is secure.  And this is false.  Would you bury your life savings in a forest preserve if I could guarantee that no one knows the location?  I would hope not.  You always run the risk that someone may accidentally run across your hiding spot…or an enterprising individual may try and discover this location by following you during one of your withdraw runs…or discovering through social engineering (maybe talking to a family member that discloses some information that might lead an invidual there).  You want your money in a secure location like a bank, that checks your identification and requires some additional information like an account number before you are allowed to withdraw the money.


Encryption is simply protecting the information that travels from the server to the end-user’s browser, encrypting, or scrambling, the data so only the server and browser can understand it.  You should realize that computer networks are just a medium to transmit data, just like yelling across a room.  Next time you are at a Starbucks, imagine your Bank is next door.  Would you yell out loud to the bank teller, asking for a withdraw and then yelling your account number and maybe social security number for all to hear?  Of course not.  Well, sending this information across the internet, although not as blatent as yelling, still provides the same information…just slightly more difficult to listen into.  But going over a wireless network IS broadcasting that information in about a 300 ft. radius, and people could have listening devices picking up on this information.  Also, anyone with access to network connections anywhere between you and the destination server could tap into this information as well.  Pretty scary thought, isn’t it.

The standard encryption scheme used by Internet sites is Secure Sockets Layer or SSL.  You can tell if you are using a SSL site in general if the URL starts with HTTPS (that “S” means secure) instead of the more standard HTTP sites (no-secure).  With SSL sites, when the SSL server and your browser initially connect, they agree on a complex protocol to scramble all the data as it leaves your browser and travels to the server, only to be unscrambled at the other end…and this happens both ways.  So even if you are “yelling” your bank account information, it is in a language that only your browser and the bank’s servers can understand.  So any site that is SSL enabled, will safely communicate all information in a protected and safe way.

APIs/Communication Protocols

Within the context of learning environments or LMSs, there are two primary APIs or Communcation protocols used; AICC and SCORM.  SCORM is really just an extension, and really just version 3.0 and later of AICC.  The purpose of these standards is twofold.  First is to provide a standard mechanism to package up courses and configuration files in a way that LMSs can consume, load and configure the course on the LMS.  The second purpose is to provide an agreed upon communciation approach so the course can talk to the LMS to get basic student information, get previous progress data, and send completion information.  Nothing more.  There is nothing in the AICC or SCORM standards that deals specifically with protecting course data from prying eyes – no Encryption or Authentication is defined in these standards.

Encryption does not Equal Authentication

I can enable SSL on a site that is open to the general public, with no login.  In fact, go to HTTPS://  You will notice (although not physically see) that all your Google searches are encrypted and no one will be able to see that I executed a search on say ‘pink flamingos’, but ANYONE can get in and execute a secure search on Google.  Not much benefit in SSL securing a site that anyone can get to the information anyways.

There were a number of sites that used to require authentication, but did not provide encryption.  eBay I believe early on was this way.  You were required to enter your login information to bid on items, but if someone could view your traffic, the could have easily gotten your login information and/or seen what you were buying.  So you will notice now that on ebay, as soon as you go to the login screen, you are redirected to their secure SSL enabled site.

There is security in enabling both authentication AND encryption, and most (hopefully all) financial institutions will require both.  So if you care about protecting the information on your server, whether it be financial information or Intellectual Property for your company, you will want to secure your data with both encryption and authentication at a minimum.

Post Navigation