This hypertext is written in and with a [[TiddlyWiki|http://www.tiddlywiki.com/]] hosted at [[TiddlySpot|http://www.tiddlyspot.com]]. ~TiddlyWiki is a slightly unusual implementation of a [[wiki|Wikis]], in that it encapsulates its entire contents in a single file, and uses the dynamic scripting features of the current generation of web browsers, to achieve the effect normally associated with navigating between many distinct web pages. ~TiddlyWiki also supports some features of [[blogs|Blogs]]: pages with a date as their title can be managed like blog entries.\n
config.options.chkHttpReadOnly = false;\n
<!--{{{-->\n<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>\n<div class='title' macro='view title'></div>\n<div class='editor' macro='edit title'></div>\n<div class='editor' macro='edit text'></div>\n<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>\n<!--}}}-->
<<tiddler MainMenu>>\n\nAuthorMainMenu\nMainMenu\nDefaultTiddlers\nPluginManager\nPresentationIndex\n
<!--{{{-->\n<div id='header' class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>\n<div class='headerShadow'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n<div class='headerForeground'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n<div id='mainMenu' refresh='content' tiddler='AuthorMainMenu'></div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>\n<!--}}}-->
/***\nPlace your custom CSS here\n***/\n/*{{{*/\n\n\n[[StyleSheetCommon]]\n/*}}}*/\n
<!--{{{-->\n<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler permalink references jump'></div>\n<div class='title' macro='view title'></div>\n<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date [[DD MMM YYYY]]'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date [[DD MMM YYYY]]'></span>)</div>\n<div class='tagging' macro='tagging'></div>\n<div class='tagged' macro='tags'></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class='viewer topbutton' macro='top'></div>\n<br><br>\n<div class='viewer' macro='navigation tiddlers:{{store.getTiddlerText("PresentationIndex").readBracketedList()}}}'></div>\n<div class='tagClear'></div>\n<!--}}}-->
The original weblogs were link-driven sites, logs of their authors' meanderings on the web – a less constrained approach to mapping the web than the formal classified directories like Yahoo, that were already struggling to keep up with the exponential growth of the web (Google wasn't launched until September 1998). “Each was a mixture in unique proportions of links, commentary, and personal thoughts and essays.” ([[Blood, 2000|References]]) \n\nEarly weblogs were simply manually updated web pages within standard websites. However, the evolution of tools to facilitate the production and maintenance of web articles posted in chronological fashion made the publishing process much simpler. Using a simple web form, a user need only enter a heading and a body of text: the application additionally, automatically associates a timestamp with the entry. The development of this relatively simple, often free, blogging software, introduced a new kind of platform for any information application with some kind of cumulative, day-by-day entry requirement: newspaper articles, columns, news stories, personal diary entries, could all be called into being by a much larger, less technical, population than before. To the chagrin of some of the original bloggers, the creation of electronic journals was made possible for all sorts of people who did not already know how to make a website. \n\nIt was only natural that this should be attractive in education, since learning journals are considered valuable both for reflection and assessment, particularly as part of coursework and portfolios. Such a journal, whether private to a student and a teacher, or published to the world, is at least a useful electronic surrogate for the traditional "hard copy" (of the kind submitted in exercise books or on A4 sheets for assessment), and may form a valuable component of a learner's portfolio.\n\nEven so, teachers need to clarify and communicate the manner in which they expect the blog to be used (is it note-taking? is it a formal composition?) and remember that blogging is //sui generis// – not online diary, nor e-portfolio, nor online newspaper, nor e-exercise book, even though it could be used in any of those ways. It is far more than a tool for regular or irregular writing tasks, that saves a teacher the trouble of collecting up exercise books.
Story.prototype.refreshTiddler_activelink = Story.prototype.refreshTiddler;\nStory.prototype.refreshTiddler = function (title,template,force)\n{\n var theTiddler = Story.prototype.refreshTiddler_activelink.apply(this,arguments);\n if (!theTiddler)\n return theTiddler\n var menu = document.getElementById("mainMenu");\n var links = menu.getElementsByTagName("a");\n for (var i=0; i<links.length; i++)\n {\n if (!links[i].getAttribute("tiddlyLink"))\n return;\n if (document.getElementById(this.idPrefix+(links[i].getAttribute("tiddlylink"))))\n addClass(links[i],"bold");\n else\n removeClass(links[i],"bold");\n }\n return theTiddler;\n}
We have seen that the fully-fledged, Web 2.0 incarnations of blog and wiki offer their greatest potential when they are used as a platform for collaboration, and this clearly makes them attractive in learning environments. As Garrison ([[2006|References]]) observes: \n>There is evidence to suggest that online learning may in fact have an advantage in supporting collaboration and creating a sense of community. An online learning environment reflects a “group-centered” interaction pattern versus an “authority-centered pattern” of a face-to-face environment. Moreover, there is a tendency to build on the comments of others in the online environment (higher flow of communication), compared to the “turn-taking” face-to-face environment. \nNot that the mere presence or availability of the software will make it happen. Garrison also notes the need to ensure "teaching presence" to help shape the collaborative community into "critical and reflective discourse". Also important is to establish an appropriate context for the use of these tools. Like ~PowerPoint before them, one might merely use Wikis, Blogs as an electronic blackboard, but that would be to miss out on so much more.\n\nWith regard to deep-learning, it's clear that blogs and wikis, as models for organising and retrieving information, have a lot to offer, not least as elements contributing to learners' portfolios. "Portfolios should support an environment of reflection and collaboration" ([[Barrett, 2004|References]]). Web 2.0 is a set of tools and paradigms which, in different combinations, are the building blocks not just of human-computer interaction, but of rich, one-to-many person-to-person interactivity. From a constructionist perspective, the difference between the functional, but rigid, "Web 1.0" environment, and the fluidity of Web 2.0 interactions, parallels Papert's own distinctions between the relative merits of BASIC and his own LOGO language. LOGO provides a "dynamic problem solving environment that engenders creative problem solving" ([[Papert, 2006|References]]) and, in many ways, so do the connectivities of Web 2.0. \n\nWeb 2.0 unquestionably offers a powerful digital environment that supports many elements key to e-learning, in a loosely coupled, platform-independent manner. Chief among these is social networking and collaboration: \n>Direct social navigation is a form of discourse community, a group of individuals with common interests who agree to share ideas and resources. A great deal of intellectual work goes into social navigation Web pages. These pages are not only a powerful form of communication but also a clear measure of understanding—that is, they can be assessed and evaluated as a measure of learning.([[Colaric and Jonassen, 2002|References]]).\nWe can provide blogs as a generic tool (the overhead of providing a dedicated blog server at Warwick is probably not prohibitive, and there are many free solutions) and similarly wikis, and for the many other Web 2.0 applications built on the same tools and principles (photo-blogging, video-blogging, podcasts, discussions).\n\nWeb 2.0 is significant in that it establishes a very social framework for expectations of the //next// generation of web-based communication tools and techniques, as it will inevitably underpin whatever succeeds it in turn. As network speeds increase, we can already see, for example, how non-textual web content is being created and managed within the framework established for blogging: first photo-blogging with Flickr, and now podcasting, still predominantly audio, but with audio-visual applications already becoming widely used (~YouTube). It is part of a never-ending evolution. \n\nWeb 2.0 is only the latest "bloody thing", and it won't be the last. But if we are to avoid the scenario described by Sharon Kopyc ([[2006|References]]) - where tech-savvy students are confounded and repelled by the outmoded methods of their teachers institutions - educators need to be involved with it. Luckily, Web 2.0 makes that easy.
config.options.chkAnimate = false;\nconfig.options.chkSinglePageMode = true;\nconfig.options.chkTopOfPageMode = false;
[[Start Here]]
\nSee it in action here: http://lewcid.googlepages.com/tots.html\n\n!!Editing this TW:\nOpen the TW with #author:true at the end of the url/file location to enable editing.\nPreview edits by using the "Presentation Mode" button in the MainMenu\n//(To make future editing easier, bookmark the file with #author:true at the end of the file name. One click and edit!)//\n\n!!Changing the content and order of the presentation:\nEdit the PresentationIndex tiddler to change the contents and order of the presentation.\n\n!! Customizing the default (viewing) interface.\nEdit the following tiddlers as needed:\n*PageTemplate\n*StyleSheet\n*ViewTemplate\n*EditTemplate\n*MainMenu\n\n!!Customizing the editing (author's) interface.\nEdit the following tiddlers as needed: //(Note that these files are optional, if any of them dont exist, the standard viewing one will be used instead. So if you only want to change the PageTemplate, you only need an AuthorPageTemplate tiddler.)//\n*AuthorPageTemplate\n*AuthorStyleSheet\n*AuthorViewTemplate\n*AuthorEditTemplate\n*AuthorMainMenu\n\n!!Using a different stylesheet or theme:\nUsing your own favorite stylesheet or theme is as simple as importing those tiddlers into this file.\nIf you are changing the presentation interface, just import the PageTemplate and StyleSheet. If you want to change the editing interface, you will need to copy over the PageTemplate and StyleSheet as AuthorPageTemplate and AuthorStyleSheet respectively.\n\n!!Other tips:\n* Use the tiddler StyleSheetCommon and include it using {{{[[StyleSheetCommon]]}}} in your StyleSheet and AuthorStyleSheet when making stlyesheet changes that you want applied to both the presentation and editing interface, to avoid having to type it out twice!\n*To provide easy control over the font-size, use the FontSizePlugin: http://lewcid.googlepages.com/lewcid.html#FontSizePlugin\n* If this presentation is going to be placed online, you might want to have a splash screen that displays while the TW is loading: http://lewcid.googlepages.com/lewcid.html#SplashScreenPlugin
!Dummy Tiddler 3\n\ndummy tiddler three
!Dummy Tiddler1\n\nThis is the first tiddler of your dummy presentation\n\nEdit the PresentationIndex tiddler to change the contents and order of the presentation.\n
!DummyTiddler2\n\nThis is the second tiddler of your dummy presentation
The kind of difference that Web 2.0 features make to online collaborative, educational projects can be briefly illustrated by looking at the recent [[Flat Classroom Project|http://flatclassroomproject.wikispaces.com/]] ([[2006|References]]). This is a collaborative, assessed&nbsp; project between a grade 11 IT class at International School Dhaka in Bangladesh, and a 10th grade Computer Science class at Westwood Schools in Camilla, Georgia, USA. The goal of the project was for students at each school to collaborate in developing a set of articles and essays about globalisation, based on themes in Thomas Friedman's book, //The World Is Flat//. Students are assigned a thematic area, and develop the content in pairs – one from each school – and use a Wiki to do so. Owing to the difference in time zones, this collaboration, of necessity, takes place asynchronously.\n\n<html><iframe style="width: 100%; height: 320px;" src="http://flatclassroomproject.wikispaces.com/" title="The Flat Classroom Project wiki"/></html>\n\nAmong the many Web 2.0 tools that the teachers who set up this project have been able to put to good use are:\n* Tagged photo blogging. The teachers have uploaded photos to Flickr, and tagged them with the keyword "[[flatclassroom06|http://www.flickr.com/photos/tags/flatclassroom06]]". This enables all photos so tagged, no matter who has uploaded them, to be accessed using the URL. \n* Blogging by the teachers, including general observations about the course, and specific, date-stamped instructions for the students (e.g. [[Literacy Ideals|http://elgg.net/itgs/weblog/141807.html]] on Julie Lindsay's blog.\n* Blogging by pupils, also on ELGG. Teachers further encourage blogging by nominating a "[[Blogger Of The Week|http://elgg.net/itgs/weblog/140671.html]]" (and even a "Blogger Blacklist" in the case of under-use of the blog).\n* Audio podcasting. Julie Davis has recorded audio messages for the classes. \n* Wiki logs of who did what when, both at site level (http://flatclassroomproject.wikispaces.com/space/changes) and on individual pages (e.g. http://flatclassroomproject.wikispaces.com/page/history/Web+2.0+Tools+for+Sharing+Information)\nThe result is interesting and exciting: students have had a valuable and encouraging opportunity for international outreach, and have worked constructively, creatively and collaboratively to creating dynamic web essays, comprising text, images, videos and links. It's a sign, if one were needed, of quite how far global communications have come, since the first Intelsat broadcast The Beatles live to the world, forty years ago.
function setFooter() {\n if (document.getElementById && document.getElementById("contentFooter") ) {\n var windowHeight=findWindowHeight();\n if (windowHeight>0) {\n var contentHeight= document.getElementById('mainMenu').offsetHeight + document.getElementById("header").offsetHeight + document.getElementById("contentFooter").offsetHeight;\n var menu= document.getElementById('mainMenu');\n //var footerHeight=footerElement.offsetHeight;\n if (windowHeight-(contentHeight)>=0) {\n menu.style.position='relative';\n menu.style.marginBottom=(windowHeight-(contentHeight))+'px';\n }\n else {\n menu.style.position='';\n menu.style.marginBottom='';\n }\n }\n }\n}\nwindow.onresize = function() {\n setFooter();\n}\n\nStory.prototype.refreshTiddler_footerhack=Story.prototype.refreshTiddler;\nStory.prototype.refreshTiddler = function (title,template,force)\n{ \nvar theTiddler = Story.prototype.refreshTiddler_footerhack.apply(this,arguments);\nsetFooter();\n return theTiddler;}
With the exception of the teaching of Computer Science per se, and the continuing evolution of computing and network technologies within institutional administrative infrastructures, there are perhaps four main areas in which Information and Communications Technology (ICT) in general, and the Web in particular, are particularly significant in education: \n\n<html><img src="ftp://ftp.worldofspectrum.org/pub/sinclair/games-inlays/s/Shakespeare-JuliusCaesar.jpg" title="Penguin Study Software - Julius Caesar" style="width: 240px; float: right; border: 1px solid #ccc; padding: 0; margin: 0 0 0 1ex;"/></html>''Supporting and enhancing established teaching practices, within and without the classroom.'' Rare is the new development in Information and/or Communications Technology that has not been seized on as having the potential to enhance traditional approaches to teaching core subjects. Radio and television have both been used extensively, from primary schools to the Open University – doubly so since the advent of cheap technology for timeshifting broadcasts (i.e. timer-based audio and video recorders). Home computing and computing in schools in the 1980s brought with it a wealth of supporting computer applications, not just for science subjects, but across the curriculum. (By 1984 there were even home computer programs available for Shakespeare studies, such as the Penguin Study Software series. "[[World Of Spectrum|http://www.worldofspectrum.org/educatio.html]] " maintains a fascinating list of 1980s educational software for the Sinclair Spectrum.) \n\n''As a communications platform and virtual environment, for the delivery of distance learning.'' Many ICT applications for the classroom can equally be valuable in a distributed way for distance learning. In addition, distance learners require a stable online environment in which they can not only manage the resources they require, but also experience, as far as possible, a sense of “personal presence” ([[Feenberg, 1989|References]]) – of themselves, of their teachers, and of their fellow students.\n\nSince the advent of relatively simple and cheap Web-based applications, the expectations of virtual, online environments have continually increased. Learners can be provided with the electronic surrogates of ever more educational resources, for example: online libraries (originally just library catalogues, but increasingly content too); facilities to interact with tutors and fellow sudents (asynchronous conversations, via email and discussion boards; synchronous chat by text-based messaging, audio or video); electronic creation, submission, and even marking of assessments, essays and other assignments. \n\nWhile some, notably Dreyfus ([[2001|References]]), seem reluctant to acknowledge the Internet as much more than a speedier way to deliver correspondence courses, many others are more enthusiastic: "There is evidence to suggest that online learning may in fact have an advantage in supporting collaboration and creating a sense of community." ([[Garrison, 2006|References]])\n\n''Supporting the development of deep learning skills.'' Deep learning is the acquisition of more profound and personalised knowledge than the superficial, factual content of the lessons as taught, through making connections between ideas, concepts, courses, modules: "to have students become self-directed and to have learned to learn" ([[Garrison, 2006|References]]). A major element of deep learning is reflection on individual study and on debate. As manifestations of Computer Mediated Communication (CMC), all Internet-based projects – whether by email, discussion groups, wikis, blogs, or any combination thereof – are very much "retrievable forms of discourse" ([[Feenberg, 1989|References]]) and therefore potentially useful tools to support deep learning.\n\nAnother aspect of computer-mediated deep learning is exemplified in the work of Seymour Papert. Papert is one of the best known exponents of the use of computers to stimulate learners' engagement with creative problem-solving and constructive play, notably through LOGO, his elegant computer language, with which children of all ages can program the movements of a “Turtle”. "Teaching the Turtle to act or to ‘think’ can lead one to reflect on one’s own actions and thinking. And, as children move on, they program the computer to make more complex decisions and find themselves engaged in reflecting on more complex aspects of their own thinking.” ([[Papert, 1980|References]])\n\n''Teaching key IT "life" skills.'' Perhaps the most obvious intersection of education and IT, particularly since the development of vocational IT qualifications such as CLAIT and ECDL. The pervasiveness of Information Technology, and the convergence of many established communications technologies (writing, speech, visual – both broadcast and interactive), around common and interlinked digital frameworks, compels sometimes reluctant educators to keep abreast of rapidly-changing new developments, in order to teach learners how to use and apply the latest generation of life-enhancing tools – as well as to impart the underlying generic principles that assist learners in engaging with ongoing technological developments.
//{{{\nconfig.macros.def ={};\nconfig.macros.def.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n var sliceName = params[1]? params[1].toLowerCase() : params[0].toLowerCase();\n var def = store.getTiddlerSlice("InfoDefinitions",sliceName);\n if (def == undefined)\n {\n wikify(params[0],place);\n return false;\n }\n var theClass = params[2]? params[2] : "info";\n var container = createTiddlyElement(place,"span",null,theClass);\n wikify(params[0],container);\n if (document.all)\n {\n container.onmouseover = function(){addClass(this,"infoover");};\n container.onmouseout = function(){removeClass(this,"infoover");};\n }\n var tooltip = createTiddlyElement(container,"span",null,null);\n wikify(def, tooltip);\n\n}\n\nconfig.macros.note ={};\nconfig.macros.note.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n var sliceName = params[1]? params[1].toLowerCase() : params[0].toLowerCase();\n var def = store.getTiddlerSlice("InfoDefinitions",sliceName);\n if (def == undefined)\n {\n wikify(params[0],place);\n return false;\n }\n var theClass = params[2]? params[2] : "note";\n var container = createTiddlyElement(place,"span",null,theClass);\n wikify("^^"+params[0]+"^^",container);\n if (document.all)\n {\n container.onmouseover = function(){addClass(this,"noteover");};\n container.onmouseout = function(){removeClass(this,"noteover");};\n }\n var tooltip = createTiddlyElement(container,"span",null,null);\n wikify(def, tooltip);\n\n}\n\n//}}}\n
/***\n|''Name:''|LegacyStrikeThroughPlugin|\n|''Description:''|Support for legacy (pre 2.1) strike through formatting|\n|''Version:''|1.0.1|\n|''Date:''|Jul 21, 2006|\n|''Source:''|http://www.tiddlywiki.com/#LegacyStrikeThroughPlugin|\n|''Author:''|MartinBudden (mjbudden (at) gmail (dot) com)|\n|''License:''|[[BSD open source license]]|\n|''CoreVersion:''|2.1.0|\n|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|\n\n***/\n\n//{{{\n\n// Ensure that the LegacyStrikeThrough Plugin is only installed once.\nif(!version.extensions.LegacyStrikeThroughPlugin)\n {\n version.extensions.LegacyStrikeThroughPlugin = true;\n\nconfig.formatters.push(\n{\n name: "legacyStrikeByChar",\n match: "==",\n termRegExp: /(==)/mg,\n element: "strike",\n handler: config.formatterHelpers.createElementAndWikify\n});\n\n} // end of "install only once"\n//}}}\n
[[Start Here]]\n[[ICT in education]]\n[[The Web and Boccaccio]]\n[[Blogs]]\n[[Wikis]]\n[[Web 2.0]]\n[[Warwick Blogs]]\n[[Flat Classroom Project]]\n[[Concludingly]]\n\n[[Notes]]\n[[References]]\n\n[[About this text]]\n\n<<author>>\n
// Resolves a Tiddler reference or tiddler title into a tiddler title string, or null if it doesn't exist\nresolveTitle = function(t)\n{\n if (t instanceof Tiddler) t = t.title;\n return store.tiddlerExists(t) ? t : null;\n}\n\nconfig.macros.navigation = {};\nconfig.macros.navigation.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n\n if (!store.tiddlerExists(tiddler.title))\n return false;\n var e = createTiddlyElement(place,"span",null,"nav");\n e.setAttribute("refresh","macro");\n e.setAttribute("macroName",macroName);\n e.setAttribute("params",paramString);\n e.setAttribute("tiddler",tiddler.title)\n this.refresh(e,paramString);\n}\n\nconfig.macros.navigation.refresh = function(place,params)\n{\n var tiddler = store.getTiddler(place.getAttribute("tiddler"));\n removeChildren(place);\n\n\n var params = place.getAttribute("params").parseParams("tiddlers",null,true);\n//alert(store.getTiddlerText(getParam(params,"index",undefined)).parseParams("tiddlers",null,false))\n var tiddlers = getParam(params,"tiddlers",undefined);\nif (typeof tiddlers == 'string')\n tiddlers = tiddlers.readBracketedList();\n if (tiddlers == undefined)\n alert("no source tiddlers defined for navigation");\n var contents = [];\n for (var i=0;i<tiddlers.length;i++)\n {\n var title = resolveTitle(tiddlers[i]);\n contents.push(title);\n}\n var navIndex = contents.indexOf(tiddler.title);\n if (navIndex == -1)\n return false;\n \n if (contents[navIndex-1])\n {\n wikify("[[<< Previous|"+contents[navIndex-1]+"]]",place);\n place.lastChild.className += " navPrev";\n }\n if (contents[navIndex+1])\n {\n wikify("[[Next >>|"+contents[navIndex+1]+"]]",place);\n place.lastChild.className += " navNext";\n }\n\n var theTable = createTiddlyElement(place,"table",null,"nav");\n var theBody = createTiddlyElement(theTable,"tbody");\n var theRow = createTiddlyElement(theBody,"tr");\n for (var i=0; i<contents.length; i++)\n {\n var box = createTiddlyElement(theRow,"td",null,"navlinkcell"," ");\n box.onclick = onClickTiddlerLink;\n box.setAttribute("tiddlyLink",contents[i]);\n box.title = (contents[i]);\n if (contents[i] ==tiddler.title)\n box.className += " activenav";\n }\n}\n\nsetStylesheet(\n".navNext {float:right;}\sn"+\n".navPrev, .navPrevious{float:left;}\sn"+\n".nav .tiddlyLink {color:#000; background:transparent;border:none;padding:0;margin:0;}\sn"+\n".nav {padding:0;margin:0;}\sn"+\n".nav table {margin:0 auto !important; border:0px solid #000;padding:0;border-collapse:separate;}\sn"+\n".nav table tr{padding:0; margin:0;border-spacing: 1px;}\sn"+\n".nav table td {padding:4px; border:1px solid #000; border-spacing: 0px;cursor:pointer;cursor:hand}\sn"+\n".nav .activenav{background:#000 !important;}\sn","NavigationPluginStyles");
[[1.|The Web and Boccaccio]] I'm overlooking the fact that there doesn't seem to have been any recent activity on the Decameron Web site/project. However this kind of undeclared suspension is itself a common feature of early Web projects like this.\n\n[[2.|Web 2.0]] Ward Cunningham's original\n[[WikiWikiWeb|http://c2.com/cgi/wiki?FrontPage]] was a relatively simple Perl CGI script that used a small set of regular expressions to transform wiki markup into HTML.
<!--{{{-->\n<div id="header" class='header'>\n <div class='gradient' macro='gradient vert #EF9934 #C86719 '>\n <div class='titleLine' >\n <span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n <span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n </div>\n\n </div>\n\n</div>\n<div id='bodywrapper'>\n\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='displayArea'>\n <div id='messageArea'></div>\n <div id='tiddlerDisplay'></div>\n</div>\n<div id='contentFooter' refresh='content' tiddler='contentFooter'></div>\n</div>
[[Start Here]]\n[[ICT in education]]\n[[The Web and Boccaccio]]\n[[Blogs]]\n[[Wikis]]\n[[Web 2.0]]\n[[Warwick Blogs]]\n[[Flat Classroom Project]]\n[[Concludingly]]\n
//{{{\nTiddlyWiki.prototype.removeNotification = function(title,fn) {\n for (var i=0;i<this.namedNotifications.length;i++)\n if((this.namedNotifications[i].name == title) && (this.namedNotifications[i].notify == fn))\n this.namedNotifications.splice(i,1);\n}\n \n//checks to see if a tiddler exists in store or as a shadow.\nTiddlyWiki.prototype.isTiddler= function (title)\n {return store.tiddlerExists(title) || store.isShadowTiddler(title)}\n\n// Refresh all tiddlers in the Story\nStory.prototype.lewcidrefreshAllTiddlers = function()\n{\n var place = document.getElementById(this.container);\n var e = place.firstChild;\n if(!e) return;\n this.refreshTiddler(e.getAttribute("tiddler"),null,true);\n while((e = e.nextSibling) != null)\n this.refreshTiddler(e.getAttribute("tiddler"),null,true);\n}\n\nconfig.presentationPlugin ={\n};\n\nconfig.presentationPlugin.defaults = [\n {name: "StyleSheet", notify: refreshStyles},\n {name: "PageTemplate", notify: refreshPageTemplate}\n ];\n\nwindow.presentationMode='';\n\nfunction applyPresentationMode (oldMode,Mode)\n{\n presentationMode = Mode;\n var defaults = config.presentationPlugin.defaults;\n var oldStyleElement = document.getElementById(oldMode+"StyleSheet");\n if (oldStyleElement)\n {\n oldStyleElement.parentNode.removeChild(oldStyleElement);\n }\n for (var i=0; i<defaults.length; i++)\n {\n var def = defaults[i]["name"];\n var newMode = store.isTiddler(Mode + def)? Mode + def : def;\n store.removeNotification(oldMode + def, defaults[i]["notify"]);\n store.addNotification(newMode,defaults[i]["notify"]);\n store.notify(newMode); //just one do blanket notify instead?\n }\n story.lewcidrefreshAllTiddlers();\n}\n\nconfig.macros.author={};\nconfig.macros.author.handler= function (place,macroName,params,wikifier,paramString,tiddler) {\n var e = createTiddlyElement(place,"div");\n e.setAttribute("refresh","macro");\n e.setAttribute("macroName","author");\n e.setAttribute("params",paramString);\n this.refresh(e,paramString);\n}\n\nconfig.macros.author.refresh = function(place,params){\n if (window.lewcideditmode== false)\n return false;\n removeChildren(place);\n var oldMode = window.presentationMode;\n var newMode = (oldMode == "Author")?"":"Author";\n var label = (oldMode == "Author")? "Presentation Mode":"Author Mode";\n var tooltip = label;\n createTiddlyButton(place,label,tooltip,function() {\n applyPresentationMode(oldMode,newMode);\n });\n};\n\nStory.prototype.chooseTemplateForTiddler_old_presentation = Story.prototype.chooseTemplateForTiddler;\n\nStory.prototype.chooseTemplateForTiddler = function(title,template)\n{\n if (!template)\n template = DEFAULT_VIEW_TEMPLATE;\n var mode = presentationMode;\n if (template == DEFAULT_VIEW_TEMPLATE)\n {\n if (store.isTiddler(mode+"ViewTemplate"))\n return mode+"ViewTemplate";\n }\n else if (template == DEFAULT_EDIT_TEMPLATE)\n {\n if (store.isTiddler(mode+"EditTemplate"))\n return mode+"EditTemplate";\n }\n return this.chooseTemplateForTiddler_old_presentation(title,template);\n}\n\nwindow.lewcideditmode = false;\nconfig.paramifiers.author = {\n onstart: function(v) {\n if (v!="true")\n return false;\n applyPresentationMode("","Author");\n window.lewcideditmode = true;\n refreshDisplay();\n }\n};\n//}}}
//''N.b.'': For ease of use on the Web, and since, with only one exception, all of my references are to digital resources online, I have included a URL and retrieval date for all resources accessed online.//\n* Barrett, H. (2004). Digital Stories of Deep Learning. Retrieved: December 27th, 2006. http://electronicportfolios.org/digistory/epstory.html\n* Blood, R. (2000). Weblogs: A History And Perspective. Retrieved: December 6th,. 2006. http://www.rebeccablood.net/essays/weblog_history.html\n* Brown University (2000?). The Decameron Web. Retrieved: December 28th, 2006. http://www.brown.edu/Departments/Italian_Studies/dweb/\n* Colaric, S. and Jonassen, D. (2001). Information equals knowledge, searching equals learning, and hyperlinking is good instruction: myths about learning from the World Wide Web. Computers in the Schools, Vol. 17, No. 3-4, pp. 159-169. Retrieved: December 18th, 2006. http://portal.acm.org/citation.cfm?id=543151.543161\n* Dreyfus, H. L. (2001). On the internet. (London, Routledge): pp.27-49. Retrieved: 7th January, 2007. https://www.vle.ed.ac.uk/webct/RelativeResourceManager/Template/readings/Dreyfus27.pdf\n* Feenberg, A. (1989). The written world: On the theory and practice of computer conferencing. In Mindweave: communication, computers and distance education. R. Mason & A. Kaye (Eds.) (Oxford, Pergamon Press): pp. 22-39. Retrieved: December 28th, 2006. http://www-rohan.sdsu.edu/faculty/feenberg/Writworl.htm\n* Garrison, D. (2006). Online Collaboration Principles. Journal of Asynchronous Learning Networks, 10(1). Retrieved: December 28th, 2006. http://www.sloan-c.org/publications/jaln/v10n1/v10n1_3garrison.asp\n* Jakes, D. (2006). Techlearning > > Wild about Wikis. Retrieved: December 19th, 2006. http://www.techlearning.com/story/showArticle.php?articleID=191801354\n* Kopyc, S. (2006). Enhancing Teaching with Technology: Are We There Yet? Innovate, 3(2). Retrieved: January 1st, 2007. http://www.innovateonline.info/index.php?view=article&id=74\n* Lindsay, J, and Davis, V. (2006). The Flat Classroom Project. Retrieved: December 5th, 2006. http://flatclassroomproject.wikispaces.com/\n** Davis, V. (2006). Cool Cat Teacher Blog. Retrieved: January 7th, 2006. http://coolcatteacher.blogspot.com/\n** Lindsay, J. (2006). Literacy Ideals. Retrieved: January 7th 2006. http://elgg.net/itgs/weblog/141807.html\n* ~McLellan, J. (2006). Just do it... blog it! The Guardian, 5 May 2006. Retrieved January 6th, 2007. http://technology.guardian.co.uk/online/story/0,3605,1476175,00.html\n* O'Reilly, T. (2005). What Is Web 2.0? Retrieved: December 18th, 2006. http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html\n* Papert, S. (2006). Mindstorms: Children, Computers and Powerful Ideas. In The New Media Reader. N. ~Wardrup-Fruin and N. Montfort (Eds) (Cambridge, MIT Press): p. 419.\n*Walker, J. (2006). Network Literacy: Learning with Blogging and Web 2.0. Retrieved: December 5th, 2006. http://jilltxt.net/?p=1662\n* Warwick University (2004). Warwick Blogs. Retrieved: January 5th, 2007. http://blogs.warwick.ac.uk/\n** Barton, Natalie (2006). A Snort Story. Retrieved: January 5th, 2007. http://blogs.warwick.ac.uk/nataliebarton/entry/a_snort_story/\n** Retout, Tim: "Philosophy Of Software". Retrieved: January 5th, 2007. http://blogs.warwick.ac.uk/tretout/entry/philosophy_of_software/\n** Warwick Blogs: FAQ: Why is Warwick providing blogs? Retrieved: January 5th, 2007. http://www2.warwick.ac.uk/services/its/elab/services/webtools/blogs/faqs/general/why/\n* World of Spectrum (2007). Software - Educational. Retrieved: December 27th, 2006. http://www.worldofspectrum.org/educatio.html
/***\n|''Name:''|SinglePageModePlugin|\n|''Source:''|http://www.TiddlyTools.com/#SinglePageModePlugin|\n|''Author:''|Eric Shulman - ELS Design Studios|\n|''License:''|[[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|\n|''~CoreVersion:''|2.0.10|\n\nNormally, as you click on the links in TiddlyWiki, more and more tiddlers are displayed on the page. The order of this tiddler display depends upon when and where you have clicked. Some people like this non-linear method of reading the document, while others have reported that when many tiddlers have been opened, it can get somewhat confusing.\n\n!!!!!Usage\n<<<\nSinglePageMode allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one item displayed at a time. When SinglePageMode is enabled, the title of the current tiddler is automatically displayed in the browser window's titlebar and the browser's location URL is updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler.\n\nEven when SinglePageMode is disabled (i.e., displaying multiple tiddlers is permitted), you can reduce the potential for confusion by enable TopOfPageMode, which forces tiddlers to always open at the top of the page instead of being displayed following the tiddler containing the link that was clicked.\n<<<\n!!!!!Configuration\n<<<\nWhen installed, this plugin automatically adds checkboxes in the AdvancedOptions tiddler so you can enable/disable the plugin behavior. For convenience, these checkboxes are also included here:\n\n<<option chkSinglePageMode>> Display one tiddler at a time\n<<option chkTopOfPageMode>> Always open tiddlers at the top of the page\n<<<\n!!!!!Installation\n<<<\nimport (or copy/paste) the following tiddlers into your document:\n''SinglePageModePlugin'' (tagged with <<tag systemConfig>>)\n^^documentation and javascript for SinglePageMode handling^^\n\nWhen installed, this plugin automatically adds checkboxes in the ''shadow'' AdvancedOptions tiddler so you can enable/disable this behavior. However, if you have customized your AdvancedOptions, you will need to ''manually add these checkboxes to your customized tiddler.''\n<<<\n!!!!!Revision History\n<<<\n''2006.07.04 [2.2.1]'' in hijack for displayTiddlers(), suspend TPM as well as SPM so that DefaultTiddlers displays in the correct order.\n''2006.06.01 [2.2.0]'' added chkTopOfPageMode (TPM) handling\n''2006.02.04 [2.1.1]'' moved global variable declarations to config.* to avoid FireFox 1.5.0.1 crash bug when assigning to globals\n''2005.12.27 [2.1.0]'' hijack displayTiddlers() so that SPM can be suspended during startup while displaying the DefaultTiddlers (or #hash list). Also, corrected initialization for undefined SPM flag to "false", so default behavior is to display multiple tiddlers\n''2005.12.27 [2.0.0]'' Update for TW2.0\n''2005.11.24 [1.1.2]'' When the back and forward buttons are used, the page now changes to match the URL. Based on code added by Clint Checketts\n''2005.10.14 [1.1.1]'' permalink creation now calls encodeTiddlyLink() to handle tiddler titles with spaces in them\n''2005.10.14 [1.1.0]'' added automatic setting of window title and location bar ('auto-permalink'). feature suggestion by David Dickens.\n''2005.10.09 [1.0.1]'' combined documentation and code in a single tiddler\n''2005.08.15 [1.0.0]'' Initial Release\n<<<\n!!!!!Credits\n<<<\nThis feature was developed by EricShulman from [[ELS Design Studios|http:/www.elsdesign.com]].\nSupport for BACK/FORWARD buttons adapted from code developed by Clint Checketts\n<<<\n!!!!!Code\n***/\n//{{{\nStory.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)\n{\n var place = document.getElementById(this.container);\n var theTiddler = document.getElementById(this.idPrefix + title);\n if(theTiddler)\n this.refreshTiddler(title,template);\n else\n {\n var before = this.positionTiddler(srcElement);\n theTiddler = this.createTiddler(place,before,title,template);\n }\n if(srcElement && typeof srcElement !== "string")\n {\n if(anim && config.options.chkAnimate && (animate == undefined || animate == true))\n anim.startAnimating(new Cascade(title,srcElement,theTiddler,slowly),new Scroller(theTiddler,slowly));\n else\n window.scrollTo(0,0);\n }\n}\n\n\n\nversion.extensions.SinglePageMode= {major: 2, minor: 2, revision: 1, date: new Date(2006,7,3)};\n\nconfig.options.chkSinglePageMode=true;\n\nif (config.options.chkSinglePageMode==undefined) config.options.chkSinglePageMode=false;\nconfig.shadowTiddlers.AdvancedOptions += "\sn<<option chkSinglePageMode>> Display one tiddler at a time";\n\nif (config.options.chkTopOfPageMode==undefined) config.options.chkTopOfPageMode=false;\nconfig.shadowTiddlers.AdvancedOptions += "\sn<<option chkTopOfPageMode>> Always open tiddlers at the top of the page";\n\nconfig.SPMTimer = 0;\nconfig.lastURL = window.location.hash;\nfunction checkLastURL()\n{\n if (!config.options.chkSinglePageMode)\n { window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }\n if (config.lastURL == window.location.hash)\n return;\n var tiddlerName = convertUTF8ToUnicode(decodeURI(window.location.hash.substr(1)));\n tiddlerName=tiddlerName.replace(/\s[\s[/,"").replace(/\s]\s]/,""); // strip any [[ ]] bracketing\n if (tiddlerName.length) story.displayTiddler(null,tiddlerName,1,null,null);\n}\n\nif (Story.prototype.SPM_coreDisplayTiddler==undefined) Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;\nStory.prototype.displayTiddler = function(srcElement,title,template,animate,slowly)\n{\n if (config.options.chkSinglePageMode) {\n window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));\n config.lastURL = window.location.hash;\n document.title = wikifyPlain("SiteTitle") + " - " + title;\n story.closeAllTiddlers();\n if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);\n }\n if (config.options.chkTopOfPageMode) { story.closeTiddler(title); window.scrollTo(0,0); srcElement=null; }\n this.SPM_coreDisplayTiddler(srcElement,title,template,animate,slowly)\n}\n\nif (Story.prototype.SPM_coreDisplayTiddlers==undefined) Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;\nStory.prototype.displayTiddlers = function(srcElement,titles,template,unused1,unused2,animate,slowly)\n{\n // suspend single-page mode when displaying multiple tiddlers\n var saveSPM=config.options.chkSinglePageMode; config.options.chkSinglePageMode=false;\n var saveTPM=config.options.chkTopOfPageMode; config.options.chkTopOfPageMode=false;\n this.SPM_coreDisplayTiddlers(srcElement,titles,template,unused1,unused2,animate,slowly);\n config.options.chkSinglePageMode=saveSPM; config.options.chkTopOfPageMode=saveTPM;\n}\n//}}}
Richard Davis: IDEL Assignment, ~MSc ~E-Learning, University of Edinburgh
A Web 2.0 Education
One of the most talked-about recent developments on the Internet, and the World Wide Web in particular, has come to be known as "Web 2.0" ([[O'Reilly, 2005|References]]), and is said to represent a new paradigm in the way that the Web can be used. Many aspects of Web 2.0 have been seen as offering particular benefits in the field of education, and have begun to be used across the curriculum at all levels – just as earlier ICT innovations and incarnations of the Web were also rapidly adopted to educational ends.\n\nIs Web 2.0 a development that addresses specific needs in learning technology, and represents a deficiency in previous generations of technology, or is it just a solution looking for a problem? This paper considers some examples of the pedagogical use of web applications, and considers if, indeed, there is anything new or beneficial to be gained – in education in general, and in e-learning in particular – through substantial engagement with Web 2.0.
\n/***\nPlace your custom CSS here\n***/\n/*{{{*/\n\n\n[[SideBarWG]]\n\n/***\n!Top Menu Styles\n***/\n/*{{{*/\n#topMenu br {display:none; }\n#topMenu { background: #000 ; color:#fff;padding: 1em 1em;}\n/*}}}*/\n\n/***\n!General\n***/\n/*{{{*/\nbody {\n background: #444;\n margin: 0 auto;\n}\n\n #contentWrapper{\n background: #fff;\n border: 0;\n margin: 0 1em;\n\n padding:0;\n}\n/*}}}*/\n\n/***\n!Header rules\n***/\n/*{{{*/\n.titleLine{\n margin: 68px 3em 0em 0em;\nmargin-left:1.7em;\nmargin-bottom: 28px;\n padding: 0;\n text-align: left;\n color: #fff;\n}\n\n.siteTitle {\n font-size: 2em;\n font-weight: bold;\n}\n\n.siteSubtitle {\n font-size: 1.1em;\n display: block;\n margin: .5em auto 1em;\n}\n\n.gradient {margin: 0 auto; border-bottom:1px solid #000;}\n\n\n\n.header {\n background: #fff; \n margin: 0 0em;\n padding:0 12px;\n\n}\n/*}}}*/\n\n/***\n!Display Area\n***/\n/*{{{*/\n#bodywrapper {margin:0 12px; padding:0;background:#fff; height:1%}\n\n#displayArea{\n margin: 0em 16em 0em 14em;\n text-align: left;\n}\n\n.tiddler {\n padding: 1em 1em 0em 0em;\n}\n\nh1,h2,h3,h4,h5 { color: #000; background: transparent; padding-bottom:2px; border-bottom: 1px dotted #666; }\n.title {color:black; font-size:1.8em; border-bottom:1px solid #333; padding-bottom:0.3px;}\n.subtitle { font-size:90%; color:#ccc; padding-left:0.25em; margin-top:0.1em; }\n\n.shadow .title {\n color: #aaa;\n}\n\n.tagClear{\n clear: none; \n}\n\n* html .viewer pre {\n margin-left: 0em;\n}\n\n* html .editor textarea, * html .editor input {\n width: 98%;\n}\n\n.tiddler {margin-bottom:1em; padding-bottom:0em;}\n\n\n.toolbar .button {color:#bbb; border:none;}\n.toolbar .button:hover, .toolbar .highlight, .toolbar .marked, .toolbar a.button:active {background:transparent; color:#111; border:none; text-decoration:underline;}\n\n#sidebar .highlight, #sidebar .marked {background:transparent;}\n\n.tagging, .tagged {\n border: 1px solid #eee;\n background-color: #F7F7F7;\n}\n\n.selected .tagging, .selected .tagged {\n background-color: #eee;\n border: 1px solid #bbb;\n}\n\n .tagging .listTitle, .tagged .listTitle {\n color: #bbb;\n}\n\n.selected .tagging .listTitle, .selected .tagged .listTitle {\n color: #222; \n}\n\n\n.tagging .button:hover, .tagged .button:hover {\n border: none; background:transparent; text-decoration:underline; color:#000;\n}\n\n.tagging .button, .tagged .button {\n color:#aaa;\n}\n\n.selected .tagging .button, .selected .tagged .button {\n color:#000;\n}\n\n.viewer blockquote {\n border-left: 3px solid #000;\n}\n\n.viewer pre, .viewer code {\n border: 1px dashed #ccc;\n background: #eee;}\n\n.viewer hr {\n border: 0;\n border-top: solid 1px #333;\n margin: 0 8em;\n color: #333;\n}\n\n.highlight, .marked {background:transparent; color:#111; border:none; text-decoration:underline;}\n\n.viewer .highlight, .viewer .marked {text-decoration:none;}\n\n#sidebarTabs .highlight, #sidebarTabs .marked {color:#000; text-decoration:none;}\n\n.tabSelected {\n color: #000;\n background: #fff;\n border-top: solid 1px #ccc;\n border-left: solid 1px #ccc;\n border-right: solid 1px #ccc;\n border-bottom: none;\n}\n\n.viewer .tabSelected:hover{color:#000;}\n\n.viewer .tabSelected {font-weight:bold;}\n\n.tabUnselected {\n color: #999;\n background: #eee;\n border-top: solid 1px #ccc;\n border-left: solid 1px #ccc;\n border-right: solid 1px #ccc;\n border-bottom: solid 1px #ccc;\n padding-bottom:1px;\n}\n\n.tabContents {\n background: #fff;\n color: #000;\n}\n/*}}}*/\n/***\n!!!Tables\n***/\n/*{{{*/\n.viewer table {\n border: 1px solid #000;\n}\n\n.viewer th, thead td {\n background: #000;\n border: 1px solid #000;\n color: #fff;\n}\n\n.viewer td, .viewer tr {\n border: 1px solid #111; padding:4px;\n}\n/*}}}*/\n\n\n/***\n!!!Editor area\n***/\n/*{{{*/\n.editor input, .editor textarea {\n border: 1px solid #ccc;\n}\n\n.editor {padding-top:0.3em;}\n\n.editor textarea:focus, .editor input:focus {\n border: 1px solid #333;\n}\n/*}}}*/\n\n/***\n!Sidebar\n***/\n/*{{{*/\n#sidebar{\nposition:relative;\nfloat:right;\nmargin-bottom:1em;\ndisplay:inline;\nwidth: 16em;\n}\n\n#sidebarOptions .sliderPanel {\n background: #eee; border:1px solid #ccc;\n}\n\n/*}}}*/\n\n/***\n!Body Footer rules\n***/\n/*{{{*/\n#contentFooter {\n text-align: center;\n clear: both;\n color:#fff;\n background: #666;\n padding: 1em 2em;\nfont-weight:bold;\n}\n#contentFooter .tiddlyLink { color:#fff; } \n#contentFooter a:link { color:#fff;}\n#contentFooter a:visited { color:#fff;}\n/*}}}*/\n/***\n!Link Styles\n***/\n/*{{{*/\na{\n color: #000;\n}\n\na:hover{\n color: #ED700B;\n background:#fff;\n}\n\n\n.button {\n color: #000;\n border: 1px solid #fff;\n}\n\n.button:hover {\n color: #fff;\n background: #ED700B;\n border-color: #000;\n}\n\n.button:active {\n color: #fff;\n background: #ED700B;\n border: 1px solid #000;\n}\n\n.tiddlyLink {border-bottom: 1px dotted #000;}\n.tiddlyLink:hover {border-bottom: 1px dotted #ED700B;} \n\n.titleLine a {border-bottom: 1px dotted #FF9900;}\n\n.titleLine a:hover {border-bottom: 1px dotted #fff;}\n\n.siteTitle a, .siteSubtitle a{\n color: #fff;\n}\n\n.viewer .button {border: 1px solid #ED700B; font-weight:bold;}\n.viewer .button:hover, .viewer .marked, .viewer .highlight{background:#ED700B; color:#fff; font-weight:bold; border: 1px solid #000;}\n\n#topMenu .button, #topMenu .tiddlyLink {\n margin-left:0.5em; margin-right:0.5em;\n padding-left:3px; padding-right:3px;\n color:white; font-weight:bold;\n}\n#topMenu .button:hover, #topMenu .tiddlyLink:hover { background:#000; color:#FF8814}\n\n#topMenu a{border:none;}\n/*}}}*/\n\n/***\n!Message Area /%=================================================%/\n***/\n/*{{{*/\n#messageArea {\n border: 4px dotted #ff8614;\n background: #000;\n color: #fff;\n font-size:90%;\n}\n\n#messageArea .button {\n padding: 0.2em;\n color: #000;\n background: #fff;\n text-decoration:none;\n font-weight:bold;\n border:1px solid #000; \n}\n\n#messageArea a {color:#fff;}\n\n#messageArea a:hover {color:#ff8614; background:transparent;}\n\n#messageArea .button:hover {background: #FF8614; color:#fff; border:1px solid #fff; }\n\n/*}}}*/\n\n/***\n!Popup /%=================================================%/\n***/\n/*{{{*/\n.popup {\n background: #ff8814;\n border: 1px solid #333;\n}\n\n.popup hr {\n color: #333;\n background: #333;\n border-bottom: 1px;\n}\n\n.popup li.disabled {\n color: #333;\n}\n\n.popup li a, .popup li a:visited {\n color: #eee;\n border: none;\n}\n\n.popup li a:hover {\n background: #ff8614;\n color: #fff;\n border: none;\n text-decoration:underline;\n}\n\n.searchBar {float:right; font-size:1em;}\n.searchBar .button {display:block; border:none; color:#ccc; }\n.searchBar .button:hover{border:none; color:#eee;}\n\n.searchBar input{\n border: 1px inset #000; background:#EFDFD1; width:10em; margin:0;\n}\n\n.searchBar input:focus {\n border: 1px inset #000; background:#fff;\n}\n\n*html .titleLine {margin-right:1.3em;}\n\n*html .searchBar .button {margin-left:1.7em;}\n\n .HideSideBarButton {float:right;} \n/*}}}*/\n\n.blog h2, .blog h3, .blog h4{\n margin:0;\n padding:0;\nborder-bottom:none;\n}\n.blog {margin-left:1.5em;} \n\n\n.blog .excerpt {\n margin:0;\nmargin-top:0.3em;\n padding: 0;\n margin-left:1em;\n padding-left:1em;\n font-size:90%;\n border-left:1px solid #ddd;\n}\n\n#tiddlerWhatsNew h1, #tiddlerWhatsNew h2 {border-bottom:none;}\ndiv[tags~="RecentUpdates"], div[tags~="lewcidExtension"] {margin-bottom: 2em;}\n\n#hoverMenu .button, #hoverMenu .tiddlyLink {border:none; font-weight:bold; background:#f37211; color:#fff; padding:0 5px; float:right; margin-bottom:4px;}\n#hoverMenu .button:hover, #hoverMenu .tiddlyLink:hover {font-weight:bold; border:none; color:#f37211; background:#000; padding:0 5px; float:right; margin-bottom:4px;}\n\n#topMenu .fontResizer {float:right;}\n\n#topMenu .fontResizer .button{border:1px solid #000;}\n#topMenu .fontResizer .button:hover {border:1px solid #f37211; color:#fff;}\n#sidebarTabs .txtMainTab .tiddlyLinkExisting {\n font-weight: normal;\n font-style: normal;\n}\n\n#sidebarTabs .txtMoreTab .tiddlyLinkExisting {\n font-weight: bold;\n font-style: normal;\n}\n\n\n\n\n\n#displayArea {margin-right:1em;}\n\n.headerShadow {\n position: relative;\n padding: 2.5em 0em 1em 1em;\n left: -1px;\n top: -1px;\n}\n\n.headerForeground {\n position: absolute;\n padding: 2.5em 0em 1em 1em;\n left: 0px;\n top: 0px;\n}\n\n.siteTitle {\n font-size: 2.5em;\n}\n\n.siteSubtitle {\n font-size: 1.2em;\n}\n\n#mainMenu {float:left; position:relative;}\n\n\n.viewer .button {border: 1px solid #ED700B; font-weight:bold;}\n.viewer .button:hover, .viewer .marked, .viewer .highlight{background:#ED700B; color:#fff; font-weight:bold; border: 1px solid #ED700B;}\n[[StyleSheetCommon]]\n/*}}}*/\n\n
.centre {text-align:center; margin:0;}\n.centre img {margin:0 auto;}\n\n.title, h1 {font-size: 1.6em; font-weight:bold; background:transparent; margin-top:0;margin-bottom:0; color:#000;}\n\nh2 {font-size: 1.45em; font-weight:bold; background:transparent; margin-top:0;margin-bottom:0; color:#000;}\n\n#mainMenu {width:14em;}\n#displayArea {margin-left:18em;}\n\n.left {float:left; margin-right:1em;}\n.bold {font-weight:bold;}\n\n\n\n.topbutton button, .topbutton{float:right;}\n\n.note{\n position:relative; /*this is the key*/\n z-index:24; background:#ccc;\n color:#000;\n text-decoration:none}\n\n.note:hover, .noteover{z-index:25; background-color:#FFB865;cursor:help;}\n\n.note span{display: none;}\n\n.note:hover span, .noteover span{ /*the span will display just on :hover state*/\n display:block;\n position:absolute;\n top:2em; left:2em; width:15em;\n border:1px solid #000;\n background-color:#FFB35A; color:#000;\n padding:0.5em;}\n\n\n\n.info{\n position:relative; /*this is the key*/\n z-index:24; background:#ccc;\n color:#000;\n text-decoration:none}\n\n.info:hover, .infoover{z-index:25; background-color:#FFB865;cursor:help;}\n\n.info span{display: none}\n\n.info:hover span, .infoover span{ /*the span will display just on :hover state*/\n display:block;\n position:absolute;\n top:2em; left:2em; width:15em;\n border:1px solid #000;\n background-color:#FFB35A; color:#000;\n padding:0.5em;}\n\n.bold {font-weight: bold !important;}
One of the original achievements of the World Wide Web, during its phenomenal growth after 1993 (the year CERN put the WWW code in the public domain, and NCSA launched the Mosaic browser), was a democratisation of the global information infrastructure: distribution and publishing was no longer the exclusive realm of broadcasters and publishers. (Publishers and broadcasters were nonetheless quick to exploit the new platform.) In education, as in other fields, the Web lowered the cost of entry, both financial and technical, to a wealth of networked, hypertextual possibilities, previously available only through proprietary and platform-dependent software solutions (e.g. Question Mark, ~StorySpace). \n\nMany study projects, in schools and universities, inspired and energised by this brave new world, achieved impressive results, and the Web is full of examples. One will suffice: [[The Decameron Web|http://www.brown.edu/Departments/Italian_Studies/dweb/]] at Brown University's Italian Studies Department, a superb online resource for teachers and students of Italian Literature, designed as “an experiment in a new form of scholarly and pedagogical communication aimed at renewing a living dialogue between a distant past and our present” ([[Brown University, 2000|References]]).\n\nHaving begun as a ~StorySpace hypertext, a Web version was an inevitable development. Many individuals contributed essays and other work. It must have been a fascinating project to develop: it is a monument to scholarly collaboration. But is it really a “living dialogue”? Contributions clearly require moderation, not only by reviewers/editors, but also by specialists in HTML markup and website management – significant overheads – and a look at the editing and markup instructions suggests that there was a lot for contributors to learn.\n\nThere are some core features that undoubtedly require special programming – the semantic markup of parallel texts in English and Italian, for example, with specialised search tools for marking and indexing place and character names. But the bulk of the content comprises essays, short and long, presented as a network of hyperlinked web pages. Managing such a web site, with multiple contributors, using a "Web 1.0" approach, is a non-trivial task, technically and administratively, even with a Content Management System. The costs of continuing to manage the growth of this website, are not trivial either, considering the technical and editorial requirements, and the amount of instruction contributors require.\n\nThere are some interactive/collaborative features included: \n* A [[Guest Book|http://www.brown.edu/Departments/Italian_Studies/dweb/subscribe/guestbook.shtml]] (actually a Feedback Form - I couldn't find a place where Guest Book comments were actually displayed, as is usual with Guest Books, not only online). \n* "[[Listserv|http://listserv.brown.edu/archives/decameron.html]]" (a mailing list with web-based archive).\n* An irregular [[web newsletter|http://www.brown.edu/Departments/Italian_Studies/dweb/newsletter/index.shtml]] (only two “issues” between 1997 and 2000).\nAll of these are standard “outreach” components among 1990s websites – tools that seemingly had the potential to create and bind an online community, but, in reality, frequently didn't. (I have been involved with several Web projects that had a similar experience: the overhead of maintaining them and keeping them fresh and relevant is often overlooked.) Contributions are invited, but only indirectly. Notwithstanding the Guest Book and invitations to contribute, the user of The Decameron Web who wants to do more than simply study the excellent online materials, is likely to feel less than completely and instantly included. Can one contribute, in an interactive way? How might one actively engage with the site, other than by adding it to an ever-groaning list of web bookmarks, and trying to remember to check it regularly? Could a teacher or student of the subject, coming across this over the web in 1997 or 2007, easily – instantly, even – become part of the community engaged in this "living dialogue"? [ [[1.|Notes]] ]\n\nCould this be achieved in any better way, with the tools available 2007? I believe it could, by using combinations of often free, yet powerful, applications for creating wikis, blogs, and repositories of information, that not only simplify the process of creating different types of content, and reduce the cost of maintenance and management (thereby enhancing the project's life-expectancy), but also establish a persistent and dynamic online community around such a great resource.\n\n<html><iframe style="width: 100%; height: 60ex; font-size: 80%;" src="http://www.brown.edu/Departments/Italian_Studies/dweb/" title="The Decameron Web at Brown University"/></html>//The Decameron Web at Brown University//\n
Tiddler.prototype.getSubtitle = function()\n{\n return(this.title);\n}
config.macros.top={};\nconfig.macros.top.handler=function(place,macroName)\n{\n createTiddlyButton(place,"^","jump to top",this.onclick);\n}\nconfig.macros.top.onclick=function()\n{\n window.scrollTo(0,0);\n};
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |\n| 6/1/2007 15:10:17 | YourName | [[/|http://web2education.tiddlyspot.com/#%5B%5BWelcome%20to%20your%20tiddlyspot.com%20site!%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 6/1/2007 15:20:45 | Richard | [[/|http://web2education.tiddlyspot.com/#InterfaceOptions]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 7/1/2007 19:51:10 | YourName | [[/|http://web2education.tiddlyspot.com/#Welcome]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 7/1/2007 20:50:41 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#Concludingly]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 21:10:38 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 21:12:16 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#DefaultTiddlers]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 21:24:29 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#MainMenu]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 21:30:16 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#contentFooter]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 21:31:19 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#contentFooter]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 21:38:45 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#contentFooter]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 21:39:33 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 21:40:56 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#StyleSheet]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 21:55:46 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#contentFooter]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 7/1/2007 21:58:59 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#contentFooter]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 22:1:11 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 22:37:57 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 22:40:57 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#%5B%5BWeb%202.0%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 22:43:42 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#%5B%5BAbout%20this%20text%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 7/1/2007 22:43:42 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#%5B%5BAbout%20this%20text%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok | Ok |\n| 7/1/2007 22:55:50 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#%5B%5BICT%20in%20education%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 23:0:14 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#%5B%5BWeb%202.0%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 7/1/2007 23:2:54 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#References]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 8/1/2007 16:0:16 | Richard | [[index.html|http://web2education.tiddlyspot.com/index.html#ViewTemplate]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 21/2/2007 12:34:15 | Richard | [[/|http://web2education.tiddlyspot.com/#Wikis]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 21/2/2007 12:35:15 | Richard | [[/|http://web2education.tiddlyspot.com/#%5B%5BWarwick%20Blogs%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 21/2/2007 12:35:57 | Richard | [[/|http://web2education.tiddlyspot.com/#%5B%5BICT%20in%20education%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 21/2/2007 13:33:18 | Richard | [[/|http://web2education.tiddlyspot.com/#Concludingly]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 22/2/2007 0:48:1 | Richard | [[/|http://web2education.tiddlyspot.com/#PresentationIndex]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok |\n| 22/2/2007 0:49:23 | Richard | [[/|http://web2education.tiddlyspot.com/#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/2/2007 21:55:45 | Richard | [[/|http://web2education.tiddlyspot.com/#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/2/2007 21:56:8 | Richard | [[/|http://web2education.tiddlyspot.com/#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/2/2007 21:56:17 | Richard | [[/|http://web2education.tiddlyspot.com/#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/2/2007 21:56:19 | Richard | [[/|http://web2education.tiddlyspot.com/#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |\n| 25/2/2007 21:56:31 | Richard | [[/|http://web2education.tiddlyspot.com/#%5B%5BStart%20Here%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . | Ok | Ok |\n| 25/2/2007 23:12:24 | Richard | [[/|http://web2education.tiddlyspot.com/#%5B%5BThe%20Web%20and%20Boccaccio%5D%5D]] | [[store.cgi|http://web2education.tiddlyspot.com/store.cgi]] | . | index.html | . |
/***\n|''Name:''|UploadPlugin|\n|''Description:''|Save to web a TiddlyWiki|\n|''Version:''|3.4.4|\n|''Date:''|Sep 30, 2006|\n|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|\n|''Documentation:''|http://tiddlywiki.bidix.info/#UploadDoc|\n|''Author:''|BidiX (BidiX (at) bidix (dot) info)|\n|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|\n|''~CoreVersion:''|2.0.0|\n|''Browser:''|Firefox 1.5; InternetExplorer 6.0; Safari|\n|''Include:''|config.lib.file; config.lib.log; config.lib.options; PasswordTweak|\n|''Require:''|[[UploadService|http://tiddlywiki.bidix.info/#UploadService]]|\n***/\n//{{{\nversion.extensions.UploadPlugin = {\n major: 3, minor: 4, revision: 4, \n date: new Date(2006,8,30),\n source: 'http://tiddlywiki.bidix.info/#UploadPlugin',\n documentation: 'http://tiddlywiki.bidix.info/#UploadDoc',\n author: 'BidiX (BidiX (at) bidix (dot) info',\n license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',\n coreVersion: '2.0.0',\n browser: 'Firefox 1.5; InternetExplorer 6.0; Safari'\n};\n//}}}\n\n////+++!![config.lib.file]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.file) config.lib.file= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.file.dirname = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(0, lastpos);\n } else {\n return filePath.substring(0, filePath.lastIndexOf("\s\s"));\n }\n};\nconfig.lib.file.basename = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("#")) != -1) \n filePath = filePath.substring(0, lastpos);\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(lastpos + 1);\n } else\n return filePath.substring(filePath.lastIndexOf("\s\s")+1);\n};\nwindow.basename = function() {return "@@deprecated@@";};\n//}}}\n////===\n\n////+++!![config.lib.log]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.log) config.lib.log= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 1}, \n date: new Date(2006,8,19)\n};\nconfig.lib.Log = function(tiddlerTitle, logHeader) {\n if (version.major < 2)\n this.tiddler = store.tiddlers[tiddlerTitle];\n else\n this.tiddler = store.getTiddler(tiddlerTitle);\n if (!this.tiddler) {\n this.tiddler = new Tiddler();\n this.tiddler.title = tiddlerTitle;\n this.tiddler.text = "| !date | !user | !location |" + logHeader;\n this.tiddler.created = new Date();\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[tiddlerTitle] = this.tiddler;\n else\n store.addTiddler(this.tiddler);\n }\n return this;\n};\n\nconfig.lib.Log.prototype.newLine = function (line) {\n var now = new Date();\n var newText = "| ";\n newText += now.getDate()+"/"+(now.getMonth()+1)+"/"+now.getFullYear() + " ";\n newText += now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" | ";\n newText += config.options.txtUserName + " | ";\n var location = document.location.toString();\n var filename = config.lib.file.basename(location);\n if (!filename) filename = '/';\n newText += "[["+filename+"|"+location + "]] |";\n this.tiddler.text = this.tiddler.text + "\sn" + newText;\n this.addToLine(line);\n};\n\nconfig.lib.Log.prototype.addToLine = function (text) {\n this.tiddler.text = this.tiddler.text + text;\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[this.tiddler.tittle] = this.tiddler;\n else {\n store.addTiddler(this.tiddler);\n story.refreshTiddler(this.tiddler.title);\n store.notify(this.tiddler.title, true);\n }\n if (version.major < 2)\n store.notifyAll(); \n};\n//}}}\n////===\n\n////+++!![config.lib.options]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.options) config.lib.options = {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\n\nconfig.lib.options.init = function (name, defaultValue) {\n if (!config.options[name]) {\n config.options[name] = defaultValue;\n saveOptionCookie(name);\n }\n};\n//}}}\n////===\n\n////+++!![PasswordTweak]\n\n//{{{\nversion.extensions.PasswordTweak = {\n major: 1, minor: 0, revision: 3, date: new Date(2006,8,30),\n type: 'tweak',\n source: 'http://tiddlywiki.bidix.info/#PasswordTweak'\n};\n//}}}\n/***\n!!config.macros.option\n***/\n//{{{\nconfig.macros.option.passwordCheckboxLabel = "Save this password on this computer";\nconfig.macros.option.passwordType = "password"; // password | text\n\nconfig.macros.option.onChangeOption = function(e)\n{\n var opt = this.getAttribute("option");\n var elementType,valueField;\n if(opt) {\n switch(opt.substr(0,3)) {\n case "txt":\n elementType = "input";\n valueField = "value";\n break;\n case "pas":\n elementType = "input";\n valueField = "value";\n break;\n case "chk":\n elementType = "input";\n valueField = "checked";\n break;\n }\n config.options[opt] = this[valueField];\n saveOptionCookie(opt);\n var nodes = document.getElementsByTagName(elementType);\n for(var t=0; t<nodes.length; t++) \n {\n var optNode = nodes[t].getAttribute("option");\n if (opt == optNode) \n nodes[t][valueField] = this[valueField];\n }\n }\n return(true);\n};\n\nconfig.macros.option.handler = function(place,macroName,params)\n{\n var opt = params[0];\n if(config.options[opt] === undefined) {\n return;}\n var c;\n switch(opt.substr(0,3)) {\n case "txt":\n c = document.createElement("input");\n c.onkeyup = this.onChangeOption;\n c.setAttribute ("option",opt);\n c.className = "txtOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n break;\n case "pas":\n // input password\n c = document.createElement ("input");\n c.setAttribute("type",config.macros.option.passwordType);\n c.onkeyup = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "pasOptionInput "+opt;\n place.appendChild(c);\n c.value = config.options[opt];\n // checkbox link with this password "save this password on this computer"\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option","chk"+opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options["chk"+opt];\n // text savePasswordCheckboxLabel\n place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));\n break;\n case "chk":\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option",opt);\n c.className = "chkOptionInput "+opt;\n place.appendChild(c);\n c.checked = config.options[opt];\n break;\n }\n};\n//}}}\n/***\n!! Option cookie stuff\n***/\n//{{{\nwindow.loadOptionsCookie_orig_PasswordTweak = window.loadOptionsCookie;\nwindow.loadOptionsCookie = function()\n{\n var cookies = document.cookie.split(";");\n for(var c=0; c<cookies.length; c++) {\n var p = cookies[c].indexOf("=");\n if(p != -1) {\n var name = cookies[c].substr(0,p).trim();\n var value = cookies[c].substr(p+1).trim();\n switch(name.substr(0,3)) {\n case "txt":\n config.options[name] = unescape(value);\n break;\n case "pas":\n config.options[name] = unescape(value);\n break;\n case "chk":\n config.options[name] = value == "true";\n break;\n }\n }\n }\n};\n\nwindow.saveOptionCookie_orig_PasswordTweak = window.saveOptionCookie;\nwindow.saveOptionCookie = function(name)\n{\n var c = name + "=";\n switch(name.substr(0,3)) {\n case "txt":\n c += escape(config.options[name].toString());\n break;\n case "chk":\n c += config.options[name] ? "true" : "false";\n // is there an option link with this chk ?\n if (config.options[name.substr(3)]) {\n saveOptionCookie(name.substr(3));\n }\n break;\n case "pas":\n if (config.options["chk"+name]) {\n c += escape(config.options[name].toString());\n } else {\n c += "";\n }\n break;\n }\n c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";\n document.cookie = c;\n};\n//}}}\n/***\n!! Initializations\n***/\n//{{{\n// define config.options.pasPassword\nif (!config.options.pasPassword) {\n config.options.pasPassword = 'defaultPassword';\n window.saveOptionCookie('pasPassword');\n}\n// since loadCookies is first called befor password definition\n// we need to reload cookies\nwindow.loadOptionsCookie();\n//}}}\n////===\n\n////+++!![config.macros.upload]\n\n//{{{\nconfig.macros.upload = {\n accessKey: "U",\n formName: "UploadPlugin",\n contentType: "text/html;charset=UTF-8",\n defaultStoreScript: "store.php"\n};\n\n// only this two configs need to be translated\nconfig.macros.upload.messages = {\n aboutToUpload: "About to upload TiddlyWiki to %0",\n backupFileStored: "Previous file backuped in %0",\n crossDomain: "Certainly a cross-domain isue: access to an other site isn't allowed",\n errorDownloading: "Error downloading",\n errorUploadingContent: "Error uploading content",\n fileLocked: "Files is locked: You are not allowed to Upload",\n fileNotFound: "file to upload not found",\n fileNotUploaded: "File %0 NOT uploaded",\n mainFileUploaded: "Main TiddlyWiki file uploaded to %0",\n passwordEmpty: "Unable to upload, your password is empty",\n urlParamMissing: "url param missing",\n rssFileNotUploaded: "RssFile %0 NOT uploaded",\n rssFileUploaded: "Rss File uploaded to %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Save and Upload this TiddlyWiki with UploadOptions",\n promptParamMacro: "Save and Upload this TiddlyWiki in %0",\n saveLabel: "save to web", \n saveToDisk: "save to disk",\n uploadLabel: "upload" \n};\n\nconfig.macros.upload.handler = function(place,macroName,params){\n // parameters initialization\n var storeUrl = params[0];\n var toFilename = params[1];\n var backupDir = params[2];\n var uploadDir = params[3];\n var username = params[4];\n var password; // for security reason no password as macro parameter\n var label;\n if (document.location.toString().substr(0,4) == "http")\n label = this.label.saveLabel;\n else\n label = this.label.uploadLabel;\n var prompt;\n if (storeUrl) {\n prompt = this.label.promptParamMacro.toString().format([this.toDirUrl(storeUrl, uploadDir, username)]);\n }\n else {\n prompt = this.label.promptOption;\n }\n createTiddlyButton(place, label, prompt, \n function () {\n config.macros.upload.upload(storeUrl, toFilename, uploadDir, backupDir, username, password); \n return false;}, \n null, null, this.accessKey);\n};\nconfig.macros.upload.UploadLog = function() {\n return new config.lib.Log('UploadLog', " !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |" );\n};\nconfig.macros.upload.UploadLog.prototype = config.lib.Log.prototype;\nconfig.macros.upload.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {\n var line = " [[" + config.lib.file.basename(storeUrl) + "|" + storeUrl + "]] | ";\n line += uploadDir + " | " + toFilename + " | " + backupDir + " |";\n this.newLine(line);\n};\nconfig.macros.upload.UploadLog.prototype.endUpload = function() {\n this.addToLine(" Ok |");\n};\nconfig.macros.upload.basename = config.lib.file.basename;\nconfig.macros.upload.dirname = config.lib.file.dirname;\nconfig.macros.upload.toRootUrl = function (storeUrl, username)\n{\n return root = (this.dirname(storeUrl)?this.dirname(storeUrl):this.dirname(document.location.toString()));\n}\nconfig.macros.upload.toDirUrl = function (storeUrl, uploadDir, username)\n{\n var root = this.toRootUrl(storeUrl, username);\n if (uploadDir && uploadDir != '.')\n root = root + '/' + uploadDir;\n return root;\n}\nconfig.macros.upload.toFileUrl = function (storeUrl, toFilename, uploadDir, username)\n{\n return this.toDirUrl(storeUrl, uploadDir, username) + '/' + toFilename;\n}\nconfig.macros.upload.upload = function(storeUrl, toFilename, uploadDir, backupDir, username, password)\n{\n // parameters initialization\n storeUrl = (storeUrl ? storeUrl : config.options.txtUploadStoreUrl);\n toFilename = (toFilename ? toFilename : config.options.txtUploadFilename);\n backupDir = (backupDir ? backupDir : config.options.txtUploadBackupDir);\n uploadDir = (uploadDir ? uploadDir : config.options.txtUploadDir);\n username = (username ? username : config.options.txtUploadUserName);\n password = config.options.pasUploadPassword; // for security reason no password as macro parameter\n if (!password || password === '') {\n alert(config.macros.upload.messages.passwordEmpty);\n return;\n }\n if (storeUrl === '') {\n storeUrl = config.macros.upload.defaultStoreScript;\n }\n if (config.lib.file.dirname(storeUrl) === '') {\n storeUrl = config.lib.file.dirname(document.location.toString())+'/'+storeUrl;\n }\n if (toFilename === '') {\n toFilename = config.lib.file.basename(document.location.toString());\n }\n\n clearMessage();\n // only for forcing the message to display\n if (version.major < 2)\n store.notifyAll();\n if (!storeUrl) {\n alert(config.macros.upload.messages.urlParamMissing);\n return;\n }\n // Check that file is not locked\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n if (BidiX.GroupAuthoring.lock.isLocked() && !BidiX.GroupAuthoring.lock.isMyLock()) {\n alert(config.macros.upload.messages.fileLocked);\n return;\n }\n }\n \n var log = new this.UploadLog();\n log.startUpload(storeUrl, toFilename, uploadDir, backupDir);\n if (document.location.toString().substr(0,5) == "file:") {\n saveChanges();\n }\n var toDir = config.macros.upload.toDirUrl(storeUrl, toFilename, uploadDir, username);\n displayMessage(config.macros.upload.messages.aboutToUpload.format([toDir]), toDir);\n this.uploadChanges(storeUrl, toFilename, uploadDir, backupDir, username, password);\n if(config.options.chkGenerateAnRssFeed) {\n //var rssContent = convertUnicodeToUTF8(generateRss());\n var rssContent = generateRss();\n var rssPath = toFilename.substr(0,toFilename.lastIndexOf(".")) + ".xml";\n this.uploadContent(rssContent, storeUrl, rssPath, uploadDir, '', username, password, \n function (responseText) {\n if (responseText.substring(0,1) != '0') {\n displayMessage(config.macros.upload.messages.rssFileNotUploaded.format([rssPath]));\n }\n else {\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, rssPath, uploadDir, username);\n displayMessage(config.macros.upload.messages.rssFileUploaded.format(\n [toFileUrl]), toFileUrl);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n });\n }\n return;\n};\n\nconfig.macros.upload.uploadChanges = function(storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var original;\n if (document.location.toString().substr(0,4) == "http") {\n original = this.download(storeUrl, toFilename, uploadDir, backupDir, username, password);\n return;\n }\n else {\n // standard way : Local file\n \n original = loadFile(getLocalPath(document.location.toString()));\n if(window.Components) {\n // it's a mozilla browser\n try {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]\n .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);\n converter.charset = "UTF-8";\n original = converter.ConvertToUnicode(original);\n }\n catch(e) {\n }\n }\n }\n //DEBUG alert(original);\n this.uploadChangesFrom(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password);\n};\n\nconfig.macros.upload.uploadChangesFrom = function(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var startSaveArea = '<div id="' + 'storeArea">'; // Split up into two so that indexOf() of this source doesn't find it\n var endSaveArea = '</d' + 'iv>';\n // Locate the storeArea div's\n var posOpeningDiv = original.indexOf(startSaveArea);\n var posClosingDiv = original.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1))\n {\n alert(config.messages.invalidFileError.format([document.location.toString()]));\n return;\n }\n var revised = original.substr(0,posOpeningDiv + startSaveArea.length) + \n allTiddlersAsHtml() + "\sn\st\st" +\n original.substr(posClosingDiv);\n var newSiteTitle;\n if(version.major < 2){\n newSiteTitle = (getElementText("siteTitle") + " - " + getElementText("siteSubtitle")).htmlEncode();\n } else {\n newSiteTitle = (wikifyPlain ("SiteTitle") + " - " + wikifyPlain ("SiteSubtitle")).htmlEncode();\n }\n\n revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");\n revised = revised.replaceChunk("<!--PRE-HEAD-START--"+">","<!--PRE-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPreHead","") + "\sn");\n revised = revised.replaceChunk("<!--POST-HEAD-START--"+">","<!--POST-HEAD-END--"+">","\sn" + store.getTiddlerText("MarkupPostHead","") + "\sn");\n revised = revised.replaceChunk("<!--PRE-BODY-START--"+">","<!--PRE-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPreBody","") + "\sn");\n revised = revised.replaceChunk("<!--POST-BODY-START--"+">","<!--POST-BODY-END--"+">","\sn" + store.getTiddlerText("MarkupPostBody","") + "\sn");\n\n var response = this.uploadContent(revised, storeUrl, toFilename, uploadDir, backupDir, \n username, password, function (responseText) {\n if (responseText.substring(0,1) != '0') {\n alert(responseText);\n displayMessage(config.macros.upload.messages.fileNotUploaded.format([getLocalPath(document.location.toString())]));\n }\n else {\n if (uploadDir !== '') {\n toFilename = uploadDir + "/" + config.macros.upload.basename(toFilename);\n } else {\n toFilename = config.macros.upload.basename(toFilename);\n }\n var toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n if (responseText.indexOf("destfile:") > 0) {\n var destfile = responseText.substring(responseText.indexOf("destfile:")+9, \n responseText.indexOf("\sn", responseText.indexOf("destfile:")));\n toFileUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + destfile;\n }\n else {\n toFileUrl = config.macros.upload.toFileUrl(storeUrl, toFilename, uploadDir, username);\n }\n displayMessage(config.macros.upload.messages.mainFileUploaded.format(\n [toFileUrl]), toFileUrl);\n if (backupDir && responseText.indexOf("backupfile:") > 0) {\n var backupFile = responseText.substring(responseText.indexOf("backupfile:")+11, \n responseText.indexOf("\sn", responseText.indexOf("backupfile:")));\n toBackupUrl = config.macros.upload.toRootUrl(storeUrl, username) + '/' + backupFile;\n displayMessage(config.macros.upload.messages.backupFileStored.format(\n [toBackupUrl]), toBackupUrl);\n }\n var log = new config.macros.upload.UploadLog();\n log.endUpload();\n store.setDirty(false);\n // erase local lock\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n BidiX.GroupAuthoring.lock.eraseLock();\n // change mtime with new mtime after upload\n var mtime = responseText.substr(responseText.indexOf("mtime:")+6);\n BidiX.GroupAuthoring.lock.mtime = mtime;\n }\n \n \n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n }\n );\n};\n\nconfig.macros.upload.uploadContent = function(content, storeUrl, toFilename, uploadDir, backupDir, \n username, password, callbackFn) {\n var boundary = "---------------------------"+"AaB03x"; \n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n if (window.netscape){\n try {\n if (document.location.toString().substr(0,4) != "http") {\n netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}\n }\n catch (e) {}\n } \n //DEBUG alert("user["+config.options.txtUploadUserName+"] password[" + config.options.pasUploadPassword + "]");\n // compose headers data\n var sheader = "";\n sheader += "--" + boundary + "\sr\snContent-disposition: form-data; name=\s"";\n sheader += config.macros.upload.formName +"\s"\sr\sn\sr\sn";\n sheader += "backupDir="+backupDir\n +";user=" + username \n +";password=" + password\n +";uploaddir=" + uploadDir;\n // add lock attributes to sheader\n if (window.BidiX && BidiX.GroupAuthoring && BidiX.GroupAuthoring.lock) {\n var l = BidiX.GroupAuthoring.lock.myLock;\n sheader += ";lockuser=" + l.user\n + ";mtime=" + l.mtime\n + ";locktime=" + l.locktime;\n }\n sheader += ";;\sr\sn"; \n sheader += "\sr\sn" + "--" + boundary + "\sr\sn";\n sheader += "Content-disposition: form-data; name=\s"userfile\s"; filename=\s""+toFilename+"\s"\sr\sn";\n sheader += "Content-Type: " + config.macros.upload.contentType + "\sr\sn";\n sheader += "Content-Length: " + content.length + "\sr\sn\sr\sn";\n // compose trailer data\n var strailer = new String();\n strailer = "\sr\sn--" + boundary + "--\sr\sn";\n //strailer = "--" + boundary + "--\sr\sn";\n var data;\n data = sheader + content + strailer;\n //request.open("POST", storeUrl, true, username, password);\n try {\n request.open("POST", storeUrl, true); \n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if (request.status == 200)\n callbackFn(request.responseText);\n else\n alert(config.macros.upload.messages.errorUploadingContent + "\snStatus: "+request.status.statusText);\n }\n };\n request.setRequestHeader("Content-Length",data.length);\n request.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);\n request.send(data); \n};\n\n\nconfig.macros.upload.download = function(uploadUrl, uploadToFilename, uploadDir, uploadBackupDir, \n username, password) {\n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n try {\n if (uploadUrl.substr(0,4) == "http") {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");\n }\n else {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n }\n } catch (e) { }\n //request.open("GET", document.location.toString(), true, username, password);\n try {\n request.open("GET", document.location.toString(), true);\n }\n catch(e) {\n alert(config.macros.upload.messages.crossDomain + "\snError:" +e);\n exit;\n }\n \n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if(request.status == 200) {\n config.macros.upload.uploadChangesFrom(request.responseText, uploadUrl, \n uploadToFilename, uploadDir, uploadBackupDir, username, password);\n }\n else\n alert(config.macros.upload.messages.errorDownloading.format(\n [document.location.toString()]) + "\snStatus: "+request.status.statusText);\n }\n };\n request.send(null);\n};\n\n//}}}\n////===\n\n////+++!![Initializations]\n\n//{{{\nconfig.lib.options.init('txtUploadStoreUrl','store.php');\nconfig.lib.options.init('txtUploadFilename','');\nconfig.lib.options.init('txtUploadDir','');\nconfig.lib.options.init('txtUploadBackupDir','');\nconfig.lib.options.init('txtUploadUserName',config.options.txtUserName);\nconfig.lib.options.init('pasUploadPassword','');\nsetStylesheet(\n ".pasOptionInput {width: 11em;}\sn"+\n ".txtOptionInput.txtUploadStoreUrl {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadFilename {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadDir {width: 25em;}\sn"+\n ".txtOptionInput.txtUploadBackupDir {width: 25em;}\sn"+\n "",\n "UploadOptionsStyles");\nconfig.shadowTiddlers.UploadDoc = "[[Full Documentation|http://tiddlywiki.bidix.info/l#UploadDoc ]]\sn"; \nconfig.options.chkAutoSave = false; saveOptionCookie('chkAutoSave');\n\n//}}}\n////===\n\n////+++!![Core Hijacking]\n\n//{{{\nconfig.macros.saveChanges.label_orig_UploadPlugin = config.macros.saveChanges.label;\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\n\nconfig.macros.saveChanges.handler_orig_UploadPlugin = config.macros.saveChanges.handler;\n\nconfig.macros.saveChanges.handler = function(place)\n{\n if ((!readOnly) && (document.location.toString().substr(0,4) != "http"))\n createTiddlyButton(place,this.label,this.prompt,this.onClick,null,null,this.accessKey);\n};\n\n//}}}\n////===\n
<!--{{{-->\n<div style='font-size: large; font-weight: bold; margin-bottom:1ex;' macro='view title'></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class='viewer topbutton' macro='top'></div>\n<br><br>\n<div class='viewer' macro='navigation tiddlers:{{store.getTiddlerText("PresentationIndex").readBracketedList()}}}'></div>\n<div class='tagClear'></div>\n<!--}}}-->
Warwick University has been running a blogging server, Warwick Blogs (http://blogs.warwick.ac.uk), for all its students, since October 2004, and it seems to be well used. Warwick recommends use of blogs by students, regardless of their field of study, to “find their “authorial voice” and “personal prose style”. It goes on: “Blogs make it simple for anyone at Warwick to have their own web presence. We've always offered students their own web home page, but only the small fraction of students who know how to make a web site from scratch use this facility. We'd like everyone who wants a web presence to be able to have one, regardless of technical expertise” ([[Warwick Blogs FAQ, 2006|References]]). The results make intriguing reading - a fascinating collection of personal experiences of student life on any date one cares to choose.\n\nAs John Dale, Warwick's IT Manager, explained in the Guardian article, [[Just do it... blog it!|http://technology.guardian.co.uk/online/story/0,3605,1476175,00.html]] (The Guardian, 5 May 2006) , a great deal of thought went into designing the system to meet the university's requirements. One oft-repeated reservation about this sort of exercise is that it is too much dominated by inconsequential student chatter - boy/girlfriend troubles, pop music, sport - to the potential detriment of a university's academic reputation. This bias may be further exaggerated by the fact that those with more worthy uses - academic research groups or student societies - may choose to limit access to their blogs. Yet it's hard to see why this is more of a concern than many better-established features of campus life - Student Union activities, campus newspapers, radio stations, notice boards - which many would see as positive evidence of thriving activity - social and intellectual; good, bad and ugly - and Warwick Blogs is no different. It's easy to find examples of sophisticated, playful, creative writing (e.g. "[[A Snort Story|http://blogs.warwick.ac.uk/nataliebarton/entry/a_snort_story/]]" on Natalie Barton's Blog) or measured, thoughtful, articulate discussion (e.g. "[[Philosophy Of Software|http://blogs.warwick.ac.uk/tretout/entry/philosophy_of_software/]]" on Tim Retout's Blog), that convince me that Warwick has achieved something of great and lasting value.\n\n<html><iframe name="iframe1" style="width: 100%; height: 60ex; font-size: 80%;" src="http://blogs.warwick.ac.uk/nataliebarton/entry/a_snort_story/" title="Natalie Barton's Blog at Warwick"/></html>//A Snort Story by Natalie Barton, on Warwick Blogs//
Rebecca Blood ([[2000|References]]) observed that, originally, "weblogs could only be created by people who already knew how to make a website", and we have seen that much the same goes for the kind of encyclopaedic, hypertextual undertaking typified by The Decameron Web and its ilk. Even though the success of the World Wide Web was driven by the relative simplicity and cheapness of creating web pages using HTML, anyone who has tried it knows the complexity of managing large-scale, multi-authored sets of web documents. Despite originating in that resolutely "Web 1.0" environment ^^[[2|Notes]]^^, wikis and blogs represent a different way of engaging with the Web, and their potential usefulness is further enhanced by three other features that put the ultimate stamp of "Web 2.0" on these applications:\n\n''Comments/discussions''. In addition to making it easy to edit wiki pages or blog posts, most blogging software also provides facilities for readers to add their own comments to posts, while many wiki applications allow users (readers and authors) to discuss particular pages or sections. The association of discussions directly with the pages or posts to which they relate offers much stronger context and immediacy than if a completely separate discussion board, listserv, or newsgroup were used. \n\n''Tagging.'' Many Web 2.0 applications provide features for users to "tag" with keywords the content they create (and sometimes others' content too). This allows users to easily create loose subsets, groups or categories within their online materials. This approach has come to be known as "folksonomy", and is much more flexible than more traditional methods of formal, hierarchical arrangement and taxonomic systems, that tend to fall into disuse unless under the constant supervision and support of records managers, librarians, archivists). In addition, tags can be used for searching or association of resources among a group of users. \n\nBy way of a simple example, at last year's ~DSpace User Group (DSUG) in Norway, delegates, including myself, agreed to post their photos on photo-blogging service Flickr, and tag them with the keyword "dspacebergen2006". These photos can all be retrieved using the self-explanatory URL: http://www.flickr.com/photos/tags/dspacebergen2006. Similarly, links to relevant web resources were posted to social bookmarking site, Del.icio.us, using the same tag, and similarly retrievable, at http://del.icio.us/tag/dspacebergen2006. (This latter exercise was not as conspicuously successful as the photo blogging; nevertheless both demonstrate how an ad hoc online, information-sharing community can be created with minimal effort.) \n\n<html><iframe style="width: 100%; height: 60ex; font-size: 80%;" src="http://www.flickr.com/photos/tags/dspacebergen2006" title="dspacebergen2006: a shared tag on Flickr"/></html>//dspacebergen2006: a shared tag on Flickr//\n\n''News feeds.'' News feeds are little more than a kind of electronic ticker-tape - a simple XML file, containing core data and metadata (date, title, descripton, tags) for each sequential entry. Encoded using the RSS standard, they are easy for software to create, often as a side-effect of creating blog entries, and they are also easy for software to read. The variety of uses this simple data format can be put to seems boundless. Readers of blogs can "subscribe" to the feeds, and be notified of new entries as they are posted (many find this preferable to email notifications in this age of inboxes bursting with spam). News feeds can be generated for the comments on blog entries, so blog authors and readers can easily track comments across a blog, as soon as they are posted. Wiki users can subscribe to feeds notifying them of changes to pages or sections within the wiki. RSS feeds drive dynamic activity and interactivity behind photo-blogs such as Flickr, audio and video blogs (i.e. podcasting), and can even be used to feed live, dynamic, customised search results from commercial systems, like Ebay, media systems, like the BBC, or academic information systems, like libraries and repositiories. If I were keen to know if any further photos from DSUG in Bergen were being posted on Flickr, I can continue to monitor (subscribe to) the [[Flickr newsfeed for the "dspacebergen2006" tag|http://api.flickr.com/services/feeds/photos_public.gne?tags=dspacebergen2006&amp;format=rss_200" ]]. In many ways RSS is the real driving force and work-horse of Web 2.0, much as HTML was to the original growth of the Web. \n\nThe result is increasingly a World Wide Web where interactivity is almost mandatory. Tim O'Reilly ([[2006|References]]) sums up the differences in a small comparative table, of which the following items are sufficient for our purposes here:\n\n<html>\n<table>\n<tr><th>Web 1.0</th><th>Web 2.0</th></tr>\n<tr><td>Britannica Online</td><td>Wikipedia</td></tr>\n<tr><td>personal websites</td><td>blogging</td></tr>\n<tr><td>screen scraping</td><td>web services</td></tr>\n<tr><td>publishing</td><td>participation</td></tr>\n<tr><td>content management systems</td><td>wikis</td></tr>\n<tr><td>directories (taxonomy)</td><td>tagging ("folksonomy")</td></tr>\n</table>\n</html>\nWhile, inevitably, many skeptics sense something of the emperor’s new clothes about Web 2.0, it nevertheless represents a well-articulated shift in wider attitudes and approaches to using the web, and, significantly, one that has reached a critical mass of acceptance. Unsurprisingly, this acceptance is most notable among the latest generations of school and university students, digital natives already accustomed to features of sites like ~MySpace or Flickr that are driven by the technologies and paradigms of Web 2.0. The result is undeniably "a move from the solitary to the social, from finished products to processes and ongoing, many-to-many communication" ([[Walker, 2006|References]]).
This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://web2education.tiddlyspot.com/controlpanel]] (your control panel username is //web2education//).\n<<tiddler tiddlyspotControls>>\n@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the "save to web" button in the column on the right.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click "upload" and your ~TiddlyWiki will be saved back to tiddlyspot.com.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions.
This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].\n\n@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions.
The origins and mythology of Wikis are widely recorded on the web, and many implementations of the model are now available. The most significant feature of any instance of a wiki - a "wiki web" - is that it enables a user to effectively create editable web-pages, and, moreover, create further web pages easily, without recourse to the web server's file system, file transfer programs, or any separate text or web page editor. In effect, a wiki provides simple tools for one or more users to create a complete hypertext, whether self-contained or linked to the wider Web.\n\nIn many ways, wikis fulfil the original vision of Tim ~Berners-Lee for the World Wide Web. Web pages were supposed not only to be easily retrievable, but easily editable as well. (The Hypertext Transfer Protocol defines both GET and PUT functions, but the latter is rarely enabled in standard web server configurations, leaving users to manage their files manually using File Transfer Protocol (FTP) or via a web editing application, such as Front Page or Dreamweaver.) As do blogs, a key feature of wikis is that they support the user in focusing on the content they are creating, automating key tasks (like tracking the date and time of update, creating index and menu items) and relieving all but the adminstrator of responsibility for the overall look and feel of the site.\n\nWikipedia is the most widely known, and probably the most ambitious, application of the wiki model, but wikis can be useful on a much smaller scale, to build, collaboratively, a hypertext or network of documents and web pages. In both real and virtual classrooms, wikis have a number of potentially exciting applications: for hypertext/web essays and writing projects, particularly those encouraging collaboration among students. There are some practical pitfalls to be avoided, for example: “the age-old issue of one student doing all the work on a collaborative project. Teachers should closely watch changes to the wiki (through the wiki history feature) to get a clear understanding of student contributions” ([[Jakes 2006|References]]).
<<br>>If you have problems accessing this [[TiddlyWiki|http://www.tiddlywiki.com]], please use the alternative [[HTML version|http://docs.google.com/View?docid=dtpm2kv_22zpnx2r]] or [[PDF version|http://www.relocution.com/docs/web2education.pdf]] instead.
| tiddlyspot password:|<<option pasUploadPassword>>|\n| site management:|<<upload http://web2education.tiddlyspot.com/store.cgi index.html . . web2education>>//(requires tiddlyspot password)//<<br>>[[control panel|http://web2education.tiddlyspot.com/controlpanel]], [[download (go offline)|http://web2education.tiddlyspot.com/download]]|\n| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[announcements|http://announce.tiddlyspot.com/]], [[blog|http://tiddlyspot.com/blog/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|