2016-12-14

10 Steps to an empty starter project in git with cmake and googletest

Here are 10 Steps to an empty starter project in git (suitable, for instance, for a Coding Dojo), ready to use google test for a starting point for test driven development (Assuming you already have git, cmake and some build toolchain appropriate to your platform installed and available on the execution path).

For the following the numbered item describes the step, the items between the lines of hyphens give steps you can run from a Unix Shell-like program (or Cygwin) to create a basic starter project. Go ahead! Copy them from here and paste them into your favourite shell and it should just all work:

========================================================================================
1. make a new directory (we'll call it starter)
----------------------------------------------------------------------------------------
mkdir starter
----------------------------------------------------------------------------------------

========================================================================================
2. enter it
----------------------------------------------------------------------------------------
cd starter
----------------------------------------------------------------------------------------

========================================================================================
3. create a new git repository
----------------------------------------------------------------------------------------
git init .
----------------------------------------------------------------------------------------

========================================================================================
4. add google test in submods/googletest
----------------------------------------------------------------------------------------
mkdir submods
git submodule add https://github.com/google/googletest.git submods/googletest
----------------------------------------------------------------------------------------

========================================================================================
5. add basic CMakeLists.txt at root
----------------------------------------------------------------------------------------
cat <<eof >CMakeLists.txt
cmake_minimum_required(VERSION 3.1)
project(starter)

include( CTest )

add_subdirectory( submods )

set( starterSourceDir "${PROJECT_SOURCE_DIR}" )

add_executable( starter source/starter_main.cpp )

add_subdirectory( test )
eof
----------------------------------------------------------------------------------------

========================================================================================
6. add basic CMakeLists.txt in submods
----------------------------------------------------------------------------------------
cat <<eof >submods/CMakeLists.txt
cmake_minimum_required(VERSION 3.1)

set_directory_properties(PROPERTIES COMPILE_FLAGS -Wno-error)
add_subdirectory(googletest)
eof
----------------------------------------------------------------------------------------

========================================================================================
7. add basic sourcefile in source
----------------------------------------------------------------------------------------
mkdir source
cat <<eof >source/starter_main.cpp
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
    cout << "Hello " << argv[0] << " with " << argc << " parameters (ignored)." << endl;

    return 0;
}
eof
----------------------------------------------------------------------------------------

========================================================================================
8. add basic CMakeLists.txt in test
----------------------------------------------------------------------------------------
mkdir test
cat <<eof >test/CMakeLists.txt
cmake_minimum_required(VERSION 3.1)

add_executable( testStarter test_starter.cpp
)

target_link_libraries( testStarter PRIVATE gtest_main )
target_include_directories( testStarter PUBLIC ../source )

add_test( NAME starterTest COMMAND testStarter )
eof
----------------------------------------------------------------------------------------

========================================================================================
9. add basic GoogleTest file in test
----------------------------------------------------------------------------------------
cat <<eof >test/test_starter.cpp
#include <gtest/gtest.h>
#include <iostream>

using namespace std;
using namespace testing;

TEST(StarterTest, basics)
{
    cout << "Hello test" << endl;
    EXPECT_TRUE(true);
    EXPECT_FALSE(false);
    cout << "Goodbye test" << endl;
}
eof
----------------------------------------------------------------------------------------

========================================================================================
10. Check it all in as an initial commit
----------------------------------------------------------------------------------------
git add CMakeLists.txt
git add submods/CMakeLists.txt
git add test/CMakeLists.txt test/test_starter.cpp
git add source/starter_main.cpp
git commit -m "Initial commit of starter project"
----------------------------------------------------------------------------------------

            __   __          _                _                  _ 
            \ \ / /__  _   _( )_ __ ___    __| | ___  _ __   ___| |
             \ V / _ \| | | |/| '__/ _ \  / _` |/ _ \| '_ \ / _ \ |
              | | (_) | |_| | | | |  __/ | (_| | (_) | | | |  __/_|
              |_|\___/ \__,_| |_|  \___|  \__,_|\___/|_| |_|\___(_)
                                                                   

========================================================================================
And now you're ready to start using your brand new empty project. Write an interface! Write a test for it (it'll fail)! Write code to make it pass! You're on your way with three of the best-of-breed tools available today: git, cmake and googletest.

From the "starter" directory, on Linux, for instance (where cmake's Makefile generator is the default), you can execute the following:
----------------------------------------------------------------------------------------
mkdir build
cd build
cmake ..
make
----------------------------------------------------------------------------------------

Executing the compiled results will also succeed
----------------------------------------------------------------------------------------
./starter
test/testStarter
----------------------------------------------------------------------------------------

And the tests can be run using ctest:
----------------------------------------------------------------------------------------
ctest .
----------------------------------------------------------------------------------------

2016-08-22

Do you use Linux? With a newer NVIDIA card? The 4.7 kernel breaks NVIDIA's binary driver.

Currently, googling doesn't find this data easily, so I thought I'd post it here where an index-crawler might catch it more easily. If you're not very geeky, this post won't make much sense so feel free to pass over it.

If the title made sense to you, here is (a correct-enough version of) the patch you are looking for. Apply this after extracting (-x) the contents of the package, before running ./nvidia-installer in the resulting directory. Otherwise you will have compile errors:

kernel/nvidia-uvm/uvm_linux.h
557,563d556
< static bool radix_tree_empty(struct radix_tree_root *tree)
< {
<     void *dummy;
<     return radix_tree_gang_lookup(tree, &dummy, 0, 1) == 0;
< }
< 
< 
kernel/nvidia-drm/nvidia-drm-gem.c
411c411
<     gem = drm_gem_object_lookup(dev, file, handle);
---
>     gem = drm_gem_object_lookup(file, handle);
kernel/nvidia-drm/nvidia-drm-fb.c
117c117
<     gem = drm_gem_object_lookup(dev, file, cmd->handles[0]);
---
>     gem = drm_gem_object_lookup(file, cmd->handles[0]);

Someone else (the topic poster here) did the "hard work" to find the commits to the kernel that necessitated these changes. 3 months later (this week-end), after the periodic kernel upgrade (to 4.7.1-ARCH-1) "broke" my video driver, I tried to install version 367.35 of the NVIDIA driver for my GeForce GTX 770 video card and could not. "devtalk.nvidia.com" was not a place I thought to look first -- maybe next time it will be -- so I posted it on more of a "user" board after I developed it for myself. The moderator of that board sent me on my way.

Hopefully my title will be easier for the next bloke -- and once 4.7 is more widely used, there'll be many of them -- to find -- until NVIDIA issues a new version of their driver for the newer kernels.

Keywords: NVIDIA video driver, Linux 4.7, "Installation has failed.", "You may find suggestions on fixing installation problems in the README available on the Linux driver download page"

When you hear Fraser Institute, think "Koch-funded"; When you hear "oil sands", think "tar sands"

This evening on my drive home, I heard a piece on the news (before the traffic report; it's a Sunday evening and the migrants are returning) that I couldn't ignore, not after reading Jane Mayer's Dark Money. I'll let the note I wrote to news1130.com in response fill out what what I meant by the title of this post.

(oh fiddlesticks, I forgot to paste it before cobbling together the other links above; oh well, here's what I wrote to the best of my memory)
Subject: The Fraser Institute and the Oil Sands

It does not serve the public interest to quote, as from an acknowledged authority a warning about how a government policy (in this case Alberta's proposed Carbon Tax) will adversely affect the "Oil Sands" that comes from the Fraser Institute without mentioning (a) how frequently the Fraser Institute has received grants of how much from Koch-funded foundations and (b) to what extent Koch family members have invested in the "Tar Sands" (a far more accurate description of Alberta's northern source of petroleum than "oil sands").

It would suffice add "Koch-funded" as an adjective to "Fraser Institute"; and to add "backed by Koch Industries" in mentioning the "Tar Sands".
The news is about informing the public, not just of events and facts but of the meanings and the possible motivations behind those facts and events and I felt that mentioning the Fraser Institute's concerns without mentioning their backdoor connection to the situation did not complete what the news should be about.

2016-06-29

A more palpable Brexit-reversal gesture?

I am not a Brit so my opinion on Brexit didn't count, probably still doesn't but just now, I can't stop myself. I thought it was a bad idea even though I'm old enough to fall into the demographic that voted Leave. I was afraid Brexit was going to succeed and I wish, along with about 4,000,000 Brits who have ostensibly gone on record, that it could be undone.

Maybe it can't, but here's an idea for all you "we-don't-want-to-leave" folks: Keep a pocket-full of Euros and bring them out first when you're trying to buy stuff. It'll be an easy way to all identify yourselves to each other. I know it won't undo the referendum result in the current moment, but it'll be a gesture of solidarity that may start a different kind of groundswell. Also, it can't be IP-spoofed!

Can you imagine merchants across the UK displaying a sign, "Euros accepted here"? It'd put out a different message than 51.9-48.1 did.

2016-03-24

Cross-posted from a web-note to my MP and to the Minister of International Trade

I posted this at Let's Talk TPP (it correctly detected my MP). Here's a cc to my blog and directly to those two e-mail boxes.

To: the Hon. Ron McKinnon, member for Coquitlam -- Por
To: the Hon. Chrystia Freeland, Miniister of International Trade

There is so much to dislike about the TPP that I don't know where to start but here are my hottest hot-button issues:

* I believe supply management safeguards our food supply by making sure we regulate the farmers that are producing the daily staples we all depend on -- especially important for largely fluid based food stuffs as eggs and milk.
* I believe supply management keeps the carbon footprint of these food supplies down which is of net benefit.
* I believe copyrights should expire in a reasonable amount of time. Tying them to "Steamboat Willie" as the US will insist we do will starve out the "Commons" of copyright-expired public domain.
* I believe the US Patent system is broken and until they fix it nobody can afford to make IP treaties with them.
* I believe the TPP was signed illegitimately by a Minister of Trade who knew his legitimacy was fast evaporating and the previous government did not have the moral fortitude to run on the contents of the TPP. It was always trust us. I didn't. Events have shown that I shouldn't have. Accepting the TPP anyway is not part of the change that Canadians voted for. I voted for a party that opposed the TPP. You, Mr. McKinnon said very little at the debate about it either way but the wish of this constituent goes against it directly.

There are many other talking points: TPP-mandated DRM is troubling, right of foreign entities to sue made-in-Canada environmental protections is worse; American patent protections for drug companies will raise our health care costs for no good reason. But all of these only re-inforce my conclusion about this deal:

For the TPP, Canada gives up far too much and gets too little in return. It was negotiated for the benefit of plutocrats and multi-national corporations and too little benefit will "trickle down" (that myth! that old tired lie that Reagan, Thatcher and Mulroney pimped to us 30 years ago! shame, shame...) to us ordinary people. Let it die, please.

Sincerely,

Arthur N. Klassen

2015-12-25

Nighttime Cycling Safety

It was in my stocking this morning (we still do stockings): a can of Volvo Life Paint. My wife mentioned it to me in the summer but didn't share this video, and the idea of spray-on reflective paint like this was so out there that it clearly didn't stick. And then this morning there was this can in my stocking. So I looked it up and saw this video (I'm on my phone, so I can't do a proper link: https://youtu.be/CfWzeGlaFvI) and said a big, "Oh!"

I'll post a reply to this when I've had a go with it (the rain may wash it away) but it was just too impressive not to share right now given the potential to spare someone else a serious injury.

Merry (and Safe!) Christmas!

2015-12-07

I was a stranger...

(If you make no claim to be a Jesus Follower, feel free to ignore what follows)

This weekend I heard something that drove me crazy. Friends of ours were in Central Asia in the 90s doing Community Development. Friends of theirs are in a Scandinavian country working with a Christian Organization that does "religious" things as well as "relief" things, oriented toward mobilizing younger folks sort of for "gap year" kinds of things. And they attract significant numbers of youth from North America.

Like most of their country, they are welcoming Middle Eastern refugees, to the point that there's a national shortage of lightly used mattresses to provide to the new arrivals. They're doing this in a way that's fully integrated with everything else that they're doing. Someone pointed out that there were very different views of refugees on this side of the Atlantic, so they felt the need to inform the kids' parents what they were doing to placate fears, which they did.

On reading this, something inside me snapped. This need for placation gets our continent a huge "Come on, man!" award.

I'm done with being "nice" about this. You who claim to follow Jesus, as I claim, consider this: Referring to the N.T. story of the Sheep and the Goats in Matthew, to whom, to the sheep or the goats, would Jesus have said:

"I was a stranger and you locked me out of your country because you were afraid I was a terrorist or a Shari`a zealot."

Come on, man...

2015-10-22

Canada Election 2015 - Thoughts #4

Never mind Joe Clark! The buzz on the news was of prominent NDPers who were okay with losing seats given the overall Conservative loss.

Canada Election 2015 - Thoughts #3

I
​ struggled with voting strategically and nearly went for it. In the end, I voted with my heart -- and it turns out that if I had tried to vote "strategically" as I understood it, it would have been at cross purposes with what happened in the riding anyways.​

Canada Election 2015 - Thoughts #2

H
​ow do I feel about the election? Relieved, but not content. 35% popular vote shouldn't get you 60% of the seats. Ever.​

2015-10-21

Canada Election 2015 - Thoughts #1

Never did Joe Clark look so relieved that a Canadian Conservative government lost an election.

2015-09-12

Justin Trudeau "vs." his father

I'm watching Peter Mansbridge's interviews with the political leaders and I was impressed with something Justin Trudeau did after the 13 minute mark in his interview. He found a way to oppose the current results of what his father did in concentrating power in the Prime Minister's Office without throwing his dad under the bus. Positive. Re-assuring. He still supports parts of C-51 and that and C-24 are the deal-killers for me.

2015-09-08

This isn't Karl Marx' Capital

​I just finished reading Thomas Piketty's Capital for the 21st Century and have been recommending it highly to all my acquaintances. It's not short (600 pages) but don't let that stop you. The subject is not light (economics) but don't let that scare you. It was written in French but the English translation is smooth, comprehensible, enjoyable so no need to balk there. The math is simple (two equations: β = s / g; α = r * 
β
​),​
​​
 the graphs are there to provide silhouettes not narrow percentage points of difference
​ and he keeps on quoting Balzac and Austen, and even the Aristocats.
 And then I came across this quote from M. Piketty in
adbusters:

There is a lot of ideology in the economic profession. I think that many economists have a view of markets which is not only idealistic and naive, but they are defending the views that markets are working efficiently. For ideological reasons, economists spend a lot of time doing complicated mathematical models, trying to pretend that markets are efficient - they do that also to try to impress others in other disciplines to look more scientific. I'm not sure this is working but this is certainly part of their strategy. I think we should be very modest. I view myself more as a social scientist than as an economist. I think the frontiers between economics, history, sociology, are not as clear as what economists try to pretend. Economists try to pretend sometimes that they have developed a science so sophisticated that the rest of the world cannot understand. I think this is a joke.

​If that doesn't encourage you that he thinks like ordinary people, I don't know what will.

2015-09-07

We are all refugees

67 years ago, my Mom, her folks and all but her oldest sister (who had reached the age of majority--but that's another story) came to BC by train after a sea voyage from Europe as refugees, sponsored by a cousin who came here 20 years earlier.

How many Canadians reading this have similar stories in their family background?

She spoke German, so her family was looked on after World War 2 with some suspicion (as anyone from the Middle East is now) but she grew, became a citizen, married, had three kids and continues here to this day. But if refugee laws had been then what they are now, her family would have been kept out in the name of "stream-lining" the process.

About that little Syrian boy who's picture has gone viral? We, Canadians have his blood on our hands. His aunt lives in my home town, Coquitlam, and tried to sponsor his family but failed because the "stream-lining" involved making the door so hard to open that another family like my Mom's, fleeing from their war-torn home didn't get here intact--may still not get here, even what's left of them.

And that's wrong. Their blood is on our hands, and especially on the hands of this Conservative government who have done what we ought not to have let them do in locking our doors to our neediest neighbours (yes, I know they're 10 time zones away).

Let me resort to parliamentary language: Shame, folks. Shame! Shame on us all.

2015-08-27

Are your parents immigrants? Do they know about C-24 and C-51

This Canadian election cycle I did something I've never done before. I canvassed my parents not to vote Conservative.

I come from an immigrant community and their MP is from that community, so aside from a lifelong likelihood of voting Conservative one more time, there is every likelihood that they'll do so again. Only this time, it's blatantly opposed to their own interests and I had to try to get that through their heads.

Worse, it affects all their relatives and friends -- and they'll probably all vote Conservative, too.

I know you're supposed to keep "Religion and Politics" out of family conversations but if there were ever an exception that proves the rule, this may be such a time. If you, or your parents, or your grandparents are immigrants, make sure they understand the potential downside, not just for them, but for all their descendants, if anyone who doesn't promise to repeal those two bills is elected Prime Minister this fall.

2015-08-25

Trudeau is not an option

He voted for Bill C-51. Nothing more needs to be said.

The "good" parts of that bill aren't good enough to balance off all the "bad"
parts of the bill. And in the presence of C-24, it's even worse.

Folks, my citizenship is in danger and maybe yours is, too -- although born in
Canada, my Mother was born elsewhere, so even I, if someone for political
reasons decided I was a terrorist, could be stripped of my citizenship and
deported to the country of her birth. That is a country whose language my
mother didn't even speak in the first two years she lived there (in a minority
community there). And that is a language for which I can do little more than
recite the alphabet, count and say hello in -- and even that much is
considered odd by my friends.

The Liberals are not an option. They supported C-51 and want to do no more
than tinker with it. It needs repeal, full and complete. And C-24 needs to be
recognized for the unconstitutional pandering and hate-mongering that it
represents.

Even the NDP aren't a very good option. Go back and re-listen to that first
leaders' debate and vote for the party whose leader sounded the most sensible,
the least wooden, the least frenetic for the whole debate.

2015-08-23

Defund the PMO

It was an issue four years ago. It's an even bigger issue today.

De - fund - the P. M. O.
Crowds of cronies have to go.
sock-puppet ministers,
senator puppets,
committee chairs
with the influence of muppets:

All these scourges must come to an end.
The PMO-shrinker is the voter's true friend.

2015-08-16

Conservatives using push-polls

This week, I got a telephone call from someone claiming to be from NRG -- Nordic Research Group? Before it was done I called out the pollster as running a push poll. Ultimately, it tied into the Conservative attack ad against Justin Trudeau, that "he's just not ready" to be Prime Minister.

My views on that subject are noted here.

Let me denounce this practice in the strongest possible terms: Push-polling is something Richard Nixon started and is common enough in the US. We don't need it here. Oppose this practice strongly when it comes calling to your phone.

Why am I so sure that this poll was put by the Conservatives? After I called out the pollster that this was a push-poll, I said there was one message that I wanted to send to Mr. Harper. Although there wasn't a place on the poll for that, he fell silent and listened carefully. (it was around the last sentence of paragraph 4 in this post of mine)

So I don't "know" but I'd be willing to bet dollars for doughnuts on it.

2015-08-15

Stephen Harper -- He's just not ready

His party keeps repeating it about one of his opponents but despite holding
the office for the last 9 years, he's still just not ready. Not to be a leader
of a parliamentary democracy. He's ready to be a dictator. He's ready to be a
manipulator. He's ready to lead a bunch of toads around.

But he's just not ready -- and never has been -- to be our Prime Minister.

2015-08-13

Stephen Harper - A career politician we can't afford

Every time I see a Conservative attack ad, it reminds me of the leader of the Conservative party. Can we inundate the search engines to turn this kind of ad back on its source?

2015-08-12

Coquitlam--Port Coquitlam candidate update

So it's official. Our cipher-like MLA, Douglas Horne, is now running to be our cipher-like Conservative MP. Yes, BC Liberals are best described as "web-footed conservatives" as Social Credit used to be labeled by Alan Fotheringham.

2015-07-01

new "top" utility's "up-up down-down..." sequence

If you don't understand the title, this note isn't for you.

If you use Linux and are nauseated by the defaults of the "entirely new and enhanced replacement" of a really great utility on Linux, these steps are for you, thanks to the ArchLinux BBS:

rm ~/.toprc
top
Inside the top program, press: zV1ymmtttWq

From then on you may invoke top and see the screen you expected before the ghastly upgrade, that should probably have been called top-ng. I decline to say more so as not to start another flame war.

2015-01-29

Stephen Harper -- a fitting paean

As moral as a monsignior,
Fair-handed as a Koch.

Haiku #35 - Christy Clark

After she won her second election...

She said, "Wear Pink Shirts!
End bullying now!" and then
bullied all BC.

2014-04-06

Healthcare: Her phone's ringing off the hook

Dr. Danielle Martin's getting calls to run for office from all parties at all levels of government. Watching this C-Span hearing from the US, I'm not surprised. She ranked with the best three others on the panel, and made former Canadian, Reagan-Thatcher-Murdochite Sally Pipes look silly.

Our healthcare system may not be perfect, people may be dying needlessly, but not as many as among our neighbours to the south. Hearing about France's, Denmark's, Taiwan's system, I think I'd be glad to trade aspects of our system for aspects of theirs, but we stack up pretty good. And we have another really articulate spokesperson that we can be proud to call a fellow-citizen. When you get past your best times of doing medicine, I'd be happy to see you as cabinet or prime minister, Dr. Martin. Well-spoken, well-stated, well-pointed out on all fronts.

2014-03-29

Pranking Indian Computer Jackers

I just finished pranking some Indian ComputerJackers. You know, the guys who claim to be from "Microsoft Windows"? I let them talk and told them that I would have to take down all their instructions so that I could follow them after I hung up. Why's that? Because I only have one telephone line and I use dial-up for Internet. They believed me for a bit and passed me on to three or four other people before they gave up. Saying that I use the Opera browser was the last straw. How many little untruths passed my lips in the space of 10 minutes -- that's 10 minutes of international telephone time they got no return on, 10 minutes reprieve to some other poor victim. 10 minutes in which my sons, admiringly, called me crazy. To which I replied, but you put me up to it. Maniacal laughter ensued.

For the record, their first step was to send me to double-u double-u double-u dot A em why why . com (why should I give them a click-through?) and they claimed to be in Sacramento. AMYY is, of course, based in Moscow, with a local dial-in in Virginia's DC suburbs (I visited them with a text browser, in case the site itself was a 0-day-sploit source and checked the Contact Us page). I was waiting for them to give me the temperature in Sacramento in Celsius (it's 16 there, right now), so I could nail them to the wall over units of measure. No typical 'marican uses SI units (they'd say it was 61) and I was relishing that last skewering step.

At this conference, Richard Mouw talked about "Just Adultery", as a side-handed critique of "Just War" theory. I think I could add a five minute talk-a-roo on "Just Prevarication".

I wonder how many times I'll have to lie like that before they stop calling this number? The story will be different next time. Maybe I'll claim to be running Lindows.

2014-03-27

Haiku #34 - Techno-conomy

Straight from department 402.

Technical debt and
Keynesian economics
Don't ever mix well.

2013-11-06

Plagiarist Rand Paul

Given his concern, in the face (farce) of a rapidly growing docket of plagiarism, with "being left alone" and having folks stop "casting aspersions on my character" than with academic honesty and with fair dealing in ideas, it's time to stop calling him "Dr. Rand Paul" or "Senator Rand Paul". His proper title and style of address should be "elevated" (at least toward the truth) to "Plagiarist Rand Paul".

And I invite His Xerocity, the Plagiarist Rand Paul to challenge me to a duel at his earliest convenience to deny that he deserves this honour. Weapons to be chosen, according to tradition, by the one challenged.

2013-09-11

Haiku #34 - on freedom

I wrote this in response to Eben Moglen's talk about Innovation Under Austerity and a discussion that ensued after the conclusion of Eben's speech (at about the halfway point of this video on Youtube).

all I know for sure
is that freedom starts inside
where no thug can reach

2013-04-22

Haiku #33 - The Return

So, I've been plodding along, writing haikus but not posting them and I wrote one this morning after a week-end that included, among other things, folding seven loads of laundry while watching IPL Cricket on PVR from SportsNet One. It was a match over a week old between the Chennai Super Kings and Royal Challengers Bangalore, shortened by 10 overs in the first innings, but to no great detriment. That's why there's sports on the telly, anyway, isn't it: to give you something to watch while folding laundry, right? Okay. Getting together for a Grey Cup, Super Bowl or Grand final party can be great fun, too, but whatever.

This AM it struck me how similar this was to my watching NHL hockey on 1 week tape delay (1960s, remote BC town) when everyone knew the outcomes already. I might have been the only one (besides the real die-hards, that did not include anyone of my acquaintance) watching it back then. So I wrote a haiku about it. And a co-worker liked it. So I'm posting it. So there:

Back to my childhood,
watching sports no one else does
on week's tape delay.

2012-07-18

The Most Important Question U.S. Voters Face in 2012

"It's the economy, stupid," is not the question, although that IS an important one.

No. The really important question is this: Why do so many REALLY, REALLY rich white guys want people to vote for Mitt Romney and/or against Barack Obama? (face it, folks, the way things are structured today, nobody else has a hope...)

I'm not an American voter so I shouldn't say more but I can't quite resist.

Maybe it's because they're such patriots. But I doubt it.
Maybe it's because they want your best. But I doubt that, too.

But think about this question for more than a few seconds before you decide how to vote, please. And don't settle for simple answers either. This is one case where Occam's razor is more likely to slit a throat than give a close shave.

2012-04-13

So maybe my MP is reading my mail...

But I don't think he's getting the message. After a long delay, in answer to the letter I posted here, Mr. Moore sent me this not-quite-as-canned-as-usual response:

Mr. Klassen,

Thank you for writing to me about copyright reform in Canada.  I appreciate you taking the time to share your views with me and have noted your concerns regarding the impact that providing legal protection for technological protection measures (TPMs) may have on different parties. I have read your previous correspondence as well.

Copyright is a marketplace framework law.  Accordingly, copyright owners may decide whether to use TPMs for their content and consumers whether to pay for such content.  Detailed information about Bill C-11 is available online atwww.balancedcopyright.gc.ca.

Our government wants legislation that balances both the rights of creators and the interests of consumers.

Once again, thank you for taking the time to write and share your concerns with me. I appreciate the opportunity to respond.

Sincerely,

James Moore, PC MP

Unfortunately, it's still about C-11, that's still bad in so many ways that Michael Geist can't keep silent about it to this day. My reply back to him went as follows.

Mr. Moore,

Thank you for what I perceive to be a much more individual reply than previously. I regret to say that your assurances of the law's balance of the different rights at stake do not convince me. Rights holders (often, from many artists' point of view, rights grabbers, frankly) get far too much consideration and rights of fair use, presumption of innocence of the consumer, and a healthy guardianship of a creative commons that should be allowed to grow with orderly expiry of copyrights are not protected adequately.

The RIAA and MPAA and their member organizations have demonstrated graphically and without any ambiguity their willingness to bully individuals into outrageous and financially devastating settlements, to go on fishing expeditions and to do so when their failing profits are more closely related to the sagging quality of their product than to the results of piracy. This kind of behaviour should not be rewarded in the court (and that sort of thing is gradually being stopped) but even more it should not be protected by law.

Academic studies, time and time again, show that the most widely-shared (by any means) artists are the most successful ones. The most stunning cases of these are the careers of Radiohead, Metallica and even the Canadian, Neil Young, who released the whole Living With War album online -- I listened to it several times that way before buying it myself. So the whining of multi-national bullies, who effectively want the right to pillage Canadian families for the meagre improvement of their American bottom line, should not be brooked.

Is there anything even in the latest incarnation of C-11 that comes at the issues from that angle? I think not. Instead this government is intent on defending the privilege and profit of the few on the backs of the many. Fortunately, the best word describing that is highly parliamentary and I cry it out: "Shame! Shame!" Send me a new bulletin when your policies are more in the defense of the people's interests than they are currently, please, and on this subject, not before.

Sincerely,

Arthur N. Klassen

Of course, this doesn't even begin to deal with potential privacy concerns but there are limits if you want to conduct civil discourse even over something as uncivil as C-11. There are just too many things about this bill to complain about them all at once without sounding like your shrieking into the void. If my words are consigned to be redirected to /dev/null (computerese for "the void"), at least they'll be uttered in tones that wouldn't remind any listener of fingernails on blackboards.

2012-03-14

Letter to my MP about Bill C-11

(and to the other members of the committee reviewing C-11)

to James Moore, MP for Port Moody--Westwood--Port Coquitlam


Dear Mr. Moore,

I have little hope that you pay attention to any of my e-mails any more. With a margin of 10s of thousands in every election, you need not pay attention but I implore you to do so. The digital lock provisions in bill C-11 are too high a price to pay in freedoms for any of the good that might be in the bill and it ought to be quashed now.

My government is already culpable trying to gin up support for tighter controls by having the MPAA and RIAA lobby the US to call us a nation of pirates, but you and I know that it is not so and it must be depressing to the agitators that no hysteria has flowed from these attempts.

In fact, it is demonstrable that freely allowing piracy (at least of music) ultimately does more good than harm to both musicians and publishers. Just ask Neil Young how many copies of "Living With War" he sold after freely publishing the whole album on the internet. Just ask Radiohead. And then ask Metallica how much dislike they garnered by siding with the lockdown artists.

We don't need tighter locks, and we don't need to give Multinational bullies more opportunities to pillage Canadian families at many 100s of times the value of any piracy they may have engaged in. This legislation does exactly the opposite of what a government ought to do in this particular vein. A government ought to protect its citizens from bullies but this legislation has the potential to unleash the bullies' unjust wrath against Canadians.

It is a good thing that cries of "Shame! Shame!" fall within parliamentary language, for that is the weakest epithet your government deserves for considering this legislation. Drop the bill. Write something with reasonable protections (at 1000ths of the strength of the current one) for commercial interests but with primary protection for Canadians and for a growing, vibrant public domain. Do not hamper the tinkerers of today when they or their children are sure to become the engineers and innovators of tomorrow.

Sincerely,

Arthur N. Klassen

2012-03-10

SOPA -- in Canada it's our turn

If you value your digital freedoms and you live in Canada, it's time.

Ireland has already fallen but the rest of Europe is resisting ACTA and even America is taking a second look at it after SOPA and PIPA were stopped in their tracks there. Now it's our turn.

Monday is the beginning of final hearings on Bill C-11 which has in the last stages turned draconian.

Michael Geist's page (click here) tells you what you need to know. I live in James Moore's riding now and so he'll hear from me from both directions -- but I think my e-mail address is on his spam source list. He doesn't reply to me -- that's how a member of parliament rolls in the digital age, I guess. Here's what you should do:

1. Find your MP here (ou ici).

2. Write a polite note expressing your opposition to pre-emptive site blocking, expanded enabler definitions, broad protections for the companies that exploit artists, warrantless subscriber list handovers -- all coupled with a higher iPod tax. And send it individually to the e-mails listed in Michael Geist's page (committee members and ministers) as well as to your own MP.

Just to be sure they get it, write it out on paper, address an envelope and send it to them in Canada WITHOUT A POSTAGE STAMP (for parliamentary mail, that works!) -- but our postal system isn't fast enough to get it to them before Monday's opening.

3. Sign, for instance, the online petition at OpenMedia.ca

4. Do creative things that are outside the control of the corporate gatekeepers of culture.

5. Spread the word, and resist the feeling of impending doom. Keep calm and carry on.

2012-02-01

Google's New Privacy Policy

Google, with their new privacy policy, has offered us all a choice: to have everything we've ever googled be remembered for the rest of our lives and beyond, or to stop using all google products in one month. Hello Hobson!

How do we stop this? I don't know if we can, but we can try.

If everyone who uses any google product were to give google one piece of feedback every day objecting to that new policy and stating it plainly to them that:

Any retention of my data, even blinded, for longer than 90 days is an evil and unwarranted potential intrusion into my privacy. Google may still be trying to live up to "Don't Be Evil" but we cannot believe that you will always be able to protect all of our data, no matter what happens to your servers, your company or to the country under whose laws you primarily operate. Please stand down from perpetual storage to "90 days to oblivion".

If this goes viral, google will have to change. Will the rest of the 99% hear my voice and use the people's microphone? It's the only way I can imagine we'll get through to power that still thinks it's not evil so that maybe they'll back off.

2012-01-06

Trans-Pacific Partnership and Public Domain in Canada

Earlier today, I saw a post on slashdot about the potential extension of copyright length in Canada as part of a free-trade negotiation called the Trans-Pacific Partnership (CBC article):

slashdot (a little overblown, as usual):

The Canadian government is now considering a plan to enter trade negotiations that would extend the term of copyright by 20 years, meaning nothing new would enter the public domain in Canada until at least 2032. The government is holding a public consultation with the chance for Canadians to speak out to save the public domain.

Michael Geist:

Based on leaks of the current drafts of the TPP IP chapter, the agreement would overhaul Canadian copyright law far beyond what is contemplated in Bill C-11. In fact, the TPP would require even stricter digital lock rules, extend the term of copyright, restrict trade in parallel imports, and increase various infringement penalties.

and:

Canada's term of copyright meets the international standard of life of the author plus 50 years, which has now become a competitive advantage when compared to the United States, Australia, and Europe, which have copyright terms that extend an additional 20 years (without any evidence of additional public benefits).


I wrote the following e-mail to the the public consultations address, consultations@international.gc.ca, cc-ing it to my Member of Parliament (find yours here -- ask me for help if you need it!):

Greetings.

I am a lifelong innovator as a software developer for the last 25 years. I expect to continue doing this for a further unspecified period and I am committed to seeing the best and the brightest be able to develop to their full potential here in Canada, continuing to produce wealth and competitive advantages for Canada well into the lifetimes of my grandchildren. Because of that, I strongly oppose any trading away of freedom to tinker, to study, to reverse engineer, to learn the State of the Art from existing devices. Bill C-11, while less egregious than its forebears, is still an onerous impairment to that freedom but going further, as the TPP IP chapter negotiations would have us do is an unacceptable further impairment.

I urge my government to stop restricting their geeks from becoming excellent geeks. Broader trade is important, yes. But even more important is the development in Canada, by Canadians, in service of Canadian-owned companies of unique and valuable products that can command market premiums wherever they go, regardless of free trade pacts. And the simplest easy way to enable that is for Canada to insist on preserving for its geeks, present and future, the freedom to tinker, study, reverse engineer and learn for private study even where doing so for profit would represent a theft of others' duly gained competitive advantage.

Just as the right to media-shift, to back up, to maintain personal access to digital assets that individual consumers may have purchased is of inestimable value to the consumer, even more the freedom to tinker for geeks and potential geeks, present and future is of inestimable value to all Canadians. Trading such a birthright in return for the week-of-pottage that a free trade agreement might give is as foolish now as it has ever been.

Sincerely,

Arthur N. Klassen

Looking further at the press around this deal, I have to assert, as well, that this agreement looks bad in a bunch of other directions, including opening threats to the high-quality for slightly-higher-price milk and egg market in Canada, so there is no shortage of reasons why an informed Canadian should oppose forging such close ties with all these nations at such a high cost.

Consider writing a letter of some variety to

2012-01-05

Garbage Collection -- an idea whose time will never come to C++

Except as part of a boost library if someone wants it that badly. And I'm not sure they would. And that's my insufficiently humble opinion.

I'm frustrated with myself that I wasn't following Herb Sutter's blog closely enough that I could have taken part in the conversation over this blog post on Garbage Collection.

I like Herb Sutter. He's very smart, he speaks articulately about C++, and his effect on the C++11 standard has been good. Still, I confess, I'm annoyed that he has allowed himself to be co-opted by Microsoft to lend any support to the C++/CLI, C++/CX and C# food chains, which if they never crash and burn don't deserve to do anything better than fizzle. Vendor-specific languages are structurally evil (Apple is guilty here, too) and he's smart enough to have figured that out for himself. But in my calmer moments I'm willing to concede that these are things about which reasonable people can (and do) disagree.

So, let me give you my take on "Garbage Collection Synopsis, and C++".

The post opens with the quote: "OK, GC was invented half a century ago. When it is going to land in the C++ world?"

This question is so rife with assumptions that those should be dealt with before the question itself is even touched with a barge pole (which is about as close as GC should come to C++). These would be:

1. "GC is desirable for any language"
2. "Anything half a century old is well-defined enough that bringing it into any language should be easy"
3. "C++ wants/needs GC" (I'm holding my breath already!).

Right aways, Herb enumerates three kinds of garbage collection, the first of which is all that C++ usually needs. It wasn't available in the early days when good pointer-wrapper classes weren't widely available, but it's there now and that should be the end of the story for most of us.

The annoying part of the rest of the article including most of its comments, was the utter lack of effort made in identifying and highlighting those situations for which that option was insufficient, and why. @sim82 mentioned that phylogenetics regularly has circular-referenced nodes that make ordinary pointer-wrapping insufficient but didn't elaborate why the weak_ptr/shared_ptr pattern wasn't enough to solve the problem, either.

Martin Vejnár made the interesting observation about putting off memory releases until later (due to processing burden) to which another major commenter, David Abrahams, answered some'at about it being hard to do memory allocation without locking the world. And that has me wondering if in our wonderful multi-core world, there wasn't a way to do this by other means. Let me post on that idea soon.

Two other things annoyed me about the article. One was the "run, don't walk, to watch this video on Garbage Collection" in the main article. The video, while erudite and informative about how garbage collection worked, failed to convince me that it was good for anything other than allowing programmers to be more lazy. The additional specious was made that because C# had it, ASP was a better web-app-server environment than anything else out there. The other was in Herb's answer to three questions that got wrapped up in why any feature (including GC) should perhaps not be included in a computer language at all:

a) How likely will the feature be abused more than used well?
b) How often is the feature needed at all?
c) What cost or how viral is the feature? (does it force itself on those who might not want it)

His answers to these questions failed to convince me that GC belonged in C++, although mentioning Booch's comments on multiple inheritance raised an important point. Still, since C++ is so expressive, things that are actually in other languages, for instance named parameters (native in Python, in boost, here) can be brought in without including it in the language. The chap who raised these questions also asked if Herb's support for GC was related to his position with respect to C#, C++/CLR and C++/CX and here alone was something that remotely convinced me there was some need. After admitting his complicity in those projects (while denying the connection to wanting GC in C++), he goes on to say:

Note that for several years now I've been writing and teaching about Effective Concurrency in all the major languages — C++, Java, C#, and C+pthreads – and in the lock-free code section I keep having to add comments about how certain examples are easy/easier in Java and C#, and hand-wave about what it would take to do them in C++. I hate that.

I'd hate that, too -- but it'd be nice if Herb could have pointed to one of the examples he's talking about. I'm still none the wiser. Looking at the ABA problem, the other concrete item he mentions, it looks like the sort of thing that could be solved by a ZooKeeper-style version#-along-with-data paradigm, which shouldn't be hard to implement inside a library either, in a multi-threaded (thanks C++11), no-lock, portable way, never mind the somewhat trivial solution of thin-wrapping ZooKeeper!

But it's too bad that so much noise clouded what could have been an informative discussion. And I admit that if I had jumped in, it's eminently possible that I would have missed, in the moment, the way to ask a follow-on question that would have turned it to more useful ends.

2012-01-04

Haiku correction...

Let me correct that Haiku:

We are the techies.
We create the job makers'
Chances to dream dreams.

Who are we?

I am many things, including one who wants too badly to talk on too many topics. One of the things I am is a techie. In forwarding a video of a talk to my Member of Parliament I came up with the following sloca -- which as you have not heard, I will now proceed to relate:

"we are the techies, not the entrepreneurs and without us, the entrepreneurs can't dream,
let alone hatch their dreams into wealth and jobs"

which I think reduces nicely to a haiku...

We are the techies.
We create the job makers'
Chances to dream.

And the video? I found it at boingboing, it's hosted at youtube, and it's called "The Coming War on General Purpose Computing" by Cory Doctorow to 28C3, the Chaos Computer Congress. As I told my MP, "If you can spare the time, the 54 minutes you might spend watching Cory Doctorow hold forth on the topic, you will be rewarded well, possibly in two ways: amusement, and (hopefully) enlightenment. Why do I speak passionately about encroachment on my freedom to diddle, innovate and for my children (and grandchildren) to learn? Cory explains this and I commend to you this YouTube video..."

Consider sending this to your representative -- if you have the unbelievable treasure of a representative (or two) who must face your ballot again in a finite period of time.

(I also acknowledge the Kipling fragment in the first paragraph. Rhinoceroses beware!)

2011-11-16

An ex-IMF official analyses the US Financial Meltdown

A friend referred me to this article by a former IMF official. You've heard me rant about this before and how to fix it. It's nice to see similar criticism from someone who could be said to know better than me. The comments by others, including a Southeast-Asian chap are as instructive in their own way as the article. Read it and weep.

Little Round Planet...

...in a big universe. This collage of images brought to my notice by my father-in-law reminded me again of the beauty of our little home. Enjoy.

General Fusion -- from Burnaby, on NPR

I used to work at the same company as a bunch of the people at General Fusion and I was delighted to hear about these folks on NPR's All Things Considered last week.

2011-10-28

"tau" or "pi"

I looked at this page, advocating τ, the ratio between circumference of a circle and its radius as the more important constant than π, the ratio between circumference and diameter.

Given how often 2Ï€ shows up in formulae: capacitive and inductive reactance, Heisenberg's Uncertainty Principle (and any other equation that uses the Reduced Planck Constant) for starters, but anyone who knows their math and physics will be able to rattle off a few more.

But I wondered if the circle would kill the idea. Surprisingly it didn't! Area of a circle as 1/2Ï„r^2 makes a lot of sense, especially in light of the Quantity - Symbol - Expression table. In fact, that table was missing an important entry! "Kinetic Energy", there should have read "Kinetic Energy - Linear Motion", to be followed by a line for "Kinetic Energy - Angular Motion". The formula? 1/2Iω^2 -- where "I" is the "moment of inertia" (angular mass) of a spinning object and "ω" is "angular velocity".

This idea, this fight looks a bit like tilting at windmills but interesting. I wonder if it's something that will ever get any traction?

I'd like the world to be a place where enough of the life-and-death issues are settled that most people who might possibly be interested in the question would have the leisure to consider it...

Cold Fusion test today in Bologna

Is it a scam? (as many responders to this slashdot post say it is) I fear so, I hope not.

Other articles (like this one, this one, this one -- from serious sources; this one, this one from a less credible one) at least explore the possibility of success.

If successful, the next question is, what happens when oil's most important economic use is as raw material for plastic?

And how poignant the engineer's dilemma: "we see it working again and again, but if only we could come up with some really good science to explain it!"

And then the most important use for polywell generators may be as a way of producing enough neutrons (running D-T) to render fission-waste products safe in decades instead of tens of millenia.

When I see more results, I'll add something here.

2011-10-24

Supporting Ron Paul feels cool, is stupid

(cross-post from this slashdot article)

Disclaimer: I am a Canadian, so I do not have a dog in this race; except we are your nearest neighbours (nearer than México in two minor ways only: longer border, no local outcries for a fence) so if you systematically self-destruct, it'll be bad for us, too.

Support for Ron Paul by the young and sometimes geeky has intrigued me for some time. Is it a result of reading Ayn Rand? Is it because his ideas seem so much more sensible than so many others? Is it because he does not appear beholden to any lobbyists? Is it primarily because he wants to end drug Prohibition? Possibly all of the above.

But it's also confused me because a number of the things Ron Paul wants to do away with are things that help the young find their first footholds -- things like student loans (or even grants). When I read this headline, I thought for just a second that perhaps Dr. Paul wants to throw open the universities for all, call a full education a civil right that you get to take advantage of based on merit. But I dismissed that thought before I saw the rest of the post, and I was right to do so. My response: his analysis may have some truth in it but it's so simple as to be suspect, in my view. On balance, like much of what Ron Paul says, it's too simple to be right.

Whoever thinks Ron Paul is cool, whatever lobby groups he is not beholden to, make no mistake: the über-rich and powerful wish his ideas well because their adoption would entrench and deepen the growing class divisions in America and put an end to the American dream as anything but that: a wistful dream of what expectations used to be.

Something is rotten in the way the US is going these days. For instance, in my lifetime, before 2008, I had never heard a leading politician in the US say of their president from the opposing party that they wanted him to fail. Whether you agree with Mr. Obama or not, that attitude on the part of any member of your government is pernicious. I'll stop there because the list of things going wrong is so long (most of them decades in the making) as to make this too-long post ridiculously so.

But Ron Paul is not the answer to those problems: his ideas (and incidentally those of the Tea Party) are only going to help the rich get richer and inherit the meek (and the not so meek). Do yourselves a favour, folks, and elect leaders that remember what they learned in Kindergarten (without forgetting all the things they learned since) and value their neighbours over hard lines -- internal neighbours, of course! I wouldn't advocate that you would elect the people I, your Canadian neighbour, want you to elect. I'm just confident that if, overall, you voted in line with your interests (and that may take a lot of thinking to figure out who's going to serve those best) and do well, then you won't become neighbours that we have to fear from across that longest unarmed border in the world.

be good to each other, folks...ank

2011-10-19

iPhone pros and cons

In some ways, I am one of the geekiest people a lot of my friends know. In other ways, not so much. Let me explain.

One of the geekiest: I have been a professional software developer for 25 years now (with no plans to join management any time soon) and I generally understand technology trends and can navigate my way around new stuff that arrives as and when etc. etc. On the other hand, I have been a devoted practitioner of contentment, shunning the bleeding edge to make my family's budget work reasonably well.

Not so much: I actively practice contentment. I know about the bleeding edge but I don't live there. I only got a cellphone six years ago, and it was only in the last year or so that I upgraded (I call it a downgrade in some ways) to a smart-phone. It's a phone for crying out loud, my third one, and there are features from my first phone that I still miss. I don't need the extra charges of a data plan. I don't need the extra distraction of all those apps and games. Weather happens, my wife and kids are great company and there are so many books to read (and yes, I still love the feel of paper in my hand) so although I enjoy my smart-phone (it's an android), I'm not really a zealot for one, or for the platform that I chose.

Every now and then, though, someone will ask me "android or iPhone?" and I don't quite know what to say. A lot of them aren't techies and don't know how much they ought to care (for my sake and those like me) about freedom. All they want is a smart-phone that will do what they want, beautifully, seamlessly and not exorbitantly (although they're probably all willing to pay more day-to-day than I am).

This week, though, I saw a pair of answers to this problem which I present to you. I wish everyone would choose anything but the iPhone because of this article from CodingHorror. I totally get why many to most people, especially the non-technical ones will choose the iPhone over other options because of this ZDNet article. I, too, have had to do parental tech support. And often enough, it's been cleanup tech support when some misfortune, small, large or unintentional (on the part of the perpetrator) has befallen their tech.

So I don't want to serve only at the pleasure of the King but my parents will probably never want to use an Android either.

2011-09-08

Patents, Math, Software

Since the most important body of patent law in the world is that of the US, I begin this post by quoting this wikipedia article, where a judicial finding in the US pre-empts the patenting of Mathematics:

'[SCOTUS] ruled that a process claim directed to a numerical algorithm, as such, was not patentable because "the patent would wholly pre-empt the mathematical formula and in practical effect would be a patent on the algorithm itself."'

Here's a follow-on syllogism:
  • No mathematics is patentable
  • All software is mathematics
  • Therefore no software is patentable.
One of my regular addictions is groklaw. Some time ago, someone posted an article there, titled 1 + 1 (pat. pending) — Mathematics, Software and Free Speech. Today the same author posts a follow-up, A Simpler Explanation of Why Software is Mathematics, which I submit for your consideration, admittedly before I've read them all.

Intellectual freedom to the people: shorten copyrights, narrow applicability of patents, enable imagination and innovation without fear of lawyers breathing down your neck.

Two articles in a morning?

This time it's microbes that generate electricity while stabilizing radioactive spills. What a wonderful world.

Cool article of the morning: superconductors!

And I do mean cool. Slashdot today reports on an advance in superconductors. As usual there's more noise than signal, this time not only on the slashdot end but also in any of the sources that could be used to talk about the story. Charitably, the title used is clear but these articles could all be improved.

The best article so far is behind a paywall at IEEE but the abstract here tells you all you need to know without getting lost in the details. The sapphire strand is being used as a place to hang a real high-temperature semiconductor that uses Yttrium, Barium, Copper and Oxygen. The results keep a low temperature more easily and are superconducting at microwave frequencies and 77 K (around the boiling point of Nitrogen -- "high temperature" in superconductors is different than "high temperature in weather).

2011-09-03

Canada asked to be called a copyright pirate!!?

Sent to my Member of Parliament this morning -- Canadians, especially those residing in ridings represented by Conservatives, consider sending something like this yourselves:

To: the Honourable Member of Parliament for Port Moody-Westwood-Port Coquitlam, Minister of Heritage and Official Languages, Mr. James Moore
Regarding: Michael Geist's story on leaked cables

Hello again...

After this story, the only credible thing for the Canadian government to do is to write new copyright legislation that enshrines the public good above all other considerations, declares anything edging towards DMCA unconstitutional and restricts the length of copyrights to the limits that were in place before Steamboat Willie's copyright was first just about to expire.

This is a shameful way for a government of Canada to behave. I am disgusted. There are more important moral issues to be disgusted or happy about but if this is one of the "smaller" things, how can we hope your government to do right in the greater things?

Sincerely

Arthur N. Klassen

If you need help finding your MP's contact information, get in touch...

2011-08-31

Haiku #31

Summer winding down,
Cool rains threaten my commute
But no hurricanes.

(maybe rain this week in Greater Vancouver -- Hurricane Irene just roared through eastern North America)

2011-08-25

The 2015 Mindset List is out

I keep hearing about this list in the news or somewhere but today, I know where to find it. Click here for the 2015 mindset list. It's the usual mix of, "okay... I figured that" and "oh yeah. that's right. wow!" Enjoy...

2011-08-04

My comment on American Fiscal Policy

A deficit built on the backs of 2 wars, deep tax cuts and bank rescues should be solved on the backs of the poor, the sick and the old. Yeah right.