Apr 11


I like people to know where I am, in case they need to find me. I tend to have meetings in odd locations, and if someone needs to snag me between such meetings, it is useful if they have some idea where I am. So I make my calendar information public, and it is linked to from my blog. That works reasonably well for the premeditated conversations. But more and more I find people have spur of the moment questions to ask. Chat clients are great for this, and I use them a lot. But a simple ‘away’ message does not seem to work very well. Lots of people ignore them (great when the question does not have a need for instant response) or they ditch the question and never get an answer. So I attempt to keep my chat (and now other) status messages reflecting where I most likely am. Having done this for some time, I have seen a few people ask me what system I am using to do this, and so I thought I would share my process here. Not that this is the best way to get these tasks done, but it is a process that works for me. The steps involved seem logical to me, and even if the tools I use are not a good match for you, the structure may be.

 

My main computer is a Macintosh, running OS X 10.5. My shared calendaring solution is Oracle Calendar. My status messages targets are Adium, iChat, Twitter (which then feeds the status message on my blog), Facebook, and IRC (via Colloquy). 

 

To get started, I need to get my calendar information into iCal (the local mac app for calendars). This is so that the data is always available on my local machine in a way I can use in scripts. On a windows system, i would most likely target Outlook for this, as it is the most oft used calendar on that platform with lots of add ons. The UW has a way to subscribe directly to Oracle Calendar data from iCal, but it has some limitations. So i wrote an app called OraCal2iCal, and on demand it exports my Oracle Calendar data and imports it into iCal. It also adds an alarm to each event to call another application that I made, MacArthur. MacArthur sets status messages in all of the chat and web sites that I mentioned. Other mac applications that I have looked at for this that did not quite match all of my needs (but might other peoples) were moodblast and Statz.

 

MacArthur works by looking up the next calendar event in iCal, and offering up an away message of the form “At [location] for [meeting title]”. I can overwrite that suggestion if it is not what I want to set my status message. If I leave it alone, it sets the status message for the accounts I have configured to that message. It supports Adium and iChat directly, and can support others via extra scripts that it can run. In my case it generates a shell command of curl –user ‘username:password’ –data-binary ’status=StatusMessage’ http://twitter.com/statuses/update.json” (this calls a URL that uses my account credentials on twitter to set my status message. A similar thing could be done for Facebook, but I ran into an app called ‘MoodBlast” that does this in a better way, so I just call that. For my IRC status, I just put together a quick applescript that sets my status for Colloquy, and it sets my message for me if I am logged into an IRC room. I could optionally add a message into the chat room itself, but that seemed a bit too chatty.

 

Since OraCal2iCal sets an alarm on each one of my meetings to calls MacArthur, my status message will be updated with my location and meeting info even if I am away from my computer. When I return to my office, I can activate MacArthur again, but rather than letting it run automatically, I can type in whatever status message I want and hit the “Available” button, and it will set my status message to Available, and update my messages on all the apps/sites I have it configured for. It does a few other things for me as well, but they are outside the scope of this post.

 

I am also using an application called Proximity on my machine. I have paired it with my phone (it detects blue tooth devices), so that if my phone is out of range for more than 5 minutes, it will check to see if my status messages are already “Away”. If my status messages are NOT in that condition, it will launch MacArthur, and my status will be updated. If I do not have a meeting schedule for that time, my status message will simply be “I Shall Return”.

 

So in short, the steps I follow are:

1. Import calendar info into an easily accessible application

2. Set alarm on all (important) events to call app that sets status messages (or set status messages directly)

3. Configure status message changing app to look up calendar info, and set status on chat clients/sites that you care about

4. Configure a way to set all of your stats messages to Available if needed

5. Configure system to detect if you ‘wander away’ and set status messages accordingly.

 

If I were asked to suggest some things for a windows environment, I would look at;

1. Getting the calendar info into Outllook, as it looks to be the most robust calendar for this sort of thing on Windows. For Oracle Calendar users, this seems to have been easier with Outlook 2003, but there is hope that an importer for the latest release of Outlook will be available soon.

2. it may be easiest to set alarms by hand on events to start out with, and then look at automating that process. A colleague I work with has set up a twitter updating alarm on his outlook calendar and the code he is using is added at the bottom of this post if anyone wants it :).

3. I might leverage the twitter posting to drive other things like facebook and maybe even desktop chat clients, as twitter seems to be the easiest of these sorts of services to attach to these days.

4. If an automatic alarm adding thing for Outlook does not work, it might be worth just going for a solution that detects when your phone exits the space. Something like XXX may work for this, if you could make it look up your next meeting location and title and pass it along to some apps (such as calling a script such as the  twitter script above).

 

If anyone has any suggestions about how to do more stuff like this, or do it better, feel free to leave notes in the comments, or post links to support sites. This sort of thing can be fun, and is sometimes quite helpful.

 

The code and info for the outlook to twitter stuff is below:

Pre-requisite:

Download and install Twitter CLI from

http://phalacee.com/index.php?page=development&section=app&development=19

 

and install into an existing PATH (like “C:\Windows”)

 

The following Outlook macro goes into the “ThisOutlookSession” module and is executed whenever a Reminder event is fired by Outlook. Note that some of the commented sections that involving parsing text are done for my own purposes and follow my own event naming conventions, so they will need to be modified or eliminated.

 

 

Private Sub Application_Reminder(ByVal Item As Object)

 

  Select Case Item.Class

     Case olAppointment ‘26

 

          Dim strSubject As String

          Dim strLocation As String

          Dim strMessage As String

 

          strSubject = Item.Subject

 

 

           ‘Parse for non-meeting events that should not be Twitted

 

                ‘unconfirmed meetings (Oracle Calendar convention)

                If InStr(1, strSubject, “?]”) Then Exit Sub

 

                ’standard blocking of noon hour

                If InStr(1, strSubject, “Available for Lunch”) Then Exit Sub

 

                ’standard blocking of other times

                If InStr(1, strSubject, “No Meetings”) Then Exit Sub

 

                ‘Clean up Oracle Calendar attendance status crap

 

                strSubject = Replace(strSubject, “[+] “, “”)

                strSubject = Replace(strSubject, “[*+] “, “”)

                strSubject = Replace(strSubject, “[*-] “, “”)

 

                ‘Make some standard meeting locations more friendly

 

                Select Case Item.Location

                           Case “CACLST - Conf - MGH 320f”

                        strLocation = “the LST Suite meeting room”

                Case “Conf - 45plaza 210″

                        strLocation = “the 45th St. Plaza Conference Room”

                Case “Conf - 45plaza 280″

                        strLocation = “the 45th St. Plaza Conference Room”

                Case “Conf - Payables GAO Rm 109″

                        strLocation = “the Purchasing Conference Room”

                Case Else

                        strLocation = Item.Location

                End Select

 

                ‘Start building the message string for Twitter. This can be anything you want

 

                strMessage = “at the ‘” & strSubject & “‘ event “

 

                If strLocation <> “” Then

                        strMessage = strMessage & ” in ” & strLocation

                End If

 

                ‘execute the twitter command-line app and pass it strMessage

                ‘http://phalacee.com/index.php?page=development&section=app&development=19

                Call WSHRun(”twitter “”" & strMessage & “”"”, 0, False)

 

        ‘Other possible cases for a reminder object

 

        Case olContact ‘40

 

        Case olMail ‘43

 

        Case olTask ‘48

 

  End Select

End Sub

Dec 03

This is a test to see if the ‘mobileadmin’ plugin will let me use an iPhone to make a fresh post to this blog. The default confit would not let me type into the content area. This plugin seems to do the trick though.

Dec 03

I am attempting to move over to a real blog environment. WordPress is the supported (sort of) solution here on campus. After spending an hour or so figuring out all the bits (mostly MySQL and PHPMyAdmin) I think I am up and running. Now I just have to figure out what blogging is really all about, and how I might use it. I hope this will help me to make more posts than I did with my last system. I will move the old content into this new environment as well, just so it is not lost. 

Apr 22

After my last post about the possibility of using an appleTV to provide a “public collaborative consumption” space for a departments published podcast media, I got a chance to poke at one at the bookstore to test out some concerns that I had.

The big worry that I had was proved true. There is no protection on the device from inadvertent (or even intentional) breaking or overwriting the default sync that you set up. Since the device is created with the living room in mind, this is not too surprising. If you have access to the remote control, you can tell the system to “stop syncing” with the machine is is paired with. If you wish to synch it to a new system, or even stream content to the appleTV, you will be required to enter a PIN that shows up on the TV screen into your computers copy of iTunes. This is protection (so clearly the design of the device took this into account) but this is to protect the owner of the content from having it watched without direct permission. I would like to see the ability to long the sync configuration on the appleTV with a PIN as well. There would have to be an easy way to reset the PIN for the home user (something like the way that apple already has to reset one of their wireless base stations would seem reasonable).

This limitation on the device makes it not a very good match for public use. A private network between the sync computer and the appleTV could protect the system from being synced to some “odd” content, but the manager of the system would still have to check the system to see if it was still synced to the server, and reconfigure it by hand it if was not. Students would also not be able to share (via streaming) their own content if the appleTV was not on a network they could share. This might drive some of them to unsync the system, not out of malicious intent, but rather in attempting to find a way to make the device see their computer. The would then be unable to sync the system back to the mater computer even if they wished to.

But I still see value in the idea of a public, elegant system for showcasing and sharing the content of a department or group. Perhaps one of the other media-center solutions out there would be a more controllable system for this sort of use. If a full computer were used, it might be possible to add more features to this system as well (informative screen savers, customized personal interface, etc). I have looked into making a Mac server this purpose by running FrontRow (the bundled Mac media center) for this purpose over the weekend. It looks like it would work well, and would provide a few new features (internet radio, screensavers, remote control, monitoring, etc) with little work. But it would be a full computer to maintain.

Mar 30

The idea:
I have been seeing an increase in the number of video podcasts of class lectures on campus over the last year, and many people thinking about offering this feature. Many of the folks that I have worked with have decided to target iTunes and iPods, and so they are using H264 or mpeg4 video files. This seems to be working well (at least as far as I can tell) for individuals to access recordings of a class for review, reflection, or replacement for class lectures for individual students.

But what of groups? They could all watch individually, but that does not seem very group-ish. They could gather around a single computer and watch a recording, but the experience is probably bad enough to drive folks away from that. Besides, what we have seen when looking at the use of audio recordings by students, is that they like to access other info on their laptop while the audio track plays. That would be hard to do while sharing a computer with a large(ish) video playing.

One option might be to make the material available in a managed collaborative environment. This (at least my initial vision) would work best in a smaller school that has a central space that its students work in. This could be an informal study area where noise is not a problem, or dedicated study rooms.

Each installation would be equipped with a widescreen TV monitor (preferably with HDMI) and an apple TV. The Apple TV would be configured to sync to a managed computer (Mac or PC). This computer would host all of the content to be synced to the Apple TV (including subscriptions to the Podcasts of the class content, as well as non-class videos, Photos, Music, etc). The photos are usually the source for the screensaver on the system, so a little self promotion and info sharing might be possible here. Groups of students would end up with an easy and reliable place to go to view the content that is directly related to their course work.

The good:
The system is a closed system. Maintenance should be minimal for the client side. The “host” system would still have to be maintained, but that should be no problem for a group able to produce podcast content.

The system is simple. It does what it does, and little else. Students should not get confused, and no one should be tempted to try to make the system do more than it is designed to do (feature requests from faculty should be easy to deflect).

The current time between the end of a lecture and its publication in the automated systems I have seen is reasonable. Within an hour of a class ending, the content might be deployed to the apple TV(s) linked to a system.

The content would not have to be specially produced or published to update these client stations. They would just feed off of the already existent podcasting of the media.

The ability to produce and publish “extra” content on the system could be an interesting feature.

The bad:
The system is a closed system. As new features are added, controlling them may be hard. Some new feature could be unexpectedly disruptive to a space. Security issues could be hard to deal with.

The system is simple. Adding custom features (a news board for a screensaver) is not going to happen unless Apple provides it (or you want to do things that might really make the maintenance complex).

File type support is very limited.

Some faculty may not want their content shared in this way, and that may generate support questions from students that do what the content available this way. The control of what content gets pushed to the apple TV is fully controllable via the host computer, so any mix of data could be synced with the apple TV, but there is NO user authentication required before the content is viewed.

Some decision points:
Is Apple TV the right thing for this? I have no idea. There are other media streaming devices showing up these days. The XBox360 is being used for this purpose in many homes. Netgear has a solution. A full media friendly system could be used. I went to the apple solution in this initial thought-dump due to is easy configuration and navigation (it does not do anything else, so it is always ready to play back video) and its integration with what I am seeing as the most common target of class podcasts (iTunes).

Audio quality? You could either go with focused localized audio to minimized disruption to others in the space (like the art installs with audio we see in libraries), or you could go with a great audio configuration and possibly allow students use the system to listen to music while studying as well as the lecture content.

What about students sharing from their laptops? I have not been able to find good info yet about how the security of “who can be a source” is controlled. Right now, only 5 computers can be configured at a time as “streaming sources” but I don’t know if we could block that if we wished (ie use up all 5 streaming sources) or if we could allow sudents to bring their laptops over and stream their content and not end up in a state where all 5 slots are used and it is hard to recover. It is also unclear if a student could “take over” the Apple TV and synch their own data to the system, thereby removing the content we would want to have on it.