Tuesday, November 03, 2009

Making Vimperator 2.2+ work with Delicious keywords

This blog post echos the same information as issue 138, which describes a tiny plugin delicious_addon_kw_hack.js that can be used to restore compatibility with the Delicious add-on.
As discussed in issue 120, as of changeset da9c0a1a532d of Vimperator v2.2b1, Vimperator's ":open" will stop recognizing keywords imported from Delicious bookmarks via the the Delicious Firefox add-on.

A simple way to fix the problem is to drop the following code:
bookmarks.getSearchURL = function(text, useDefsearch) {
let url = null;
let postData = {};
let searchString =
(useDefsearch ? options["defsearch"] + " " : "")
+ text;


url = window.getShortcutOrURI(searchString, postData);

if (url == searchString)
return null;

if (postData && postData.value)
return [url, postData.value];

return [url, null]; // can be null
into a file like delicious_addon_kw_hack.js into your ~/.vimperator/plugin/ directory (or the equivalent directory under Windows; see :help plugins for more details).

Monday, November 02, 2009

"Administrative e-mail" from Ticketmaster

By the CAN-SPAM Act of George W. Bush, Conrad Burns, and Ron Wyden, SPAM can be sent to your e-mail address as long as it provides a way to opt-out of it at the bottom of the e-mail.

Today I received this message from Ticketmaster about an upcoming Bluejackets promotion (which I took a screenshot of for you to capture the full effect – click on the image for a larger version):

OF COURSE, to be in compliance with CAN-SPAM, they need this little blurb at the bottom:

That's strange that it says "This is an administrative mail." Moreover, it's very strange that when I click on the "Link t- e-mail preferences page" link, I get a web page with a little blurb saying:
The e-mail you are coming from is administrative so you cannot unsubscribe. You may update your account preferences for non-administrative e-mails below.
Underneath the blurb, it shows that I have previously unselected all Ticketmaster spam sources. So evidently advertisements about upcoming Coors' sponsored events are purely administrative.

I should note that I haven't purchased a ticket from Ticketmaster since the summer, and I haven't purchased a BlueJackets ticket in years. There's no way this e-mail is in response to any action I have taken at Ticketmaster.

Thank you, George W. Bush, Conrad Burns, and Ron Wyden! Way to revolutionize AMER-I-CAN-SPAM.

Wednesday, July 29, 2009

Literal Total Eclipse of the Heart

RT: @notspam1: Give it time, but literal version of Total Eclipse of the Heart is great: http://tinyurl.com/nacjd8

UPDATE: A good follow-up is the literal version of "Anything for Love"...

Friday, July 24, 2009

Installing docutils for Mercurial (rst2man and rst2html)

If you're building Mercurial from its source, you might notice that the latest versions are using reStructuredText to markup their documentation. Hence, you'll need to install docutils. Additionally:
  • You'll have to install the rst2man tool that is presently only available in the docutils "Sandbox," which you have to download separately.
  • You'll have to make sure you have the new rst2man.py tool accessible in your PATH as rst2man.
  • You'll have to make sure you have the included rst2html.py tool accessible in your PATH as rst2html.
So it's no surprise that yet-another-Python-related-adventure is yet-another-Python-related-headache. Here's how to get up and running. Things should get substantially simpler if and when docutils starts including rst2man as part of their standard distribution (however, you'll probably still have to make the simlinks unless Mercurial's installer is able to call the rst scripts with their .py extension). Meanwhile, here are some steps that will hopefully get you (the UNIX or Mac/OS X user) moving in the right direction.
  • First, go to the docutils website and download the docutils snapshot as well as the docutils sandbox snapshot.
  • tar zxf those tarballs to extract the docutils source code. That should give docutils and sandbox directories.
  • Copy sandbox/manpage-writer/tools/rst2man.py to somewhere in your PATH (e.g., /usr/local/bin/rst2man.py or ~/bin/rst2man.py if you have ~/bin in your PATH).
  • Create a symbolic link in your PATH from the rst2man.py you just placed there to rst2man. For example, symlink /usr/local/bin/rst2man.py to /usr/local/bin/rst2man by doing ln -s rst2man.py rst2man in the /usr/local/bin directory.
  • Copy sandbox/manpage-writer/docutils/writers/manpage.py to docutils/docutils/writers/manpage.py.
  • In the docutils directory, run python setup.py install (for a global installation) or python setup.py install --home ~ (for a home installation).
  • Copy docutils/rst2html.py to somewhere in your PATH (e.g., /usr/local/bin/rst2html.py or ~/bin/rst2html.py).
  • Create a symbolic link in your PATH from the rst2html.py you just placed there to rst2html. For example, ln -s rst2html.py rst2html inside your /usr/local/bin or ~/bin directory.
  • Fetch the latest version of Mercurial and build it. Assuming you have all of the other dependencies, it should build OK.
Of course, YMMV, but I hope that at least helps get you on your way.

Friday, July 17, 2009

#HiaWWF: Hatred is a Weak Word For

Definition for the purpose of tagging tweets with #HiaWWF: Hatred is a Weak Word For (HiaWWF)

Thursday, July 16, 2009

pine, mutt, elm, and mousetraps

The web hosting provider for tedpavlic.com recently upgraded their UNIX boxes to a 64-bit platform, and the websites I host with them had to be moved over. There were a few small hiccups (primarily due to 32-bit apps I built that needed to be re-built), but most of the issues afterwards had to deal with apps that I asked them to install on the old machine that I then had to ask them to install again on the new machine. One of those apps was (al)pine, which is the console-based e-mail client that I use. They installed pine for me, but the guy in charge was curious. Here's a response to a question he had about my request. It's my justification for using pine (and throwing away the mouse).
But I must ask, for the few odd requests I get for pine, I am curious as to if you actually use it on a day to day basis or just for testing. I remember using it back in the day (good ol'e ISDN!), but it seems a bit redundant and quaint now that we have webmail and Thunderbird and such.
Gosh – pine is far more powerful than either of those. For example:

*) Does webmail support IMAP tags? Pine does. Thunderbird just started, and it's support is still limited.

*) When managing large folders of mail, it's often much easier to query and process the messages with pine. I can quickly select a batch of messages, invert the selection, view the selection as its own folder, etc. etc. I have much more efficacy in pine.

*) If I'm at a remote computer, it's much more convenient for me to ssh into gemini and run pine than to use webmail (which is slow and clunky) or setup Thunderbird for my one time use.

*) If I'm at a remote computer *with* pine, if I run THAT pine and point it at gemini's IMAP server, pine will use the pine configuration (and address book) that is stored in a special IMAP folder. Hence, pine is much more portable than Thunderbird.

*) With very few exceptions, I'm much happier with console-mode (or near-console-mode) apps. Similarly, I use vim on every machine I have. Not only does it give me a uniform editing environment wherever I am, but with the addons packaged with any standard vim installation, vim will download, edit, and upload networked files automatically for me without much extra work on my part.

*) Oh, and don't forget that once upon a time you could only get pico with pine. Now, IIRC, nano comes separately.

My officemate uses mutt, and I used to be a major elm fan because it integrated better with vim. I shifted to pine because it's just so very powerful.

Have you heard of Vimperator? It's an add-on for Firefox that makes it act like Vim. The same people also brought out Muttator – it's an addon for Thunderbird that makes it act like mutt.

So there are lots of us out there that are dissatisfied with the GUI. Console-mode developers don't put a lot of time into perfecting the shading of the chrome. Instead, they add features, and they make the apps fast.

(note: applications like Quicksilver, Spotlight, and Microsoft's latest knock-off are bringing people back to the keyboard. People would rather *type* the app they want to launch rather than clicking through folders. Eventually, people will realize where the mouse belongs – dead in a trap stuck in the garbage out in the garage)

Thanks. :) –

Wednesday, June 24, 2009

YouTube video of helicopter control project of a student

For anyone who doesn't understand what "control" is, the following is a small example of the work of a "control engineer". In this case, the engineer is one of my students. He's an undergraduate in a class I taught last quarter; this YouTube video is a demonstration of his final project for the class:
As shown, his controller manages to keep the helicopter stabilized in a position that gets set by the joystick. The computer "flies" the helicopter with a heading set by a human via joystick. When they push on the helicopter, they're simulating a disturbance like a heavy wind gust. The helicopter's controller quickly brings it back to its old state. What you don't see is that the controller has been designed to do this as smoothly as possible (e.g., to prevent "jerkiness" within the helicopter).

This is a concrete example of classical control design. What I do in particular in my own research is quite a bit different. However, the video is a nice demonstration about what "control engineers" (like me) do.

Tuesday, June 23, 2009

Something for fans of Douglas Adams

I am not a member of the Douglas Adams cult, nor do I foam at the mouth thinking about The Hitchhiker's Guide to the Galaxy; however, I do know several such junkies. I had an experience yesterday that I thought would interest them.

The following picture is taken from the floor of the bathroom down the hall from my office.
If you can't see it, then click on the large version of the image. To give an idea of scale, I think the little tag is one of those stickers indicating either the size of a jacket or the identity of a particular clothing inspector.

Thursday, May 21, 2009

Just a Walk on the Beach? (by my brother)

My brother, who is presently suffering with ALS, just sent this. Please visit my d'Feet ALS walk web page and help us.
Just a Walk on the Beach?

I want you to think back, imagine in your mind, totally block all other thoughts out, just focus on what you are reading. Close your eyes to all your surroundings for just a few minutes.

Imagine, your walking along the beach and you see kids starting to bury the feet of a young persons with sand, packing it down, adding water to make it good and heavy so the feet can’t move. Can you see him? Standing with no movement in his feet? Can you? He can handle it right?

You continue down the sandy beach as the ocean waves continue to splash. You come upon another group of kids that have buried this young persons feet, calves, just above his knees. You watch as he concentrates on his balance a bit more. Can you see him? Have you ever lost your balance? Do you remember that feeling? Do you? Should you help yet?

You go down further and you come to another group burying a young persons feet, legs, waist and hands. Not only can he not move his feet and legs but now his hands won’t move right. All statuesque, unable to move can you see him? Can you? Ready yet?

As you’re reaching the end of the beach you see yet another group. Packing sand from his feet to his throat. As you look on you can see that he can’t walk, move his arms, struggling to breath from the weight of the sand. He can’t talk from the pressure on throat. You can now see the fear in his eyes of when will the tide come in. Can you see him? Can you? Have you asked how can help or just stand by and watch?

As you walk around the front of him looking in his fear filled eyes you realize that you recognize this young man. It’s your son! Are you ready to help yet? What will you do now? Are you too late?


Strike out ALS.

Ken Timmons
Again, please visit my d'Feet ALS walk web page and help us.


Tuesday, May 19, 2009

My 2009 d'Feet ALS Walk Page

My brother Ken has ALS (Lou Gehrig's disease). Every year, our family participates in the ALS association's Columbus chapter's Walk to Defeat ALS, and this year is no different.

Please help us defeat ALS by visiting my 2009 d'Feet ALS walk page.

Thanks so much.

Monday, May 18, 2009

"Please unsubscribe me..."

A mailing list at the university was recently created and added a large number of faculty, staff, and others to it automatically. An announcement went out to all of these subscribers (who didn't know the list was going to be created) giving information on the list (and why they were added) and details about subscribing/unsubscribing/etc. Of course, many of them did not want to be subscribed. Rather than following the clear instructions on how to unsubscribe, they started sending e-mails to the list.

(Some actually sent e-mails to the list ASKING TO BE SUBSCRIBED!!)

Here's a snapshot (from Google Mail, rendered with an ASCII art theme) of the hilarity that ensued... (where names have been obscured to protect the guilty... I mean... innocent)
Notice how some of those messages are threads that are 10 messages deep. Also notice that this isn't a pruned inbox. This is a snapshot of an inbox that has been destroyed by this mailing list.

Invisible Handjob

Evidently "Invisible Hand" is right up there with "Survival of the Fittest" as a phrase the "author" maybe only muttered once or twice and probably meant it as a joke and probably regretted it greatly after saying it.

Freakonomics blog: The Invisible Hand Hoax
Adam Smith’s “invisible hand” theory of efficient markets is one of the first lessons taught to young economics students. James Tobin, a Nobel prize-winning economist, once described the theory as "... one of the great ideas of history and one of the most influential." But in this new paper, Gavin Kennedy argues that Smith actually had no invisible-hand theory, pointing out that the phrase appears only three times in Smith’s writings. One scholar believes that Smith’s use of the phrase was a “mildly ironic joke.” (HT: Brad DeLong)
Referenced paper: "Adam Smith and the Invisible Hand: From Metaphor to Myth" by Gavin Kennedy (Econ Journal Watch, Volume 6, Number 2, May 2009, pp 239–263)

Friday, April 24, 2009

Google code actually becomes useful! Supports a DVCS! MERCURIAL!

Google Code Blog: Mercurial support for Project Hosting on Google Code
We are happy to announce that Project Hosting on Google Code now supports the Mercurial version control system in addition to Subversion. This is being initially rolled out as a preview release to a few invited users on a per-project basis, so that we can iron out the kinks before making this available to the general public.

While there were several DVCSs that we could support, our decision to support Mercurial was based on two key reasons. The primary reason was to support our large base of existing Subversion users that want to use a distributed version control system. For these users we felt that Mercurial had the lowest barrier to adoption because of its similar command set, great documentation (including a great online book), and excellent tools such as Tortoise Hg. Second, given that Google Code's infrastructure is built for HTTP-based services, we found that Mercurial had the best protocol and performance characteristics for HTTP support. For more information, see our analysis.

Thursday, April 23, 2009

Warning: Quanser flexible joint uses different angle convention than motor

Quanser Academic makes a line of products, which you can see demo'd at their YouTube channel, that are sold to university laboratories as teaching aids for control theory. Today I noticed a funny undocumented quirk about one of those products. I have notified Quanser of this, and there is some indication that they will update their documentation to reflect this quirk. However, because their documentation is not on-line, it's hard to see how that update will ever reach people who have already bought these products.

I TA a graduate control lab, and today's lab had the students design and implement an LQR controller that made use of a full-state observer to control Quanser's flexible joint. The motor angle is measured by a shaft encoder (which is the output we use to drive our observer), and the arm angle is measured by another encoder. We don't need the measured arm angle because we're using a full-state observer, but we still capture it for comparison to our estimated arm angle.

The students build a controller that stabilizes the plant to a moving equilibrium that tracks a square wave. At every transition, the observer trajectories had some peaky transients, as is expected, but it appeared like they were always in the wrong direction for the arm angle and its speed. I dismissed this as peaking, but one group wanted to investigate further, and so I had them track a sine wave instead. What did we find? The arm angle and speed estimates were always EXACTLY 180 degrees out of phase with the measurements.

I was shocked, and so I looked into it. Visually, I could tell that the FLEXIBLE JOINT's ANGLE ENCODER is mounted UPSIDE DOWN with respect to the motor's angle encoder. That means that rotating the motor to the "right" produces a positive angle even though rotating the JOINT to the right produces a NEGATIVE angle! The observer had it right; it was the MEASUREMENTS that were incorrect! (I built a minimal example to test my hypothesis, and what I say matched what I observed; the opposing rotations lead to equal signs)

Nowhere is this documented. Because this angle is not directly driven (it's coupled to the assembly via springs) and the arm+spring system is naturally stable and fast, this POSITIVE FEEDBACK doesn't lead to destabilize the system unless you have extremely high gain. So I'm guessing no one ever noticed. Multiplying the measurement by -1 restored intuition. I drilled down into some Quanser demo code, and I found that they do the same thing in their controllers. I have no idea why they would not document this in their rotary joint docs. Do they expect everyone to go through all of their MATLAB and Simulink code?

I could understand this error if the flexible joint was a generic component made by a different company, but the joint is solely for the purpose of connecting to the motor, and so it would make sense that its encoder orientation would match the motor encoder orientation! At the moment, we need different gains for both.

Friday, April 10, 2009

Copying lyrics from Pandora to your clipboard

You may have noticed that Pandora gives you (everyone? just subscribers?) the ability to view the lyrics of songs. For example, when I view "Not Going Anywhere" by Keren Ann, it gives me the full lyrics for the song (note: not every song has its lyrics in the Pandora database).

Pandora has been clever about how they display the lyrics. They actually don't come down with the page. The page uses AJAX to download the lyrics after you download the page. It then populates the correct place on the page with the lyrics. It also changes the mouseover properties so that you cannot use your browser to highlight those lyrics. Because the lyrics are populated dynamically, saving the page doesn't work either.

Well, I thought that was lousy. If the lyrics are displayed in plaintext on my browser, I should be able to at least highlight them. If they really wanted to prevent me from doing that, they'd build a GIF/JPG/PNG on their end and send me the lyrics in that, right?

So I figured out that I could use Firebug, the Firefox add-on, to do what Pandora didn't want me to do.
  1. Start Firebug.
  2. Start the "Console."
  3. Use the pull-down menu on the "Console" tab to "enable" the Console.
  4. Issue the JavaScript command
    on the console.
  5. A dialog box should pop up with the lyrics. Use your mouse to copy them to your clipboard.
  6. You can then disable the Firebug console using that same pull-down menu.
That worked for me. It should work until they change the names within the JavaScript.

Saturday, March 21, 2009

rspublic.cls fixed to get rid of nasty Incomplete \if errors

Depending on how updated your LaTeX distribution is, if you try to use the Royal Society's rspublic.cls to build your compuscript, you may get nasty incomprehensible errors like:
! Incomplete \if; all text was ignored after line 7.

I didn't get these errors on my home system (which has TeX Live 2007 installed), but I got them on Manuscript Central for Proc. R. Soc. B, and that's a major problem.

After two days of binary searching through possible sources of the problem, I found it. Jonathan Wainwright (the author of the document class) used a \phantom in both the \@oddhead and \@evenhead without preceding it by a \protect. The \phantom macro is fragile, which means that it can cause major problems when put in contexts that move around (like headers). So it needs to be protected.

I added \protect in front of each of the two \phantom calls, and all was well in the world.

I've posted a fixed version of the document class at:Give it a shot. That version also allows for 11pt and 12pt fonts, and it defines \@ptsize, which setspace needs to exist in order to work (i.e., for double spacing).

Friday, March 20, 2009

natbib-compatible BST file for Royal Socety journals

I just whipped up rspublicnat.bst, which is a natbib-compatible BibTeX style file (BST) for the Royal Society journals (e.g., Proceedings of the Royal Society A and B and others).

FYI, the BST can be regenerated by applying LaTeX (i.e., docstrip) to rspublicnat.dbj and then applying rspublicnatbst.patch (with patch) to the resulting BST file. The patched result should closely match the Royal Society's bibliographic conventions for both in-line and listed references.

Thursday, March 19, 2009

Removing hyperref's space inside \autoref

Many journals (e.g., any of the Royal Society journals) prefer sections to be identified with the section symbol (§) rather than the word "section" followed by a space. If you use \auotref, one of the wonderful macros provided by the hyperref package, then you'll want to do something like...
Unfortunately, \autoref will still insert a space between the section symbol (\S, which renders as §) and the section number. So, as discussed in a comp.text.tex posting, you'll need to be more clever and do something like (the ~ character is the "tilde", which is on the upper-left of most keyboards; it's a LaTeX "tie"—a non-breaking space)...
instead. That will eat the space that \autoref inserts after the section. Voila!

Tuesday, March 17, 2009

Perl script that generates CSV and BerkeleyDB versions of LTWA list

UPDATE: If you're wondering why I just didn't save the LTWA database and search it every time I needed to abbreviate a journal, it's because I wanted to optimize for speed downstream. That is, I did all the possible processing now to speed things up later. I've also augmented the script to do the opposite (and save the results in other smaller files) so that I can tell the downstream process to take longer (and possibly have better results with less spurious entries in the hash table). I've also updated the downstream script to save any successful lookups locally to speed up successive runs. Again, contact me if you want more details.
I'm sick of looking up ISO 4 standard journal abbreviations from the List of Title Word Abbreviations (LTWA) hosted at ISSN's LTWA online. The most annoying thing about LTWA online is that you can't get one big list unless you have them mail you a paper copy (for a price). So you have to resort to clicking each letter and waiting for the list for that letter to come up.

So I wrote a Perl script that automatically cURLs each LTWA online page down, processes it, and generates both CSV and BerkeleyDB (BDB) hash files containing a list of words and their associated official LTWA abbreviation. I use the BDB file in another script to automatically generate BibTeX database files for each of my journal papers (that script first checks a list of known-good journal abbreviations before trying to generate the abbreviation itself).

There were several challenges to such a task, and the list isn't perfect. I focused on one-word entries. For more complicated abbreviations, I figured I'd lean on my list of known-good journal abbreviations. That still left LTWA entries like "psycholog-" and "bulletin-" which use "-" to imply "and any other character." So I used a typical /usr/share/dict/words list to generate a list of English words that matched each pattern. Because such lists don't usually include plurals, I used Lingua::EN::Inflect to generate plurals and then took all of the plurals that included the singular (i.e., that would also match the LTWA pattern).

So that works well for me. Someday I might put the script and/or the files it produces on-line. For the moment, if you want any of these, contact me and let me know. I'll share.

Wednesday, March 11, 2009

"Interference" seems like an appropriate name

I got a request from a marketer that I link to his product from this blog:From him:
Inference is a Microsoft Office add-in that has a point-and-click interface for adding MATLAB code, .m files, and structured data to Word and Excel documents. If you use Microsoft Office, Inference is an alternative to EX Builder and Notebook for generating reports, reproducible research, and Office applications. And regardless of whether you use Office, Inference has an integrated development environment (Inference Studio) with an intelligent editor that features breakpoints and edit-and-continue.
I have no idea why you would possibly need such a thing. I view software like this as predatory—it preys on people who think they're helpless. They end up overlooking existing easy solutions (like using the debugging features of MATLAB's own editor) and get distracted from finding truly good solutions.

Perhaps I'm being a little too harsh. Interference's own website gives a better description of its features:
Inference for MATLAB allows you to:
  • Execute MATLAB code directly inside of Microsoft Word to create formatted reports that contain explanatory text and graphical/code output.
  • Execute MATLAB code directly inside of Microsoft Excel to create dynamic spreadsheets that leverage existing Excel functionality.
  • Store all of your MATLAB code, data, and M-Files inside a single Microsoft Word and Excel document.
If you have use for such a thing... Give it a whirl, but don't come to me for help.

(by the way, my LaTeX build environment does the equivalent of "Interference for MATLAB" for LaTeX users. Among other things, if you \includegraphics{image_name} and the build environment finds an image_name.m file, it will automatically generate an image_name.eps (or image_name.pdf) whenever the MATLAB script gets updated)

Vatican: Washing machine liberated women

I first heard this on NPR this morning:
The Vatican has figured out women's liberation. The Vatican newspaper says the washing machine did more to liberate women in the 20th century than the pill or the right to work. The article is entitled: "The Washing Machine and the Liberation of Women - Put in the Detergent, Close the Lid and Relax."
Some related links from Google news:Pretty funny. Sounds like something that should have originated on The Onion, but it's real. Go Catholics!

Wednesday, February 25, 2009

My Flowering Green Tea

Do I take it out after 3 minutes? I dunno. It seems a little strong... and strange.
It started out as a ball that looked a bit like an owl pellet.

Wednesday, January 28, 2009

Non-breaking Spaces in Word/OpenOffice Writer

I use LaTeX primarily for all of my printed document preparation, but I have to teach people how to write in Word/OpenOffice Writer, and so it still is interesting to me to find out how to do new things.

I've wondered how to make non-breaking spaces (NBSP) in Word for a long time, but I didn't force myself to actually look it up until recently. Evidently, if you type
in Word, you generate a NBSP. This same combination works in OpenOffice Writer, but I think only Control+Space is needed.

A non-breaking space tells the Word Processor to never break lines at that spot. That is, a non-breaking space can never end or begin an automatically wrapped line. You should use NBSP's to prevent
  • periods at the end of lines that do not terminate sentences
  • numbers or bullet-like symbols at the beginning of lines that do not initiate list items
For example,
  • Replace "Mr. Jones" with "Mr.(NBSP)Jones"
  • Replace "Figure 2" with "Figure(NBSP)2"
  • Replace "Table 3.1" with "Table(NBSP)3.1"
  • Replace "Equation (5)" with "Equation(NBSP)(5)"
  • Replace "over there – in the hallway" with "over there(NBSP)– in the hallway"
That's how the big publishers do it. However, you never notice it because it's so subtle; when it's done right, you won't notice it at all.

Sunday, January 25, 2009

Bookmarklets for OSU Library proxy

FYI, as of an e-mail sent to me on the morning of January 27, the OSU library system is happy with these bookmarklets and may plan to offer their own version of them in the near future. Thanks, again, for your support.
This message goes out to OSU faculty, staff, and students. Doesn't it make you mad when you're off campus and you want to read a paper and the research database that holds the paper doesn't let you view it because you're not a subscriber? I hate that.

Luckily, the OSU library system provides an "off-campus sign in" that can be used to make your off-campus connection look like an on-campus one so research databases will grant you OSU caliber access. Unfortunately, sometimes it's hard to figure out how to get from the off-campus sign-in to the paper you want. So I've come up with a shortcut, and I implemented it two ways.

Drag either one of the two following bookmarklets to your "bookmarks toolbar" (that strip of bookmarks that rides just below the "location bar" in your browser).
When you're on a page you'd like special access to (e.g., the official site of an academic paper of interest to you), click on the bookmarklet and you'll be transported to that site via OSU's "off-campus sign in." You may have to use your OSU username and password to login the first time you click on the bookmarklet, but after that you should be granted OSU-level access quickly.

(feel free to rename those bookmarklets as you wish; the name "OSU LOCSI" isn't important to their function)

I hope that helps.