I’m a software developer, data scientist, artist and technology writer.
If you have a challenging technical problem or would just like some advice, then send me an email or message me on Twitter! My virtual door is always open.
Oh – and if you want to learn how a computer works or how to use the Rust programming language, then consider buying my book Rust in Action.
Chicago Boss is a web framework that you have not yet heard about. Once you do, it will change your expectations forever. This is a framework which has been built specifically with the intention of keeping operational costs low. Learn why this is important and how you can take advantage of it in your next project.
Diaspora* and other projects to build distributed web services are great. However, Rails is a memory hog. In order to get a Rails app online, you probably also need to know Passenger. Or, should you use NGINX? Or, is Apache okay? As your application’s aspirations increase, so does its complexity. Soon you’ll need a background task queue. Which one do you choose? If you’re successful, you will serve a decent amount of traffic, so you need to cache your views and database queries. Let’s add Varnish and memcached.
With Chicago Boss, built on its Erlang base, everything comes included. Webserver, message queue, email, real-time web support (COMET and websockets) are all there. Plus you get the standard features of every MVC framework such as easy routing/dispatch, view templates and a sophisticated testing infrastructure.
Having everything bundled together makes installation a breeze. With a speedy installation, non-sysadmins have fewer opportunities to make mistakes and are likely to encounter fewer hair-pulling weekends.
But for you, as someone developing these tools, maybe installation and deployment is not what matters. For you, features matter. The faster your test suite runs, the faster you can deploy. Chicago Boss will win here too.
For building systems which are designed to be deployed by thousands of people, ease of installation and low cost of maintenance are critical. You should be running a system that delivers high performance and high reliability. Erlang is your friend here. Downtime for systems built on Erlang is measured in milliseconds per year.
Chicago Boss is built by an economist who started his career with a pager supporting C++ applications. When things broke, he didn’t sleep. It seems that ever since then, he has tried to eliminate this pain from other people’s lives.
Your time matters. Evan Miller, Chicago Boss’s creator, is happy to irritate the rest of the Erlang community for the sake of the framework’s user base. He has even written his own compiler toolchain to simplify your learning curve.
Learn more about the motivations for framework by watching the first 10 minutes of this talk. Become entranced by its technical strengths by watching the rest.
Answer the question quickly. Do not introduce the topic, its terminology or introduce new concepts.
An neat way of expressing this comes from an excellent web style guide produced by the UK Government:
For example, the answer ‘National Minimum Wage rate’ should only give the rate, not information about what the National Minimum Wage is, how to pay it, etc (although you should be clearly linking to related content that does). Stick exclusively to the answer – don’t be tempted to include extra information, however useful this might appear to be.
— Government Digital Service
Specific answers actually answer the question. If people are already inside your FAQ, they will probably be happy to look into things in more depth if there isn’t enough information. Shorter is better.
People who are searching for answers already know the context. Readers do not require an introduction to the whole topic. If you are producing a set of specific questions, make sure they are associated with a set of specific answers.
Short answers mean fewer opportunities for controversy. Every sentence introduces an opportunity for bikeshedding.
Mistakes are more obvious. It is easy to tell if something is incorrect when the wording is clear and the subject matter specific.
Your FAQ should not be a dead end. Provide clear instructions for seeking further help.
Try to undertake some user acceptance testing. When writing your answers, you will probably be suffering from expert blindness.
Do use hyperlinks to refer to richer content. There is bound to be someone who will be grateful. I’ve begun to resent sites who simply link to a Wikipedia page though. That isn’t really useful to me. I know how to search for an unfamiliar term in Wikipedia myself.
Lastly, consider whether an FAQ is really what you want. You may be duplicating content or neglecting other areas of your site which could benefit from clearer documentation
Language codes, country codes and possibly even dates should not exist in URLs.
When URLs are truncated by syndicators, such as Twitter, all that is left is something like example.com/en/posts/20…. Not very useful.
To get a sense of a competitor’s level of engagement, http://search.twitter.com is a great tool. To begin, just add a user’s name in the search bar. You’ll be greeted with every message to and from that account within the last 3 or so days.
The search interface makes it very simple to see exactly who is talking to your target company, what they are talking about and how your target company responds. In essence, you are privy to their complete interaction - meaning you’re well You can also get a sense of the type of Twitter strategy that they are using you can draw inferences about. Do they respond quickly? Are they informal? Is there a particular type of day that they tweet?
You can get a sense of what positive tweets are being sent if you include a smile emoticon, :), with your query.
“@timClicks :)” returns messages like: @timClicks Thanks so much Tim. :-). Thankfully, there are no results for “@timClicks :(”.
Remember, that it’s possible to analyse competitors that are not even using Twitter. Not having a Twitter account doesn’t prevent people from tweeting about you. Experiment by searching for trade marks, company names or governments.
Search is great, but it doesn’t give you a full insight into a competitor’s use of Twitter. They might be sending great deals to selected followers via direct messages, for example. To find out, create an account and become their customer. Do not impersonate someone or indulge in deceptive conduct. Instead, make some genuine enquiries. Carry out a few purchases. Assess their response.
Some questions to think about:
Your company needs to make the ethical decision about how far to take this strategy. It’s plausible that you could create accounts in many target demographics to interact with everyone in your industry. This is ultimately very close to breaching Twitter’s rules. However, as long as you are being genuine, it is highly likely that you will be able to gain large quantities of information about how your industry interacts with new media.
Here, we’re looking at building websites that can cater for both ‘normal’ users as well as mobile devices.
Your application is not the only thing that your user will be doing. The most basic element of crafting a GUI application, that’s different from the web is making sure that there is an effective pause mode. Make sure that your code and data is robust enough. That
mouseoverWith touch screens, there’s no mouse cursor. So don’t rely on a hover state to indicate that something will happen if it’s clicked. Buttons need to look like buttons now.
Mobile screens tend to be smaller, but actually have a higher pixel count than many of your other users’ monitors. The problem with this is that those smaller form-factor devices will scale images up, because they tend to assume that your CSS style sheets are built with most monitors in mind.
The upshot is that your raster thumbnails will look yuck to mobile users, but great to you. To avoid this, provide images that are wider than the HTML element’s width.
There are a number of reasons why JavaScript has beaten other technologies. Don’t cut against the grain.
If you want your iPad users to really smile, take some time to learn the -webkit CSS extensions. They’ll look great. And your tech soul will be happy because you’re using the GPU to do what it’s supposed to.