Tuesday, June 17, 2008

SLA 2008: Technical Support Roundtable

After sleeping in more than I could ever justify, and taking a quick walkthrough of Seattle Public, I got the Convention Center for the Technical Support roundtable. This little unconference offered IT librarians a chance to share the latest projects, problems and workarounds. It was sparsely attended, but the folks there were very interesting and forward-thinking.

Some topics discussed:
  • Drupal
  • Firefox 3 (got my copy during the session)
  • Twitter
  • Windows Vista (have you downgraded yet?)
  • MS Office v. OpenOffice
  • Mobile device support
  • Video IM clients
  • Cloud computing
I'm looking forward to next year's meeting, which we can hopefully push a little more vigourously. I suggested a wiki page for the meeting, which would let attendees submit topics in advance. This would both advertise the meeting, and bring together experts and practitioners. It would into my desire for a whole-conference wiki very well, too.

After the session, I snagged some lunch (its been a good conference for free food), and sat down to sum up my last day or so. That would bring us to now.

Monday, June 16, 2008

SLA 2008: Information Professional: the New Private Investigator

Had lunch with the Second Life group, somewhat by accident, as I haven't been 'in world' for over a year. Interesting to hear some of their discussion on cutting edge architecture...

Also had more lunch in the IT Division Business Meeting. Cheesecake!

On to the next session:
Information Professional: The New Private Investigator, by Howard E. Trivers, Baker & Daniels

The presenter started with a jab at Second Life, which got a surge of applause. I fail to understand why the Second Life vs. Real Life joke keeps being funny. Yes, I can see that for many libraries, Second Life has nearly nothing to offer. Really, there are very few applications where geographically distant people need to meet in a 3D artificial world. However, there are possibilities out there that we haven't thought of, and its good to have folks experimenting with it. ::cuts rant short::

Back to the session. This really wasn't what I was hoping for, since I'm not willing to pay for search services as an individual. Plus, the person I want to find is far too old to have much of a footprint in the listed databases.

Some historical commercial databases: Lexis' P-TRAK, Westlaw's Information America, CBD Info, AutoTrack, Accurint.

Today: Accurint, ChoicePoint, LexisNexis, Westlaw, Loislaw, Intelius, Merlin, Locateplus

Some free public records search engines: searchsystems.net, brbpub.com

A free death index: ssdi.rootsweb.ancestry.com (must have gotten SS benefits to be listed).


After this session, I went back to my hotel and took a nap. I was back up for dinner (at Rock Bottom Brewery) and the IT division SciFi night. Some interesting discussion, but I really wasn't feeling the networking, so I ducked out early.

Its been strange to be at this conference for the third year in a row, but to have even less to talk about with colleagues and vendors. I'm not longer associated with URI, so I don't have coursework to supplement with current products and services. I'm not yet with NYU, so I don't know what they use, what they need and who I should network with. I've already learned about most of the kinds of technologies that I can think I'd be using, and there are few sessions on that kind of stuff this year anyway.

I have gotten some wonderful work done with Dave Ware on rescoping the Communications Section of the IT Division. His energy is infectious, and has really helped give me momentum. Thanks, Dave!

SLA 2008: Create your Screencast in a Flash

I made it to Seattle yesterday, after a delayed train trip from Kelso. After getting settled and catching up with some colleagues, I enjoyed a most interesting evening around and about, ranging from the top of the Space Needle down to the EMP and finally back to the conference's main hotel.

A nights sleep and a cup of real coffee (and an apple fritter!) has me ready to dive into my first day of courses. Below are my transcripts from the sessions I attended.

Create your Screencast in a Flash: Adobe Captivate, presented by Edward Metz, Systems Librarian at USACGSC.

The first question addressed by Edward was why, with so many options, his library choose Adobe Captivate. Since he works for a military, freeware cannot be installed, ruling out solutions like Wink. Secondly, Captivate provides an interface very similar to Powerpoint, diminishing the learning curve.

The basic steps for creating a screencast were outlined thus:
  1. Write a script on a subject that can easily be covered in a 4-7 minute video.
  2. Rehearse
  3. Record the video
  4. Add extra captions, highlights and other enhancements
  5. Record the audio
  6. Synchronize
  7. Publish
Some general tips learned from experience:
  • Keep it short, and within standard browser resolution
  • Drop browser and OS-specific bars to give a more universal flavour
  • Disable popups (from email, IM and other unpredictable distractions)
  • Pre-process images for size and speed
  • Beware of scrolling, as it adds a lot of size. You can record, then delete the slide containing the scrolling animation. Perhaps add a transition instead.
  • Keep in mind you'll need to update, so keep data as separate and organized as possible
  • Use screencasting where it needs to be used. Not all situations are appropriate.
  • Know your audience and what they'll need to see to 'get it'
  • Rehearse, rehearse, rehearse!

To begin a new project, open Captivate and pick which running program you wish to record. The system can then 'snap to fit' the window, allowing you to drop junk you don't need. Be sure to choose 'demo mode' from Options. When recording audio, adjust your quality to balance file size ("FM quality" recommended). To start, hit the Record button, and go. Stop it by END key (when do we ever use that?)

The cursor is recorded in a separate layer, and can be moved around in post-production. You can also add bullets, highlighting, etc. Each slide has a film strip timeline at the top for individual objects in the slide. Insert option adds all sorts of cool stuff.

When you're ready for audio, get good voice talent, rehearse multiple times, and leave a second or two of silence at the end of each section. A $20 microphone is good enough for most purposes. Maintain constant distance while speaking into it, usually 4-6 inches. You can add the narration notes into the slide for the narrator to read.

After recording your audio, you will probably desynchronize from your mouse movements. Not to fear, you can move those objects around the timeline as you need to time everything out just right. The Preview button will show you how its going to look.

For ADA compliance, you can add captions (separate from slide notes), make text screen-readable for the visually impaired, and click 508 Compliance in Preferences for navigation (different place for this option in 3.0).

The full PPT is available on slideshare.net.

Personally, I'd love to have call to use this software for work, but I'm not sure its going to be within my scope. I certainly can't justify spending $699 for it, and only have it work on my Windows machine (there are no Mac or Linux versions). There is also come question about whether one can mix together multiple Captivate recordings, which may be handy for making tutorials on network issues. All in all, a very good session, but I'll probably share this knowledge more than I'll utilize it myself.

Tuesday, May 06, 2008

Done with School!

I am finally, at long last, completely, totally and absolutely done with my library science and computer science degrees. My thesis is turned in to the library for binding and preservation. My final courses have been graded (well). I've even got a job lined up, working for NYU's School of Medicine as their Systems Integration Librarian.

Now comes moving, SLA 2008 and some down time. Thankfully, we got a PS3, so I can be down with Unreal Tournament III. Nice.

Friday, February 15, 2008

That ol'time Death and Resurrection show (part 3)

It occurs to me I haven't mentioned the progress I've made on repairing the damage to my network.

Larkin: Replaced the motherboard, and got it to run all of 10 minutes. Then, upon reboot, the hard drive failed. This led me to believe that the power supply was faulty (seems like the most logical connection between the two failed components, and I know the electricity in our apartment is... less good). That has been replaced, and a new hard drive is in the works.

the SquareOne: I shipped it back to Quad MicroWorks, and they shipped it back, fully functional and with the original hard drive (saving me a ton of data reloading). Great communication from them (A+++ in ebay-speak). Unfortunately, for the applications that I need to run, it will not do as a web server. It'll host my basic webpage for now, until I can get a more powerful, dedicated box. Then its just a matter of fighting my lousy Comcast connection. Oh, I can't wait the end of the ISP monopolies...

Berman: Still can't use the iSight, but I can connect it to the new TV, and man, what a picture! As soon as my thesis work is done, I'll get it into the shop.

Pearl: I think I finally fixed the Javascript error, as well as the problem that was causing MS Word to crash whenever a browser window was open along side. This system is also currently running dual monitors, until Larkin is back up.

My old laptop: Dead as a doornail. I really wish those RAM chips I bought hadn't failed, because even a 128 MB boost would be handy... maybe I can find a sweet deal on craigslist.


More minor updates when they occur, and I have the time.

Wednesday, February 13, 2008

Passing variables between Javascript and PHP

First off, an apology for not blogging in so long; I'm in the thick of my final semester, and most of my time goes towards writing my thesis or working on my independent project (likely to be mentioned in a later post). But this material I just created for work is good enough, I think, that it's worth sharing.


Javascript and PHP, when used together, can make pretty much anything you desire in a website. You use your PHP to talk to your databases, generate dynamic content, and hold session information, while your Javascript can refine the user interface, adding options and making changes to the window on the fly.

But what if you need to get these two technologies to talk, securely? PHP is rendered server-side, before the page is produced and sent to the client. Thus, you can easily send PHP variables to a Javascript, if you don't mind their values being known to the user. However, if you need to keep your PHP variables safely server-side, how can you get Javascript to send its variables along to PHP?

Here's what I came up with: I call it "12th Hour Javascript", which will make sense shortly. The basic premise:
  1. write a PHP script that takes in a URL variable ($_GET), runs whatever safe server-side function necessary, then outputs a Javascript function that simply returns the output of the PHP function.
  2. write a Javascript function that adds an inclusion of the above file, taking in whatever variables and tacking them onto the URL of the src.
  3. Call the function in 2) in one event, and the function in 1) in an immediate, subsequent event. 2) will pass the URL parameters to 1) as it includes it in the HTML file. the function in 1) will then be available for the next event.
Sound vague? Some example code may help.

ourscript.php:
function php_js() {
<?php
function core($parameter){
// Do stuff
return $output
}
$js_return = core($_GET['URL_param']);
echo "return " . $js_return . ";";
?>
}

Our Javascript function:
function twelfth_hour() {
var html_doc = document.getElementsByTagName('head').item(0);
var js = document.createElement('script');
js.setAttribute('language', 'javascript');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', 'Ourscript.php?URL_param='+document.SOME_ELEMENT.parameter.value);
html_doc.appendChild(js);
return false;
}

Using the functions in an HTML form:
<input value="go" onmousedown="twelfth_hour();" onclick="php_js();" type="submit" / >


As you see, the second function (twelfth_hour) will run first, and add a new Javascript to the document, with the source equaling ourscript.php?URL_param=parameter. Ourscript.php takes that parameter, processes it as we like, and gives us the output. If a user were to look at Ourscript.php, all they'd see would be a function that returns a value; all the inner workings are in PHP and thus hidden.

Keep in mind that the calls to these functions must exist in separate events. Trying to run them together results in an undefined error for php_js(), since it hasn't been included into the document yet. Javascript functions do not execute line-by-line, and perhaps not even function by function. However, event by event, you can keep one step ahead of your Javascript, and provide it with the dynamically-generated, PHP-based scripts you need.

Minor tweaks and refinements may be necessary, given your particular application and server configuration.

Comments are welcome.

Monday, November 12, 2007

Working with Gliffy

For those of you who haven't heard about Gliffy, let that come to an end now.

Gliffy is a free online diagram creation tool built in Adobe Flash. This means its entirely cross-platform, which makes it easier for those multi-OS households and organizations to do development. No download is required (except possibly for Flash Player, if your copy is ridiculously out of date). Free accounts come with 3 private documents, and unlimited public documents. You can pay $30 for a year account, or $45 for two. This will net you unlimited private documents, priority support, and unlimited image uploads, as well as freedom from the occasional ads.

Editing in Gliffy is really easy; you have a menu on the left with categories of basic shapes, as well as standard icons for major diagramming applications (UML being the one I use the most, but there are also icons for computer networks, user interfaces and building floor plans). Just drag, drop, and customize. Text fields are built into objects where applicable, or you can add your own. Once you've lined things up the way you like, you can group clusters of objects together with a simple keyboard command (Ctrl-G). If the right shape or icon for your application doesn't exist, you can upload an image or build a new shape out existing ones, and group them.

Gliffy keeps track of your version history, so its easy to go back to an older version of a diagram if you added something that didn't work. There is also excellent integration into blogs and wikis (Confluence users, take notice!), and documents can be tagged, shared and collaborated upon.

For me, this tool has been incredibly helpful in my software engineering courses. I'll probably also wind up using it at work to create simple flow charts for how the new blog software we're implementing. It has to be, by far, the easiest tool for this kind of job I've run across.

POINT OF BALANCE: Like all applications, Gliffy has a few bugs. I've had a few scripts hang on me before, which either required a page refresh, or simply navigating back to the Gliffy login site, and logging in again. I would be cautious before trusting any critical data to ANY free online service, since it isn't your machine and you aren't paying anyone for the service. That said, if you just need to make a diagram, consider Gliffy.

Friday, September 28, 2007

The Death and... Death show (part 2)

As I began to detail in a previous post, several of my computers have suffered hardware failure. Since that post, even more machines have broken. Here is the list of my woes:
  1. my old laptop: despite replacing the RAM, memory problems persist. I've spoken with colleagues, and they say it might be the RAM connector ports (which I cannot fix).
  2. Larkin: Still down with (I assume) motherboard failure. I can fix this, but I need to confirm the problem and buy the part.
  3. Berman: Not dead by any stretch, but the built-in iSight has given out for no apparent reason. Under warranty, but I can't afford to lose the use of this system right now.
  4. the SquareOne: No longer lets computers on the local network connect to the Internet. Tech support says this, too, is hardware failure. Its under warranty, and they can either replace it now, or upgrade it to the Generation 2 in a few weeks (at a discount). I'm thinking I'll go for the Gen 2... I could use the WiFi and extra processing power.
  5. My work computer: In an attempt to increase the RAM and a second harddrive, my work system has lost almost all its usefulness; no more office, or Creative Suite, or any other program I installed. I've seen more computer guts lately than I care to recall. I can't even put a Kubuntu install on the thing... good thing most of my work can be done with online or open-source programs.
  6. Pearl: My Windows system is still holding on strong, but I think the Javascript engine is corrupted. I can't get various webpages that use .js to display properly (regardless of which browser I use). Not a well-documented problem.
I had even lost the use of the modem for a time (Comcast turned off our Internet by mistake; took 3 days to fix). This led me to believe perhaps this apartment had some kind of static field or techno-poltergeist or something. But with the repair of the modem and the problems at work, I think it might just be me.

More as it develops.