Source: site.view [edit]
Function name: blog
Arguments:
Description: A blog by the WubHub team
Page type: webl
Render function:   blogRender
Module: site

Page source:

[. `title` = `WubHub Blog`, `description` = `A Blog by WubHub Developers`, `editname` = `site.blog`, `entries` = [[. `title` = `JavaScript as an alternate to WebL`, `content` = `
We have now integrated JavaScript (Rhino) as an alternative to WebL for your programming commands.
Enjoy!
`, `postedby` = `acheyer`, `when` = `7/19/13 2:26 PM`, `id` = 11, `image` = `<img src="http://www.designdownloader.com/item/pngs/Rhino_t005/Rhino_t005-20120615175400-00001.png">` .], [. `title` = `Code Mirror Editor`, `content` = `Our old text-box editor has been massively upgraded to use the CodeMirror programmer's editor.  This offers syntax highlighting, improved search, and a number of other professional features.
`, `postedby` = `acheyer`, `when` = `7/19/13 2:20 PM`, `id` = 10 .], [. `title` = `New Feature: Easier Blog Editing`, `content` = `Two new commands "newBlog(blogName)" and "addEntryToBlog(blogname)" make it easier to create and edit blog content. These commands display forms to let you enter key information, using the form-->wubhub command functionality. addEntryToBlog does lots of the little things for you, like calculating the current date, the next entry id number, etc. 
<p>
Note: blog entries may now have an image. The image may be specified either as a URL to an image, or if you want to refine the size, an HTML string representing an &lt;img&gt; tag. 
`, `postedby` = `acheyer`, `when` = `8/5/06 12:41 AM`, `id` = 9, `image` = `<img src="http://www.common.org.pl/iseries/images/stories/exclamation-mark.jpg">` .], [. `title` = `New Feature: Caching page results`, `content` = `Most WubHub scripts return results quickly, but some commands that query many web sources (e.g. <a href="/webl/WubHub_DoIt?cmdline=cultureBonk(sf)">cultureBonk(sf)</a>)or combine many commands (e.g., <a href="/webl/WubHub_DoIt?cmdline=runAllUnitTests">runAllUnitTests</a>) may take a while to run.  To improve performance, we have implemented caching of command results.  Here's how it works:
<ul>
   <li> Commands with checkbox "Cache results" will persist their results for each unique input they receive.  If executed again with arguments it has seen before, the saved result is returned immediately rather than running the command.  This caching is GLOBAL across all users, so use with care.
   <li> If you fill out an "Expiration Date", cached results will expire.
   <li> You may request that the system automatically refresh values at a certain rate (e.g. 1D = every day, 1H = every hour, or combinations such as "3W 2H"). The refresh threads run as as the "anonymous" user, so this will only work for functions accessible when you are logged out (e.g. in module "global").
   <li> To clear the cache for a function, you can execute "clearCache(funcName)"
</ul>
Result caching should greatly improve the response times for more complex WubHub applications.  Enjoy!!!
`, `postedby` = `acheyer`, `when` = `8/5/06 12:26 AM`, `id` = 8, `image` = `<img src="http://icons.iconseeker.com/png/64/metalic-cd/blue-vista-metallic-cd.png">` .], [. `title` = `New Feature: WubHub Groups!`, `content` = `Groups are modules where a number of people can get together to work on a project or application.  When you create or join a group, you can edit all functions belonging to that group, and the group is added to your default execution path.  You may belong to more than one group at a time.

<ul>
  <li> To create a new group, use "createGroup"
  <li> To invite someone to a group you belong to, use "groupInvite(NameOfGroup,NumTokens)"
  <li> To signup for a group that someone has invited you to join, use "groupSignup(NameOfGroup)"
  <li> To see all groups registered in WubHub, use "groups"
  <li> To see all members belonging to a group, use "groupMembers(NameOfGroup)"

</ul>
Groups are just getting started, but one group <a href="/webl/WubHub_DoIt?cmdline=ajaxGroup.profile">ajaxGroup</a> has already contributed some AJAX-based portal management functions to the WubHub community.
<p>
Get involved!  Start (or join) a Group!
`, `postedby` = `acheyer`, `when` = `8/4/06 8:50 PM`, `id` = 7, `image` = `<img src="http://www.krumpkrump.com/components/com_community/assets/group_thumb.png">` .], [. `title` = `Alternatives to WebL`, `postedby` = `levy`, `when` = `03/01/06 03:30:00 PM`, `id` = 6, `content` = `Just in case anyone is wondering what new is happening
with WubHub:  It seems the biggest issue with it as it stands is the use of
WebL.  WebL has been a nice prototyping platform for this system, but
no one wants to take the time to learn an obscure language.
So I've been working with a new framework that doesn't require WebL.
Unfortunately, this means rewriting a lot, as the entire system is
in WebL, and finding replacements for tools that come for free in WebL.
Do drop me a note if you have any ideas for scripting features you'd
like to WubHub to provide.
<p>
But don't let this stop you from writing new functions!
Any new language support should be at least as powerful as WebL,
and having more examples in WebL will help the process of evaluating
what the new platform needs.` .], [. `title` = `Bookmarks and Bookmarklets`, `postedby` = `acheyer`, `when` = `01/06/06 09:48:00 AM`, `id` = 5, `content` = `I've recently refactored how edit works, removing it from the WubHub kernel (now it's even tinier) and making it a full-fledged editable/viewable WubHub function.  As a first demonstrator, I've added a command bookmark(title, url), which lets you create del.icio.us-style, tagged, sharable, url bookmarks, enhanced by WubHub's command-line (you can make up a quick commandname to access the bookmark, and you can even add WubHub arguments that insert themselves into the URL). <p>
   For a fast way to add your current webpage as a WubHub bookmark, add the following <a href="http://en.wikipedia.org/wiki/Bookmarklet">bookmarklet</a> to your browser's Favorites menu by copying the following URL:
<UL>
<small>
   <a href="javascript:function p(){window.location = 'http://www.wubhub.com:4110/webl/WubHub_DoIt?cmdline=bookmark("' + document.title+'",' + document.location.href+')'} p()">javascript:function p(){window.location = 'http://www.wubhub.com:4110/webl/WubHub_DoIt?cmdline=bookmark("'+document.title + '",' + document.location.href + ')'} p()</a>
</small>
</UL>
When you click on the favorite, your current page will be sent to WubHub's bookmark() command.
` .], [. `title` = `Command Syntaxes`, `postedby` = `acheyer`, `when` = `01/06/06 05:12:00 AM`, `id` = 4, `content` = `I spent some time rewriting the command line parser.  Here are some new features:
<UL>
   <LI> Instead of a parenthesis syntax  <code>cmd(arg1, arg2)</code>, you can use a ':', as in <code>cmd: arg1, arg2</code>.  Saves a character typed!</LI>
   <LI> You can now pass functions to other functions.  As an example, you can pass the results of chartDemo(demoNum), which returns a WebL object containing chart data, to the chart(data) function, using the call <a href="WubHub_DoIt?cmdline=chart(chartDemo(3))">chart(chartDemo(3))</a>.  Functions with no arguments are distinguished from string arguments if they have "(" or a ":", as in <code>lsRender: ls()</code>.  If you want to pass a string argument containing a ':' or paren, you must quote the string.</LI>
   <LI> Write your own syntaxes: by editing the command <a href="WubHub_DoIt?cmdline=view(cmdlineRewrite)">cmdlineRewrite(cmdline)</a>, you have a hook to change whatever the user types into a valid WubHub command.</LI>
</UL>
` .], [. `title` = `Group Thoughts`, `postedby` = `acheyer`, `when` = `12/24/05 04:12:00 PM`, `id` = 3, `content` = `I posted a <a href="WubHub_DoIt?cmdline=global.groupIdeas">proposal</a> on how groups should work in WubHub.  Comments or questions welcome!  (Quick, before I start coding... ;-)` .], [. `title` = `Activity Logs`, `postedby` = `acheyer`, `when` = `12/23/05 05:20:00 AM`, `id` = 2, `content` = `WubHub offers simple version control of all edits to WubHub content, and we will soon move to a real version control-backed data store.  However, our current system doesn't ask a user to "commit" function changes and provide a log message during the commit, so it's hard to know what's changed, new, etc.  I'd like to propose a convention that developers create a page in their home directory and call it something like 'activityLog'; here you can indicate new "check-ins" or changes that you'd like other developers to know about.  If we mark our pages with an "activitylog" flag, we can easily write an aggregator command that grabs them all into one stream to subscribe to. <p></p>
Must be logged in for these to work:<ul>
View my log as an example:  <a href="WubHub_DoIt?cmdline=view(acheyer.activityLog)">view(acheyer.activityLog)</a> <br></br>
See the aggregated logs for all developers:  <a href="WubHub_DoIt?cmdline=activityLogs">activityLogs</a></ul>
      ` .], [. `title` = `WubHub Launch`, `postedby` = `acheyer`, `when` = `12/22/05 09:15:00 PM`, `id` = 1, `content` = `Today was the first public showing of WubHub, to a select group
      of <a href="http://www.sri.com" target="_blank">SRI</a> and 
      external invitees.  After an in-depth walkthrough of the current
      WubHub capabilities, some stayed around for another hour talking about
      ideas, future possibilities, and general improvements and use cases for
      WubHub.  We're hoping that some sign up, contribute ideas, and perhaps
      a few get down and dirty and try to create some new commands.  Our first goal
      is to get a sense of whether the system is usable, compelling, useful, and
      addicting.  If not, is there something we could add to make it so?  Feel
      free to contribute to the <a href="/webl/WubHub_DoIt?cmdline=ideas">ideas</a>
      page!` .]] .]