Wacnet – Making the jump to hardware

PCs are everywhere. Except when you need one.

I’ve recently released an open source BACnet webserver and toolkit onto this world. As with my traditional naivety, I was saying:

“It’s really simple! You just have to take any PC that you have available and make sure it’s never turned off.”

The response I got from many of my customers was underwhelming to say the least.

Well, turns out PCs are kind of a hard thing to get for some building managers. They can’t just take an old PC laying in a storage bin… many need to contact their IT department, ask the permission to get a PC and get someone to install and configure it. This often also means a new windows licence, new login/password for the machine… in short, it’s a pain.

In search of cheap computers

I decided to take matters into my own hands and to install Wacnet on the smallest machine I could get my hands on. This way, I might be able to sell small computers to my customers for a fraction of the cost of using one already owned by them. (This statement alone is mind boggling… it might be cheaper to buy new than to re-use something you already own if you must go thought all administrative hoops.)

First I was thinking about small netbooks. About 2 years ago, I was able to get a brand new one for around $300. Surely now they would be cheaper!

Wrong. Instead, the market shifted towards tablet with a nice little mean price of $500. Not really what I wanted.

The sad thing about tablets is also how hard it can be to tinker with them. Especially those without USB ports.

Almost dedicated hardware

A little saddened by this market shift, I decided to take a look to the Raspberry Pi and alike. In short, all the ARM based miniature PCs.

Not only was I able to install Wacnet with minimum hassle, I was also able to configure a linux distro to boot quickly and start Wacnet immediately.

For the user, this means no more installation necessary and no more shell script or batch file to start the application automatically.

You plug the power on the mini PC, and Wacnet starts! Magic!

I’ve effectively turned this mini PC into a (almost) dedicated hardware.

Behold, the mini PC I’m currently using:

https://frozenlock.files.wordpress.com/2013/10/wpid-pakiton-mk802.jpg

MK802 picture shamelessly taken from http://pakitong.blogspot.ca/

While this is known as the MK802 Allwinner A10 Mini PC, Wacnet should be able to run on all the devices based on the same architecture.

A complete plug and play BACnet webserver for a fraction of the price of some thermostats? Count me in!


It’s Easier to Build on Bitcoin than the Legacy Financial System

While everyone and their mother are busy crying “I told you so!” and “No, Bitcoin is the future, just wait!” after the 50% drop from this morning’s high, I’ll take a few minutes to explain why Bitcoin is relevant.

Accepting payment as a business

When I started my business, I had to accept payment from my customers. Few realize how hard it is to get paid. Notice I didn’t said ‘make a product’, or even ‘market the product’, no: getting paid is hard.

Cash

Cash? Well no, of course my customers won’t send money in the mail.

Checks

So checks perhaps? Some might pay this way. To do this, I need to open a new account at my bank, because they won’t accept that I make deposit with a check that isn’t to my name. Think about it; how dumb is it that we can’t deposit money as we want in our accounts? Well because banks must protect their backs and refuse to accept anything that could be a fraud. In this case, I could have stolen or intercepted the check and tried to deposit it in my account. Fair enough. However I still have to open a new account, with all the bureaucracy and fees that follow. Note that adding a pseudonym to my account would have done the same thing, security wise, as opening a new account. But for an unknown (surely justifiable) reason, I can’t just do that.

Credit cards

I offer a web service, so payment by credit card would make sense. Or does it? Adult middle-class occidentals like to think that everyone have a credit card. 14 years old? You’re out of luck in many jurisdiction. Perhaps are you even in the number of countries that don’t have them? There’s also no guarantee I’ll be able to accept all credit cards. (American Express, Visa, Mastercard…) But assuming that I didn’t just lost half of my potential customers, I still have to use a credit card processor service. This means fees. Oh and there’s also the risk of chargebacks. You know, this silly thing where anyone can call his credit card issuer and say “Hey, I didn’t buy this.” Not only will the merchant lose his sale’s money, but he must in addition pay another fee. Because, you know, it’s his fault.

Paypal

Paypal is like a horrible hybrid of all of the above. Can’t be used from everywhere, fees, and truly horrible stories. (And a horrible API by the way.)

Receive salary as a worker

Ever noticed that when you start working somewhere, they ask for your banking information? Want to work as an engineer? Good luck getting paid cash. It is assumed you have a bank account. You want to get paid where you work? How silly is that! It’s not as if you were going to work to get paid. Oh, wait…

This of course is just accepted as normal, because most people got their first bank account when they were very young, probably accompanied by their parents. In fact, let’s look at what the average Joe has done, banking wise:

  • Asked for a bank account (sign many papers, personal IDs);
  • Asked for a debit card (sign other papers, memorize PIN);
  • Asked for a credit card (sign yet other papers, memorize PIN);
  • Asked for checks (ok, nothing to sign here. Still a pain to write a check);
  • Asked to open another account (papers…);
  • Asked for web access (sign papers, create account, memorize password);
  • Asked to register an account to trade stocks (sign papers, perhaps another password);
  • Asked for a special retirement account (sign papers);

Then, when presented with an alternative, most people will only consider their current situation. “I can have something that is slightly better than my current situation? Meh…” (They would be wrong of course, it’s not just slightly better.)

It’s as if I had a magic machine that could teach me, in 10 seconds, the equivalent of a degree in my field. Then I would discard it as silly, because I have already studied it. Well, sure I have, but plenty of others didn’t!

Also, notice that for each step, you need to ask for something. You can’t do it yourself.

But what if you could be paid without having to deal with a bank? What if you could, with a single click, create a new account?

Building things

For the makers of this world, it’s also much more easy to work with bitcoins. Want to hack yourself a point-of-sale terminal in a few hours and try it live on your bank? Good luck with that…

How about building a casino in Minecraft? How would you hook that up with your bank?

And how about asking for tip? Now you simply have to leave your bitcoin address in a video description or a the bottom of an article and everyone can send you some bitcoins.

Bitcoin isn’t just perfect for the digital age, it’s also an environment where you can build and create things. HTTP isn’t great per se, but everything built with it gives us a rich world to explore. You can expect to have the same for the payment system. Bitcoin in itself isn’t great (it’s brilliant, but not great). It’s everything that will be built on top of it that will prove to be amazing.

This is why I’m a proponent of Bitcoin. Not for what it is now, but for what it will become. It just needs a little bit of love, and plenty of speculators! 😉


Bitcoin: may the value rise!

Bitcoin is like nothing that has ever existed on this world. Ever. It’s a way to protect wealth from any assault, while simultaneously being able to transfer it to anyone, anywhere in the world, without any interference. You could be a millionaire and no one has to know, not even a banker or a government.

This week, Bloomberg really shined by inviting someone who actually looked into Bitcoin before starting talking about it:

He sees the potential, but at the same time acknowledges that we are in uncharted waters.

Many are nervous with the rising price. With its unique characteristics, Bitcoin can be seen as a commodity. And as most commodities, a 1000% rise in value is often a sign of bubble.

Unless…

Unless… you are talking about monetization. This is a process by which a commodity becomes money. Let me cite Konrad S. Graf, as he explains it in a better way than I ever could:

(…) In the case of a monetization event, though, the practical use-value of the trading unit (not only its price in terms of other goods or monies) actually does rise with the number of people using it and the depth of the market. To imagine how different this is from a classic asset bubble, it would be as if not only the price of bubble-era houses were rising, but also that their actual sought-after qualities as houses were improving spontaneously at the same time. Such houses might sprout new rooms with no one building them, with new paint jobs appearing mysteriously overnight without any painters having visited.

(I highly suggest you read the entire article; the insights are brilliant. Hyper-monetization: Questioning the “Bitcoin bubble” bubble.)

For money, the more the value rise, the better it is!

Let’s try to see it with a big company viewpoint. Would Amazon even consider to use Bitcoin if the entire market cap is less than its own cash flow? Of course not! So the first users are necessarily the small ones. They buy, use it, increase the price, and then the market cap can go to a billion. This in turns allow for medium enterprises to join the movement. They start accepting payments in the new currency and building infrastructure around it. This activity makes the currency more valuable and the price rises again… and again and again, in a self reinforcing feedback loop.

Let me repeat this again: for money, the higher the value, the better it is! Is there speculators trying to make a quick buck on Bitcoin’s back? Absolutely. Many of them don’t even understand how Bitcoin works. And yet, whether they want it or not, they increase Bitcoin’s market depth. They increase its value, making it more and more powerful. Each additional dollar in the price legitimizes Bitcoin, makes it more trustable and more acceptable.

At 0.10$, it was toy money. At 1$, a weird currency for anarchists and drug addicts. At 100$, it’s a worldwide experiment about money. At 1000$, it’s an obvious investment.


Bitcoin revisited – bubble?

How to read a price chart (hint: logarithmic scale)

Ok, first of all, ‘journalists’ should stop showing the price of bitcoins in a linear scale. You should never-EVER look a price/time graph in a linear scale, because what is interesting here is the movement in terms of percentage. For example, if the price of bitcoins goes from 10$ to 20$, that’s a 10$ increase, but also a 200% increase. However, if the price goes from 100$ to 110$, it still is a 10$ increase, but a less impressive 10% in terms of proportions.

Let’s look at the chart most ‘journalists’ use:

https://frozenlock.files.wordpress.com/2013/03/wpid-bitcoin-linear.png

OMG!!! It’s skyrocketing! It’s a bubble!

Now let’s use a decent logarithmic scale, shall we?

https://frozenlock.files.wordpress.com/2013/03/wpid-bitcoin-logarithmic.png

Boring!

A boring upward trend. And yet, this is much more helpful to anyone wanting to analyse the price movement. Notice how the last few months were in fact slow compared to previous years? But NOW it’s a bubble because NOW the mainstream media look at it. Yeah right…

Oh and they do a terrible job at it. They are completely and utterly clueless.

I cringed so hard watching this that my face hurts…

Bitcoin is more than a currency

Even those who get Bitcoin don’t seem to realize that it’s much more than just a currency. It’s a distributed public ledger. It’s an environment onto which you can bootstrap more financial tools. This is so important. I don’t know how to stretch this enough.

Smart properties

You can use Bitcoin as smart property. I’ve written on this subject in the past, and a there’s a bunch of more advanced theory available with a simple Google search. As a brief summary, imagine you could somehow attach a property/stock to a bitcoin. You could transfer the ownership to anyone, anywhere in the world.

Skipping a technological step

Most people don’t immediately grasp what it means to jump a step in technological evolution. Take the cellphones for example. For most occidental countries, there was the telegram and then the first phone lines. Operators needed to manually connect two wires together when people wanted to talk to each other. Eventually the system evolved and everyone had a phone in their home. This required physical phone lines to be installed almost everywhere and represented a huge capital investment.

Then came the cellphone. Slowly, people started to develop the technology and to use it, driving the price down. What did it mean for poorer countries? They could go, in their economic development, directly from harvesting crops to using cellphones without having to invest the huge capital necessary to install phone lines! They jumped a technological step and saved a fortune by doing so.

Now, imagine you could do the same thing, but for the whole property and stock market scheme. No need to erect a huge government adjacency to overlook every transactions. For virtual goods, you don’t even need to have a reliable court system in place! (Some don’t realize how developing a legal system in a country is a bewildering adventure. It takes an appropriate culture, a restrained government, peace…). And now the final touch: It’s also incredibly secure, because you have the security of the blockchain with you!

In summary, you have access to a market without borders, with low fees, with an incredible security, that cannot be frozen and that works 24h/24h.

Wealth is now force proof

For the first time in the history of mankind, force can’t be used to take wealth. How is that not the single most important evolution in all history?

Even if some people know you have 10 000 BTC, they can’t do anything about it. Sure they can torture you, but unless you give in, they have no way of getting to your wealth. Imagine that a government decides to take money directly from its citizens bank account (that would never happen, of course…). With Bitcoin, for the first time ever, they can’t.

You can transfer your bitcoins to anyone, anywhere in the world, without any 3rd party being able to stop or steal from you. Your wealth is now in your control.

“But I don’t like that it enables drugs, sex, and Rock ‘n’ Roll!”

Who cares? Bitcoin is here, it exists, it works and its resilient. Does it have all the necessary qualities to be a useful tool? Is it interesting for the wealth creators of this world? If so, your opinion really doesn’t matter. And that’s the beauty of it!

Oh, but of course, it’s a bubble!


Introducing Wacnet: a BACnet Webserver

Here it is! A free open source BACnet webserver to help everyone with their BACnet networks!

  • Run without any installation;
  • Can run directly from a USB flash drive;
  • No licence or limit on the number of BACnet objects;

Rationale

The purpose of BACnet is to provide interoperability between devices from multiple manufacturers.

The idea is that if all devices speak the same language, no one will be ‘trapped’ with a proprietary protocol, forcing him to always buy at the same place.

This common language also have other advantages, such as making it easy to gather data and make advanced analysis. Simply checking the historical data plotted on a graph is enough to find and solve most problem.

However, despite all BACnet’s promises, the landscape is still mostly occupied by a handful of manufacturers.

In addition, BACnet is pitched as an ‘open protocol’, but the standards need to be ordered; even bacnet.org doesn’t provide a link to download the specs. This isn’t making it easy for newcomers. Want to see and try BACnet? Well, send us money and we’ll send you a boring pdf, and maybe, maybe you will stick with us.

For the developers, there’s some highly cryptic application that will provide some support, but for the newcomer that’s simply counterproductive to even try them.

This results in an horrible situations for the users. Building managers are often clueless as to what to do with a BACnet network. They don’t know what’s in it, nor do they know how to browse it. (Of course manufacturers will offer their own software… for a price.) There’s nothing wrong with selling software, but for such a basic need, browsing the network, a free software should be available. It’s like comparing Notepad and Word. Sure, sell Word, but the user should at least be able to write basic stuff in notepad.

Wacnet is a humble try to ameliorate the situation. By enabling an easy and almost instantaneous setup, anyone can at least see what’s on the network. Newcomers can explore the different properties and learn them.

Usage

Getting the application

If you know Clojure, download the source and do lein uberjar.

If you do not, download the pre-packaged version at https://bacnethelp.com/how-to/wacnet.

Running the application

No installation necessary and can run from a USB key!

The standalone jar file can be started on any computer with Java installed. We recommend starting it from the command line as such:

 java -jar <filename>

For example:

 java -jar wacnet-0.1.1-BETA-standalone.jar

You can of course start it by simply double-clicking on the .jar file, but you might have a hard time finding the ‘off’ switch. (You will have to manually kill it.)

Once the application is started, go to http://localhost:47800 and browse your network!

Advanced usage (REPL)

The REPL is an interactive evaluation environment to enable power users to use tools tailored to their needs. If a feature is lacking, it’s even possible to add it on-the-fly!


Why Every HVAC System Is Oversized (And How To Rectify This)

The revelation

At university, I learned something so groundbreaking, so vitally important, that in retrospect I should have known it all along…

From first grade, we learn incrementally complexer math. From addition and multiplication, to calculus and imaginary numbers (such as square-root of -1).

https://frozenlock.files.wordpress.com/2013/01/wpid-math.jpg

Wait, you mean by hand?

The assumption that one develops in such an environment is that everything must require complex math… which isn’t the case. The revelation I had was the following: What is hard isn’t the math, not at all. What is hard is to get the data!

This is especially true in the HVAC world. My god are those equations easy! You can easily fit them in a spreadsheet and you are good to go. But how do you know exactly what heating power will be needed? Unless you have the data, you won’t be able to do more than an educated guess.

The Car Analogy

Let’s imagine a map with a Start location, and a Destination location. You know where you are, you know where you are going, but you have some important data missing: you don’t know how you will get there. Will the road be a straight line, or will there many detours?

https://frozenlock.files.wordpress.com/2013/01/wpid-map.png

You must guess how much gas you need. There’s no way to know which road is available.

Furthermore, you have to fill your gas tank before you start your journey and you won’t be able to fill it en route.

What’s the value of the dashboard’s fuel consumption under these circumstances? What is this ‘equation’ worth? Without the distance, it’s worthless.

You have to guess how much gas you’ll need. You can’t underestimate, because you will then be stranded in the middle of nowhere. So you have to make an educated guess, based on your past experience on the road. You will also add a little incertitude bias, just to be sure you will make it.

Thus, under normal circumstances, you will always have some gas remaining in your tank when you reach your destination. In addition, this gas will cost you more money upfront, and will add to the total vehicle weight, consequently making it burn more fuel. Physics’s a bitch.

Back to HVAC

It’s the same thing with any HVAC component. Suppose you need a boiler for a new school. What size should it be? Engineering firms can guesstimate, but they will also add a little extra, just to be sure. To a certain extend, you can control an oversized boiler to keep the temperature comfortable, but if the boiler is too small, no amount of control will allow you to reach your temperature setpoint.

https://frozenlock.files.wordpress.com/2013/01/wpid-1800-2500_hp_pfts-boiler.jpg

When is ‘big’ too big?

As with the car, you need to overestimate. Unfortunately, a bigger boiler means an additional upfront cost. Bigger components also means higher operational costs.

You have BACnet? Use it!

All of this, of course, is the consequence of not having enough data! Without data, math equations are worthless.

It’s ALL about data. Let me make this clear: data data data data data.

Hopefully, building owners and engineering firms will tap into the torrent of data the BACnet protocol can offer them.

Building a new installation similar to another one? (Engineering firms love to copy-paste) Check the original installation! Boiler is cycling? Too big!

Same thing for renovation: You want to install a shiny new heat pump in an existing building? Well now you have data on a silver plate! Instead of guessing what is required, you can actually know it.

There you have it. Until the industry starts to seriously use the available data, HVAC systems will be oversized. Not because someone is lazy, but because without data, oversizing is a necessity!


Geothermal and heat pump controls

How heat pump works

Heat pumps are quite different from other heating devices: contrary to them, the heat they produce is a by-product, rather than the main heat source.

Take an electric heater for example. It consumes electricity to produce heat directly. A heat pump will use this electricity to move the heat from a place to another. What’s the difference? Well it turns out that it’s cheaper to move heat than to create it. For the same amount of electricity required to produce 1kW of heat, you could move 7kW. (Of course this can vary greatly depending on a variety of factors.)

https://frozenlock.files.wordpress.com/2012/12/wpid-500px-heatpump-svg_.png

A heat pump takes heat from a place and move it to another (thus there’s always a hot side and a cold side)

If I were to put in sentimental terms, I would say that using electricity to produce heat is one of the stupidest and wasteful way to use electricity. Moving heat is far more intelligent.

Heat pump controls

Transferring heat from one place to another requires some work. The bigger the temperature difference between the two places, the more work it requires.

You could see it as moving dirt using a wheelbarrow. The temperature difference in this case would be the height difference. To take heat (wheelbarrow) from a cold place (low ground), you would have to push it to the hot place (high hill). The hotter the destination, the higher the hill.

Knowing this, to expand the least amount of energy possible, you would want to find the lowest possible hill to dump your dirt. In other words, you want your heat pump to work at a minimum temperature differential.

https://frozenlock.files.wordpress.com/2012/12/wpid-wheelbarrow_photo.jpg

To accelerate heat transfer however, you must increase the temperature difference. The heat transfer is proportional to the temperature differential squared. This means that in order to keep a room warm in the cold months of winter, you might have to increase your heater set point to a higher temperature.

Let’s sum this up in those 2 following points:

  1. For optimal efficiency, always seek the lowest temperature differential;
  2. To increase heat transfer, you have to increase the temperature differential.

Thus, we can see that the optimal way to control a heat pump is to always try to use the lowest temperature differential, and only increase it when necessary to enable a bigger heat transfer.

If we were to follow this rule and to plot it compared to the exterior temperature, this is what we would get:

https://frozenlock.files.wordpress.com/2012/12/wpid-heat-pump-optimal.png

The optimal heat pump set point should look like a mirror image of the exterior temperature

As you can see, the lower the exterior temperature, the higher the heat pump set point (to increase the heat exchange between the heat coils and the room air). But as soon as the exterior temperature rises, we lower the heat pump temperature set point.

The cold, hard, real world

Unfortunately, an optimal control is often supposed when salesman and engineers push for heat pumps, but is rarely applied once the machine is installed.

In the snowy french world of Québec, Canada, electricity is a province matter and is heavily subsidized. Even if ‘burning’ electricity directly to create heat is the dumbest way to use electricity, it’s often cheaper than to invest heavily in other solutions.

To patch this problem, the government created some ‘energy efficiency programs’. Geothermal energy and heat pumps can become a wise investment with these, but all estimates always assume an optimum heat pump control. And why shouldn’t they? If you buy a manual transmission car, everyone assumes you are going to shift gears when the time comes.

Alas, this is not the real world. Once installed, these systems are often tuned to ‘work’ and that’s it.

I’ve recently monitored a geothermal installation that reminded me of this cold hard fact. Here is what the heat pump set point looks like:

https://frozenlock.files.wordpress.com/2012/12/wpid-heat-pump-actual.png

An actual heat pump set point compared to the exterior temperature

Does this looks like a mirror image? No, it looks like a single set point for every exterior temperature. If this set point is enough for the worse case exterior temperature (-30°C perhaps?), then it’s overkill for everything else. -20°C and still the same set point? You have a needlessly big temperature differential and are thus using the heat pump in a less efficient manner.

What does it mean? Plainly, money is wasted. Remember the manual car analogy? Here the car is always in the first gear, regardless of its speed. Will the car go forward? Sure! Will you burn more fuel? Yup!

The sad part of this is that everything is in place to use it efficiently. No need to buy or replace components. Only how this system is used should be changed. This could be rectified with some lines of code… Meanwhile, electricity is wasted and money lost.

Yet another reason why everyone with a BACnet network should do everything in their power to have historical data: to spot any easy-to-change costly behaviours.


What is BACnet? A video experience

A quick and dirty explanation of what is BACnet

You now have the chance to enjoy my beautiful voice, along with my strong (and hopefully sexy) french accent.

In my opinion, the most important part of BACnet is how it opens up a whole lot of possibilities by giving access to all these sweet sensors. It’s not for nothing that I’m actively archiving gigabytes of data from various HVAC systems…

I say in this video that BACnet offers a way to free the building owners. It does, but mostly for updrades. As I’ve already mentioned, vendors can still inflict a non-negligible switch cost with their proprietary programming language. Vendors might do this totally unwillingly, but the burden is still there and must be paid.

I had a discussion recently with fellow BACneteers about this very subject. Many possible solutions are currently studied. I might summarize it on my mailing list… Meanwhile let’s just say that the statu quo might not persist.

My Video experience

I spent way too much time doing this video… at least for what I consider to be a so-so result. The next time I’ll try to jack up the audio a little, so that my voice is loud and clear.

I could also slack on the drawing board. The effect is nice, but boy is it time consuming! Each drawings must be accelerated ~8 times to have an interesting look. This means that if I want 2 minutes of doodling, I must do it for 16 minutes! That’s if I have everything right the first time (which I didn’t). Another downside of the drawings is to make sure the audio is in sync. Here again, that was quite long.

Next time I might give a try to screen capture. I have a tutorial to do… and as everyone who has written a tutorial before knows, nobody RTFM. A video might be what it takes to capture the attention.


The Importance of Data Visualization

As I’ve mentioned in previous post, I’m working on bacnethelp.com, a website dedicated to help those with a BACnet network.

The current main service is about recording the state of the network for future consultation. If you don’t really know what is a BACnet network, let’s just say that this service is comparable to recording the life signs of an individual, but for buildings. You can then see how it reacted to various stimuli, or even if it’s still alive.

However obtaining the data is only a small part of the work. The biggest part is giving it meaning. “Does the temperature changed because someone opened the window? Is this because my boiler is out of fuel?” One should seek to maximize the speed at which he can troubleshoot.

Here is a minuscule example of what a raw trend log can look like:

{:value "1159.0", :time "2009-03-02T15:45:00.000-05:00"} 
{:value "1160.0", :time "2009-03-02T16:00:00.000-05:00"} 
{:value "1161.0", :time "2009-03-02T16:15:00.000-05:00"} 
{:value "1162.0", :time "2009-03-02T16:30:00.000-05:00"} 

Quite dry isn’t it? Obviously this is not to be used directly.

Now look at how everything is instantly easier when you can see it in a graphical form.

https://frozenlock.files.wordpress.com/2012/10/wpid-objects-overview.png

Overview of multiple analog objects – bacnethelp.com

Oh my! If I had a something not working in there, I can almost guarantee it’s the first one. Did I look at the numbers? Nope, the simple shape of the graph was enough.

Of course, any children could tell you that. But why is it easier to use a graph than numeric data?

Let’s say you are looking at the number “3”. In reality your are seeing a particular shape on your screen. Your brain must then analyze it step by step to realize it is indeed the number “3”. In order, the steps taken:

  • Shape
  • Analyze
  • Realize

We shall call it the mental process.

What if you had to make a relation between many numbers? Say for example that you want to determine if a series of 20 numbers is exponential. Well now it gets more complicated, because with the realization of numbers, you will probably try to draw a graph in your head. Once you can visualize it, you will analyze it.

  • Shape
  • Analyze
  • Realize (multiplied by the 20 characters)
  • Visualize shape
  • Analyze
  • Realize

Even if we suppose that that the visualization part is effortless, we still have a total of 21 mental processes. And that’s only for 20 numbers.

If a computer were to draw the series for you, you would only be seeing a shape.

  • Shape
  • Analyze
  • Realize

A single mental process, versus 21 for the raw data. The visualization tools offers the possibilities of simplifying the data back to a single mental process regardless of the data size. The more data you have, the more the advantageous this becomes.

The same principle applies if I were to compare multiple graphs. Instead of having the previous 4 individual graphs, it could be easier to find relations by merging them together. Once again, this reduce the work our brain have to do.

https://frozenlock.files.wordpress.com/2012/10/wpid-comparison.png

Comparison of multiple analog objects – bacnethelp.com

This video (at around 2m40s) really shows the difference between the data merely ‘dumped’, versus a carefully designed representation. You will see that even if the data is the same, the difference for the user is staggering.


Leveraging the Org Mode Structure with CSS

Org-mode is an incredible tool for editing text. May it be for HTML, Latex, doc, or even plain text format.

I’ve already told that I use it to edit this blog, but I also use it for almost every text file I have to do. For example, all my readme on Github are in .org. (Even if they don’t support the org format very well. Screw Markown, org-mode is superior!)

Without any surprises, I also use it if I have to write long texts for my commercial solution BACnet Help. I can write thousands of words without having to think once about any HTML tags (DIV, SPAN, BR…). This is all handled automatically when exporting to HTML.

This is all very unsurprising for any Org-mode user. However while inspecting a page in the Chromium browser, I noticed how an Org-mode document is so well structured when exported to HTML.

Let ‘s take the Table of Contents as an example. You get it for free, with all the links and anchors. But the more important part is how the TOC is made: with successive stages of <UL> and <LI>. The structure itself is giving information. With it, we can easily determine what is a subset of a section, and what is a subset of that subset.

Here is how the plain TOC looks: https://frozenlock.files.wordpress.com/2012/10/wpid-toc.png

Now let’s leverage the <UL> and <LI> structure with a pinch of CSS.

 #text-table-of-contents ul > li > ul {
    margin-left: 0.5em;
    border-left: 1px dotted #779898;
    border-bottom-left-radius: 1em;
    padding: 0.5em;
 }

If you don’t read CSS, just know this: We select the element identified by “text-table-of-contents”, find any children that’s an unlisted list (<UL>), inside a list item (<LI>), inside another unlisted list. Then we apply some simple decorations to those.

https://frozenlock.files.wordpress.com/2012/10/wpid-toc2.png

Such a simple change, and yet a tremendous impact!