Hey! I Played Poker Today
WPBT 2017 was today and I was fortunate enough to be able to make it. I played. Poorly.
That was fun. We should do it again.
WPBT 2017 was today and I was fortunate enough to be able to make it. I played. Poorly.
That was fun. We should do it again.
Hey there's an ODBII Bluetooth device on sale cheap. I think I'll get it and play around.
It's here! (After a couple of weeks. I actually forgot I bought it.)
There's many smartphone apps for ODB devices. Oh, not so many use Bluetooth. Oh, iPhone Bluetooth is a special problem.
But, hey, it's hardware that is soft and I have some skill and making ware that is soft. So let's look around.
Wow. OBD protocol use AT commands just like those Hayes modems from the 80s.
Look, there's some github repos with Python OBD libraries. That one looks interesting; fork it. Look there's one forked from it that adds tests. Let's fork that one instead. Hmmm. Github won't let me fork that one because I have already forked the one it was forked from. Looks like I can add a Learning Item for how to get and compare different forks of repositories. But not now. Just deleting the thing I forked and forking the one with tests. Now I've got it.
{the above was my recollection of the history to this point. the rest is an as-it-happened account.}
It recommends using virtualenv when running the tests. Okie Dokie. pip install it. Wait: errors. Try a couple of more things. Hit the Googles.
Ah, nice. Upgrading to the new OSX probably borked all the Python installations. When using the bundled Python, upgrading OS X can nuke your Python packages, forcing you to re-install them."
brew install python
Errors errors errors...
The Googles say we must uninstall homebrew, too. Bah. More complicated that it should be. And then more errors and more fixes (delete some folders).
Install homebrew. Gah. More errors and more fixes (change permissions on some folders).
Finally, homebrew is installed. I'll just check it out a bit:
brew doctor
ERRORS. Some errors, some errors, and new newer version of XCode....and install those updates..brew doctor...errors...follow suggestions to clean them up...brew doctor...finally clean.
And at last 'sudo pip install virtualenv' works.
Now follow the project's github page instructions on running the tests. Activate the virtualenv, install pytest, run the setup, run the tests. Errors. hmmm.
Poke googles, prod, try again, and again, and oh good. 'python setup.py install' requires that the source folder be the current working directory. I tend to put all my projects in a 'PROJECT/source' folder structure and try not to run executables in the source folder. This setup.py assumes that the current working directory is the base source folder of the project.
But now I have green tests and can start playing.
import obd
obd.debug.console = True
connection = obd.OBD()
r = connection.supported_commands
print r
(python-OBD)Butchs-MacBook-Pro:examples butchhoward$ python list_supported_commands.py
[obd] ========================== python-OBD (v0.4.0) ==========================
[obd] Using scanSerial to select port
[obd] Available ports: ['/dev/tty.OBDII-SPP']
[obd] Attempting to use port: /dev/tty.OBDII-SPP
[obd] Opening serial port '/dev/tty.OBDII-SPP'
[obd] Serial port successfully opened on /dev/tty.OBDII-SPP
[obd] write: 'ATZ\r\n'
[obd] wait: 1 seconds
[obd] __read() found nothing
[obd] __read() found nothing
[obd] __read() never recieved prompt character
[obd] read: ''
[obd] write: 'ATE0\r\n'
[obd] __read() found nothing
[obd] __read() found nothing
[obd] __read() never recieved prompt character
[obd] read: ''
[obd] Connection Error:
[obd] ATE0 did not return 'OK'
[obd] Failed to connect
[obd] =========================================================================
Hmmm. Now is it the library, the car, the OBDII device, or the Mac BlueTooth that is the problem.
Then my son comes over. He has an Android device. We put one of the free ODB apps on it and it works. So, the problem is either the Mac or the library.
Now that we have it working with something, it puts a damper on my motivation for playing around with the library. Maybe it will revive later this week.
I have followed the Paleo diet plan for 2.5 years. My doctor is not excited about how I eat, but he is happy with the results: my weight has been stable between 205 and 215 for 1.5 years from a peak of 245; my cholesterol numbers have all moved toward the 'good' values; my migraines are under control; and most other health measures are good. He still cringes when I tell him I eat bacon and eggs for breakfast nearly every day.A "paleo" approach to health uses the evolutionary history of homo sapiens, plus the best of modern science, as a broad framework for guiding daily choices about diet, fitness, medicine, and supplementation. The core of paleo is the diet: it eschews grains, sugars, and modern vegetable oils in favor of high-quality meat, fish, eggs, and vegetables.
I have gotten Travis CI to build my Haskell doodles.
There was a little bit of cabal learning to get it going. It does not do much other than build-on-push, but that is a start.
Next will be to learn some testing frameworks for Haskell and get that going as part of the build.
Geez, I might have some time and some inclination to post some again.
Today begins my last active month at my current employer. I have worked with basically the same group of fine folks for the past 12 years, other than for a few months between when I was out then brought back in.
This time, I think the layoff will stick. My entire team is being cut loose along with other fairly huge changes throughout the company as it tries to adjust to changes in the mobile device markets.
The exit program being offered is very generous and affords me the chance to take some time to consider what I want to do next.
Let's see where the path leads from here.
I am a lazy blogger. To make it easy on myself, I am digging up a post from my old blog before I started using Blogger here and WordPress elsewhere. These posts were hand written and I never moved them over to either of my current blogs.
I was reminded of this one by an email I received today. Here's the past coming up from behind...
Tuesday, September 23, 2003
He Still Uses ExSell!
I got a call at work today from one Ray Alexander who is, apparently, a
long time ExSell user. He still uses ExSell. Still. Uses. ExSell.
ExSell (a MSDOS-based product) ceased to be a product in 1993 when Sharkware came into existence and an import function was available to migrate ExSell data into Sharkware. At that point ExSell had not been updated in at least 3 years because I (the only developer for it) had been working on other things and on Sharkware. Sharkware ceased to be a product around 1999 or 2000 after CogniTech was purchased by MultiActive. I left CogniTech in 1998 leaving Jeff Browning, Bill (I am ashamed to admit that I do not recall his last name), and Philip Lingo as developers. Even then the product and company were on the path of rapid decline which had started about 2 years before and had accelerated the year before when George Welborn, the creator of the Sharkware concept and founder of CogniTech, was forced out by the board of directors.
It amazes me to find people still using ExSell. I have some sympathy for their plight. ExSell did what it did very well. It was fast in its day and blazes on newer machines. It is not likely to work in the newest machines because it has some hardware-level code to write to the screen which was necessary way back then for performance, but is likely to be forbidden in the current DOS-box in Windows. Anyone still using ExSell is likely to have a considerable data investment that is not likely to be easily extracted and converted into anything else. It once would have been possible to convert it to the Sharkware format and from there into other CRM formats. With Sharkware now defunct, that is not likely to be possible.
In the past six months this is the 3rd person to contact me about ExSell or Sharkware. One tracked me down though the ATA school by way of a Google search for Sharkware. One by email after I put my email address (in a jpg) on my resume (which the previous person pointed out was missing). And now Ray, who called me at work at Synchrologic apparently also by finding my resume (the only result from a Google for 'Excalibur Sources ExSell').
As much as I feel for these people and others who might also find me by way of searches that now might lead to this post, there is nothing I can do to help them. I do not have any of those programs in any form (source or executable). It is unlikely anyone would be willing to pay me what I would charge to write conversion programs for them (I would, but you are likely to faint at the cost).
The best I can suggest for them and anyone else coming this way on this topic is that they should investigate the current crop of Contact Management and CRM (Customer Relations Management) programs. I have not researched any of these and so have no opinions on which is better or even suited to a particular need. There are certainly magazine and websites that have reviews and comparisons that can help in choosing one. There are companies which have in the past imported Sharkware data into various CRM packages. A Google search will turn up those companies. There is not much that can be done for the Exsell users.
Good Luck to all of you. Please do not call me at work, do not track down my family, and do not bother any of the organizations I am involved with since they cannot help either. If you realy want to ask me something, my email address can be found somewhere on this web site.
My name is Butch and I am a Woot-a-Holic. There's a Woot-Off today. Dozens of offers instead of the usual one-a-day deals. They have a twitter feeds that keep you up-to-date on the items for the daily events and the woot-off-events. My addiction just won't let me NOT follow those feeds.
But I do have some techniques for fighting it. I always check the prices for the items that they are selling. I used to just do a Google search or go to Amazon to check the price there. That was usually good enough. The Google search would always turn up lots of links with information about the item along with some links about places selling it. Amazon usually has the the items or at least a partner store that is selling, but that is sometimes the only price for it.
Lately I have been using ShopWiki. This is a site focused on finding stores that sell items. It gives up prices and locations that have the goods in a clean format. If you are looking for jewelry and watches or the latest item from the woot off (Butterfly 8 Bottle Wine Rack), it will give a list of stores, prices, and recommendations. I used it yesterday to check the prices on an Eton FR1000 radio, and last month on butter keepers. Last week I used it to check the prices on Cuisinart Contour pots (not even a woot deal). Uh, Oh. This might be getting as bad as woot itself.
Going off on this research run gives me time to distract from the buying urge. That's usually enough to ease it off and save some money. If not then I have the research in hand and can tell whether I am getting a good deal or not. That can knock a few of the sales off the list. Either way, I am saving money by getting a good deal or not buying a deal that isn't good.
And I always (well almost always) get Mary's permission to buy something. If she says yes, or even just hesitates a little, then I click the I WANT THIS, button and it is bought. If she knocks me out of my chair and pulls the plug on the computer, then I guess that's something I wasn't meant to buy.
A security and privacy expert explains how "anonymized" data can still be used to discover the original source and how Netflix messed up once by accident but is about to mess up a second time with full knowledge.
Dear Netflix executives: Don't do this to your customers, and don't do this to your shareholders. Cancel the Netflix Prize 2, while you still have the chance.Netflix's Impending (But Still Avoidable) Multi-Million Dollar Privacy Blunder
Cool distance estimation trick from LifeHacker (and proof to the kids that math class pays off some times):
Estimate Distances with Your Arm and This Rule of Thumb [Macgyver Tips]Quick anatomy lesson: the distance between your eyes is one-tenth the length of your arm. This is important, because it helps you estimate the distance between yourself and any object of reasonably known size to a rather accurate degree.
From 2009 August |
From an actual scientific paper submitted to the Journal of Ethnopharmocalogy
For many years students of Haitian society have suggested that there is an ethnopharmacological basis for the notorious zombies, the living dead of peasant folklore. The recent surfacing of three zombies, one of whom may represent the first potentially verifiable case, has focused scientific attention on the reported zombi drug.
From Russ Roberts at Cafe Hayek
It’s the wrong question because when you’re 65 the problem isn’t getting insurance. It’s paying for health care. But the public debate has become so obsessed with health care insurance we’ve forgotten what the real issues are.
Mathematical models demonstrate that most movie concepts of Zombie outbreaks are close to correct or even understated. Zombies and other Zombie-like things must be destroyed with utmost haste to limit the spread of infection if society is to survive.
In summary, a zombie outbreak is likely to lead to the collapse of civilization, unless it is dealt with quickly. While aggressive quarantine may contain the epidemic, or a cure may lead to coexistence of humans and zombies, the most effective way to contain the rise of the undead is to hit hard and hit often. As seen in the movies, it is imperative that zombies are dealt with quickly, or else we are all in a great deal of trouble.
Clearly, this is an unlikely scenario if taken literally, but possible real-life applications may include allegiance to political parties,...
Scott Adam's gets it almost right.
I read an interesting report in the media about a new technology breakthrough. Obviously you shouldn't believe the report, for two good reasons.He should have left point (A) off the list of reasons.
a. The story is about technology.
b. It's in the media.
I wonder how many really read the Official Rules closely enough to realize just what they are agreeing to when they play these silly games.
ALL PRIZEWINNERS: By accepting a prize, winners consent to the use of their names, addresses, voices, and statements relating to the Promotion or Sponsor or Promotion Entities, and photographs or other likenesses, without further compensation, notification or permission in any publicity or advertising carried out by Sponsor or any related entities in any and all media now known or hereinafter developed without territorial or time limitation, except where prohibited by law.Emphasis Added.
Reminded me of John Prine, even though the song does not match the story very closely, but still, it's a good song, and it's John Prine.
The end of “cash for clunkers”: "Michael Giberson
News reports indicate that the federal government is winding up “Cash for Clunkers” early next week on the expectation that claims will exhaust the $3 billion committed to the program. Just noticed this comment by Robert Barro of two weeks back (HT to Paul Walker/Anti-Dismal):
The most ludicrous (though, fortunately, small) intervention thus far has to be the cash-for-clunkers program. It’s not surprising that subsidising people to destroy old cars would raise GDP, because measured GDP includes the replacement cars but not the value lost from destruction. Why not also blow up houses and factories and then enjoy the expansion of GDP from the replacement investment? (Actually, it’s best cosmetically to blow up refrigerators and other consumer durables because GDP does include rental income on houses and factories.)
From Tom Smith:
Google voice machinations
Evil vs. evil.
Should a life insurance company 'discriminate against' an 80 year old smoker with lung cancer by declining to offer the same policy available to healthy 20 year olds?
...
Should a car insurance company "discriminate against" a five-time convicted drunk driver by failing to offer the same policy available to safe drivers?
...
We need fewer political controls on health insurance, not more. We need more protection of individual rights in medicine, not more violations of our rights. If we value our health and our lives, we need liberty.
On the suggestion of my sister, and because I could get a free rental, I gave RedBox a try yesterday. The website is not bad, there is a box close by that I would pass regularly, so worth a try for at least the free shot. Got the movie, watched the movie, and today was going to return the movie while out and about.
Alas, the poor RedBox had fallen on hard times since I had been by yesterday. Seems someone had taken offense to something it had done and smashed its screen. Perhaps it did not have the movie they wanted. Or maybe they couldn't quite get the 'barcode must be to the rear' trick just right (given that they were of the type to smash a big red machine, you know). Anyway, I could not return the movie. The merchant at that location knew of the demise of the box, but was having nothing to do with the returns himself other than point out where he thought the next closest RedBox might be. No blame there, that's just the way the RedBox deal works even if it is a nuisance to me. My worst case is I am out a couple of dollars while I wait for them to replace the box at this location. The best case, as today, is that I drop off the disk at a different box along the way to doing other things. I went off to do other things and the return at the other location went smoothly.
The email notice that I had returned the disk beat me home, which I find very cool in a geeky sort of way: every RedBox is on the internet. Which also means that there should be someway for RedBox Central to KNOW that my local RedBox had suffered a vicious attack, or any other kind of system failure, and know it before a customer told the local merchant. Which might well be the case, I don't know. Certainly if I had built a system that was networked to do inventory and billing, I would also use its alerts for faults, failures, and security breaches. I will be checking on this box to see how long it takes them to replace or repair it.
Given the number of the RedBoxes in my area, the online inventory and reservation system, the not-too-bad rental and return process, and the one-buck-a-day rate, I can easily see RedBox being on the list of movie rental services we use in the future.
I guess the girl scouts have to go back and find the right spot.
According to readings by the National Geodetic Survey, the Four Corners marker showing the intersection of Arizona, Colorado, New Mexico and Utah is about 2.5 miles west of where it should be.
The weekend before last Nelson and I ate at Pappy Red's, a truly wonderful barbeque joint in town. At some point the talk to turned to us trying our hand at cooking some meat. Ribs. Pulled Pork. Maybe a whole pig just like we'd seen on the Anthony Bourdain show. Mmmmm. Well....maybe.
Anyway, this weekend we took a shot a pulled pork. We tried two methods of cooking Boston Butts to see which was better, whether we could even tell the difference, and whether the difference was worth the bother.
The short form was a recipe from Food magazine. A very simple and tasty recipe cooked in a Dutch oven in the stove. We used our cast iron pot. It took a total of 5 hours prep, cooking, and pulling (shredding) time. The long form was an Alton Brown recipe (our current cooking crush). This used a 10-hour brine followed by a 10-hour slow cook in a smoker.
We planned on having pulled pork Saturday and Sunday as sort of a taste testing weekend. We invited Vicki and William along for the ride with no complaints heard.
I dragged Nelson out of bed Saturday morning to help with the shopping and off we went. We stopped by Publics to get most of the stuff and check out the meat. The plan was to see what pork they had and compare it to Ferguson's Meat Market. We ended up with a 4-pound butt from Public's and 18-pounds of Butt from Ferguson's. By far, the better deal was at the Meat Market, but the little 4-pound butt we snagged from Publics was on sale for just ten cents a pound more while a dollar a pound less than the others. Makes you wonder why it was on sale, but we cooked it that day so it wasn't going to matter much. Ferguson's is pretty amazing. In the 14 years we have lived in Cumming, knowing it was there, and with Mary shopping there sometimes, I have never been inside. I have a feeling I will be there often now.
We got the rub on the small butt with its cider-based baste and put it in the oven. While that cooked, we put the two big butts in a molasses flavored brine to soak for 10 hours. I made some sauce (Emeril) and put it in the fridge to mellow. The little pig came out of the oven and was shredded.
Then we did other stuff. Nothing to do with the kitchen and nothing went as planned so I am not going to talk about it other than to say we did not spend money, which is good for now.
Vicki, William, and the boys came over for dinner. It was good.
The big pigs came out of the brine about 9:00pm. The Alton Brown cummin-based rub went on thick and they went onto the grill about 10:00pm. We had to use the grill as our smoker because our smoker had not seen any use in a couple of years and was DOA when we tried to turn it on.
The grill worked fine after some fine tuning. It held the temperature at just a bit above 200 degrees all night long except for one exciting spell around 1:00 am when some of the drippings caught fire and spread flames over the big pig. That called for some adjustments in the grill. The foil covering the burners was replaced with some heavier and wider pans to keep the fat out of the flames.
Nelson and I set into a schedule with him checking the temp and flamage at the bottom of the hour and me checking at the top of the hour. I kept that up until about 5:00 and the decided that the meat would be good enough or someone would let me know that the porch was afire because I was sleeping for a few hours. Nelson kept checking every hour. At 9:00 I took the smaller of the butts off the grill to rest. The bigger needed a couple more hours. Nelson slept until about 11:00 because he was done, too.
Mary and the kids went to the movies in the afternoon. It snowed. I pulled the pork, and made some cornbread. Vicki, William, and the boys came over for the second round. Everyone ate. It was good.
The consensus was that they were both pretty good. The long form was the winner in taste, but no one would turn down the short form. The short form was the big winner in the taste per effort ratio, although the long form wouldn't be so bad if we planned it so we were not cooking overnight.
Now I have pork sandwiches for lunch for the whole week and I am not complaining one tiny bit.
Just finished reading this from John Scalzi. It is basically a best-of from the past ten years of his online writings. You could go to his web site and read all ten years worth (I think it is all still there), but this is probably easier to get caught up and get a sense of what he is about. Plus it throws money at him so maybe he will write some more science fiction for us.
This story might help to illustrate why experienced engineers assume that any large software program will contain errors, and why they distrust anyone who claims otherwise. Getting a big program to run at all is an impressive feat of engineering. Making it error-free is too much to hope for. For the foreseeable future, software errors will be a fact of life.
A couple of years ago John Scalzi announced the launch of Ficlets (which I am not linking to for reasons to be clear by the end of this paragraph). I toyed with the idea of writing some things there, but always chickened out. On 1Dec I finally posted one. On 2Dec, the Ficlets admin announced the site would be closing 15Jan2009.
Sorry, I really did not mean to bring down the site. This is the Ficlet that did it.
After an hour and half of driving 25mph on 4-lane wide interstate between Macon and Atlanta we decided that we had to change the route. We got off, took a potty break, got some food and gave the GPS to Nelson. He tapped on it until the routing did not use any interstate highway. It took a few tries, but eventually the GPS-lady got the idea that we really and truly wanted to get away from those roads. Then we drove for two more hours, but at the speed limit, in the dark on curvy roads in the rain listening to CD of the teen vampire romance novel until we finally got home three hours later than planned. The usual five hour trip had turned into eight.
Then Mary got dressed and left for work.
If the the propane powered grill on your back deck has trouble starting when using the built-in automatic starter, be sure to SHUT OFF all of the burners and WAIT a few minutes before trying to light them with a lighter. If you light them right away the resulting fireball will engulf your head and burn off most of your eyebrows. You will be lucky to be able to get away without your entire head being aflame or your clothes catching fire.
I rode the bike to work most of the days through the summer. The general rule was (and still is) that I ride the bike unless there is some reason not to ride the bike. Reasons not to ride are that I have to carry more than one passenger, the weather forbids, or I have cargo that will not fit into my bag. The weather has been the main reason in the past week or two. Mary insists that I will have to man-up unless there is ice on the ground between now and January when we get to the true local winter.
It's been mostly good so far. Certainly have used less fuel than the Jeep. 45 mpg is better than 15 mpg. 70 miles per hour feels faster than when riding fully enclosed. Crazies are still crazy, but they stand out even more when you are more exposed. Timing the commute to miss the 10mph traffic on GA400 is even more important now. I have missed out on a bunch of Talk Radio, but have not decided whether that is a positive or negative point (definite negative is missing the heads up on the traffic reports). Remembering that the gap in the trees at exit 14 acts like a funnel for the wind is important or I end up moved suddenly to the next lane over.
I traded the backpack I used to carry my load of stuff around for a Nelson-Rigg bag. It rides behind the Dan Vesel backrest on an tail rack extension from Dan (scroll to the bottom of that page). Dan made a larger model for me to handle the size bag I use to keep it off the turn signals. The main compartment of the bag has enough room for the second helmet which is handy. It is big enough and secure enough on the rack to carry my laptop when I have to bring that home for work. I use it mostly to carry a lunch and a book to read when I break for the day. I has plentiful little pockets to handle the small junk I carry around. So yes, it is a mostly great big purse that I strap to the back of my bike.
If the weather keeps to North Georgia norms, I should be able to ride at least a couple of sunny days a week in December now that I have the pants with the quilted liner. January and the first part of February will probably be the skip months. I will not try to ride on ice and have no plans to get wet in the cold weather.
Now I just need to the Jeep to last for a couple of years without major problems.