2005/06/27
-
Notelets
-
Clay Shirky on the semantic web
-
Use URNs?
-
Peter Brantley's new blog
-
Today's pictures
-
Yesterday's pictures
-
Friday's and Saturday's pictures
-
Open Threads
Notelets
The
Flickr mosaic maker is cool but I'll probably end up writing my own script to make custom-made mosaics.
Jon Udell: How do you design a remixable Web application?:
It's remarkable that these effects are achievable with no explicit support from the origin sites. But what if those sites did want to offer explicit support? What would that look like?
I think we've known the answer for a long time. A website that wants to be remixable will deliver content as XML and behavior as script. These aspects can be, and will be, combined server-side for Web 1.0 clients, but Web 2.0 clients will increasingly be able to do this processing for themselves. So there will be two ways to remix: by intercepting the server-side combination of XML content and scripted behavior, or by recombining on the client.
What's unclear, at least to me, is whether -- or to what degree -- the content and code will be augmented by external descriptions that can be used by automated tools, and can insulate derivative works from change. Could a lightweight schema for the content, and a lightweight service description for the code, make these remixes more resilient without imposing too much overhead? It's a great experiment for someone to try.
Clay Shirky on the semantic web
a quote from Clay Shirky:
The Semantic Web is peopled by engineers who are offended by ambiguity, and who believe, wrongly, that ambiguous systems are broken systems. The one thing they can't bring themselves to accept is that there might be ambiguity in the world, and that systems that tolerate ambiguity, at the expense of certainty or machine consumability, might actually have better survival characteristics.
Use URNs?
Should I start embedding URNs in my HTML?
In response to
What is a definitive URI for books?, BruceDarcus pointed me to using URNs as identifiers. e.g., urn:isbn:0520237048, noting that
both ISBNs and ISSNs are registered URNs. I didn't give URNs a serious look because I had actually never seen any "real support" for them. That is, I can write urn:isbn:0520237048, but what would that do?
Still, Bruce's email prompted me to take a closer look, which led to Ben Meadowcroft's
URNs, citations in web authoring:
This article covers the techniques authors on the web can use to reference articles and publications in a robust manner. It was written to highlight some of the inadequeces of relying on non persistant URI references for academic and technical papers. It was partially born out of my considerations on holistic hypertext and how this could be integrated into both CMS and KMS.
which I found via
URN, some URI scheme - Anne’s Weblog about Markup & Style.
I learned two interesting things:
I installed the extension and clicking on a urn:isbn led to the corresponding amazon.com page.
Here I provide my example:
Introduction to California Plant Life: Nearly one-fourth of the plants found in North America north of Mexico, and more than are found in any other state, grow in California.
Clicking on the name of the book does not lead anywhere in most browsers because there is no native support for URNs, but any bot/search engine reading my wiki can now pick up on the ISBN, stated in a RDF-friendly way.
One might find the default linking of the browser extension to amazon.com rather ironic. There's a lot of jumping through hoops to write URNs, which then gets directed by the browser extension to where people are already linking to in the first place. But note that the decoupling of the identifier from the locator does make the important statement that ISBNs are not synonymous with amazon.com and allows for other explicit aasociations to be made. For instance, the extension could be rewritten to make links to the Library of Congress instead.
I'm still mulling how to make practical use of URNs....
Peter Brantley's new blog
I only very recently discovered that Peter Brantley, Director of Technology at the California Digital Library, has started a public blog,
shimenawa. Even though I already have semi-regular conversations with Peter, I'm happy to read his latest thoughts about libraries and whatever else he will choose to write about.
I'm envious that
Peter will be able to attend Where 2.0 and look forward to seeing how he reacts to the conference. I have been experimenting a lot recently with geospatial services, specifically combining Flickr and GoogleMaps. I've been working on a write-up of my experimentation (e.g., GoogleMapsHacking); you can see
some of the pictures that I have georeferenced centered around 2195 Hearst, the location of my office.
Peter is really grooving on the technology. Today is
his first podcast!
Today's pictures
Yesterday's pictures
Friday's and Saturday's pictures
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | |   |   |   |   |   |   |   |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | |   |   |   |   |   |
Open Threads
I usually like to work in parallel on a number of entries. Here I list them so they can be easily noted and accessed:
2005/06/28
-
Notelets
-
Neil Beagrie on personal digital collections
-
Today's pictures
-
Yesterday's pictures
-
Open Threads
Notelets
Neil Beagrie on personal digital collections
I found Neil Beagrie's
Plenty of Room at the Bottom? Personal Digital Libraries and Collections to be a great jumping off point for thinking about the topic of personal collections at universities, although it just points out how much research still needs to be done.
Here I list some quotes from the article that spoke to me, all of which match my own personal experience:
-
"Already, personal digital stores of a terabyte or more are almost within reach. Projecting current trends, in a few more years it will be possible, for example, to envisage individuals being able to store the equivalent of all the texts in the Library of Congress on their PC." (I've not amassed that much personal storage primarily because I've not had the need to do so -- but I can see 1 TB being within my personal reach.)
-
"a perceptible consumer shift from consumption to personal creation, customization, and co-production of digital content." Yes, indeed. I've been weblogging for five years and currently have 8200 pictures in Flickr
-
"growth in weblogging, personal online journals, personal journalism operating on a mass scale, and interpersonal links such as picture, video and music sharing. It is forecast that there will be increased consumption of 'amateur' content and that amateurs will have better links to professional producers/publishers to send electronically content they have made themselves"
-
"people are able to create, capture and store an ever-increasing amount of digital information about or for themselves, including emails, documents, portfolios of work, digital images, and audio and video recordings, and can edit, share, and distribute them easily over the net via blogs, personal webpages, peer to peer networks, or shared services."
-
"These personal collections are often composites drawing material from the individual's private life, work, and education, as well as from external communities and content sources." (right on, my Flickr collection has family pictures, pictures of books to read, pictures I use for professional purposes.)
-
it might be cheaper to search big collections than to organize now -- an observation attributed to Michael Lesk.
-
Don't wait until the end to curate; there are big challenages of how to curate such collections -- I'm running into that problem myself, imagining using DSpace to manage my images while my collections are still being developed. A big challenge is being clear on what are working collections vs what are archives.
-
"Continuous digital capture or synchronization is an approach therefore that may have significant advantages in a digital environment, and it would be interesting to see further experimentation and evaluation of this for collection development."
There's a really meaty paragraph on narrative creation that I'm still mulling over:
Selection and retrieval may be less significant for many purposes and for some content than it is for narrative creation: the ability to edit, organize, and interpret massive collections for the user. Some of the tools and skills required for narrative creation may be drawn from those of television or video production or database visualisation. Continuous capture in a personal video camera, like live footage of reality TV shows, will be incredibly tedious to watch. It is the editing, organization and interpretation of such material that makes the material accessible. If future personal digital collections have real breadth and depth, then tools supporting the overlay of specific views into that material and narrative creation will have critical importance.
I would agree from my own personal life that "current interests in family history may drive interest in transmission of memories held in personal digital collections."
I've wondered about "digital estates" -- I'm already wondering about how to pass on my digital collections to my heirs.
There are a lot of challenges ahead, which are actually ones I'm actively struggling with right now:
The growing abundance of personal data and collection outlined in this article will present numerous challenges to individuals, including: how to physically secure such material sometimes over decades; how to protect privacy; how to organize and extract information and to use it effectively; and for material intended to be shared, how to effectively present and control access by different groups of users.
Great article.
Today's pictures
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
|   |   |   |   |   |   |   |   |   |
Yesterday's pictures
Open Threads
I usually like to work in parallel on a number of entries. Here I list them so they can be easily noted and accessed:
2005/06/29
-
High power speakers coming to a class
-
Yahoo's MyWeb 2.0
-
Implications of tagging systems for scholarly communication
-
Google Maps API
-
Today's pictures
-
Yesterday's pictures
-
Open Threads
High power speakers coming to a class
SIMS 141: Search Engines: Technology, Society, and Business has an incredible line up of speakers!
Yahoo's MyWeb 2.0
Yahoo's MyWeb 2.0 is, at first blush, Yahoo's entry into the SocialBookmarking realm. The immediate question on the minds of several (including mine) is how it compares to del.icio.us.
Yahoo! My Web 2.0 Quick Review offers a comparison.
I'm glad to see at least some basic support for the new service in the Yahoo APIs:
My Web Documentation for Yahoo! Search Web Services.
Being at Berkeley, I'm intrigued that
Stanford's TAP project is running
Tags on TAP:
Tags on TAP combines the knowledge from several web sites and news feeds with the Yahoo! My Web 2.0 tagging system to provide synonym suggestions for traditional keyword tags. Both synonyms, such as suggesting 'porcelain' for 'china', as well as hypernyms, such as 'animal' for 'dog', are suggested. The system also tries to find related suggestions such as 'china' for 'beijing'.
A analysis of Yahoo's My Web 2.0 from Many-to-Many:
Many-to-Many: Yahoo Social Search, Act II:
I got a sneak peak at this. You can save, annotate and tag any webpage -- and then share it with two degrees of separation in your Yahoo 360 network, or, everyone. Social discovery happens around time, people, locations and topics.
The timing of this release may have to do with Google Personalized Search. I slammed Yahoo for not moving from Personalization to Socialization once, and don't need to repeat myself.
Other links:
Implications of tagging systems for scholarly communication
Peter Brantley wrote in reference to Yahoo My Web 2.0 and perhaps SocialBookmarking in general (
shimenawa: Community Search and Scholarly Communication.):
If the Academy thinks that tagging and social search is useful, how will it overcome the laziness problem? How will it softly encourage or suggest appropriate or useful tags? Embedding this type of positive reinforcement into a tagging community has not been well addressed.
No one knows the the long-term usefulness of tagging, let alone in the academy. My sense is that there's a whole lot of experimentation going on, a shared feeling that something important is afoot, and the fear among big players that if they don't jump on it with something service now, they may miss out on the next-big-thing. I look forward to seeing what actually happens with the experiments, to seeing whether the academy will value tagging. While I wait for research findings to sort out the longitudinal evidence, I'd want to be part of the grand experiments. I'll add my own personal observations based on my limited experiences with SocialBookmarking:
-
I have tagging to be immensely helpful in Flickr, though a huge number of my pictures remain untagged (6178 out of 8264 as of writing). It would easy to think, hey, 3/4 of his pictures are not tagged...but I am just pleased that 2000 of my pictures are tagged -- 2000 more than without a tagging system to begin with.
-
I'd be interested in using the various SocialBooking systems if using them could be easily integrated into my workflow. Sometimes, I am willing to make the effort to push a URL into del.icio.us, extracting a key quote, and carefully tagging the entry. Most of the time, I just want to save the URL just so that I might be able to find it later. For many URLs, I'd love to have a software agent that would send all the URLs it would harvest from all of my documents (my email, my blogs, my wikis, my entries on mailing lists, my Word documents, my browser history) that I either read or write during a given day. And because I don't want to limit myself to a given system (since I want to use delicious, unalog, CiteULike, connotea, Yahoo's MyWeb 2.0), I would like the software agent to synchronize my URLs among all the systems I use. Finally, I'd like to have some software that would let me more eaily navigate the emerging social networks that cluster around the tags and references. (I wouldn't be surprised to find systems that start to get at this level of functionality and would be grateful to readers would could point them out.)
-
Now again, I'm not sure how useful all this tagging is in the long term -- but I'm thrilled enough with what tagging can do that I would like to associate tags with any element in my information space, down to the most finegrain element (e.g., a specific letter in a Word document). Tags allow a break from strict hierarchical organizational schemes. For example, I think that the tagging mechanism in gmail is cool but would like that to be in my current email client of choice Thunderbird. (The last I looked, there was no tagging; perhaps an extension can be written to introduce tags into Thunderbird -- if it hasn't already been done.)
-
As I create more tags in different places, they become an increasingly important entity in their own right. In the early days of my playing with Flickr, I thought that if Flickr were to disappear, I'd still be happy because I have all the original photos. As time goes by, I realize that having the pictures in Flickr has generated a lot of surrounding metadata: tags, comments, backlinks. All of that metadata would be lost to me if Flickr went out of business today because I've not backed up that metadata. It is funny to think that the surrounding tags might be of equal value to the original images in some cases.
Google Maps API
-
Google map api test
-
interesting applications
Google map api test
Google has actually released APIs for its mapping services. A lot of us had been previosuly been engaged in hacking Google maps. Most recently, I had been especially taken with the geobloggers.com, a website that displays "geotagged" Flickr images on Google maps. See, for instance, my geotagged flickr pictures.
Today, Google created an official channel for the remix of its maps by announcing
APIs for google maps with an associated
discussion group. To make use of it, you need to register for a key that is tied to your google account and to a specific URL. Here is a sample map:
interesting applications
Colorado Homes is a good example of cutting edge maps.
Today's pictures
Yesterday's pictures
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
|   |   |   |   |   |   |   |   |   |
Open Threads
I usually like to work in parallel on a number of entries. Here I list them so they can be easily noted and accessed:
2005/06/30
2005/07/01
-
iu.berkeley.edu has gone bye-bye today
-
Today's pictures
-
Yesterday's pictures
-
Open Threads
iu.berkeley.edu has gone bye-bye today
For reasons that are still unclear, the domain names iu.berkeley.edu and interactiveu.berkeley.edu were removed from Berkeley's domain name registry. So if you just dying to read my work blog , go to http://169.229.248.169:8000/rdhyee for now. The problem should be fixed within 24 hours and hopefully sooner!
Later: now, it's starting to work....more later.
Today's pictures
Yesterday's pictures
Open Threads
I usually like to work in parallel on a number of entries. Here I list them so they can be easily noted and accessed:
2005/07/02
2005/07/03
--> -->
EOFErrorEOF read where object expected | Please include this information in your bug reports!: Python Python 2.4.3: /usr/bin/python2.4 Linux neon.sabren.com 2.6.18-194.32.1.el5 #1 SMP Wed Jan 5 17:52:25 EST 2011 x86_64 MoinMoin Release 1.2.2 [Revision 1.185] Wed Jun 19 18:03:48 2013 |
A problem occurred in a Python script. Here is the sequence of
function calls leading up to the error, in the order they occurred.
| /home/yee/code/MoinMoin/request.py in run(self=<MoinMoin.request.RequestCGI instance>) |
403
|
404 if config.allow_extended_names:
|
405 Page(query).send_page(self, count_hit=1)
|
406 else:
|
407 from MoinMoin.parser.wiki import Parser
|
| Page = <class MoinMoin.Page.Page>, query = 'WeeklyNotes/2005/06/27', ).send_page undefined, self = <MoinMoin.request.RequestCGI instance>, count_hit undefined |
| /home/yee/code/MoinMoin/Page.py in send_page(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI instance>, msg='', **keywords={'count_hit': 1}) |
609 else:
|
610 # parse the text and send the page content
|
611 self.send_page_content(request, Parser, body)
|
612
|
613 # check for pending footnotes
|
| self = <MoinMoin.Page.Page instance>, self.send_page_content = <bound method Page.send_page_content of <MoinMoin.Page.Page instance>>, request = <MoinMoin.request.RequestCGI instance>, Parser = <class MoinMoin.parser.wiki.Parser>, body = "'''2005/06/27'''\n[[Include(DailyNotes/2005/06/27...2005/07/03'''\n[[Include(DailyNotes/2005/07/03)]]\n" |
| /home/yee/code/MoinMoin/Page.py in send_page_content(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI instance>, Parser=<class MoinMoin.parser.wiki.Parser>, body="'''2005/06/27'''\n[[Include(DailyNotes/2005/06/27...2005/07/03'''\n[[Include(DailyNotes/2005/07/03)]]\n", needsupdate=0) |
708
|
709 try:
|
710 exec code
|
711 except 'CacheNeedsUpdate': # if something goes wrong, try without caching
|
712 self.send_page_content(request, Parser, body, needsupdate=1)
|
| code = <code object ? at 0xc47ab0, file "WeeklyNotes/2005/06/27", line 2> |
| /home/yee/code/MoinMoin/formatter/base.py in macro(self=<MoinMoin.formatter.text_html.Formatter instance>, macro_obj=<MoinMoin.wikimacro.Macro instance>, name='Include', args='DailyNotes/2005/07/03') |
160 def macro(self, macro_obj, name, args):
|
161 # call the macro
|
162 return macro_obj.execute(name, args)
|
163
|
164 def processor(self, processor_name, lines):
|
| macro_obj = <MoinMoin.wikimacro.Macro instance>, macro_obj.execute = <bound method Macro.execute of <MoinMoin.wikimacro.Macro instance>>, name = 'Include', args = 'DailyNotes/2005/07/03' |
| /home/yee/code/MoinMoin/wikimacro.py in execute(self=<MoinMoin.wikimacro.Macro instance>, macro_name='Include', args='DailyNotes/2005/07/03') |
99 macro = wikiutil.importPlugin('macro', macro_name)
|
100 if macro:
|
101 return macro(self, args)
|
102
|
103 builtins = vars(self.__class__)
|
| macro = <function execute>, self = <MoinMoin.wikimacro.Macro instance>, args = 'DailyNotes/2005/07/03' |
| /home/yee/code/MoinMoin/macro/Include.py in execute(macro=<MoinMoin.wikimacro.Macro instance>, text='DailyNotes/2005/07/03', args_re=<_sre.SRE_Pattern object>) |
190 macro.request.redirect(strfile)
|
191 try:
|
192 inc_page.send_page(macro.request, content_only=1, content_id="Include_%s" % wikiutil.quoteWikiname(inc_page.page_name) )
|
193 result.append(strfile.getvalue())
|
194 finally:
|
| inc_page = <MoinMoin.Page.Page instance>, inc_page.send_page = <bound method Page.send_page of <MoinMoin.Page.Page instance>>, macro = <MoinMoin.wikimacro.Macro instance>, macro.request = <MoinMoin.request.RequestCGI instance>, content_only undefined, content_id undefined, global wikiutil = <module 'MoinMoin.wikiutil' from '/home/yee/code/MoinMoin/wikiutil.py'>, wikiutil.quoteWikiname = <function quoteFilename>, inc_page.page_name = 'DailyNotes/2005/07/03' |
| /home/yee/code/MoinMoin/Page.py in send_page(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI instance>, msg='', **keywords={'content_id': 'Include_DailyNotes_2f2005_2f07_2f03', 'content_only': 1}) |
609 else:
|
610 # parse the text and send the page content
|
611 self.send_page_content(request, Parser, body)
|
612
|
613 # check for pending footnotes
|
| self = <MoinMoin.Page.Page instance>, self.send_page_content = <bound method Page.send_page_content of <MoinMoin.Page.Page instance>>, request = <MoinMoin.request.RequestCGI instance>, Parser = <class MoinMoin.parser.wiki.Parser>, body = '[[TableOfContents]]\n\t\n= Sunday afternoon reflect...ds =\n\n[[Include(OpenThreadsOfCurrentInterest)]]\n\n' |
| /home/yee/code/MoinMoin/Page.py in send_page_content(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI instance>, Parser=<class MoinMoin.parser.wiki.Parser>, body='[[TableOfContents]]\n\t\n= Sunday afternoon reflect...ds =\n\n[[Include(OpenThreadsOfCurrentInterest)]]\n\n', needsupdate=0) |
680 try:
|
681 import marshal
|
682 code = marshal.loads(cache.content())
|
683 except ValueError: #bad marshal data
|
684 needsupdate = 1
|
| code = None, marshal = <module 'marshal' (built-in)>, marshal.loads = <built-in function loads>, cache = <MoinMoin.caching.CacheEntry instance>, cache.content = <bound method CacheEntry.content of <MoinMoin.caching.CacheEntry instance>> |
EOFError: EOF read where object expected
__doc__ =
'Read beyond end of file.'
__getitem__ =
<bound method EOFError.__getitem__ of <exceptions.EOFError instance>>
__init__ =
<bound method EOFError.__init__ of <exceptions.EOFError instance>>
__module__ =
'exceptions'
__str__ =
<bound method EOFError.__str__ of <exceptions.EOFError instance>>
args =
('EOF read where object expected',)