OpenNMS 14 Timelines

November 5th, 2014

I often talk about how OpenNMS is a platform and not just an application, and with the release of OpenNMS 14 there is a lovely way to demonstrate the difference.

There is a cool little GUI improvement that I believe was started at last year’s Dev Jam which provides graphical timeline for outages. So now instead of having to look at the outage table on a node’s page, you can just look at the service availability section.

Cool, huh? What you may not realize is that instead of hardcoding the feature the timelines are rendered through ReST. The GUI sends a ReST request to the server which returns the graphic information. Let’s examine the “Update” service above.

The query

/opennms/rest/timeline/image/46/172.20.1.38/Update/1415119622/1415206023/480

results in:

with a format of:

/opennms/rest/timeline/image/{nodeId}/{ipAddress}/{serviceName}/{start}/{end}/{width}

Even the header graphic is done the same way

/opennms/rest/timeline/header/1415119622/1415206023/480

results in:

with a format of:

/opennms/rest/timeline/header/{start}/{end}/{width}

Of course, assembling all of that can be tedious, so this query:

/opennms/rest/timeline/html/46/172.20.1.38/Update/1415119622/1415206023/480

with a format of:

/opennms/rest/timeline/html/{nodeId}/{ipAddress}/{serviceName}/{start}/{end}/{width}

will create the whole HTML code needed to render the timeline:

document.write('<img src="/opennms/rest/timeline/image/46/172.20.1.38/Update/1415119622/1415206023/480" usemap="#46-172.20.1.38-Update">
<map name="46-172.20.1.38-Update"><area shape="rect" coords="128,2,412,18" href="/opennms/outage/detail.htm?id=153740" alt="Id 153740"
title="2014-11-04 18:13:24.628"><area shape="rect" coords="-111,2,-26,18" href="/opennms/outage/detail.htm?id=153724" alt="Id 153724" 
title="2014-11-04 06:12:56.322"><area shape="rect" coords="-2051,2,-1925,18" href="/opennms/outage/detail.htm?id=153348" alt="Id 153348" 
title="2014-10-31 06:13:11.421"><area shape="rect" coords="-2291,2,-2291,18" href="/opennms/outage/detail.htm?id=153289" alt="Id 153289" 
title="2014-10-30 18:11:33.006"><area shape="rect" coords="-2691,2,-2397,18" href="/opennms/outage/detail.htm?id=153258" alt="Id 153258" 
title="2014-10-29 22:13:27.086"><area shape="rect" coords="-2871,2,-2871,18" href="/opennms/outage/detail.htm?id=153235" alt="Id 153235" 
title="2014-10-29 13:12:29.747"><area shape="rect" coords="-3071,2,-2884,18" href="/opennms/outage/detail.htm?id=153137" alt="Id 153137" 
title="2014-10-29 03:12:13.887"><area shape="rect" coords="-3232,2,-3231,18" href="/opennms/outage/detail.htm?id=153132" alt="Id 153132" 
title="2014-10-28 19:11:02.873"><area shape="rect" coords="-3690,2,-3670,18" href="/opennms/outage/detail.htm?id=153086" alt="Id 153086" 
title="2014-10-27 20:14:11.949"><area shape="rect" coords="-6431,2,-6431,18" href="/opennms/outage/detail.htm?id=152786" alt="Id 152786" 
title="2014-10-22 03:11:05.149"></map>');

If a service isn’t monitored, such as the StrafePing service in the above example, that empty timeline is also available:

/opennms/rest/timeline/empty/1415119622/1415206023/480

with a format of:

/opennms/rest/timeline/empty/{start}/{end}/{width}

Pretty cool, huh? A lot of OpenNMS is accessible by ReST and the wiki page covers most of the options. Thus you can use the data via the OpenNMS GUI or integrate it with one of your own.

Announcing OpenNMS 14 and Newts 1.0

November 4th, 2014

It is with great pleasure that I can announce the release of OpenNMS 14. Yup, you heard right, OpenNMS *fourteen*.

It’s been more than 12 years since OpenNMS 1.0 so we’ve decided to pull a Java and drop the “1.” from the version numbers. Also, we are doing away with stable and development branches. The Master branch has been replaced with the develop branch, which will be much more stable than development releases have been in the past, and we’ll name the next major stable release 15, followed by 16, etc. Do expect bug fix point releases as the in past, but the plan is to release more major releases per year than just one.

A good overview of all the new features in 14 can be found here:

https://github.com/OpenNMS/opennms/blob/release-14.0.0/WHATSNEW.md

The development team has been working almost non-stop over the last two months to make OpenNMS 14 the best and most tested version yet. A lot of things has been added, such as new topology and geographic maps, and some big things have been made better, such as linkd. Plus, oodles of little bugs have finally been closed making the whole release seem more polished and easier to use.

Today we also released Newts 1.0, the first release in a new time series data storage library. Published under the Apache License, this technology is built on Cassandra and is aimed at meeting Big Data and Internet of Things needs by providing fast, hugely scalable and redundant data storage. You can find out more about this technology here:

http://newts.io

While not yet integrated with OpenNMS, the 1.0 release is the first step in the process. Users will have the option to replace the JRobin/RRDtool storage strategies with Newts. Since Newts stores raw data, there will be a number of options for post-processing and graphing that data that I know a number of you will find useful. Whether your data needs are simple or complex, Newts represents a way to meet them.

Feel free to check out both projects. OpenNMS 14 should be in both the yum and apt repos, and as usual I welcome feedback as to what you think about it.

Review: The Slow Regard of Silent Things by Patrick Rothfuss

October 31st, 2014

I have yet to decide whether or not Patrick Rothfuss is an asshole.

I know that sounds like a mean thing to say, but I have my reasons which I’ll get to soon.

I was introduced to Rothfuss through his first novel, The Name of the Wind. Since that can get tedious to type, allow me to abbreviate it TNotW.

TNotW is the first book in a trilogy. It concerns a near mythical figure named Kvothe, and it is one of the best novels ever written in the fantasy genre, or any genre for that matter.

At least one of my three readers is asking themselves why I would write about fantasy literature on an open source blog. One reason is that open source tends to be a geeky thing and so is reading fantasy, but the other thing is that it helps me think about the future. As the third law of Arthur C. Clarke states “Any sufficiently advanced technology is indistinguishable from magic,” in my mind anyone who wants to create advanced technology must first start with “I want to do magic. How should I begin?” Reading fantasy allows me to think in different ways that I find both enjoyable and useful.

Anyway, in TNotW Rothfuss introduces his magic system. In the best fantasy there are rules that both empower and limit the characters, and I really like his. Called “sympathy”, magic in his world requires three things: a link, a source of energy and strength of will.

For example, suppose you wanted to move an iron skillet off of a fire through magic. First you would need some way to link what you wanted to move with something you could easily manipulate. In this case the best thing would be a small piece of the skillet itself. That would form a very strong link. Barring that, you could use any piece of iron, but that link would be weaker. Weaker still would be a non-ferrous metal, etc.

So let’s assume you have a small chip of the skillet in your hand. You would then need a source of energy. The bigger the magic, the more energy you need (i.e. rules). In this case you could probably use the heat from the fire itself.

Finally, you would need strength of will to connect your piece of the skillet to the whole thing. This is the hard part, as you basically have to imagine, with the full weight of reality, that the small part of the skillet you hold is the skillet itself, so when you move your piece, the skillet will move.

I’m oversimplifying but you get the gist. In TNotW Kovthe starts to learn about sympathy and is admitted to The University, a place where its principals are studied and taught. Out of them comes a form of engineering, a form of medicine, a form of chemistry, etc.

However, in addition to this sympathetic magic, there is a more primal, raw form of magic based on names. It is a common theme in fantasy that by knowing a thing’s “true name” one can control it. Names are powerful, which is why I obsess over them more than most people. In the world that Rothfuss creates, the pursuit of “Naming” is magic in its truest sense, but it is also the most dangerous. One of my favorite characters in his stories is Master Elodin, the Master Namer, who is quite bent.

In any case, Rothfuss is the rare author who inspires a certain type of rabid fandom. Anything he posts on his blog is almost always met by a chorus of fawning comments. It’s not that he isn’t talented, quite the contrary, but this type of fandom ends up rubber stamping everything he does as “great”.

For example, the second book in the series, The Wise Man’s Fear, did not resonate with me like the first. I came close to actually disliking it upon a first reading.

Now, granted, once I set it on the shelf for awhile and then took it down and re-read it, I liked it more, but still, it didn’t affect me like the first book. I look on it like Tolkien’s The Two Towers where “things happen that must happen” but it acts like a bridge between the first and last books of a trilogy. I eagerly await the third book, tentatively titled Doors of Stone to see if he can pull off the magic of TNotW.

And this is where the asshole part comes in. I have some friends who have met Rothfuss and spent some time with him and some of their comments tip the meter toward “asshole”. Some of the stuff that he writes on his blog rub me the wrong way, thus re-enforcing the thought. But I guess I am mainly upset because I just want him to work on that third book instead of all the other stuff he does. This is very selfish of me, because some of the stuff he does is very worthwhile and makes the world a better place, but at this point I am emotionally invested in the story of Kvothe and I want to know how it ends.

Which brings me to a sobering point: I know almost nothing about Patrick Rothfuss. One of the fallacies of the Internet is this illusion of intimacy. The thought that I can read a blog or a twitter feed or an interview and think that really gives me insight into who the person is is ludicrous. To paraphrase Silent Bob, what I don’t know about Patrick Rothfuss could just about squeeze into the Grand Canyon.

But I do know one thing without a doubt: he loves words.

I like words. I like my ten cent words and my five dollar words. But to me they are a means to an end. I like how a certain word can convey just the right feeling or evoke a particular response. But I don’t love words.

Rothfuss loves words almost as much as his family (which, if you read his blog, he loves a lot). He dotes on them. He caresses them. And I’m almost certain that he stays up nights obsessing over finding the right word.

Which brings me to his latest book, The Slow Regard of Silent Things.

This is a tiny book, around 150 pages. It’s even shorter than Gaiman’s The Ocean at the End of the Lane. He warns on both his blog and in the forward that many people won’t like this book. Heck, it only has one character in it, Auri, the mysterious girl befriended by Kvothe in TNotW.

I loved it.

This is a love song to words. He uses them to paint pictures and to compose symphonies. It is a three ringed circus of adjectives and adverbs, nouns and verbs all coalescing to create an experience if not exactly a narrative.

Auri is a woman of unknown age. She is very small, about the size of a child. She lives in a complex of tunnels and forgotten rooms called “The Underthing” that exists beneath the grounds of The University. While Rothfuss has never told us straight up her history, I’ve always imagined that she was a great student at The University who studied Naming and went crazy. She decided to “make herself small” and hid herself away. It is one of the characteristics of Kvothe that he was able to befriend her. He even gave her the name “Auri” which inspired Master Elodin to instruct Kvothe in Naming. But don’t expect to see those characters in The Slow Regard of Silent Things. It is all about Auri and can stand alone from the rest of the series.

If you haven’t read any of his books, then you won’t know what I’m talking about. Heck, I’m not even sure I know what I’m talking about. All I know is that I feel like a better person from having read it.

It covers several days in the life of Auri. And that’s about it. Pretty easy not to spoil. She has good days and bad days but to her they are just “days”. The narrative focuses a lot on her drive to put things in their proper places and in some cases, give them names.

One of the world philosophies that I strongly identify with is Taoism. Now I’m certain that a true scholar of the Tao will be horrified, if that is possible, over how I’m about to describe it, so my apologies in advance.

The Tao is all things and how they are connected. There is no “good” or “evil”, there is just the natural cycle of things. When one lives in tune with the Tao, this we call happiness. When one struggles against the Tao, sadness ensues. It stresses a very low impact existence and an acceptance of the way things are, but still manages to get a lot of stuff done, which sounds a little like an oxymoron.

One of the best books on the subject is The Tao of Pooh by Benjamin Hoff. In it he demonstrates the principals of Taoism through the stories about Winnie the Pooh. It works, and it is one of my favorite books. It sits next to me at my desk in case I’m having a rough day and I need a reminder.

As I was reading The Slow Regard of Silent Things I couldn’t help but think that Auri was a Taoist master. Here is a quote from toward the end of the book:

That meant you could move smoothly through the world without upsetting every applecart you came across. And if you were careful, if you were the proper part of things, then you could help. You mended what was cracked. You tended to the things you found askew. And you trusted that the world in turn would brush you up against the chance to eat. It was the only graceful way to move. All else was vanity and pride.

Seems very Taoist to me.

I once saw Kurt Vonnegut give a lecture. He was talking about “the shape of stories” and the normal Western narrative and how it has these huge swings in mood. The example he used was Cinderella. It starts off pretty bad. Her parents have died and she’s living with her evil stepmother. Then it gets really good. She gets to go to the ball and she meets the Prince. Then the clock hits midnight and things are bad again. Then the Prince finds her and all is well. He drew this on a white board in the form of a big sine wave that swung from bad to good.

He compared that to Native American stories. Usually the mood is very flat. We walked in the woods. We saw a deer. We caught some fish. We ate. We went to sleep. That sort of thing. There really isn’t this whole process that we expect from our stories. On his white board he drew a straight line, pretty much neutral between good and bad.

Then he examined Hamlet. Hamlet is not a happy story. Things start of bad and remain that way. As Vonnegut talked through the plot he drew another straight line. Granted, this was firmly on the “bad” side of the chart but it had a lot more in common with a Native American narrative than a traditional one, and Hamlet is one of the greatest stories ever told.

Heh – I just decided to take a stab at the premise that “everything is on the Internet” and I found a page talking about this very thing.

I don’t think that The Slow Regard of Silent Things is one of the greatest stories ever told, but it is a very good one. It, too, has a flat narrative arc. I will reread it a number of times. While I think a lot of his fans will be put off by it, and he knows this, but the fact that he created it and felt strong enough to see it through to publication moves the needle, at least for me, back firmly into the “not asshole” side of the meter.

OpenNMS Newts at ApacheCon Europe

October 24th, 2014

Being Hungarian, I am very jealous and yet still proud that our very own Eric Evans will be presenting at ApacheCon Europe in Budapest, Hungary.

He will be talking about Newts which is a new time series data store built on top of Apache Cassandra. It will be a key part of positioning OpenNMS for the Internet of Things as well as being very useful on its own.

Eric is a dynamic and interesting speaker, so if you are attending the conference be sure to check out his talk.

And while you are there, eat a Túró Rudi or three for me.

Alinea

October 24th, 2014

Note: This is a travel/food blog post with no OpenNMS content. As usual, feel free to skip.

I consider myself insanely wealthy. Not in terms of money, most people could always use a little more, but because I’ve managed to meet some truly amazing people in my life, and even better, there still seems to be a nice supply of them. My life has been greatly enriched because of it.

One such person is Geoff Davis, who I met in high school (he was a year younger but in all my advanced courses) who now works at Google. The last time I was out there he and his bride took me to dinner in the Mission, and while we were talking about food he mentioned the Alinea.

The Alinea restaurant is located in Chicago, and it is one of only thirteen (when I booked it was ten) Michelin three star restaurants in the country. I happened to be in Chicago this week, and as this trip was planned months ago I was able to book a table for six. The experience was pretty amazing.

The name comes from an archaic mark similar to the “paragraph” symbol: ¶. The alinea looks more like an inverted “D” with two vertical marks, and in the name of the restaurant it represents “a new beginning”.

The booking process was unique as well. I like to cook, and occasionally (very occasionally) after one of my better efforts, someone will say “you should open a restaurant”.

Hell no. Owning and running a restaurant is incredibly hard work. People who aren’t into food (and some who are) just don’t realize it. Part of the problem is that people have few qualms about either canceling a reservation at the last minute or not showing up at all.

The Alinea addresses this by selling tickets instead of taking reservations. I’m not sure it would work for every restaurant, but when you have a place with a) high demand and b) a prix fixe menu it seems to work well. There is a long discussion of the history of the ticketing system available so I won’t repeat it here, but it did resonate with my innate fondness for unusual business models.

The restaurant itself is very non-descript. Most of our party met at Boka next door for drinks (an excellent restaurant on its own right with its own Michelin star). I probably wouldn’t have known where to enter the Alinea if I wasn’t shown the way.

You enter in via a dark corridor highlighted by red lights, and it seems to narrow a bit. When you reach the end you are greeted by what I would come to recognize as the level of service that helps the Alinea keeps its stars. For our group of six there were at least three people there to take our coats. One pair in our party had arrived with their car, so the staff took the valet parking slip to make sure the car would be ready when it was time to leave. We were served by no less than twenty people during the evening but it was perfect – they were there when you needed them and quickly gone when you didn’t.

We were shown upstairs to our table. The restaurant only accepts parties of two, four or six. Party of three? You buy an extra ticket, and since they are quite spendy my guess is you’d find an excuse to invite Aunt Edna out for the evening.

Just a quick note: I wanted to immerse myself in the experience so I took no photographs or notes. I might get some of the details wrong so I will apologize in advance since my memory isn’t what it used to be.

Our host Miguel, I would not call him a server even though he did serve us food, welcomed us and explained how the evening would play out. We were to have 15, maybe 16 courses and there was an optional wine pairing. He stressed that the wine servings were modest and that it would end up being about four glasses of wine total. The “maybe” 16th course was a special: white truffle risotto. When I visit my friend Antonio in Italy (another amazing person who has enriched my life) I always tease him about this very expensive food. When he asks what I want to eat I say “tartufo bianco”. I love truffles but as Cat, one of our dinner companions, pointed out, having such an extravagant course here would be like gilding the lily. Plus, the $150/person cost put it out of my league – I had to cash in my Christmas and Birthday presents to swing the dinner alone.

I got excited when they prepared to bring out the first course. They placed little white pillows on the table in front of each of us and on it was a caviar spoon (I love fish eggs of any type). Miguel explained that the silverware we’d need for each course would be placed on the pillow and that we were to leave the used items with the serving dish in order to keep the pillow clean for the next course.

Speaking again of the crazy level of service, if one of us got up to use the restroom, one of the staff would immediately remove the napkin and replace it with a fresh one. Cat explained that napkins are meant to be used, and no one should have to come back to a soiled one. Crazy, but cool.

The first course was Osetra caviar served with a variety of other flavors. I was not going to do the wine pairing, but I agreed to start off with a glass of champagne (Pierre Moncuit Blanc des Blancs Brut NV) as did Ron (what else do you pair with caviar?). Demetri and Cat did get the pairing, while my lovely bride Andrea ordered a glass of Riesling and Colleen stuck with water.

The caviar was delightful.

The second course arrived in the form of two large “tumbleweeds” made up of intertwined brown vines. Each was about twice the size of a basketball. We were told we had to find the second course hidden within the branches. In each ball was hidden a piece of salsify, a root vegetable that had been cooked sous vide and heavily seasoned. It matched the color of the vine exactly but had a much softer texture. It was tasty, although this is one of the few places I’ve eaten where you had to ask yourself “is this bit the food?”.

The third course was skate, cooked sous vide and seasoned with brown butter, lemon and herbs. The paired wine was an A.J. Adam “Dhroner” Riesling (Mosel 2012). I made a joke about “Dhroner kebabs” that fell flat. Demetri had me taste some of his and I liked it so much I changed my mind about skipping the wine pairing. It was the most tender skate I’ve ever eaten, and it makes me want to explore sous vide cooking even more.

Course number four was ebi, or sweet shrimp for those of you who like sushi. It was paired with Muscadet Sevre et Maine “Granite” (Domaine de l’Ecu 2010) which I found to be too mineral. I remember liking this dish but I don’t remember too much of the details, since it was eclipsed by …

Corn. The fifth course arrived served in roasted corn husks, causing me to remark “look, the world’s most expensive tamale”. It was far from a traditional tamale. The corn was whole, roasted and served over a bed of creamy grits. The whole thing was seasoned with truffle, manchego cheese and sherry. Think about how much corn you have eaten in your lifetime – this redefined it for me. We were told that this was the next to last night it would be served as the seasons were changing. When asked how they were able to get the corn off the cob yet have it hold its shape, the secret is that the whole cob is dipped in clarified butter so that the kernels can be sliced off but still stick together.

The sixth course arrived on pieces of wood that used to be barrel staves. It was trout in white pepper, coriander and broccoli. Outside of eating off a stick (we asked and were told the staves were cleaned in the dishwasher and then burnt with a torch) in the middle were pieces of bone – a small bit of spine and the plate near the cheek of the fish. We were told that, indeed, this was food. It was surprisingly tasty, although I think I cut my tongue a little on the spiny bit. This was paired with a Chablis (Laurent Tribut 2011) that I quite liked.

Flowers made up the seventh course, mainly lilies, with rambutan and a caviar lime sauce.

Now at the halfway point, the staff brought out two stone plates topped with pieces of wood. They set these on fire, and the smoke and light added a nice ambiance.

Course number eight featured matsutake mushrooms, which I adore. It was served with a number of sweet flavors, including a huckleberry foam and tapioca. In keeping with the Japanese association with this food, the pairing was sake, Tensei “Song of the Sea” Junmai Ginjo-shu (Kumazawa Shuzo, Kanagawa-ken). I loved the food but just liked the sake (I’m pretty particular about sake).

The ninth course was a bit of a surprise. The wood/fire centerpieces, which had now gone out, were dissected and out of them came our food. It was charred pork belly served with compressed parsnip. Yummy. It was served with our first red of the evening, Donkey and Goat “Testa Vineyard” Carignane (Mendocino 2013), which was very nice.

Dish number ten was also unusual. It was a warm butter-based broth served in a small, concave bowl made of wax (it reminded me of nothing less than a huge contact lens). Suspended above it on a steel pin was a piece of potato and truffle. You were told to pull the pin, causing the items on it to fall into the broth and then eat the whole thing in a shot. Tasty, but I spilled a little of mine. I believe it was on the table for about 450ms before someone had wiped it up.

The last mainly savory dish of the night was squab. Served on a piece of dark wood that looked like the top of a tree trunk, the roasted squab was served with carrot, potato, beet and an orange sauce. There was also a piece of squab liver as well. The pairing was another red, Valpolicella Classico Superiore (Tomasso Bussola 2009) which complemented the meat well.

The twelfth dish started the transition to sweet. Called “graffiti” it was a hazelnut candy, like a praline, served with balsamic vinegar on a matching piece of gray stone. This was the only misstep by the staff. Ron doesn’t like balsamic vinegar but they missed his request not to spray it on. I like balsamic but this dish was only “good” for me. The pairing, however, was a Vergano Chinato Moscato “Luli”. Lately I’ve become enamoured of sweet dessert wines like Sauternes and this Moscato was delicious. I’ll seek it out when I get home.

Probably the oddest dish (in an evening of odd dishes) was dish number thirteen. Featuring blueberries, part of the dish was a foam made from Bubble Yum™ chewing gum. I double-checked to make sure we could eat it. Believe it or not, it really worked. The pairing was another Muscat wine, Jorge Ordonez “Victoria” (Muscat, Malaga 2013) which I liked considerably less than the Vergano, but it was still good.

If you read about the Alinea, you’ll often see pictures of transparent white balloons. That was our fourteenth course of the evening. Made with a green apple candy, the balloons are served filled with helium with a taffy string. The way we would told to eat this was to try and suck the helium out of the balloon and then talk. Yes – fun with food. It is this kind of whimsy that made the evening worthwhile, and the fact that in the end you could eat pretty much everything was also a plus.

The final course was the most elaborate. We all moved to one side of the table which was then covered in a large rubber sheet. The head chef himself, Grant Achatz, came out and using about 15-20 small dishes painted our final course directly on the table. It was a combination of tropical fruit flavors. There was mango, passion fruit, compressed melon, a coconut meringue flash frozen in liquid nitrogen, a kaffir lime “candy” with edible wrapper, roasted banana, pineapple – and I forget what else. The chef was professional if not extremely outgoing. I was so busy watching him and his associate work (the table size required two people) that he was there and gone before I knew it.

The final wine pairing was a Passito di Pantelleria (Fernandes 2006) which I honestly can’t remember. It was at this time I first looked at my watch and realized that four hours had passed.

Leaving the restaurant was as efficient as our arrival. Not only were our coats and bags waiting for us, so was Ron’s car and two taxis for the rest of the group.

If you are into food and can make it to Chicago I can highly recommend the Alinea. Better yet, if you have some amazing friends like I have in Ron, Colleen, Demetri and Cat (plus my BFF Andrea) it will be an experience to remember. Yes, it is pricey, but one of the keys to happiness is to buy experiences and not things.

In that realm I am a very rich and happy man.