So many of these entries are really just an attempt to make sure that the next time I go searching for an answer to some question, by gum there will be a search result. That is: I write up things that I couldn’t find an easy answer to, so that someone else reaps the benefit of my suffering.
But, sometimes, it’s just about admitting that I’m dumb.
Case in point: I’ve been grousing on Twitter about a number of things in the past week, one of which was that, for much of the fall, many of my Google calendars have been showing up in iCal doubled. Every event shows up twice. Sometimes more than that, when Google has a hiccup. And birthdays from my contacts have shown up as many as 34 times — no joke: I counted. But the core problem has been that I’ve been seeing many of my Google calendars twice in iCal. It makes me feel busy, but otherwise it serves no purpose.
And then it hit me this evening, as I was looking at the list of calendars in iCal: with the launch of Mountain Lion, Apple revised how it handled Mail, Contacts & Calendars — so much so, in fact, that they created a separate prefpane for it. That connects to iCal, Mail and the Address Book pretty transparently. Before that upgrade, to see secondary Google calendars (the ones other than your primary calendar — a distinction about which I have some more grousing to do at a later date), you had to enable calendar delegates in the Accounts section of the iCal preferences. It was messy, and ugly (you had both the delegate and the calendar nested in the delegate… for each and every calendar). But it worked.
I never turned off the delegates when Apple upgraded to Mail, Contacts & Calendars. So I was seeing both the delegate calendar and the calendar associated with my Google account in Mail, Contacts & Calendars.
I just turned off delegates and everything got better. Except maybe those duplicated birthdays… we’ll see what happens with them.
Seth Battis December 9th, 2012
Posted In: How To
Because I can’t stop playing with something that already works fine, I’ve continued to tweak my syllabus-generating spreadsheet. With the addition of an external script, I’m able to link directly to a specific cell in the spreadsheet — letting me share a link to my syllabi that takes people not just to the overall document, but to the current day (or the next day that’s closest to the current day) in the syllabus. The script could be used to link to any cell in any published Google Spreadsheet, with the caveat that if there are multiple cells with that match that value, the link will take you to the first appearance of the value in the spreadsheet.
$url = $_REQUEST["url"]; $key = $_REQUEST["key"]; $anchor = $_REQUEST["anchor"]; $html = file_get_contents($url); $output = str_replace($key, "<a name="$anchor"></a>$key", $html); $output = str_replace("href='/", "href='https://docs.google.com/", $output); header("Content-Type: text/html"); echo $output;
This takes a GET URL of the format http://server/script?url=[url]&key=[key]&anchor=[anchor]#[anchor], where…
Nota Bene: You have to add your own link to the anchor — this is a quick, slapped-together connection to my script.
Update: I was sitting here staring at the script, trying to figure out why I hadn’t put the anchor tag around the key, and then I realized what’s going on. The key (on my spreadsheet) is formatted to be white text on a white background (Rothko-style, if you will). If it gets converted to an anchor, its styling is affected and (without more work in the script) it turns blue and underlined. Lame. So… the anchor goes before the key, so the key’s CSS style won’t be affected.
This is why you document your code. Even when it’s short.
Seth Battis October 31st, 2012
Posted In: How To
As noted earlier, there is a slick trick for taking a publicly accessible calendar in FirstClass and generating an iCalendar feed. Also noted earlier, the big problem with this feed is that it doesn’t contain timezone information, which makes some calendar systems (most notably Google Calendar) assume that everything is happening at Greenwich Mean Time. Which it usually isn’t. And I have written a PHP script that adds Pacific Timezone information to the iCalendar feed.
Let’s put all this together and take a current FirstClass calendar, make it readable from the web, feed it through the script and then add the result to your calendar program of choice.
Seth Battis June 14th, 2011
Posted In: How To
I came across Rahul Mahtani and Yofred Moik’s conceptual design of a Google Mail Envelope a few days ago and was… instantly captivated. I’m not sure if it’s just the aesthetics of a design on the envelope in general, the way it hearkens back to an old school airmail envelope, or the conceptual neatness of the route between the two addresses. I just know that I love it and I want it.
So, I spent some time making a version of it.
Right now, my implementation is very much hacked together (I was teaching myself the Google Maps API as I went — it’s not hard, but it’s not familiar vocabulary, yet — I have a few other projects that will get me more expert soon, I hope). The things to know are:
More to come as way opens.
Seth Battis April 11th, 2010
Posted In: Computer Science
My first year teaching, a bright young thing just out of college, I spent the summer before-hand in a state of panic: I assumed that, having gotten a job teaching AP Computer Science, that I would now need to be an infallible expert in computer science. This level of pressure had me practically hyperventilating before my first class.
Fortunately, what gradually became apparent to me (and has been reenforced often since, even as recently as my most recent evaluation this fall) is that the value in my teaching (and, I presume, all teaching) is not in what I can explain to the students, but what I can help them explain to me. And things get really exciting when my students get to explain things to me that are new to me. In fact, the most freeing moment I have had in the classroom was the first time I said, “Gee, that’s a good question. I have no idea. Let’s figure it out.” The practice of working as a collaborative team to solve a shared problem is real, and it is true learning.
Previously, I alluded to the idea of being willing to get lost in the hinterlands on the way to our educational destination. In this scenario, the teacher serves as the knowledgeable and resourceful guide. My best service to my students is to help them prepare for that journey, to load them with the background knowledge they need to tackle real and challenging problems. In this, the question of how and what to communicate to my students arises. I don’t want to tell them too much, for fear that they will come to rely on me, rather than their own intellect, for answers. But I certainly don’t want to tell them too little, for fear that they will never emerge from the hinterland.
This fall, as my computer science class can attest, we have swung both ways, but I think we’re finding a happy medium. As we reach equilibrium in that state of my life, I am turning my attention more directly to the other part of my life, working with faculty on uses and goals for academic computing. And I find myself in a similar bind. What and how should I be communicating? In a previous incarnation of this position, at another school, I believe I said too much and limited the creativity and actual learning of my colleagues. At the same time, I cannot rely on my colleagues now, who are working the so-called “triple threat” while striving to consistently improve their own teaching, to just “figure things out” on their own.
I think that this is exactly the situation for which we must prepare our students: we want our students to be able to lead, but to be able to collaborate with their colleagues to achieve the best possible results. How then, do we prepare our students to do this? And can we use these same tools ourselves to accomplish these same goals for ourselves (surely we should be as good at this as we would like our students to be, and if we’re not… now is an excellent time to get better!)
I believe the first step is to actually consider the nature of the communication that we are doing and to try to use appropriate tools for the problems at hand. Traditionally we are used to face-to-face meetings (which occur in real and simultaneous time for all participants, in a single location), mail (snail or electronic, it amounts to an asynchronous discussion occurring in multiple locations), or some telephonic communication (simultaneous real-time discussions occuring in two different locations). These same basic limitations apply to our communication with even the latest technology (are we in the same location or different locations? Can we talk at the same time or different times? Will this conversation take place all at once or over the course of several communications?)
But we have new tools that let us make better use of both our synchronous and asynchronous time. Consider the process of developing a joint document (a proposal for a new course to be taught by a team of teachers, for example). With our triple-threat schedule, we may only be able to find one quick time for a face-to-face meeting, but we can use wikis and other shared document tools (e.g. Google Docs) to share a single, evolving draft of our writing. Technologies are coming into play to allow us to do the same for video and audio editting.
Similarly, if we want to work the kinks out of a new idea, we would normally try for a face-to-face meeting (with a whiteboard, of course). But what if we blogged the idea, and then the discussion takes place in the comment threads? The same conversation can now take place asynchronously. Or perhaps we want to thread several discussion topics together, as in a discussion board, allowing for more free-wheeling discourse. Or we would like to link together connected ideas in different threads with hyperlink references.
What this describes is a new paradigm for communication. Processes which are traditionally thought of as happening synchronously and face-to-face can now be done asynchronously and at a distance. And this is what we need to be preparing our students to do. And the tools that we can use as teachers to work together in an increasingly pressured educational environment to squeeze the greatest result out of our efforts.
This does not supplant our traditional communication approaches, which still have great strengths (tone, inflection and body language, anyone) but complements them, allowing us to collaborate in a broader array of challenging situations to get more done with greater coordination of effort and less coordination of schedule.
Seth Battis January 2nd, 2008
Posted In: Educational Technology