Nathan Freeman

Syndicate content ESCAPE VELOCITY
Updated: 1 week 4 days ago

Congratulations, Devin!

Thu, 05/03/2012 - 18:32
Congratulations to my friend and colleague Devin Olson for his position as a newly elected delegate to the Michigan State Republican Convention! He'll be part of the Kent County delegation. Represent!
Categories: Lotus Insider

Dear everyone in the HVAC industry...

Wed, 05/02/2012 - 21:05
Why is it that residential and commercial climate control systems are so fucking retarded? And yes, I used that language on purpose. They're just stupid. In an age when I can tell my phone to find songs like the one I'm listening to now and play them, and it does it brilliantly, why can't I tell my house or my office "I want it 72 degrees in this room."

Right now, my home has two thermostats; one for each floor. The one downstairs is a programmable Honeywell unit that after 20 years of computer programming, I have no idea whatsoever how to automate. I just click on "hold" and then try to target a temperature. Of course, I have no idea if it's progressing towards that temperature. It just tells me what temperature it knows about right now. To add insult to injury, the unit is mounted just outside the master bedroom, which means it reads the temperature of the main part of the house, but NOT the master bedroom, which is typically 10 degrees closer to the outside temperature. But it doesn't matter what the temperature is in that room, because that's not where the thermostat is.

Upstairs, there's an old fashioned mercury switch. The analog lever lets me set a pointer to something that's around 72 degrees (plus or minus 5 degrees) but I also know that no matter what the temperature I set it to, the A/C will make it about 5 degrees cooler than that, even in the dead of winter. Well, that's not so bad, since at least the difference is predictable. But of course, the 3 upstairs bedrooms all run a different temperature than the hallway outside, where the thermostat is, so whatever the dial indicates is the one temperature that is guaranteed to NOT be the case in any of the bedrooms branching off it.

The office isn't much different. I have my own room there. It has two windows. There is often a 10 degree difference between the temperature in my office and the hallway just outside it. For my boss, who has a corner office, the difference is frequently more like 20 degrees. Some days, we can't meet in her office because it's either too hot or too cold.

Recently, at home, we discovered that one floor had a severe Freon leak and was no longer cooling the circulated air. Of course, to find this out, we had to call a service technician who came out and tested for an hour. Why on earth would this be necessary? If the Freon pressure in the system was below requirements, why wouldn't this show up on all the control surfaces in the affected rooms?

Oh, that's right.... there was no integration between the control surfaces and the HVAC unit, and there was only a control surface for the entire floor, not for the room.

So my question is simple: we live in a world where I can record a TV show at home, start watching it in one room, switching to a different room, pause the whole thing, sleep, and the next night pick up where I left off -- all with the touch of a finger.

Why can't I do the same thing with my HVAC system? What I want to do isn't complicated. I want to say "this is a bedroom. I want it at 72 degrees between 8pm and 8am every day" or "this is a kitchen. I want it 74 degrees when it's hot outside and 68 degrees when it's cold outside, between the hours of 8am and 9pm."

I could write the programming rules for this in an afternoon. So where the hell is my system that understands this in simple language and with a clear interface? It doesn't exist. HVAC controls don't even know how to accurately measure room temperature, much less the presence of humans. And even if they did, they don't yet understand human interactions with architectural features.

Let us dream of the moment they do....
Categories: Lotus Insider

American Spring

Fri, 04/27/2012 - 05:27
The American media is renowned for it's biases, whether "left" or "right." Since I have a good number of readers here from outside the US, I'm curious whether media outlets in your own countries are reporting on the gathering of tens of thousands of Americans across the continent.The US media, across the political spectrum, is totally silent about it.
Categories: Lotus Insider

Protect yourself, empower your audience

Thu, 04/26/2012 - 08:26
After Monday's post on using the lotus.notes.addins package, the mighty Ulrich Krause made an SSJS adaptation of the technique and posted it in XSnippets. Unfortunately, the license statement on my blog (CC-A) did not accurately allow him to do this, as all content posted into XSnippets must be Apache Licensed. I had a brief chat with Peter Tanner at OpenNTF.org, and told him "no problem. I'll just add a global license for all code posted on the blog."

His reply...

Perfect. Wish every blogger had those few words on their site.
Peter Tanner
IP Manager - OpenNTF

Well, what are you waiting for? Copy, paste, done! If you want to tailor your own Creative Commons license, you can do so here.

P.S: You might notice that my formerly cheeky disclaimer has been changed to a "it's just me" statement. I decided the other day that as an executive in a publicly traded corporation, it was a bit irresponsible to keep the same disclaimer that I had when the owner of the company sat at the desk next to me.
Categories: Lotus Insider

More secret Java APIs for Domino

Mon, 04/23/2012 - 06:25
While researching some tooling last week, I found myself wondering about the Java Server Addins that have been in Domino since version 6: Changeman and ISpy. These two Java addins do some very interesting stuff focused on monitoring server availability and resource load. But what's more interesting is that the packages for them can be found in notes.jar. And it turns out that those packages offer some surprisingly useful APIs.

Classes like lotus.notes.addins.JavaServerSession, lotus.notes.addins.SocketAddin, lotus.notes.internal.MessageQueue are... intriguing to say the least. But my personal favorite is the lotus.notes.addins.DominoServer class. Here's some sample code for you...

DominoServer myBlogServer = new DominoServer("CN=thentf/O=GBSBlogs"); // create DominoServer for my blog server
String timsName = "CN=Tim Tripcony/OU=NA/O=GBS";
Collection timsNames = myBlogServer.getNamesList(timsName); // get Tim's names list according to my blog server
Collection myNames = myBlogServer.getNamesList(curSession.getUserName()); // get my names list according to my blog server
Collection directoryPaths = myBlogServer.getInfo(ServerInfo.NABS); // get list of directories enabled by my blog server
boolean timHasUnrestricted = myBlogServer.checkServerAccess(timsName, ServerAccess.PROG_UNRESTRICTED); // whether Tim is
                                                                                                                        // included in
                                                                                                                        // unrestricted LS/Java
                                                                                                                        // agents list
Collection myServerNetAddresses = myBlogServer.lookupServerRecord("NetAddresses"); // returns the value of NetAddresses field                                                                                                                                                // from server doc for my blog server
Collection timsServerClusterName = myBlogServer.lookupServerRecord("CN=Xmage/O=GBSBlogs", "ClusterName"); // returns the value
                                                                                                                        // of cluster name
                                                                                                                        // for Tim's server
                                                                                                                        // *according to my
                                                                                                                        // blog server*
myBlogServer.refreshDesign("nathan/escape.nsf"); // starts design refresh of blog database
myBlogServer.sendConsoleCommand("tell http osgi ss"); // send console command to my blog server

You might be thinking "but these are part of the lotus.notes package, and that is deprecated" but it's only the *namespace* that's in the lotus.notes package. The classes themselves import the current lotus.domino packages.

Hope you find these useful!
Categories: Lotus Insider

But... there are bandwidth-starving kids in Africa!

Fri, 04/20/2012 - 20:24
I would have been happy to simply post the one observation about the shameful, immoral, fraudulent behavior of the lotuslearns.com blog, which uses "Yahoo Pipes with a PHP agent to garner all Posting content and provide a single source to accessing this information" (which is a wordy way of saying they copy it) but according to uber-netizen Chris Miller, Miss Smith claims that her unethical behavior started at the "US Embassy in Nigeria to mitigate bandwidth."

Oh, so she's really looking out for the poor and downtrodden Africans who don't have access to the giant internet pipes required to pull HTML from one US-based server, but have plenty of pipes to pull the exact same markup from a different US-based server that just happens to use her domain registration. You see, it's all for the bandwidth-starved children of Africa. I guess if they can't access technical documentation on XPages fast enough, they'll all be kidnapped by Joseph Kony.

Thank goodness that's clarified now. Because we all know it's perfectly okay to steal and lie and propagandize, as long as you're just looking out for the poor. If she was doing it for her own interests, that would be wrong. But when you steal from productive and generous people for the sake of people on 28K modems, everything is a-okay!

(If anyone has universalized the content of this post to apply to things other than blog posts in the Lotus community, well, that's your own damn fault. Don't choke on the red pill.)
Categories: Lotus Insider

LotusLearns that stealing web content is shameful

Fri, 04/20/2012 - 13:32
lotuslearns.com, a blogger.com-hosted site, is duplicating content from a wide variety of wikis and blogs in the Lotus community. Presumably this is a good way for CEO Kelley Smith to elevate search results and present herself as the source for the continually amazing content put forth by the community. Unfortunately, since she's re-publishing this information without attribution, she is not only violating basic international copyright laws, she's also being shockingly rude.

Miss Smith, please adhere to internet etiquette by removing the duplicated content from your blog. If you want to link to other people's content, much like the aggregator service at planetlotus.org, the contributors-at-large would be more than grateful. But copying content to your own site and presenting it as if it were your own is fraud.

This post will be removed from this website when the unattributed, duplicated content has been removed from lotuslearns.com. Fellow Lotus community bloggers are invited to share this message on their own blogs.

Thank you.
Categories: Lotus Insider