Making the Thunderbird mail icon more useful on MacOS

Up until Mozilla Thunderbird 3.0, the MacOS version would show you the number of new messages in Thunderbird since you last clicked on the window, in the dock icon. Now by default it shows you the total number of unread messages, which is pretty useless if there are just a ton of messages in your bulk mail accounts you have no intention of reading. A bug report was filed for this issue, in order to restore the old functionality (or at least make it optional). Although the bug was closed and the option was added to Thunderbird, it’s not in the main user interface. It must be set using the advanced configuration editor.

Read More

RearViewMirror Released

It’s been nearly two and a half years since the last release of RearViewMirror. There aren’t any new features on this release, just several updates to help improve speed and to check for future releases.

For those who have never used it before, RearViewMirror is an over-glorified version of those mirrors office workers attach to their monitors so people don’t sneak up on them. Instead of using a mirror though, it uses a webcam and allows users to share their webcams with others around the office.

Storing Shibboleth IDP Logs in a Database with IP Addresses

Shibboleth’s IDP can store audit logs that indicate when people authenticate against the IDP web application. These files are written to disk by default using the settings in the logging.xml configuration file. This tutorial will show how audit logs can be placed in a MS SQL database and also include the IP addresses of the connecting clients.

Read More

Installing subversion on SuSE Enterprise Server 10

At home I use the latest version openSUSE with network updates and patches, but in a corporate environment a server administrator or developer often finds him or herself having to deal with older enterprise versions of products. I was surprised to discover that SUSE Enterprise Server 10 SP2 did not contain a subversion package (or anything above python 2.4.2, but that’s for another post). I found several conflicting and outdated instructions, so here is a current version of how to install subversion 1.6 on SUSE Enterprise Server 10.

Read More

Handling Grace Logins from Novell e-Directory in Shibboleth

Many institutions are using Shibboleth for unified single sign-on between both internal and external web application. Shibboleth is an authentication engine and, as its backend, it can use a variety of sources for authentication including LDAP, a SQL database or other resources. It simply deals with authentication, so more advanced configurations, such as systems which allow grace logins after a password expires, may require more customization. The following tutorial shows how to use Shibboleth with a Novell e-Directory server that allows grace logins after a user’s password has expired.

Read More

Modifying uApprove for Microsoft SQL

Shibboleth is an Internet2 project used to implement identity authentication and authorization across multiple domains (sometimes known as a single sign-on). Shibboleth also allows federated authentication, which allows an organization or institution to let a user on one domain to authenticate to another domain. This is common in academic settings where one university may want to allow users from another university to use their services using that first university’s authentication system. A plug-in for Shibboleth known as uApprove provides an approval screen so users can see what information is being shared before being logged into a remote system. uApprove is designed to work with MySQL, however this tutorial shows how it can be easily modified to use Microsoft SQL Server.

uApprove Attributes Screenshot

Read More

My Account’s Been Hacked (No It Hasn’t)

Recently I’ve seen unsolicited SPAM e-mails coming directly from other peoples’ e-mail and social networking accounts. They’ll often post messages afterwords claiming that their accounts had been hacked. I’ll usually ask these friends, “Do you use the same password on multiple websites?” and the ensuing “Yes” response from them is followed by, “Change your e-mail password, and also, you need to learn something about password security.”

Read More

Running Beans Locally that use Application Server Data Sources

When writing J2EE web applications, web services, enterprise Java beans (EJBs) or other pieces of code that run on a Java application server such as RedHat’s JBoss, IBM WebSphere or Apache Tomcat, a developer typically doesn’t load database drivers or connect to the database directly. Instead, a context lookup must be made in order to get a DataSource, and from there a Connection. However what if one needs to run existing code locally, outside of the web server? This guide shows developers how to setup a local context so application server code can be run in a stand-alone application without modification.

Read More

Building Java EAR files using Ant

When creating new Java web applications within an IDE such as Eclipse or NetBeans, the IDE creates a directory structure and uses its own internal builder to create WAR and EAR files. While these build tools may be convenient when starting to develop J2EE applications, when working on production grade projects, it’s important to create your own directory structure and build scripts to automate the building and deployment process. This tutorial will take you through automating the build process of a web application using Apache Ant as well as giving you a better understanding of exactly how web applications are laid-out and built within the EAR file.

Read More

Java’s Checked Exceptions

Anyone who has programmed with Java should be familiar with the concept of Checked Exceptions. Although C++ and OCaml have optional support for exception checking, Java seems to be the only major programing language where it is a built-in and required part of the language. Enforcing at compile time that certain exceptions need to be caught may have seemed like a good idea at the time Java was developed, however no major languages developed since have adapted the concept. Many view Checked Exceptions as a design flaw. In this article, I attempt to show how this flaw can be overcome using a base exception class to encapsulate exception handling.

Read More