The Cost of Bad Data is the Illusion of Knowledge

dice_illusion

I saw this article in LinkedIn today  by Tomasz Tunguz which talks about the effects of bad data:

Each time I open Salesforce in my browser, I think of Steven Hawking. It’s because of an aphorism an entrepreneur shared with me a few weeks ago. He said:

> The cost to fix a data error at the time of entry is $1. The cost to fix it an hour after it’s been entered is $10. And the cost to fix it several months later is $100+.

Take for example a venture capitalist’s CRM tool. If I mistype an email address or the details of the last fund raise, it might cost me a minute or two to fix it at that very moment. A minute of time is worth about $1.

If I’m lazy and don’t correct the error, later on that day one of my colleagues might search our CRM for the company and comes across the erroneous record which he suspects is inaccurate. First, he will check his notes, then he will call me to verify and then he will change the record. The rigamarole has undermined his trust of my data and the ten minutes he spent correcting my data entry are wasted.

Worst of all is if I contact a startup to inquire about an upcoming fund raise with incorrect data. As a result, I could miss an opportunity to partner with a great company because of incorrect timing or lose credibility with the startup’s executive team. The cost to the firm could be in the tens of millions of dollars.

All because I was lazy updating the CRM record.

Data promises compounding returns. The more data you have on a customer or prospect or your own business, the better the insights you can draw and the better decisions you can make. But these returns are blind to the quality of data.

Bad data has equally great compounding effects. And as Hawking so succinctly put it:

“The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge.” – Stephen Hawking

I agree. Data which is incomplete, incorrect or misplaced can cost a company a lot of money to fix. Decision makers need to have the highest quality of information all the time to make good judgements based on the information they are provided.

Can you imagine a CEO making decisions on how many employees to layoff without the knowledge on how much his company is making? Or a Marketing campaign without knowing who the target market is? How about a war general planning an attack without information on the coordinates of the mission and how much resitance he/she will face?

Some data is good but a complete set of information is better because it gives you better insights. The more information you have the better decisions you can make.

A colleague once told me “Data is King”, I agree, Data is King and misrepresentation of the King can cost you your head. 🙂

p.s: You know whats worst than bad data? Accepting bad data and making yourself believe it is good data.

Good Leaders Are Invaluable To A Company. Bad Leaders Will Destroy It.

Difference Between Boss and Leader
(image credit: buzzhunt.co.uk)

I just found this article at Forbes.com written by Amy Reese Anderson and it’s just so true. A lot of leaders tend to forget that leadership is not all about titles and designation. Leadership is about gaining respect and earning you leadership role from those you lead.

Remember, just because you have a hammer it doesn’t mean you need to start swinging.

How To: Determine what Adobe Flash version is currently installed in a machine using C#

Here are two ways you can determine what version of Adobe Flash is currently installed in a machine using C#.

1. You can read the Registry entry for Adobe Flash player located in HKEY_LOCAL_MACHINE\SOFTWARE\MACROMEDIA\FLASHPLAYER and read the value for CurrentVersion key

2. Use Reflection by creating a new SWFObject (Flash Object) and reading its version property

Both functions will give you the version number in the form of a string for the currently installed Adobe Flash in your machine.

I personally preffer the Reflection method since it is cleaner and not dependent on registry key paths.

How To: View web page source in Safari Browser

Safari_Browser_Advanced_Tab

By default, Safari web browser does not allow you to view source files of a web page. In order for you to have this feature you need to go to your Safari preference and enable the Develop menu.

To enable this menu follow these steps:

  1. While you Safari browser is open, click Safari menu.
  2. Next click Preference
  3. Then click the Advance tab
  4. In the Advance tab, find the checkbox that says “Show Develop menu in menu bar” and check it.
  5. Close the preference window and you will notice a new menu item in the menu bar appeared called “Develop”.

To view a page’s HTML source:

  1. Click “Develop” in the Safari menu bar.
  2. Then select “Show Page Source” to view the current page’s HTML source.
  3. This will show you a window containing the source code for the current page you are viewing.

Learn Windows 8 with Scott Hanselman

Probably the best Windows 8 capability demonstration I have seen. Scott Hanselman did a really good job demonstrating what you can do with Windows 8’s new interface without getting you bored.

Video Link: https://www.youtube.com/watch?feature=player_detailpage&v=wi8NpwiEuzc

My tools of the trade 2012

Rusty Winch by Geoff Lawrence

A friend of mine asked me the other day about the tools I am using while developing applications and it took me a good few minutes to tell him all of things I used. I figured I should put it online just in case someone ask again in the future since it was a lot to talk about. So here it goes:

Microsoft Visual Studio – My development best friend.
NetBeans – C++/Java/PHP development IDE. I used to use if for Ruby too but support has since been dropped.
Eclipse – For my Android obsession. I used this for Java as well but not as much compared to Netbeans.
Xcode – Emergency relief when I’m bored with Android and C#.
CodeRush – Code Refactoring add-on for Microsoft Visual studio that doesn’t suck. I love ReSharper too but I haven’t found a reason that would make me switch.
WCF Storm – Web Services tester that is way better than the standard WCF Test client from Microsoft
Fiddler – Web debugging too for HTTP testing. This thing rocks. Trust me.
StyleCop – Code analysis tool ti make sure you are following a set of coding guidelines(style).
LinqPad – More than just a LINQ expression builder. A good way to test expressions before loading them to your actual code.
JsFiddle – Javascript, HTML and CSS tester that helps you isolate bugs
BrowserShots – A nice site that shows you how your site looks like in multiple browsers.
JsLint – Javascript code evaluator that tells you if your code sucks.
JetBrains dotPeek – Free .NET code decompiler from JetBrains. A replacement for Reflector.
BitBucket – For my private source code repositories. GitHub for my not so private code repositories
SourceTree – Mercurial, Git and Subervision(SVN) repository manager for Mac. I use TortoiseSVN for Subversion and TortoiseHG for Mercurial repository management access in Windows
Evernote – Notes and more notes. I used this as repository for ideas, meeting notes and anything else that I need to remember.
Skitch – Screenshot tool from the makers of Evernote for the Mac
Balsamiq – My preferred wire framing tool. SketchFlow comes second.
OmniGraffle – Microsoft Visio replacement for Macs. Can be used for wire framing too.
LinkChecker – Link validator for websites. Scans websites for broken links and generates a report on what they are.
Console2 – Probably the best Windows Command prompt replacement. This thing is glued with awesomeness.
PixResizer – A free batch picture resizer for Windows that doesn’t kill your machine’s resources.
7zip – a free Winzip replacement.
Notepad++ – Best notepad replacement in Windows. Notepad2 is also nice. I use TextWrangler when I’m on a Mac.
WinMerge – a free Document comparison and merging tool
Dropbox – the must have Cloud-based storage system
Trello – Task Management made easy. Real-time collaboration with notifications. Works on your phone too!
RegExr – Simple yet elegant Regular Expression(RegEx) testing tool

Here’s some Firefox Add-Ons that i can’t live without.
Firebug – Must have add-on for testing and debugging pages in Firefox. Enables you to modify HTML, CSS and Javascript on the fly to see how they render in the browser
Web Developer – Get this compliment to FireBug.
ColorZilla – Color Picker and Gradient Generator. Also try Rainbow Color Tools
Pixlr Grabber – Image grabber. Allows you to save images on a web page.
ShowIP – A really neat tool that allows users to see the IP address of the current web page in their status bar.
fontinfo – Tells the user which font are used on the current page
YSlow – A tool that helps analyze why pages are slow

There’s probably more things that I forgot to list (like development frameworks e.g Ninject and Moq) so I promise I’ll create a new post in the next few days talking about those frameworks.

How about you? What tools/applications are you using in your day to day life as a developer/architect/programmer?

Cheers!

Keith Rull

Error: The reference assembly could not be resolved because it has a dependency on System.Web

I was working on a sample project today when I encountered this error after adding a new Console Application project to my Visual Studio solution that references other Class Library projects contained in the solution:

.NET 4.0 Client Profile Assembly Error

The referenced assembly “C:devcenterdotnetpersonalKeithRull.BibliaKeithRull.Biblia.Service.RepositorybinDebugKeithRull.Biblia.Service.Repository.dll” could not be resolved because it has a dependency on “System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” which is not in the currently targeted framework “.NETFramework,Version=v4.0,Profile=Client”. Please remove references to assemblies not in the targeted framework or consider retargeting your project. KeithRull.Biblia.ConsoleApp.

There are two possible cause of this error. The first possible reason is when you have an assembly that is referencing System.Web and you try to add that assembly to project that does not have any reference to System.Web (if necessary which most of the time is not). The second possible reason is that your project is using the .NET 4.0 Client Profile which is just a subset of the .NET Framework. Below are the steps that illustrate how to fix this issue.

1. Select your project, right-click and then select “Properties”.

Visual Studio Properties Menu

 

2. The properties tab, change the value for “Target Framework” and then set it’s value to “.NET Framework 4”

Visual Studio Change Target Framework

Compile your application and that should fix the problem.

Interested in learning more? Below are some useful links if you want to read more about this issue and the .NET 4 Client Profile.

Mobile Application User Interface Patterns

Mobile UI Patterns
Mobile Application User Interface Patterns

A coworker showed me this website today and I was amazed with collection of mobile application user interfaces this website has collected. The site contains screenshots of some of the popular mobile apps as well as some applications that are not as popular but with great interface designs.

Bookmark and checkout http://mobile-patterns.com/. This site may come handy when you need some mobile design ideas and motivations. 😉

Error: This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

Assembly is loaded by a newer runtime error

I received this error while deploying a WCF 4.0 service to a newly created virtual directory.

 

Could not load file or assembly ‘KeithRull.Biblia.Service’ or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded. 

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.BadImageFormatException: Could not load file or assembly ‘KeithRull.Biblia.Service’ or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly ‘KeithRull.Biblia.Service’ could not be loaded.

WRN: Assembly binding logging is turned OFF.To enable assembly bind failure logging, set the registry value [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) to 1.

Note: There is some performance penalty associated with assembly bind failure logging.

To turn this feature off, remove the registry value [HKLMSoftwareMicrosoftFusion!EnableLog].

 

It turns out that the error occurred because the application pool for this new virtual directory is using .NET 2.0 profile instead of .NET 4.0 which is the .NET framework version that I used to compile my web service.