Freesteel Blog » 2007 » June

Monday, June 18th, 2007 at 4:29 pm - - UN, Weekends 7 Comments »

I still don’t understand what this wacky Hackday London 2007 incident was. It probably got off the drawing board because something had to. We didn’t see what the other ideas were. This one — whatever it was — was well-executed. A couple of large corporations, such as the BBC and Yahoo, organized Alexandra Palace as the venue. After getting struck by lighting (causing all the hydraulically operated roof vents to spontaneously creak open for the rain to pour in) and the wireless access being on the blink for the first six hours, things settled down for a long haul. Here’s me with one of the few painted laptops.


Saturday, June 16th, 2007 at 1:00 am - - UN, Whipping

I gotta have some things prepared to show to people curious about the UN tomorrow. I need some stories.

Rights of the child

A short debate with three votes, including one on paragraph 26 (b) which urges the elimination of corporal punishment in schools, and one on paragraph 41(c) about locking up children. The United States has some interesting allies, and is the only country in the world to also reject the resolution about the rights of children outright.

See above this for rights of women. Are there any resolutions about the rights of gays?


There’s always Colin Powell’s lame evidence.

Here is the 2003 report by the Secretary General about the invasion of Iraq, which does not comment on the invasion in terms of what happened (hint: hundreds of cruise missiles exploding in a heavily populated city one night) and how many died. The security council managed to explain it in more mild terms.

It’s perfectly normal to defer discussions year by year for years.

UN on the web

There is their search facility.

Talk about the fish

Got a petition back claiming “The United Nations General Assembly (UNGA) discussed a Sustainable Fisheries Resolution in New York from 16 to 23 November 2006. Of particular interest was the section of the draft Resolution relating to bottom fisheries, notably bottom trawling, and their impacts on vulnerable marine ecosystems.”


UK minority nuclear

An interesting set of countries are against the total elimination of nukes.

There’s also resolution Y about the new agenda for the nuke free world. You get here from the minority votes of the UK who didn’t like the idea of not being allowed to threaten nukes on non-nuke nations.

This resolution was then rejected by loads, unlike the child one where everyone lumped it.

Sometimes there are funny voting problems.

Here is John Bolton annoying the Russians.

Friday, June 15th, 2007 at 11:38 pm - - Whipping 2 Comments »

After spending two days in the office of — where the on-line marketing of tiny bits of coloured paper seems to be a more economically desirable business than producing software to operate heavy CNC machine tools — being whole-heartedly ignored, I got some work done on the UN democracy project, the follow-on from public whip. London has always been a lonely city for me. After the inviter cleared off to a business trip to Europe, I moved to someone’s front living room for the afternoon, and then to some sort of a nerdy pub meet in the evening where after 2.5 beers I had a headache.

Friday was fuzzed. I trailed all the way over to Tate Modern on the south side of the Thames to look at the State Britain exhibition, only to find I was in the wrong Tate Museum. So I caught the Tate to Tate boat to the one on north side where I finally saw the installation.

I felt slightly emotional over the amazing scale that this protest had been. I was very proud because I had produced and printed off an A0-sized poster of all the votes in Parliament with excerpts from the debates and given it to Brian Haw in 2003. He displayed it for a year until it became too weather damaged, and I sent him another laminated copy in 2004. When I visited him in 2006 and reminded him who I was, I got put in touch with someone who was building this artwork and I emailed her this link to the poster so she could print it off. She said that they had attempted to recreate it from scratch and had found it impossible to do so. They were lucky to have found me. They could have always looked at the bottom of the poster where it said:

Compiled using:
Copyright free 2003

Emails to that site could have got through to me. The front desk of the gallery was unable to give me permission to photograph my uncredited copyright free work of ranting as exhibited in this high temple of art.

Luckily, the curators in the room were a more reasonable and allowed a quick snap. Artists aren’t yet as enlightened as us programmers. I wonder if they ever will be. All work is derivative, so it is immoral and regressive for one class of people to decide they are so special that they can prevent further derivation, as if their work is the final end-product, the culmination from which nothing more can be made.

While on this subject, I can confirm that one of the many MPs who voted for the invasion of Iraq is Vera Baird. In the past few years she has eaten her cake by becoming a Minister, being on the Armed Forces Committee, consistently voting that there should be no inquiry into this on-going ever-spiralling downwards pit of death and deceit, and saying on the radio:

“I wish that we could stop poisoning the well of politics now by constantly looking back over a decision which was taken now some years ago. Is there a point to doing that when we have a problem which we can’t reverse, we can’t turn history back, we now have a huge responsibility to try to ensure that Iraq comes out of what has been in the past, what may be you and I may never agree about, though it’s true to say I didn’t vote for the war. Those dichotomies will never be healed – fine.”

I can easily translate this into layman’s terms:

“No matter what happens, I am never going to apologize, so get used to it. You are never going to be governed by people who have good judgment on matters of war and peace until you get rid of sanctimonious “hard-working” morons like me. And there’s no way in this system you can do that, so piss off and stop trying to damage my reputation, which isn’t going to do anyone any good. Got me?”

MPs have gotten so used to their conflict of interest in the way that they can wield their power to cover up evidence of very poor judgment like a flock of turkeys voting against Christmas that they’re willing to quote Edmund Burke who famously addressed his electors in Bristol in 1774 after they had complained about the way he had been voting in Parliament:

Your representative owes you… his judgment; and he betrays… you if he sacrifices it to your opinion…

You choose a member, indeed; but when you have chosen him, he is not member of Bristol, but he is a member of Parliament. If the local constituent should have an interest, or should form an hasty opinion evidently opposite to the real good of the rest of the community, the member for that place ought to be as far as any other from any endeavour to give it effect.

In other words, he establishes the principle that the electorate should not have a say in the way that their elected MPs vote in Parliament.

If that’s the case, they, the MPs, have no business at all in telling us what we can say about their votes in Parliament.

Seems reasonable, doesn’t it?

If they insist that nothing we do is going to force them to vote against their “better judgment”, then we can say whatever we want, because they’ve just told us it doesn’t matter.

With power comes responsibility. With lack of power we are allowed irresponsibility. There has to be a trade-off. And sometimes I don’t think these MPs realize quite the depth of anger we hold for them, as expressed so eloquently on the tube by this gentleman here.

Tuesday, June 12th, 2007 at 11:03 pm - - Cave

Last weekend involved two visits to famous North Wales Mines with my old caving club from Cambridge. The first was Parys Mountain copper Mine on Anglesey. Large sections of this had been recently drained and the hanging concretions of snotite formations in hanging bollock passage were unique.


Monday, June 11th, 2007 at 2:11 pm - - Whipping 1 Comment »

Meanwhile, get your unnecessary medical treatment here:

In 2006, Americans spent at least $14 billion on procedures involving coronary stents —little tubes that open clogged arteries to the heart. But according to the FDA, there’s no evidence that stents significantly reduce the risk of future heart attacks. Now, a major study from a top cardiologist is suggesting many of the procedures prescribed for chest pains are overused.

With big medical device makers so vested in the sale and marketing of their equipment, are some putting profits above patients?

Surely not!

According to one of the PR guys interviewed, doctors never told their patients that this treatment will prolong their lives. In what surely is one of those legally-sanctioned sleights of mind so favoured by British politicians, if you say something in a way that causes everyone to jump to the wrong conclusion, and it happens to be very beneficial to you, it’s not considered lying.

So if you’re sick and the doctor says, “Here, I’ve got this high-tech expensive treatment you could try,” do not assume that it’ll help you. Ask your lawyer if your doctor actually said that it’s the right treatment for you.

In fact it’s possible that the operation is going to help kill you by treating the symptoms and not the disease. We all prefer the quick fix because we are children at heart. Let’s not put it too bluntly — if a self-destructive habit, such as obesity due to imbibing the Standard American Diet, is made less immediately painful, then people are going to be able to carry on with it longer and more intensely and die sooner from one of its very many complications.

You can get pains in the knees due to carrying too much weight. A corporation called Stryker, part-owned by a family of billionaires, has a CEO licking his very lips at the economic prospects of the rapidly crippling generation of spoilt children — aka baby boomers — “needing” surgery and not wanting to wait till they’re closer to death to implant their limited-warranty triathlon total knee replacementswitness there the hour-long video of the intel spacemen fitting a metal knee to an “average for this area” woman of 220 pounds with a BMI of 36. This tub of lard will thus regain her mobility to hop-skip-and-jump from her front door to her car and carry on her “active” life without having any time to stop and think about all the crap she’s eating.

This is not unprecedented. The famously fat former Chancellor of the Exchequer, Nigel Lawson became thin one year because his doctors warned him that his knees were going to get bad. Now his life will be prolonged, giving him more decades of life to promote bogus economics and the denial of climate change. So we might all die sooner.

Stryker also features in the you can’t make this up category, Rapid Prototyping for Baghdad where they…

donated several distraction osteogenesis devices, from their DynaForm and Multi-Guide II product lines… [and] also provided several complete sets of resorbable cranio-maxillofacial fixation from their Inion product line.

That’ll make up for donating $100,000 to the Democratic Party in 2002 just before they gave a blank cheque to Bush to invade Iraq.

There are cheap and effective ways to affect the quality of life ravaged by car use and obesity, just as there is a way to end the endless war for oil. But it requires absolutely going outside of the business as usual plan. By allowing huge profiteering from preventable diseases as well as preventable wars, we are telling the billionaires of this world that we want more of the same. And they work night and day to make sure that we get it. Even if it kills us.

Monday, June 11th, 2007 at 11:02 am - - Machining 3 Comments »

Following from the incorrect method for finding which triangle of a mesh a given point is inside, here is the right answer.

The trick is to know that the only lines you can reliably tell sidedness along are those parallel to the X or Y axes, and the special cases of the lines x = y and x = -y. All other lines, defined by, say, a + tv, are going to prove somewhat noisy close in when attempting to determine which side of them a given point lies if you use the standard relation:

(p - a) . vT > 0

In particular, if you have three lines passing through the same point and that point is not the a point in all of them, they won’t, and you’ll get a little unexpected area inside the triangle where they don’t all meet.

So, the scan line method works along the Y-axis. The triangle here has, relative to this direction, ay < cy < by. All the intervals are half-open, which means the point p can hit the triangle only when ay <= py < cy. The triangle also separates into two parts, the lower where py < cy and the upper where py >= cy.

In this diagram p is in the upper part, so we find the intersections of the line Y = py with the lines ab and cb to get points xab and xcb (not labeled). It doesn’t matter what order because they can be sorted and then treated as a half-open interval for comparison to the value px.

Actually, it is a good question whether the condition xab < xcb will remain the same for all values of py. I don’t know the answer to this one, and it probably depends on how carefully you calculate it. Ideally, if it’s determined that c is to the right of the line ab, then it’s consistent for all Y.

One has to assume the 2D triangle meshes are very nasty because the problem we’re actually trying to solve is the intersection of a 3D line through a polyhedral mesh representing the surface of a solid volume. The first step is always to project the entire model onto the plane perpendicular to the line (so that the line becomes a point). Even though you began with a well-behaved triangular surface, there are projections where the triangles turn into slivers and shards.

Tuesday, June 5th, 2007 at 2:47 pm - - Machining 1 Comment »

Trivial bug discovered only by visualization. This one’s been in there for several years.

When making waterline (const-z) passes with a tool that is larger than the smallest fillet radius in the model, you get sharp corners. These need to be rounded off for high speed machining. I do this by slicing with a tool whose radius us increased by c, and then offsetting the resulting areas outwards by c to get the contours in the place where we want, but with the corners replaced by arcs of radius c.

The advantage of doing it this way, as opposed to geometrically detecting the corners and fitting arcs to them, is that you don’t get under-cuts because the calculation is always consistent. In 3-axis machining you don’t ever want the area of a lower level to stray outside that defined by an upper level or you risk a tool-holder collision.

A classical error is for the upper level to be a rectangle of, say 100mm on the side, and the lower level to be a truncated corner, a tiny triangle of 2mm on the sides. If you’re running very fast you might add corner rounding of 5mm onto your rectangle. The largest corner radius you can fit on the triangle is about 1mm, so that’s all it gets. The resulting lopsided triangular circle will be totally outside the rounded rectangle.

This is an extreme case. The risk of incompatibility is high when a complex algorithm is independently applied to adjacent paths. The passes A and B have the containment relation A << B. If corner_round() represents the corner rounding process — a deeply complex algorithm — then it’s not always true that corner_round(A) << corner_round(B).

In Machining Strategist they had to write an even more complex function to intersect the areas corner_round(A) and corner_round(B) to deal with this under-cut problem.

I don’t have time for that, so I re-apply a variant of the z-slicing algorithm to make the offsets. This offset() algorithm is far simpler than corner_round(), so it is always true that offset(A) << offset(B).

And it works, so long as you don’t calculate the perpendiculars that drive the subdividing condition wrongly. Here I managed to negate the y-coordinates when the offset came from a point. This manifested itself when the contour had a 90 degree corner on it oriented to go from half-past one o’clock to 4:30 causing an erroneous lack of subdividing before I fixed it.