Jon Udell

Search
  1. Search People
    1. Search People
    2. Search Page
    3. Search Comments
    4. Advanced Search

Latest Comments

8 hours ago Xyooj on Jon Udell

you all….thanks for sharing
very interesting thoughts.
though we all have the Internet already, many are dividing it up for their own interests…
http://www.asianme.com/join_inv.php?member_id=239

Reply | Original | Permalink | | Tweet

http://WashingtonOnlinePharmacy.Com : FedEx overnight shipping, free prescription with your order and 24/7 customer service.

Reply | Original | Permalink | | Tweet

Quoted printable would imply that the = sign on the preceding line would be treated as a “soft” line break.

http://tools.ietf.org/html/rfc2045

page 20, (5). In particular, look at the example on the next page.

Reply | Original | Permalink | | Tweet

Jon,

> I don’t know to what extent ALTREPs are
> actually produced and consumed. My guess
> is rarely, and that producers might want
> to lean toward plain text with line
> folding when that’s sufficient.

I my experience, ALTREPs are not generally handled, and I know of no consumer of iCalendars that can actually handle them. In theory, however, I agree that this Content-Id system works well and is technically supported by RFC 2445 - it properly describes the data as HTML data before presenting it to a CUA. I’m not sure of current CUA support for MIME entities. In theory, a calendar feed using ALTREP in this manner would need to be more than a simple .ics file then, it would need to be a MIME feed with appropriate entities found within.

In practice, I agree with you - it’s best to provide plain-text representations whenever possible.

I think a more flexible use of ALTREP would be to simply provide a perma-link to an alternate representation of the content, handled by an underlying calendar server of some kind (i.e. ALTREP=”http://some.site.com/calendar?altrep=1&calid=1234&uid=5678″).

Additionally, the use of ENCODING=QUOTED-PRINTABLE as a component-based encoding is not explicitly supported by RFC 2445. The standard mentions quoted-printable encoding as a means of transport, but goes no further than that. The only built-in encoding supported are “8BIT” and “BASE64″.

http://www.w3.org/2002/12/cal/rfc2445#sec4.2.7

Thanks!
-Doug

Reply | Original | Permalink | | Tweet

> Far from it. The DDay.iCal library is of
> very high quality.

Thank you very much.

> The issue, in my view, is that — lacking a
> robust validator — we face a lot of
> uncertainty about how all the libraries
> I’ve looked at should handle the kinds of
> feeds we see out in the wild.

In your view, do you think a DDay.iCal-based validator would be appropriate or useful? I’m wondering what your thoughts are toward finding/creating a robust validator?

Thanks again,
-Doug

Reply | Original | Permalink | | Tweet

Thanks Doug.

> From your subsequent experiments, though,
> it sounds like DDaily.iCal is quite a
> fragile hack to start with…

Far from it. The DDay.iCal library is of very high quality. The issue, in my view, is that — lacking a robust validator — we face a lot of uncertainty about how all the libraries I’ve looked at should handle the kinds of feeds we see out in the wild.

> the parser (ANTLR) is not robust
> enough to require PRODID and VERSION
> explictly.

I wondered about that.

Reply | Original | Permalink | | Tweet

Thank you Jon for doing this research - I believe this is a good step toward improving iCalendar interoperability.

“it sounds like DDaily.iCal is quite a fragile hack to start with…”

Peter, please be careful of gross assumptions before flaming another’s work: A close examination of RFC2445’s BNF demonstrates that indeed, blank lines are not explicitly allowed by the standard:

http://www.w3.org/2002/12/cal/rfc2445#sec4.6

also

http://www.w3.org/2002/12/cal/rfc2445#sec4.1

Although it is not explicitly accepted by the standard, I personally felt this issue should be corrected in DDay.iCal, and have subsequently modified it to accept blank lines.

As to the other issue of requiring PRODID and VERSION - those also are required by the standard, and hence are by DDay.iCal and its parser (Google Calendars will not parse calendars without a VERSION property). Since the parser (ANTLR) is not robust enough to require PRODID and VERSION explictly, it simply required 2 or more calendar properties. This has since been modified as well to accept calendars with no properties.

Thanks again Jon - this is excellent work, and I appreciate you letting me know the results of your work. Keep it up!!

-Doug

Reply | Original | Permalink | | Tweet

To me, it seems like the first matter (DDaily.iCal throwing errors because of an extra line feed) is a point where the author of DDaily.iCal should follow Postel’s law: “Be conservative in what you do; be liberal in what you accept from others.” If the spec is somewhat vague on the matter, the parser should have enough robustness to handle a few stray characters (line feeds, in this case).

From your subsequent experiments, though, it sounds like DDaily.iCal is quite a fragile hack to start with…

Reply | Original | Permalink | | Tweet

the issue here is to get past words and focus on their meaning - rather their content, context, and intent. it does not matter if it is john or jon as long as know it is the same person. and the only way that happens is by associating meta-tags and tags that uniquely identify a person regardless of the horrible work we do mispelling their names.

now, that is cool stuff…

Reply | Original | Permalink | | Tweet

vpdrj ntwioje ujzshw xvgilb

Reply | Original | Permalink | | Tweet

I just want to thank you for digging into this, Jon.

Reply | Original | Permalink | | Tweet

I would read the following from RFC2445:

“The iCalendar object is organized into individual lines of text,
called content lines. Content lines are delimited by a line break,
which is a CRLF sequence (US-ASCII decimal 13, followed by US-ASCII
decimal 10).”

to support your contention that blank lines are not permitted. “Content lines” are not permitted to be empty:

“contentline = name *(”;” param ) “:” value CRLF”

Reply | Original | Permalink | | Tweet

When I do an ego search (ok, not often but for amusement and to see what no-follows I need to add to push useless self-references off the top page), I am always amused by the “Did you mean to search for ‘orchid’?” and the sidebar ads for florists.

So, in annotating the web with semantic information, we have to do better than that, but it seems like a labor-intensive activity and one that is doomed when the wisdom of the crowd swamps the correct association.

Name confusion seems like an interesting problem in the absence of objects that represent the partitioning. There are a lot of D E Hamilton and Dennis E Hamilton entries in phone books around the country. Some of those listings are for me at different locations at different times. There have even been incorrect listings that were for me. And I receive an occassional call from someone looking for someone with a similar name or who just might be related to me.

We manage with this noise, although sticky identity confusion can be a problem (no-fly lists and misdirected liens and warrants come to mind). I think we cannot expect perfection. But how do we obtain the flexibility needed for corrections and improvement? I wonder how quickly that becomes the question. We’ll have to find out.

Reply | Original | Permalink | | Tweet
1 day ago chineseLocker on Jon Udell

hi…

Not sure that this is true) but thanks…

Reply | Original | Permalink | | Tweet

At my 30+-year-old son’s insistence, we bought the WiiFit about 6 months ago. It has been wonderful for me. I use it every day.

Reply | Original | Permalink | | Tweet
2 days ago Robert Quinn on Databasing trusted feeds with del.icio.us

Here’s a group using Del.icio.us for a similar purpose. This is a great model.

http://www.propublica.org/article/how-you-can-help-us-flag-great-journalism-now-even-easier-1230

If you have an account with the bookmarking site Delicious, now all you have to do is tag an article “PPlinks” and we’ll see it right away. (If you don’t already have an account, Delicious is just a handy way to share links. It’s easy to sign up for. And no, we’re not getting any Delicious-y kickbacks.)

Reply | Original | Permalink | | Tweet
2 days ago Sen Hu on Jon Udell

Use biterscripting for things like this. Just create a generic data/time processor function or script and reuse it over and over. Download free at http://www.biterscripting.com .

There are some sample scripts (one I use is at http://www.biterscripting.com/Download/SS_SearchWeb.txt - I don’t remember all of them but with the biterscripting download, all their sample scripts are downloaded also.)

Email me if you need more help.
(It may be some time before I can respond.)

Sen

Reply | Original | Permalink | | Tweet
3 days ago caribbean stud poker on Jon Udell

I think that your site is very interesting and nice. Good job !

Reply | Original | Permalink | | Tweet

“I fixed the feeds so they validate.”

Although, as we see above, their former non-validity didn’t prevent three iCalendar libraries from parsing the feeds.

“I had to use a regular expression and pytz to take the timezone information and transform the start and end times.”

And therein lies the dilemma. If those changes are required, a robust validator should prescribe them.

“Also, when looking around my community (New Boston, NH) to see if I could create an aggregated calendar, like elmcity.info, I found nary an iCalendar enabled calendar!”

This, of course, is the ultimate purpose of my project. ICS feeds want to be as superabundant as RSS feeds. They aren’t, and for no better reason than that it just doesn’t occur to people to publish them.

Changing that is an exercise in politics more than in software development. Jim Groom’s going to try to make Fredericksburg VA a sister city to Keene w/respect to this idea:

http://bavatuesdays.com/a-calendar-year/

Maybe you can do the same for your region of NH?

Reply | Original | Permalink | | Tweet

“I’d be fascinated to see which of your feeds vobject fails to parse”

I updated the chart above to include vObject. As you can see, it seems to like everything except the two Drupal-produced feeds.

“It’d be great to collect a snapshot of failing icalendar files and catalog them just so implementers in all languages could see which ones they fail on, how!”

Absolutely. That’s another benefit of maintaining the feed registry in an open, queryable location:

http://del.icio.us/elmcity/trusted+ics+feed

“I think the folks at CalConnect came up with test files like this at some point, but I don’t think they were made public.”

In any case, the stuff that comes up in the wild is what’s most interesting to me.

“If you aren’t already planning on it, you might try to attend the CalConnect at Microsoft’s Redmond campus, http://www.calconnect.org/calconnect14.shtml

Hmm. Perhaps. Although I don’t think that the use case I’m pursuing here is of much interest to that community.

Reply | Original | Permalink | | Tweet

I created the UNH Cooperative Extension application, and didn’t know about the validator. I fixed the feeds so they validate. The problem was not adding ;VALUE=DATE to all day events where I set the DTSTART and DTEND to date values.

I’m using iCalendar.py on my GAE project (www.mashical.com) and have felt the pain of ics formats. For example, Yahoo sports calendars use TZID in the DTSTART and DTEND, which iCalendar.py doesn’t handle natively. I had to use a regular expression and pytz to take the timezone information and transform the start and end times.

Also, when looking around my community (New Boston, NH) to see if I could create an aggregated calendar, like elmcity.info, I found nary an iCalendar enabled calendar!

Reply | Original | Permalink | | Tweet

I originally intended vobject to provide validation in addition to parsing of icalendar data, but I ended up focusing more on being liberal in what I accepted and working around bugs in major clients.

(as an aside, I’d be fascinated to see which of your feeds vobject fails to parse).

The validation scaffolding is still in there, though, and it wouldn’t be particularly hard to improve.

It’d be great to collect a snapshot of failing icalendar files and catalog them just so implementers in all languages could see which ones they fail on, how! I think the folks at CalConnect came up with test files like this at some point, but I don’t think they were made public.

I keep meaning to make a GAE icalendar validator using vobject, maybe one of these weekends.

P.S. If you aren’t already planning on it, you might try to attend the CalConnect at Microsoft’s Redmond campus, http://www.calconnect.org/calconnect14.shtml

Reply | Original | Permalink | | Tweet

I have read this post. This is very much true. Even I own a blog account on video conferencing. Video conferencing is indeed a great innovation in technology and communications. One day video conferencing will be like an ordinary house-hold item in the next 5-10 years.I will mention your post in my blog.

Reply | Original | Permalink | | Tweet

This is great information, I am excited.

http://yiyd.com

Reply | Original | Permalink | | Tweet

hmmm. yeah, way too much time spent trying to get my stuff in the right places online. syndication is a beast. I’m using ADS (Artist Data Systems) artistdata.com right now.

Reply | Original | Permalink | | Tweet
Name
Jon Udell
Website
blog.jonudell.net

Top Contributors

Feeds