‘Login’ or ‘log in’? One word or two? It’s an oft-debated question. I’m not proposing a hard-and-fast rule, though I do have my preferences. What this post offers is a handy way of choosing between one word and two, if it’s important to you.
It’s not just logging in that’s affected. There are plenty more cases where we need to choose one word or two:
- ‘logon’ or ‘log on’
- ‘logout’ or ‘log out’
- ‘signup’ or ‘sign up’
- ‘shutdown’ or ‘shut down’
- ‘backup’ or ‘back up’
- ‘setup’ or ‘set up’
- and more, including words not related to computing, such as ‘workout’ versus ‘work out’
Who’s up for an experiment?
Warning: Don’t try this at home, unless your partner is in a good mood.
Try speaking these sentences out loud, replacing ‘bbbbbbb’ with ‘backup’ and ignoring the spelling for now:
- What is your bbbbbbb strategy?
- When did you last bbbbbbb your data?
- When did you last do a bbbbbbb?
Now try these, replacing ‘llllllll’ with ‘login’:
- What are your llllllll details?
- Where can I llllllll to the bank’s website?
- My llllllll failed.
Did you notice any pattern in the way you pronounced the words “back/up” and “log/in”? If you’re like me, your stress pattern in the middle sentences would be different from the first and third sentences.
- In the middle sentence, you would give equal emphasis to both parts of the phrase: back up; log in.
- In the first and third sentences, you would give greater emphasis to the first part of the phrase: backup; login.
And the answer is…
‘Backup’ or ‘back up’:
- What is your backup strategy?
- When did you last back up your data?
- When did you last do a backup?
‘Login’ or ‘log in’:
- What are your login details?
- Where can I log in to the bank’s website?
- My login failed.
Rules and things
It may be that you decide to go with the growing common usage, and just use one word (like ‘login’) for everything. But if you want to follow the ‘rules’, they’re something like this:
- If it’s a verb, use two words.
- If it’s a noun, including cases when the noun is used to qualify another noun, use one word.
What about hyphens (‘-’)? Technical writers try to avoid them.
Who decreed that this is how it’s done, and where is it written down? Most tech writers and other guardians of language would agree that we should be descriptive rather than prescriptive, and that there are a equally-viable alternatives out there. But we also agree that it’s good to have a standard, so that our readers have a smooth ride through the documentation and application screens.
Here are some style guides and commentaries that agree we use one word for a noun, two for a verb:
- Guardian and Observer Style Guide – Scroll down to the entries for ‘log in’ and ‘login’.
- Apple Style Guide – See the entry for ‘log in (v.), login (n., adj.), log out (v.), logout (n., adj.)‘, on page 96.
- Log in vs. login by Grammarist – This post has some useful examples from online newspapers.
- A thread on the English Language and Usage Stack Exchange – People express various opinions, but the consensus is one word for a noun, two for a verb.
- Another thread on the English Language and Usage Stack Exchange – This one is particularly cool, because someone pointed out in a comment that the instructions on the Stack Exchange page itself said ‘Sign up or login’, and Stack Exchange fixed it!
- The Wikipedia page on login – The page consistently uses ‘login’ as a noun and ‘log in’ as a verb. It also states, ‘The noun login comes from the verb (to) log in‘.
- And someone who has a strong opinion, backed up by good research: “Login” is not a verb.
Who cares? Is this a difference between US and British usage? I don’t think so. It’s more a difference between people who feel a sense of jarring disconnect when someone uses ‘login’ and the like as a verb, and people who don’t. If you do want to differentiate, the pronunciation test may be the quickest way to decide whether you need one word or two.
There’s only one word for this spider: Eek!
This spider took up residence between my window panels for a while. It’s a huntsman: huge, very fast, scary but beautiful, and largely harmless. I put the peg there for scale. It’s a large peg.
I’m composing my proceedings paper for STC Summit 2014. Not all conferences require a proceedings paper. This set me wondering: Do people find proceedings papers useful? Do you read them, either during or after the conference, or perhaps not at all?
The “proceedings” of a conference is a collection of papers written by conference speakers. The content of a proceedings paper may be a summary of the talk, or an academic treatment of the topic of the talk, or a deep dive into one aspect of the talk.
My upcoming presentation at STC Summit 2014 is API Technical Writing: What, Why and How. For the proceedings paper, I’ve decided to write a deep-dive description of APIs. In the live session at the conference, I’ll cover the same content in less depth, then focus on examples of APIs and on their documentation, and on the role of the technical writer.
Some conferences ask speakers to present their slides a couple of months ahead of the conference date, so that the slides can be included in the documentation handed out to attendees. Others, like STC Summit, ask for a proceedings paper ahead of time, and the slides much closer to the date of the event.
When attending a conference session, I sometimes follow along on the slides if they’re part of the conference package. This is helpful if I can’t see the screen too well, or if I want to make notes on the slides. It’s very seldom that I refer to the conference proceedings. I think I’ve only done that once or twice throughout the years, and it’s been when I want an in depth look into the topic of a particularly interesting session.
What do you think? Are proceedings papers useful, how do you use them, and do you prefer the slides, the papers, or both?
I’m in the throes of composition. My presentation for STC Summit 2014 is in good shape, and I’m working on the proceedings paper right now. I got to thinking about why I put myself up for speaking at conferences. It’s a lot of work! Is it worth it? I also saw a post from Neal Kaplan, who doesn’t get conferences. So I decided to blog my thoughts.
If you’d told me five years ago that you’d seen me speaking at a conference, my reaction would have been
Ha ha, nope, that must have been some other Sarah.
Public speaking scared me to death. (Actually, it still does.) I never thought I’d be able to do it. Simply standing in front of a handful of peers turned me into a blob of jelly on a roller coaster.
Then Joe Welinske asked me to speak at WritersUA in Seattle in 2009. Of course, I said “Eek, no.” But Joe’s sweet persistence persuaded me to think about it. After all, he said, I knew a lot about what was then an emerging technology for technical writing: wikis. A few days later, Joe asked me again. To my utter horror, I said yes. My thinking went along these lines: I know no-one in the US. I’ve never even been to the US. If I make a total fool of myself, it doesn’t matter. No-one I know will ever know. :D
I survived WritersUA 2009. And now, five years later, I’ve spoken at twelve conferences.
Oft-discussed benefits of attending conferences include:
- Peers: Meeting other tech writers has been hugely rewarding. It’s especially great to meet in person the people I’ve bumped into on blogs, Twitter, and other online meeting spots.
- Learning: Conferences seed ideas. I see what other people are up to, get a glimpse of new technologies, peer at different products. A while later, an idea pops up about something I can use in my own environment.
What’s the benefit of speaking yourself?
Getting funding to attend the conference is a big one. For me, living in Australia, the travel costs are too big to cover personally.
But for me, the biggie is this: Putting together a presentation makes me think about how others see what I’m doing. It makes me look at my own work, and that of my team, in a new light. It gives me a wider perspective. It firms up my own opinions on what are good procedures to follow, and what could do with tweaking.
So, a call to all conference speakers: why do you do it? :)
I’m putting together a list of the various types of API we might encounter. This is primarily a resource for technical writers, who may need to know what type of thing they could be asked to document if they take on the role of API tech writer.
A Google search didn’t reveal much material about API types. The best source of information is the Wikipedia page on APIs.
I tried searching for “API classification” and received plenty of information about engine oil. :D
So here goes… my attempt at an API classification.
Before we start: What is an API?
API stands for “application programming interface”. Put briefly, an API consists of a set of rules describing how one application can interact with another, and the mechanisms that allow such interaction to happen.
What is an interaction between two applications? Typically, an interaction occurs when one application would like to access the data held by another application, or send data to that app. Another interaction might be when one application wants to request a service from another.
A key thing to note: An API is (usually) not a user interface. It provides software-to-software interaction, not user interactions. Sometimes, though, an API may provide a user interface widget, which an app can grab and display.
There are two primary benefits that an API brings:
- Simplification, by providing a layer that hides complexity.
- Microsoft Word asks the active printer to return its status. Microsoft Word does not care what kind of printer is available. The API worries about that.
- Bloggers on WordPress can embed their Twitter stream into their blog’s sidebar. WordPress uses the Twitter API to enable this.
Web service APIs
A web service is a piece of software, or a system, that provides access to its services via an address on the World Wide Web. This address is known as a URI, or URL. The key point is that the web service offers its information in a format that other applications can “understand”, or parse.
A web service uses HTTP to exchange information. (Or HTTPS, which is an encrypted version of HTTP.)
When an application, the “client”, wants to communicate with the web service, the application sends an HTTP request. The web service then sends an HTTP response.
In the request, much of the required information is passed in the URL itself, as paths in the URL and/or as URL parameters.
In addition to the URL, HTTP requests and responses will include information in the header and the body of the message. Request and response “headers” include various types of metadata, such as the browser being used, the content type, language (human, not software), and more.
The body includes additional data in the request or response. Common data formats are XML and JSON. The process of converting data from internal format (for example, a database or a class) to the transferrable format is called “data serialization”.
Most often-used types of web service:
SOAP (Simple Object Access Protocol)
SOAP is a protocol that defines the communication method, and the structure of the messages. The data transfer format is XML.
A SOAP service publishes a definition of its interface in a machine-readable document, using WSDL – Web Services Definition Language.
XML-RPC is an older protocol than SOAP. It uses a specific XML format for data transfer, whereas SOAP allows a proprietary XML format. An XML-RPC call tends to be much simpler, and to use less bandwidth, than a SOAP call. (SOAP is known to be “verbose”.) SOAP and XML-RPC have different levels of support in various libraries. There’s good information in this Stack Overflow thread.
JSON-RPC is similar to XML-RPC, but uses JSON instead of XML for data transfer.
REST (Representational state transfer)
REST is not a protocol, but rather a set of architectural principles. The thing that differentiates a REST service from other web services is its architecture. Some of the characteristics required of a REST service include simplicity of interfaces, identification of resources within the request, and the ability to manipulate the resources via the interface. There are a number of other, more fundamental architectural requirements too.
Looked at from the point of view of a client application, REST services tend to offer an easy-to-parse URL structure, consisting primarily of nouns that reflect the logical, hierarchical categories of the data on offer.
For example, let’s say you need to get a list of trees from an API at example-tree-service.com. You might submit a request like this:
Perhaps you already know the scientific name of a tree family, Leptospermum, and you need to know the common name. You request might look like this:
The tree service might then send a response containing a bunch of information about the Leptospermum family, including a field “common-name” containing the value “teatrees”.
An example of a REST API: The JIRA REST APIs from Atlassian.
The most commonly-used data format is JSON or XML. Often the service will offer a choice, and the client can request one or the other by including “json” or “xml” in the URL path or in a URL parameter.
A REST service may publish a WADL document describing the resources it has available, and the methods it will accept to access those resources. WADL stands for Web Application Description Language. It’s an XML format that provides a machine-processable description of an HTTP-based Web applications. If there’s no WADL document available, developers rely on documentation to tell them what resources and methods are available. Most web services still rely on documentation rather than a machine-readable description of their interface.
In a well-defined REST service, there is no tight coupling between the REST interface and the underlying architecture of the service. This is often cited as the main advantage of REST over RPC (Remote Procedure Call) architectures. Clients calling the service are not dependent on the underlying method names or data structures of the service. Instead, the REST interfaces merely represent the logical resources and functionality available. The structure of the data in the message is independent of the service’s data structure. The message contains a representation of the data. Changes to the underlying service must not break the clients.
To use this type of API, an application will reference or import a library of code or of binary functions, and use the functions/routines from that library to perform actions and exchange information.
TWAIN is an API and communications protocol for scanners and cameras. For example, when you buy an HP scanner you will also get a TWAIN software library, written to comply with the TWAIN standard which supports multiple device types. Applications will use TWAIN to talk to your scanner.
The Oracle Call Interface (OCI) consists of a set of C-language software APIs which provide an interface to the Oracle database.
Class-based APIs (object oriented) – a special type of library-based API
These APIs provide data and functionality organised around classes, as defined in object-oriented languages. Each class offers a discrete set of information and associated behaviours, often corresponding to a human understanding of a concept.
The Java programming community offers a number of good examples of object oriented, or classed-based, APIs. For example:
- The Java API itself. This is a set of classes that come along with the Java development environment (JDK) and which are indispensable if you’re going to program in Java. The Java language includes the basic syntax and primitive types. The classes in the Java API provide everything else – things like strings, arrays, the renowned Object, and much much more.
- The Android API.
- The Google Maps Android API.
Functions or routines in an OS
Operating systems, like Windows and UNIX, provide many functions and routines that we use every day without thinking about it. These OSes offer an API too, so that software programs can interact with the OS.
Examples of functionality provided by the API: Access to the file system, printing documents, displaying the content of a file on the console, error notifications, access to the user interface provided by the OS.
Object remoting APIs
These APIs use a remoting protocol, such as CORBA – Common Object Request Broker Architecture. Such an API works by implementing local proxy objects to represent the remote objects, and interacting with the local object. The same interaction is then duplicated on the remote object, via the protocol.
As far as I can tell, most of these APIs are now considered legacy. Another example is .NET Remoting.
Hardware APIs are for manipulating addressable pieces of hardware on a device – things like video acceleration, hard disk drives, PCI buses.
Other developer products
There’s more to life than APIs, of course. :) A technical writer may be called upon to document other developer-focused products:
- SDKs – software development kits, which typically contain a set of tools that developers use to interact with, and develop on top of, your product.
- IDE plugins – custom additions to standard development environments, which give developers the extra tools they need to interact with your product from within a development environment like Eclipse, IntelliJ IDEA, or Visual Studio.
- Code libraries that developers can import into their projects.
- Other frameworks that support software development in a specific environment, such as custom XML specifications, templates, UI guidelines.
There’s more than one way to can has a cat
Your turn. What have I missed, and are there more useful ways of classifying APIs?
I’m curious to see how things have changed since I last asked this question, back in March 2012: What’s your favourite API documentation, and why?
Part of the reason for asking is that I’ll soon present a session at STC Summit 2014 on API technical writing. I want to give examples of excellent documentation. I have some favourite documentation sets myself, but it’s great to get the opinions of developers and other technical writers too.
So, have at it! :) Please comment on this post.
What’s your favourite API documentation, and why?
I’ll also collect any suggestions that people send via Twitter, Google+, and other channels, and add the links to this post.
OT: This has to be the world’s best bird. Well, it’s my current favourite anyway. This is a Tawny Frogmouth, spotted on an early morning walk. Tawny Frogmouths are night birds, about the size of a large owl (34-52 centimetres). During the day, they pretend to be old tree branches.