 All right, this is the J Wickey interactive visualization tool that Bob, Devin McCormick and Raul Miller and I have been working on the last few weeks. The idea here is to provide a very fast fluid navigation and search mechanism, not just for the J Wickey, but also for the J forums. And the approach that we take is a two part user interface. On the left, we have navigation of the structure of the wiki and the forums, and I'll go into that in some detail. And on the right, we have a web browser a web view that allows us to load individual pages. The left side the navigation is pretty much instantaneous the right side the navigation has to wait for pages to load from a remote server and we'll see a lot of that. So let's begin with NuVoc. This is a compressed representation of NuVoc the ideas to fit it all into one small part of the display. Hovering on a glyph shows you the valence links for that glyph hovering on a balance link will load the corresponding page. Immediately below NuVoc are the ancillary pages that show up in the conventional representation of NuVoc which is shown on the right this is just the standard NuVoc web page which of course you have to scroll to see all of hovering on one of the blue labels will load the corresponding page on the right and this is a typical interaction for this user interface. Almost all of the categories in the table of contents on the left wind up showing at least some blue links, which represent web pages that you can load just by hovering. One of the more interesting sections is interfaces interfaces is a little more complicated than ancillary pages it's got subcategories and because the all the pages and the subcategories will fit onto a single single display they're actually flattened out. So if you load QT ID for example that shows you the category page from the wiki J Android is the J Android category page from the wiki and then underneath each of those subcategories there are pages which can be loaded. Frameworks is more complicated still. So it's got so many pages that we can't show a flat representation so instead we show the subcategories so add on for example which in turn has sub subcategories for API arc convert and so on there's a databases category which has JD SQL SQLite and so on labs open GL, and so on. And then the idea is that you'll get a set of blue links for each of these categories and the blue links can be hovered on to load up to load up the corresponding pages. In addition to Bob's category hierarchy which is mostly what we're navigating here. We've got several hundred free floating tags. These are categories that don't participate in a tree. They're exactly the same as the other categories they just don't have a hierarchical relationship with one another so we think of them as tags. They're arbitrarily divided into groups of 15 so each of these category names or group names with an ellipsis after it has a corresponding set of categories underneath it. So these categories have one or two pages in them. So it's not an awful lot going on. An exception is under DHM which is Devon McCormick. There's a category development of the J wiki that has a lot of pages more than can fit in a straight ahead and flat representation so in this case we have compressed columns. If you move to the right the columns the corresponding column decompresses and can load can load the pages. There's also a bookmarks mechanism so I've got a few bookmarks here that I've saved hovering will load them. This is a set of the most recent pages that I visited. If I bookmark a page it shows up and I can load it up shows up in the bookmarks section having bookmarked a page I can unbookmark it and it will disappear from the bookmarks section. The other major part of the table of contents is not does not reflect the wiki but rather reflects the forums and the interface here is a little bit different so here's the J programming forum J general J beta and so on all the way down to J database. The idea here is to navigate by time. So this is a year navigator for J programming. And for each year I can pick a month. And for each month. I've got a set of threads that show up in the in the archive the forum archive, selecting a thread. It gives me a list of all the people who have contributed to that thread and hovering on a person's name shows me that corresponding host. The other thing I want to show is search. So searches that are persistent across sessions I've got one here where I was looking into testing add ons. Results from the wiki again you hover to load the page there's also results from the J general. Quite a lot of results from J programming so much that it gets a little pathological, probably not helpful on the upper limit on search results is 5000 I will request any more than that 5000 maybe a little bit too high, but I can do additional searches so I can say for example that I'm interested in the attic transpose that search will appear be executed and again I get a bunch of results in the wiki even more in J programming, a few in J general, and even a few in the forum forum that was retired some time ago but its contents are folded into the archive. All of this structure is actually kept in a SQLite database in temp. And the idea is it's got half a dozen tables in it reflecting structure does not have any HTML and all the HTML as I said is loaded dynamically from the server as you navigate. One of the tables in the database is a log table that we use for debugging. I'll just mention this briefly. One of the problems with errors in the field bugs in the field is that they can be very hard to read for the programmer to reproduce and the approach that we took here is there's a log table in the database that's normally unused. But you can turn on its use by clicking the debug log check box. And at that point very granular logging starts to take place so much so that on a lower powered machine it actually significantly slows down the user experience. So if you are having a problem and you can reproduce it and it's actually just happened Bob very kindly sent me a bug report in which he turned on logging reproduce the bug and then simply attached the database file to an email and sent it to me and I was reviewing that just before this session. And that is the story.