Posts tagged contract drafting
A DIY Legal Keyboard

Inspiration: The LegalBoard Keyboard

The LegalBoard is a dedicated keyboard designed to make a lawyer's day-to-day writing more accurate and efficient. It does this by providing dedicated keys to insert commonly used symbols like the section symbol (§) or paragraph symbol (¶), instantly toggle underlining or italics, start a bullet list, insert common citations like "plaintiff" and "id." and much more. I encourage you to check out the LegalBoard and all it can do in the link above.

When I first saw the LegalBoard, I immediately realized how I could use it in my practice. For example, as a transactional attorney, I find myself using the section symbol frequently and it's always difficult to insert it into text. I would usually end up simply searching quickly for it on Google, then cutting and pasting it as unformatted text into my document. I would also like a way to quickly toggle Microsoft Word's track changes function on and off with the press of a single key.

The LegalBoard seems like a great solution for a lot of lawyers. But I realized I only needed a small subset of the functions the LegalBoard provides, like inserting common citations or toggling small caps. Since I don't do court briefs, citations and specific formatting doesn't come up very often. Also, I can't say goodbye my beloved WASD Cherry MX keyboard. So I, instead, set about trying to find a way to recreate the features of the LegalBoard in my own way.

My Solution Using AutoHotKey

First, I put together a list of the functions I wanted to implement, based on my day-to-day needs:

  1. Insert the section symbol (§)
  2. Insert the paragraph symbol (¶)
  3. Insert the copyright symbol (©)
  4. Toggle on/off Microsoft Word's track changes
  5. Shortcut to do an "insert unformatted text" in Microsoft Word (which I use frequently when copying model language from one document to another)

That was it. It would be easy to add other shortcuts and functions later, but that was my starting point. And, since I have a keyboard with a dedicated number pad, I decided to take the same approach as the LegalBoard and use the number pad for my hotkeys.


As I searched the Internet for something I could use to provide an answer, I came across several references to a program that had what I needed. AutoHotKey is a powerful, free, open source scripting language for Microsoft Windows (I am running Windows 10 and I use Microsoft Office 365). AutoHotKey does far more than I would use it for, but it's been around a long time and has a loyal following, so I decided to see if I could use this bit of software to address my needs.

Step-by-Step Instructions

Step 1: Download and install AutoHotKey. You can download AutoHotKey here.

Step 2: Install AutoHotKey. It's very straightforward, but if you wish you may find this video walk-through helpful.

Step 3: Write your custom scripts. When AutoHotKey is installed, you will be prompted to create a script file for the program and AutoHotKey will create one for you with the ".AHK" extension. Open that file in your text editor of choice (Right-click -> Open with -> Notepad, for example). AutoHotKey will begin with a sample script in the file, which you can use or delete as you wish.

Here is the full text of my .AHK file you can copy and use if you'd like.

  send, §

  send, ¶

  send, ©

  send, ^+e

  send, ^+o

This script is very simple, it maps the numeric keypad as follows:

  • 7: §
  • 8: ¶
  • 9: ©
  • 4: toggle track changes
  • 5: Insert unformatted text

Obviously, the last two items are specific to Microsoft Word. However, the other hotkeys work across Windows, meaning it's easy to insert the special symbols while I'm using Notepad, Gmail in Google Chrome, or even my Twitter client.

I created a quick reference that I taped above my numeric keypad so I can quickly see all the functions. You might find it useful to print and use yourself.

Set AutoHotKey to run when Windows is started

You can always start AutoHotKey by double-clicking the .AHK file and it will continue to run in the background until you shut down your computer. If you'd like, you can make it start automatically when you reboot Windows by following the instructions here.

Do Even More with AutoHotKey

My use of AutoHotKey to date has been limited to the functions above. However, it's a very powerful program and you can do much more with it. For example, you can map keys to launch programs like Microsoft Outlook or Adobe Acrobat at the touch of a button or highlight text and launch Google Chrome to execute a Google search using the highlighted text with a single key press. Those scripts and many more are available here. Use AutoHotKey to insert large blocks of text that you use frequently or insert today's date (even within a file name) by following the scripts here.

This LegalBoard-like solution has worked great for me for the past few weeks. I am planning to continue to add more functions to my system as I find a need in the future. In fact, I just added the "insert date" function from the latter link above as I use that format in my file naming convention.

10 Common Pitfalls in Software License Agreements

Nearly every business will enter into software license agreements on occasion. A sophisticated, growing business may execute many such license agreements each month but a small manufacturer may do so only a handful of times each year. Many agreements for commercial, off-the-shelf software such as the Microsoft Office suite or company-wide antivirus software are often only reviewed briefly by the legal department, with the focus instead on commercial terms, pricing, and license rights.

But there are many software license agreements that deserve a careful legal review before execution. For example, those systems that are critical to the the day-to-day operations of business, where the cost for implementation and ongoing use is significant, software that will have a large impact on other business systems or employees, or those tied to financial reporting may all require additional scrutiny. But many in-house and even outside attorneys don't review software license agreements frequently enough to see the potential pitfalls that may be inherent in the vendor form agreements. This list provides a quick reference on what to watch for, although there are many other potential issues to consider in each individual transaction; it's not meant to be an extensive list of such pitfalls, but rather a quick reference to prompt additional review of important agreement terms.

/1/ License Scope

The licensee must closely consider the scope of the desired license. Whether it will be an enterprise-wide license, per seat license, or concurrent user license, the licensee must confirm the licensing entity and scope of use. For example, it may be desirable to allow affiliates of a parent company to use the software under the same license or allow the parent entity to use a license entered into by a subsidiary. In addition, it should be clear that the licensee's authorized third-party contractors and perhaps even outsourcers will also have the right to use the software without running afoul of the licensing terms.

/2/ License Overruns

The licensee should also consider what happens in the event the license scope is exceeded. This is not unusual in the case of a license scope depending on number of seats or named users. In that event, the licensee will want contract language that provides for payment by the licensee of the additional licenses but will want to minimize any punitive fees associated with unintentional excess use. Vendors often request audit rights to monitor the licensee's use of the software, which may be acceptable if properly worded, but should not be unduly burdensome on the licensee and should not trigger undue penalties for overuse.

/3/ Pricing for Renewal Terms

Software licenses often have initial terms of one to three years and it's imperative that the licensee contemplate and define pricing terms for any potential renewal terms. Consider the alternative: a potential scenario where the licensee has spent significant money and time choosing a software package, implementing the software, and training its employees and then the software vendor, after the initial three-year term, increases the price of the license by 200%. That leaves the licensee in a difficult situation and the legal and business teams facing a difficult conversation with upper management.

/4/ Acceptance Testing Rights

Any software implementation of any level of difficulty should include clear acceptance testing rights for the licensee. Ideally, the licensee should not be obligated to pay any license or support fees (and perhaps no implementation fees, depending on the particular circumstances) until acceptance testing has been performed and the software has passed the tests. Vendors will often point to the software warranty as the licensee's best tool to ensure properly functioning software, but that relies on the licensee then making a claim under the agreement for breach of warranty and may require formal legal action before resolution is reach. It's far better to hold the vendor's first payment in hand while confirming that the software performs as promised in the licensee's environment.

/5/ IP Indemnification and Limitation of Liability

Many times, software vendors omit any sort of indemnification obligation, exclude indirect damages from their potential liability, and cap their liability for direct damages. But the fact is that the party best suited to control and limit potential damages related to possible infringement of any third party's intellectual property rights by the software is the software vendor. Therefore, there should be a clear obligation for indemnifying the licensee in the event of claim regarding such possible infringement by the software or the licensee's use of the software and that indemnification obligation should be carved out from any limitation of liability or liability cap. There may be compromise language that is agreeable based on use of the software as described in the documentation and other exceptions to the indemnification obligation, but in the end the indemnification should be clear and comprehensive.

/6/ Warranties and Maintenance and Support

As I stated before, the software vendor will often point to the software warranty and perhaps support obligations when the licensee looks for a remedy related to the failure of the software to meet the requirements of the agreement. In addition to the acceptance testing rights, it's also important to confirm that the warranty and support terms are appropriate. For example, any language stating that the vendor need to only attempt to remedy any nonconformance should be scrutinized closely. If that warranty states that the vendor will use "best efforts" to address software bugs, then the licensee may end up with software that has unresolved issues for a very long period of time with the only remedy to argue that the vendor isn't using enough effort to resolve the issue. It's preferable to have language stating that the failure to resolve an issue that affects the licensee's use of the software will trigger certain licensee rights, including termination for cause if the issue is not resolved in an agreed period of time.

/7/ Termination Rights

The licensee should contemplate termination or expiration of the agreement and verify that the agreement reflects the licensee's wishes in either event. Depending on the type of software at issue, there may be a desire to have a data extract from the software prior to shutdown, the licensee may wish to engage the vendor in assisting with the transition to replacement software, or the licensee may wish to confirm that the vendor will destroy all copies of the licensee's data in its possession soon after termination or expiration.

/8/ Statement of Work

A statement of work that is part of the license agreement is frequently overlooked by the licensee's legal team. But it's imperative that the SOW be reviewed carefully both to confirm that there is no legal language that conflicts with the terms of the body of the agreement and to ensure that the business terms in the document are sufficiently detailed and measurable to clearly set forth the obligations of both parties. A vague statement of work or one that relies on the parties to work out the details following execution is of little value and does nothing to aid in the timely installation of the software.

/9/ Multiple Agreements

Vendor often rely on separate agreements for the license terms, installation services, and ongoing support services resulting in multiple separate agreements defining the relationship. This mahy be acceptable on its face, but the licensee should confirm that it has clear rights to terminate related agreements in the event one is terminated for cause or otherwise and the licensee should also consider carefully any limitations of liability or other limitations tied to the value of one agreement on its own.

/10/ Minimum Support Term / New Products

Lastly, although I've already mentioned ensuring that the support terms "have some teeth" related to actual resolution of identified issues and bugs, the licensee may also want to add language stating that the vendor will continue to support the software in the version provided to the licensee for some minimum period of time. Again, in this case, the licensee does not want to be in a position of spending considerable time and effort implementing a software package only to find the vendor is moving to entirely different solution in two years. Another consideration is whether the licensee should have the right to move to any replacement software during the support term; although that may be a less than ideal solution depending on what that transition to the new software entails.

As stated previously, this is not a comprehensive list of issues to consider addressing in a standard vendor software license agreement but rather provides a starting place that may prompt additional examination by an attorney who is otherwise unfamiliar with some of the unique intricacies of such licenses.

Find All Your Documents Quickly with X1 Search

As anyone who is involved with the drafting or editing of documents knows, the ability to quickly locate archived documents, earlier document versions, reference documents, and other files can make the difference between a slow, frustrating grind and a productive session where you can focus on the content instead of the process.

A great deal of my practice involves reviewing, drafting, and negotiating legal agreements and all the documents that go along with them. As part of the process, I often need to locate documents that I know exist somewhere, but that I may only have a vague idea of where exactly they are stored. My document management system currently exists on my Windows 10 computer with a hierarchical folder-based filing system for my current clients and all their matters along with repositories for files like prior agreements I've worked on, CLE reference materials, my own sets of alternative provisions I've found useful. But when I'm looking for a document, I'm often searching based on a party name or looking for a particular provision I know I've come across before, perhaps a paragraph describing how consultants providing services on the client site will be screened. If I were to rely solely on my memory and opening individual documents to locate the specific item I'm looking for, the process would be futile.

Windows 10 provides a new search capability -- accessible either through the taskbar search box or via Cortana -- that includes the ability to search inside documents. But I find the function virtually useless as the search results are presented essentially as a long list of documents with little ability to narrow the results or see the context of documents.

For the past few months, I've instead by using a great product that solves all of my issues in trying to quickly locate documents: X1 Search. The product is available for just $49.95 for an individual license plus annual support. It's also available for enterprise licensing and you can download a 14-day trial for free.

X1 Search is able to index the contents of all files, including Microsoft Word documents, Powerpoint slides, Excel spreadsheets, Outlook email, Gmail messages, Outlook and Gmail attachments, Adobe PDF documents, files stored within Microsoft Sharepoint, and much more. Take a look at the demonstration video below showing off some of the features.

X1 Search has the ability to search for specific words or phrases within a document, words within a document name, email subject lines, and exclude specific words or phrases, and the results are displayed almost instantly. It's simple to narrow your search to email or documents or both and then drill down to creation dates, particular document types, email sender, and more. My system currently shows 10,900 items indexed and my search results are displayed as fast as I can type in my query. X1 Search also shows a preview of the document alongside the search results with the matched text highlighted and allows the user to jump to the next occurrence of that text with the click of a button. If you find what you're looking for, you can copy and paste text right from the preview window without ever opening the document.

X1 Search has really helped improve my productivity and I recommend it for anyone looking to supplement their existing document management system.