Years ago one of my co-workers complained that my code had “too much error handling”. I was astonished, but said little in defence since I was the new guy on the team. Looking back on this, years later, I am bothered by this attitude. It is easy to write code that works correctly when everything it depends upon works correctly. Given the complexity of modern software and hardware, there are an endless number of things which can fail.
Therefore, error handling becomes the most critical part of the code. We have to code with the assumption that anything can fail. In my experience, it will, sooner or later. When the failure does happen, it must be dealt with in a reasonable manner. Ideally that would be some sort of self-healing, retrying in the case of transient issues, and, failing that a useful and comprehensive error message.
I first started writing this post at least 4 years ago, and in the meantime it has become apparent that my point of view is the minority amongst programmers. Silent failures, incomprehensible error messages, and, crashes are a daily part of life amongst the recent wave of gadgetry. But I guess the plus side is it gives me something to complain about here.
We just finished watching Sons of Liberty. I think they took huge liberties with the historical facts, and the amount of time spent in commercials seemed rather extreme (over 25% by my measure). But I thought it was well made and entertaining.
But I’m not a movie critic and I’m not going to even pretend to be one. Rather, I will share a section of the Van Bunschoten book which provides a glimpse of actual history related to the events in the show.
Now come we to the Revolutionary test. A meeting of the inhabitants of Rombout Precinct was called " on hearing the news of the Lexington outrage ‘and of the Resolution taken in Parliament declaring the whole country Rebels,’ to provide for the preservation of our families and that a firm union may subsist between us and the other Precincts." This was signed at Fishkill on May 2, 1775, by forty-two free-holders including Elias Van Bunschoten, his son Elias, Jr.. and his nephew Matthew. Quickly followed the historic pledge: “Persuaded” etc., * * “we do associate, under all the ties of religion, honor and love to our country, to adopt and endeavor to carry into execution whatsoever measures may be recommended by the Continental Congress or resolved upon by our Provincial Convention.” This Elias signed and ten others of the name in Dutchess county, and as many more who were connected with the family by marriage.
Presumably my fifth great-grandfather was amongst the other signers. I have yet to incorporate this information onto WeRelate, but I’m working on it.
After reading An Open Letter From a Farmer to Angry Vegetarians I was pondering how to respond…
I was driving home from my in-laws late at night, and one can’t help but notice the white crosses at the side of the road, or the bodies of many deer, raccoons, squirrels, etc. smeared across the roadway. And I suddenly connected the dots!
The truth is that there is no road we can drive on without killing. None. A trip to your local grocery store may not involve running over a single child or small animal, but the building of that road costs endless lives.
I know that is hard to understand. It was hard for me too.
It may seem that the best option is to drive less often, to do so more slowly and with more care to avoid such things. But like Jenna, I realized that I need to embrace it. If I drive fast enough through that school zone, if I do hit a child, it will likely be a clean kill, not to mention free-range. They had one bad day, one bad moment actually, and that moment surprised the hell out of them.
So yes, I am a killer. There is a chance I could take a life of a sentient being whenever I get behind the wheel. I fully embrace this primal and beloved part of my person.
N.B. by way of explanation, I should probably mention that I read Swift’s “Modest Proposal” around the time I wrote this. I’m sure that inspired the harsh tone. But hopefully, this shows the ridiculousness of the argument in the original article.
I found this tragic story in the Van Bunschoten book, which starts out sounding like an episode of Law and Order, but then goes medieval.
On April 20, 1682, Arendt Isaacs’ wife died suddenly and not without suspicions of foul play. Her body was examined by the magistrates, constable and two doctors, and in conclusion — “Arendt Isaax, her husband, was ordered to place his hand upon his breast and call upon God Almighty to give a sign if he were guilty of his wife’s death; which he did. But no change was visible.”
I’m glad investigation techniques have improved since then.
The reason this was in the book was that Arendt and my 7th great grandfather later signed the following agreement:
Appeared before me Wm. Montagne, secretary at Kingston, Arendt Isaax who declares to have hired out his daughter named Gerritjie for the period of two current years from April next. During said time the aforesaid daughter is to properly and faithfully serve her master and mistress.
Theunis Elesen is to provide her with proper board and clothing and at the expiration of the period furnish her with a presentable Sunday gown, four chimeses, two blue aprons, two white aprons, and one silver head-ornament, and is to send her to evening school during one winter. In testimony of the truth we have subscribed hereto this September 1, 1682, at Kingston.
These fragments do make one wonder what really happened and what the effect was on this small isolated town. I’m sure an author of historical fiction could turn this into an interesting story, but don’t forget about me when it becomes a bestseller!
One of my favourite blogs was Suicide Food. After reading that blog I started noticing more occurrences of this repugnant practice, I started taking pictures and submitted some to the blog. But then the blog stopped. I still have dozens of images I have collected, and I find more every now and then. You can see the raw photos in my Suicide Food album. I may post about them every now and then, but don’t expect any noose ratings or well-written commentary like the aforementioned blog.
But here’s one that comes to mind as being especially egregious. I found this brick in one of my daughter’s Duplo sets:
Most of the suicide food images I happen upon are in a grocery store or restaurant where such images are not unexpected. But for it to show up on a toy, a toy which I have loved as long as I can remember, aimed at my daughter, was especially bothersome.
What could be more wholesome than a nice glass of milk, offered to you by a smiling, happy cow? “Of course, I’m happy. Parenthood is hard, so the farmer helpfully took away my newborn baby. Now I don’t have to deal with the sleepless nights and the endless nursing, what a hassle! The farmer has also helpfully hooked me to this milking machine to prevent my udder from exploding. So have a nice glass, the farmer assures me there isn’t too much pus in it.”
It’s sad that I still have to try to convince people that they should be using some sort of version control. But I do. One of the things I say is that there are three kinds of things in the world: Things that are checked in, things that are generated from things that are checked in, and garbage.
Since this is Martin Luther King, Jr. Day, it seemed like a good time to document some disturbing things I have found while researching my family tree.
For several months I have been reading Concerning the Van Bunschoten or Van Benschoten family in America: a genealogy and brief history, and some time ago I first noticed (with shock and horror) the word “slave”. None of these were my direct ancestors, but rather distant cousins many generations removed (obviously). But regardless of how there is a connection, having any connection to slave ownership is shameful.
I have been pondering, for some time,how to document this sad chapter in my family’s history. For now, I will just list what I have found so far. Each bullet item, below, represents a single cousin. Note that I have, for the most part, quoted the aforementioned book directly, which was written in in 1907 and was quoting yet earlier sources, so any offensive language is not mine.
On page 31, in 1758, there is a mention of “He had just returned from the fields with his negro slaves where he had been superintending the work” and “… the family and the negro slaves who had gathered in the room.”
On page 39, sometime before 1815, “the Domine had a privileged old slave as a gardener” and “The Domine sent a negro in chase who followed the fugitive creditor several miles and at last succeeded in making payment in full.”
On page 77, in 1783 a will gives to each of of his two daughters ownership of “a Negro Woman which she has now in possession” (there were two daughters and two slaves).
On page 100, the author says “And doubtless he had slaves as had his New Hackensack cousins; I come on no record of the fact, however, beyond this entry in the Poughkeepsie church records: “Baptised Nov. 4, 1796, Mary, child of Bet, slave of Elias Van Bunschoten; Sponsor, Catalyntje Light, wife of Elias Van Bunschoten.” Mrs. McRorie, Elias’ only living grandchild, remembers hearing that her “Grandmother Catalyntje was a ‘fine lady’ — that she never did any work except embroidery and needle-work, slaves doing all the household labor “.
On page 120, late 1700’s, a daughter is given “a slave woman called Elsie Deyon.”
On page 133, early 1800’s, there is mention of slave women Dinah and her daughters, and Judy and her daughter Alta.
On page 195, around 1800: “She also tells of an “old black Mary " and her daughter “Sill” or “Cill " who lived at her grandfather’s — the former a slave until emancipation.”
On page 199, in the mid 1600s a relative “settled at Harlem, opened an “ordinary " or tavern, established a ferry and provided boats for transportation “of which his lusty negro Mathys was put in charge.”
On page 214, around 1778, I found this disturbing story: “A negro boy belonging to the family having been impudent was punished by his master. Resenting the correction the negro at night put a coal in the hay-mow and the barns, barracks and all out-buildings were burned to the ground, and the contents including grain, fodder, cattle and horses entirely consumed. It is said that Jacob was reluctant to believe that the negro had done the deed until the latter, who was at work on the wood-pile the following day, taking an opportunity as he thought started to run away. He was pursued, caught, and confessing the crime turned over to the authorities and, paying the then penalty for incendiarism, was burnt at the stake in the broad part of Market street, Poughkeepsie — a horrible spectacle witnessed by a great concourse of people. It is told that when the flames were mounting about him the negro time and again cried out: “Oh! Massa’s poor horses! Oh! Massa’s poor, poor horses!”
On page 657, there is a church warehouse record: “Aug. 4, 1714. Owes for two pounds of (obscure) delivered to his negro,”
On page 664, in 1785, the following is listed in a will: “my Negro Wench, Jin, and my Negro Boy Named Ben”
To end on a better note I found these two passages:
On page 279, a cousin living in the mid 1800’s “It is said that during the days of the “Underground rail-road” he aided the cause of human freedom. On one occasion it is known that he saved negroes from capture by hiding them until their pursuers were gone and then getting them out of the port of Huron for Canada.”
A man who married into the family in 1851 (p 278): “Francis Barrie was of pronounced individuality. By nature he was a non-comformist and he became a reformer along many lines. Early an Abolitionist, he was a part of the " underground " system which passed escaping slaves on to Canada. He was an Adventist and a vegetarian, and used his voice and pen for the furtherance of many causes.”
When I was about 12 years old my mother got a little booklet from a distant cousin which listed the family tree of the Way family (my maternal grandfather’s family) going back to the late 1600’s. For a social studies project that year, I copied the information onto the given charts and was quite proud that I had three pages. But, I had no understanding of the value of this information, how hard it was to get and what was missing. With that, I dropped it and didn’t think about it for a very long time.
In the late 1990’s my mother and step-father became Mormon and began digging through the entire family tree. In addition to the booklet mentioned above, my mother had another one tracing back her mother’s ancestry, again, back to the late 1600’s. She entered all this into her computer (with some help from me), and I got a copy of the GEDCOM file, which I messed with occasionally, and even converted it to HTML and put it on my web pages.
I remember thinking, at the time, that there must be countless GEDCOM files, like mine, floating around out there, and if you could put them all together you would have one huge family tree, which would be infinitely more valuable than all those individual GEDCOMs. But this was before Wikis existed and so I couldn’t see a way to get from here to there, and promptly forgot about the idea.
A few years ago, I started thinking again about this idea and realized that a Wiki was just what was needed for this. A few searches later I found myself at WeRelate.org. This was exactly what I was looking for! I promptly dug out that old GEDCOM file, and submitted it. To my shock, it was rejected! I figured a few quick additions was all that was needed and started reading. But it would not be so easy, and I put the project aside. Almost. In the process, I discovered the book Concerning the Van Bunschoten or Van Benschoten family in America, a genealogy and brief history and was shocked. This 921 page book details 4395 descendants (and many others who married into the family) spanning two and a half centuries. I started reading this book and realized what genealogy really was, how difficult it could be and what things can be learned.
So, when my mother was visiting for Thanksgiving, we sat down and I showed her how to use WeRelate and got started down what is obviously going to be a long road. Thus far, I have 277 entries in my family tree over there and have only scratched the surface.
All this is to say that you can expect more posts about this in the future, whether you like it or not.
I noted this error, but forgot to note where I got it. I’m pretty sure it was IBM’s support site:
There is an issue with your login that needs to be addressed before you can successfully login to SR. Please contact the SR help desk.
So I can’t log into the SR system due to an “issue”, and to get it resolved, I need to file an SR. My head is spinning, just like the logic.
An old friend of mine and I often needle each other about various things. Since I became vegan he will often try to find various things to change my mind. The latest was that he sent me a link to Allan Savory’s TED talk. I watched it through twice and read a couple of critiques of it. I also watched What’s Wrong with TED Talks?, but that’s another topic.
One thing I noted was the enthusiastic applause in the video and the love-fest in the YouTube comments. Why is that? And why did my friend forward this to me? Because he was telling them what they wanted to hear. The key point of his talk is that not only is it acceptable to eat that hamburger, but it is necessary as it is the only way to feed the world and reverse climate change.
But we should all know to be suspicious of people who tell us what we want to hear, whether they are salesmen, politicians, priests, or economists.
The problems we face, whether environmental, political, economic, personal or spiritual, will not be solved by doing things which are easy or comfortable. We aren’t going to fix anything by driving our SUV to Walmart to get some Chinese grown beef, to eat while we sit in our recliner watching reality TV or Fox News. But let’s narrow this discussion back to Allan Savory’s talk.
I would say there are only two points in his talk which are of value: 1) desertification is bad and 2) “mimic nature”. Though I would say the latter, while useful, is overly simplistic. Simply mimicing nature is not enough. We have created a set of problems which nature is not going to be able to solve except in geologic time scales. Rather, we need to look carefully at how nature works and, using the best design practices, put together new ecosystems which sequester carbon, provide food, retain water. Limiting ourselves to what nature has done in the past isn’t going to get us there.
There could well be circumstances where carefully managed livestock could be beneficial to the environment. However, I doubt there are many places where this is the only option, as he insists. I am further doubtful that there aren’t ways to carefully manage plant communities in ways which could be more beneficial and more water and energy efficient. Geoff Lawton’s efforts in Palestine come to mind.
Furthermore, he leaves out one big detail. Water. What are these cows drinking? A single cow needs 6-14 gallons of water per day. Where does all this water come from? You can grow a lot of plants with that much water.
And I noticed an interesting verbal sleight of hand near the end of his talk. When showing a map of all the arid areas of the planet, he claims that “only animals can feed people from about 95% of the land”. Given the context, I know that when he said “the land” he meant the arid land in his chart, not the whole earth. But, I suspect that some people, too busy salivating at the thought of being able to eat all the meat they want with a clear conscience, may hear it the other way. However, even in context that is quite a generalization. If we rephrase that statement we can see how ridiculous it is: “Of all the thousands of edible plant species there are none which can produce yields on 95% these arid lands.” Really?
Actually, there is a third key point of his talk: killing 40,000 elephants is a horrendously stupid act. While it’s possible he pulled his head out after that one, I’m not sticking around to find out.
I’m not sure why I didn’t think of this earlier, but I just put Defensive Omnivore Bingo onto GitHub. So if you have any contributions, feel free to send me a pull request. Of course, email still works.
Next blog post in progress…
Every day I see many of those supposed progress indicators. But they don’t indicate anything other than lazy and sloppy programming. That little icon will go on spinning regardless of what is actually happening. In the rare situations where it really does relate to work being done, it rarely relates in a useful way. It seems that these days most software is written with several assumptions in mind:
The first assumption is laughable, the second is insulting, and the third is sad.
It shouldn’t be hard to do this right. Many years ago I cooked up a simpleminded progress indicator which tells you what is happening, and about how long it might take. It was quick and stupidly simple to write.
Loading host info for urolite.example.com... 16 of 17 (94.1%) 9s ETA 1s
But as for the progress on this blog, I have nearly a dozen mostly finished drafts waiting to be posted, but I’ll leave that icon spinning so that you know that something is going on.
Reposted from my BlurBlog: Revisiting Open Source Social Networking Alternatives
By timothy
reifman writes Upstart social networking startup Ello burst on the scene in September with promises of a utopian, post-Facebook platform that respected user’s privacy. I was surprised to see so many public figures and media entities jump on board — mainly because of what Ello isn’t. It isn’t an open source, decentralized social networking technology. It’s just another privately held, VC-funded silo. Remember Diaspora? In 2010, it raised $200,641 on Kickstarter to take on Facebook with “an open source personal web server to share all your stuff online.” Two years later, they essentially gave up, leaving their code to the open source community to carry forward. In part one of “Revisiting Open Source Social Networking Alternatives,” I revisit/review six open source social networking alternatives in search of a path forward beyond Facebook.
Read more of this story at Slashdot.
A good survey of the options. I’ve been on diaspora for years, but its a lonely place.
November 25, 2014 at 01:09PM
via Slashdot http://ift.tt/1vcfXCp
Conflicts of interest in nutrition research:
By Marion
Over the July 4th weekend, a reader sent a link to a paper about to be published in the American Journal of Clinical Nutrition titled Increased fruit and vegetable intake has no discernible effect on weight loss: a systematic review and meta-analysis.
I took a look at the abstract:
Studies to date do not support the proposition that recommendations to increase F/V intake or the home delivery or provision of F/Vs will cause weight loss. On the basis of the current evidence, recommending increased F/V consumption to treat or prevent obesity without explicitly combining this approach with efforts to reduce intake of other energy sources is unwarranted.
This would seem to make some sense, no? But the dismissal of recommendations to increase fruit-and-vegetable consumption sent up red flags.
My immediate question: who paid for this study?
Here’s the conflict of interest statement.
Note the presence of companies making processed foods whose sales would decline if people ate more F&V.
A coincidence? I don’t think so, alas.
More evidence: just today, Bettina Siegel sent me her post on a paper sponsored by the Corn Refiners Association, once again with a predictable outcome.
When it comes to nutrition research, “guess the sponsor” is a game that is all too easy to win.
This is why I avoid health arguments about veganism: little actual science is getting done, and when it does, studies like this quickly pop up
July 8, 2014 at 12:29PM
via Food Politics http://ift.tt/1k2zNZu
Apparently The US Is Pretty Selective About What Science it Believes
By
![Apparently The US Is Pretty Selective About What Science it Believes](http://ift.tt/1iKypwO)
Submitted by:
(via [Phene Thyla Mine](http://ift.tt/1hocsPt))
Tagged:
infographic , funny , science , usa , g rated , School of FAIL
[Share on Facebook](http://ift.tt/1iKypN7)
April 23, 2014 at 8:00AM
via FAIL Blog http://ift.tt/1mPSTVC
A few days ago I was investigating a bug (which caused Subversion to dump core) and I discovered this sentence in the commentary about a very similar bug: “A friend of mine told me it was normal, and it was not the duty of apr_hashfunc_default to ‘sanitize’ the parameters it receives.”
When I first saw that statement I thought “no, it takes a village to write a program”.
That commentary above is now doubly hearsay, and I have no idea if this is their official stance on the bug, but it is a troubling sentiment, in any context. Software, these days, is composed of countless layers of libraries and it is everyone’s responsibility to deal with unexpected inputs in some way. Otherwise you will end up with confusing error messages which are far removed from the actual problem (which is an increasing problem as we all know). Simply letting a segfault happen is not acceptable, if you’re going to insist on crashing the calling program, then at least issue an error message first. Do something!
I have run into many situations like this in my own code. My strategy is always to first narrow down the problem to the lowest level, write a test case and fix the bug in the lowest level library. Then move up the stack and write a test and fix the problem in the caller, and so on. To fix only the highest level program just sweeps the problem under the rug, until it is rediscovered years later in another program. And I do mean years. The statement, above, which sparked this post dates to 2007, but the code I was working with was released in 2013.
This popup just came up on my wife’s phone:
Alert!
Sorry, we ran into a problem. Please try again. If the problem persists call us at 800-xxx-xxxx. Error Code 1000.
While it is admirable when engineers make an effort to enumerate all the possible errors a program might get, but to do so without providing further on-screen explanation is just plain mean. Perhaps they should supply a secret decoder ring for those who don’t simply want to stare confusedly at the screen and retry the operation under the assumption that the unspecified “problem” will simply go away.