[–] NiggadermCQ ago 

Check the defcon videos. Voting machines hacked in minutes. Sometimes by a teen.

[–] ArielQflip 0 points 1 point (+1|-0) ago 

Good idea. My spouse is a CMM programmer. Interesting. CNC use G Code correct? and CMM used X,Y,Z coordinate code.

Cut and Measure VOTING lol!

[–] screamingrubberband [S] 0 points 2 points (+2|-0) ago 

Actually, they are very similar... The machine moves the cutting tools to x/y/z coordinates to make a part, but most of the focus is on how fast to move or cut or spin.

CMMs move a measuring tip to specific x/y/z positions to see if the part is actually there, or how far away from 'there' it is, but they are much more delicate - the motors that control each axis don't have to drive a 40 lb tool! However, the positioning accuracy of a CMM is (should be) far more accurate than a machine tool... although in recent years the machines are getting pretty accurate, some OEMs have coolant temperature monitors and chillers so they can hold .0005mm accuracy. (Well, that's what the sales brochures claim!)

[–] ArielQflip ago 

As long as the coolant chillers don't get clogged lol~ spouse.

[–] areyoumygaffer 0 points 1 point (+1|-0) ago 

fellow IT guy on the implementation / architecture side here.

They should completely be open source so that all potential 'glitches' can be vetted and rectified. Who voted to allow electronic voting?

Software, as you well know, is written by people. Anything containing people can have issues, bugs, or 'undocumented features'.

CNC machines are a breeze to work with because they work flawlessly or not at all.

[–] ZenoOfElea 0 points 1 point (+1|-0) ago 

Wait, are you writing software that runs the CNC or are you configuring what the CNC is producing (with software)? Because if it's the later, your a machinist and not a programmer.

For a sense of scale, just the model definition of a program that size would be thousands of lines of code. Automatized unit testing. for every function written, there should be at least three unit tests: a pass, a fail, and an exception. If you're writing your software to the SOLID principle, the 'S' is "Single Responsibility Principle. A class should have one, and only one, reason to change. Every class is responsible for exactly one thing." so your function shouldn't have much more then three tests.

But it doesn't sound like an error, the 6000 vote shift came when transferring the data not during the operation of the voting collection or tabulation.

[–] screamingrubberband [S] 0 points 1 point (+1|-0) ago 

From another comment:

G code is a small part of my job.

I primarily write statistical analysis routines, gauge feedback handling, and spindle and axis drive motor load monitoring, and turn that into api calls to the machine to tweak feeds and speeds in real-time, and as well as direct manipulation of offsets. I jump back and forth between VB and C for this. As I stated, I write computer software in my personal life as well, including a small cad program for a customer that would generate g code from circles and lines, and a title that was carried by the Macininist's Ready Reference for a number of years.

I am a programmer.

or are you configuring what the CNC is producing (with software)? Because if it's the later, your a machinist and not a programmer.

I don't think you know what question you want to ask. If you mean "Do I write G code using cad cam software" then yes, I do that as well. I also write it by hand.

But somebody who writes g code to make a machine cut a part is not a machinist. A machinist is someone who can make a part without needing a CNC to do it. Calling a button-pusher or CNC programmer a 'machinist' is an insult to actual machinists.

[–] Hand_of_Node ago 

Well answered.

[–] MadCatTimberWolf 0 points 1 point (+1|-0) ago 

As a Software Engineer I concur.

[–] blackzetsu ago 

It's pretty simple. If your code sucks you don't get paid. If their voting software sucks, they get elected