Come join the murder and the end of college

Beatty peered at the smoke pattern he put out on the air. “Picture it. Nineteenth-century man with his horses, dogs, carts, slow motion. Then, in the twentieth century, speed up your camera. Books cut shorter. Condensations. Digests, Tabloids. Everything boils down the gag, the snap ending.”

“Snap ending.” Mildred nodded.

“Classics cut to fit fifteen-minute radio shows, then cut again to fill a two-minute book column, winding up at last as ten- or twelve- line dictionary resume. I exaggerate of course. The dictionaries were for reference. But many were those whose sole knowledge of Hamlet (you know the title certainly, Montag; it is probably only a faint rumor of a title to you, Mrs. Montag), whose sole knowledge, as I say, was a one-page digest in a book that claimed: now at last you can read all the classics; keep up with your neighbors. ([Or a show called Sons of Anarchy.] Do you see? Out of the nursery into the college and back to the nursery; there’s your intellectual for the past five centuries or more.”

Mildred arose and began to move the room, picking things up and putting them down. Beatty  ignored her and continued:

“Speed up the film, Montag, quick. Click, Pic, Look, Eye, Now, Flick, Here, Uh! Bang! Smack Wallop, Bing, Bong, Boom! Digest-digests, digest-digest-digests. Politics? One column, two sentences, a headline! Then in mid-air, all vanishes! Whirl man’s mind around so fast under the pumping hands of publishers, exploiters, broadcasters that the centrifuge flings off all unnecessary, time-wasting thought!

“School is shortened, discipline relaxed, philosophies, histories, languages dropped, English and spelling gradually neglected, finally almost completely ignored. Life is immediate, the job counts, pleasure lies all about after work. Why learn anything save pressing buttons, pulling switches, fixing nuts and bolts?”

Ray Bradbury, Farenheit 451

I’m not sure what else there is to say. The edtech dream is real, it’s coming, but it is not new. Only the specifics are new, some of which are pretty amazing, but there is risk. We are still in the nursery of edtech, and there are lions in the veldt. And there are tygers. Here.

But the Harlequin was told to repent, and he did. But three minutes were lost.

Update to the Embedded Challenge

Turns out Jon’s problem wasn’t nearly that difficult..once I understood it.

Specifically, his challenge is with and the Tableau share links. Once I played around wit both sites and did a quick search to verify my suspicions, it was a piece of cake. allows use of iframes to display content from other servers. While it does allow access to raw HTML, it does not allow inclusion of script tags, so you are left with using the iframe tool and source URL.  When I applied a critical eye to the two share options, I noted:

<script type='text/javascript' src=''></script>
<div class='tableauPlaceholder' style='width: 800px; height: 700px;'>
<noscript><a href=''>
<img alt='Dashboard 3 ' src='' style='border: none' /></a></noscript>




I noted the parameter showVizHome was present in the embed code, but not the URL. A quick search finds this helpful page which allows Jon and anyone else t resolve the problem by adding &:showVizHome=no to the end of URL and problem is solved.

An Embedded Challenge

It started with a tweet:

Okay, this actually seemed pretty simple and straightforward to me, and I said as much. I don’t use Tableau, I use LogiAnalytics, but a javascript embed string is a javascript embed string. A string is a string. Isn’t that the basis of string theory?

Plus, I had already done something similar to build a very light presentation engine using web pages and Logi reports. We had built two different solutions.

The specs are these:

1) A way to use the embed code for LogiAnaylitics or Tableau in a presentation, typically PowerPoint. (My first thought was to use MS Access since it has a web browser object available in the forms toolset.)

2) “Share links” were not an adequate solution because they pull the entire page, not just the report/visualization. (This doesn’t actually apply to Logi. Logi is a BI engine based in .Net and the resulting in XML files are processed through a server application overlaying IIS, and it is fed with a report definition and all requisite parameters processed as a URL querystring. ie )

3) It has to be easy to use, not requiring any scripting – by the user.

A quick web search turns up Live Web which is promising. A little more searching and one finds this is not the first attempt to address the challenge – here is a step-by-step approach that may meet Jon’s needs, except he would need to code it. It also uses the links instead of the embed code, so it probably doesn’t give exactly what he wants. But…why do this? Since I am not a Tableau user, why do I care?

As I said, there are similarities in using Logi and Tableau, and there is something powerful about doing a data-heavy presentation without relying on either static images or exiting to a web browser. This is why I created a web-based presentation model to give presentations off the SCHEV Research web site using a defined series of live pages with predetermined parameters for the default views of each page. We built the Pathways model to focus on delivering sequential Logi reports that needed only parameter changes (handle via global variable settings) to be updated while having the flexibility of using existing report objects or creating new objects that could be used elsewhere.  The slick thing about the embed code is being able to frame around an active BI object and explore the data while in the midst of a presentation without losing the rhythm of progress forward.

I downloaded LiveWeb after my first attempts with MS Access 2013 failed. I kept running into an inability to load the web browser object….let me explain the problem with 2013.

I isolated the project into two parts, storage and display. Any project that comes along, what’s the first thing to be done? Why, build a database! Actually, all that is needed is a table and this could be in Excel. Of course, it could also be in just a text file, but I am database guy. So, I built a table to hold the embed codes and associate them with username and a presentation name, so that multiple users could use this tool for multiple presentations.

I then created a form in Access and added the web browser control to it and it failed. I did some research and found registry settings that I would need to change in Windows to make this work and then tried again with Access  2010 since the web pages  I had found suggested it was a security change in 2013 creating the problem and I wanted to keep the solution as simple as possible. So, I tried 2010 and could install the browser control. Unfortunately, it was limited in that it has to be passed a URL, not just HTML code. The easiest solution would be something that allows passing something like this:

<HTML><BODY><div id="divFA19_Report" data-applicationUrl="" data-report="FA19_Report" data-autoSizing="height" data-linkParams="{'lbUNITID':'XXXALL', 'lbFTEGRP':'1'}" ></DIV></BODY></HTML>


<HTML><BODY><script type='text/javascript' src=''></script><div class='tableauPlaceholder' style='width: 1024px; height: 694px;'><noscript><a href=''><img alt='Dashboard 1 ' src='' style='border: none' /></a></noscript>  </div></BODY></HTML>

Even better would be to lose the need to wrap the code with the HTML and BODY tags.

I created a model that did exactly that. My approach is to coding is to take advantage of all sorts of tools I have available. One of which is that I have multiple web servers under my control and thus it is way easy to create a very simply Classic ASP page that received the embed code as a request variable (in the URL querystring), place it in the page, and execute it. Unfortunately, the Tableau code tends to exceed the limits that a number of browsers will allow for that, servers as well, as a good security measure. So, enter the database.

We have a table with codes. We simply need to access that, pull one row at a time, load it in the page, and execute the page and we are done. I moved the data to a table on SQL Server and created a simple stored procedure.

 [key] [int] IDENTITY(1,1) NOT NULL,
 [usrname] [varchar](50) NULL,
 [presentation_name] [varchar](50) NULL,
 [slide_title] [varchar](50) NULL,
 [slide_order] [int] NULL,
 [embed_code] [varchar](max) NULL,
 [embed_type] [varchar](50) NULL

The stored procedure is, as I said, quite simple:

ALTER proc [dbo].[sp_embed_slideshow] @UserNM as varchar(5), @prestitle as varchar(50), 
@slide as int
Select key, usrname, presentation_name, slide_title, slide_order, embed_code, embed_type 
from slideshow
where usrname=@userNM and presentation_name=@prestitle and slide_order=@slide

The next piece is a simple Classic ASP web page using VBScript:

<!--#INCLUDE VIRTUAL="/someconnection.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">
<html xmlns="">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<body bgcolor="#ffffff">
 cmdtext="exec sp_embed_slideshow '" & user_name & "','" & presentation_name & "'," & slide_num
 dim rget
 set rget =CreateObject("ADODB.Recordset") cmdtext, someconnection
 do while not rget.eof
response.write (embed_code)
<!--THIS IS FOR LOGIANALYTICS applications only-->
<script src="" type="text/Javascript"> </script>

Once I had downloaded LiveWeb and loaded into a presentation, all I had to was step through it’s wizard and load the following URLS:

These next links use code from Jon’s site:

Clearly, this is not the solution desired. It requires some programming skills (although all the real work is done and anything else is window-dressing or ease-of-use enhancements). It also requires access to a web server and database server.


One can create this in MS Access and then activate IIS (or install it if it is not already installed on your WIndows machine) and use your desktop or laptop for a local user. I don’t really recommend this approach as learning IIS 7 and above is an unnecessary pain for just this project. The alternative is to download UltiDeve Cassini. install it, create a data connection between Cassini and Access, use the ASP code above, and you’re off to the races!

Some night this week I will try to finish off the Access model for download for those that wish to play.

There are probably dozens of other ways to do this, perhaps one or two very easy ways that I missed. Maybe I will create a private service for institutional researchers to use for a very modest fee if there is interest.

I’m interested in any reactions or alternatives.

Will, this is the post I suggested you might want to share.

UPDATE: The needed solution was actually much simpler, once I understood the real problem.