Custom Software

0

One of my colleagues, Matt Zipin (in fact, my high school computer science teacher), just sent me a link to an iPhone app that his current student, Ari Weinstein put together. It was one of those rare moments of seeing a piece of software and thinking, “This… this is exactly what I have been looking for! It’s almost like they had me in mind when they wrote it!”

Perhaps unsurprisingly, I had this reaction because, in fact, Ari has written an application that I suggested. Based on my work at St. Grottlesex as a Thirds’ basketball coach. I had been running practices using the timer and counter apps separately on my iPhone. Which was workable. But unwieldy. Enter.. Ari’s Basketball Timer app, which elegantly and cleanly combines these two tools into a single screen.

I think my favorite part of the app is something that you can’t see, that you can only experience: starting the Time out Timer stops the main clock, and starting the main clock stops the Time out Timer. How simple. How elegant. How easy it would have been to skip over.

Thank you Ari and Matt!

Developing for the App Store with High School Students

6

I actually really, really want to document some of our projects that we’re working on this year in a great deal more detail. But, for now, I am simply publishing my notes from a conversation that I just had with Apple Education about the legalities of having high school students develop for the app store.

So… I just got off the phone with Apple Education (they were following up on an iOS in Education event a few months ago that I had actually missed). But: I did get the straight dope on Apple Developer accounts and high schools:
  • University accounts are just that: for higher education. Non-negotiable.
  • There are really three levels of developer that are pertinent to high school:
    • Free — they can download Xcode and use the iPhone simulator.
    • Individual ($99) — Same as free, plus they can use their iPhones/iPads to debug the software live (with the right certificates — I’ve found that the easiest way to set up the certificates is directly through the Xcode Organizer). My recollection is that they can have up to something like 100 devices for “debugging.” At this level, they can post apps to the App Store.
    • Enterprise ($299, IIRC) — Individual, plus the ability to manage a fleet of iOS devices (remote install and remote wipe), as well as distributing their software internally with no restrictions. I actually pressed him pretty hard on this, and he wasn’t 100% (“read the language in the agreement first”), but he thinks that it would be viable for the school to buy an Enterprise license and then say “Come by the computer lab and we’ll install our cool in-house app on your iPhone for free.” (Or for money — I don’t think they care.)
  • Apple strongly discourages the school (which would, in reality, be a single individual) signing up for an Individual developer account as the primary distribution channel to the App store for student apps. The rationale being that if a particular app makes it big, the individual who has control of that account well, has control of that account. Apple deals with account holders, not the model that the school constructed. They suggested that if a group of students wanted to band together on an app, that they should sign up as a group for an Individual account through which to distribute that app — and that they should draw up their own contract on their end for how to manage that account.
  • Students under 18 need to be signed up for the account by their parents. (Contract law — the kids are underage.)
At the end of the day, it sounded like my approach this year is basically right on the nose: I have an Individual account in my name that I use to install apps on test iPhones (and I have registered all the student iPhones as debugging devices). The students signed up for free accounts at the beginning of the year. I think what we’ll do when we release this app is sign up for a new Individual account that the students will jointly share to post the app to the App Store (something like “[Jewish Day School] App Design ’10′-’11″).

PHP Script to Add Time Zones to iCalendar/vCal Feeds

1

This is really just a quick hack: all it does is insert the correct timezone description in the header of an iCalendar feed. But if the server that is generating the iCalendar feed doesn’t do it, someone has to. The script generates a URL that can then be subscribed to by your Calendar reader of choice. (I’m running this on my server and using it daily to good effect, but decline to share bandwidth with the world for this one):

$filename = "calendar";
 
if (isset($_GET["url"]))
{
	$url = $_GET["url"];
 
	if (!isset($_GET["show_url"]))
	{
		preg_match("|.+\/([^?]+)\??|", $url, $matches);
		if (isset ($matches[1]))
		{
			$filename = $matches[1];
		}
 
		$calendar = file_get_contents ($url);
 
		if ($calendar)
		{
 
			//$output = preg_replace_callback ("/(DATE-TIME:)(\d{4,4})(\d{2,2})(\d{2,2})T(\d{2,2})(\d{2,2})(\d{2,2})[^Z]/", "adjustTimeZone", $calendar);
 
			$timezone = "X-WR-TIMEZONE:America/Los_Angeles\n" .
				"CALSCALE:GREGORIAN\n" .
				"BEGIN:VTIMEZONE\n" .
				"TZID:America/Los_Angeles\n" .
				"BEGIN:DAYLIGHT\n" .
				"TZOFFSETFROM:-0800\n" .
				"RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU\n" .
				"DTSTART:20070311T020000\n" .
				"TZNAME:PDT\n" .
				"TZOFFSETTO:-0700\n" .
				"END:DAYLIGHT\n" .
				"BEGIN:STANDARD\n" .
				"TZOFFSETFROM:-0700\n" .
				"RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU\n" .
				"DTSTART:20071104T020000\n" .
				"TZNAME:PST\n" .
				"TZOFFSETTO:-0800\n" .
				"END:STANDARD\n" .
				"END:VTIMEZONE\n";
 
			$loc = strpos($calendar, "BEGIN:VEVENT");
 
			$output = substr($calendar, 0, $loc) . $timezone . substr($calendar, $loc, strlen($calendar));
 
		    header("Content-Type: text/calendar");
		    header("Content-Disposition: inline; filename=$filename-pacific-timezone.ics");
			echo $output;
			exit;
		}
	}
}
<h1>vCalendar Time Zone timezone</h1>
	<p>This is quick script to "de-float" calendars in the vCalendar format which do not specify time zones for their events. This script will automatically add the Pacific time zone information to the calendar at the URL entered below. Copy-and-paste the resulting URL below into your calendar reader of choice. <a href="http://battis.net/link/timezonescript">The source of this script is freely available.</a></p>
	<form action="<?= $_SERVER["PHP_SELF"] ?>" method="get">
		<input type="hidden" name="show_url" value="" />
		<p>Calendar URL <input name="url" type="text" value="<?= $url ?/>" /></p>
		< ?php
				$newUrl = "http://" . $_SERVER["SERVER_NAME"] . $_SERVER["PHP_SELF"] . "?url=" . urlencode($url);
				echo "<p><a href=\"$newUrl\">$newUrl</a>";
		?>
		<p><input type="submit" value="Generate"/></p>
	</form>

Generating an iCalendar feed for a FirstClass Calendar

1

One, largely undocumented, trick that I have discovered is that, if one places a calendar where it is accessible from the web, say:

http://www.mchschool.org/~sbattis/1to1workshops1011

that one can then cause FirstClass to generate an iCalendar feed for that calendar by appending the following GET parameters to the URL:

http://www.mchschool.org/~sbattis/1to1workshops1011?plugin=ical&leaves

Clicking this link will either download an iCalendar file or offer to subscribe you to this calendar, depending on your browser settings — right-clicking will allow you to copy-and-paste this link into your Calendar reader’s subscription settings. In fact, with some tinkering, it turns out that the calendar can be in a secured directory and the username and password can be sent through as part of the URL (in a format that I thought I had seen the last of with the decline of Gopher servers):

http://sbattis:supersekretpassword@www.mschschool.org/~sbattis/1to1workshops1011?plugin=ical&leaves

(Nota bene: the above username and password are fake and won’t work — thereby rendering the link inoperable. But you get the idea.)

Building a Google Earth Tour in a Spreadsheet

1

For the last couple of months, one of my high school classes at Jewish Day School has been working on building an interactive tool about the Six Day War for a middle school curriculum unit. They have put a lot of work into researching their data and laying it out in Google Earth, and now we’re putting together a tour of the data for the middle school students, that will also teach them a little about how to use Google Earth. It’s been enormously fun.

But. But, we now have to do some programming or some very careful recording in Google Earth to create this tour (a là Al Gore’s Climate Change tours). And my students are far more interested in the design end of things than in the coding end of things. They’re great at what they do, but niggling coding details give them head aches.

So I built a Google Docs spreadsheet, into which they can plug various pertinent information and out of which comes valid KML instructions that will define the tour. I’m a little proud of this — I don’t think that there’s anything else quite like it out there. There are three kinds of information that need to be entered:

  1. SoundCue — any audio that should be played in the background. You can either enter the whole URL to the MP3 file that should be played, or just the file name (and make sure that you enter the path in which all the files can be found on the KML Generator tab). You also need to tell us both when the cue should be played and how long it should last.
  2. AnimatedUpdate — anything that should be happening in Google Earth in terms of showing photo overlays or placemarks or polygons or what-have-you. Enter what should happen, and when (and, if relevant, for how long).
  3. FlyTo — any time we change where (or when) we’re looking at Google Earth. Enter when and how long the transition should take, and the date (and time) that we’re meant to be looking at.

The AnimatedUpdate and the FlyTo also expect the user to enter KML code — which can be copy-and-pasted from Google Earth KML exports for each transition. Happily, if something needs to happen more than once, entering the KML for the first instance will automatically populate future instances. In addition, the pauses necessary to synch up all of the action are calculated by the spreadsheet.

Update March 25, 2011: The spreadsheet above is our live work (since I kept updating the spreadsheet after this post).

The end result is both a visual timeline of the tour (helpful for debugging any weird errors) and also KML code that can be copy-and-pasted out of Google Docs and into a KML file. (Caveat emptor: depending on what you’re pasting the KML into — I like Xmplify — you may see that there is a leading and trailing quote that need to be manually deleted.)

Right now the spreadsheet can handle tours up to four minutes and 10 seconds in length (250 seconds, for those of you keeping score at home). This is because I was originally copying the KML out of the KML Orderer worksheet, and Google Docs supports pasting of up to 1000 rows in total. You’ll see that the current KML worksheet is a single cell, getting around this limitation, but I didn’t bother to extend any of the other worksheets. Just make sure you fill down all the formulas if you extend any of the sheets!

Here’s a link to a scratch copy of the spreadsheet. Feel free to copy and use it for your own purposes — let me know how you used it!

Rendering an RSS feed as HTML

0

So… the RSS embed plugin for our school wiki server has been broken since before school started, with no sign of a fix in sight (other things are taking higher priority). Of course, since I have zero desire to post each new training video to our school video as I make them, this is a bit of a stumbling block. But…

I slapped together a script that makes use of the Magpie RSS framework to render some (most?) RSS feeds as a simple HTML page, which I can then embed as an IFRAME in our school wiki. Et voilá, no more having to paste in individual links! You can give it a whirl yourself: paste an RSS feed into this form:

RSS feed:

Obviously, if you have need of this on a regular basis, I would be happy to share the code — don’t just run it off my poor little web server!

Review of OpenText Social Workplace

0

I wrote this originally in response to a question from [the assistant head at Jewish Day School] about how I think about web tools. After writing this, I chatted with him and [my opposite number in the middle school] about how folks that are using OTSW in the middle school that are more successful — largely because they’re using it as a “gateway drug” to a web presence, rather than trying to bring an existing web presence into one place.

Here my general thoughts on selecting tools for teaching and learning, and how OTSW measures up against them. This is in no way meant as a slam on OTSW, but rather an explanation of my thought process in selecting tools with which to teach and learn, while examining the OTSW system.

In general, when looking at a tool, my first concern is how well it does its intended job — whether intended by the developer or by the user. Education is strewn with unintended, but serendipitous uses of tools never intended for that purpose: consider the military’s use of game systems for training.

Assuming that a tool does what it is intended to do, and does it well, my next concern is how well this tool will connect not just to any existing tools, but specifically to the tools that I already use (although a little forward-thinking at this moment, considering tools I might want to use down the road, is not uncalled-for).

Having looked at these two considerations, the final — and really potentially gamestopping — concern is how well this tool will support a safe learning environment for my students and myself. What “safe” means can certainly be construed in different ways, depending on the purpose of the tool (a discussion tool would certainly have different safety concerns than a research tool).

With these three concerns in mind, let us turn our eye to OTSW and our current set of web tools:

What does it do? And does it do it well?

OTSW provides a Facebook-like environment for users of our FirstClass system. It allows users to post status updates, to maintain blogs and wikis, and to comment on each other’s postings.

User status updates are handled reasonably well — there are no major surprises. The status updates are limited in length (as is true of Twitter, Facebook, SMS messages, etc.) The system will display a somewhat shortened (truncated) version of the status message to users who “follow” that user. The users cannot type a longer status update than will fit into the field, but there is no warning when the status update is longer than can be displayed to one’s followers. Potential uses for these status updates are unknown, but a creative mind could certainly come up with something. Mostly, they’re just for fun.

Consider the blogging system: the word processing system for writing posts is comparable to the FirstClass document editor in the FirstClass client, although perhaps more limited. It is also comparable to the WordPress or MindTouch wiki document editors although, again, perhaps a touch more limited: fewer formatting options, no support of the style associated with structured documents built for the web, limited capabilities for facilitating linking to other documents on the same system.

The blog commenting system is apparently “un-threaded” — or, at least, controls for turning on threaded comments are not apparent. This means that a comment posted in response to another comment is shown in the overall list of comments by date, rather than by thread of conversation. This makes complex, truly interactive asynchronous conversations about a blog post difficult, if not impossible, to read. Additionally, already read comments automatically collapse upon the return to the page (with no preference otherwise), providing limited context for new comments.

The wiki document editing system is somewhat more advanced than the blogging system, allowing for the creation of links to other pages within the specific wiki on which you’re working, although not to other wikis on the OTSW system. Additionally, three styles of structured text (body, heading and subheading) are supported on wikis, as well as a few more rich formatting options.

The organization of the wiki pages within a specific wiki on the OTSW system is flat, rather than hierarchical. While this limits the confusion associated with the page hierarchies on the MindTouch wiki, the presentation of the pages for the wiki is now as a “page cloud” in the tool bar, organized apparently by date of creation or modification (making the placement of pages unpredictable between visits). There is no clear way to move or copy a page from one OTSW wiki to another.

As [one colleague] has correctly noted, another oddity of the OTSW wiki system is that, when commenting on a page, the actual content of the page is hidden (although the other comments on the page are displayed as on the blog, along with links to different versions of the page in its revision history). This is at best unhelpful, and certainly confusing to the novice (or experienced) user.

In both the blog and wiki systems on OTSW, the ability to tag posts and pages with keywords is provided. The tagging system in beta versions of OTSW was highly vulnerable to non-alphanumeric characters in tags (e.g. “Seth’s tag” — the apostrophe in one tag rendered an entire community inaccessible). In the current version of OTSW, non-alphanumeric characters are accepted in tags for display… but clicking the tag link to view all documents tagged with that keyword has unpredictable results (in the case of “Seth’s tag” the link takes the user to a page list all documents tagged “Seth” — which does not include the pages tagged “Seth’s Tag”).

Additionally, depending on what actions have recently been taken in the OTSW environment, the tagging tool will appear in unpredictable locations or may not even be accessible. (As is also the case for initial edits of wiki pages: once posted, the user has to leave the wiki and return in order to find an Edit link for that page.) Tagging wiki pages, at least in Safari, appears to be undo-able, as the tagging tool appears the bottom of the page, with scroll bars turned off, and no save button available.

Considering the apparent purposes of the OTSW system:

  • Status updates: nothing particularly unique or different or unusual, automatic truncation without warning.
  • Blogging: limited formatting options, lack of threaded discussions, lack of ability to link even to other posts in the blog.
  • Wikis: limited formatting options, confusing discussion format, no ability to organize pages.
  • Tagging: easily broken, predictably unpredictable.

Interoperability with Other Tools

When it comes to interoperability with the OTSW communities, the highest priority concern would be how well the tools work with our existing array of tools on campus, including our blog and wiki servers and, especially, FirstClass.

The communities are stored as a special type of conference on the FirstClass server. In current versions of the FirstClass client, clicking on these conferences will open the community in a web browser. When viewed by older clients, these conferences will open to reveal a list of documents (the pages, posts, comments, etc. within the community) with an array of specialized columns reflecting how these documents would be displayed in the web browser.

When a user is invited to a community, they receive an email invitation, with a link to click to accept the invitation. Users who have not already logged in to the web interface to the communities have found that these links often are not active: they do nothing. Ideally, the result of clicking this link is that an alias to that community’s conference will appear on the user’s FirstClass desktop, giving them access to the community. Moving these conference aliases off of the desktop (perhaps into a folder called “OTSW Communities”) renders the group memberships inoperable — the conference aliases must remain on the desktop, although each functions only as a bookmark to the web interface to the communities when accessed through the FirstClass client.

When a user creates a community of their own, a new community conference is created on their desktop, and all pages, posts and documents posted to that community will count against the creator’s FirstClass disk quota.

When a user posts a page, post or comment to an OTSW community, that content is displayed as an outgoing message to the users’s My Shared Documents conference in their mailbox. This is confusing.

In terms of interoperability with our blog and wiki tools, there are three standard ways to connect tools to each other on the web: links, RSS feeds of recent updates and embedding.

OTSW communities do not provide any RSS feeds. Links to OTSW communities, pages or posts, will fail if the user is not currently logged in to the OTSW communities in their browser. Following a link to an OTSW community while not logged in will drop a user into their OTSW desktop, rather than the target of the link. OTSW communities provide no options for embedding their content in other tools.

Looking at the flip side of this interoperability, bringing external tools into OTSW provides a somewhat better picture. OTSW supports regular web links in all posts, pages and comments. OTSW supports attaching any kind of document to a wiki page (e.g. a movie or audio file, or Word document).

OTSW does not provide any facility for subscribing to RSS feeds from other tools.

OTSW does provide some support for embedding external content in OTSW pages, posts and comments. These embeds are performed by pasting arbitrary HTML into the OTSW content embedding dialog. Unlike WordPress, which provides some filtering, OTSW will allow anything to be embedded — and, in fact, embeds most objects as IFRAMES (which allows the embedded site unlimited access to OTSW — not great for security).

One oddity of OTSW embedding is that embedded content is masked by the OTSW embed logo, which must be clicked upon to reveal the embedded content (perhaps as a security measure?). Once the logo is removed to reveal the embedded content (which must be done each time the page is loaded, for each embedded piece of content), the embedded content is presented in an IFRAME exactly the same size as the previously masking logo. The logo is smaller than the standard YouTube video, for size comparison. This means that all embedded content is viewed through what amounts to a porthole.

One possible way around the lack of ability to access an external site’s RSS feed (for example, a feed of recently updated instructional videos from YouTube), would be to use a third party tool such as WebRSS to generate a “badge” which could then be embedded in OTSW.

Considering OTSW’s interoperability with other tools:

  • FirstClass: Rube Goldberg-like dependency on community conferences to remain on the desktop, no warning about disk quota use for conference creators, confusing display of posted content, flaky invitation system.
  • Web Links: outgoing links from OTSW work fine, incoming links are functionally useless.
  • RSS Feeds: non-existent.
  • Embedding: no options to embed OTSW content elsewhere, very limited ability to embed external content in OTSW, requires manifold click-throughs.

Safety

OTSW provides a very well-secured environment for users, in that it leverages our existing FirstClass userbase to automatically limit access to communities. While I have no clear understanding of the true security capabilities of FirstClass, I note that the FirstClass messaging system was, for many, may years, a de facto standard across education — quick and easy to setup, very reliable, very secure. Nine out of ten dentists use it themselves, etc. OTSW does not seem to waiver from the FirstClass security model. In terms of operational security, OTSW appears to be a seamless layer on top of our existing FirstClass system.

Another aspect of security that is well worth considering in a teaching and learning standpoint are the types of habits promoted by a particular tool. For example, blog servers promote, well, self-promotion and publication, hopefully also critical, analytical engagement with external information sources. Wiki servers tend to promote collaboration, with individual accountability, on large documentation and research projects.

As a Facebook-like communication system, OTSW should, then be viewed as a safe learning environment for social networks and media, where students can learn good habits and social graces. Much of the system works in this manner (as did FirstClass in relation to traditional email), providing the ability to track revisions, flag offensive content, engage in asynchronous discussion, etc.

The one oddball is the profile system (and this may be dependent on system settings). By default, the OTSW user profiles are set to demand more and more and more personal information from each user, reminding the users that their “profile is only X% complete… add your [fill in the blank personal information] to complete your profile.” To my mind, without deeper discussion in the classroom, this type of message promotes a culture of thoughtless exposure, rather than a carefully managed digital footprint.

WordPress µ Testing Setup

0

A few days ago (well, maybe a couple weeks ago), I was chatting with one of my colleagues about how I go about testing out new plugins and themes for WordPress µ before loading them on our school blog server. It seems like documenting my process might be generally helpful, so…

To start with, I decided (after ten years of mucking out Apache config files and PHP extensions and custom MySQL installs — thank you so, so much Marc Liyange for your timely and helpful installers!), that I was a grown-up and could spend $60 on a tool that makes my life easier: I run MAMP Pro on my MacBook. This means that I have a generic Apache/PHP/MySQL stack that supports commonly-used PHP extensions, Apache configurations, etc. I have redirected the document root of my install to my regular user’s Sites directory in OS X (~/Sites) so that I have ready access to the backend files of for my test installs. The net result: WordPress’ famous “Five Minute Install” is now true of almost any LAMP-based web application — I had a five-minute install of Drupal, Moodle, Joomla… you name it.

I’ve also settled into using Coda ($99) to edit HTML/PHP source code, since I particularly like the built-in terminal and publishing management features.

With WordPress µ installed (which, I guess, is now calling itself WPMU or WordPress MU or even WordPress 3 in betas), I now do the following:

  • I install create a new blog for each new theme or plugin that I want to test out. I follow a pretty intuitive naming scheme: the URL for the blog is the URL for the plugin or theme, and the name of the blog is the name of the plugin or theme (so WordPress Hashcash is at …/wp-hashcash and named WordPress Hashcash).
  • As I create each new blog, I create a new user to be that blog’s administrator. I almost never use this login, but it means that I have one user who is matched to each blog. In doing this, I make heavy use of Gmail’s + modifiers, so new user emails look like mygmailaddress+talyn+wpmu+blogurl@gmail.com — this lets me catch and filter relevant emails easily on the other end. (I developed this system when I was testing plugins that sent email notifications). For the curious, Talyn is the name of my laptop (so I know which server is sending me email) and WPMU is the keyword to distinguish these emails from, say, Drupal notifications.
  • I also have six generic users that I add to most (not all — I add them as needed) blogs, each with their own standard privileges:
    • Anna “Annie” Administrator
    • Edward “Eddie” Editor
    • Allison “Allie” Author
    • Christine “Chrissy” Contributor
    • Samuel “Sammy” Subscriber
    • Nathan “Nate” No Privileges

    I actually included nicknames so that I could control for how different themes displayed usernames (since I’m thinking about FERPA and how it may apply to our students on our school blogserver).

  • I have one blog on which I never activate themes or plugins, which I lyrically call “Is this blog in the blast radius?” This is based on my experience installing Digress.it on WordPress µ at the start of the year (it hosed every blog on the server, rather than just the one where it was activated). I check this before I deem any test complete.
  • One tricky thing that I did was that I set up MAMP to run Apache and MySQL as my local user account on my MacBook, and I have set permissions on my Sites directory so that my local user has all privileges, as does the www group, and other users have read/execute privileges (chown -R seth ~/Sites; chgrp -R www ~/Sites; chmod -R 775 ~/Sites). This means that I usually don’t run into problems with web apps that want to move or create files. This is also, of course, totally insecure. Que sera, sera.
  • I have an extra blog set up on my WordPress µ install that runs Feed WordPress, and it republishes the feeds for all of the other blogs on the server tagged Note. This means that I can post something tagged Note to any blog that I’m working on and then have all my notes together in one place. Adding the subscriptions to the Feed WordPress blog is a manual step, but not prohibitively difficult. And it really does mean that I have one place for all of my notes on how things went (or didn’t went) in my WordPress µ testing. I have the feeds categorized as Plugins, Themes, Configuration and Hacks, since those are generally what I’m testing (and mostly Plugins, at that).
  • One hitch in my system is that I have opted to keep my system entirely up-to-date (I’m running WordPress µ 2.9.2 with the most recent versions of all my plugins), while our school blog server is still at 2.8.4a. Generally speaking, this hasn’t been much of a problem, but when I’m particularly concerned, I will sometimes check things out on a lingering 2.8.4a install before loading it.

Creating RSS Feeds in FirstClass

0

Since this is available nowhere else on the internet, I’m posting it here for safekeeping. I believe that this applies to at least FirstClass 10, perhaps also FirstClass 9 (but that’s just a W.A.G.). This is from FirstClass tech support:

An RSS feed can be generated for any FirstClass container object (folder, conference, etc.) which is visible to the Web by adding a template override parameter to the URL. In other words, if the URL to the news conference on your Web site was http://www.mysite.com/News , then the URL to the RSS feed for that conference would be http://www.mysite.com/News?Templates=RSS&items . If you have an RSS feed reader you can simply enter that URL, give it a name, and you’ll have a feed. Usually, sites that offer an RSS feed will put a little icon on their main Web page to show that they have one. If your main page is a FirstClass document all you need to do is:

  1. Paste in your preferred RSS image
  2. Highlight the image in the editor and right-click your mouse, choose “Make Link”
  3. Enter the RSS feed URL, in our example http://www.mysite.com/News?Templates=RSS&items or ?plugin=RSS&Items

Buyer beware: I have not seen this work yet in my own tinkering. But I am hopeful that somehow I’m doing something wrong.

Go to Top