Working with ODBC databases on a Mac
The ODBC Administrator If you do much work with databases on a PC you’ll be familiar with the ODBC Data Source control panel in Windows. But where is the corresponding control panel on a Mac?
Continue readingSolving technology problems, one at a time
The ODBC Administrator If you do much work with databases on a PC you’ll be familiar with the ODBC Data Source control panel in Windows. But where is the corresponding control panel on a Mac?
Continue readingThere are times when you may find it necessary to detach hundreds of pages from their Dreamweaver templates. Unfortunately, within the Dreamweaver interface the only way to detach multiple files from their templates is to open each one, then select “Modify:Templates:Detach from Template” from the menu.
A better way to go is to use a simple “grep” search in BBEdit:
A drupal blog site I set up for a friend has an RSS link in the footer. Clicking it brought up a 404 page. I checked the Drupal.org forums, but the typical reason given for
Continue readingThe out-of the-box Likert Scale question created by Perception is really just a slightly modified multiple choice question. The choices are arranged vertically, as shown in the example screen shot below.
I prefer Likert Scale choices to be displayed horizontally as shown in the image below.
Continue readingAlthough I don’t use Adobe GoLive much for day-to-day work, it has certain features that are hard to find anywhere else. One of them is a rather impressive Javascript authoring environment. It gives contextual hints,
Continue readingdotProject is the most promising open-source (and free) project management software that I’ve found so far.
There are many small changes that needed to be made to the dotProject interface in order for it to work for my team, though. Chief among them was that all projects be numbered. The “short name” field just wasn’t sufficient to uniquely identify projects. We use project numbers in our workflow, in documents, email, and file systems. The number needs to combine the month and year the project was started with a 4-digit unique number.
I am happy to say that this site has been updated to the latest version of MoveableType with no serious problems at all.
Installation
My old templates all worked. The old database converted without any issues. Overall the basic installation took about 45 minutes, with me being extra careful and backing things up several ways.
Comments are back on!
The new comment features are WONDERFUL. I have turned commenting back ON and someone has already made a genuine comment! I feel like awarding him a prize! Of course there have also been about 150 junk comments, but they were easily disposed of.
While testing a javascript-heavy frameset-based learning module, users complained bitterly about the white frameset background flashing at them before each page loaded, particularly in IE. A related issue was that graphics were not preloading properly
Continue readingIt’s easy to export Powerpoint presentations to the web, but they aren’t automatically scorm compatible. To add simple scorm capability to your web-export, do the following:
This will add a button that will allow the user to mark the sco complete.
1. Add this to the head section of outline.htm or the final slide.
<script type=”text/javascript” language=”javascript” name=”mm_scormRTI” >
<!– Inserted by:
// SCORM Runtime Wrapper
// version 1.2.6 09/09/02
// Copyright 2000, 2001, 2002 Macromedia, Inc. All rights reserved.
// —————————————————-
// define global var as handle to API object
var mm_adl_API = null;
// mm_getAPI, which calls findAPI as needed
function mm_getAPI()
{
var myAPI = null;
var tries = 0, triesMax = 500;
while (tries < triesMax && myAPI == null)
{
window.status = ‘Looking for API object ‘ + tries + ‘/’ + triesMax;
myAPI = findAPI(window);
if (myAPI == null && typeof(window.parent) != ‘undefined’) myAPI = findAPI(window.parent)
if (myAPI == null && typeof(window.top) != ‘undefined’) myAPI = findAPI(window.top);
if (myAPI == null && typeof(window.opener) != ‘undefined’) if (window.opener != null && !window.opener.closed) myAPI = findAPI(window.opener);
tries++;
}
if (myAPI == null)
{
window.status = ‘API not found’;
alert(‘JavaScript Warning: API object not found in window or opener. (‘ + tries + ‘)’);
}
else
{
mm_adl_API = myAPI;
window.status = ‘API found’;
}
}
// returns LMS API object (or null if not found)
function findAPI(win)
{
// look in this window
if (typeof(win) != ‘undefined’ ? typeof(win.API) != ‘undefined’ : false)
{
if (win.API != null ) return win.API;
}
// look in this window’s frameset kin (except opener)
if (win.frames.length > 0) for (var i = 0 ; i < win.frames.length ; i++);
{
if (typeof(win.frames[i]) != ‘undefined’ ? typeof(win.frames[i].API) != ‘undefined’ : false)
{
if (win.frames[i].API != null) return win.frames[i].API;
}
}
return null;
}
// call LMSInitialize()
function mm_adlOnload()
{
if (mm_adl_API != null)
{
mm_adl_API.LMSInitialize(“”);
// set status
mm_adl_API.LMSSetValue(“cmi.core.lesson_status”, “incomplete”);
}
}
// call LMSFinish()
function mm_adlOnunload()
{
if (mm_adl_API != null)
{
// set status
mm_adl_API.LMSSetValue(“cmi.core.lesson_status”, “completed”);
mm_adl_API.LMSCommit(“”);
mm_adl_API.LMSFinish(“”);
}
}
// get the API
mm_getAPI();
// –>
</script>
The best browser to use to check javascript errors is Firefox, hands down. Other browsers have some error reporting, but none give you anywhere near the detailed information as Firebug, an addon to Firefox. The extensions available allow you to snoop into every aspect of your page, and into the communication between page and server.
You will need to get several Firefox extensions:
Firebug
Firebug is the one extension I can’t live without. It shows errors in javascript, css, allows you to inspect the HTML source, computed style, events, etc.