Forced entries

Subscribe to RSS feed

Last day

So this is it. After six years working at Opera, and half as many my.opera blog posts, I'm leaving Opera Software. I'll be taking up a position at Bergen-based Vizrt. Goodbye, and thanks for all the fish!

Black box documentation, or How to bite your own tail

I've been moonlighting in the documentation dept. lately to get some variation in my work. I've come to realize that there are three types of documentation work:

Internal documentation

The first type is when you're documenting your own work. You know exactly what you've done, so documenting it is reasonably easy. The main challenge is that because you know it so well, it can be hard to present it in a way that outsiders understand. Connections that seem obvious to you aren't necessarily obvious to others.

External documentation

The second type is when you're documenting someone else's work, but where that person has given you all the information you need. This is my favorite kind of documentation. You have everything you need, but are still able to view it with an outsider's eyes, and hopefully present it in a comprehensive manner.

Black box documentation

The third type is when you're trying to document something that really hasn't been documented or recorded anywhere. You usually have an idea of what you need to document, but the actual information is locked inside a black box, which you need to poke and prod from various directions to try tricking it into giving you all the whats, the hows, the whys and the connections between them.

Jumping through burning hoops to get just the right list bullets

As I was looking into an issue at spiegel.de, I stumbled over the following code (indented by me for enhanced readability):
<table border="0" cellspacing="0" cellpadding="0">
  <tr valign="top">
    <td>
      <font size="-1">
        &nbsp;&nbsp;<b>
        &middot;</b>
        &nbsp;</font>
    </td>
    <td>
      <font size="-1">
        <a href="http://www.spiegel.de/politik/deutschland/0,1518,431165,00.html">
          Deutschland:
          <span class="blk">
           Debatte &uuml;ber innere Sicherheit
          </span>
         </a>
       </font>
    </td>
  </tr>
</table>
The result of this code is a link with a dot in front. They put multiple of these tables after each other, like a list. This is the semantic equivalent:
<ul class="relatedstories">
  <li>
    <a href="http://www.spiegel.de/politik/deutschland/0,1518,431165,00.html">Deutschland:
      <span class="blk">Debatte &uuml;ber innere Sicherheit</span>
    </a>
  </li>
</ul>
Now, why did spiegel jump through burning hoops to make this code much more complicated than it needs to be? My bet is that they didn't like the look of the default list bullets in IE.

Anniversary!

This is a big anniversary celebration! It's been exactly two years since my first myopera blog post. What better way to celebrate than adding a second blog entry? bigsmile

How to make Aspell work in Preview 2 for Linux

Are you getting the error message "opera: spellcheck.so: cannot open shared object file: No such file or directory" when starting Opera from a terminal? Try this:

1. Install the latest version of Aspell and at least one dictionary
2. su
3. Add /usr/lib to /etc/ld.so.conf if it isn't already there
4. Go to /usr/lib and type: ln -s /usr/lib/libaspell.so.15 /usr/lib/libaspell.so
5. Type: ldconfig
6. Type: locate spellcheck.so (do updatedb first if necessary)
7. Close Opera, and open the file /usr/share/opera/ini/spellcheck.ini. Edit its contents as follows:

[Spell Check]
Spell Check Engine=/usr/lib/opera/7.50-20040218.5/spellcheck.so
Default Language=en
Default Encoding=iso8859-1

Make sure the path for Spell Check Engine matches the path locate gave you.

8. exit su
9. Start Opera. Spell check should now work.