Imply vs. Infer

There is a large group of people who confuse the words imply and infer. After reading this article, you will not be among them. And when you hear someone err in this matter, send them to this blog post immediately. Together, we can make the world a better place — one diction error at a time.

imply: v. to indicate or suggest

infer: v. to derive or conclude by reasoning

Here is an example:

To infer: what can you infer from the passage?
To imply: what does the passage imply?

These words are not so much opposites as complements. They are the two sides of a single action. Think of a pitcher throwing a ball to a catcher. Implying is like pitching and inferring is like catching.

A speaker or writer implies. It is an action initiated by the sender of the message. The listener or reader infers. Inferring is a passive action on the part of the recipient of the message. The illustration below might help you picture it.

Here’s an example:

Stanley: This math problem is so easy a third-grader could do it!

Charlie: Are you saying I’m dumb?

In this dialogue, Stanley is implying; Charlie is inferring.

The noun forms of these words are implication and inference. So, you might also say that Stanley is making an implication and Charlie is making an inference. Get it?

Another way of thinking about it is that implying means putting a suggestion into a statement and inferring is getting a suggestion out of a statement.

Now, we must be careful with these words. The pitcher-catcher analogy breaks down a little bit when you consider that while a pitcher can pitch without anyone to catch (he’d have to fetch his own ball), a catcher cannot catch what has not been thrown to him. This is not the way implication and inference works.

It’s possible for someone to make an implication without anyone noticing. The listener or reader might fail to “catch the implication” or make the correct inference. But it’s also possible for someone to make an incorrect or unfair inference. Perhaps Stanley did not intend to suggest that Charlie is dumb. If so, Stanley should be more careful with his choice of words, because, even if he implied something unintentionally, his choice of expression led Charlie to infer something negative.

So, is there an easy trick to keeping imply and infer straight?

Maybe it will help to remember that in most cases, implying must come before inferring (like pitching comes before catching), and m comes before n in the alphabet.



[1] The Write at Home BlogImply vs. Infer (by Brian Wasko)

Computer Hardware Chart Poster




Low_751x1064    Middle_1280x1813    High_4320x6120(24.1MB)

[Repost] iOS Tips: Sharing an Apple ID With Your Family

With the launch of iOS 5 and iCloud on Wednesday, Apple took another huge step towards the Post-PC era. They have increasingly made the PC less important and iCloud has meant that it is no longer the ‘hub’ to which your devices sync to – iCloud is now that hub and importantly, it is all tied to an Apple ID. As many are realizing as they update to iOS 5 and begin to use iCloud, this can be somewhat problematic when iCloud is used with the Apple ID that is shared by their whole family.

Prior to iOS 5, sharing an Apple ID wasn’t really a problem because its main purpose was for purchasing content on iTunes, using it for support purposes and purchasing items on the online Apple Store – all tasks that worked fine when sharing an ID. Now that Apple ID is tied to a bunch of services, a lot of which involve personal and private data that you don’t necessarily want to share with others – even family members. The other issue is that iCloud involves a lot of data synchronization and this doesn’t work well with multiple people as it results in data conflicts and devices syncing data (such as calendar events) that are meant for another person in the family.

Read more

[Repost] Reverse Engineering a D-Link Backdoor

All right. It’s Saturday night, I have no date, a two-liter bottle of Shasta and my all-Rush mix-tape…let’s hack.

On a whim I downloaded firmware v1.13 for the DIR-100 revA. Binwalk quickly found and extracted a SquashFS file system, and soon I had the firmware’s web server (/bin/webs) loaded into IDA:

Strings inside /bin/webs

Read more

Add Smiles to Your WordPress Blog

Smilies, also known as “emotions”, are glyphs used to convey emotions in your writing. They are a great way to brighten up your posts.

If you want to attract more visitors to comment on your blog, adding smilies is an effective method.

Here is the screenshots in comment area of my blog:

For more information about smilies of WordPress, I strongly recommend you to check WordPress Codex at

There are different ways to  to add your own smilies to your WordPress blog, and in the post I will introduce 2 of them.

Read more

Nullable Types Summary

Nullable types (supported from .NET 2.0) are instances of the System.Nullable<T> struct. A nullable type can represent the correct range of values for its underlying value type, plus an additional null value.

Nullable types are declared in one of two ways:

  • System.Nullable<T> variable


  • T? variable

The ability to assign null to numeric and Boolean types is especially useful when you are dealing with databases and other data types that contain elements that may not be assigned a value. For example, a Boolean field in a database can store the values true or false, or it may be undefined. Yes, the nullable type modifier enables C# to create value-type variables that indicate an undefined value.

T is the underlying type of the nullable type. T can be any value type including struct; it cannot be a reference type. Reference types already support the null value.

Read more

[C#] Enumeration Types Summary

An enumeration type (also named an enumeration or an enum) provides an efficient way to define a set of named integral constants that may be assigned to a variable.

Usually it is best to define an enum directly within a namespace so that all classes in the namespace can access it with equal convenience. However, an enum can also be nested within a class or struct.

Every enumeration type has an underlying type (byte, sbyte, short, ushort, int, uint, long, or ulong), which can be any integral type except char. The default underlying type of enumeration elements is int. To declare an enum of another integral type, such as byte, use a colon after the identifier followed by the type.

The default value of an enum E is the value produced by the expression (E)0, and the value of each successive enumerator is increased by 1 if it’s not explicitly assigned. When you create an enum, select the most logical default value and give it a value of zero, or you can consider creating a None enumerated constant. That will cause all enums to have that default value if they are not explicitly assigned a value when they are created.

When assigning values to the elements in the enumerator list, you can also use coputed values, for example:

enum MachineState
PowerOff = 0,
Running = 5,
Sleeping = 10,
Hibernating = Sleeping + 5

Read more

[VS] Solution to “Changes to 64-bit applications are not allowed”

One of the most popular features in the Visual Studio debugger is the ability to edit code during a debug session and have the changes apply without having to stop the debugger, recompile the application and then run the application to verify the changes. This feature is affectionately known as “Edit and Continue” or “E&C” for short.

Unfortunately, Edit and Continue isn’t supported on 64-bit. In fact, if you try to use Edit & Continue when debugging a 64-bit application, you get the following error message: “Changes to 64-bit applications are not allowed”, as shown below.

Read more

Modify Windows Registed Owner and Organization

When installing some softwares, like Microsoft Office, we are required to typed owner and organization information, which may be used for registration and displayed in “About” windows. However, these softwares usually read “RegisteredOwner” and “RegisteredOrganization” from the registry of windows system as their default user name and organization.

Now You may wonder where these two values come from. In fact, they were stored in registry when you installed you windows operation system and input your user name at the first time. After that, whether you edit your user name or add a new user, these two values will not be under the influence.

However, you can modify them though EDIT YOUR REGISTRY as follows:

Click on “Start Menu” – “RUN”, typed “regedit”, to launch your registry editor. Then navigate to

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion] ,

“RegisteredOwner” – modify your user name;

“RegisteredOrganization” – modify your organization name.

Read more

x64: Problem “The ‘Microsoft.Jet.OLEDB.4.0′ provider is not registered on the local machine.” and Solution

There are times when the coexistence of x64 and x86 code on the same machine can cause all sorts of seemingly strange issues.

Recently I was getting the following error:

The “Microsoft.Jet.OLEDB.4.0” provider is not registed on the local machine.

I think the error is generally due to either of two things:

  • you don’t have Office 2007 / 2010 Jet driver installed on your Windows;
  • or you are running a x86 application in a default x86 enviroment.

Read more